星光尽头

科技与人文的那个交集

M.J

在Mac下使用sphinx生成pdf文档并支持中文

关于Sphinx
==========
Sphinx是一个python写的文档编写工具,使用reStructedText编写文档,可以自动生成html,pdf,latex等多种格式(目前官方不支持doc和docx)。用于写文档非常方便。

安装sphinx需要python 2.7支持,运行如下命令

sudo easy_install-2.7 Sphinx

入门教程可以参考:

http://www.ibm.com/developerworks/cn/opensource/os-sphinx-documentation/

更多信息可以参考官网,需要翻墙访问:

http://sphinx.pocoo.org

 

关于Latex
===========
使用sphinx生成pdf文件需要latex的支持,所以对于mac用户,在这之前需要到MacTeX官网去下载并安装MacTeX。

MacTeX官网:https://tug.org/mactex/

官网上有完整安装包和基础安装包。完整安装包MacTeX.pkg 大约为2.4G(2014版),强烈推荐使用这个,免去更新的麻烦。
如果实在担心浪费空间的话,可以先安装BasicTeX(才200多M),然后缺包时使用tlmger包管理器进行更新(我是一路更新过来的,因为macbook air才128G空间,很容易消耗完,但是没必要为此浪费太多时间),语法如下:

tlmger install {packname}

然后参考这篇文章让sphinx生成的pdf支持中文

http://my.oschina.net/yangbajing/blog/170262

 

最后,在项目目录下使用make latexpdf就能生成pdf文档了。

2015/03/10 0 / /
标签:  暂无标签

[音乐剧]《Billy Elliot》当音乐与舞蹈嵌入人生

最近几天喜欢上了2014年出的《Billy Elliot》音乐剧版,这个版本的Billy Elliot到现在网上还没有中文字幕,甚至连英文字幕也不全。我会去看纯粹是因为一位朋友的推荐,以及看了片头便被吸引住了——Elton Jhon的极力推荐,Billy Elliot的扮演者Elliot Han表现出来的灵动。这些加起来让我觉得这是一部非常值得一看的作品。
最后果然不失所望,虽然剧情上其实没有太多冲突与转折,但满满的诚意让我喜欢上了这部音乐剧,不仅原声下到手机上循环了好几遍,还找人代购了台版的DVD光碟作为收藏。上一次对一部作品如此狂热好像还是看到《安德的游戏》书籍的时候,彼时电影版还没上映,我追着把能找到的中文版全读了一遍,然后还去啃未翻译过来的英文版。

开场的音乐质量就极高,《the Stars Looks Down》浑厚的男声听起来非常舒服,歌词写得很浪漫,和剧情结合得也很好(表达出矿工们团结一致争取权利的决心)。同时,这一段也交代了音乐剧的背景是1984-1985年英国矿工大罢工的时候,从wiki上可以查到这次罢工的详细介绍:1984-1985年英国矿工大罢工,大体来说就是英国政府想要关闭一些矿井而遭到了矿工们的抵制。

音乐剧里出彩的地方很多,我偏爱的有两个段落。第一是读Billy妈妈那封信的时候。Billy的舞蹈老师Wilkinson让Billy带一些对他有意义的东西去,Billy带的其中一样是他去世的母亲写给他18岁的信,但是Billy忍不住提前几年就打开了。信里表达了对比利的思念,以及希望他能永远做自己(In everything you do, always be yourself)。通过这封信你能感受到billy的母亲是一个很特别的人,他对Billy的爱深沉而温暖,他对billy的祝福不是希望他能获得成功或者有优异的成绩,而是希望他能够在他做的所有事情中保持自己。
而真实的billy想做的就是跳舞,虽然在社会中大部分人,尤其是矿工们看来跳舞是一件很失男子气概的事情。billy去学拳击才是他们想要的,但是因为有母亲的鼓励,所以billy才敢在这条路上继续坚持下去。

