Saturday, January 26, 2008
pyfan是一个python写的fanfou客户端,运行在命令行下面。 基本功能终于差不多全了,直接下载源代码吧。 使用说明 第一次使用的时候,用 -l 用户名 作为参数,建立数据库,默认是下载前100条,可以用 –max=number 设定。 -u 是用来更新的,一直下载到你上一次更新那个时间点,可以用 pyfan -u | less 慢慢看。 想要发言,随便写就可以,例如"pyfan @xxx 天气真好~"。 这两个参数可以和以下参数配合使用(默认是从第1条开始显示20条): -n 设定显示的数量。 -b 设定显示的开始位置。 -t 显示timeline -m 搜索出现 @自己 的帖子。 -c 用户名 搜索你与某人的往来对话。 -w 用户名 搜索某人说的话,当然也可以搜索自己的。 -s 字符串 按字符串搜索。 -d 日期 按日期搜索,格式为10位数字,分别是年、月、日、小时、分。可以不全,比如 -d 08 ,就是搜索 2008 年的帖子。用00占位(小时和分分别是24和60占位),比如 -d 000011 就是每个月11号的帖子。 "-f 数字"用来添加分享,数字对应上一次打印出来的列表开头的数字。 题外话 饭否的API比较不全,比如没有搜索,也无法输出20条之前的内容,很不爽。 所以pyfan的主要特点就是下载20条以前的东西,为了达成这个功能,基本上主要的内容下载都用的是html解析,虽然笨拙,但是能工作。损失了一部分信息,比如说没有"秒"的属性,因为页面上没有。 [...]
(原发于Readfree) 1)为什么要在PDF里面嵌入字体? 因为目前还有一些平台上的PDF阅读器不支持中文——包括一些电子书(比如SONY的那个),还有一些掌上电脑(Palm等等)——如果不嵌入字体的话,就只能看到乱码了。Linux平台其实也是需要额外装中文包的。 2)用什么方式可以嵌入字体? 大部分情况下,都可以采用虚拟打印的方式嵌入。除了Acrobat之外,PDFfactory等多款软件都有这种功能。不但可以支持PDF文件,也支持任何一种文件的打印。 在Acrobat中,这个功能是用Distiller实现的,也就是PDF打印机,默认的情况下Distiller就是完全嵌入字体的。 3)能不能直接修改PDF中的字体嵌入属性? 如果你手中已经有一个PDF文件,除了把它重新打印一遍,还有什么办法么? Acrobat中没有特别方便的方法修改PDF的字体嵌入属性(似乎其他的PDF编辑器也没有要加入这个功能的意思)。如果一定要这么做的话,可以用Tools –> Advanced Editing –> Touch Up Text Tool,选中需要嵌入字体的部分,右键菜单选择属性(Properties),就可以选择Embed嵌入字体。有些字体系统里面没有,只能手工选择系统里面有的字体嵌入,比较麻烦。并且中英文因为编码不同,不能同时修改,因此,这个功能只能用来救急,不太实用。 4)理想 网络上有一个为SONY Reader开发的pdflrf转换工具,可以自动将PDF切边,转换为图片,再压缩成SONY专用的lrf——这还是一个命令行下的工具,意味着可以批处理。可惜作者似乎没有想过要把这个pdf再转换回pdf,如果能够实现,也能够造福其他平台和PDA。就算不行,有一个命令行下的Distiller给我们嵌入字体也好啊,可惜Windows平台下的acrobat永远不会有这么方便的功能。
(VNC到Linux,再VNC到Windows……吃多了) VNC是一种显示远程桌面的软件,特点是跨平台(服务器和客户端都同时支持Windows和Linux),可以多人访问同一个桌面等等。 1)服务器端dpi设置 在Linux下打开VNC服务非常的简单,比如说Ubuntu,用vncserver命令就可以了。但是客户端登陆上去往往发现字体大小不太对。这个时候加上-dpi 96这个参数就好了。如果希望字体大一点,可以改成100。 2)ultraVNC中的alt+tab ultraVNC登陆到服务器端之后,不会截取alt+tab这个按键,这样你就不能很方便的在服务器端切换。实际上只要按下Scroll lock键,ultraVNC就会把这个命令发送给服务器端了。via 3)x11vnc显示Linux桌面 在Windows下只有一个桌面,而Linux则可以打开多个桌面。vncserver默认是打开一个新的X服务,如果要使用当前的X,则需要用x11vnc这个命令。在Ubuntu下,root可能需要指定-auth /tmp/gdmxxxxx参数,普通用户也需要进行相关的设定。我现在还为一个较xdamage的参数头疼。 4)无法重复打开gnome-session 登陆到新开的X上当然需要一个桌面,只有一个term多寒酸。但是gnome-session似乎不能重复打开,不知道最好的解决方法。我的解决方法是装了个xfce,然后仅仅启动xfce-panel和scim,也就是只有系统栏和输入法,很好用。
周末和一个博客读者聊天,说:你博客现在也没有个只显示标题的翻页方式,翻起来很麻烦。于是一边聊,一边装了个Extended Live Archive Plugin,现在大家可以按照日期、分类或者标签,快速的查找文章了,链接就在页面顶上。另外,前一阵因为Feedsky迁移Cname地址,造成过年之后的新文章Feed里面都没有,现在也修好了。 WP2.3出了很久了,我依旧徘徊在2.2平台上面,并没有迁徙的打算——Liang Lu的搜索引擎研究则更牛,四年才升级了一次系统,由于数据没有备份,大量新的文章丢失——我这里还是经常备份的。 软件系统就是这样,升级本身也是很重要的一个策略,如何升级,什么时候升级都是很重要的。自由软件和商业软件一个很大的不同,就是频繁升级的开发模式——每次有一个bug修复或者功能增加,就作为一个新的版本发布——好处在于新功能能够在最短的时间内接触到新用户,坏处在于所有的用户也都成了小白鼠。刚刚用Linux的时候,很喜欢Upgrade系统,看着软件升级到最新版本总有一种莫名的兴奋——大概和Windows用户喜欢重装类似。现在已经好多了,Ubuntu 7.10装完之后,两个多月没有更新过了。 对于普通用户来说,定期更新和备份是一个比较好的策略。Linux是1年到1年半换一个大的版本号,3个月左右进行一次系统升级;主要密码是3个月到6个月一换;重要数据是1个星期到1个月1次备份。主要是要在软件功能、被迫升级需求、防灾需求之间进行平衡。 对于防灾,还真没有太多的心得。谁有这方面的书籍或者文章推荐?
Thursday, January 10, 2008
简言之,这是一个python写的faufou命令行程序,可以很方便的在终端下面给饭否发文,或者查看最近朋友们都说了哪些话,目前仅仅实现了一些基本功能,不过已经很好玩了。第一次运行的时候要用-l初始化一个用户名,会下载最近100条好友和个人消息: ./pyfan -l username 初始化之后,就可以直接说话了: ./pyfan what you want to say. 或者使用-u命令看一看上次更新之后你的朋友们都说了些什么(如果怕太多,可以与 less 配合): ./pyfan -u Windows XP/Linux都能用,Windows需要装Python运行环境,或者下载一个体积比较大的zip包。如有兴趣,请到这里下载。 此外,用-t可以显示最新的timeline,用-s string可以搜索关键词,用-m可以显示@me的段落,用-c name可以显示你与某人的对话(.exe版本的似乎工作的不太好)。默认是显示从第一条开始显示20条,配合-b和-n可以进行控制。 接下来准备有时间把几个没有实现的功能写完(比如-d按照日期搜索,还有抓取较早的帖子);如果有时间,就用wx写一个窗口(现在还一点都不会呢)。 最新消息请看这里: 项目首页 中文手册
最近拿到一本《天津市2007年统计年鉴》,发现一些有趣的事情,比如说天津市的常驻人口(来自:表3-1 人口主要指标(1990-2006年))。如下图所示: (天津市1990年~2006年的人口) 从图上可以看出,天津市的人口在1999-2000年间出现了一次飞跃,并且进入一个快速增长的上升通道,具体数据为:884.03, 908.89, 920.41, 928.02, 935.28, 941.83, 948.19, 952.59, 956.64, 959.48, 1001.14, 1004.06, 1007.18, 1011.30, 1023.67, 1043.00, 1075.00。具体分析如下: (天津市1990年~1999年的人口) 1990年到1999年,天津市增加了约44万人口。拟合出来的曲线大致是32.498Log[x]+884.45,按照这样的速度,就算到了2100年,天津的人口也才1037万。 (天津市2000年~2006年的人口) 2000年是一个特殊的年份,在这一年天津的人口突然往上跳跃了一次,一口气进来了40万人。接下来,就按照0.5119x^3-3.2511x^2+9.1356x+994.76这个曲线狂奔向上而去。按照这个速度,到2010年末,天津就要超过1272万人了。 与此同时,户籍人口保持了几本上是线性的增长,数据为:866.25, 872.63, 878.97, 885.89, 890.55, 894.67, 898.45, 899.80, 905.09, 910.17, 912.00, 913.98, 919.05, 926.00, 932.55, 939.31, 948.89,大家可以自己作图。 为什么会有这样一个爆发性的增长?最有可能的是滨海新区。根据滨海新区大事记,这一年似乎没有发生什么特别的事情。但是根据最近的发展,这个区域确实应当出现一次人口大规模迁入的造城运动——不过我似乎太不敏感了,对这个大规模的人类迁徙竟然没有什么感觉。但是结果可能是:滨海新区在超过环境和社会容量之前造成,还有一段快速增长的时期;另外,天津的户口也会越来越值钱了,毕竟更多的常驻人口在争抢少量的户口。 天津统计信息网上面有2005年及之前的几期统计年鉴,各种信息也挺丰富的,有兴趣可以过去挖掘一下。
Also filed in
|
Tagged 天津, 数字
|
Thursday, December 20, 2007
今天在别人的机器上用Mathmatica 5,才想起来6里面的演示中,有一个很有趣的功能,如下图所示: 当你输入 Manipulate[Plot[Sin[n x], {x, 0, 2 Pi}, Filling -> Axis], {n, 1, 10}] 之后,就可以得到这样一个动态的图形。Plot是绘图函数,而Manipulate就是一个容器,让这个函数的某一个部分变得可以操作。这样在你测试模型的时候,就可以动态的看到某一个参数被改变的时候,模型的输出会发生怎么样的变化。 Mathematica的官方网站上还有很多的例子,不过大部分都看不懂…… 另外,虽然我没有去上“计算机在环境科学中的应用”这样的课程,最近还是接触了很多新的软件,比如Mathematica,比如Vensim。美国人确实很厉害,能够把这些理论都计算机化,做成软件,然后就能够把本来是人工完成的事情教给机器去完成。这是他们强过我们太多的地方。
Also filed in
|
|
Tuesday, December 11, 2007
(Mathematica 5 截图) 最近在玩Mathematica 5,才刚刚上手,学校里面有破解下载的,Windows和Unix的版本都不到100MB。另外,Walfram公司居然还提供了免费一年的Mathematica 6 for students,如果你是南开大学的学生,可以用自己的邮箱申请。 教材我看的是一本《Mathematica5在大学数学课程中的应用》,在图书馆里偶然发现的,条例清晰,很不错。网上有一份上交大的教程(以及很多的复制版),Walfram公司官方网站上也有一本《Mathematica全书》,不过都是针对版本4的,其实总体上都是差不多的。 这个东西功能相当强大,解方程、微积分、线性代数、数理统计都能做,长处在于计算精度和数学变换。其实看这个主要是想复习一下微积分,我一直对微积分深恶痛绝,有了这样一个有趣的伴侣,或许会好玩许多。如果我早几年就发现这个软件,数学课的成绩会不会好一些呢? Solidot/Slashdot最近报道了一个开源的数学软件Sage,看起来功能蛮强大的。这个软件应该发展了好几年了,可惜国内鲜有报道,文档什么的也是空白。如果有时间,倒是可以做一些这方面的工作,不知道谁有兴趣? 另外,美剧《Numb3rs》(数字追凶)可以看一看,和CSI差不多,都是讲FBI破案,但是融入了很多数学的内容。虽然没有涉及到计算细节,但是至少展示了数学和现实结合可以达到什么程度。看一看对开拓思路是很有益处的。
Also filed in
|
|
Wednesday, September 26, 2007
1,一个实际问题 提问:我需要打印100份成绩单,这些成绩单里面大部分的东西都是相同的(比如说学分说明),不同的只有学生姓名、成绩等少数内容。有没有简便的办法可以完成?另外,我的同事已经做好了一个空白表格,在印刷厂里面印了好几千份,为了不浪费,我只能套用他所设计的Word文档,以便不造成打印错位,有人能帮我一把吗? 答案:最简单的方法莫过于把现有的Word文档已经印刷出来的地方改成白色的,然后在需要填写的位置填写上你所需要的内容,然后保存成一个又一个独立的文件。我原来也是这么做的,不过还好我发现了一个好东西:邮件合并,就在工具菜单里。 简言之,邮件合并就是你需要把一封商业邮件发送给很多很多的人,它能够自动把一大串客户通讯录和一个拟好邮件合并在一起——当然说,你也可以用它来做类似的事情,比如说,上面这个成绩单。 比如说,现在成绩单已经放在Excel里面了,第一行是标题:名字、数学、语文。下面的是内容。然后,我们打开一个已经排好版的Word文档,在菜单上单击右键,打开邮件合并工具栏,然后选择打开数据源,打开对应的Excel表格。然后我们选择插入域,就可以选择对应的标题栏,插入相应的标题,点击查看合并数据,就可以看到相应的数据被插入啦!当然,在插入Word域选项中,你还可以使用IF开关选项,插入更具选择性的文字。 现在你是不是轻松多了? 我也知道Access可能会更高效更好用,不过邮件合并这个功能就在一级菜单下,而且几乎没有学习成本。强烈推荐比较懒惰的人使用。 2,便捷套套和Feedburner转向 既然每天都要和河蟹功夫网过日子,没有一个好套套是不行的,还好我们有Tor。关于Tor,Caii刚推荐了枪旗工作室的Tor代理教程,不过相比之下,我更喜欢与PortableFirefox相配套的PortableTor(集成了Tor核心,Vidalia图形界面,Privoxy代理)项目。不用安装,解压即用,放在U盘上还可以随身携带,方便的不得了!另外Firefox用户还推荐安装Torbutton插件,方便随时戴套,随时安全。最后是友情广告:如果您的宽带足够的话,最好打开Tor server,在Vidalia中有选项的。 另外,晚上费了一大把力气,把Feedburner中的item stats关掉了。这个选项让你的Feed标题变成了通过Feedburner跳转之后再访问。现在FB在国内被河蟹,很多的Feed都无法正常跳转,难免造成读者流失(即使像我这样方便戴套之后),所以还是费点力气改过来为好。这个选项很难找,在Analyze->FeedBurner Stats->Item link clicks。 Powered by ScribeFire.
Tuesday, September 25, 2007
1,一个实际问题 提问:我有一张很大的表,比如说,全国所有城市和对应的人口数。现在我要把我所研究的10个城市的人口数找出来,我应该怎么做? 最简单的答案:把这张大表打印出来,然后圈出自己要研究的城市的人口,然后再输入到对应的表里面去。 我找到的答案:将大表放到Excel中,然后使用vlookup()函数,应用关键字索引,将所需要的对应人口数量找出来。具体用法如下: =vlookup(关键字, 搜索表, 返回值所在列, 精确搜索开关) 当然,你也可以用python,或者任何你喜欢的自动化工具来完成这件事情,欢迎提供更高效的方法。 这个是我最近两周在做的一件工作,有一组研究对象,我需要从不同的大型数据库中抽取他们的属性值,进行比较研究。幸运的是,这几个数据库都有导出到Excel的功能,不然我真的会疯了,因为有100个研究对象,4个数据库。最后,是vlookup()救了我一命。是的,只一条命令。 2,数据复用 英文里面有一个词叫mashup,原意是声轨合成。简单的说,就是将不同来源的数据整合到一起,重新组合,以创造新的价值。很多文章都在讨论这个问题,很多博客都在做这件事情——比如说,他们将自己读过的好的博客,在自己的博客文章中列出来。方军最近在讨论的新闻聚合,还有他最近引用的IBM的新闻,都在说明,数据的整合和重复利用已经成为一个新的增长点,在这一点上,我们能够做更多的工作。 从根本上来说,博客的流行和RSS(订阅源)有关,而RSS就是一种标准的数据交换手段。虽然他只是一个小小的文件,但是它通过标准化的数据交换,使每一个博客上的数据可以被第三方站点很容易的重新展示和复用,从而增加了信息的价值。 另外,也曾经看到有些博客讨论在国内还没有流行起来的微格式,比如说,用标准格式展示个人名片,便于在互联网上交流和沟通。这些都是增加信息复用方便程度的手段。 相对来说,很多的商用数据库还是比较封闭的,除了用自己的查询手段之外,无法与第三方软件对接。这一次我还算幸运,至少他们能够导出Excel。但更多的是一种传统思维的问题,比如说,很多人喜欢用Word做表格,因为打印出来比较漂亮,或者比较容易调整格式——但却因此大大增加了数据复用的难度。(在此我们暂不讨论使用.doc之类封闭格式所带来的负面影响) 3,软件帝国 曾经很流行一句话:“用户往往只用到Office中10%的功能而已。” 我想,那是说Office 97吧,那个时候刚刚整合进去VBA。现在应该是1%了。比如说,Office的多语言和全球部署,已经是2000年出来的功能;后来是2003,然后是2007。MS已经不知道往里面添加了多少新功能了。 问题是,用户会去探索这些功能么? 记得似乎是在Linus的Just for fun里面读过,绝大多数人用计算机,学习编程,仅仅是停留在”hello world”上面而已。”hello world”,然后呢?没有了。 这一次周末在火车上,和unclewang聊了一路,也是说的这个问题。unclewang用计算机不太久,不过她觉得很新奇——原来计算机除了看电影、上BBS,还能做这么多有趣的事情? 其实很多时候,我们只需要多想一点:“这件事情用计算机来做,能够在哪些地方更为省力?” 经验表明,最懒惰的人,往往才是最好的玩家。 反过来说,对于“勤奋”的普通人,商家要考虑的就是发布粒度的问题了,用可以接收的方式,把好的功能推给用户。微软?太大了,简直没有所谓粒度的问题…… Powered by ScribeFire.