Unicode字符预览表
关于Unicode的字符表,你可以在这里下载:
http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
而有热心人通过上面个表格,使用JavaScript制作了下面这个网页,其穷举并可以显示上述定义的所有的Unicode字符。
http://www.ftrain.com/unicode/
打开这个网页,左边的那个大表格是一个10×10的列表,每个小单元格上面是这个字符的样子,下面是这个字符的HTML输入格式。这个表格下面是一个预览格,因为有些这符太细腻了。
当然,所有的字符不肯定不止100个,所以,网页右上角有三个进度条,一个是100个字符的往后移动,第二个是1000个字符,第三个是10000个。
随便找了一下,找到下面这些各式各样的箭头,如下所示:
td,td {width:50px;height:50px;text-align:center;vertical-align:center;font-size:2.5em;border:1px solid #ccc;}
.exp {font:8pt sans-serif;col ...
Erlang和Python互通
最近开发 Erlang ,对其字符串处理能力无言至极,于是决定把它和python联合起来,打造一个强力的分布式系统,等将来需要系统级开发时,我再把 C++/C组合进来.
首先参考了 Erlang 官方文档和 http://blog.developers.api.sina.com.cn/?tag=erlang 以及 http://kazmier.net/computer/port-howto/ .
研读了将近24个小时, 才终于完全把问题解决. 起名为town,town在英文里表示集市,也就是代表各种语言在这里的交流与互动。) )
[erl]-module(town).
-behaviour(gen_server).
%% API
-export([start/0,combine/1]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
terminate/2, code_change/3]).
-record(sta ...
在线代码编译服务Codepad.org
Codepad.org是一个很有意思的网站,它的主页很简单,左边是可以编译并执行的程序语言,右边则是让你输入程序的输入框,输入框的下面是一个“Run Code”的复选钮和一个“Submit”的提交按钮。
其操作起来也非常简单,先选中你要编译并运行的程序语言,然后在输入框中粘贴或输入程序的原代码,然后,点击提交,你就可以看么你程序编译出错的提示,或是执行的结果。
也许,你会觉得很无聊天,但我觉得这在某些时候会非常有用,尤其是你找不到编译器而又想验证一段代码的时候,这种时候还是比较多的。特别是我们很难有一台可以运行所有语言的电脑,如果有的话,那一定是你自己的个人电脑,当你不使用你自己的电脑时,你就会着急了。而且,我觉得这项服务非常地有意思,因为,这样一来,你甚至可以在你的手机上写任何语言的程序了。
目前这个网站支持下面这样语言——C,C++,D,Haskell,Lua,OCaml,PHP,Perl,Plain Text,Python,Ruby,Scheme,Tcl。(没有Java)
当我打开这个网页的时候,我立马想到了《6个变态的C语言Hello World程序》,然后就取了其中一个上 ...
Code Review中的几个提示
Code Review应该是软件工程最最有价值的一个活动,之前,本站发表过《简单实用的Code Review工具》,那些工具主要是用来帮助更有效地进行这个活动,这里的这篇文章,我们主要想和大家分享一下Code Review代码审查的一些心得。
首先,我们先来看看Code Reivew的用处:
Code reviews 中,可以通过大家的建议增进代码的质量。
Code reviews 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码。
Code reviews 也鼓励程序员们相互学习对方的长处和优点。
Code reviews 也可以被用来确认自己的设计和实现是一个清楚和简单的。
你也许注意到了在上面的Code Reivew中的诸多用处中,我们没有提到可以帮助找到程序的bug和保证代码风格和编码标准。这是因为我们认为:
Code reviews 不应该承担发现代码错误的职责。Code Review主要是审核代码的质量,如可读性,可维护性,以及程序的逻辑和对需求和设计的实现。代码中的bug和错误应该由单元测试, ...
科技公司十大最愚蠢的错误
有一些史上最大的高科技公司的交易没有发生。有一些最有前途的产品和服务也没出现。为什么?因为这其中的人和公司当时都没有意识到是什么样的东西滑过了他们的手指,或者,他们只是简单地不能预知未来会发生什么。
如果事情还能再来一次,也许今天我们就不会看到Apple和Microsoft了,而且,Yahoo可能会成为世界上最大的搜索引擎,Google只能成为后者。你也许只能从施乐电脑上读这篇文章,从RealPod上听你最喜欢的频道。
人们都说“事后诸葛亮”( hindsight is 20-20,20/20是最好的视力),如果真是这样的话,那么,我们的分析就是最精确的。下面是我们挑选的历史上十大科技类公司丢失机会的案例。
1. Yahoo 错过 Facebook
2006年,当时只有2年的Facebook还在只服务于一些学校内的社交网络。那个时候的MySpace就拥有了1亿用户,完全超过了Facebook的8百万用户。所以,当 Yahoo 提出使用10亿美金购买 Mark Zuckerberg 的孩子 时(其将近 2005年 Rupert Murdoch 收购 MySpace 金额的两倍 ...
Linus Torvalds 语录 Top 10
下面是Linux的创始人Linus Torvalds的一些言论,这是我个人认为最有意思的10句。如果你想看更多的Linus Torvalds说过的话,你可以看看他在维基百科上的词条:Linux Torvalds。我们在下面给出中英文对照,希望你能喜欢。
“Really, I’m not out to destroy Microsoft. That will just be a completely unintentional side effect ” (真的,我并不是想要干掉Microsoft,如果真是那样了,那完全是一个无意的副作用)——”The Way We Live Now: Questions for Linus Torvalds”, 接受《New York Times》的采访, 2003-09-28.
“Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it”(只有愚昧的人才会用 ...
Linux基金会的广告
今年早些时候,Linux基金会发起了一项面向制作人和一般Linux爱好者的活动,创造60秒创意的广告并评奖。
Linux基金会并没有苹果和微软这样大的投入来聘请大腕,但这次评选出来的好广告却一点也不输于他们,Linux社团的参与力和灵感可见一斑。本次活动获胜的奖品是免费前往东京参与Linux专题研讨会,评奖结果是:
第一:“What does it mean to be free?”
第二:“The Origin,”
第三:“Linux pub”
下面是广告片的视频
What does it mean to be free?
The Origin (起源)
Linux Pub
下面的视频需要你能够访问YouTube(你可以上Google搜索如何访问YouTube的方法)
还有很多很不错的作品,比如:
The Future is Open
Challenges at the Office
更多的视频,你可以上Linux基金会的网站上看看,也一样地非常地有创意。
http://video.linuxfoundation.org/cate ...
操作系统航空公司
我们知道,不同的操作系统有不同的系统,不同的风格,那么,如果操作系统和航空公司,会是怎么样的一种情况?让我们尝试地来做这样一个幽默的类比,把操作系统的特点带到航空公司,让我们看看会是怎么样的一个情况。
UNIX Airways
Unix航空公司需要每一个人在乘机的时候带上一个飞机零件,他们会在飞机跑道上把飞机的这些零件一片一片地组装起来,然后,在不停地争论着倒底是要建造什么样的飞机。是AIX,还是Solaris?是FreeBSD还是HP-UX?……
Air DOS
DOS 航空公司的飞机需要每一位乘客在后面推飞机直到飞机开始滑行,然后他们跳上飞机并且跟着飞机一起沿着海岸滑行直至飞机再次掉到地面,然后乘客们再次推动飞机,然后跳上飞,如此循环不止……
Mac Airlines
Mac航空公司中,所有的乘务员,机长,行李搬运工,和机票代理无论是看上去还是行为上都是完全一致的。每次当你询问细节的时候,他们都会很绅士地但很坚定地告诉你,你不需要知道那么多的细节,也没有必要知道,所有一切的事情都已经在你不需要知道的情况下完成了,所以,你只需要shut up。
Windows Air ...
恢复Ext3下被删除的文件
下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。
假设我们有一个文件名叫 ‘test.txt’
$ls -il test.txt
15 -rw-rw-r– 2 root root 20 Apr 17 12:08 test.txt
注意:: “-il” 选项表示显示文件的i-node号(15),如果你不知道Unix/Linux文件系统的“I结点”的话,你有必要先补充一下相关的知识。简单说来,i结点就是操作管理文件的一个标识号。
我们再看一下其内容:
$ cat test.txt
this is test file
好,现在我们开始删除文件:.
$rm test.txt
rm: remove write-protected regular file test.txt'? y</span></span></div> <h4>使用 Journal 和 Inode 号恢复</h4> 注意,如果你删除文件后重启了系统,那么,相 ...
你用Linux命令行吗?
想一想,如果你要把一个图片的尺寸改小一点,你会怎么办?当然,我一定会启动一个图形编辑软件,然后,打开图片文件,从菜单上选择相关的工具选项,更改大小,然后保存文件。就算是在Linux下,我可能也是这么干的,比如Ubuntu下也是这样,如下图:
但其实,如果你用命令行来更改图片大小的话,一条语句就可以搞定了。如:
convert -resize 300 profile.jpg profile_small.jpg
当然,如果你要使用这样的命令,你需要安装Imagemagick,你可通过apt-get install imagemagick来安装一下。
不管怎么说,很简单吧,下面还有几个:
1)给图片加阴影
给图片加阴影可以使用下面的这个命令:
convert screenshot.jpg
\( +clone -background black -shadow 60×5+0+5 \)
+swap -background white -layers merge +repage shadow.jpg
效果如下:
2)把两个MP3拼起来
cat 1.mp3 2.mp3 > ...
G1新型垃圾回收器一瞥
目录
G1垃圾回收器
属性
描述
使用 G1
状态
相关资源
G1垃圾回收器
“G1垃圾回收”的英文全称是 Garbage-First Garbage Collector (又被称作G1 GC),这是一个新型的垃圾回收器,由JDK 7中的Java HotSpot VM 引入。这个技术曾经在Java SE 6 Update 14版本中出现过一个试验性的,然后 G1 被 HotSpot的 反应快速(low-latency)的 Concurrent Mark-Sweep GC (简称 CMS)长期取代。
属性
G1 是一个“服务器风格(server-style)”的垃圾回收器,它主要有下面的这些属性:
并行和并发。 G1 可以从今天最新的硬件中获得并行的能力。它能够使用所有可用的CPU(CPU多核,硬件多线程,等)来加速它的 “stop-the-world” 机制(这个机制简称STW,即,在执行垃圾收集算法时,Java应用程序的其他所有除了垃圾收集帮助器线程之外 ...
IE的CSS相关的BUG
这个网页(http://haslayout.net/css/index)上例举了所有的IE和CSS相关的BUG。如果你在开发网页的时候,你需要看看。
目前,这个网站上包含了 28 个“普通的Bug” , 4 个“布局方面的Bug” , 6 个“可以绕开的Bug” 以及 1 个“IE崩溃的Bug”,所有的这些Bug有39个指南和48个解决方法。这个列表目前更新到 2009年8月11日,19:50:22
下面是所有的bug列表,你可以点击每个BUG名的链接查看更详细的说明。
目录
普通Bug
布局类 Bug
不支持的功能
程序崩溃 Bug
普通Bug
这部分 IE 的 bug 是比较普通的无法归到其它种类,或是同时属于多个种类的Bug。
名称
IE的版本
描述
Hover White Background Ignore Bug
IE7
background 不会因为 :hover而改变
IE7 Child Selector Comment ...
23,148,855,308,184,500
上个月VISA信用卡出事了,某个美国人在加油站买了一包香烟,于是他的信用卡里就有了标题那个数字的钱“$23,148,855,308,184,500”,注意这可以美刀啊,相当于美国整个国家国债的N倍。
程序员们开始疯狂了,他们在stackoverflow.com上开始人肉debug这个问题(贴子)。排名第一的回答(564 votes)说,这个数字转成十六进制是:0x2020 2020 2020 1250,很明显,前面的若干个0X20表示的是空格,也就是说,程序错误地处理了空格。于是本回答后的跟贴把这个回答推举成了本年度最牛的debug——”best debug of the year”,后面还有人说这个人应该在NASA工作,继而有人跟贴,应该是VISA而不是NASA……
当然,也有人有不同的意见……
排名第二个贴子(仅有排名第一的零头 67 votes)发表了不同的意见,贴主说,VISA报道说当时全球在那个星期内发生了大约13000起这样的事情,而且,全世界在报道相似的事情(报道一,报道二),但所有的报道都是相同的数字——23,148,855,308,184,500。如果 ...
几个有趣的漫画
下面的图片告诉你——行销,广告,公关,品牌有什么差别。
市场营销
公共关系(软文)
广告
品牌
那么,Apple,Google和你的公司的差别是什么呢?
最后,让我们来看一个“真人版”的眼神跟着鼠标走的FLASH吧,单击下面的图片访问网站:http://cubo.cc/
Javascripts加密库
一般说来,使用HTTP协议是不加密的,所有的数据都是以纯文本方式提交的,就算是你提交数据时,也是使用纯文本的方式发送。只有HTTPS协议会有SSL加密数据,但一般来说,HTTPS需要服务器端进行SSL设置,并有些麻烦。而jCryption这个jQuery插件能够加密由Forms提交的POST/GET数据。jCryption使用RSA公钥密码算法加密,另外,该项目还提供一个PHP文件来处理数据的解密。
这个库是一个开源库,也是一个同时使用MIT和GPL协议的项目。
你需要注意的是,这个库无法取代SSL,使用这个库,你依然可能受到MITM攻击(中间人攻击 Man-in-the-middle-attacks)
主页:http://www.jcryption.org/
下载:http://code.google.com/p/jcryption/downloads/list
示例:http://www.jcryption.org/demo/
简单实用的Code Review工具
Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法。由此,我们可以审查代码的风格、逻辑、思路……,找出问题,以及改进代码。因为这是代码刚刚出炉的时候,所以,这也是代码重构,代码调整,代码修改的最佳时候。所以,Code Review是编码实现中最最重要的一个环节。
长时间以来,Code Review需要有一些有效的工具来支持,这样我们就可以更容易,更有效率地来进行代码审查工作。下面是5个开源的代码审查工具,他们可以帮助你更容易地进行这项活动。
1. Review board:Review board 是一个 基于web 的工具,是由 django 和python设计的。 Review board 可以帮助我们追踪待决代码的改动,并可以让Code-Review更为容易和简练。尽管Review board 最初被设计在VMware项目中使用,但现在其足够地通用。当前,其支持这些代码版本管理软件: SVN, CVS, Perforce, Git, Bazaa ...
编程引言补充
之前收集过《22条经典的编程引言》,发现还有一些未收录的,下面这些引言也很有意思的,希望你喜欢。
“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill
“最开始的90%的代码使用了程序员90%的时间,剩下的10%的代码也需要90%的开发时间”——Tom Cargill(这不就是中国谚语——“行百步半九十”)
“In order to understand recursion, one must first understand recursion.” – Author Unknown
“要知道什么是‘递归’,你首先需要知道‘递归’”——无名氏
“I have always wished for my computer to b ...
面试题:赛马问题
据说,这是Google的面试题。面试题目如下:
一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问,最少得比多少场才能知道跑得最快的5匹马?(不能使用撞大运的算法)
很明显这是一个算法题,网上有很多贴子在讨论这个问题,不过都没有给出一个明确的答案。我想了想,想到下面的一个算法:
1)分成5组A,B,C,D,E,比五场。然后根据每场结果分别给这五组内的五匹马排序(从快到慢)。
2)每组的头名再赛一场,取走第一名,然后该组第二名顶上。
3)重复第二步,直到选出前5名。
这个算法是比较笨的算法,总计需要赛10次,这个算法应该是万无一失的。现在的问题的就,如何优化这个算法,想了想,的确是有优化的空间的。也就是说,是可以少于10次的。
想了一想,上面的那个算法自从第6次开始就使用5个排序数组的头名做“冒泡法”,总是挑一个最优秀的出来,其实,在第6次以后除了挑出最优秀的,我们还可以在每次比赛后淘汰一些速度不行的,淘汰的马匹数自然会比选出的更多,所以,一方面在找,另一方面在淘汰,找出前5名 ...
Python也Spring了
没想到啊,Python也有Spring的框架了,看看SpringPython项目主页(http://springpython.webfactional.com/)。这个项目的Leader是这样说的:Spring Python是基于Java的Spring框架(Spring Framework)和Spring安全(Spring Security)的一个分支,它以Python语言为目标。Spring提供了许多有用的特征功能,同样地这些特征功能在Python下也应当有效。– Greg Turnquist
从这个项目的主页可以看到有下面这些Key features:
反转控制IoC
面向方面的编程(AOPAspect-oriented Programming)
数据库访问 (Data Access)
事务管理 (Transaction Management)
安全性 (Security)
远程分布式 (Remoting)
插件/命令行工具 (Plug-ins/command-line tool)  ...
GPLv3的在开源社区中的占有量
2007年7月,GPLv3 发布,当时有164个项目加入,一年后,有大约两千个项目使用GPLv3协议,今天,Google开源programs office manager Chris DiBona向大家 宣布 在Google 开源项目中,使用GPLv3的项目至少有 56,000个。当然,这只是计算了在 Google Code 中的项目。
对于今天有 225,000 项目的 Google Code,这四分之一的 GPLv3 也是一个不小的数目了。如果我们假设Sourceforge.net 和 Codehaus 也有和Google Code相似的 GPLv3 比率的话,那么,今天使用 GPLv3 的项目将是一个很大的数量。
这个数据是有意义的,尤其对于那些还在激活的项目,因为Google Code上的活跃的项目比Sourceforge要高得多,在Sourceforge上,估计只有12%的项目还处理激活状态(剩下的88%都是处理长期没有更新,当然也就一直在使用老版本的协议)。虽然和GPLv2比起,GPLv3还很少,但数量已经很大了。
以前写过一篇关 ...