然后是《Electricity》,在老师问到他跳舞是什么感觉的时候,因为觉得选不上的Billy在近绝望中唱出了这一段,你能感觉Billy是发自内心的不自觉在唱这一段。跳舞的感觉是什么样呢?那是无以言表的感受,是你无法控制的感受,就好像你忘了自己是谁,却又有什么重新塑造了你;就好像胸中燃烧着一股火焰,要爆发而无处隐藏;就好像空中有音乐在播放,但这音乐却又不可能被听见,而你的身体却不自觉随着着音乐而动。看到这里,相信即便是之前对男孩跳舞这件事有偏见的人也会改变自己的看法:舞蹈就是一种情绪的肢体表达,舞者借舞蹈不仅仅表现自己,更超越自己。

除了这两个片段,还有一些很有意思的地方值得一提,在第二幕开场的时候,矿工们一起聚会唱的是《Merry Christmas Maggie Thatcher》,Maggie Thatcher就是撒切尔夫人,歌词旋律非常欢乐,但是歌词却是这样的:
Merry Christmas Maggie Thatcher
We all celebrate today
‘Cause it’s one day closer to your death
翻译过来就是『圣诞快乐撒切尔夫人,我们都庆祝这一天,因为这是更靠近你死亡的一天』。对撒切尔夫人的厌恶之情溢于言表。当然原因在音乐剧之前的剧情里已经说明了,正是撒切尔夫人镇压了这次矿工的罢工。

还有一个片段是在圣诞晚会上Billy的父亲唱的那首《Deep Into The Ground》,深沉而感人,看完才发现他父亲其实是个很深情的人。

《Billy Elliot》实际上有多个版本,既有2000年的电影,也有美版和英版的音乐剧,但我第一次看到的就是这部2014年拍的《Billy Elliot》现场音乐剧,就这个版本而言,我觉得Billy Elliot这个角色已经给了我无限的惊喜,很难有人能超越了。

最后许一个愿望,希望2015年有时间和机会去伦敦看现场演出。

 

附部分歌词:

The Letter

这段先是Billy和他的舞蹈老师Wilkinson之间的对白,然后是唱的部分,两者衔接得相当自然。

对白:

Wilkinson: What’s this?

Billy: It’s a letter.
Wilkinson:I can see it’s a letter.
Billy: You can open it if you want.
Wilkinson:The suspense was killing me.
Billy:It’s from me mum.
Wilkinson:Your mum?
Billy:She wrote it for us for when I was 18,…
Billy:Read it out.
Wilkinson:”Dear Billy, I must seem a distant memory…
Billy:”Which is…”
Wilkinson:”…which is probably a good thing.”
Wilkinson:”And it will have been a long…”
Billy:”Long time.”

唱:

BILLY
And I will have missed you growing,
And I’ll have missed you crying
And I’ll have missed you laugh.
Missed your stomping and your shouting,
I’ll have missed telling you off,
But please Billy,
Know that I was always there.
I was with you through everything.
And please, Billy…

WILKINSON
But please, Billy
know that I will always be
Proud to have known you
Proud that you were mine
Proud in everything
And you must premise me this, Billy

MUM
In everything you do
Always be yourself, Billy
And you always will be true

And I’ll have missed you growing,
I’ll have missed you crying
And I’ll have missed you laugh.

MUM AND WILKINSON
Missed your stomping and your shouting,
I have missed telling you off,
But please, Billy,
know that I was always there.
I was with you through everything.
And please, Billy,
Know that I will always be.
Proud to have known you.

MUM
Love you forever.

BILLY
Love you forever.

 

mac使用心得

那些说Mac一年不需要关机或者永远不关机的,大概用Mac的方法和我的不一样。至少我在用Mac的时候没过多久还是要重新启动一次的。

第一,系统更新要求重启。Mac一年不到一般就会做一次大的版本升级,这时候是必须重启的,有一些系统级更新也会要求重启才能生效。

