Vi 有了 Vundle 这么一个总管(插件管理器),安装插件着实太省事了,再也不需要自己把 *.vim 文件放在各处。只需要做一次
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
编辑好
~/.vimrc文件,装什么每次在这个文件中加上Plugin 'scrooloose/nerdtree',运行:PluginInstall即可。我第一次体验执行
vim +PluginInstall +qall(和在 Vi 中执行:PluginInstall同一效果), 总是得到类似这样的错误Error detected while processing function vundle#installer#new..<SNR>46_process..vundle#installer#run..vundle#installe
r#install..<SNR>46_sync..<SNR>46_make_sync_command..<SNR>46_get_current_origin_url..<SNR>46_system:
line 1:
E484: Can't open file /var/folders/xz/vqv039517flcxtqzrq_jjy1xqzfzc0/T/v0rQ2fl/1
Error detected while processing function vundle#installer#new..<SNR>46_process..vundle#installer#run..vundle#installe
r#install..<SNR>46_sync: Read More- 使用 Vi 不得不提它强大的寄存器功能,一般操作系统只支持单例的剪贴板操作,而 Vi 借助于寄存器,相当于有几十个剪贴板可以使用。Vi 中针对内容的操作会记入到寄存器中,包括复制,粘贴,删除,以及只读的寄存器和与系统剪贴板交换内容的寄存器。本文最初目的是怎么与系统剪贴板交换内容。
在 Vi 中使用 :reg (:registers 或 :dis/:display) 命令显示寄存器中的内容
主要寄存器
Read More - 在 vi 中打开过多个文件时,每个文件都是存放在各自的 buffer 中,可以用命令 ls (buffers 或 files,三个命令中拣你最喜欢的一个即可,ls 输入方便,buffers/files 更表意) 显示所有的 buffer。显示出来的结果如下:

