iPhone/iTouch 退出 VIM

自从有了 iTouch 以来,一直用它来听歌,今天心血来潮装了一个终端,顺带把 VIM 装上了。接下来,我在 iTouch 上打开了 VIM ,然后兴致勃勃按下了 “i” 键,如我所料,光标和下面的 –INSERT– 都出现了。不过当我想要退出的时候,却手足无措了:因为iTouch 的虚拟键盘中是没有 Esc 的,怎么办呢? Google 之,虽然信息特别少,但还是被我找到了答案。

原来 iPhone OS 中的终端和 Macbook 里面的终端是不同的, iPhone OS 中的终端叫做 Mobile Terminal 。因为按键比较少,所以有很多按键都是间接实现的,比如 Esc 这个键就是 Ctrl-[ 来实现,呃,你说的对,iTouch 上面也没有专门的 Ctrl 键,Mobile Terminal 是这么实现 Ctrl 键的:

1.在字母键盘中按下 “123″ ,这时候会切换到数字键盘。
2.在数字键盘中按下 “#+=” ,这时候会切换到符号键盘。
3.在符号键盘中按下那个小黑点 ,就是第二排最右边的那个小黑点(不是句号)。

这个时候就表示触发了 Ctrl 键了,然后你找到 A 并输入就会触发 Ctrl-A ,如果在命令行下光标就会移动到行首。Ctrl 键不会一直被触发,用一次要输入一次。

是不是觉得这样很麻烦?恩,确实恶心了点。接下来我们看一下如何使用 iTouch/iPhone 的那块神奇触摸屏来实现这些按键。

回到刚才那种情况,进入 VIM 的 Insert 模式,然后用一根手指快速往上划然后再往左划(Up-Left),可以看到 VIM 顺利进入了 Normal 模式,还等啥,赶紧 :q! 退出吧。

更多关于Mobile Terminal 的技巧

编程出了什么问题

Slashdot 上的原文和讨论

“In a recent interview, Don Knuth wrote: ‘The way a lot of programming goes today isn’t any fun because it’s just plugging in magic incantations — combine somebody else’s software and start it up.’ ”

编程变得越来越不好玩,到底出了什么问题?文章后面的评论讨论激烈,摘录几条:

The difference between the “new programmers” and the “real programmers” is that later were still taught math and computer architecture - former were taught only syntax of a sandboxed programming language.

Do it yourself, then throw it away and use the standard library instead.

My main point here is that I have seen WAAAAAAAAAYYYYY too many arrogant programmers talking from their bum about how much better THEIR code would be if only THEY had a chance to rewrite it.(太多人说如果他们有机会重写的话他们的代码会变得好很多)

The same is true for everyone from novelists to plumbers to aircraft designers. The second time through generally yields a better result; it’s just frequently not an option. This doesn’t make anyone arrogant, it’s just life.(这只是生活)

工业化的结果就是艺术家越来越少,代码机器越来越多。

How To Write UNmaintainable Code

前两天看到一篇很好玩的文章:《How To Write Unmaintainable Code》,翻译过来就是:如何写出难以维护的代码 !此文还有一个副标题:Ensure a job for life ;-) 哈哈

为了让你“无可取代”,你需要写出难以维护的代码,那样别人就无法接手你的工作了。Good idea ! 不要觉得事情很简单,因为你需要让代码看起来难以维护,而不是根本无法维护,如果你做的过头了,那么你自己也看不懂了。至于具体的程度上的把握,请各位根据自身情况慎重考虑。作者列出了很多技巧,原文非常详细,我就不一一列举了,简单摘录几个:

1. 用单个字母作为变量名,比如 a,b,c. 或者用很长而且看起来很像的变量名,比如google 和 g00gle. 变量名最好足够抽象,比如像 everything, data.

2. 在不同的作用域使用相同的变量名

3.将所有的API函数接口包上个6~8层,别写注释。

4.尽可能多地使用全局变量。

…………

更多请看原文,希望这篇教程可以让你永远保住饭碗。

Google 系列贴纸

昨天从一个同事那里抢了几个Google 系列的贴纸,有 Gmail , Chrome 等,很是喜欢,立刻就贴到我的 Macbook 上了,今天我意犹未尽,还想买一些来贴,于是同事就扔给我一个站: 乐乐贴,说是从这个地方买到的。Google 系列贴纸的 DEMO 如下:

a4-googlee7b3bbe588972.jpg

(点击这里去淘宝购买)

很不错吧,哈哈。然后我又仔细看了一下这个 乐乐贴 ,发现这个网站虽然看上去有点粗糙,但是真的很不赖。它们有官方的blog ,还有 twitter ,而且在出现新闻之后可以立刻转换成产品。另外,他们设计和产品的质量也是没的说,作为用户我很满意。

我对真正的好东西一向是强烈推荐的,所以今天推荐一下这个 乐乐贴 ,希望他们原来越好。

参加了Adobe Blogger Day

