戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

越过长城,走向世界每一个角落

日期:2015年5月21日 作者: 分类:互联网 阅读:1,790

1987年9月14日 ,中国成功发送了第一条电子邮件,内容是:

“Across the Great Wall, we can reach every corner in the world”(越过长城,走向世界每一个角落)

这可以算是一个里程碑的时刻,这封邮件的意义之于中国互联网,不亚于1949年10月1日毛主席在开国大典上说的那句“中国人民从此站起来了!”。20多年已经过去了,可看看现在国内互联网的现状,给我们的只有一个无力的叹息:长城依然在,大炮正在开。GFW下的大中华局域网已经形成。

越过长城,走向世界每一个角落

 

中文维基百科被屏蔽事件

越过长城,走向世界每一个角落2015年5月19日,中文维基百科的域名zh.wikipedia.org被关键字屏蔽和DNS污染,目前从中国已无法正常访问中文维基百科,中文维基百科的域名也无法解析出正确的IP地址。维基百科是一个自由内容可公开编辑,且多语言的网络百科全书,由非营利组织维基媒体基金会负责营运,并接受捐赠。其口号为“维基百科,自由的百科全书”。中文则附加“海纳百川,有容乃大。”

维基百科自2001年1月15日正式成立,由维基媒体基金会负责维持,因为维基用户的广泛参与共建、共享,维基百科也被称为创新2.0时代的百科全书。这本全球各国人民参与编写,自由、开放的在线百科全书也是知识社会条件下用户参与、大众创新、开放创新、协同创新的生动诠释。目前维基百科的词条数量已经达到3111+万(所有语言版本)条。

阅读全文…

为什么只有 Linux 内核获得成功

日期:2015年5月14日 作者: 分类:互联网 阅读:448

过去几十年涌现了许多类Unix内核,除了Linux内核外,我们所知道的类Unix内核还有GNU HURD、BSD、微软授权开发的Unix版本Xenix、学术性的Unix克隆Mini,以及Unix本身。但为什么只有Linux内核最终取得成功?这是自由开源软件领域中一个令人不解的谜团。

为什么只有 Linux 内核获得成功

SR(Eric S. Raymond)的一个观点是Linux采用了去中心化的开发模式,而GNU HURD失败的原因之一是开发方法过于集中化,但这一观点有缺陷,Linux作者在引导Linux开发上起着至关重要的作用。

另一个观点是Linux是实用主义,而GNU过于理想主义,但为什么理想主义的GNU开发出了许多成功的自由软件?

第三种观点是Linux在操作系统设计上比Unix更优越,RMS(Richard Stallman)曾指出GNU HURD没有成功的部分理由是它的基本设计更像是一个研究项目。

第四个观点是社区选择支持Linux。

阅读全文…

linux命令批量改名与批量文字替换实战

日期:2015年5月12日 作者: 分类:运维 阅读:768

情景:开发的一个项目中,文件名的命名规则为“tbuxxx.x”,即所有文件名中有“tbu”这个字符串,现在要将“tbu”改为“wcr”,即更改后文件名规则应为“wcrxxx.x”,同时,由于文件中存在文件引用,故也要将文件中相应的“tbu”改为“wcr”。

第一步:批量更改文件名(rename)

rename tbu wcr *

* 为通配符,代表所有文件,该命令的意思是将当前文件夹中所有文件名中的tbu替换为wcr。

第二步:批量更改文件中相关字符串(sed)

sed -i "s/tbu/wcr/g" *

* 含义和上面相同;

“s/tbu/wcr/g” 字符替换匹配规则,规则为”s/要替换掉的字符串/要替换成的字符串/g”,s为命令开头,g代表全部匹配的字符串。

阅读全文…

Linus:利用二级指针删除单向链表

日期:2015年5月12日 作者: 分类:编程 阅读:434

Linus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding

下面是Linus的教学原文及翻译——

“At the opposite end of the spectrum, I actually wish more people understood the really core low-level kind of coding. Not big, complex stuff like the lockless name lookup, but simply good use of pointers-to-pointers etc. For example, I’ve seen too many people who delete a singly-linked list entry by keeping track of the “prev” entry, and then to delete the entry, doing something like。(在这段话的最后,我实际上希望更多的人了解什么是真正的核心底层代码。这并不像无锁文件名查询(注:可能是git源码里的设计)那样庞大、复杂,只是仅仅像诸如使用二级指针那样简单的技术。例如,我见过很多人在删除一个单项链表的时候,维护了一个”prev”表项指针,然后删除当前表项,就像这样)”

if (prev)
    prev->next = entry->next;
else
    list_head = entry->next;

and whenever I see code like that, I just go “This person doesn’t understand pointers”. And it’s sadly quite common.(当我看到这样的代码时,我就会想“这个人不了解指针”。令人难过的是这太常见了。)

