在 OSX 下gcc编译C代码的时候出现一下错误

Undefined symbols for architecture x86_64:
“_res_9_init”, referenced from:
_switch_ns in connect-048ad1.o
_main in connect-048ad1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [connect] Error 1

Google 了半天都没有找到解决方法。后来找到一个偏方,gcc编译的时候加一个参数 -lresolv 即可

比如:

gcc  -lresolv  connect.c

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 2 votes)

Laravel的日志模块做得其实挺不错,使用起来也很方便。但是系统默认的错误日志的记录方式,stack trace 把错误的所有信息全部打印出来,导致一条错误信息至少有7、80行,人都要看裂了。

这个是直接写在framework中的,不好直接修改,只有修改一下Exception的处理方式。

编辑app/Exceptions/Handler.php

加上 use Logs;

更改report方法

Log::error(‘[‘.$e->getCode().’] “‘.$e->getMessage().'” on line ‘.$e->getLine().’ of file ‘.$e->getFile());

// parent::report($e);

搞定

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Macbook 系统盘的容量爆满了,在  App Store 安装 Xcode 一直提示磁盘空间不够。不过Apple 的官网有直接的下载链接:https://developer.apple.com/download/more/,但是下载里面的文件需要登录 Apple 的帐号才能进行,如果直接在服务器上用 wget 下载的话,会因为没有登录网站而无法下载。

如果使用 wget 下载需要登录才能进行的文件呢?其实很好办,给 wget 定义一个登录后的 cookie ,就可以模拟正常的登录下载操作了。如果得到登录后网站的 cookie 呢,这就需要借助 Google Chrome 的一个插件来完成。

安装 Chrome 的 cookie 插件:https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg?hl=en

安装完成后正常登录下载网站,利用该插件将 cookie 文件保存到本地。

在 wget 命令中使用该 cookie 文件,正常下载!

例如下载最新版的 Xcode :

wget –load-cookies=cookies.txt -c http://adcdownload.apple.com/Developer_Tools/Xcode_8.2.1/Xcode_8.2.1.xip

打完收工。

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

最近跑在nginx下的django经常时不时会出现504 bad gateway的问题,很是恼火。其主要问题估计源于程序中的一些网络请求,常常会连接或读取数据超时,抑或是页面执行的时间太久,即使关闭请求,整个django还是会卡在504中,整个网站挂起。

起初是认为nginx的设置,将socket的的读写超时设置了,不起作用。估摸着问题还是出在uwsgi中,于是Google之,发现了一个uwsgi的参数harakiri。它可以设置进程在一定时间内超时后,自动干掉自己并重启。harakiri是日文切腹的意思,还真是形象,哈哈。

harakiri 这个选项会设置harakiri超时时间。如果一个请求花费的时间超过了这个harakiri超时时间,那么这个请求都会被丢弃,并且当前处理这个请求的工作进程会被回收再利用(即重启)。 –harakiri 60

这个60可以设置成需要的超时秒数即可。

同时uwsgi需要使用master模式,启动参数上加 -M 即可。

修改后重启django,开了2个工作进程,认为激发超时504 bad gate way,进程会杀掉自己并重启,不妨碍其它用户打开网站。

记录下来备忘,具体表现有待观察。

VN:F [1.9.22_1171]
Rating: 8.5/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

今天试图给服务器装一个wikimedia,运行安装程序的时候,报错:

Fatal error:  Invalid opcode 153/1/8.

Google一下发现是php的扩展eaccelerator的问题。新版本的php执行匿名函数等新特性,而eaccelerator对它无能为力。eaccelerator停止开发有年头了,github上最新的commit还是两年前的,唉……

搞了半天没找到解决方案,后来发现在github这个库的讨论区中有人给出了方案。就是检查,如果碰到LAMBDA这种方式的函数,就直接跳过好了。

修改的代码在这里:
https://github.com/toddbc/eaccelerator/commit/e7dc802057e9916c0e6751b87511fc43a89c0c3a

直接改好的optimize.c在这里:
https://github.com/toddbc/eaccelerator/blob/e7dc802057e9916c0e6751b87511fc43a89c0c3a/optimize.c

把这个optimize.c覆盖掉eaccelerator下的同名文件,重新编译和安装该扩展,搞定。

PS:编译安装好后,记得清空eaccelerator的cache目录,否则老的代码由于缓存的关系还是会报错。

VN:F [1.9.22_1171]
Rating: 10.0/10 (4 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

一直以为自己是个不怕寂寞的人。一是自己内向的性格,更喜欢独处而不是喧闹,喜欢一个人静静地玩电脑、看书以及发呆。每次唱起“你知不知道寂寞的滋味”这首歌的时候,总有些不以为然。常常会想,寂寞是一件很妙的事情呢。

然而不是。真的不是。

老婆大人由于工作的关系,调动到了遥远的城市——西安。把小女儿也一并接去生活。临行那天,我还沾沾自喜,可以拥有一个人想多晚睡就多晚睡,想玩游戏就玩游戏的自由了……

然而不是这样。

回到房间后,看着天天充满着喧闹的屋子,突然一下子,安静得可怕起来。一股突如其来的空虚感觉袭来,居然胃里一阵不舒适的感觉,赶紧打开电视将新闻频道的声音开得很大。也抵不住这种失落的感觉。

这种寂寞感,和文学里描写得TMD完全不一样。这是一种猛然将身体掏空的失落感。你会觉得什么都不想做,做什么都没有意义。因为对你生命有意义的那些人,都在千里之外的另一个城镇里。

这种感觉真的很要命。

于是会想逃避,试图摆脱这种感觉。看书、看电影、打游戏,都是好的良方。但一切结束后,又会陷入寂寞的循环。你可以麻痹自己,但是很短暂,你跳不出这个圈子。你会很想去人多的地方,只是看着他们的喧闹,都会得到平静;你会想和很多人谈话,你也会一直在房间里不断自言自语;你会不断发呆,但每次都是很短的时间。

国庆节的时候,老婆和小女儿放假回来了。我带她看电影,打游戏,买衣服,逛游乐场,不亦乐乎。重新拾回意义,寂寞见鬼去吧……

国庆节过完,又再次把自己埋在忙碌的工作中,美剧中,电影中,书籍中,游戏中,只为驱散寂寞……

谁再说寂寞美丽,你就是没有真正寂寞过。

VN:F [1.9.22_1171]
Rating: 9.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

给 Macbook Pro 配了外接键盘以后,想使用一些 Windows 下的比较好的键位功能,例如使用 F5 刷新Chrome浏览器,没有找到设置的地方。Google了半天,才发现需要到键位里去为每一个应用程序进行单独的设置。正是这一设置,发现了 OSX 又一个十分强大的地方。

在 System Preferences 中选择 Keyboard 的设置,选中 Shortcuts 中的 App Shortcuts项,在这里可以单独为某个应用程序添加快捷键设置:1

点击那个加号按钮,在弹出的窗口中选择我们需要设置的谷歌浏览器。Menu Title就是需要快捷键执行命令的那个菜单的按钮标题,系统会自动将热键适配到这个菜单项上,高大上有没有?

1

在 Keyboard Shortcut 设置相应的快捷键即可。这里我设置成和 Windows 上相同的 F5键刷新菜单,我同时也设置了使用 F8 打开 Developer Tools,这样省下不少点击鼠标的繁琐操作了。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

雷柏 V500

最近 MacBook 的键盘有些失灵,Q和W键需要死命的敲才能慢吞吞地在屏幕上冒出来。于是决定给它加个好用的外接键盘。公司里已经有不少机械键盘爱好者了,夜猫同学的HHKB虽然眼馋了很久,但那毕竟是需要1600大洋的东西。

于是乎,我这个对机械键盘一知半解的家伙,在京东上入手了一个入门级别的雷柏V500。打算先用用,在将来循序渐进地成为一个机械键盘的玩家。第一次拿到手的时候,吃惊的是它的重量,虽然个头感觉比较小,但是很沉,和家里的普通键盘完全不是一个数量级。

OSX下的键盘映射不是很好搞,调了半天才搞定Command、Win和Control键。都说用机械键盘打字是一种享受,果不其然。噼里啪啦的声音本身听着有一种爽快感。不过这种清脆的声音也只能是在公司里发出,在家里晚上如果这么响的噼里啪啦,势必要影响到晚上孩子和老婆的睡眠。

作为一个经常要敲代码的家伙,机械键盘确实能为自己带来敲击上的愉悦。逛了逛相关的论坛,发现其中的坑也非常深。光键帽,就可以DIY出各种风格就迥异的东东,让人眼花缭乱又垂涎三尺。好在有个兄弟伙小鬼同学答应送我一些拔键器和键帽,以我DIY的性格,感觉入手之后,又是一条不归路。

我就是喜欢敲击键盘的声音。在这个声音之下,我和全世界交流;在这个声音之下,我获得财富和心灵的自由;在这个声音下,我不断造和拓展属于自己的虚拟世界。在这个声音之下,我才感觉到自己和世界的存在。

我敲击故我在。我有什么理由不善待我的指尖呢?

VN:F [1.9.22_1171]
Rating: 8.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 3 votes)

一直说要多看一些书,结果忙东忙西,只看了少许的书。丹·布朗的《地狱》看完了,感觉就像是好莱坞电影的节奏,不用写剧本了,直接就可以拿来拍电影。熟悉了这个作家的风格后,这本书倒是没有太多出彩的地方。

然后是《羊毛战记》,在亚马逊和多看上都是极力推荐的作品,曾经在亚马逊电子书总榜上高居第一。又是末世的科幻情节,自然是我的最爱题材。才开始看了几章就停不下来了,地堡的封闭生态设置果然是我最喜欢的世界构架。一口气看完之后,发现故事远远没有结束,然而后续《尘土记》大陆还没有出版,只有继续等待了。

这个小说最吸引我的几个因素:

1.末世情节。被毁掉的人类只能生活在地堡之下,地面的空间弥漫着不适合人类生存的的毒气。生存资源的有限,人类只有制造机器从地球内部获取各种存生资源,水、燃料、食物、空气……有学校有工厂有忙碌上班的人们,一个井然有序的地底世界。

2.控制与反抗。一层层的控制,掌握资源的人控制多数人,用冷酷的方式推进着地堡的运行,并且控制一切真相。哪里有压迫哪里就有反抗,地堡的反抗战争终于在小说的尾部打响。

3.谜团。没有人知道地堡是如何建立的,控制地堡的上层权利又是来自何方。作者一章一章拨开谜团,更强的是,拨开一个谜团,就带来一个更大的谜团,看到小说结尾的时候,谜团多得都数不过来了……

4.文笔。行文老道而冷酷,用字精炼简短,整个文字充斥着一种沉重的压抑,却又酣畅淋漓。看得过瘾。

好小说,力荐。

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

最近把自己的网站迁移到了linode的服务器上去了,选用的是东京的节点,国内访问速度不错。2G 内存 48G SSD 硬盘 4T的流量也才20美元一个月。比起上一个坑爹VPS商,完全是翻天覆地的变化。

迁移过程中,安装python的mysql库的时候出现了错误:

/usr/local/mysql/lib/mysql/libz.a: could not read symbols: Bad value

应该是这个库不对,上一个VPS使用的是32位的centos,这次在linode上是64位的。Google了半天,重新编译一个zlib好了。

去zlib官方下一个,编译的时候注意参数

CFLAGS="-O3 -fPIC"
./configure --prefix=/usr/local/zlib
make;make install

进入python的mysql库目录

export LDFLAGS="-L/usr/local/zlib/lib"
export CPPFLAGS="-I/usr/local/zlib/include"
python setup.py build
python setup.py install

 

搞定,打完收工,睡觉……

VN:F [1.9.22_1171]
Rating: 9.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)