入手平生第3款第4只手机
silentme
hanson2010
之所以这么说,是因为第1只手机Siemens 3518i用了大概一个月(记不太清了),连着学生证、书包一起丢在了出租车上没有找回来,于是回到位于西单的同一家店又买了同一款。这款三防手机(防水、防尘、防摔)果然禁造,01-07年服役6年。

第2款手机是在迪信通买的彩屏钢壳的NOKIA 6300,堪称街机。07-10年效力3年。

本周一入手了平生第3款第4只手机HTC Desire,鸟枪换炮进入智能手机时代,也是俺第1次试水水货。按照趋势分析它怕只有1-2年的工龄。


Pros and cons of having a baby
silentme
hanson2010
Pros:
  • 与你爱的人一起创造下一代生命,是上帝赋予的能力;
  • 加强与配偶联系的纽带;
  • 为人父母的(丰富)人生况味;
  • 好为人师者的满足?
  • 在大学同学聚会上找到共同话题;
  • 降低女性患某种疾病(乳腺癌子宫肌瘤)的风险;
  • 脐带血或可挽救你爱的某人的生命。
Cons:
  • 没有孩子仍然会认为人生是完整和富有意义的;
  • Messenger上出现更多的宝宝头像,开心网上充斥更多的宝宝照片和评论;
  • 不曾为人父母的遗憾;
  • 没有回滚的可能;
  • 2年或更多的私人时间被剥夺(熬夜、奶粉代购、去医院、接待老师家访);
  • 资金支持;
  • 18年或一生的责任(影响);
  • 准备好照顾一个需要特殊(医疗)帮助的孩子;
  • 中国的人口已经够多。
目前我在努力使两个因素的数量保持相等,但我找不到更多站得住脚的条目添加到Pros,谁能帮帮忙?

I've now got the new LiveJournal Messenger.
silentme
hanson2010
I've now got the new LiveJournal Messenger. My Windows Live ID is hanson2010@livejournal.com. Sign up now and we can chat!

《The Art of Lean Software Development》读书笔记
silentme
hanson2010
Lean从丰田生产系统发展而来,首先是几个常见的日文字:
  • Andon - Means “light” in Japanese. In a Lean environment, it is a visual device (usually a light or a board of lights) that gives the current status of a production system, signaling any problems (typically, green = OK, yellow = needs attention, and red = urgent/production stopped).
  • Jidoka - Autonomation, the ability of a machine to inspect its work and operation and to notify a human if a problem is detected.
  • Kaizen - The continuous, incremental improvement of an activity to create more value with less waste.
  • Kanban - A signaling system used to signal the need for an item, typically using things like index cards, colored golf balls, or empty carts.
  • Muda - Waste that consumes resources but produces no value.
Lean软件开发的七个原则:
  • Eliminate waste
  • Build quality in
  • Create knowledge
  • Defer commitment
  • Deliver fast
  • Respect people
  • Optimize the whole
比较Agile软件开发和Lean软件开发的不同:
  Agile Lean
 目光 软件开发实践和项目管理 任何范围,可能延伸至整个企业;
Lean把Agile视为一种可行的支持性实践
 聚焦客户协作和快速交付  从客户的角度消除浪费(Muda);
消除浪费的一个主要工具是Value Stream Mapping (VSM)
 包装 有正式方法论只有一些推荐实践
 操作  从Agile(例如Scrum)开始,然后加上VSM

Lean软件开发实践之concrete practices
  • Source Code Management and Scripted Builds
  • Automated Testing
  • Continuous Integration
  • Less Code
  • Short Iterations
  • Customer Participation
Lean软件开发实践之analysis practices
  • Kaizen (continuous improvement)
  • Kaizen Workshops
  • Value Stream Mapping (VSM): value-added, non-value-added, or non-value-added but necessary
  • Root Cause Analysis (five whys)
  • Kanban

利用SSH的动态端口转发上网
silentme
hanson2010
端口转发(Port forwarding),或称隧道技术(Tunneling),是指把原本不安全的TCP数据流通过SSH Secure Shell传输的方法。

动态端口转发(Dynamic port forwarding)所谓的动态,区别于本地端口转发和远程端口转发,说的是服务端口不定,且可能有多个,例如MSN、被动模式下的FTP。通过建立到SSH服务器的连接和配置好的动态端口转发,在本地提供一个SOCKS4/5代理,通过这个代理对目标服务器的访问即被自动转换为SSH服务器对目标服务器的访问。

