趣物

有趣的东西

收到 Google Wave 的邀请

image

收到 Google Wave 的邀请了,先前看过它的一些介绍,大致就是一个协作工具吧,但是现在还没找到什么可以协作的东西,也没有太多的朋友有 Wave,所以也无法进行太多的测试。收到 Wave 邀请的同时,还得到 8 个再邀请的名额,如果还有谁感兴趣,告诉我你的 gmail,可以转发给你。

Blog分类: 
Free Tags: 

开源软件的苦与乐

开源软件的一点感想,不过不是说 Drupal (当然 Drupal 作为开源软件的一种也有同样的问题),而是 R。原本只做数学分析模型,不做统计计量模型,但是无数的 reviewer 都说: 证据呢?好吧,作计量,但是简单的计量回归已经无法满足“人民群众日益增长的复杂要求”,所以做数值模拟,做蒙特卡洛,用到 R,虽然以前没怎么用过,但是编程语言都有相通之处,譬如和 Excel 里的 VBA 相比, loop 或者 flow control 的结构基本相同(除了不用写 end if 或者 next i,略省些力气),再就是把 Cells (i, j) 换成 Mat[i, j] (总之只要把一个 spread sheet 看成一个 matrix,基本的思路都是一样,当然 R 可以直接进行 vector 运算,譬如 elseif,这个要方便很多),做模拟和矩阵运算,R 的效率都很不错,code 也简单,譬如重复 probit 估测一千次,R 里面不过几行代码,不到一分钟的运算,这点比以前常用的 Stata 要好很多 —— 这是开源软件灵活性的好处。

但是作一些简单的操作,却又凸现了开源软件的协调问题 (coordination problem)。举个最简单的例子,在 panel data 里生成 lagged variable。这样的操作在 Stata 里只有一行指令:

gen lag_var=l.var

(当然你要先用 xt 设置好 panel data)。但是在 R 里面,尽管 time-series data 相关 package 里有定义好的 lagged variable 函数,但是在 panel data 相关的 package 里面却没有,因此如果想完成这样一个简单的操作,必须写一个复杂的函数,把需要 lag 的 variable 从panel data 的 data.frame  里按照unit抽出来,设置为 time-series data,然后生成 lagged variable, 再用 cbind 合并回去,然后用 by 按照不同的 unit,再用 rbind 把各个 unit 的生成的 row 合并回去,然后 do.call 。

如果作 dynlm 和作 plm package的人能合作一下,统一做一个根据数据类型生成 lagged variable 的函数岂不是很方便( Stata 里的 laggged variable 指令是同时适用于 time-series data 和 panel-data 的)——也许这就是商业软件的好处吧,至少相互协调的很好。

当然这还不是最麻烦的地方。最麻烦的问题在于开源软件给了你灵活性的同时,也要求你很多东西要 DIY,虽然有很多现成的 package ,但是这些 package 都是大家自愿贡献的,所以不可能要求他非常的全面,当你需要一些 package 里没有的东西的时候,就不得不自己动手了,譬如想对 panel data 作一下 fixed effects poisson/negative binomial regression, plm package 里没有,其他任何的 package 中也没有找到,自己写? 虽然这在 Stata 里只是 xtpoisson / xtnbreg 这么简单,虽然这在技术上也不算太高深(Wooldridge 那本关于 panel data的教科书里有算法),但是从头开始写起恐怕没有一个星期是弄不完,并且问题在于我只是一个打酱油的 –,- … …

结论:开源软件固然好,商业软件离不了:)

Blog分类: 

orz 学校的安全问题

原来学校的网络的安全问题很简单,只要设置一个 PIN 就可以了,可是现在要求突然变得复杂以来,居然问了这么多的问题,甚至还包括 What is the first and last name of your first boyfriend or girlfriend?   … … 突然想到这些安全问题确实是打探人的隐私的好方法,因为你不得不说实话,只有这样,在将来需要解答这些问题的时候才会知道答案,假如临时编一个答案,恐怕很难记很久,当然你也可以自己给自己编造一条规则: f: A->B 凡是 A 问题一律都用 B 问题的答案来回答,但是问题是你又不可能记得这么多的规则,万一你把 f 给忘了怎么办,所以还是从 A 到 A 说真话比较容易,只是希望将来不会问更恐怖的问题。。。附上这些安全问题:

  Personal Identification Number (PIN)  

  What is the name of your first pet?  

  What is the last name of your favorite writer?  

  What is your father's middle name?  

  What is your least favorite food?  

  What is the last name of your most influential teacher from grade school?  

  What is your maternal grandmother's first name?  

  What is the first and last name of your first boyfriend or girlfriend?  

  What was your favorite place to visit as a child?  

  Which medical condition do you fear the most?

