IT技术博客大学习 共学习 共进步
首页 / Soulogic.com
IT 2012-01-15 00:08:51 / 累计浏览 2,920

关于热键和键盘布局

先从热键说起吧,最开始沉迷的是 Quake 3。大部分的参数(原始版本大概有三四百个,一些 MOD 诸如 OSP 将参数数目扩充到了 1K+)是需要自己改配置文件的。虽然参数系统不是图灵完备的,但能做的事情也还算多了,比方可以让右键的瞄准视角符合 CS 风格,这并不是一个参数说让你选择哪种风格,而是需要有个临时变量来保证按一下开瞄准,同时改变视角的度数,再按一下关上。还有一个很重要的参数是鼠标灵敏度,对于不同的武器热键需要不...

IT 2012-01-15 00:08:22 / 累计浏览 2,460

费马检查

去年看到这段的时候就想扒到网上,却一直懒得动手。一直读到注解的时候,还是有点震撼的。我知道费马等一些人都热衷于“纯数学”,那些被看起来毫无实用价值的“纯理论”,可这费马检查,却是全世界的服务器每秒中都要运行无数次的 RSA 算法的理论基石。就我自己而言,每天使用 SSH 的时候都要用到。而几位科学家把这这一切联系起来的过程,实在称得上是“玄妙”了。《计算机程序的构造和解释》 第二版中文版 P34-35费马小定理:如...

IT 2012-01-15 00:08:01 / 累计浏览 12,920

为什么要用 Emacs/Vim,而不是任何其他编辑器

其实就是一句话:程序式编辑。如果你没明白这个我自造的词组的话,那听我慢慢解释。另外我只用过 Vim,但我相信 Emacs 必然也是如此,下文所有的“其他编辑器”都是指“Emacs/Vim之外的所有其他编辑器”曾经有一个朋友,属于微软系的,入选过微软中国区 MVP,有一次他问我,Vim 到底是个什么样的东西。我对 Vim 一直是三脚猫的水平(到现在也是),我说,这玩意的学习曲线几乎是垂直的,非常难上手,但是很强大,把常见操作都“宏”...

IT 2011-09-07 23:10:24 / 累计浏览 2,960

读《黑客与画家》

我之前相信语言争论的和事佬说法:语言各有各的精髓,但总的来说是相等的。Paul Graham 用一个简单的例子来驳斥:如果承认 Perl 5 比 Perl 4 强,那就应该承认不同语言之间也存优劣之分(这种手法我以前也用过,当时用自己一年间的差距来证明合作的困难)。其实以前看《软件随想录》里的一篇《你的编程语言能这样做吗?》时就在琢磨这个问题了,看到《黑客与画家》的时候又把这个问题强化重视了。你可以继续用 PHP 去谋生,但不可以不知道在一些语言特性上,PHP 相比 Python 或 Ruby 差的有多么远。

IT 2011-08-03 13:32:12 / 累计浏览 5,040

直到刚才,我才想明白大家对 PHP 的用法是如此迥异

导致一系列悲剧的起因是,大家的母语不同(当然,我是说程序的母语)。对于早期的 PHP 使用者来说,大多数人在接触 PHP 之前都早已熟悉了编程,因此他们在接触 PHP 时,关心的不是 PHP 能干什么、该干什么,而是 PHP 跟他之前掌握的语言有何不同、以及怎么消除这种不同。例如,Smarty 是最令我疑惑的东西,我完全理解不了为什么要用这种脱裤子放屁的东西,而且想当初模板类有那么多,今天我才明白,基本上是个语言都会有模板类,所以...

IT 2011-06-21 13:27:46 / 累计浏览 7,000

终端二则

直到上周,我还一直以为终端只能有 16 色……因为当初用 SecureCRT 时,把终端类型挨个试来遍,只有“Linux”默认出来的是黑底,而用"XTerm"默认是白的(因为颜色方案是要自己选的),就给归类成“VT100”那类了。知道前几天才知道可以设成 256 色。只要在 .bashrc 里加这么一段就可以了if [ "$TERM" == "xterm" ]; then export TERM=xterm-256colorfi在 VIM 中,就可以直接用数字颜色代码了,例如背景色不...

IT 2010-12-30 22:52:20 / 累计浏览 3,340

由于 HTTP request 不规范导致的被防火墙拦截

这个问题其实是刘涛发现的,我只是整理一下一段程序在本地调试正常后,放到网上却时断时续,最后确认问题如下1. HTTP request 中的 Host: 段是 HTTP 1.1 规范,在 1.0 中没有这个2. 但是目前通常环境中(我用的 Ubuntu,不过其他发行版应该也有这问题),PHP 中的一些函数如 file_get_contents 会发送错误的 request例如只是这么简单的一行

IT 2010-09-06 08:56:09 / 累计浏览 3,120

PHP 里用 Tokenizer 实现更好的 highlight_string

一个能有这么多用途的模块 Tokenizer 被我无视到现在,直到最近才醒过味来比方说 PHP 代码高亮,一直用的 highlight_string,可实际上这是一个非常粗糙的函数,只能区分四种颜色:default、string、keyword、comment,而用了 Tokenizer,(虽然没必要,但是)如果你愿意的话,可以标记出一百多种颜色简单的代码实现如下:tokenizer_highlight.tar.gz效果图片,左边是 PHP 页面,右边是我编辑器简单的说下过程:token_get_all 把整...