第二,最头疼的是碰上Bug要求必须重启。在Mac上遇见多次bug了,尤其是升级到Yosemite后感觉bug数量多了不少。比如:

  •  WiFi无法正常连接,就是家里自己的网络,平常都能连,但有时候莫名其妙就连不上了,这个bug在刚升级Yosemite时出现最多,现在已经好了不少;
  • 声音无法正常设置,这是今天(2015.1.6)出现的bug。我静音了,但是QQ提示音和其他声音依旧正常播放。我按音量键打开音量设置,发现音量无法进行调整了:原本显示音量的地方显示一个禁止符号。重启后解决。
  • 以及一些偶尔碰上忘了记录下来的bug。

所以一年多不重启Mac,我觉得这真的很难做到。

不过回过头来说,Mac的确是不太需要重启的,至少一两周不重启完全不影响使用,应用运行速度依旧很快,平时不用了只要一合盖子就走就行了,非常方便。可是这和Windows的差异其实没有想象中那么大,Windows如果只配备固态硬盘,只跑一些质量较高的软件,也可以实现合盖就走,不重启其实也很稳定快速。

抛开更美观的界面不谈,我认为Mac真正的优势还是在于其软硬件统一的设计。Mac OS X与其硬件设计有机的结合在一起,提供无缝的用户体验,在细节之处用起来比Windows要舒服得多。比如:

  •  macbook air极其省电,续航能力平常能达到开着wifi上网10个小时,这样让我可以每天回家时不带电源,直接带一个本子就行了。
  • 无缝的开关机体验,用过Mac就会觉得对于开关机的存在性远不如Win那么强,设备大部分时候就应该是开的,偶尔关机了系统再打开还是原来的样子。
  • 集成的触摸板提供的体验非常好,定位功能比鼠标差不到哪去,但是触摸板还提供了手势功能,与系统应用集成在一起非常好用,所以平时不带鼠标也没什么。
  • 与其他苹果设备的协作更好,这一点在Yosemite上更进一步,不仅有handoff让两边的工作同步,比如iPhone上写到一半的邮件在Mac上打开时可以继续写,还可以在Mac上使用iPhone上的电话和短信,当iPhone放在插座旁充电时,再也不用起身去接电话和收发短信啦。
  • 整体的设计风格统一。

此外,对于程序员而言,Mac OS X是符合UNIX标准的操作系统,很多Linux下常见的应用在Mac里也是内置的,如bash,vim,gcc,apache(虽然不带freetype很坑爹),php,git。同样mac也有一个很好用的包管理器brew,虽然数量上不如ubuntu和debian,但是已经相当好用了。

总而言之,Mac其实并不像网上一些人(尤其是在知乎和一些苹果社区)说的那么夸张到可以秒杀windows,但相对于Windows设备,Mac的确是一个更加优雅的存在。而对于喜欢Linux的程序员而言,用过Mac就会觉得Windows就已经好像是另一个世界的东西了。

2015/01/07 0 / /
标签: 

CQPweb使用cqpweb-autoconfig.php自动配置

cqpweb-autoconfig.php是CQPweb提供的一个自动化配置脚本,方便对CQPweb运行所需要的参数进行配置。本文将我的配置流程记录下来并做笔记,以便有需要的朋友参考,如有什么问题,请在下面留言与我交流。

先说下我的用户配置,我为CQPweb专门创建了一个用户,名为CQPweb,从属apache运行用户www-data组,CQPweb相关的所有数据都放到/home/CQPweb下,主要分为CWB3,CQPweb,perl和Data四个目录。

开始运行:切换到相应目录(我的为/home/CQPweb/CQPweb)下,运行php cqpweb-autoconfig.php,以下为交互内容,蓝色为自己输入部分,绿色部分为注释,黑字部分为系统输出。

/***********************/
This is the interactive configuration setup program for CQPweb.

Are you using the Apache web server?                           // 是否在使用apache网页服务器

Enter [Y]es or [N]:y
OK, we’ll create .htaccess, .htpasswd, and .htgroup files.

Please enter
the username you want to use for the sysadmin account.
Note this can only contain ASCII letters, numbers and underscore.  //你想给系统管理员账户使用的用户名,只能包含ascii字符,数字和下划线

youradmin

Add another admin username?) [y/n]               //是否继续添加管理员用户,一般一个够了,搭建好后可以在后台修改

