【推荐】Zeal 离线API文档浏览器

zeal是一个windows上的开源的离线文档浏览工具,基于docset格式,可以兼容全部dash的文档。zeal没有代码片段管理的功能,只提供文档浏览功能,不过windows下的用户可算是有的用了。dash目前只提供mac上的版本,作者说有往windows上移植的打算,但迟迟没有动工。

刚安装好之后是没有文档可以看的, 需要自己下载。下载后解压到程序目录内即可,重新打开程序后就可以看了。

软件下载:http://zealdocs.org/

文档下载:http://kapeli.com/docset_links

Javascript中四种函数调用方式

为了解释方便,先创建一个函数:

function showmsg()
{
  console.log(this);
}

它的作用是打印this这个对象,也方便我们了解它到底指代什么。

一、直接调用

showmsg();

结果:

Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…} 

可知,直接调用时,其中的this就是顶层对象window。

二、作为构造函数调用

var obj = new showmsg();

结果:

showmsg {} 

调用之后,创建了一个类型和函数同名的对象。this指代这个对象。

三、作为方法调用

var obj = {showmsg: showmsg};
obj.showmsg();

结果:

Object {showmsg: function}

其中this就是那个被绑定的对象。

四、function.call

showmsg.call({});

结果:

Object {} 

call的第一个参数是什么,里面的this就是什么。如果需要传参数的话,附在后面即可。而且这种可以只调用不绑定。

此外,直接调用相当于:

showmsg.call(null);

如果第一个参数是null,那么里面的this则是顶层对象window。

作为构造函数调用相当于:

var obj = {};
obj.__proto__ = showmsg;
showmsg.call(obj);

miui for nexus7 一代

*. xda大神适配的非官方rom,只可刷wifi版,3g版效果未知概不负责。

0. 请确保你的电脑上已安装驱动,n7已解锁bootloader(开机画面中显示的锁是打开的)。

1. 将刷机包( www.miui.com/forum.php?mod=viewthread&tid=1694768 )放入n7跟目录下。

