<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.8" -->
<rss version="0.92">
<channel>
	<title>Computer, Electron and Technology</title>
	<link>http://www.donevii.com</link>
	<description>DoneVII CET &#38; CPPLITE</description>
	<lastBuildDate>Tue, 30 Jun 2009 07:25:31 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>团购 textmate</title>
		<description>发现 zend studio for eclipse 和 netbeans 越来越不好用，越来越大（慢）。

快速开发还是转向 textmate ，正好 twitter.com/fire9 在组织团购，报名等待了，大概一人 200 多 RMB。

报名入口 </description>
		<link>http://www.donevii.com/post/882.html</link>
			</item>
	<item>
		<title>网上闻名已久的“操帝”</title>
		<description>

太逗了 </description>
		<link>http://www.donevii.com/post/880.html</link>
			</item>
	<item>
		<title>textmate 支持 gb2312 的方法</title>
		<description>下载 Textmate Bundle
问题就是我们使用TextMate不支持GB2312等编码，用着及其不方便，下面是解决方案：
打开Bundle Editor
选则Show all

选则文件夹TextMate（或者随便你选则什么）
增加一个新的template‘openEncodedFile’（或者随便你自己命名）
在Template data中如下设定
Extension：中 留空

Command(s):
# open CocoaDialog's file select menu

file=$(CocoaDialog fileselect \
        --title "Open an encoded file" \
        --with-directory $HOME/ \
)
# check for valid file
if [ -n "$file" ]; then
# open CocoaDialog's dropdown menu
# ...</description>
		<link>http://www.donevii.com/post/874.html</link>
			</item>
	<item>
		<title>真人示范 罩杯大小尺寸[图片]</title>
		<description>A cup — Airport



B cup — Barely there


C cup — Can do


D cup—Damn good



E cup—Ecstasy



F cup—Fake


G cup—God



H cup—Horrible


I cup—I can’t believe it


J cup—Joke



K cup—Kidding


L cup—Large


M cup—Monster


N cup—Nothing like that




 </description>
		<link>http://www.donevii.com/post/873.html</link>
			</item>
	<item>
		<title>上海13层大厦整体倒塌后的网友经典汇总贴</title>
		<description>1、今天早上那声巨响难道不是雷 ，是这个房子？
　　　　
　　　　2、再把它扶起来又可以卖了.....
　　　　
　　　　3、扶起来，洗洗干净继续卖
　　　　
　　　　4、这是开发商的行为艺术吗!
　　　　
　　　　5、现在变成只有天窗的联体别墅了~
　　　　
　　　　6、我国多了两个支柱产业：倒塌楼房预测业、扶楼业（扶大厦于已倾）。
　　　　
　　　　7、新闻上说“除了”有个工人死亡外，“无”人员伤亡
　　　　
　　　　8、支持保留现场，以飨后代
　　　　
　　　　9、大楼说是它自己不小心摔倒的,它还说从哪里跌倒了,还会再从哪里爬起来.放心住吧.
　　　　
　　　　10、2009年流行词汇:一座楼说：“我倒！！！”于是他真的倒了
　　　　
　　11、一小撮不明争相的 混凝土 这么不和血！！
　　　　
　　12、房子没有倒，它只是在做腑卧撑而已！
　　
　　13、变形金刚到上海了。
　　
　　14、还好楼距还凑和，要不然成骨牌了。
　　
　　15、由于都不买房，没有入住，重心偏高，等居民都欢欣鼓舞的入住进去就能压住了。。。。
　　
　　16、房子离河边太近，
　　　　会不会是河里的螃蟹钻地打洞破坏土层结构
　　　　导致楼房整体倒塌呢？
　　
　　17、站起来是楼房 倒下去是绿坝
　　
　　18、第一次见到房倒得这么有性格的
　　
　　19、高层不流行了，规划局同意改成躺好死卖。
　　
　　20、站着商品房，躺下骨灰盒！
 </description>
		<link>http://www.donevii.com/post/871.html</link>
			</item>
	<item>
		<title>(原創) 如何让一个thread在背景不断的执行? (使用semaphore)</title>
		<description>要让一个thread在背景不断的执行，最简单的方式就是在该thread执行无穷回圈，如while(1) {}，这种写法虽可行，却会让CPU飙高到100%，因为CPU一直死死的等，其实比较好的方法是，背景平时在Sleep状态，当前景呼叫背景时，背景马上被唤醒，执行该做的事，做完马上Sleep，等待前景呼叫。当背景sem_wait()时，就是马上处于Sleep状态，当前景sem_post()时，会马上换起背景执行，如此就可避免CPU 100%的情形了。
 1/**//*
 2(C) OOMusou 2006 http://oomusou.cnblogs.com
 3
 4Filename    : pthread_create_semaphore.cpp
 5Compiler    : gcc 4.10 on Fedora 5 / gcc 3.4 on Cygwin 1.5.21
 6Description : Demo how to create thread with semaphore in Linux.
 7Release     : 12/03/2006
 8Compile     : g++ -lpthread pthread_create_semaphore.cpp
 9*/
10#include &#60;stdio.h&#62;     // printf(),
11#include &#60;stdlib.h&#62;    // exit(), EXIT_SUCCESS
12#include &#60;pthread.h&#62;   // pthread_create(), pthread_join()
13#include &#60;semaphore.h&#62; // sem_init()
14
15sem_t ...</description>
		<link>http://www.donevii.com/post/869.html</link>
			</item>
	<item>
		<title>Introduction to CuRT_v1</title>
		<description>前言
