BT工作原理演示

BT工作原理演示

下面这个网站使用Javascript编写了一个BT工作原理演示动画程序。当然,你可能需要使用Chrome浏览器打开,因为他真的很耗CPU。在我的双核(2GHz)T60电脑上用Chrome打开CPU一下就被耗了50%左右。
下面是我截的一个图,每个圆代表一个结点,其会通过其它结点下载需要的文件段。结点中间的那个Bar有点类似于eDonkey中的下载进度条。至于为什么要用像彩虹一样的颜色,主要是为了让你看到不同的段是从不同的结点下载的。
你可以按热键S来加入一个下载完了的结点,用P来加入一下空结点,按R来删除一个结点(有点慢,要等10秒左右吧)。
BT工作原理演示动画

关于其它Javascript的一些小玩意,你可以看看这篇文章

好烂啊有点差凑合看看还不错很精彩 (4 人打了分,平均分: 4.00 )
Loading...
中国仍然是一个很穷的国家

中国仍然是一个很穷的国家

Google最近发布了一个全世界可以开放查询的数据平台,其中包含了多种宏观数据,并且有很方便的作图方式。

http://www.google.com/publicdata/directory

其中有一项是世界各国人均GDP

虽然最近一些中国城市房价已经超越我们的想象力,但是从这张图里还是可以看到,我们仍是一个人均非常穷的国家。

好烂啊有点差凑合看看还不错很精彩 (24 人打了分,平均分: 4.71 )
Loading...
Martin Fowler 在 ThoughtWorks 内部关于版本控制工具的调查

Martin Fowler 在 ThoughtWorks 内部关于版本控制工具的调查

文章来源 martinfowler.com

从2010年2月23日至3月3日,Martin Fowler 在 ThoughtWorks 内部通过开发人员邮件列表进行了一个关于版本控制工具的小调查,共收到99个回复。下面是调查选项定义和调查结果:

  • 非常好 (如果不是最好也非常接近了)
  • 还行 (不是最好,但是我还是愿意使用)
  • 问题多多 (我可能会因此强烈建议我的团队使用其他同类工具)
  • 危险 (非常糟糕的工具,我认为 ThoughtWorks 不应该使用它)
  • 不知道 (我还没有使用过此工具)
  • 回复数 (对此工具的回复总数,包括“不知道”选项)
  • 好评率 ((“非常好”+“还行”)/回复数)
名称 非常好 还行 问题多多 危险 不知道 回复数 好评率
Subversion 20 72 6 1 0 99 93%
git 65 19 1 0 14 85 99%
Mercurial 33 27 2 0 36 62 97%
ClearCase 0 3 14 41 41 58 5%
TFS 0 0 32 22 44 54 0%
CVS 0 14 59 11 15 84 17%
Bazaar 1 13 3 0 80 17 82%
Perforce 1 26 16 1 54 44 61%
VSS 1 1 11 64 22 77 3%

Martin Fowler 补充道:

  • Subversion,git,和 Mercurial 都得到了较高的好评率,git 得分最高。
  • 大部分人认为 VSS 很危险,不过也有一两个人认为它还不错。
  • 大家都不太喜欢 TFS 和 ClearCase,并认为 ClearCase 更为危险。
  • 我们不用太拘泥于具体数据,特别是对于那些不好的工具的差评都无太大区别,而对于那些优秀的工具的好评却很有一些不同。

Martin Fowler 反复强调这只是一个公司内部的调查,并无误导市场的意思,大家如果感兴趣的话可以点击 文章来源 阅读原文,以及另一篇关于版本控制的文章 VersionControlTools

好烂啊有点差凑合看看还不错很精彩 (3 人打了分,平均分: 3.33 )
Loading...
Titanium – 桌面和移动应用开发平台

Titanium – 桌面和移动应用开发平台

文章来源 www.readwriteweb.com

2010年3月8日,Appcelerator 公司发布了 Titanium 的 1.0 版本。 Titanium 是一个桌面和移动应用程序开发平台,基于此平台,开发人员可以使用标准的 WEB 技术如 HTML,JavaScript,和 CSS 来开发桌面和移动应用程序。

和其他开发平台所宣传的开发移动应用无需理解本机代码不同, Titanium 允许开发人员使用他们熟悉的编程技术来开发本机(native)移动应用,同时效果和功能与那些使用平台特定语言编写的应用相同,如可以操纵内置相机、播放视频流等等。 Titanium 的产品代码在近几个月内得到了优化,在性能方面得到了多处改进,加载时间由原来的10-20秒下降为3秒,页面切换非常迅速,处理速度提高了5倍。同时还增加了一些新的功能,如超过100个本机界面控件,2D 和 3D 动画及媒体处理机能。有了这些方面的增强,开发人员可以在 Titanium 支持的平台上开发品牌化应用, 休闲游戏, 以及增强现实应用。

