代码之丑(六)

这是一段长长的C++代码,我的问题是:relaPri、relaSec和 scoutBySec这三个变量在哪里用到了?   void DealForServiceA(const char *oprCode, const char *subID, const char *oID, XList *callCicsList) {     XString relaPri(“NULL”);     XString relaSec(“NULL”);     XString scoutBySec(“0”);     XList *tempList = new XList ;     callCicsList->Add(tempList);     tempList->Add(new XString(oprCode));     tempList->Add(new XString(oID));     XString *psTelNum = new XString;     tempList->Add(psTelNum);     GetServnumberBySubsID(subID, *psTelNum);        tempList->Add(new XString(relaPri.table { […]

我的山寨Mac家族

我有两台Mac,都挺山寨的。

一台是用Dell Mini1011上网本装的雪豹系统,成本是:2700元+260元(键盘被小猫白菜头破坏后的更换费用),不足3000元。内存2G,硬盘160G,能够运行绝大部分MAC软件,除了触摸板笨拙一点之外(可以通过外接普通无线鼠标解决),窃以为不比低配的Macbook差。

还有一台Mac Mini,型号是A1283,是我花3500元从一位朋友那里二手买来的。这个型号是2009年早期出的,配置比较差,CPU是2.0,这也就罢了,内存1G(显存共享内存只有128M),硬盘120G,实在太小了。于是我开始了改造计划。

首先加了一条2G内存,整体升级到3G。然后,换了一个360G的三星SATA硬盘。换下来的硬盘,也不浪费,买了一个硬盘盒作成移动硬盘,作为时光机给Mini备份。所有花费是650元,这样我的Mac Mini的造价达到了4150元

当然,最重要的是显示器,由于Mac Mini是不带显示器的,我决定一步到位,买一个网上评价最好的Dell U2410。所有的费用加起来,已经超过了一个iMac翻新机的价格,但因是DIY,况且整体可拆可升级,至少也没亏。

用Mac的人都知道,是否倾向于用正版软件是区分MAC和PC用户的重要标准。我还做不到全部用正版,但是已经逐步通过团购等方式拥有了几个正版软件的授权。例如:OmniFocus, 1Password等,还有写这篇博客所用的Marsedit。

好的软件创造价值,是生产工具,当然值得花钱去买。

欢迎你也来到Mac的世界。

解剖CPU

你有没有想过,切开CPU看看里面?

有一个瑞典Lund大学的物理学博士生,就真的这么干了,还把照片放到网上。我们知道,CPU里面是几千万到几亿个晶体管,他的目标就是看到这些晶体管。

1.

他先找到一块Intel公司的奔三(Pentium III)Coppermine芯片,主频800MHZ,生产于2000年。(我查了一下,网上的报价现在是15~30元人民币/块。)

下面是这块CPU的正面。你可以看到它分成两部分,周围是一圈绿色的电路板,中间那块蓝色的就是芯片。

(本文所有图片,都可以点击看大图。)

2.

CPU的背面是密密麻麻的针脚,用来从主板取电和通信。

3.

为了把芯片从电路板取出,动用了电锯。

4.

切断电路板,就可以取出芯片了。

5.

去掉上面的金属保护盖,芯片的庐山真面目显现了,上面有很多闪光的小点。

6.

把这块芯片放到光学显微镜下,看到那些小点都是一个个金属垫(metal pad),用来连接芯片内部与外面的电路板。

7.

拉近距离,可以看到金属垫中间的小洞里面有一些特殊结构。

8.

那里原来是一层层的导线,好像三明治叠在一起。

9.

调整显微镜,依次把焦点对准不同的导线,先是上层。

10.

然后,焦点对准中间的那层导线。

11.

最后是下层导线。

12.

导线的下面就是硅片层(晶圆),也就是晶体管的位置。但是这时,光学显微镜已经到放大的极限了,只好改用电子扫描显微镜(scanning electron microscope)。

因为没有办法去掉导线层,所以先把芯片一切二,观察横截面。

13.

可以看到芯片的底部,也就是金属层底部有一些线条。

14.

把底部放大。

15.

肉眼看到大概有六层,全部都是金属导线,估计就是刚才光学显微镜里看到的导线层。

16.

[…]

代码之丑(五)

不知道为什么,初见它时,我想起了郭芙蓉的排山倒海:   ColdRule *newRule = new ColdRule();   newRule->SetOID(oldRule->GetOID());   newRule->SetRegion(oldRule->GetRegion());   newRule->SetRebateRuleID(oldRule->GetRebateRuleID());   newRule->SetBeginCycle(oldRule->GetBeginCycle() + 1);   newRule->SetEndCycle(oldRule->GetEndCycle());   newRule->SetMainAcctAmount(oldRule->GetMainAcctAmount());   newRule->SetGiftAcctAmount(oldRule->GetGiftAcctAmount());   newRule->SetValidDays(0);   newRule->SetGiftAcct(oldRule->GetGiftAcct());   rules->Add(newRule);

就在我以为这一片代码就是完成给一个变量设值的时候,突然,在那个不起眼的角落里,这个变量得到了应用:它被加到了rules里面。什么叫峰回路转,这就是。

既然它给了我们这么有趣的体验,必然先杀后快。下面重构了这个函数:   ColdRule* CreateNewRule(ColdRule& oldRule) {     ColdRule *newRule = new ColdRule();     newRule->SetOID(oldRule.GetOID());     newRule->SetRegion(oldRule.GetRegion());     newRule->SetRebateRuleID(oldRule.GetRebateRuleID());     newRule->SetBeginCycle(oldRule.GetBeginCycle() + 1);     newRule->SetEndCycle(oldRule.GetEndCycle());     […]

iPhone 4最小越狱方案

未能免俗,抢了一个iPhone 4,之所以抢,是因为花钱也买不到,只要向小西湖下手,把他的先拿来用。

我在iPhone上只用正版软件,可能因为我是一个精神上爱整洁的人,手机乱七八糟装一堆盗版的东西,总觉得用得不踏实,用老家的话说,心里有一点硌瘿。

但是iPhone 4拿到手里,我不得不越狱。原因有三个:

1、输入法。

自带的与其说叫输入法,不如叫刑具更合适。而任何非原生态的输入法,都无法集成到系统里去。为了安装更好用的输入法(目前支持iOS4.1的有百度输入法,还有WI输入法),必须要越狱。

2、地图偏移

不知脑子里进了何种异物,我国有关部门规定,iPhone里自带的谷歌地图定位有几百米的偏移,这个需要越狱后下载补丁才能纠正。

3、翻墙

虽然VPN也可以做到,但是要想享受免费稳定的翻墙服务,还是需要越狱。

越狱步骤如下,此刻,我边越边写博客。

一、iOS4.1参考以下两篇越狱文章

1、越狱教程1 http://bbs.weiphone.com/read-htm-tid-1190227.html 2、越狱教程2 http://bbs.weiphone.com/read-htm-tid-1213345.html 两者相互参考,越狱是很简单的事。

二、安装cydia源

如果你看网上教程,会告诉你装很多源,我认为毫无必要,越狱最忌贪心,装一些乱七八糟的东西,最后造成cydia报错,甚至白苹果(就是iPhone无法启动,界面上,只出现一个白色的苹果标志。)

我认为只装威锋推荐的软件源就可以了。

三、在cydia上安装的软件

1、Google.cn to HK (不用单独安装)

这个是为了更正联通上自动把搜索网址指向不存在的Google.cn的。

2、威锋软件源(新)

这里提供了一些必要的补丁,其中包括下面这个最重要的软件

3、GoogleMaps中国区地图偏移校正补丁 (必选)

经矫正后,我实地测试,地图对公路的识别准确度(尤其是交叉路口)误差不超过5米。

4、百度输入法 (推荐)

这个名字虽然那让不少人摇头,但有很多人喜欢拼音九宫格输入法(前身是梅花点讯,后被百度收购。)

5、WI输入法(由于众所周知以及众所不知的原因,请搜索哈尔滨工业大学计算机学院+北京邮电大学……我已经卸载了这个输入法,并收回我的推荐,请大家自己谨慎决定是否安装。) 哈工大一群牛人开发的输入法,支持整句输入,还在完善中,不过我试用了一下,非常顺手,打字飞快,相信前途无量。

目前WI输入法,需要手动添加源。http://cydia.myrepospace.com/wi-inputmethod 下载适合版本即可。稳定性目前还好,出了问题后果自负

目前已经可以通过Cydia的威锋源安装了,在cydia里搜索WI-INPUTMETHOD 有3.X和4.X两个版本,根据你的iOS的版本来选择。

6、去除拍照提示音 (可选)

取消相机按键音,在某些国家这是违法的,但作为新闻工作者来说,也许这是一件利器。

7、biteSMS (可选)

这个短信软件很好用了,哪怕你正开着别的程序,或者在锁屏状态,也可以回复短信,只不过这是一个收费软件,要8美元。不交费也可,但会看到广告。

经测试本软件会造成springboard重启。

8、Kuaidial (可选)

我犹豫了一下,决定还是推荐大家装这个拨号增强软件,可以察看来电的归属地,主要是能够快速拨号。主要好处是,它免费。

9、翻墙 (必选)

这个就不在这里公布了,有兴趣的去搜GFWinterceptor

你安装上瘾了吗?那么住手吧,安装太多丝毫没有必要。

[…]

代码之丑(四)

这是一个找茬的游戏,下面三段代码的差别在哪:   if ( 1 == SignRunToInsert)    {     RetList->Insert(i, NewCatalog);   } else {     RetList->Add(NewCatalog);   }

  if ( 1 == SignRunToInsert)    {     RetList->Insert(m, NewCatalog);   } else {     RetList->Add(NewCatalog);   }

  if ( 1 == SignRunToInsert)    {     RetList->Insert(j, NewPrivNode);   } else {     RetList->Add(NewPrivNode);   }

[…]

代码之丑(三)

又见switch:   switch(firstChar) {   case ‘N’:     nextFirstChar = ‘O’;     break;   case ‘O’:     nextFirstChar = ‘P’;     break;   case ‘P’:     nextFirstChar = ‘Q’;     break;   case ‘Q’:     nextFirstChar = ‘R’;     break;   case ‘R’:     nextFirstChar = ‘S’;     break;   case ‘S’:     nextFirstChar = […]

网易:网聚人的力量

网易公开课

地址:http://v.163.com/open

网易关注国外名校公开课,开创免费公开课视频平台,拥有1300个公开课视频,200个个中文公开课视频。 网易承诺不会在公开课频道上进行任何广告营销,尽量保持频道的公益性和纯粹性,服务于众网友。网易的公开课项目通过向翻译人员支付酬劳,有望使国外优质公开课走入中国互联网的趋势规模化、系统化。

网易组织公开课翻译平台目的是秉承互联网精神:开放、平等、协作、分享,因为知识无国界,更希望国内外各种有志于知识分享传播的个人和组织加入。

网易开源镜像站

地址:http://mirrors.163.com/

网易的开源项目镜像站主要提供以下几类镜像:

发行版镜像:包括 Linux 及 *BSD 在内的发行版的 ISO 映像文件可在该镜像站点找到。比如常见的 Ubuntu/Debian、Redhat/Fedora/Centos、FreeBSD、OpenBSD 等等。也有一些发行版的 ISO 映像,目前网易的镜像站点尚未提供,像 openSUSE、Arch Linux、Slackware、Mandriva 等。 软件库镜像:像是 Ubuntu、Debian、Gentoo 等都有提供,另有一些目录为空,或许正在同步中。 软件镜像:一些较大型的软件,网易的镜像站点也有提供,如 JDK、Eclipse、Openfiler 等。

其他的一些开源镜像站 搜狐:http://mirrors.sohu.com/  TOM网:ftp://gentoo.tom.com/pub/

网易新闻评论

地址:http://news.163.com/

看新闻上哪看?新浪、QQ还是163?

喜欢看网易新闻,并不是因为新闻,而是网易特有的新闻评论。在网易我们总能看到其它网站看不到的评论,虽然我们都处现同一个“局域网”内,网易的审核是相对宽松的。在网易网友中,都有这样一种共识,上网易新闻,就是奔着评论来的。

Category

Archives