“21天教你学会C++”

“21天教你学会C++”

下面是一个《Teach Yourself  C++ in 21 Days》的流程图,请各位程序员同仁认真领会。如果有必要,你可以查看这个图书以作参照:http://www.china-pub.com/27043

看完上面这个图片,我在想,我学习C++有12年了,好像C++也没有学得特别懂,看到STL和泛型,还是很头大。不过,我应该去考虑研究量子物理和生物化学,这样,我才能重返98年杀掉还在大学的我,然后达到21天搞定C++的目标。另外,得要特别提醒刚刚开始学习C++的朋友,第21天的时候,小心被人杀害。呵呵。

当然,上面只是一个恶搞此类图片,学习一门技术,需要你很长的时间,正如图片中的第三图和第四图所示,你需要用十年的时间去不断在尝试,并在错误中总结经验教训,以及在项目开发中通过与别人相互沟通互相学习来历练自己。你才能算得上是真正学会。

这里有篇文章叫《Teach Yourself Programming in Ten Years》,网上有人翻译了一下,不过原文已被更新了,我把网上的译文转载并更新如下:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (136 人打了分,平均分: 4.79 )
Loading...
JAVA的字符串拼接与性能

JAVA的字符串拼接与性能

概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试。

原文出处:http://www.venishjoe.net/2009/11/java-string-concatenation-and.html

在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”了。如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的性能。但是究竟这个性能有多差?如果我们同时也把StringBuffer,StringBuilder或String.concat()放入性能测试中,结果又会如何呢?本文将会就这些问题给出一个答案!

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 3.29 )
Loading...
DEMO Spring 2010 获奖产品

DEMO Spring 2010 获奖产品

文章来 mashable.com

在刚刚结束的 DEMO Spring 2010 中,执行制作人 Matt Marshall 宣布了获得 DEMO 大奖的各类 IT 产品,以及由大众评选出的最佳产品,作为奖品, DEMO 将为该产品提供价值100万美元的 IDG 广告宣传。以下是各类奖项的归属:

移动产品 Zosh

Zosh 是一个 iPhone 应用。有了Zosh,你无需使用扫描仪或者传真机即可实现对文档签名,Zosh支持的文档格式有:PDF,Office,以及图像文档。点此处查看 产品详情

具体操作方法:

1. 打开邮件中的附件文档,将其发送至Zosh(本地)。

2. 在Zosh中打开该文档,使用手写输入签名。

3. 将签名作为一个“图层”合并到文档中。

社交和媒体产品 Everloop

Everloop 是一个网络社交应用,目标用户是8到13岁的儿童。其现在是一个 White Label 产品(由一个公司开发,但由其他公司进行再包装和市场营销的产品),很快将会独立运营。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 3.14 )
Loading...
别只谈系统备份,谈谈怎样恢复系统吧!

别只谈系统备份,谈谈怎样恢复系统吧!

文章来源 JoelOnSoftware.com

很久以前就看到这篇文章,它给了我很深刻的印象,搜索了一下 JoelOnSoftware 的中文 Wiki,似乎也没有此文的中文版,那就让酷壳来完成吧。

  • 你备份你的系统了吗?
  • 你备份服务器了吗?
  • 你的备份是否存放在另一台机器中?
  • 你是否有异地备份?

以上都是非常好的问题,也都是很好的备份习惯。

不过,让我们别再只谈备份了,因为仅仅备份是远远不够的。资深的系统管理员们都会告诉你他们有完美的备份计划,但是问题往往发生在当你需要恢复系统的时候:

  • 备份文件被密钥加密,而遗失或损坏的恰恰就是存放密钥的那台机器。
  • 存放着大量配置信息的 IIS 元数据库恰好没有备份。
  • 备份文件一直被拷贝到一个限量2GB的FAT分区,多出来的数据被默默地抛弃掉了。
  • 你的备份都在一个LTO磁带上,磁带已经和数据中心一起遗失或损坏了(911?)。
  • 即便你有了备份,仍有可能遇到许许多多的意外情况。

所以,保证基本的系统安全不仅仅取决于你做了备份,还在于你是否能够成功恢复备份。如果你在运营一个 WEB 服务,你需要向我展示你能够在合理的时间内,在一台新的服务器或者是和原来的数据没有任何关系的服务器上,使用近期备份的数据还原出整个网站。

让我们不要再问人们是否做了系统备份,而是问他们是否能够恢复系统。

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 3.64 )
Loading...
BT工作原理演示

BT工作原理演示

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

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

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

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

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

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

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

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

好烂啊有点差凑合看看还不错很精彩 (27 人打了分,平均分: 4.30 )
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

好烂啊有点差凑合看看还不错很精彩 (6 人打了分,平均分: 2.17 )
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 的支持。

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 2.14 )
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

好烂啊有点差凑合看看还不错很精彩 (12 人打了分,平均分: 2.67 )
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
好烂啊有点差凑合看看还不错很精彩 (16 人打了分,平均分: 2.88 )
Loading...