Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

认识了 Sophie Zelmani

很早之前在某个人的 Blog 上听到过一首 《Oh Dear》,很舒服,但是不知道谁唱的,也没想起来去找。

不过平常有从电驴上拽无损 CD 的习惯,这不,这次就碰上了~ 

原来她叫 Sophie Zelmani,介绍在此

这次拽的是 《A Decade Of Dreams》,继续拽她的早期专辑中……

  1. Dreamer
  2. Can't Change
  3. Going Home
  4. Precious Burden
  5. People
  6. Bitter Kind
  7. Oh Dear
  8. Stand By
  9. Happier Man
  10. Leaving
  11. Nostalgia
  12. So Long(Aranjuez version)
  13. Gone with the Madness
  14. Fade
  15. To Know You
  16. Always You
  17. Got to Stop
  18. Our Love

开始看 WPF

嗯嗯,有些无奈,确实是 Windows .Net 的那个 WPF。

既然 Windows 下所有的 GUI 开发技术,对我来说都是从零开始,那么就选择一个最轻松的吧。虽然也许会有兼容性问题,但是预计不会用到什么高级的功能,所以忽略了。

大致看了看前面 XAML 的内容,感觉这个东西还不错,尤其是对于了解 HTML、Glade、XUL 的人来说,只不过是同样的东西换了个马甲而已

很早之前就看过 Gtk+ 了,不过一直没东西可做,慢慢就忘了。像我这样没什么自主性的人,得有个东西让着自己来做,才能掌握点东西,就像目前最熟悉的语言是 Ruby,全是得益于 Chito。

这下好了,以后和很多程序员有共同语言了……

二月总结,三月计划

虽然现在已经块三月中旬了……

二月还算 ok,牛年计划稳步的进行中:

  • 最早的单片机项目已经接近尾声,现在进行最后的测试和修正。
  • 硬件又入门了一些。
  • Chito 小升级至 1.1.1。
  • 看完了 C#。
  • -2kg 达成。

 三月又要增加一个新的项目,比较令我兴奋的是,可能这次得自己一个人完成所有的工作。

令我发抖的是,要涉及到 USB 固件,Windows USB 驱动,和 Windows 用户软件的开发……

USB 方面,这两天看了看资料,USB 协议还真复杂,看了半天目前还是一头雾水,倍受打击……

Windows 的驱动,大致看了看,没有想象中那么复杂。另外也发现 Windows 中也是把设备全部抽象成文件的,通过文件读写函数来交互,只不过设备文件没有显示在文件系统中罢了。希望这次了解下 Windows 驱动,能对还处于半迷雾状态的 Linux 驱动原理增进一些了解。

Windows 用户软件…… 这个就听天由命咧,只能说还好当初选择了 C#,有 Windows Forms 和 WPF 可以选择,MFC 就算了……不过估计是来不及的,最后说不定把 Labview 打包成 exe 文件就 ok 了,而且效果也不赖。

召唤高人指导中……

犯了一系列愚蠢的错误……

在个小 CPU 上写个读 EEPROM 的代码,每页 EEPROM 有 256 个字节,循环依次读出来,于是顺手一写:

for( i = 0; i < 256; i++ )
{
     read_eeprom();
     ...

执行之后却没有效果,debug 发现 read_eeprom() 这个函数根本就没有执行,for 循环根本没进去……

愣了半晌,顿悟。因为是一块 8 位的 CPU,所以 256 越界了,被当成 0 了,自然执行不了。

于是立刻顺手一改:

for( i = 0; i <= 255; i++ )
{
     read_eeprom();
     ...

心想这下肯定没问题了~

结果发现写了 256 个数据之后还在写,循环跳不出去了。

愣了两个半晌才醒悟,这次是 i 越界了,8 位的无符号整数数自然永远小于等于 255,汗……

这样的话要咋办捏,难不成要写成:

for ( i = 0; i <= 255; i++ )
{
     read_eeprom();
     if(i == 255)
          break;
     ...

嗯,看上去很郁闷……

最后,终于彻底醒悟:

for( i = 1;  i;  i++ )
{
     read_eeprom();
     ...

 基础啊基础……


Update: 除了发现上面最后一条又写错之外,还是老老实实用 do_while 了:

do{
   read_eeprom();
   i++;
}while(i);

 

 

又换回了 File Based Session Stroe

早期 Rails 一直是默认用文件保存 session,原来 blog 也用这个,就是 session 文件得经常清一下。

后来换成了 session 数据库表,其实也差不多,定期得清下表。 不过有两次 session 表损坏,导致程序出错,和频繁的更新 session 表有一定的关系。

最后就是目前普遍的那种 cookie session 了,忘了 Rails 2 点几开始有这个的了,这个东西不错,没有那么多乱七八糟的事情。

不过最近大家反应 blog 出现了一些奇怪的现象,比如有的时候登录成功后,发现并没有登录上;评论点击发送后,没有发送成功,也没有错误消息;保存文章也出现了这种情况。

仔细想想,发现这些情况都是从上次升级 Chito 1.1.0 之后出现的,而在 Chito 1.1.0 中才开始用的 cookie session。本地测试也遇到两次评论发送没反应的现象,清楚下浏览器的 cookie 或者刷新下页面就好了。

具体原因不明,大致感觉是保存在浏览器 cookie 中的 session 没有发送成功,然后在服务器那边 Invalid Authenticity Token 了。

随机出现,没有规律,这个比较郁闷。

现在只好又换回了 file session,还是这个放心啊……

啥个原因捏