说起来是某天逛珠海这边的电子城(就是二十几家电子元件店铺聚合的地方),经过个一小摊位时,一个自动打招呼的小装置吸引了我(就是那种当有人经过时,播放“欢迎光临”的装置)。店主MM走过来,我仔细研究了一下,问:“光敏电阻?”MM笑了一下,说:“是的,光敏电阻。”顿时明白了这东西的原理——当有人经过时,内置的光敏电阻感应到光的变化(应该是变暗了),然后播放声音。于是想回去后自己也弄一个。

然后到了昨天才想起那件事情,但还是今天晚上才有空做出来。拿出满是灰尘的Arduino盒子,按照网上的电路图接上电路,再写个小程序来读取光敏电阻的数据并作出反应(用个LED闪两下来,代替播放声音的功能)。

电路图如下:
读取光敏电阻(From Arduino台湾使用者社群 http://arduino.tw
http://arduino.tw/allarticlesindex/2009-09-06-18-37-08/50-%E8%AE%80%E5%8F%96%E5%85%89%E6%95%8F%E9%9B%BB%E9%98%BB.html

该控制程序的代码如下:

//---------begin---------------------
int inPin = 2;    //set input pin
int outPin = 13;   //set output pin
int val = 0;   //the current data from LDR (light dependent resistor)
int pre = 0;   //the previous data

void setup() {
  //Serial.begin(9600);
  pinMode(outPin, OUTPUT);
  val = analogRead(inPin);   //read the data from LDR
  pre = val;   //init the previous data
}

void loop() {
  val = analogRead(inPin);
  if(pre - val >= 5) {   //compare the light change, if it turns darker
    //Serial.print(pre - val);
    //Serial.print("\n");
    blinkLED(outPin);
    pre = val;
  } else if(val - pre >= 5) {  //if it turns brighter
    pre = val;
  }
}

//make the LED blinks
void blinkLED(int pin){
digitalWrite(pin, HIGH);
delay(200);
digitalWrite(pin, LOW);
delay(200);
digitalWrite(pin, HIGH);
delay(200);
digitalWrite(pin, LOW);
}
//---------end---------------------

总结一下吧。对电路方面还是有很多不熟悉的地方,虽然高中物理的电路理论几乎都能用上,但都忘了很多。唉~~更不用说大学时还学过的“大学物理”、“数字电路”、“模拟电路”……对了,该装置可以在很多情况下代替红外线感应的,而且成本上可以节省一大笔(例如开头提到的“欢迎光临”装置)。对于我来说,或者可以用来抓蟑螂。

这个月初入手一台二手的Kohjinsha(工人舍) SA1F00WKR(白色韩国版)。装上Windows XP后,该机器无论作为上网本还是下载机,都很给力,只是作为MP4就有点力不从心了(播放RMVB会卡)。为了进一部挖掘其应用及性能,决定装个Ubuntu 10.10 Desktop上去。经过一番的折腾,下面分享一下安装过程:
第一,硬盘安装系统。
1)为什么是Desktop而不是Netbook,纯粹个人喜欢。安装系统后,也可以通过软件管理器安装Netbook、Lubuntu等。
2)机器没有光驱,于是用硬盘安装。也可以外接USB光驱来装的,只是偶没有该设备。
3)由于Ubuntu的安装程序图形界面在该机器上一片漆黑,所以外接了个显示器来安装。没有显示器的话,只能装Alternative版了。
安装过程参考以下文章:
[url]http://www.maoegg.com/archives/926.html[/url]
安装步骤总结如下:
1)安装Grub(或者可以直接使用带Grub的、可启动的U盘)。
2)下载ubuntu-10.10-desktop-i386.iso,放到该机器硬盘上某分区的根目录下(我就放在第一个分区下)。并把iso文件里casper文件夹下的vmlinuz和initrd.lz两个文件解压,并与iso文件放在一起。
3)启动电脑,进入grub的启动界面,按c键进入命令编辑界面,输入以下命令:
[code]
root (hd0,1)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.lz
boot
[/code]
4)进入ubuntu系统后,打开终端,输入以下命令:
[code]
sudo umount -l /isodevice
[/code]
5)运行安装程序。由于是全中文,所以安装过程略过。由于安装过程非常漫长,建议在睡觉前进行,第二天醒来就装好了。
第二,配置显卡及显示屏。
这个比较麻烦,经过相当长的时间查资料及验证,才总结出来。目前可以显示800x480分辨率,但1024x600还不能显示,其它可用分辨率包括:1024x768、800x600、600x480。
配置显卡及显示屏,把以下代码保存为xorg.conf文件,并存放到/etc/X11目录下。
[code]
Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection
Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
Option "Emulate3Buttons" "yes"
EndSection
Section "Monitor"
Identifier   "Monitor0"
VendorName   "Generic Vendor"
ModelName    "Generic Monitor"
Option       "DPMS"
HorizSync    28-50
VertRefresh  43-73
EndSection
Section "Device"
Identifier  "Geode"
VendorName  "Videocard vendor"
BoardName   "AMD Geode LX Video"
Driver "geode"
BusID       "PCI:0:1:1"
Option      "AccelMethod" "EXA"
Option      "EXANoComposite"
# Specify panel size for GeodeLX, corresponds ModeLine above:
Option      "PanelMode" "36940  800 832 912 1024  480 481 484 501"
EndSection
Section "Screen"
Identifier  "Screen0"
Device      "Geode"
Monitor     "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport  0 0
Depth     24
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     16
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     8
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier     "X.org Configured"
Screen         "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
[/code]
该文件可以从这里下载:
[attachment=0]xorg.conf.txt[/attachment]
第三,配置无线网卡。
新内核已经可以识别该机器的无线网卡了,但是还不能搜索到无线网络。但插上USB无线网卡后,却能马上找到无线网络。这个问题还没时间去搞,希望高手指教。
第四,配置声卡。
登录系统后是有登录声音的,只是播放MP3时没声音。这个问题还没找资料,也希望高手指教。
第五,其它问题。
(暂无)

