8月 182013
 

上周六参加了 Perl China 2013 的活动,总体上收获颇丰。由于日程紧张,只听了上午的演讲。又由于分身乏术,只听了一个厅的主题。活动地点在高端大气的朝阳区万通中心,离朝外 SOHO、CCTV 大裤衩、国贸都不远。根据百度地图指的路线,从呼家楼地铁站 H 出口最为近便。不过从 10 号线下车找到 6 号线的 H 口就费了一些周折。之后从地铁口出来到会议地点不慎又走了冤枉路,深入到了这片城中村。最后发现正确的路线需要经过一个栅栏门,这在地图上是显示不出来的。终于到了会议地点,拿到了 T 恤衫。这次上面是 Perl 6 的吉祥物蝴蝶 Camelia,颇为可爱。只是赞助商的标志也很明显。之后的开场致辞,不得不提的是有漂亮的赞助商 HR 发言。

第一个演讲主题是扶凯带来的 Mojolicious Web 框架 (简称 Mojo)。根据介绍,Mojo 是一个全功能的 Web 框架,支持 IPv6、TLS 等,支持热部署。Mojo 在路由时可以用正则表达式约束匹配。Mojo 伸缩性也很好,可以做简单的单文件应用,也可以提供复杂应用的框架结构和模板。Mojo 的 HTML 模板可以用 EP,也可以用 XSlate 等。Mojo 还提供了 Web 客户端,支持 CSS 选择器,能容易地进行 DOM 操作。附讲稿链接

第二个演讲是 Robin Lee 的 Perl on Fedora 介绍。演讲介绍了 CPAN 包与 Fedora 仓库中的 RPM 包的映射关系,包括 CPAN distribution 到 RPM 的映射(加 perl- 前缀,双冒号换成减号 -)、Perl 模块到 RPM 的映射(命名为 perl(module name))。另外还介绍了用 cpanspec 打包 CPAN 包的步骤。附讲稿链接

上午最后一个演讲是 @ARGV 对 ElasticSearch (简称 ES)的介绍。通过演讲了解到了 ES 是一个基于 Lucene 的全文检索工具。其中还介绍了 logstash,一个支持众多输入源、众多输出源的日志收集分析暂存工具。还有 Kibana,一个疯狂重构的日志搜索 Web 前端。Kibana 1 是 PHP 写的,Kibana 2 变成了 Ruby,Kibana 3 则是纯 HTML 和 Javascript。PPT 全文链接

会上还学到了两个有用的知识点。其一是用 cpanm 来安装 CPAN 包。相比于 cpan 命令,cpanm 最小化,追求零配置,简单易用。cpanm 还可以直接接一个 git 代码库的 URL 进行安装。其二是用 metacpan 来搜索 CPAN 包/模块,比起 search.cpan.org 来 metacpan 是一个更年轻的项目、提供更友好的搜索界面。

最后是两点注记。cpanm 在 Fedora 上可以用 yum 安装:yum install perl-App-cpanminus。要在非系统目录下安装 CPAN 包,需要安装 local::lib (yum -y install perl-local-lib),然后在 ~/.bash_profile 或对应文件中加上一行

eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)
3月 312012
 

我们知道,引用其他人的东西需要注明出处,这包括论述文字也包括图片、视频等。然而互联网上的许多图片中并没有出处、作者等信息,需要手工加注。一般来讲,我们可以在图片外使用独立的文件记录下这些引用信息,不过这着实原始,而且可能使我们的图片文件夹显得混乱。这里说一种不同的方法,通过在图片中嵌入 EXIF 信息来达到记录引用来源的目的。由于 EXIF 算是个标准,而且是内嵌在原文件中,所以应该是个更好的选择。

EXIF 基础知识参见维基

这里使用的工具软件是 exiftool,它是一个 Perl 模块,同时提供了命令行程序。Fedora 下可以用命令 yum install perl-Image-ExifTool 安装。

具体的加入原始链接的操作示例如下:

exiftool -ArtworkSource='http://bloggersalchemy.com/sopa/' stop-sopa-pipa.jpg

之后可以用下面命令查看:

exiftool -ArtworkSource stop-sopa-pipa.jpg

另外,使用

exiftool -a -u -g1 stop-sopa-pipa.jpg

可以查看完整的内嵌信息。这条命令出自 exiftool(1) 的手册页的示例部分,更多请自行 man exiftool 之后搜索 examples

注意上面的 ArtworkSource 其实是 XMP 中的一个标签,我最初想使用 IPTC 下的 source 标签来存储原始链接。后来发现 source 的值是个长度为 0—32 的字符串(包括最后的 NULL 结束符)着实有限,它的本义也并非存储出处信息(参考指南)。另外 IPTC 算是古老陈旧了,新的 IPTCCore 规范已经使用 XMP 格式。你可能会问这些标签名字从何得知,答案是可以看 Image::ExifTool::TagNames(3pm) 的手册页 🙂

1月 232012
 

有一本书叫 "Open Sources: Voices from the Open Source Revolution", 是一些开源界人士写的散文的集合,内容涉及社区精神、GNU 和 FSF、Linux 历史、 商业模式等等。我曾经在图书馆借阅出过一个影印版。 它在清华图书馆的逸夫馆外文图书借阅区,索书号是 TP31 FO61 2003

后来发现,书中文章都可以在 Oreilly 网站上看到,如这里是简介。

借助于 Gooogle,各篇文章也可以通过搜索得到。如想看 Larry Wall 有关 Perl 的 文章,使用如下去搜索即可:

perl site:http://oreilly.com/catalog/opensources/book/

然后你就可以发现,链接是 http://oreilly.com/catalog/opensources/book/larry.html