我们应该怎样倾听

我们应该怎样倾听
那来自天上的声音
是凝视自己身体里的呼应
还是追随北风呼啸的身影

黄昏的鸟鸣唤起遥远的乡情
丛林的吼声惊扰梦中的美景
那些声音的虚实远近
我们又应该怎样判定

或许直到终结把一切分清
我们才能确信我们的谛听
是通往地核深处的路径
还是敞开的另一只眼睛

三月十九日的无标题文档

这两天总想写点什么,但是写着写着就又不想发布出来了。恩,最近是有些郁闷了。我这是为什么呢?是害怕改变还是真有什么东西值得让我背离经济人的假设,不管逻辑做出决策?又或者是在等待一个答案?谁知道呢。

这点东西是用live writer写的。也试过Zoundry和ScribeFire,结果只有这个东西能连上bus的api。live writer还是挺好用的,只是安装过程和其他几个live一样让人不爽。漫长的下载时间只能把它晾在一边让它慢慢拖。

三月十六日的无标题文档

  今天去中山公园去转了圈,然后又去参观华政校园。之前去长风公园的时候也顺道去转过华师大。都感觉相比公园,还是大学校园更有逛头。

  想想我的华理实在是太和谐了,绝对没有地主阶级或是资本家的情调。一样是河,在华师大就叫丽娃河,(其实说通俗点就是美女河),在华理就叫青春河。一样是楼,华理就很理工地全部按数字编号。据说奉贤的新校区开始有点文化了。

P.S. 春天来了。树都发芽了,猫都怀孕了。一路上看到了好几只大肚子的猫。话说Blog已经出走许多天了,不知道有没有弄出什么成就来。

php扩展开发学习笔记 8

hash

  在php中,许多东西都是hash表。除了显而易见的数组以外,其实对象的属性,函数入口表、变量的符号表等在php内部也都是使用hash表来保存的。事实上,hash表里可以放任何一种数据类型的指针,并不限于zval*。

  hash表的C结构叫HashTable。如果要创建一个HashTable,一般的做法如下:
HashTable *ht;
ALLOC_HASHTABLE(ht);
这样就会创建一个HashTable,并把地址放在ht里。光有一个HashTable结构还是不行的,还需要初始化。这就需要用到zend_hash_init函数。声明如下:
int zend_hash_init(
    HashTable *ht,
    uint nSize,
    hash_func_t pHashFunction,
    dtor_func_t pDestructor,
    zend_bool persistent
)
第一个参数就是一个HashTable指针,必须是已经分配好内存的。
nSize是初始大小,就是存放东西的个数。超过这个值时会自动扩展。如果这个值不是2的n次方,则会自动变成大于它的最小的2的n次方数。
pHashFunction是没用的,但为了向下兼容,这个参数还在那里。必须为NULL。
pDestructor是析构函数。一般使用ZVAL_PTR_DTOR。
最后那个参数persistent是表示是用emalloc还是pemalloc来分配内存。

  php的hash表可以有整数和字符串两种键,然后就有了两套访问hash表的函数。hash相关函数都以zend_hash_开头。例如:
int zend_hash_update(HashTable *ht, char *arKey, uint nKeyLen,  void *pData, uint nDataSize, void **pDest);
用来更新字符串键的值。arKey是键;nKenLen是键的长度,包括最后的”;pData是值数据的指针,nDataSize是数据指针的大小。最后一个参数是用来指定值数据指针的保存位置的,对于更新操作一般用NULL即可而对于读取操作,则用来放取出的值的指针。一个调用的例子:
zend_hash_update(pHash, “hello”, sizeof(“hello”), &pZval, sizeof(zval*), NULL);
其他几个hash操作函数也大同小异。
zend_hash_index_update用来更新整数键的值,zend_hash_find和zend_hash_index_find分别用来读取字符串键和整数键所对应的值;zend_hash_exists和zend_hash_index_exists用来判断指定的键是否存在;zend_hash_del和zend_hash_index_del用于删除。还有许多其他的hash操作函数。zend_hash_num_elements用于得到元素的个数;zend_hash_clean用于清除全部元素;zend_hash_destroy除了清除全部元素外,还会释放由zend_hash_init所分配的内存,彻底销毁hash表。

 