这个月初入手一台二手的Kohjinsha(工人舍) SA1F00WKR(白色韩国版)。装上Windows XP后,该机器无论作为上网本还是下载机,都很给力,只是作为MP4就有点力不从心了(播放RMVB会卡)。为了进一部挖掘其应用及性能,决定装个Ubuntu 10.10 Desktop上去。经过一番的折腾,记录一下安装过程:

第一,硬盘安装系统。
1)为什么是Desktop而不是Netbook?因为Netbook版体现不出什么优势(跟Android比差远了),反而Desktop版更方便。安装系统后,也可以通过软件管理器安装Netbook、Lubuntu等。
2)机器没有光驱,于是用硬盘安装。也可以外接USB光驱来装的,只是我没有该设备。
3)由于Ubuntu的安装程序图形界面在该机器上一片漆黑,所以外接了个显示器来安装。没有显示器的话,只能装Alternative版了。曾装了个10.04的Alternative版,也折腾了很久,而且软件装了一大堆,不知道哪些跟哪些。看到10.10出来了,顺便更新。

安装过程参考以下文章:
http://www.maoegg.com/archives/926.html

安装步骤总结如下:
1)安装Grub(或者可以直接使用带Grub的、可启动的U盘)。
2)下载ubuntu-10.10-desktop-i386.iso,放到该机器硬盘上某分区的根目录下(我就放在第一个分区下)。并把iso文件里casper文件夹下的vmlinuz和initrd.lz两个文件解压,并与iso文件放在一起。
3)启动电脑,进入grub的启动界面,按c键进入命令编辑界面,输入以下命令:

grub > root (hd0,1)
grub > kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
grub > initrd /initrd.lz
grub > boot

4)进入ubuntu系统后,打开终端,输入以下命令:

sudo umount -l /isodevice

5)运行安装程序。由于是全中文,所以安装过程略过。由于安装过程非常漫长,建议在睡觉前进行,第二天醒来就装好了。

第二,配置显卡及显示屏。

这个比较麻烦,经过相当长的时间查资料及验证,才总结出来。也因为内核的驱动不断在更新,所以老版本的Ubuntu跟10.10上的配置不同。目前可以完美显示800x480分辨率,但1024x600还不能显示,其它可用分辨率包括:1024x768、800x600、600x480。

配置显卡及显示屏,把以下代码保存为xorg.conf文件,并存放到/etc/X11目录下。

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
Option "Emulate3Buttons" "yes"
EndSection

Section "Monitor"
Identifier   "Monitor0"
VendorName   "Generic Vendor"
ModelName    "Generic Monitor"
Option       "DPMS"
HorizSync    28-50
VertRefresh  43-73
EndSection

Section "Device"
Identifier  "Geode"
VendorName  "Videocard vendor"
BoardName   "AMD Geode LX Video"
Driver "geode"
BusID       "PCI:0:1:1"
Option      "AccelMethod" "EXA"
Option      "EXANoComposite"
# Specify panel size for GeodeLX, corresponds ModeLine above:
Option      "PanelMode" "36940  800 832 912 1024  480 481 484 501"
EndSection