Blog分类: 
Free Tags: 

简单排版的 VBA

因为需要从一篇旧的PDF格式的 proposal 中拷贝一些文字出来,又找不到生成 PDF 的 LaTex 源文件,所以不得不 ctrl+c & ctr+v,但是 PDF 的文字直接拷贝到 word 里格式就乱掉了,一行一行的清除 paragraph break 实在麻烦,用查找替换还要运行多次,所以就写了一小段 Word 中的 VBA,测试了一下,效果还不错,贴出来分享一下:

Sub Format()
    ActiveDocument.Content.Select
    With Selection.Find
      .ClearFormatting
      .Forward = True
      .Wrap = wdFindContinue
      .Execute FindText:=".^p", _
            Replace:=wdReplaceAll, ReplaceWith:=".^l"
      .Execute FindText:="^p", _
            Replace:=wdReplaceAll, ReplaceWith:="^s"
      .Execute FindText:=".^l", _
            Replace:=wdReplaceAll, ReplaceWith:=".^p"
   End With
   Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

因为句号加段落换行是段落结尾的必要条件,所以先将.^p 替换成 .^l 保护起来,然后把多余的换行全部转换成空格,然后再把.^l恢复成.^p,最后把段落的对齐设置成两端对齐(这是读惯了汉语的喜欢,喜欢方方正正的文字块)。

这个办法还可以扩展为可以识别问号或者感叹号结尾的段落,但是因为用的不多就没有加入,同时也可以修改用于汉语。以前有一个叫做 DreamEditor 的小软件(经常和 Cterm 一起打包)可以很方便的实现上述功能,并且功能更强大,但是已经很久没有更新了,所以在自力更生一下。

Blog分类: 
Free Tags: 

Google Docs 支持公式

Google Docs 通过 Tex 支持在线公式插入。这个功能很不错,可以直接输入 LaTex 符号,并且能够瞬时生成预览。如果有 API 开放,可以改造成一个跨平台的在线所见即所得 LaTex 编辑器。

[这篇文章直接从 Google Doc 发布,另外顺便测试一下复杂公式]

\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2}\Psi(x,\,t)+V(x)\Psi(x,\,t)=i\hbar\frac{\partial}{\partial t}\Psi(x,\,t)\,\!

LaTex 源码:

\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2}\Psi(x,\,t)+V(x)\Psi(x,\,t)=i\hbar\frac{\partial}{\partial t}\Psi(x,\,t)\,\!



Blog分类: 

修改 Google Scholar 学术搜索

Google Scholar 是一个非常有用的工具,但是搜索返回的结果却很芜杂。虽然可以通过“高级选择”输入特定的期刊,但是这样比较费时间,因此写了一个简单的 HTML 页面(如下),可以快速的搜索特定期刊,提高搜索效率。因为最初是在学校的只支持 HTML 的服务器上使用的,所以功能非常的单一,如果有时间,可以用 PHP + MySQ 写一个更加完善的页面,通过对比期刊的学术因子,过滤掉一些影响因子比较小的期刊,然后把结果在同一个页面按照引用频率和时间的加权列出,这样就可以迅速的知道某个 topic 的发展程度了。呵呵,当然更实际的用途是为了写 paper 的 literature review。



  • American Journal Political Science
  • Econometrica
  • International Economic Review
  • International Organization
  • Journal of Economic Theory
  • Journal of Political Economy
  • Quarterly Journal of Economics
  • Review of Economic Studies
  • The American Economic Review
  • The American Political Science Review

Blog分类: 

我的 Kindle DX 到了

真是看扫描书的好帮手啊! 拿在手里的感觉比想象中轻很多,测试了一下(用口袋机照的,效果不是特别好):

第一,影印古籍的效果:

IMG_1966第二,竖版图书的效果:

IMG_1958

焦距不太准,下面是近距的效果,非常的清楚:

IMG_1965第三,专业期刊的效果:

IMG_1960IMG_1961IMG_1963上面两张是 AER,下面一张是 IO,很适合用来看paper,图表什么的也没有问题。 真是读书的理想工具啊!    

Blog分类: 

Iphone 3G S v.s. Touch Pro:一点小比较