People who understand pointers just use a “pointer to the entry pointer”, and initialize that with the address of the list_head. And then as they traverse the list, they can remove the entry without using any conditionals, by just doing a “*pp = entry->next”. (了解指针的人会使用链表头的地址来初始化一个“指向节点指针的指针”。当遍历链表的时候,可以不用任何条件判断(注:指prev是否为链表头)就能移除某个节点,只要写)

*pp = entry->next;

So there’s lots of pride in doing the small details right. It may not be big and important code, but I do like seeing code where people really thought about the details, and clearly also were thinking about the compiler being able to generate efficient code (rather than hoping that the compiler is so smart that it can make efficient code *despite* the state of the original source code). (纠正细节是令人自豪的事。也许这段代码并非庞大和重要,但我喜欢看那些注重代码细节的人写的代码,也就是清楚地了解如何才能编译出有效代码(而不是寄望于聪明的编译器来产生有效代码,即使是那些原始的汇编代码))。

Linus举了一个单向链表的例子,但给出的代码太短了,一般的人很难搞明白这两个代码后面的含义。正好,有个编程爱好者阅读了这段话,并给出了一个比较完整的代码。他的话我就不翻译了,下面给出代码说明。

阅读全文…

大数据的隐私、失效、失误之痛

日期:2015年4月29日 作者: 分类:互联网 阅读:405

本文是在《大数据时代》一书的第七章“风险”的内容基础上集合了作者的一些感悟而成,在此向该书作者:维克托.迈尔.舍恩伯格及肯尼思.库克耶表示敬意。从2012年开始,关于大数据所带来的负面问题就已经有过很多的讨论了,所以这次多少还是会有些老生常谈,请原谅。

今天的话题开始于上映两周全球票房即达到8亿美元的《速度与激情7》,当然,不是说车、说美女,而是影片中那个无所不能的“天眼”,这个很酷炫的系统能够调用地球上任何位置任何设备所生成的视频、图片、音频,让你想要搜索的人或事物无所遁形。大数据时代,“天眼”已经成为可能,同时,天眼也会在遭受病毒入侵后出现决策上的失误。

阅读全文…

Wordpress 4.2/4.3博客头像不显示的解决方案

日期:2015年4月26日 作者: 分类:编程 阅读:595

之前写过Wordpress 4.1博客头像不显示的解决方案,昨天更新到WordPress 4.2版本后(经测试4.3.x也通用),发现头像又不显示了,再按照4.1的方法也找到到修改的代码了,估计是将gravatar.com链接的代码合并更新了,在经过对代码的一番排查后,在wordpress根目录下的wp-includes/link-template.php找到与gravatar相关的代码,在第3604行有如下代码:

阅读全文…

有一天,你不会再记得网址是什么了

日期:2015年4月21日 作者: 分类:互联网 阅读:424

近日,Google 宣称他们已开始将搜索结果中用“网站名以及层级路径”取代了原本搜索结果中长长的 URL 网址。简单来说,就是像下图黄色圈住的部分:

有一天,你不会再记得网址是什么了

URL 网址要被更加简单层级分明的路径取代了。毕竟原先一长串仅供机器识别的超链接地址,对于人们来说意义不大。万维网之父 Tim Berners-Lee 自己也在早先的采访里承认说当年设置“http://”中的两个反斜杠是完全的多余,这导致“人们需要更多地使用手指”。

而尽管 Google 目前这个举措只在手机端进行,区域也仅限于美国,但按照惯例,它的做法会逐渐推行到更广的地区。科技公司消灭网址的举措由来已久。

阅读全文…

WordPress在Nginx下启用mod_rewrite功能

日期:2015年4月21日 作者: 分类:运维 阅读:544

如果wordpress部署在Nginx下,在使用wp-super-cache时,若使用mod_rewrite方式(最快的缓存方式)进行缓存时,插件会提示没有安装mod_rewrite模块,那是因为wp-super-cache是设计为对Apache最友好的,它是在检查Apache的mod_rewrite模块是否安装。

其实Nginx默认支持mod_rewrite规则的,我们只需要在wordpress主题中增加一句代码告诉插件已经启用mod_rewrite,插件就可以正常工作了。

具体方法是,在自己的主题模板下的function.php文件中增加如下代码:

阅读全文…

解决WordPress安装All in One SEO Pack后站点标题重复的问题

日期:2015年4月20日 作者: 分类:编程 阅读:691

发表这篇博文让我再次吐槽一下:娱乐问题找百度,技术问题找Google!

言归正传,在给wordpress博客系统安装了All in One SEO Pack插件并配置启用以后,出现一个问题,除了首页的标题信息正常显示,其他内容页面的标题处会如下显示:

文章标题+博客标题 | 博客标题
%post_title%%blog_title% | %blog_title%

也就是说博客标题多出了一次,第一次的博客标题是个bug。

阅读全文…