n
Please enter
the path to the directory containing the cwb executables
as an absolute directory path:

/home/CQPweb/CWB3/bin
Please enter
the path to the directory containing the apache passwd utilities
as an absolute directory path:
/usr/bin
Please enter
the path to the directory containing the perl executable   //包含perl可执行程序的路径
as an absolute directory path:

/usr/bin

Please enter
the path to the directory you wish to use for the CWB datafiles
as an absolute directory path:

/home/CQPweb/Data/CWBData
Please enter
the path to the directory you wish to use for CWB registry files
as an absolute directory path:

/home/CQPweb/Data/CWBReg
Please enter
the path to the directory you wish to use for the CQPweb cache and other temp files
as an absolute directory path:

/home/CQPweb/Data/CQPCache
Please enter
the path to the directory you wish to store passwords / group files in
as an absolute directory path:

/home/CQPweb/Data/CQPAuth
Please enter
the path to the directory you wish to store uploaded files in
as an absolute directory path:

/home/CQPweb/Data/Upload
Please enter
the MySQL username that you want CQPweb to use (do NOT use root).
Note this can only contain ASCII letters, numbers and underscore.

CQPweb
Please enter
the password for this MySQL user.
Note this can only contain ASCII letters, numbers and underscore.

yourpasswd
Please enter
the name of the MySQL database to use for CQPweb tables.
Note this can only contain ASCII letters, numbers and underscore.

CQPweb

Note: the system will be set to use ‘localhost’ as the MySQL server.
If you want to use a different MySQL server, please edit config.inc.php manually.

Saving config file …

Creating admin username(s) in Apache htpasswd/htgroup files…

(NB: admin passwords will be the same as the username
you should reset them as soon as possible)

Adding password for user starit
The files have been created within user group www-data.

The members of this group are:

If the username that the Apache httpd server runs under is not a member
of this group, CQPweb will not be able to modify the htpasswd/htgroup files
(which it needs to be able to do).

Do you want to keep this group for the htpasswd/group files?

Enter [Y]es or [N]:y
OK – onwards!
Done! note that the source file for this script will be gzipped,
to avoid unwanted re-running.

You should delete this program (or move it out of the web directory) for security.

CQPweb语料库搭建教程

大四的时候接受过老师一个任务,使用CQPweb搭建一个语料库并对其进行易用性改进。因为彼时还要忙于考研,所以并没有花太多时间在上面,CQPweb虽然搭建起来了,进行了简单的开发,但并没有持续做下去,此事老师也没再提,后来不了了之。但因为国内还没有很多CQPweb的资料,连官网都要翻墙才能上去,所以那时想写一个中文版的教程来介绍一下CQPweb,并给出一些安装和使用的心得。

我搭建的CQPweb:www.star404.com:8080,目前还没有什么语料库,这两天我会抽时间把能找到的语料库放上去。