LD 再用最新的 Iphone 3G S,我还是在用晚一个generation的 HTC Touch Pro( Touch Pro 2 应该和 Iphone 3G S 是一个世代吧),并非一个全面的比较,而是刚才的一件小事儿:旋转一张照片。在黄石时的一张合影,LD 和我都想把它作为手机的墙纸。LD 首先把照片从信箱里下载到 Iphone 本地,但是发现照片的 orientation 不对(Iphone 的图片管理不能自动根据照片旋转正确的 orientation),需要旋转照片,但是 Iphone 并不具备照片旋转功能,想在电脑上旋转了再同步到 Iphone 上,可是又必须在 itune 中选择同步照片,而这种同步又会抹去 iphone 里本来就有的照片,我google了一下,发现可以用 Photo Rotate 这个 App 完成,但是需要 $.99 ,在 Iphone 的 App store 又搜索了一下,发现了免费的 Photo Utility 这个 App,终于完成了旋转,顺利设置为墙纸。

相比之下,在 Touch Pro 上,传照片只需要拿 USB 电线接驳一下,Touch Pro 就自动默认为移动硬盘(或者是 Windows Mobile Device),直接拷贝图片就行了,同样是 orientation 不对的照片,HTC Touch Pro 自带的 Manila 3D 的影集程序可以按照人像自动识别正确的朝向,所以很容易就设置好了。

不仅是照片旋转,还有无线网络,家里的 router 比较差劲,用 iphone 和 touch pro 都无法用默认设置获取网络,但是在 touch pro 理,只需要把网络的 power level 从 best battery 调整到 best performance 即可,而 iphone 中却没有这样的选择,即使在家也只能用 3G 的 data。

只是一点儿小小的比较,倒不是说 Touch Pro 的 Windows Mobile 平台一定优于 Iphone 的 OS 平台,但是这些小事上 iphone 确实更麻烦一些。

Blog分类: 

收到 Office 2010 TP的正式测试邀请

invitation哈哈,想到一句话:卿本佳人,奈何做贼 。早一天发邀请给我,也用不着到处去找种子/http 链接了,心急作不得君子,只好做贼:)

Blog分类: 
Free Tags: 

试用 Microsoft office 2010

M$ 今天热热闹闹的推出 Office 2010 的 technical preview 版本,其实昨天已经可以下载了。所以昨天晚上装了一个 64 位的版本试试看,界面没有大的变化,基本上和 Office 2007 的界面相同。Lifehacker上有一系列新功能的影片介绍,看了 Word 2010,似乎新的版本更注重文档的组织结构,不过再怎么改进,恐怕也不会像 LaTex 一样方便吧,现在基本上已经用不到 Word 了,写东西还是习惯用 LaTex,不用操心格式;作幻灯片,PowerPoint 也不如 Beamer 好用 (主要是因为数学公式),而 LaTex, beamer 这些软件又是完全免费,开源免费才是王道啊(实在怀疑 Scientific Workplace 几年了都不更新的原因是因为 Lyx 的竞争,有了免费而又超乎寻常好用的 Lyx,谁还会去花几百刀买连 \usepackage{fullpage} 都不支持的 Scientific Workplace 呢?)

Office中用的最多应该是 Excel 了,配合 VBA, Excel 的功能很强大,特别是在处理复杂的数据格式上,比常用的统计软件都方便,就是有时候效率低了一些,譬如在作 Row.Delete 的 loop 的时候,即便关闭了 ScreenUpdating,如果数据量大一些,还是很慢,不知道用 64 位版本的 Excel 会不会快一些(好像 Office 2007 没有64位的版本?)

其他的 Office 组件基本上都用不到了,前阵子在更新学校个人主页时用过一段时间 MS Expression Web 2,算是广义的 Office 组件之一吧,感觉还不错,记得很久很久以前,Frontpage 是不如 Dreamweaver 好用的,但是 Expression Web 2 的感觉不亚于 Dreamweaver CS 3 或者 CS 4。

还有就是 Visio 了,画组织结构图的好工具,只可惜不能直接保存为 EPS 格式,必须用 EPS 打印机。

哦,忘记了 Outlook,事实上昨天装好 Office 2010 以后,最先用的就是 Outlook,似乎添加了不少功能,不过应该都是给企业用户使用的吧,对于我来说,可以支持 IMAP 协议,并且能和 Google Calendar 以及手机同步就足够了。

不知道会不会有人去花钱更新 Office 2010,不过至少现在这个 TP 版本是免费的,如果甘心作小白鼠,在 megaupload 上很容易搜索到 32位 和 64位的下载链接,记得用 jdownloader:)

Blog分类: 

Pages