Profiel van 猪哥猪哥的BlogWeblogLijstenGastenboek Extra Help
    20-11-2008

    山寨手电拆解

    很早以前在TB上面买了个极便宜的LED手电,单颗号称1w的那种(山寨手电的1w~~就跟山寨手机那种9999mAh水晶锂电池一样~~搞笑的)。用1 节5号电池,带升压电路的(买它的唯一理由)。这种有升压电路的手电就算用一颗电压不到1.4v,放在剃须刀里面都转不动的南孚电池丢进去也能照样用,处理家里废电池的好武器。亮度凑合,比一般什么9头的LED手电稍微亮一点。

    原来一直以为这种山寨LED手电图省事都是把灯头从铝合金管尾部塞进去,然后用胶粘死的。就像我之前买过的几把垃圾5头和9头LED手电那样~~不过今晚在给它换电池的时候随手一拧,居然把脑袋给拧下来了( ̄口 ̄)!!,才知道原来这个玩意居然还能无损拆开的。既然拆开了,拍照。

    全拆散的样子:

    凑近看看灯头~~电路板背面的升压电路看不到,还不想把电路板也拆开~~这种山寨货焊工极差,常常一碰锡就脱了~~

    把灯头装回去:

    身子装上,好了~~身上找不到任何可以透露其产地身份的痕迹,彻底的黑手电~~

    ★2009年2月8日更新:今天干脆把LED背后的升压电路也拆出来了,对于一个山寨手电来说,能有个升压电路也算不错了。

    18-11-2008

    Hello Kitty版电狗

    鬼佬的山寨版Hello Kitty电狗,其恶俗的程度和国粹的Hello Kitty版山寨手机相机有得一拼。







    17-11-2008

    山寨键盘的威力

    花了不到400块买了一支山寨的青轴键盘丢在办公室用(还送了一个吓死人的尼龙键盘单肩背包,可以让你像傻瓜一样背着键盘满大街跑),撇开粗糙的做工和糟糕的键帽触感。单纯从敲击的手感来说还是和700多的正宗cherry没啥区别的。只要打字的时候别看键盘,就不会老觉得自己在用一支便宜的山寨货了~~


    ↑ 插在牛粪中的鲜花:德国小樱桃青轴机械开关全裸特写

    不过这个山寨键盘终归有着山寨血统,依然像它的山寨手机表兄弟一样有着引人注目的本性。其吸引眼球的杀手锏就是那三颗亮的要灼伤视网膜的LED~~尤其是 NumLock的那颗蓝灯,简直像一道划破天际的蓝色闪电,时刻提醒你它的存在。至于这种感觉,相机是拍不了的(我这老耐克只有自动光圈,再亮的玩意都拍成柔和了),但是给人的体验难以忘怀。简单说吧,就是刺眼到你没法直视它。如果你专注看屏幕,只用眼睛的余光扫到这颗蓝灯的话,很快可以在你的视网膜上留下一个亮点。就算是大白天室内亮堂堂,只要打字不出十分钟,不管你看哪眼睛右下角都会有个挥之不去的小圆点了。所以我用了不到半小时就实在是忍无可忍,用 一张黄色的3M的荧光贴纸贴上它了。理论上黄色应该是阻挡蓝光最猛的颜色吧?反正刚贴上去那会儿好多了,NumLock灯变得柔和了。但是过了两星期就发现这个灯怎么越来越亮了,关掉NumLock仔细检查贴纸,大囧。以前认为质量最好长久不退色的3M Post-it竟然扛不住山寨LED的强光,才两周中间就被灼出一个圆点来了( ̄口 ̄)!!。现在蓝光LED正上方的荧光黄颜料完全褪掉,中心已经变成彻底的白纸一张了orz。


    上班路上被囧到

    今天刚下车,看到路边的栏杆上有个与众不同的小广告~~仔细一看大囧,原来现在的小广告不只有办证和招聘男女公关啊~~( ̄口 ̄)!!

    16-11-2008

    关于Megatops BinCalc RPN计算器的说明

    最近收到几个好心人发来的邮件,指出我的BinCalc存在低级BUG,即1+1算出来不等于2~~鉴于存在这种误解的人之多,俺不得不爬出来澄清一下~~我的Megatops BinCalc当中的计算器是RPN Calculator!(同学们难道没有发现BinCalc的计算器没有等号嘛~~囧rz)

    如果你是学软件出身的但是居然没有听说过RPN,那你一定是没听课也没做作业的了~~逆波兰表达式的概念最早出现在C圣经的课后习题里面。不过如果你学的是叹号强那本误人子弟的烂书……那也最迟会在编译原理里面看到它。如果你是学硬件出身的~~俺也不是很清楚硬件课程有没有提到RPN的,但是感觉应该没道理不提。

    BinCalc的RPN计算器基本上是和惠普计算器的RPN操作相同的,是XYTZ 4寄存器的经典RPN(惠普的计算器有的型号多一个LASTx寄存器,但是换汤不换药)。和惠普的计算器相比,BinCalc的RPN计算器费了大力气硬是挤下了一个可视化的堆栈,用起来应该是比只有一行显示的那种HP计算器好用多了。RPN的原理极其简单,简述如下:

    BinCalc的RPN计算器有XYZT四个寄存器。在界面的多进制面板中显示和输入的都是X寄存器的内容;YZT三个寄存器可以看成是个堆栈,其中T是栈顶寄存器(可以作为常数寄存器来使用)。

    按ENTER键是执行压栈操作~~不是当作等号用的啦(╯﹏╰),所以你1+1 ENTER~~结果当然不会是2~~

    如上图,按了ENTER以后,X寄存器的内容会被压入堆栈(YZT),原来T寄存器的内容因为堆栈上溢而被挤出去丢掉了。每个寄存器都有一套自己的单目运算按钮,可以在不需要调整到X的前提下对每个寄存器直接进行算术移位和取反等操作(BinCalc无敌可视化堆栈的威力)。最右边三个按钮是用于调整堆栈的,从上到下分别是:寄存器循环上移(相当于HP的R↑键)、寄存器循环下移(HP的R↓键)、XY寄存器互换(HP的X<>Y键)。另外CLx是X寄存器清零,CLR是清空所有寄存器(HP的CLΣ键)。这几个都好理解,自己试试就明白。

    做二元计算的时候,情况是这样的(比如做+计算):

    整个计算的过程你可以看作是:按下双目算符后,就会从堆栈中弹出操作数Y,与X寄存器一块进行相应的计算,计算的结果放在X寄存器内。在退栈的时候可以看到T寄存器始终是保持不变的,所以实际使用的时候T寄存器可以当作常数寄存器来用。比如有时候经常要算XXX和几个1024相乘或者相除的结果。这时候就可以把1024一直压到T寄存器去,然后就能源源不断地从堆栈中弹出1024这个数进行计算了。

    RPN的双目计算乍一看似乎很深奥的样子,实际上完全可以看作是竖式计算:

    竖式计算好像小学1年级开始就玩得很熟了~~应该不用再废话。

    另外,BinCalc在如下高亮位置有右键菜单,其他就再没有什么Readme没有提到的隐藏的机关了~~

    最后~~贴一个史上最经典的程序员专用计算器:HP-16C。可惜HP的11/12/15/16这一系列计算器最终仅有12C活的滋润一直生产到现在(现在还能买到,基本成为金融计算器的工业标准了)。15和16都停产好久了~~现在被当作古董卖价格有点夸张了。

    12-11-2008

    无敌二进制计算器Megatops BinCalc更新

    更新到1.0.2,完全是BUG修订。之前的版本移位运算有问题:X寄存器相关的移位操作都是逻辑移位,而Y、Z、T寄存器的都是算术移位,不一致。这个版本将所有的移位操作都改为算术移位。另外修正了一个小小的ASCII Char焦点提示错误。

    最新版本在我的文件盒子里下载,或者翻墙到BinCalc的主页:http://bincalc.googlepages.com/下载。Softpedia的因为我很懒得提交更新说明,所以还是旧版本。

    ★ 2008年11月18日 今天提到Softpedia去了,可以下载了:http://www.softpedia.com/get/Science-CAD/Megatops-BinCalc.shtml

    有图有真相:耐克牌相机入手1234天

    1234天前,俺差不多也是这个时候饥肠辘辘地抱着耐克相机从村里出来。这个老爷机跟了我这么多天不容易,想当年买这个机器+配件也花了3k多,现在想起来还在心疼。

    相机今天休息一天用烂手机摄像头拍的~~发票:2.9k的裸机+原电和卡



    机身上山寨般的贴纸早已被我撕掉:



    背面做了面部矫形手术~~解决了歪屏问题:



    主席寄语:

    4-11-2008

    让SlickEdit支持多Profile

    如果你对代码编辑器的要求极为苛刻(就像我这样),自然而然会想要一个支持多Profile的编辑器。这个多Profile不是仅仅支持多用户那样的水平,而是说在干不同的事情时用不同的界面布局甚至热键方案。比如我在阅读Linux内核代码、写公司的代码、写自己的代码和写Docbook XML文档时需要的布局方案都是不一样的。所以让万金油一般的主力编辑器SlickEdit具备多Profile支持能力也是极有必要。

    其实SlickEdit很早以前就支持多Profile了。只不过它的多Profile功能隐藏在命令行参数里面藏得比较严实。具体方法是加上-sc参数。比如你想为阅读代码专门建立一个Profile,那就把My Documents\My SlickEdit Config另外拷贝一份成比如CodeReading这样(我是习惯弄到SE的安装目录里面去)。然后为SlickEdit另外创建一个快捷方式,命令行里面加上参数:

    vs.exe +new -sc ".\Profiles\CodeReading"

    这样就完事了。使用这个快捷方式启动的SlickEdit就会以CodeReading作为配置目录,所有的配置与原始版本独立。不过需要注意的是,如果你配置了很多Profile,在打开多个SE以后自己绝对会搞糊涂掉。对于这个小问题可以用一些比较猥琐的办法来给不同Profile的SE界面打上标记。比如我用的办法就是在_mdi_menu(就是主菜单栏)末尾添加一个空的菜单项,上面写上这个Profile的名字。这样就不会弄混了。

    3-11-2008

    修正SlickEdit 2008的默认生成Reference问题

    最近又开始写代码了,所以突然发现SE 2008用起来有点怪怪的。每次新建的Project的Tagfile都没有生成Reference,总是在首次查找Reference的时候特囧地跳出生成Reference的对话框。印象中Slickedit 2007似乎没有这种问题。只好利用周末的时间又跟踪了一下源码,nnd又发现一个低级错误:

    如果在选项里面把“Build workspace tag file with references”设置为true,那么它就会将“def_references_options”变量的VSREF_NO_WORKSPACE_REFS位置位。这个宏看名字就知道了,是告诉Context Tagging别给这个tagfile生成reference的,意义正好相反。

    至于怎么解决,我也不是很清楚。因为SE 2008彻底换了一种配置机制,估计也就是因为这样才马大哈地引入了这种低级问题。实际上如果你只讲究结果的话,只要知道“Build workspace tag file with references”设置成false才会默认生成references就成了。如果你实在是个像我这样的完美主义者……一个最简单猥琐的办法就是修改options.xml,把“Build workspace tag file with references”相关标题和描述里面的“with”改成“without”(# ̄▽ ̄#)。

    另一个问题是发现从v13.01采用了那个无聊的自动组合相关文件的buffer tabs以后,好像文件标签就开始出了一些小毛病。我偶尔会遇到文件标签双击它关不掉,或者是更严重的标签错位的问题。估计又是那个无聊的新功能引入的bug。所以我干脆把老的传统的v13.00那个bufftabs.e给弄回来了。不过还是小改了一把,增加了对v13.01新增的Modified file tab(s)颜色的支持。在load bufftabs.e以后,使用toggle-mark-with-star命令可以让修改的文件的标签显示方式在和UE一样的加“*”传统方式和使用SE传统的文字变色方式之间切换。修改后的宏在我的盒子里面下载,还是在老地方。

    ★ 2008年11月4日更新:大囧,BUG提给SE以后,SE的开发者说打算在v14搞定。但是不准备发行新的v13的hotfix来修正它——因为我给出了“an obvious workaround”( ̄口 ̄)!! 。所以把with改成without,也就是v13最终的workaround了~~

    另外得到一个关于SourceInsight的小道消息:“I did however get a reply back from Source Dynamics recently when asking what was going on over there and "Ray Gram (the owner)" replied that they were busy trying to get version 4.0 out the door. So it sounds like it may not be dead yet.”

    2-11-2008

    TP-Link WR541G+路由器拆解

    最近这个买了一年多的便宜无线路由器开始有点不正常了,老是死机掉线,掉个没完。看了看官网的Firmware好像已经比我用的这个更新了好几版了,干脆弄出来升级一下试试看有没有改善。我在家全是用无线,因为这个玩意升级后无线好像会恢复出厂配置自动关掉,不得不超级麻烦地把它从安装的地方拆出来接个网线来折腾,顺手再拆开来拍几张图(之前拆了一次没拍照,这回补上)。

    外形:已经是TP的新外形了,之前的外形实在是丑得没天理。后来TP好像是彻底更新了外观设计,全部产品都采用这种外形了,比原来好看了不少:

    背部:1根固定的5dBi的天线,Reset屁眼,1个FE WAN口,4个FE LAN口,1个DC电源口。

    开始拆解:螺丝全部藏在背面的4个胶皮垫脚下面。我上次拆它的时候已经顺手把垫脚粘到旁边去了,这样省得再拆的时候还要掰。垫脚用指甲就能抠下来,是双面胶粘上去的。注意其中有一个螺丝上面涂了白漆封印(右上角那一颗),只要你拧了白漆就会被破坏,保修也就没了~~

    拧下螺丝以后,壳体还是比较好掰开的~~

    拆塑料的东西最怕的就是暗扣。不过这台还好了,只有一个暗扣(在面板中间的位置),还比较好弄开:

    暗扣的钩子在面板背面的导光柱上方:

    打开暗扣,就可以像吃螃蟹一样把背壳掀开了,露出内脏~~

    显然是用了Atheros的公版电路。不过不只是TP-Link这样懒惰,NetGear的WGR614 v7也是用了这个公版电路。下面就是Atheros给出的公版照片,除了电源部分以外,交换和路由管理部分基本一模一样~~

    板子细节:先来电源部分,没什么看头:

    交换部分,用了一颗滥大街的Marvell 88E6060。这个是个极其便宜的6口交换芯片。其中有5个10/100M以太网PHY带自反口,就是输出那一个WAN口和4个LAN口了。另外一个是MII接口,连CPU做路由的。

    再来是路由和管理部分:一颗Atheros AR2317,基本就是廉价低质的代名词。不过想想人家Linksys的WRT54G v7和NetGear的WGR614 v7也都用它呢,也就没啥可说的了。AR2317内置了一颗比较老的32bit MIPS R4Kc CPU,无线的MAC和PHY,还有一个和Marvell 88E6060连的以太网MAC(MII接口)。基本上啥玩意都塞进去了,难怪便宜。另外可以看到在AR2317周围还有一圈焊接屏蔽罩的焊盘。但是屏蔽罩早已被省掉了NND。很久很久以前TP-Link的无线路由器还是有用屏蔽罩的,不过后来可能发现就算拿掉也能凑合工作,估计就把这几分钱也给省了,囧。

    用到的内存是一颗ELPIDA SDRAM,只有2MB( ̄口 ̄)!! 。

    刚开始我没有发现这块板子的Flash在哪,后来仔细一看才直到原来这东西不像一般的小路由那样用并行Flash,而是很诡异地用了一颗Spansion FL016A1F(SPI接口的2MB Flash),小小地缩在一旁,长得像颗不起眼的EEPROM(我原来还真以为是给Marvell 88E6060初始化的EEPROM哪~~查了AR2317的资料才知道原来这玩意只支持串行Flash接口~~

    其它就没啥可看的了。另外这个路由器用的是VxWorks系统,估计用的是Atheros的公版驱动。不过Linksys和NetGear那些用AR2317的玩意也都堕落成用VxWorks了。

    升级到最新的3.8.1 Build 080519 Rel.33560n以后,似乎频繁断线重启的问题有缓解。BT几个小时了还没断,继续观察~~

    ★ 2008年11月9日更新:到今天居然已经连续工作将近6天,无敌了。这个版本的固件果然不错。

     
    *