IT 2010-08-04 00:00:51 / 累计浏览 3,340

中等规模网站的UGC图片存放规划

好像现在是个网站就允许用户上传头像,其中一部分还允许上传相册、个性背景图之类的东西。对图片的规划各村都有各村的高招,这里只是抛砖引玉、提个醒:当文件膨胀到一定规模的时候再去改就来不及了,在一个项目的草创时期,让一个人多花两个星期的时间来琢磨这个“小”问题也绝对称不上是过度设计。

IT 2010-07-21 09:36:03 / 累计浏览 3,620

Chrome 里 Max-age 和 ETag 的古怪逻辑

简单的说,对于 Header 里同时有 Max-age 和 ETag 的情况,Chrome 跟所有其他浏览器的解释都是相反的按我的理解,如果同时设置了 Max-age 和 ETag,在 Max-age 的有效期内,浏览器是不再发请求的,等过了有效期,再在请求里带上 ETag。但是在 Chrome 里反而会起反效果:如果一个网页里的图片只有 ETag,那么在 Chrome 当前 tab 页的整个生存周期,可能只会偶尔被重新读取,可如果同时包含了 ETag 和 Max-age,那么你每点一次链接,...

IT 2010-05-11 14:55:02 / 累计浏览 3,420

《百姓网公开笔试题:查询条件的子集判断》的一份 PHP 答卷

碰到这道题时才意识到自己的见识浅薄,非等到这种题出来才能明白,高等数学对于程序员而言是多么重要。其中最难最关键的部分是在留言里看到了 qmigh 的解释才搞定的。这道题分三部分:把查询语句转成数组结构,然后把层级混乱的条件最终分解成 以 OR 关联的 AND 合集(也就...

IT 2010-05-04 10:21:36 / 累计浏览 4,640

PHP for Twitter OAuth 教学演示

说来话长,两三年前只是想搞个 Jabber 的 PHP Class,顺便就用上了 Livid 的 v2ex 的山寨 twitter,他起名叫 doing,我觉得这名字挺好,后来,鸭被墙了,我就琢磨着挪到 twitter 上,而且真倒了一部分数据,但我不用 twitter 的原因不是因为墙,是因为当时老看见鲸鱼,而且由于压力过大,twitter 关掉了一部分外围功能,其中就包括 GTalk 机器人,这搞得我严重不爽,因为我只用 GTalk 发,于是就自己写了一个自娱自乐了。

IT 2010-02-23 13:43:24 / 累计浏览 2,800

两个 Header 的作用

其实这两个问题都是受 caoz 的一篇 blog 的启发当一个页面构建完成,到最后 echo 结果的时候,其实还有好几个问题值得考虑。caoz 的例子是,应该先释放掉 mysql 连接,因为 echo 的过程充满不确定性,如果用户机器慢(假设开了 BT 把带宽榨干了,或者各种各样的可能),PHP 是要等用户确实收到才执行完毕的,这个过程可能要数秒,或者干脆超时,导致 mysql 不能及时释放。注意,PHP 例子涉及到的环境包括 apache 2.2 / php 5.3.1 /...

IT 2009-11-26 23:04:45 / 累计浏览 2,480

计数和排序

以前看过一篇关于程序上的小技巧的文章,作者给出了正确的(或者至少可以称得上标准的)的解决方法,结尾他对这种技巧并不满意,认为是迫不得已才用的,等以后计算机发展了,可以使用“真实”的结果。我的想法和他截然相反,在我看来计算能力永远也追不上实际需求,我们会在越来越多的地方使用各种“有损优化”。这个词是我现想起来的,其实很多技巧都像 JPEG 标准一样,无伤大雅的丢弃了那些难以察觉的细节。

IT 2009-11-22 10:46:23 / 累计浏览 1,740

好友系统的设计思路

什么样的好友系统大体上常见网站的好友系统分这么两种:一类是如 facebook,严格的好友验证,一方发出请求,另一方核准,接受请求的话两人相互为对方的好友;另一种如豆瓣,从 twitter 上改进而来,你可以任意 follow(关注)他人,如果两人都 follow 对方,就算做好友,好友在这里是“followers”和“following”的交集。其实 QQ 是人们最熟悉的使用第二种方法的软件,只不过多了个对 follow 的验证,而且你只能看到你自己的 foll...

IT 2009-11-22 10:45:25 / 累计浏览 1,760

抱怨

这事已经被我像祥林嫂一样跟不同的人念叨过好多次了,写出来可以防止继续念叨在上个公司,我负责做论坛。做到第二版的时候,是很花心思的,其中有很多我自己很得意的功能。比方说防止重复发帖,有很多人都喜欢把一个帖子贴到所有的板块,于是我做了个检查,当你把帖子贴第二遍的时候,会告诉你发帖成功,然后页面跳转回第一帖的地址,而重复的那贴压根没存数据库。后来发现我跟 Joel 想的一样:当然,这种方法不会100%有效。