2. 下载 CWM Recovery Touch 6.0.4.3 解压出recovery.img。(http://bbs.gfan.com/android-7070738-1-1.html)

3. 下载fastboot。将n7关机,按住电源键和音量下键开机进入recovery,就是一个小机器人平躺的画面,刷入 recovery.img。

4. 按电源键出现菜单,按音量上下键找到recovery,按电源键进入。

5. 点击“wipe data”和“wipe cache”,双清。

6. 点击“install zip from sd”,然后找到并选择之前导入的刷机包,开始刷机。

回忆录【二】

下学期开了ics,实际上是汇编+体系结构+linuxc。书用的是《csapp》,cmu的教材,很经典的一本,超赞。整个课程一部分是摆弄linux,我买了本《鸟哥linux》,自己摆弄。那个学期到最后我都没学会vim,不会自己写shell。当时我也不知道php和py那些东西。现在习惯于拿php和js写shell,虽然很冷门,但好用就行。

我记得当时要写个浏览器脚本,对,就是志愿者审核那个。需要用到js,我久闻《犀牛书》大名,买来读了一下,读到原型链那块就没继续了。那本书后一半的内容就是manual嘛,真是良心。总之是对这种函数为first class的语言三观尽毁,也学到不少新东西。

然后我打算看看服务端是什么样子的。我当时想,dz和wordpress都是php写的,主机基本也支持php,就学他好了。也好,我也认为牛逼的程序员要根据需求去学语言。我为此还买了本书,跟c#那本一个系列的,最后发现没php官网的manual好用。这也证实了我的观点,学第二门语言的时候,只要reference就够了。

那个学期有数据结构课,教材是《pac》,还是standford出品,个人认为不怎么样。我推荐《啊哈,算法》这本,可惜当时还没出版,有点遗憾。我没有oi背景。你们无法想象,我知道自己某道题做不出来,居然是由于自己没见过类似的模型或者算法,的那种感觉。龟兔算法用了12才被推出来,诧异么?我智商不足以用十几分钟推出别人十几年的东西,只有见多识广来弥补。

接下来的学期发生了些状况,我觉得贴吧辅助前景不大,就弃坑了。有人评价我,从此大贴吧辅助时代过去了。我觉得我没那么大影响力,我和几位作者只是“偶然性非协同共犯”。在弃坑之前,我写了属于自己的签到助手,一直在用,可惜没过几个月就正式宣布停更了。其实这个东西是给老姐写的,如果老姐看到了,来mua一下吧。

这个学期有门课,数据库原理与应用,大作业很恶心,同一个东西依次用php,jsp+servlet,以及ssh写一遍。没错就是重构两遍,杀死一个程序员只需改三次需求,再改一次我就扑街了。但是我有信心,不买任何书,只看文档把它弄出来,包括后面的javase和安卓应用。编程语言是共通的,其实是“命令式语言中的支持oo的语言是共通的”。

你们以为我会诉说自己的心酸史,然后再把原来的圈子批判一番吗?我只会以史为鉴去规划未来。顺便分享给你们,少走弯路。

人生长路漫漫,唯持之以恒,无它。

未完待续。

回忆录【一】

最近不知道为啥那么多人跟风写回忆录,我也写一篇好了。

我在大学之前几乎没接触过代码,也就是高一vb课,一个学期,才讲到循环结构那章。没办法,生在天朝,身不由己。希望各位别拿我说,大学前没弄过代码也照样牛逼,我并不是没弄过,也不牛逼。

刚进大学那会儿,我还没到软院,但是有c语言的课,用的教材是《c语言的科学和艺术》,stanford的教材。这本书该有的东西都有,但由于我当时经验并不丰富,成绩也没好到哪儿去。

学了一个学期后,我觉得情况不对。我烦透了黑乎乎的控制台,想写点实用又好玩的东西。我一想,就贴吧辅助吧,这块还比较熟悉。用什么语言呢,就vb吧,以前用过。于是我在vs2010里面新建了个工程,发现不对,查资料才了解到vb6已经放弃支持了。现在是vb.net,是vb在.net平台上迁移的产物。我虽然熟悉语法,但是库都是新的。vb.net的书不好找,我当时蠢到不知道msdn这种东西,就买了本《c#从入门到精通》。

我费尽周折转到软院之后,要从大一开始读。当时第一门专业课是程设,用cpp写代码。很庆幸各路大神向我推荐了《cpp primer》,很多人说不适合新手,我觉得还行,这个也分人。但是教材不是这个,是cpp他爹写的《cpp程序设计原理与实践》。这本书给我的感觉,第一,编程书也能这么啰嗦,第二,cpp居然能写gui应用。大家别笑后面那个,很多新手都这么认为,因为cpp标准库里面不带gui库,而他们又不上开源社区找三方库。fltk个人觉得很丑,但总比控制台好看。期末大作业虽然没规定库,但我还是用fltk做的。那个大作业是计算器,原理书里面有,虽然用递归解析而不是词法树,我还是觉得很神奇。

联通大法好

天灭中移动,换卡保平安。
人在做,天在看,TD垃圾留祸患。
8k网速天地灭,投奔联通保平安。
诚心诚念联通好,国际标准平安保。
众生都为联通来,现世险恶忘前缘。
联通用户说真相,教你脱险莫拒绝。
早日摆脱移动,早日重获新生。
网搜“移动4g速度不如联通3g”有真相!

php utf-8编码 正则匹配中文

首先unicode里面 中文区域是0x4e00-0x9fa5
在java或者js这种以unicode编码处理字符串的编程语言中
/^[\u4e00-\u9fa5]+$/就可以判断一个字符串是否全部为中文

那么php中 字符的编码根据页面而定
页面是gbk的 字符编码就是gbk的 utf-8也同理
之前有一个表达式 /^[\x80-\xff]+$/
仅仅可以匹配是否含有非ascll字符
而汉字只是其中一个比较小的区域 不太精确

由于我的页面编码是utf-8的
于是把js的表达式搬到php中来
提示PCRE不支持\u和其他乱七八糟的一大堆东西

后来查资料了解到 php的正则有一种叫做字符组的东西
\x{...}表示
于是把表达式改成/^[\x{4e00}-\x{9fa5}]+$/
又提示\x表达式后的数字太大

又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理
于是改成了/^[\x{4e00}-\x{9fa5}]+$/u 测试成功

所以php下正则匹配中文的表达式是 /^[\x{4e00}-\x{9fa5}]+$/u
这个仅适用于utf-8编码