Section "Screen"
Identifier  "Screen0"
Device      "Geode"
Monitor     "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport  0 0
Depth     24
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     16
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
SubSection "Display"
Viewport  0 0
Depth     8
Modes     "1024x768" "1024x600" "800x600" "800x480" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier     "X.org Configured"
Screen         "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

目前还存在的问题:
1)无线网卡。
新内核已经可以识别该机器的无线网卡了,但是还不能搜索到无线网络。但插上USB无线网卡后,却能马上找到无线网络。这个问题还没时间去搞。

2)声卡。
登录系统后是有登录声音的,只是播放MP3时没声音。这个问题还没找资料。

想为G1换个新电池(原电用了一年多,开始肿胀了),于是逛了一晚上的淘宝,但还是没找到好的。

本来计划好买个“烤鸭电池”(别人用电芯DIY出来的山寨电池,据说比原电耐用),但是看着样子太山寨了,于是想还是买个原电吧。

于是在信誉比较好的“淘宝商城”里搜了几家,都是50RM左右。看着图片还是不放心,问店主是不是HTC原装的,怎么鉴别之类。店主都说自己的是原装的,都可以通过客服(指的是国内多普达的客服)鉴定。但是当要求进一步提供鉴定材料(例如更清晰的实物照片)时,都说不能提供,而且都说是散装,没有外包装。淘宝真是个山寨厂商的宝地啊!看着店主都在闪烁其辞,我也心灰意冷了,还是明天再考虑那“烤鸭电池”吧。

PS. 明天又一个经常一起玩的同事离职了,他说要去深圳做网络产品的实施了。今晚聊起他的经历,还挺波折的。他是学电子商务专业的,毕业后去了一家广告公司上班。然后学会做网站,又跳到中山的一家网站公司,后来跳到我们公司做网管。考了几个证后,现在跳到深圳了。比较羡慕他有这么丰富的经历,我毕业后就在现在的公司上班了,都干了两年多,还没找到机会跳槽。

转眼10月毫无准备地来到。回顾那繁忙的9月,很多事情都没来得及记录下来。今晚看完TVB的《超级巨声2:毕业演唱会》,有几首歌勾起一些感情波澜。趁着感觉还在,记录下来。

《Somebody to Love》,查了下,原来是Queen的作品(不要提那小孩子Justin Bieber的同名歌曲了)。陈奂仁、陈国峰、罗孝勇的合同唱版已经很有感染力了。陈奂仁以其吉他功力带领节奏,加上罗孝勇那干脆直接的英语腔,陈国峰那优美高音,效果太棒了。曲末,陈奂仁还Show了一下长音。然后再去听Queen的原唱,更加震撼~正面而来的是摇滚的滂湃动力。于是那上去VeryCD找到Queen的《Greatest Hits》来下载,希望给生活带来更多的正能量。同时,QQ签名上马上更新为“Can anybody find me somebody to love”。

《写得太多》,伦永亮作曲的作品,连同吴业坤、谢东闵一起演绎,同样是优美的。是的,感情的力量是歌曲的出彩之处。可惜原唱是麦浚龙,真是浪费。

同时想到《盗梦空间》、《志明与春娇》、《分手说爱你》都还没来得及写下感想,真想问自己“What the fucking thing you did and wasted so much time?”

同时,终于买了个二手的KOHJINSHA SA1F00WKR,向往以久的Netbook版Linux(目前看上了Ubuntu Netbook)很没很好地装上去,只能运行WindowsXP来做下载机,实在是浪费。

PS. 《超级巨声2》也看完了。曾经在某人的极力推荐下追着《超级巨声》来看,现在一个人看,没人分享感受,太没意思了~~

考进华南农业大学(South China Agricultural University)的表弟,今天终于要上学了,于是我陪他一起去。

当时,一听说他考进“华农”的消息,我愣了好半天。而且是“国贸”专业,也就是经济管理学院的。一切都是那么的巧合!于是今天又再踏上“华农”这片“故土”。

其实表弟的事情很简单,也很容易就搞定了,然后我一个人重游了校园。华农不是一般的大,这个大概在四年前就感受过了。今天再来看,发现很多地方都变了。最感触的是,当年我下车的那个车站、那片烂泥地,现在已经变成宏伟的正门牌坊。从芷园过来,到正门,再进去五山那边,一切熟悉的景物又再映入眼帘。那个朦胧的雨天,那可爱的笑脸,那羞涩的我……又再一一浮现,不禁概叹往事如烟。逛了一圈,还是找不到那个叫“西湖”的地方,时间也不早了,也累了,于是那最重要的“西湖”深深地埋在记忆里。就让它永远成为记忆的“西湖”吧。最后在校医院停下来歇一歇,还给“桔头”打了个电话。他就好了,已经交了女朋友,以前什么的都抛于脑后,而我却还是单身,还要旧地重游。

