Mar
2
很漂亮。
我要的是黑色版的。
横屏,很爽。
看视频看网页看FLASH比竖屏爽。
有些程序会有点诡异,不过屏幕方向可以通过CeleTask旋转过来。
Intel PXA270 416MHz的处理器
确实比以前的OMAP 850 200MHz爽
视频,700kbps的基本上没问题。更高的没测试过。
Show Good 的 Flash动画,如果画质是中或者低 基本上就不卡
打开程序也比原先那个586w来的快。
在PocketDOS下面跑QBasic和TurboC2,也顺畅多了。
外放声音够大。
摄像头200Mega,Auto-Macro
但是貌似不是自动对焦,需要手动选择远景和近景
远景适合拍摄风景,近景适合拍摄文字,配合蒙恬名片王可以读取名片的信息。
QWERTY键盘,输入确实很爽。快捷键的自定义功能也做得很好很强大。
继续试用,嗯。
我要的是黑色版的。
横屏,很爽。
看视频看网页看FLASH比竖屏爽。
有些程序会有点诡异,不过屏幕方向可以通过CeleTask旋转过来。
Intel PXA270 416MHz的处理器
确实比以前的OMAP 850 200MHz爽
视频,700kbps的基本上没问题。更高的没测试过。
Show Good 的 Flash动画,如果画质是中或者低 基本上就不卡
打开程序也比原先那个586w来的快。
在PocketDOS下面跑QBasic和TurboC2,也顺畅多了。
外放声音够大。
摄像头200Mega,Auto-Macro
但是貌似不是自动对焦,需要手动选择远景和近景
远景适合拍摄风景,近景适合拍摄文字,配合蒙恬名片王可以读取名片的信息。
QWERTY键盘,输入确实很爽。快捷键的自定义功能也做得很好很强大。
继续试用,嗯。
Feb
28
当然,前提是不缺胳膊少腿、功能正常。
主要是从这两个方面入手:
1. 使用动态库,这是默认的,只要在编译的时候不加上 -static 参数就行了
2. 去处不必要的.symbol和.debug的信息,在编译的时候加上-s参数即可;或者在编译以后运行strip a.out。
strip能清除执行文件中不必要的标示符及调试信息
可减小文件大小而不影响正常使用,但是不能调试了
所以用于不需要调试的场合
主要是从这两个方面入手:
1. 使用动态库,这是默认的,只要在编译的时候不加上 -static 参数就行了
2. 去处不必要的.symbol和.debug的信息,在编译的时候加上-s参数即可;或者在编译以后运行strip a.out。
strip能清除执行文件中不必要的标示符及调试信息
可减小文件大小而不影响正常使用,但是不能调试了
所以用于不需要调试的场合
Feb
25
看了一下日志,还挺有意思,不过最后有点小可怕:bad swap file。
于是赶紧还是把swap关掉,就用ram。
看来升级RAM才是王道阿,改天和feli一起去淘内存颗粒。
--
Jan 1 08:00:12 wl-520gu syslog.info syslogd started: BusyBox v1.12.3
Jan 1 08:00:12 wl-520gu authpriv.info dropbear[113]: Running in background
Jan 1 08:00:12 wl-520gu user.notice kernel: klogd started: BusyBox v1.12.3 (2009-02-10 00:46:12 EST)
Jan 1 08:00:12 wl-520gu user.warn kernel: CPU revision is: 00029029
Jan 1 08:00:12 wl-520gu user.warn kernel: Primary instruction cache 16kb, linesize 16 bytes (4 ways)
Jan 1 08:00:12 wl-520gu user.warn kernel: Primary data cache 16kb, linesize 16 bytes (2 ways)
Jan 1 08:00:12 wl-520gu user.warn kernel: Linux version 2.4.20 (root@tomato) (gcc version 3.2.3 with Broadcom modifications) #2 Tue Feb 10 00:53:58 EST 2009
于是赶紧还是把swap关掉,就用ram。
看来升级RAM才是王道阿,改天和feli一起去淘内存颗粒。
--
Jan 1 08:00:12 wl-520gu syslog.info syslogd started: BusyBox v1.12.3
Jan 1 08:00:12 wl-520gu authpriv.info dropbear[113]: Running in background
Jan 1 08:00:12 wl-520gu user.notice kernel: klogd started: BusyBox v1.12.3 (2009-02-10 00:46:12 EST)
Jan 1 08:00:12 wl-520gu user.warn kernel: CPU revision is: 00029029
Jan 1 08:00:12 wl-520gu user.warn kernel: Primary instruction cache 16kb, linesize 16 bytes (4 ways)
Jan 1 08:00:12 wl-520gu user.warn kernel: Primary data cache 16kb, linesize 16 bytes (2 ways)
Jan 1 08:00:12 wl-520gu user.warn kernel: Linux version 2.4.20 (root@tomato) (gcc version 3.2.3 with Broadcom modifications) #2 Tue Feb 10 00:53:58 EST 2009
Feb
25
这篇看起来忒有意思,回头有空了我翻译一下。
How To Read C Declarations
zz from http://blog.chinaunix.net/u1/36290/showart_443799.html
Even experienced C programmers have difficulty reading declarations that go beyond simple arrays and pointers. For example, is the following an array of pointers or a pointer to an array?
What the heck does the following mean?
Naturally, it's a pointer to an array of pointers to functions returning integers. ;)
This short article tells you how to read any C declaration correctly using a very simple technique. I am 99% certain that I read this in a book in the late 1980s, but I can't remember where. I doubt that I discovered this on my own (even though I've always been delighted by computer language structure and esoterica). I do remember, however, building a simple program that would translate any declaration into English.
The golden rule
The rule goes like this:
The degenerate case is:
How To Read C Declarations
zz from http://blog.chinaunix.net/u1/36290/showart_443799.html
Even experienced C programmers have difficulty reading declarations that go beyond simple arrays and pointers. For example, is the following an array of pointers or a pointer to an array?
int *a[10];
What the heck does the following mean?
int (*(*vtable)[])();
Naturally, it's a pointer to an array of pointers to functions returning integers. ;)
This short article tells you how to read any C declaration correctly using a very simple technique. I am 99% certain that I read this in a book in the late 1980s, but I can't remember where. I doubt that I discovered this on my own (even though I've always been delighted by computer language structure and esoterica). I do remember, however, building a simple program that would translate any declaration into English.
The golden rule
The rule goes like this:
引用
"Start at the variable name (or innermost construct if no identifier is present. Look right without jumping over a right parenthesis; say what you see. Look left again without jumping over a parenthesis; say what you see. Jump out a level of parentheses if any. Look right; say what you see. Look left; say what you see. Continue in this manner until you say the variable type or return type."
The degenerate case is:
Feb
24
www.felix021.com 这个域名被处理了,不能通过浏览器直接访问了,urlforwad到ctc.felix021.com
由于meyu的邮件里面说到,不影响搜索引擎收录,所以这么测试了一下,还挺有意思
由于meyu的邮件里面说到,不影响搜索引擎收录,所以这么测试了一下,还挺有意思
引用
felix021@felix021-laptop:~$ telnet www.felix021.com
Trying 211.136.108.72...
telnet: Unable to connect to remote host: Connection refused
felix021@felix021-laptop:~$ telnet www.felix021.com 80
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: MSIE
HTTP/1.0 302 Moved Temporarily
Server: squid
Date: Tue, 24 Feb 2009 09:15:20 GMT
Content-Type: text/html
Content-Length: 0
Expires: Tue, 24 Feb 2009 09:15:20 GMT
Location: http://67.213.219.111/beian.html
X-Squid-Error: 403 Access Denied
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close
Connection closed by foreign host.
Trying 211.136.108.72...
telnet: Unable to connect to remote host: Connection refused
felix021@felix021-laptop:~$ telnet www.felix021.com 80
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: MSIE
HTTP/1.0 302 Moved Temporarily
Server: squid
Date: Tue, 24 Feb 2009 09:15:20 GMT
Content-Type: text/html
Content-Length: 0
Expires: Tue, 24 Feb 2009 09:15:20 GMT
Location: http://67.213.219.111/beian.html
X-Squid-Error: 403 Access Denied
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close
Connection closed by foreign host.
引用
$ felix021@felix021-laptop:~$ telnet www.felix021.com 80
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: baiduspider(http://www.baidu.com/)
HTTP/1.0 200 OK
Date: Tue, 24 Feb 2009 09:14:29 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.5
Vary: Accept-Encoding,User-Agent
Content-Length: 1040
Content-Type: text/html
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close
~~然后是index.php的内容,不贴了~~
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: baiduspider(http://www.baidu.com/)
HTTP/1.0 200 OK
Date: Tue, 24 Feb 2009 09:14:29 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.5
Vary: Accept-Encoding,User-Agent
Content-Length: 1040
Content-Type: text/html
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close
~~然后是index.php的内容,不贴了~~
Feb
19
之前的那个因为在创建守护进程的那一部分代码没有写清楚
所以每次退出telnet就会退出,更新了一下
要编译好的版本可以从这里下载:
http://bbs.whu.edu.cn/bbscon.php?bid=50&id=19510
或者直接email我,我发过去,嗯。
因为静态编译的比较大,1.8MB(有没谁能搞个小的?我对编译选项不很了解,-Os没效果,汗)
所以如果各位想要去买路由器的话
1。建议至少买4MB Flash的产品,刷mini版本的
2。可以买2MB Flash的产品,但是要自己手动焊MMC/SD读卡器(据说很简单的)
3。最好是有USB口的,插上U盘就行,最省事了。
所以最实惠的选择还是我的ASUS WL-520GU,挖咔咔~~370+15运费,超划算的。
如果各位nb的话,还可以在上面安装BT,电驴,Web服务器(架BBS,如www.2cna.cn)
另外一款NB的是"64M超大内存贝尔金7231-4P 4M FLASH 带USB口脱机bt 电驴"
这个貌似比较便宜,就是难看了点儿,具体自己baidu吧~
所以每次退出telnet就会退出,更新了一下
要编译好的版本可以从这里下载:
http://bbs.whu.edu.cn/bbscon.php?bid=50&id=19510
或者直接email我,我发过去,嗯。
因为静态编译的比较大,1.8MB(有没谁能搞个小的?我对编译选项不很了解,-Os没效果,汗)
所以如果各位想要去买路由器的话
1。建议至少买4MB Flash的产品,刷mini版本的
2。可以买2MB Flash的产品,但是要自己手动焊MMC/SD读卡器(据说很简单的)
3。最好是有USB口的,插上U盘就行,最省事了。
所以最实惠的选择还是我的ASUS WL-520GU,挖咔咔~~370+15运费,超划算的。
如果各位nb的话,还可以在上面安装BT,电驴,Web服务器(架BBS,如www.2cna.cn)
另外一款NB的是"64M超大内存贝尔金7231-4P 4M FLASH 带USB口脱机bt 电驴"
这个貌似比较便宜,就是难看了点儿,具体自己baidu吧~
Feb
19
发现以前在Linux下C编程入门里面看到的创建守护进程的办法不够完整,导致做好的东东在路由器的MIPS版Linux下面不能正常在后台运行,一旦退出telnet,进程也就跟着结束了。于是参考这篇文章做出了一个完整的版本,哦也!
zz from http://dev.csdn.net/article/42/42281.shtm
Linux 守护进程的编程方法
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护进程的编程要点并给出详细实例。
一. 守护进程及其特性
zz from http://dev.csdn.net/article/42/42281.shtm
Linux 守护进程的编程方法
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护进程的编程要点并给出详细实例。
一. 守护进程及其特性
Feb
19
众所皆知,以下代码可以实现两个变量的交换:
于是用这个写了一个随机化快速排序(防止特殊情况下的算法退化,代码很简单,如果认识快排,应该不难读懂)
看起来不错,可是运行结果不对,为什么呢?
因为
int a, b;
a = a ^ b;
b = a ^ b;
a = a ^ b;
a = a ^ b;
b = a ^ b;
a = a ^ b;
于是用这个写了一个随机化快速排序(防止特殊情况下的算法退化,代码很简单,如果认识快排,应该不难读懂)
void qsort(int a[], int s, int e){
int i = s, j = e, t, p;
if (s < e){
p = rand() % (e - s + 1) + s;
a[s] ^= a[p], a[p] ^= a[s], a[s] ^= a[p];
t = a[s];
while(i != j){
while(i < j && a[j] > t) j--;
if(i < j) a[i++] = a[j];
while(i < j && a[i] < t) i++;
if(i < j) a[j--] = a[i];
}
a[i] = t;
qsort(a, s, i - 1);
qsort(a, i + 1, e);
}
}
int i = s, j = e, t, p;
if (s < e){
p = rand() % (e - s + 1) + s;
a[s] ^= a[p], a[p] ^= a[s], a[s] ^= a[p];
t = a[s];
while(i != j){
while(i < j && a[j] > t) j--;
if(i < j) a[i++] = a[j];
while(i < j && a[i] < t) i++;
if(i < j) a[j--] = a[i];
}
a[i] = t;
qsort(a, s, i - 1);
qsort(a, i + 1, e);
}
}
看起来不错,可是运行结果不对,为什么呢?
因为