文章基于官方资料和自己的理解写成,若有错误,请不吝指正。
一.CQPweb概述
1.CPQweb介绍
CQPweb是由英国兰卡斯特大学一名教授开发的基于CWB的第四代语料库分析工具,免费开源。CQPweb的主要特点是:
1、将语料库与分析工具合二为一;
2、支持多语种语料库的分析;
3、运用了索引技术,检索速度大大快于单机版语料库;
4、充分利用语料库的元信息,提供更多呈现语料分析结果的呈现方式。(1)
2.国内外相关应用
因为本人不是语言学的专业人士,关于语料库的应用以及利用语料库进行研究的方法请自行寻找资料,本文不作叙述。(技术上只需要把语料库理解为一种特殊的数据库即可。)
北京外国语大学的许家金副教授曾利用CPQweb搭建了北外的“BFSU CQPweb多语言在线语料库检索平台”(地址http://124.193.83.252/cqp/ ,用户名:test,密码:test)。国内大部分中文资料亦来源于他。
3.相关的网站及资源:
项目网站:http://cwb.sourceforge.net(需要翻Wall)
兰卡斯特大学CQPweb: https://cqpweb.lancs.ac.uk
BFSU CQPweb(北外): http://124.193.83.252/cqp/
二.安装
1.组成
CQPweb语料库由三个部分组成,CWB(The IMS Corpus Workbench ),Perl API,CQPweb。其中CWB是语料库, Perl API是CWB提供的接口,CQPweb则是基于Web的图形界面和分析工具。
前文所说的CQPweb语料库是方便称呼,事实上CQPweb并不包含语料库本身。但为了方便还是约定一下,在本文中提到的CQPweb语料库是指整个语料库系统,包含CWB,Perl API,CQPweb三者,而CQPweb则是单指基于CWB的图形化界面的分析工具。
2.安装环境
CWB支持Windows,Mac OS X,Linux等多种平台,但CQPweb暂时只支持Linux,所以本文不讨论其他平台的使用。
安装CWB-3.0需要以下软件支持autoconf bison flex gcc libc6-dev libncurses5-dev make,在ubuntu下可运行
apt-get install autoconf bison flex gcc libc6-dev libncurses5-dev make
一般的Linux都能安装运行CQPweb语料库,运行CQPweb需要在Linux下安装好以下组件:Apache,MySQL,PHP,Perl。
到官网链接上直接下好CQPweb语料库安装所需要文件,若不方便也可以到sourceforge下载最新版的CWB和API PERL,地址为http://sourceforge.net/projects/cwb/files/?source=navbar。
3.下载所需软件
有多种方式下载所需的软件,这里推荐使用svn的方式下载,下面下载地址引用自官网。注意export后要将3.0重新命名,否则可能会将cwb-3.0和cqpweb放到同一个目录中。
如果不想用svn或者地址打不开,可以下载我整理的压缩包,包含安装所需要的所有软件。
  • svn export http://svn.code.sf.net/p/cwb/code/cwb/branches/3.0 cwb-3.0 (IMS Open Corpus Workbench)
  • svn export http://svn.code.sf.net/p/cwb/code/perl/trunk/CWB Perl-CWB-3.0 (Perl CWB package)
  • svn export http://svn.code.sf.net/p/cwb/code/perl/branches/3.0/CWB-CL Perl-CWB-CL-3.0 (Perl CWB-CL package)
  • svn export http://svn.code.sf.net/p/cwb/code/perl/trunk/CWB-Web Perl-CWB-Web-3.0 (Perl CWB-Web package)
  • svn export http://svn.code.sf.net/p/cwb/code/perl/trunk/CWB-CQI Perl-CWB-CQI-3.0 (CQi reference implementation)
  • svn export http://svn.code.sf.net/p/cwb/code/gui/cqpweb/branches/3.0 CQPweb (CQPweb GUI) (stable version)
 
下载完成后将会得到6个文件夹。
    我的百度云分享:http://pan.baidu.com/s/1nt7MyhV
4.安装CWB
先进入CWB-3.0所在的文件夹中,编辑config.mk, 修改参数,修改平台,PREFIX为想要的安装目录,默认为/usr/local
5.安装Perl API
6.安装CQPweb
=======
在CQPweb文件夹下有一个CQPweb-setup-manual.html的文件,用浏览器打开阅读安装说明,如果您英文足够好,建议直接参考该文档进行操作,以下操作只摘取重要的部分。
首先需要对PHP进行设置。
——–
  • 因为需要上传语料库文件,所以推荐将php.ini中的upload_max_filesize设置为20M。
  • post_max_size需要至少和upload_max_filesize一样高。
  •  memory_limit适量地调高,因为CQPweb有些操作是内存密集的(比如将一些实体文件载入到内存中);建议为25M,但是如果你的系统默认设置要更高,请保留更高的设置。
  • max_execution_time应该尽可能地调高,建议为60

如果PHP的版本是Suhosin的,则需要增加一行

  • suhosin.get.max_value_length = 8000

最后,PHP最好不要激活安全模式(safe-mode)的配置,否则你会发现一些CQPweb操作无法工作。

设置网页服务器,默认使用Apache。
——–
需要设置.htaccess能够在CQPweb的目录起作用,即需要设置CQPweb所在目录AllowOverride All,具体操作方法请搜索apache的配置方法。
设置Perl
———
  暂略
设置MySQL
——-
  • 你需要创建一个新的用户和一个新的数据库来给CQPweb使用。
  • 新的数据库应该以UTF-8为默认编码,新用户则需要这个新数据库的所有权限。
  • 如果需要启用MySQL的文件访问功能(非必需,但能加速),新用户需要有全局的file权限,即grant file on *.* …
创建目录
——-
CQPweb本身源码需要放在一个apache配置文件中指定的web目录下面,默认情况下/var/www是web目录,这样只需要放到/var/www/CQPweb下就行了。
CQPweb工作时需要额外创建几个目录,分别用于存放CQPweb的用户名和密码文件,临时文件,索引后的语料库,索引后语料库的注册文件,上传文件区域,总共五个文件夹。运行apache的用户,如_www需要能对所有这些目录都有可读可写可执行的权限。
记下这几个目录的路径,以后会用到。
创建配置文件
——
到CQPweb的源码目录下,使用php cqpweb-autoconfig.php来自动配置CQPweb。
配置的详细操作请见我的这篇博客http://www.star404.com/2014/12/how-to-run-cqpweb-autoconfig-php。
初始化操作(包括生成数据库)
——
假设CQPweb所对应的网址是localhost/CQPweb,则进入localhost/CQPweb/adm。如果一切正常,会弹出一个对话框让你输入帐号与密码。输入刚才设置的帐号,密码与帐号相同。确认进入后台。此时后台界面如图1.1所示。
CQPweb settings1
(图1.1 CQPweb后台管理界面)
完成以下初始化操作:
1.点击Reset MySQL Database,并且完成操作。
2.点击“manage users”,为superusers设置安全的密码。
3.点击“System security”,然后点击”restore default security”(只有在Apache Web服务器下)
4.点击“Skins and colours”,然后点击“Regenerate colour schemes”
5.点击“Mapping tables”,然后点击Regenerate built-in mapping tables”
CQPweb settings 2
(图1.2 MySQL成功重建数据)
如果您成功完成了以上操作,请进入打开CQPweb对应的网址,如localhost/CQPweb查看是否有报错信息,如果一切正常,那么恭喜您,CQPweb已经初步安装成功。此时应该如图1.3所示:
CQPweb normal UI
(图1.3 CQPweb初始正常界面)
后续只需要将语料库加上去好,则界面会逐渐丰富起来。
参考资料
[1] 参考网上资料
========================================
星魂版权所有
转载请注明作者
个人网站:http://www.star404.com
个人微博:http://www.weibo.com/stariit/

ForkBomb

我们一直用的操作系统,其实都很容易崩溃。
在Linux下,只要在Bash下(注意只有Bash才行 )执行如下命令就可以让计算机失去响应: :(){ :|:& };:
在Windows下,只要编写一个bat脚本,内容如下
%0|%0
然后双击执行,即便是windows 8.1也会崩溃。

其实原理很简单,就是利用脚本让系统无限创建新进程,当新进程大到一定数量,系统便会无力对外界输入进行响应了。这种方式叫做Forkbomb(进程炸弹)
这和拒绝攻击(DOS)类似,都是耗尽系统资源,达到使之无法提供服务的目的。

在Linux下执行 :(){ :|:& };:,其实就是编写了一个名为:的函数,不断调用自身并将返回值传给一个:函数(会创建新进程并后台运行)
这条命令只在bash下有用,因为在ksh下,内置命令优先级高于函数,而:又是一个内置命令,所以:不会调用自身,不会形成递归。
所以我们可以替换下:
forkbomb() { forkbomb|forkbomb & };forkbomb
这样ksh下也能成功执行forkbomb(未测试过)

在windows下的%0表示脚本自身的完全路径,%0|%0即将自身路径作为参数传给自身(会后台新启动一个进程),所以也会无限制创建新进程,原理与Linux的语句类似。

2014/05/10 0 / /
标签:  暂无标签

空白

当一切归于空白,但愿自己能重新开始。

回到顶部