常用软件有三,一是MyEnTunnel,实际上MyEnTunnel是一个PuTTY Link的图形用户界面,并在此之上提供断线重连等级制,但由于不支持设置二级代理,在此略过;二是SecureCRT,它是最著名的商用SSH客户端软件,提供本地端口转发、远程端口转发、X11转发等众多功能,在此也略过。

以下主角登场,即Tunnelier。Tunnelier对个人用户免费,功能适当,易于配置。

1)下载安装;
2)在Login页输入服务器地址,点击Proxy输入二级代理信息(如果你也需要),输入用户名,选择口令认证方式,输入口令,和选择保存口令;
3)在Options页取消On Login的Open Terminal和Open SFTP;
4)在Services页启用SOCKS/HTTP Proxy Forwarding;


配置Firefox的过程如下:
1)在Add-ons搜索autoproxy扩展并安装;
2)重启Firefox后在状态栏出现一个福字,右键点击它,选择Preferences,选择Proxy Rule->Add rule subscription,选择9fwList (P.R.China),点击Subscribe;
3)选择Proxy Server->Edit proxy server,Add proxy,输入Tunnelier、127.0.0.1、1080,选择socks5,点击OK;
4)选择Proxy Server->Choose proxy server,选择Tunnelier,点击OK;
5)不要喝茶。

AutoProxy支持自动和全局两种工作模式,选择全局设置,一则在自动模式下未过滤地址只能使用直接连接而不能设置代理,二则免了代理对访问内容的记录和审查。

利用twitterfeed同步Delicious到Twitter
silentme
hanson2010
twitterfeed是利用定时轮询机制把RSS(RSS 2.0或Atom)同步到Twitter、Facebook等网站的网站。以下就说明一下把Delicious优雅的同步到Twitter的设置步骤。

所谓优雅是与Delicious自身提供的Settings->Sharing功能相比而说的,虽然Delicious原生功能的设置相当简便,且为准实时同步,但同步出来的字符串只是像 http://icio.us/xxxxxx 这样而已,对于Twitter读者不具有任何实际意义。因此在此还是选用twitterfeed,就算目前最快只是半小时轮询一次也没问题。

1)登录twitterfeed,Create new feed;
2)随意填入Feed Name,例如Delicious/hanson2010。在RSS Feed URL框填入 http://feeds.delicious.com/v2/rss/YOUR_NAME/tweetthis?count=15 ,注意结尾处的tweetthis,这表示只读取具有tweetthis标签的书签,如果你希望同步全部书签,尽可去掉/tweetthis(你的RSS地址可以在Delicious首页下方得到);
3)打开Advanced Settings,在Update Frequency项选择每半小时和每次最多5个(或你希望的频率);
4)在Post Content项选择title only表示只获得书签的TITLE,选择title & description就表示同步出来的字符串形如TITLE: NOTES;
5)推荐使用默认的bit.ly作为URL缩短服务,点击bit.ly settings,输入API Login和API Key,可以在你的bit.ly Account页面找到;
6)其他项目默认或留空,到第二步绑定你的Twitter帐号,和激活它;
7)加个书签测试,别忘了加tweetthis标签,之后冲杯咖啡好了。

以下是我所使用的社会性软件之间的大致同步关系,如果没有这张图,也许会很容易产生涡流效应(虽然有些网站明确声称不支持接力同步)。

怎么从飞机外观认机型
silentme
hanson2010


为保证可操作性,尚有以下限制:
1)未考虑外航;
2)未考虑全货机;
3)未考虑支线机型;
4)未考虑即将淘汰的罕见机型;
5)经验判断不保证完整,例如东航没有737以上的波音机型。

如有不妥,敬请拍砖。

飞机结构专有名词
silentme
hanson2010
机头 Nose
机翼 Wing
襟翼 Flap
襟翼整流罩 Flap fairing
副翼 Aileron
缝翼 Slat
扰流板 Spoiler
小翼 Winglet
水平尾翼 Horizontal stabiliser
升降舵 Elevator
垂直尾翼 Vertical stabilizer
方向舵 Rudder
前轮 Nose wheel
主起落架 Main landing gear