当被问到 Titanium 与其他开发平台的不同之处在哪里时,公司的营销副总裁 Scott Schwarzhoff 解释道:“很多我们的竞争者经仅仅是将 WEB 应用曲解为本机应用提供给客户,而没有提供真正的本机应用解决方案”。提供本机界面(超过100个本机API)的只有我们一家公司,同时我们还提供推通知服务,本机地图,Facebook连接,应用数据分析,增强现实应用,将来还会有更多特性。

自2009年6月以来,Titanium 开发平台吸引了超过27000名开发人员对公司所谓“本机优势”概念的兴趣(阅读详情)。其中包括对本机控件的支持,基于位置的服务,社交共享,HTML 5,在线和设备内置数据库,集成数据分析,丰富的多媒体等等。

Appcelerator 承诺在3月份的第三周支持苹果的新平板设备,包括几周后即将发布的 iPad。对黑莓的支持将于五月或六月间发布。Titanium 的社区版本完全免费,专业版本不免费,但是提供技术支持,数据分析以及对新版本的预览。

Titanium 支持的平台包括: PC, Mac,Linux,最新版本则支持 iPhone 和 Android,Appcelerator 公司即将发布对黑莓和苹果 iPad 的支持。

好烂啊有点差凑合看看还不错很精彩 (3 人打了分,平均分: 3.67 )
Loading...
erlang打包独立环境

erlang打包独立环境

最近公司代码需要在非erlang的系统上执行,需要能在独立的环境里运行erlang。研究甚久,于是写下这篇博文。国内用erlang的朋友不多,希望这篇blog能对有需要的朋友起到参考作用。

Application-Vsn/ebin
/include
/priv
/src
/Application-Vsn.rel

以上是代码的目录表.

{release, {“nextim”, “2.0”},
{erts, “5.7.5”},
[{kernel, “2.12.3”},
{stdlib, “1.15.3”},
{sasl, “2.1.5.3”}]
}.

以上是Application-Vsn.rel的内容,[]中是代码本身需要的lib。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 3.71 )
Loading...
Python处理encoding的小技巧

Python处理encoding的小技巧

用Python写过处理文本经常会遇到需要decoding或者encoding, 尤其是处理中文的时候。

encoding的问题处理起来是个脏活儿,报错不太容易看懂,网上相关资料不太好查。有同感?请继续读下去。

常规做法是读取文件的时候立刻decode, 所有的处理工作都用unicode,写会文件的时候encode. 但是等到读取的时候在处理的代码读/写起来都很别扭,感觉像穿上鞋以后袜子滑下来了…Python 3.1.1以上的版本解决了该问题。在Python 3.1.1中,打开文件可以加入encoding的参数:

file = open(filename, encoding='xxx')

啊,这样看起来终于舒坦了。 不同写如下的code了

file = open(filename)
for line in file:
    decoded_line = line.decode('xxx')
    do something else
提倡使用utf8
好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 4.00 )
Loading...
分享:我的Reader订阅

分享:我的Reader订阅

应网友workout和其他热心读者的要求,我罗列一些自己觉得值得推荐的feed。用纯文字罗列如下,想找到以下的话可以通过Google。希望大家在此互相分享。

适合读者:广谱技术爱好者,国外互联网信息爱好者,用户行为和设计爱好者, 语言爱好者,阅读狂。

技术类

  • Coding horror
  • Joel on software
  • unified Python planet

业界信息

  • 谷歌黑板报
  • Search Blog: Bing
  • Search
  • 百度爱好者
  • silicon valley watcher
  • Google Blogscoped
  • Google Code Blog
  • 月光博客
  • apple4us
  • 古奥
  • 望月的博客
  • Google Operating System

杰出个人博客

  • Paul Graham Essays
  • Pure Pleasure – lixiaolai.com
  • The noisy channel
  • 李开复新浪博客
  • 韩寒博客
  • the trump blog
  • Matt Cutts
  • Linus blog
  • Paul Buchheit (Gmail创始人)
  • Peter Norvig (人工智能大儒, Google 研究总监)
  • too (Google 创始人博客)
  • Alon Halevy’s Blog
  • Daniel Lemire’s blog
  • Clay Shirky
  • Earning My Turns
  • How to change the world

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (15 人打了分,平均分: 4.40 )
Loading...
如何修改微软人体工学键盘的Zoom键

如何修改微软人体工学键盘的Zoom键

