2014来了

今天把项目捋一捋,基本上阶段性的告一段落了。
回首2013都忘记了干些什么,时间过得飞快。把记忆快进到10月,从这开始了嵌入式开发,继续full-stack前进,对Linux系统的了解更加深入,企业市场和消费者市场的产品需求确实有很大不同,慢慢接触下来发现其实还是很有意思的一块,希望2014年更加好玩。
说到好玩,今天给老周电话拜年也正好提到了,好玩在这个年纪确实说来比较尴尬,但是如果一件事情不够好玩又不太会坚持很久,也可谓是任何事情都有其双面性吧。
春晚没看几分钟,就去躺床上了。年二九工作到第二天凌晨六点才睡,下午和Gary在后山上玩了会野战,天气很好于是我们两个满头大汗回来冲凉, 等到春晚开始我已经没有太多剩余电能了 。他对春晚完全无感,吃过晚饭全家坐在电火炉旁坐看春晚他却跑来跟我说看马达加斯加,于是考虑到过往春晚的体验,决定让他和我们坐在一起,我们看电视他看动画片。毫无疑问,春晚只会是我辈们的一点回忆了。 说回这个年,更多的意味是团圆,大家在一起就已经很开心了,形式就已经不重要了。
不知道几时开始发现自己在不再激动年三十晚12点的跨年倒计时了,大概是在外多年的经历慢慢让这份年味变淡了,似乎过年的年味永远停留在了记忆中的那个年龄和记忆中的那个家,离开了便也不再了。那个围着火炉看春晚,吃年夜放烟花的画面,那个看着电视机里主持人一起倒数跨年心跳会加速的感觉,好像总觉得新一年会有新的开始,总是很期待。
虽然现在不再那么激动了,但是真的仍然很期待2014,做一些好玩的事情。

无线中继配置

家里几台设备离路由器较远,无法用网线连接,这时想到用多余的路由器来做无线中继。找了些资料,靠谱的易懂的太少,不容易调试成功。现在总结一下,写下来,下次配置5分钟之内就可以搞掂。

A和B两台无线路由,A已经连接ADSL猫并自动拨号,B来中继A的无线网络。

需要动手:
- A路由
LAN网配置: IP 192.168.1.1
DCHP设置192.168.1.50 ~ 99
无线网络设置信道改“自动”至1~11某数,列如11

- B路由
LAN网设置IP地址: 192.168.1.2, DNS设置请参考A路由,网关192.168.1.1
DCHP设置192.168.1.100 ~ 199
无线网络设置信道改为A路由同样无线信道数值,此列为11。开启WDS,扫描无线网络并连接,设置为同A密钥类型,输入密钥。

无话可说的家伙

有个家伙通过朋友在QQ上加了我,说是有网站的项目。
然后先是了解一下我的情况,问我会不会ThinkPHP框架,Zend呢,然后又是XXX CMS了解吗?等等。
我这么听下去完全不知道他到底是要干嘛,因为这些完全不相关嘛。
接着又问电影资源网站做过吗?
好吧,这时我以为是要做电影种子站或者在线视频。
结果,那家伙说帮他看看一段广告联盟的代码,为什么在他的A站上面可以正常显示,而B站上却一片空白。
我说你这不是要建站,而是想找人debug吧,于是建议他去找广告联盟客服,他回答客服说了只有审核通过的网站才能投放广告。
我听着有点来火了,你到底怎么回事?快说。
原来,他有很多小站,走擦边球路线,想不通过广告联盟的审核而接到广告。只要他手上一个合法的站点拿到广告代码,就把这代码加载到各类黄色、赌博类型的网站上去,要能显示还能计费。
真是给跪了,神叨叨的,浪费很多时间才进入主题,而且还是个伪命题。

最近遇到的几个pitfalls

- Skype for Mac:下载时不小心到了Skype.tom.com,结果下载回来一个5.5*版本,一启动就crash,无解。后来挂VPN去了Skype.com才发现,最新版本已经6.9了,安装后没有任何问题。

- Maven 3.1*: 遇到了无法编译Android App的问题,直接从Github上拿回来人家的代码编译也不行。一查发现原来降级到Maven 3.0.5即可顺利编译通过。https://github.com/mosabua/maven-android-sdk-deployer/issues/137

– Updated 2013/11/20 –
这几天solo一段android代码,其UI结构是常见的 ViewPager + Fragment 两层嵌套,每个Fragment从网络请求一段数据回来后再按照指定的格式显示出来,比如有的是ListView,有的是GridView等等。
调试代码时发现一个有意思的事情,App启动时会发起两次网络请求,再仔细一看是某个Fragment的onActivityCreated被呼叫了两次。为什么重复执行onActivityCreated?
后面才知道原因:我这个APP还没写完,偷了个懒,于是每个Tab下面的Fragment都是调用同一个XxxFragment。
而ViewPager呢,它会预加载下个Tab中的Fragment,所以第一次启动App会加载第一个和第二个Tab,也就是实例化两个XxxFragment,自然就产生两次看上去重复的网络请求。
然后如果我们浏览第二个Tab时,它又会发起第三次请求来提前加载第三个Tab,如此反复。
有意思的是,从左往右浏览Tab时,预加载是0(1) – 1(2) – 2(3) … 的顺序,括号内是提前加载的Tab编号。
而从右往左浏览,则是 3(2) – 2(1) – 1(0) – 0这样的预加载次序。当然了,如果你中途改变了浏览方向,它自然是无法提前预测到中途变向,但那样的话预加载仍然会发生,只是没有产生积极的效益而已。
一场误会,虚惊了一场。虽然是浪费了几个小时生产力,毫无代码产出,但是好在加深了细节理解。

– Updated 2013/11/24 –
一个Android项目集成第三方library,需要在项目文件夹的project.properties加入manifestmerger.enabled,但结果是始终无法合并manifest文件,有人说这样那样,重启eclipse之类,总之无效。刚刚起床醒来,先clean project然后再build,搞掂。

未完待续

三巨头的Notes

Mac上的Notes常常出错,而且经常显示重复条目,类似情况很多: https://discussions.apple.com/thread/4142571

Google的Keeps,PC上仅有云端。Android上的Keeps把玩过几天,完全无感,删了。对这家公司的软件实在不能指望太多,Android系统出来几年了,还没个像样子的自带Notes应用。的确,人家重视的是Web和Android的大平台。加上Google reader的境遇,Google Tasks的现状,完全无信心使用下去。

Win上的OneNote不错,可惜没有Mac客户端。最近玩了几天WP8手机,整体感觉良好,操作简单流畅,自己日常的需求基本都有App覆盖到。OneNote比Keeps?明显好多了。

不过抱怨归抱怨,上述状况肯定会不断改善。
现在趋势比较明显,个人类的Notes需求基本上会被系统(Mac/iOS/Android/Windows/WP)自带软件所满足。第三方的Notes软件要和巨头们竞争,就得走差异化的路子,比如project management, real-time collaboration啊等等诸如此类。否则…我可以用“团灭”这个词么?