Thursday, July 28, 2011

Free Domain Name Providers

yourname.*.tf, such as

yourname.*.tc, such as

I have tried the and, works very good. For, one account only can register two names, but can do five max.

Friday, July 22, 2011

MySQL Basic II

My current version:
ji@ji-cada:~$ mysql --version;
mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2

The path MySQL is installed:

display how many columns and rows:
ji@ji-cada:/usr/bin$ mysqlshow -u root -p -vv mysql

More info to display:
ji@ji-cada:/usr/bin$ mysqlshow -u root -p --status factory

add a database:
ji@ji-cada:/usr/bin$ mysqladmin -u root -p create mobileweb
login, then
mysql> CREATE DATABASE webdb

see how many database:
ji@ji-cada:/usr/bin$ mysqlshow -u root -p

change database:
mysql> use factory;
mysql> connect sakai;

show how table created
mysql> SHOW CREATE TABLE factory.Customer;
mysql> DESCRIBE factory.Customer;

See how many tables and databases:

Alter a table property:
mysql> DESCRIBE Customer;

mysql> ALTER TABLE Customer MODIFY COLUMN Name VARCHAR(50) NOT NULL default '';
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> DESCRIBE Customer;

mysql> ALTER TABLE Customer CHANGE COLUMN Zip Postcode CHAR(10);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> DESCRIBE Customer;

mysql> ALTER TABLE Customer ADD INDEX Postcode(Postcode);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> DESCRIBE Customer;

Another way of insertion:
mysql> insert into Customer set Customer_Number = 3167, Name='Good Guys', Address='21 Garnet St', City='Lane Cove', State='NSW', Postcode = '3253';

Very fast way to copy data accross:

mysql> CREATE TABLE City ( City_Name CHAR(20) PRIMARY KEY);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO City SELECT City FROM Customer;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

Other commands:
TRUNCATE table1;

Manage user:

For other user:
mysql> SHOW GRANTS FOR webuser;

To see what user info, in mysql database:
SELECT user from user where host = 'localhost';

To create a user:
mysql> CREATE USER webuser IDENTIFIED BY 'webuser';
Query OK, 0 rows affected (0.00 sec)

Change password:
mysql> SET PASSWORD FOR 'webuser' = PASSWORD('newpass');
Query OK, 0 rows affected (0.00 sec)

Other commands:
GRANT: give permission to user, on particular table, action(SELECT, UPDATE, INSERT etc.), logging in from which domain.
REVOKE: remove permission.

A proper formatted version with table showing is here:

Monday, July 11, 2011

SQL database

25 May 2011
Basic MySQL info:

Path for my.cnf file:
ji@ji-cada:/etc/mysql$ cat my.cnf

mysql -u root -p

ID root
PS root

quit or exit to end.

Any command ends with ;

Table name is case sensitive, but column name, value in query are not case sensitive.
User name and password is case sensitive.

MySQL Query Browser

to start:

Mobile Web Dev

It is time to try some mobile web development.

Here is the platform and testing play ground.


CSS, Javascript

iPhone 4

FTP command:

Certainly need more experience about Javascript, the whole logic to store data and UI are based on Javascript.

Here are some framework available for doing Mobile Web development,
Sencha Touch
a more general one is GWT, or Google Web Toolkit. It broadly focus on web page development rather Mobile Web

An article compare some of the framework, dated back early 2011

It seems jQTouch developer shifts to Sencha

Twitter API

Tuesday, April 29, 2008

Data Model


number_date := TO_NUMBER(TO_CHAR(date, 'j'));

Function-Based Indexes
Any top-level or package-level PL/SQL functions that are used in the index expression must be declared as DETERMINISTIC. That is, they always return the same result given the same input, for example, the UPPER function. You must ensure that the subprogram really is deterministic, because Oracle Database does not check that the assertion is true.

If you change the semantics of a DETERMINISTIC function and recompile it, then existing function-based indexes and materialized views report results for the prior version of the function. Thus, if you change the semantics of a function, you must manually rebuild any dependent function-based indexes and materialized views.

Thursday, January 17, 2008

One efficient side of Gen2

There are two major command using by Gen2, which are QueryAdjust and QueryRep. Specifically, these two commands are used by Reader. Also, as we may find out that Reader's transmission rate is 4 times slower than Tags' rate.
So the length of these two commonly using commands becomes critical in performance when doing time measurement.

Gen2 does very well in shortening their length:
QueryRep >> command type(2 bits) + Session (2 bits) = 4 bits
QueryAdjust >> command type(4 bits) + Session (2 bits) + Up or Down (3 bits) = 9 bits

There is only two 2 bits long command types, one is QueryRep, as it uses every time to order tags to downcounter by 1. Base on performance of Gen2, averagely, every tag needs 3 query rounds to be identified. So if there is 1000 tags, QueryRep is sent 3000 times roughly.

QueryAdjust is used to change the value of Q in the Q-algorithm. Instead of telling the value of Q directly in its command, it only tells how to change its value, as Q is changed step by step, one by one.

This efficient side of Gen2 compensates the upper limit performance of Aloha algorithm. These two succinct command lines reduce huge time in the whole process.

Wednesday, December 19, 2007

Slot Aloha Limit Throughput

EPC Gen2 builds on slot Aloha, which has a crucial nature:
Max Throughput = 1 / e = 36.79%

Simulator generates the result around 34% (above 1000 tags)

Now the concentrates are on:
Reduce Q parameter update frequency: as far as we know, Q parameter decreases as the detection process going. Fluctuating Q causes redundant data in transmission.

Find an out of box method to break the slot Aloha throughput limit.