夕阳西下,跟表弟道别后,黯然向地铁站匆匆走去。路上在想,要不去“公园前”的Starbucks喝杯咖啡吧。于是到那买了杯子冰冻的“拿铁”。喝着有点后悔了,由于冰浮在咖啡上漫漫融化,把上层的咖啡冲淡了。而这个咖啡杯子又只能喝到上层的咖啡,感觉就一点都不好喝了。应该喝杯Cappuccino,听着萧亚轩的《Cappuccino》,配合当时的心情。

今天下午跟小马说去珠海中邦酒店那边的Starbucks坐坐。我想去好久了,而他却想去踩踩点,看是否适合明天跟女孩子初次见面(晕一个~)。

在海滨浴场那边下了车,跟着Google地图和GPS走了一段路,才找到中邦艺术酒店。Starbucks就在一楼,分为室内室外两部分(几乎每家Starbucks都这样)。室外部分没什么特别,而室内大概划分为3个区域,依然是一贯的悠闲情调。这次点了杯“红茶拿铁”,原来红茶配以浓郁的鲜奶是这样香滑的,太棒了!跟小马坐着聊了一会,还到处拍照。临走前,看上了Starbucks的咖啡杯(准确来说是个水壶),于是买了一个。满心欢喜的去坐车。

为了坐车,走了到九州城这边,又来到了另一家Starbucks。也不知谁提的主义,拿着杯子去买杯咖啡(就是说从一家Starbucks买个杯子,再到另一家Starbucks买杯咖啡)。这想法太恶搞了。走到店里,那MM看着杯子满脸疑惑,还悄悄地问旁边的同事,杯子付钱了没有。我俩就看着偷偷乐。

坐在公交上拿着咖啡杯喝“摩卡”,聊着QQ,自我感觉非常好~!

上星期六、日(2010-08-07~08),终于跟组长跑去北京,匆匆游览了两天。

按照计划,星期五傍晚从天津塘沽坐城际快车到北京南站。由于有点事情,推迟到下午六点多才出发。坐上19:30开往北京南站的动车,约20:30到达北京南站。

然后去向师弟借相机,由于路途遥远,来到旅馆登记,23点多了。由于已经很晚,只能到旅馆附近的观音庙街看了看。吃了北京杂酱面和老北京爆肚,杂酱面还可以接受,那爆肚就难以接受了。饭后本来想找个酒吧坐坐,但已经过了凌晨12点,很多店铺都打烊,只好回去睡觉。

第二天(星期六)一大早起来,按计划去参观八达岭长城。但是到了积水潭车站就被919公交车搞迷糊了。还有一些骗子,胸前挂牌,说什么去长城快车70块,慢车35块,还说得很有道理似的。幸好组长走到德胜门后面看了下,找到真正到八达岭长城的919公交车,12块,刷公交卡才4块8。其实919的线路这么多,为什么不改一下号码?莫名其妙!

到了八达岭,下车时,组长把其水壶丢失在车上,找不着,于是影响了爬长城的心情。上长城前919的导游说长城有多辛苦,还说有个滑车,直接上到第四个烽火台。我们还是决定先上去再说。上了长城才知道,原来人挤人才是最辛苦的。组长走得快,挤到前面去,我跟着后面,拿相机乱拍。到了最高峰,第八个烽火台,打开G1,测得高度是海拔877米。然后沿着另外一边下去。最后走得筋疲力尽,把八达岭长城绕了一圈,才花了一个小时左右。这时我们庆幸没有坐那什么滑车上去。下山时喝了北京的酸奶,超级酸!对了,还看到一个卖雕刻画的。他是把一些名人头像、名画之类,用锥子一个点一个点地刻到大理石上,看着很精美,于是买了个留念(虽然有点贵,但还是值)。

游完长城,本来想顺便去附近的“十三陵“看看,据说是明朝皇帝的坟墓。但导游说那边下午4点就关门了,去也来不及。于是直接回市里,顺便去看看“鸟巢“和“水立方“。比较辛苦地换了五趟地铁才到。由于不能进去看,于是转了转,还待到晚上9点才走,就为了拍夜景。还有,在水立方的专卖店买了个“北京奥运2008”的邮集给啊饼,又买了件水立方T-Shirt作为留念。接着又来到观音庙街,找了个北京老馆子吃晚饭。吃过“老北京一锅煮“后,又感慨老北京风味非常不适合胃口。对了,饭间,整个店里就我俩一桌中国人。饭后回去旅店又走错路,幸好我的G1有GPS。