逛苏州3

  第二天早上起来,就往光福去。先到轮船码头坐公交,那个65路弯弯绕绕开了好久,终于到了终点,然后再搭三轮摩托到香雪海门口。才到光福,就感觉不妙。路边停着的汽车排得老长老长。到了那儿,果然是人山人海。原来像我一样来凑热闹看梅花的人还真的是很多。

  现在正是梅花开得最盛的时候。香雪海公园里大都是白梅,就是最普通的会结梅子的那种,其他品种的梅花并不太多。不过白梅才有“雪”的效果。走到半山上往回看,白花花的一片。当中香雪海的题字那块则是密密麻麻的一片人。梅花只在底下和山脚有。再往上就没啥了。

  回城坐的是另一路车,到汽车北站附近下来,直接走到拙政园。之前没算到往光福一个来回要那么久,时间已经所剩不多了,转完以后就去了火车站。去苏州的时候是和谐的动车,回去的时候就没那么好运了,只买到了过路车的无座。

  然后?然后我就高高兴兴地回家了。

 

逛苏州2

  第一天下午从网师园出来后,本来想再去看沧浪亭的,后来觉得时间不大够,就觉得直接去虎丘。

  果然是越是有名的地方人越多。虎丘那儿跟着小旗子的一对对人马是一拨又一拨。底下那个剑池就那么一池水,没多大看头;还有那第三泉的水怎么看怎么都不像可以喝的样子。顶上的云岩寺塔是苏州最上镜的地方之一。据说因为古人豆腐渣了一下,这塔就越来越斜,几乎要倒掉,后来又修复过。这塔虽然修过,但还是很残破的样子,缝隙里还钻出了几棵草。并没有像许多古迹,因为修缮而变成了新的东西。前前后后逛得差不多了,就从后山下去。我不想走重复的路。

  走出一个小门,顿时感到别有一片天地。相比前边那许多游人,这里虽然没啥景点,但因为游人罕至,倒也幽静的很。一片竹林,几株梅花,还有枯树,顿时让人感觉静了下来。当时正是黄昏,鸟儿回巢,在树枝上叽叽喳喳地叫。鸟儿,枯树,被落日映成了一副剪影。

  出了虎丘,沿山塘街一路走回城,那可是老长一段路。在街上的黄天源吃了一碗面。没想到这居然是那天的最后一碗。之后就打烊关门了。吃完了,前门已经关了,还是从后门出去的。

  苏州人似乎大都还是按照以前的生活节奏。一个餐馆6点关门要放在了上海那会是件很奇怪的事情。上海遍地都是的便利店在苏州也不多,还都是从上海开过去的可的。在上海已经越来越少的小杂货店在苏州倒还不少。苏州的生活方式似乎就像是90年代的上海。

  回到旅社,找了本说禅的书看了会就去睡觉。我总还是有点焦虑症的样子,每当第二天有什么事,或是出门在外就睡不好觉。何时才能真正得自在呢?

逛苏州1

  先放些文字。照片等处理得差不多了再放上。

  这个周末去苏州玩了一圈,一个人去的。本来想找几个伴的,可惜未果。所以就只能孤零零地逛苏州了。

  从和谐的动车上下来,就先赶先到平江路那边的小雅青年旅舍,之前错过了预定时间,但跑过去了,发现还是很空闲的,我一个人还独占了一个四人间。

  苏州这个城市也很有特色。旧城区里保留了整片整片的从前的民居。走着走着就能看到某某故居和某某古人的宅院,虽然现在可能是作为某小学或某办事处。这间青年旅舍原来也是清代留下来的庞宅。中间的庭院里还有假山石。而新房子也刻意地加入了江南水乡的建筑风格,哪怕是高楼大厦。路灯是复古的样式,交通指示牌也弄成了窗格的样子。这样的好处是在老房子周围不至于显得过于突兀。

  苏州城里有许多河道,也有许多桥。在小巷里行走,能感觉到江南水乡的风味。只是相比那几个水乡古镇,时光倒错的感觉要少些。但在这晚上六点就有许多店开始关门地方,也很难把这随处可见的小桥流水和江苏省GDP第一联系起来。

  这回逛了耦园、网师园、拙政园3个园林。苏州园林的曲折回环,移步换景果然名不虚传,经常会得一惊喜。门票最贵的,面积也最大的是拙政园。比其他两个要大气多了。不过相比之下,也少了些江南园林的精致。当然,也有可能是因为拙政园是我逛的最后的一个地方,有点审美疲劳的缘故,也可能是因为那里的游人太多了点。