如果你不是订阅本站的用户,你很肯能可能是通过搜索引擎的魔力来到本文的。

微软的软件产品咱们暂且不谈,他们生产的键盘鼠标确实很不错。例如,经典的 microsoft natural ergonomic keyboard 4000 (见图)。著名Google工程师博主Matt Cutts用的就是这个(参考链接)。

可是每个入手该键盘的geek都会觉得,这个弱智的设计师把zoom键放在中间干嘛,应该用来当上下滚轮嘛。

无独有偶,该问题已经被先辈们解决,笔者只搜到了英文文章

为了让中文读者方便找到并使用,暂且将关键步骤翻译如下:

  1. 下载微软键盘驱动 http://www.microsoft.com/hardware/download/download.aspx?category=MK
  2. 找到command.xml文件,应该是在 C:\Program Files\Microsoft IntelliType Pro\
  3. 编辑command.xml文件(建议之前备份),替换所有 <C319 Type=”6″ Activator=”ZoomIn” /><C319 Type=”6″ Activator=”ScrollUp” />,  所有 <C320 Type=”6″ Activator=”ZoomOut” /> 替换为 <C320 Type=”6″ Activator=”ScrollDown” /> 用Notepad或者记事本可以实现,应该是10个左右。
  4. 重启电脑(貌似这一步不能省)

图例:修改前

图例:修改后

这样你就可以用Zoom来替代鼠标滚轮了。

好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 3.40 )
Loading...
分享:我是如何使用Google Reader的

分享:我是如何使用Google Reader的

相信不少读者都是通过Google Reader (貌似没有中文名) 看到本文的,而多数Google Reader的爱好者都是贪婪的。如果你像我一样,估计未读数量从来都是1000+。遇到强迫症就麻烦了。下面一个方法能让阅读变得有“轻重缓急”。

  1. 承认不是所有种子一样重要,有些更新你想立刻知道(例如某新闻类的博客:古奥),有些只是希望不要错过(例如某经典博客:Joe l on Software),还有一些可能只是娱乐用的(例如:煎蛋
  2. Reader是可以为种子建文件夹的,所有“重要而必读”的种子都可以放在一个文件夹里,文件夹的名称最好是用“_” 开头,这样排序的时候可以在最前面(见图解)
  3. 每当打开Google Reader的时候,先看重要的种子即可,其他的有时间再读。

笔者的Reader界面(献丑了)

好烂啊有点差凑合看看还不错很精彩 (8 人打了分,平均分: 3.88 )
Loading...
Python程序员的进化

Python程序员的进化

以前本站发布过一篇《程序员的进化》,以一种幽默的代码展现方式调侃了程序。下面这篇是关于Python程序员的。以阶乘为例,很有意思。

新手程序员

def factorial(x):
    if x == 0:
        return 1
    else:
        return x * factorial(x - 1)
print factorial(6)

第一年的刚学完Pascal的新手

def factorial(x):
    result = 1
    i = 2
    while i <= x:
        result = result * i
        i = i + 1
    return result
print factorial(6)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (34 人打了分,平均分: 4.62 )
Loading...
如何防范密码被破解

如何防范密码被破解

你会用什么样的算法来为你的用户保存密码?如果你还在用明码的话,那么一旦你的网站被hack了,那么你所有的用户口令都会被泄露了,这意味着,你的系统或是网站就此完蛋了。所以,我们需要通过一些不可逆的算法来保存用户的密码。比如:MD5, SHA1, SHA256, SHA512, SHA-3,等Hash算法。这些算法都是不可逆的。系统在验证用户的口令时,需要把Hash加密过后的口令与后面存放口令的数据库中的口令做比较,如果一致才算验证通过。

但你觉得这些算法好吗?我说的是:MD5, SHA1, SHA256, SHA512, SHA-3。如果你使用的是MD5算法来加密你的口令,如果你的口令长度只有小写字母再加上数字,假设口令的长度是6位,那么在目前一台比较新一点的PC机上,穷举所有的口令只需要40秒钟。而据我们了解,几乎有90%以上的用户只用小写字母和数字来组织其口令。对于6位长度的密码只需要最多40秒就可以破解了,这可能会吓到你。

如果你愿意花2000美金和一周的时间来构建一个CUDA,那么,你可以在你组建的这个集群中使用进行密码穷举运算,其速度是,1秒钟可以计算7亿个口令。对于目前实际当中使用的比较复杂的口令,其破解率也可以高达每秒一个。当然,这里说的算法是MD5,SHA之类的算法。

那么,对于这样的一种情况来说,我们怎么办?我们还是有办法的。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (14 人打了分,平均分: 4.29 )
Loading...