(来自NASA网站

Python字符编码常识
silentme
hanson2010
Unicode是被所有主要计算机公司接受的非官方字符集,而ISO 10646(UCS)是被视为全球法定标准。两个标准包括相同的字符库和二进制表示。

为了方便传输和存储,一般要对Unicode进行编码转换。常见的编码有ISO8859-1、GB2312、GBK、UTF-8,和UTF-16等,其中UTF-16直接就是Unicode编码,未做转换。Unicode 5.0如果不算兼容区共包含70217个汉字。GB2312有6763个汉字,GBK有21003个汉字,GB18030-2000有27533个汉字,GB18030-2005有70244个汉字。

Python中的str和unicode类型分别对应字节码字符串(Byte string,不提扩展ASCII字符集了)和最多占据4字节的数字(Unicode字符集)。任何时候仅在程序内部使用Unicode对象进行保存和计算,I/O时需要进行编码。decode(encoding)可以把字节码字符串转换为Unicode,encode(encoding)可以把Unicode转换为字节码字符串。
>>> '海生'
'\xba\xa3\xc9\xfa'
>>> u'海生'
u'\u6d77\u751f'
>>> '海生'.decode('gbk')
u'\u6d77\u751f'


要工作在UTF-8下,需要将Python源代码以带BOM的UTF-8编码保存,并在文件头部添加:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-


Windows上大量应用程序以代码页(Code page)为基础,简体中文Windows XP的默认代码页是936,即编码是GBK,在不指定编码时使用。
>>> u'\u9fa5'.encode('gbk')
'\xfd\x9b'
>>> print u'\u9fa5'.encode('gbk')

>>> print u'\u9fa5'


同样的数据经过不同的编码可以得到不同的二进制结果,如果查询同样的GBK代码页可能对应于不同的字符。也就是说,使用与环境不兼容的编码是引入乱码的原因。
>>> u'\u9fa5'.encode('utf-8')
'\xe9\xbe\xa5'
>>> print u'\u9fa5'.encode('utf-8')

>>> '榫'
'\xe9\xbe'


在GB18030中新添加的汉字不能使用GBK编码,即便通过GB18030编码后也不能在未配置相应代码页的终端上正常显示。
>>> print u'\u3400'.encode('gbk')
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'gbk' codec can't encode character u'\u3400' in position 0:
illegal multibyte sequence
>>> print u'\u3400'.encode('gb18030')
??

CSS常识及奇技淫巧
silentme
hanson2010
常识:
div+css的说法算是以讹传讹(同样用SSH代替J2EE,一样让人生厌),如果非要表达符合web标准的页面开发,或许可以用xhtml+css;
div仅是一个纯洁的块(block)元素而已,块元素还包括form、h1-h6、hr、p、table等;
span是同样纯洁的内联(inline)元素,内联元素还包括a、input等;
css布局模型包括:流(flow)模型、浮动(float)模型,和层(layer)模型;
DTD声明会影响浏览器工作在compliance模式还是quirks模式。

css filters & hacks:
这里的filter不是指IE的透明特效,而是指利用特别的技巧在不同的浏览器(版本)下隐藏或强制一些css行为,从而在非兼容的浏览器中实现一致的外观;
hack时常用的选择符和属性写法包括以下类型:
1、!important;2、下划线属性;3、转义属性;4、* html;5、属性选择符;6、子对象选择符(>);7、相邻选择符;8、转义选择符(\);9、注释反斜杠(/* xyz \*/)。
很好的参考资料(但不那么实用):
http://centricle.com/ref/css/filters/
http://www.communis.co.uk/dithered/css_filters/css_only/index.html
这里精简一下:
/* 只对IE6 */
* html #elem { color: red; }
#elem { _color: red; }

/* 只对IE7 */
*+html #elem { color: red; }

/* 只对IE6、IE7 */
#elem { *color: red; }
#elem { #color: red; }

/* 只对IE7、IE8 */
#elem { color/*\**/: red\9; }

/* 只对IE */
#elem { color: red\9; }

/* 排除IE6 */
html>body #elem { color: red; }
html[xmlns] #elem { color: red; }
head:first-child+body #elem { color: red; }
#elem { color/**/: red; }
#elem { color: red !important; color: blue; }

/* 排除IE6和IE7 */
html>/**/body #elem { color: red; }

/* 排除IE(对FF、Chrome、Op、Saf均可) */
body:nth-of-type(1) #elem { color: red; }
body:first-of-type #elem { color: red; }

/* 只对FF */
#elem, x:-moz-any-link { color: red; }


css tricks:
按标准,父元素不会根据子元素的内容进行高度自适应,这时可为父元素增加overflow:auto;和display:inline-block;;
子元素指定position:absolute;时,会按指定了position:relative;的父元素进行子元素的绝对定位,不指定的话默认是position:static;哦;
IE6,指定float:left;时,浮向一边的边界会变成指定边界的2倍,解决方法是再指定display:inline;。

?

Log in