對大多數的人而言，一個作業系統和天書可能差別不大。然而事實是如此嗎？ 世界上有一大堆小的快不像樣的 OS，jserv 的 CuRT 就是一個例子。像這樣的 OS 理論上只要是資工系統的學生都應該要寫的出來，否則大家花了那麼多的時間學程式語言和作業系統是做什麼用的? 然而如果我們做個調查，我想大多數的人都認為自己寫一個 OS 是不可能的事。這份文件就是用來解答大家的疑惑，讓大家不要再覺得這是不可能的事情了。寫一個 OS 是多麼美好的事，在有限的生命中千萬不要遺漏了它。
OS 是什麼?
回去看看教科書吧! 或是我們的好朋友 wikipedia。在 wikipedia 中的架構圖中你可以看到作業系統大致由

	Device driver
	kernel
	system call
	shell

所組成。除此之外，由於作業系統是硬體上第一個被執行的程式。通常它還需要做一些初始化的動作，讓硬體知道如何和作業系統配合。這個初始化的動作可以被視為是 CPU 的 device driver。

所以我們就從初始化開始吧!
系統初始化
一個 CPU 需要做那些初始化的動作呢?
設定中斷表
不管在那一個 CPU 中，這通常是第一件要做的事。不過是通常也不必執行任何程式，大多數的 CPU 會要求中斷表被放在記憶空間中固定的地方。例如  ARM，中斷表就在 位址 0-31處。所以我們只要在編譯程式時確定它們一定會在最前面就可以了。在 CuRT 中，arch/arm/mach-pxa/start.S 的最前面就在做這件事。

        .text        .text
        /* exception handler vector table */
_start:
        b reset_handler
        b und_handler
        b swi_handler
        ...</description>
		<link>http://www.donevii.com/post/865.html</link>
			</item>
	<item>
		<title>比 Google Chrome 更 NB 的广告</title>
		<description>这是人们未发现的 Macbook 的新功能。

 </description>
		<link>http://www.donevii.com/post/864.html</link>
			</item>
	<item>
		<title>湖南红头文件雷死人鸟：女公务员需双乳对称无包块</title>
		<description>朝廷女公务员的乳房，都是由张太监亲自鉴定过的


湖南省在录用公务员的体检标准中要求女性乳房对称，在当年掀起铺天盖地的讨论。根据湖南省人事厅、湖南省卫生厅发布的红头文件《湖南省国家公务员录用体检项目和标准》，这项要求的全部内容为：第二性征发育正常，乳房对称、无包块，外阴无炎症、溃疡、肿瘤，无子宫脱垂，为合格。
近日有媒体报道称，济南一位湖南籍高校女毕业生小璐来电反映，湖南省在录用公务员的体检标准中，要求女性"第二性征发育正常，乳房对称无包块"等，这位女生认为这条规定明显带有"歧视性"。报道登出后，引起社会上一片非议。
对此，湖南省人事厅公务员管理处处长陈放民向记者证实，湖南录用公务员体检标准中的确有这样的规定，但这几年招录过程中并没有接到一例因为这个条件而被淘汰的反映，所以"原先也没觉得这是个问题"。
据透露，今年湖南公务员录用体检规定将做大的修改，目前省人事厅和卫生厅联同有关专家正在开展这项工作。陈放民说，虽然有些需改动的规定内容还未最终确定，但"可以肯定的是，‘女性双乳对称'这条规定将被废除"。
陈放民表示，做这个决定并非出于舆论的压力，而是由于以往招录公务员时已经感到这条规定没有什么存在的必要。"这次修改放宽了很多条件，关键是使公务员招录工作体现得更加人性化，从而有利于让真正的人才进入到公务员的队伍中来。"
 </description>
		<link>http://www.donevii.com/post/863.html</link>
			</item>
	<item>
		<title>关于SIGPIPE导致的程序退出</title>
		<description>收集一些网上的资料，以便参考：

http://blog.chinaunix.net/u2/69143/showart_1087349.html

当服务器close一个连接时，若client端接着发数据。根据TCP协议的规定，会收到一个RST响应，client再往这个服务器发送数据时，系统会发出一个SIGPIPE信号给进程，告诉进程这个连接已经断开了，不要再写了。
根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN

如:    signal(SIGPIPE,SIG_IGN);
这时SIGPIPE交给了系统处理。

服务器采用了fork的话，要收集垃圾进程，防止僵尸进程的产生，可以这样处理：
signal(SIGCHLD,SIG_IGN);　交给系统init去回收。
这里子进程就不会产生僵尸进程了。

http://www.cublog.cn/u/31357/showart_242605.html

好久没做过C开发了，最近重操旧业。
听说另外一个项目组socket开发遇到问题，发送端和接受端数据大小不一致。建议他们采用writen的重发机制，以避免信号中断错误。采用后还是有问题。PM让我帮忙研究下。
UNP n年以前看过，很久没做过底层开发，手边也没有UNP vol1这本书，所以做了个测试程序，研究下实际可能发生的情况了。

测试环境：AS3和redhat 9(缺省没有nc)

先下载unp源码:
wget http://www.unpbook.com/unpv13e.tar.gz
tar xzvf *.tar.gz;
configure;make lib.
然后参考str_cli.c和tcpcli01.c，写了测试代码client.c

#include    "unp.h"

#define MAXBUF 40960
void processSignal(int signo)
{
printf("Signal is %d\n", signo);
signal(signo, processSignal);
}
void
str_cli(FILE *fp, int sockfd)
{
char    sendline[MAXBUF], recvline[MAXBUF];

while (1) {

memset(sendline, 'a', sizeof(sendline));
printf("Begin send %d data\n", MAXBUF);
Writen(sockfd, sendline, sizeof(sendline));
sleep(5);

}
}

int
main(int argc, char **argv)
{
int      ...</description>
		<link>http://www.donevii.com/post/860.html</link>
			</item>
</channel>
</rss>
