2013年12月31日 星期二

Big Endian vs Little Endian

Data stores in memory split in Bytes

Endianness:Order of bytes (of data) in memory

Big Endian stores Most significant byte First
Little Endian stores Least significant Byte First

Network: Big Endian
PCM: Little Endian
X86: Little Endian
Src:http://www.raywenderlich.com/12910/how-to-make-a-simple-playing-card-game-with-multiplayer-and-bluetooth-part-3/big-endian-vs-little-endian

2013年12月2日 星期一

PHP uninitialized variable evaluation


php > $user;
php > print var_dump(!$user);
PHP Notice: Undefined variable: user in php shell code on line 1
bool(true)
php > print var_dump($user);
PHP Notice: Undefined variable: user in php shell code on line 1
NULL

php > print var_dump(empty($user));
bool(true)




uninialized variable evaluates to NULL (with notice)

!$var evaluates to True

empty($var) evaluates to True

2013年11月27日 星期三

Python String Encoding Conversion (UTF-8/ANSI)

**Python String are recorded in UNICODE internally

Reading file encoded in UTF-8:


with open(fileName,'r') as f:
    for line in f.readlines():
        print line.decode("UTF-8")




2013年9月12日 星期四

Bind bash keyboard shortcut to delete word to slash

add the following line in ~/.bashrc


bind '\C-f:unix-filename-rubout'


Ctrl+F is bound to delete till previous slash

2013年7月23日 星期二

bash_profile vs bashrc vs profile, environment variables

.bash_profile --> login shell

.bashrc --> non-login shell

login shell:
e.g. login via console, ssh

non-login shell:
e.g. new terminal windows in inside GNOME ( already logged in)
/bin/bash in terminal

When bash is invoked as an interactive login shell, or as a non-interac-
tive shell with the --login option, it first reads and executes commands
from the file /etc/profile, if that file exists. After reading that file,
it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that
order, and reads and executes commands from the first one that exists and
is readable. The --noprofile option may be used when the shell is started
to inhibit this behavior.

/etc/profile --> ~/.bash_profile > ~/.bash_login > ~/.profile

Environment Variable

/etc/environment - This file is specifically meant for system-wide environment variable settings. It is not a script file, but rather consists of assignment expressions, one per line. Specifically, this file stores the system-wide locale and path settings.


set -- show environment variables + shell variables

env -- show environment variables


2013年7月15日 星期一

CodeIgniter .htaccess mod_rewrite 404

CodeIgniter directory: /Document-root/[your-URL-path]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /[your-URL-path]
RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ index.php/$1 [L]
                  `---!! No heading slash
</IfModule>