参加全国高校教师网培有感

5月28日到30日三天,奔赴帝都,和王宇颖老师、苏小红老师一起,做了一次关于C语言课的培训。通过网培论坛上的热烈讨论,和线下的当面交流,以及评完所有的200多份作业,有如下感想:

  1. 我的“淡讲课,精作业”获得了极大的肯定和极大的否定。“否定”完全是在意料之内,“肯定”却在意料之外。有理想的教师还是很多的,中国教育的复兴只能寄希望于此了。
  2. 我是足够幸运的。有些教师也曾做过与我的方法类似的尝试,但无功而返。我的成功完全是因为个人的坚持和幸运。如果不是幸运地遇到王宇颖老师这样的直接领导,和徐晓飞院长这样的大领导,给我一个绝对宽松的环境去折腾,我也许早就完蛋了;如果不是幸运地遇到这样一批批地学生,能用真心去体会我的真心,能有热情和毅力去面对挑战,我也许早就完蛋了。
  3. 领导、专家、传统和各种刻板的制度是改革的主要阻力。有很多老师是想去做一些与众不同的事情的,但没有能放开手脚的环境,只能寄居于他人的阴影之下。
  4. 如果有机会,想到二本、三本的院校去实习一下。那里的学生真的如他们老师所言,那样冥顽不灵吗?还是这些教师并没有真正认识他们的学生呢?
  5. 太多学校已经拥有了服务器和软件,但基本上都不知道或者没去想怎样让课程网站提升教学。这个方面还有很多工作可做,包括蕴藏的巨大商机。

Moodle Online Judge 1.3.1发布

新特性:

  1. 支持40余种编程语言的在线评测。新语言的支持来自于ideone.com,这是一个免费的Web服务。所有程序都是在ideone.com运行,所以对您的moodle服务器而言,是相当安全。该功能由刘琦卿开发。
  2. 因为可以使用ideone.com运行程序,所以从这个版本开始支持Windows了

下载请到:http://code.google.com/p/sunner-projects/downloads/list

中文排序补丁 for Android 2.1 (Eclair)

image

  • 只有排序(包括联系人、应用程序等),没有检索
  • 无论系统语言设成什么,中文都是按照拼音排序。
  • 在CM 5.0.7/5.0.8上测试通过。其它Eclair的rom应该也能用。

下载地址:http://sunner.cn/pinyin-patch-sorting-only-eclair.zip

和任何Rom的安装方法一样,到Recovery模式下安装。安装后,需要清空一下联系人数据,再重新同步联系人,才能生效。清空方法:Settings->Application->Manage Applications->Menu Filter->All->Contacts Storage->Clear data

做开发的朋友可能用得到这个文件

Android 2.1 (Eclair)的中文联系人拼音检索(App方案)

上一篇文章谈了从修改android入手解决拼音检索的方案。刚才路上又想起了我最早做这件事时想的app方案。Eclair使app可以方便地实现这个功能。有两种策略:

  1. 无root情况,可以从name生成各种检索词,存入nickname,如果允许app写nickname的话
  2. 有root,可以直接操作contacts2.db,把检索词写入

除了中文,还可以用同样的方式去支持很多种语言,还可以靠缩写吸引拉丁语系的用户,群体很大。收费高级版提供周期自动更新检索词的功能,免费版必须手工运行才更新,同时显示广告。

app只有一个不能逾越的问题,就是做不到实时更新,这也是我当初最终选择改android的原因。不过,其实没有几个人刚加了联系人,就去搜索之,所以实时的意义并不大。

思路就是这样,谁有兴趣谁就玩吧,让我免费用收费版就行。

Android 2.1 (Eclair)的中文联系人拼音检索问题

Rainux早上留言说,CM的5.0.7开始支持G1了,而且速度很快。这让我又痒痒了。看了眼xda,现在还是test1,得等等才能用。为了用的时候马上就能爽,于是又跑进eclair的代码里,寻找拼音检索的解决方案。

折腾了一天,得出的结论是:

  1. Eclair已经可以用email地址中@前的字符,以及nickname(编辑联系人时点more可以添加多个nickname)检索联系人;
  2. 所以,我认为结合email、nickname和中文输入法检索,挺方便了。补丁有些不必要了。

如果有朋友还是想要拼音检索,我这里提供一些经验和思路,感兴趣的可以自己弄。

/data/data/com.android.providers.contacts/databases/contacts2.db是联系人数据库文件。其中表name_lookup保存所有的检索关键词,data_id和raw_contact_id分别对应data和raw_contact表。normalized_name就是检索关键词,以sortkey的16进制形式保存。name_type数值的含义定义在packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsDatabaseHelper.java中的NameLookupType类里。normalized_name多增加几行数据,就多几个关键词。

packages/providers/ContactsProvider/src/com/android/providers/contacts/NameNormalizer.java下定义的NameNormalizer::normalize(String name),是所有(至少我看到的都是)检索关键词入库前都要经过的一道处理。其实在这里把中文都转成拼音,就能实现拼音检索,但这样中文检索就没有了,而且不能实现简拼。

packages/providers/ContactsProvider/src/com/android/providers/contacts/ContactsProvider2.java下定义的StructuredNameRowHandler类,当姓名发生添加/变化时,该类都会被触发。如果在这里自动根据姓名生成若干全拼、简拼字串,然后把这些字串都添加到name_lookup里(调用insertNameLookupForStructuredName()就行),就可以实现拼音检索,而且不影响中文检索。这也许是最容易做到的了。但是不是肯定能实现,得实验才知道。

现在没兴趣(如果有人送我个N1,没准我就会有兴趣了,^_^)继续弄下去了,感兴趣的继续吧。

rescuetime.com挽救了我的时间

从Google Reader上朋友分享的一篇文章中获知了rescuetime.com这个网站,一用之后,爱不释手。可以说,它完美地拯救了我。

简单说,这个网站在电脑上安装一个客户端(支持Windows、Mac和Linux),搜集用户在各个网站、软件、文档上的停留时长,然后再它的网站上显示丰富的统计结果。对每一项活动它都可以设定一个叫productivity的数值,比如把vim设成2,把QQ设成-2,这样统计结果里就能显示出用户干正经事和不干正经事的时间各是多少。常见网站和软件基本都已经预设productivity,所以需要自己做的定制工作非常少,基本上注册后就能立刻获得满意结果。

已经连着用了两天。我设定了每天在电脑上做低productivity的事情不能超过1小时,在累计0.75小时的时候它就会提醒我注意。所以这两天的效率还是蛮高的,有效工作时间都在8小时以上。顺带连看reader的效率也提高了。下面是我工作效率的统计结果(实时更新):




如果你整体坐在电脑前,就不妨玩玩这个。就算你是一个很有效率的人,用它统计一下自己的时间主要都花在哪里,也能让自己更有的放矢地进行时间优化。

建议从这个链接(http://rescuetime.com/ref/131778)注册,能延长我免费使用pro版的时间,:-)