杂事二三

春暖花开,小区后面的林荫小径口又架起烧烤摊,若是回家很晚还能看到两夫妻熟悉的脸孔,只是曾每晚必到的流浪小白猫已无踪影,或是凡世再无牵挂,或是已死了心吧。

emacs使用ELPA管理扩展

平时我们使用emacs的时候都是自己去找扩展,然后找各种依赖进行安装,这个很麻烦,emacs 24以后完全可以在emacs内部直接安装。emacs从24开始内置支持ELPA(Emacs Lisp Package Archive),支持emacs使用package.el管理扩展。

我们在.emacs里面增加安装源:

(setq package-archives '(
    ("gnu" . "http://elpa.gnu.org/packages/")
    ("marmalade" . "http://marmalade-repo.org/packages/")
    ("melpa" . "http://melpa.milkbox.net/packages/")))

然后我们使用 M-x 初始化一下包环境:

M-x package-initialize

更新包的索引:

M-x package-refresh-contents

获取想要的包:

M-x package-install RET ruby-mode RET

emacs 23也是可以用的,不过需要增加一个初始化的脚本。

细节可以参考:http://www.emacswiki.org/emacs/ELPA

禁用emacs的工具栏

osx下使用emacs的时候,如果使用了--with-ns选项,会nextstep目录下生成一个Emacs的app文件,我的是24.3.2,用起来还不错,至少是可以全屏的。

也许有人想要关闭上面的工具栏,如果像一些模式一样在.emacs里面写上:

(tool-bar-mode nil)

但是其实这个是不会生效的。

查看一下源码发现选项是1和0,所以我们只需要写成如下方式:

(tool-bar-mode 0)

但是如果同时还想使用命令行的emacs,会发现cli下是没有tool-bar-mode的,所以需要判断一下window-system:

(if window-system (tool-bar-mode 0))

这样就可以安心的禁用工具栏了。

深夜牢骚

沿着太阳升起的方向,我想我总会找到,那个希望蓬勃的地方。

赤着脚走,一片黑暗的沼泽,枯死的树干和肮脏的污水。昨天的昨天,我还在尖塔的某个房间躲避风雨,那里的温暖令人不安。我走出来,离开那里,离开那些怀着善意的人。如今独自一人,到这阴暗潮湿冰冷的地方,越过被黑暗吞没的灵魂和道旁腐朽的骸骨。

一片金黄的麦田,沿着中间狭窄的小路前进,金黄的阳光,照亮金黄色的天空。我欣喜的向前,到达那一直通向天空深处的藤蔓,那没有尽头的藤蔓……我看到奋力向上攀爬的人们,他们的汗水化作雨点坠落。我努力追逐,希望自己能到达乌云的上面,但那里总那么的遥不可及。

我想也年轻,我可以一直向上,比太阳的高度还要高,聚集炽热的光芒照亮黑暗;我想我也平凡,我可以在途经的某个美丽小镇安定下来,种上一院子的花,看着它们绽放枯萎;我想我也迷惘,迷惘……

PHP的Phar简介

php的phar扩展是参考java的jar设计出来的功能,平时在使用的时候似乎比较少,但是如果我们想像java一样把自己的类库打个包发布,phar是个不错的选择。

这里对Phar做个简单的介绍。

phar和jar不太相同的是不需要通过第三方工具去支持,不过phar必须在5.2.0+上使用,php在5.3.0增加了phar扩展原生支持Phar,使得效率提升很多。

在所有工作之前我们需要修改php.ini才能打包phar文件,修改如下项:

phar.readonly = 0

创建之前,我们先创建如下目录结构:

+ testdir
  - index.php
  - test1.php
  + subdir
    - test2.php

文件内容如下:

<?php
//index.php
echo 'This is the default stub!'.PHP_EOL;
include_once('test1.php');
include_once('subdir/test2.php');
<?php
//test1.php
echo 'test1.php'.PHP_EOL;
function test1()
{
    echo "test1 function".PHP_EOL;
}
<?php
//test2.php
echo 'test2.php'.PHP_EOL;
function test2()
{
    echo "test2 function".PHP_EOL;
}

继续阅读

无题

一个朋友说自己眼看奔四了,不免回想起大学刚认识时的白痴模样,让人感慨。那时候甚至都不会想自己奔三的模样,只是随着时间,活着。等到毕业了工作了,时间已不知不觉画了一条长长的线,线的这头是苦涩和张望,线的那头是美好和轻狂。

还没学会生活,就已经忘记了是否该去生活。回想自己绽放的年纪,始终觉得自己并不轰轰烈烈,那时候也是时光如流水,生活如清茶,恰好似现在一样。是呀,恰好似现在一样,淡淡的过着淡淡的生活,上课下课吃饭睡觉,相聚认识别离陌生,迷惑沉思领悟苦恼。回头张望,还是那条笔直的线,随着时间,延伸到微微发亮的地平线。我们张望着,感慨着,责怪着。

到最后,时间又真的改变了什么?

wordpress两横线变一个的问题

前端时间写了个xcode的command line tools的博客,里面有个命令如下:

sudo xcode-select --install

有位同学看了以后执行,发现怎么都不能执行。我研究了半天才发现原来wordpress把里面的两个减号转为了一个横线!这让我很无语,找了找原因,原来wordpress提供了一个叫做wptexturize的filter来处理所有输出,这个filte将纯文本字符转换成格式化的 HTML 实体。<PRE>,<CODE>,<kbd>,<STYLE>,<script>和<tt>中的文本被忽略。所以如果你把代码写到pre或者code这样的地方是没问题的。

如果你想直接禁用这个,可以把如下代码加到你的当前主题的functions.php里,或者自己弄个插件注入进去。
继续阅读

PHP的自动加载在CLI模式下是否可用

PHP使用__autoload()或者spl_autoload_register() 的时候,有些人会好奇这是否在CLI模式下使用。

PHP手册“自动加载对象”这章(手册地址)有一句Note内容如下:

自动加载不可用于 PHP 的 CLI 交互模式。

所以,自动加载方法CLI模式下是可用的,前提是你使用的不是交互模式(php -a)。

ps.章节里写到建议使用更加灵活的spl_autoload_register()代替__autoload。__autoload在以后的版本或许会被弃用。所以魔术方法并不一定都是优先使用的。