可以看到
每个 Buffer 的编号,分别是 1, 4, 5, 6
% 表示的是当前窗口中的 Buffer
+ 表该 Buffer 中的内容有修改
Buffer 中的文件名称 Read More
WordPress 终于又迎来一次次版本号的升级,带来几个便捷之处,如直接拖拽图片进编辑器中,随意缩放旋转。同时把 TinyMCE 从 4.0.21.1 版,这直接造成了我之前的那个添加代码的自定义工具按钮歇菜了,弹不出选项来。见 语法加亮插件 SyntaxHighlighter 的好伴侣,轻便的 TinyMCE 工具按钮 中描述的那个自定义插件。所以要把该插件升级下,使之兼容 TinyMCE 4,TinyMCE 从 3 到 4 的改变还真不小,界面上看到多了行菜单条,它的 API 变得大了去。
本文参考了:
1. http://www.tinymce.com/wiki.php/API3:method.tinymce.Plugin.createControl
2. http://www.tinymce.com/wiki.php/api4:class.tinymce.Plugin
3. http://www.tinymce.com/tryit/menubutton.php
现在改成了一个带三角的 MenuButton,如图: Read More- 之前也有记录过一篇是针对 All in One SEO Pack 1.6.X 的解决截取中文描述的办法--让All in One SEO Pack 插件适用于截取中文描述,随着该插件一直升级到当前的 2.1.2,我的插件仍然滞留在 1.6.x 的版本,原因是未曾了解下 2.x 下如何处理中文描述的问题。现在有幸找来办法整理了下,特记录在下:
中间插一句,All in One SEO Pack 可真是个吃内存的大户,小心使用。好,和针对 1.6.x 版本的修改一样,对于 2.x 也是要改两个变量值和一个方法,那就是在 aioseop.class.php 文件中
改下面两个变量分别为var $maximum_description_length = 300; //原本为 160;
然后修改方法 trim_excerpt_without_filters($text) 的内容为 Read More
var $minimum_description_length = 80;//原本为 1; - Varnish 是一个开源的反向代理软件,所以可做缓存服务器进行 Web 加速,类似的有 Squid, Nginx, 和 HAProxy。但 Varnish 与其他三个相比性能更优,例如 Squid 的成名是它可作为上网代理服务器, Nginx 是一个优秀 Web 服务器,这两都非专业的 Web 加速器,而 HAProxy 与 Varnish 有的一比。
实际上 Varnish 的表现如何了,网上找来找去都讲这么一个实证:挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。并且要知道 Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,牛人一个。
Varnish 有什么特点呢?
VCL 进行配置,正则表达式条件判定进行规则设置
支持负载均衡和健康检查,多种条件请求分分
支持 ESI( Edge Side Include),即页面局部组件的缓存
URL 地址重写,响应头改写 Read More - 很早很久以前写过一篇 在 xslt 调用 java 方法的日志 XSLT 调用 Java 的类方法, 其中介绍是使用 org.apache.xalan.processor.TransformerFactoryImpl 实现的例子,JDK 本身就是用这个的。但是在 Tomcat 环境下,它有它自己的 XSLT 默认实现是 net.sf.saxon.TransformerFactoryImpl, 这时候 XSLT 中的内容略有不同,而且显示更简便一些。
这么说吧, xalan 支持以下两种调用 java 方法的方式,而 saxon 只认得第二种
1. 声明到包,调用时带上类名1<?xml version="1.0" encoding="UTF-8"?> 2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 3 xmlns:java="cc.unmi.commons" exclude-result-prefixes="java"> 4 5 <xsl:output method="xml"/> 6 7 <xsl:template match="user/name"> 8 <li><xsl:value-of select='java:XsltFunctions.replace(.)'/></li> 9 </xsl:template> 10</xsl:stylesheet>
Read More - WordPress 升级到 3.5 之后发现 Widget 无法拖动,也无法展开设置。在之前也发生过类似情况,一般来说是某个插件或主题的影响,原来一一试过,才知是因为 Use Google Libraries 这个插件在作祟,禁了就能恢复正常。这回也以为旧病复为,禁为 Use Google Libraries,仍然无济于事。
后通过 FireFox 的 Firebug Console Errors 中看到浏览 Widget 编辑页面时出现脚本错误:
Error: Syntax error, unrecognized expression: #enh_rp-show-select-%i%
...eturn t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=...
点击进去,才发现坏在了 jQuery 1.8.3 上去了,jQuery 我想应该是久经考验的革命 LD 吧,自然黑锅就得让 WordPress 来背了,这时的 WordPress 只能算作是临时工,更时髦的名称是合同工。
查了下,这个问题在 WordPress 的坛子里有不少人上报,有人列出了些解决方案,拣亲身试过的在这里供出来。 Read More - 在 Xcode 3 的时代,如果要使用自定义字体,只要把字体安装到系统中,就能够在 Interface Builder 中字体列表中选择到,当然需要把字体文件加到项目中,并且在 Xxx-Info.plist 文件中列举出来。
而到了 Xcode 4 后,要用个自定义的字体反而更难了,字体安装到了系统中,它也不会出现在 Interface Builder 中的字体列表,必须用 setFont 为需要的控件应用自定义字体,这是一个浩大的工程,要么遍历控件,要么就得为控件与 IBOutletCollection 关联起来。
难道是 Apple 不希望看到应用中各色字体令人眼花缭乱的景象,所以制造点障碍。也不知道新的 Interface Builder 中的字体列表由哪得来的,是否能把自己的字体出现在该列表中呢?这个嘛,有点难。
既然不想使用 setFont 方法对 Xib 中的众多的控件一一设置字体,那就得另寻 Hack 方法了,幸好有了 FontReplacer 的方法。FontReplacer 是为 UIFont 做的一个 Category,它的实现原理是利用 method_exchangeImplementations 机制把 UIFont 的 fontWithName:size: 和 fontWithName:size:traits: 换成自定义的方法,然后在自定义的方法中按照预设置的字体映射,当遇到某个系统字体 A 时,换成自定义的字体 Custom-A。
而你所要做的就是在 Interface Builder 中寻找字体,自己记住当选用了 系统字体 A,运行时会是 Custom-A 字体,系统字体 B 运行时会是 Custom-B,根据需要自己映射就行。一般方便起见,我们会选择一种字体(Family),然后用它的 Style 来与我们的自定义字体对应。这样只需要 Interface Builder 里像往常一样设置字体就行了,从而达到一劳永逸。 Read More - 跟着苹果干的好处就是,有什么新特性就尽快的就享用它们,这非常符常程序员们的学习心态。不像国内的某些技术领导,他们很领会某种舞台上的精髓 -- 稳定压倒一切 ,JDK 1.6 都出来了,还不少项目还牢牢固守在 JDK 1.3 上,程序员真是无言而又苦 B 啊。当然你在使用 Objective-C 时能时刻得到更新也得利于 Obj-C 完全由 Apple 主导,免了不少口水,瞧瞧 C++ 到 C++11,历时 13 年啊。
OK,言归正传,Xcode 当前版本 4.5.2,来看下自 4.4 以来它给我们带来了什么语言上的新特性。每个版本有新特性时一定要看官方的 What's New in Xcode。这么说来 Xcode 4.4 也算是个关键性的版本更新。
@ 不光可用于创建 NSString,还简单化了 NSNumber,NSArray 和 NSDictionary 对象的创建,一一来看。
@ 创建 NSNumber 实例
从 Xcode 4.4 起,无段 [NSNumber numberWithInt: 10] 这么写了,@10 就完事,下面是各种数值类型的 NSNumber 创建方式: Read More