第三天计划一大早去天安门看升国旗仪式。但都累倒了,睡到10点多才起来,然后去天安门、故宫。到了天安门,发现一堆人在排队,队伍绕了好几圈,原来是排队进去参观毛泽东纪念馆的。见状,我们很明智地放弃这一景点,一直向天安门广场走去。广场四周的天安门城楼、中南海、人民英雄纪念碑、国家博物馆,都给我宏伟的感觉。拍了大堆照片后,走进天安门,直奔故宫。

故宫的感觉还是宏伟!眼前的故宫太不可思议了,简直发梦一样!一路走到故宫博物馆门口,地上都是冰棍棒,国人素质还没有提高过,让人失望。排队购买故宫博物馆门票时更让人气愤!有排队就有插队,国内常见的了,但插队的还说得自己很有道理。算了,买到门票后,就进去参观。亲眼看着电视剧里面的场景时,完全不相信眼前的建筑群是真实的。但是辉煌过后,历史的沧桑,岁月的痕迹,完全表露无遗,无处不散发着丝丝的叹息。在故宫里一直逛,想不到比长城还要累!

游完故宫都已经是下午3点多了,于是跟组长去“全聚德”吃烤鸭!虽然100多才一碟烤鸭,但确实物有所值的!吃过那“大鸭梨”的精品烤鸭,才88一只,难吃死了。吃过烤鸭,在前门大街的一家店买了三十几公斤的北京特产,准备带回去分给亲戚。但买了后十分后悔,因为太重了,运回天津十分麻烦。

最后值得一提的是,在回天津的城际快车上,偶然跟一MM坐在一起。看了看她,居然很像《我的女友叫小薇2》的女主角!闲聊中发现原来她是山东人,今年读大二,父母在天津塘沽工作,所以就过来了。到了塘沽站下车时,她居然转过身来,主动跟我说“拜拜”。我愣了一下,等她转身离去后,才想起又忘了拿个联系方式。唉~~为什么我经常这样?太失败了!

至此,旅程结束了。

PS. 这个游记也写得太烂了,还比不上小学生的作文。

2010-08-15,中午12点多,被组长送上火车后,就踏上这个既长又寂寞的旅程--坐上回广州的火车。24个小时以上的旅程,以陈绮贞那《旅行的意义》开始,散发淡淡的忧伤。陈老师的歌实在太棒了!特别适合这种悠长的旅程。

天津的出差总结?很想写,但又懒洋洋的,不想马上写。管它呢,旅程还长着。先吃点面包填下肚子。

PS. 今天是日本在二战投降65周年,也是舟曲特大泥石流灾难全国哀悼日。

临睡前还是想写点东西。

星期天看Linux C,终于看到汇编程序相关的章节了。于是想把那示例程序(一个找出数组中最大数的汇编程序)敲一下,运行一下。但是出差在外,身边没有装了Linux的电脑。这时想到了G1上装了Debian,于是把程序敲进去,但一编译就报错了。想了想,x86 CPU的指令集跟ARM不同啊!Google一下,果然是这样!再想想,还有MIPS(“龙芯“基于此架构),其指令集也跟x86和ARM的不同,也导致其也可以语言的指令代码不相同。于是无获。

PS. 在敲代码的过程中,重温了vi/vim的操作。太强大了!

今晚在QQ聊天时,有人提到在一个XML中,删除某一节点的父节点,该如何操作?一开始我还以为是用JavaScript操作。但是那人把解决问题的代码贴上来后,我才知道不是一回事。

那人用的是C#上的LinQ to XML,就像代码里用了SQL来处理数据一样,看不懂。虽然早就听过LinQ了,但还是第一次看到LinQ代码。一个排序操作直接Order by完事,无视任何排序算法。这使我一下子感觉无语了。如果这样编程,那我们学的东西基本都没用了。还有就是,这样的话,系统的效率都依赖于微软对LinQ的实现达到多高的效率(就像数据库对SQL的实现那样)。

当我正怀疑LinQ的作用(其带来的利弊)时,那人说“不管什么代码,能实现系统就是好代码“,这让我非常反感!就像我们公司老板说的那样“不管什么技术,能赚钱的就是好技术“,都是狗屁!