前一段时间收到Adobe公关的邀请参加了Adobe Blogger Day 的活动,对Adobe目前对中国市场的看法有了一些了解,也见到不少牛人,尤其是 7yue ,果然是资深技术专家,对所有的技术细节了如指掌。活动中播放了一些很酷的宣传片,其中有一个是关于最近比较火的“反拆迁”主题电影《阿凡达》的,放上来供大家欣赏一下:

(如果上面的视频无法直接观看,请点击这里去土豆网观看
查看日志全文 »

Internet Explorer Collection

好吧。这里我也不再骂“万恶的IE6”了,什么“标准”啊,“技术理想”啊之类的东西永远干不过商业利益。扯远了,下面介绍一个东西 Internet Explorer Collection ,看到名字相比你已经猜到,这就是 IE 各个版本的集合,和 multipleIE 很类似,不过 Internet Explorer Collection 整合了更多版本的IE(尽管用处不大),而且给IE 5.0以上的版本预先装好了 Internet Explorer Developer Toolbar ,它所包含的版本如下:

# Internet Explorer 1.0 (4.40.308)
# Internet Explorer 1.5 (0.1.0.10)
# Internet Explorer 2.01 (2.01.046)
# Internet Explorer 3.0 (3.0.1152)
# Internet Explorer 3.01 (3.01.2723)
# Internet Explorer 3.03 (3.03.2925)
# Internet Explorer 4.01 (4.72.3110.0)
# Internet Explorer 5.01 (5.00.3314.2100)
# Internet Explorer 5.5 (5.51.4807.2300)
# Internet Explorer 6.0 (6.00.2800.1106)
# Internet Explorer 6.0 (6.00.2900.2180)
# Internet Explorer 7.0 (7.00.5730.13)
# Internet Explorer 8.0 (8.00.6001.18702)

安装的时候请注意不要把IE设置成默认浏览器。

点击去下载页面

抛弃 Live Mail

很久很久以前,那个时候我还在上大学,当时申请了域名之后就想要一个@zhuoqun.net 的邮箱。于是我就遍地找服务商,当时 Google 的企业套件还不是那么容易申请,于是我就退而求其次,申请了一个 Live mail 的企业邮箱~ 历史证明这个决定是错误的,Live Mail 实在是太难用了~ 不过由于这个 Live mail 不提供导出邮件的功能,里面的邮件我又不忍心删除,于是就拖到现在~ 今天发现 Live Mail 支持 POP3 了,大喜,成功把邮箱里的东西全部备份,可以放心地抛弃 Live Mail 了~ Live Mail 的 POP3 设置信息如下:

接收 POP 服务器 pop3.live.com
接收 POP 邮件端口 995
要求 POP SSL 是
用户名 您的 Windows Live ID(例如:example555@hotmail.com)
密码 用于登录 Hotmail 的密码
发送 SMTP 服务器 smtp.live.com
发送 SMTP 邮件端口 25 或 587
要求验证 是(您的 Windows Live ID 和密码)
要求 TLS/SSL 是(如果可以请选择 TLS,否则请选择 SSL)

接下来就要给我的 zhuoqun.net 找个新家了,可能会选择 qqmail 或者 gmail 。 QQmail 现在做的很牛逼啊,表扬一下。

Repaint, reflow/relayout, restyle

前两天看到这么一篇文章《Rendering: repaint, reflow/relayout, restyle》,讲了一些有关浏览器渲染的原理和页面优化原则,个人感觉很有用,这里总结下。

先来看一下页面渲染的过程:

render.png

1. 解析HTML代码并生成一个 DOM 树。

2. 解析CSS文件,顺序为:浏览器默认样式->自定义样式->页面内 的样式</p> <p>3. </p>

3. 生成一个渲染树(render tree)。这个渲染树和DOM树的不同之处在于,它是受样式影响的。它不包括那些不可见的节点。

4. 当渲染树生成之后,浏览器就会在屏幕上“画”出所有渲染树中的节点。
查看日志全文 »

YUI PHP Loader Beta 2 发布

YUI PHP Loader 是 YUI 中一个服务器端组件,它可以很好地理解YUI 各个组件之间的依赖关系并按照顺序加载,而且会减少客户端的 HTTP 请求,提高页面性能。

现在它的 beta 2 发布了,修改了一些BUG 并优化了性能。详情请点击这里

更多关于 YUI PHP Loader

空 image src 属性导致的问题

今天看到 Zakas 写的一篇文章 “Empty image src can destroy your site” ,想到之前做项目的时候遇到过这个问题,当时出现了一个怪异的BUG:当刷新页面的时候,页面上的一个数值会增加,但实际上它应该是在触发了一些逻辑之后才增加。查了好长时间才发现,原来是因为页面中一个 img 标签的 src 属性设置成了空,导致间接请求了另外一个触发逻辑的页面。

img 标签为空有两种情况,一种是基本的HTML:

<img alt="" />

另外一种是在 JavaScript 里面:

var img = new Image();
img.src = "";

查看日志全文 »

关闭
Powered by ShareThis