2009年9月5日星期六

Google工具栏不能正常下载书签的解决方案

   两个月前忽然发现Google工具栏里面的书签功能不能正常使用了,主要表现在不能下载书签(当然也不能新建或者管理书签),估计是大陆的防火墙造成的,因为加密连接可以使用。忙于工作没有研究彻底解决的方法,凑合用的方法是访问https://www.google.com/bookmarks/通过web页面操作。

   今天抽空处理了一下,以Windows下Mozilla Firefox浏览器为例,其中Google工具栏的版本是5.0.20090813W,当然Linux系统或者别的浏览器也是大同小异,研究过程就不说了,说说具体的解决方法:首先搜索toolbar.js这个文件,我找到的位置是C:\Users\Nikivix\AppData\Roaming\Mozilla\Firefox\Profiles\2b6oevmg.default\extensions\{3112ca9c-de6d-4884-a869-9855de68056c}\lib大小864k左右(系统Win7),里面有如下的几行代码,定义的是下载、更新、添加和删除书签的服务器地址,内容如下:
JSCompiler_extractPrototype=GTB_BookmarkUrls.prototype;JSCompiler_extractPrototype.getManageBookmarksUrl=function(a){return"http://{HOST}/notebook/bookmarks?hl={LANG}".replace("{HOST}",this.getHost_()).replace("{LANG}",a)}; JSCompiler_extractPrototype.getDownloadBookmarksUrl=function(a){var b=Math.floor(Math.random()*32768);return""http://{HOST}/notebook/toolbar?cmd=list&tok={TOKEN}&zx={RAND}".replace("{HOST}",this.getHost_()).replace("{RAND}",b).replace("{TOKEN}",a)}; JSCompiler_extractPrototype.getDownloadBookmarksDiffUrl=function(a,b){var c=Math.floor(Math.random()*32768);return""http://{HOST}/notebook/toolbar?cmd=list&tok={TOKEN}&all=1&min={MAXTIMESTAMP}&zx={RAND}".replace("{HOST}",this.getHost_()).replace("{MAXTIMESTAMP}",a).replace("{TOKEN}",b).replace("{RAND}",c)};JSCompiler_extractPrototype.getPostBookmarksUrl=function(){return""http://{HOST}/notebook/toolbar".replace("{HOST}",this.getHost_())}; JSCompiler_extractPrototype.getImportBookmarksUrl=function(){var a=Math.floor(Math.random()*32768);return""http://www.google.com/bookmarks/mark?op=upload&zx={RAND}&hl={LANG}".replace("{RAND}",a).replace("{LANG}",GTB_getLangCode())};
其中只需要把红字标出http改成https就能让工具栏通过加密连接访问Google书签服务器从而正常的使用书签功能了。当然修改完成之后需要重新启动一下浏览器(firefox)

   问题可以先这么解决,当然这不一定是最好的方法,如有高见敬请指教xethyne@gmail.com

2009年8月22日星期六

用WD My Book下载hdbits.org的种子

   在实验室里面待了几个月,一直没有管博客,这次说一说如何用WD My Book下载hdbits.org的种子
   一茶系统里面带的Transmission的版本不符合hdbits.org的要求,提示客户端版本错误,所以把它更新到最新版本(1.73),之后就能用了.但是更新过程中出现了很多问题,归根到底是网络不通畅,有墙挡着,所以得使用些手段.过程如下,其中包括我走的用于探索的路.
   使用PUTTY登陆,然后SU切换到root用户,当然也可以直接用root登陆
   执行killall transmission-daemon停止Transmission    输入ipkg update获取软件更新列表
   屏幕出现Downloading http://ipkg.nslu2-linux.org/feeds/optware/gumstix1151/cross/unstable/Packages.gz,一段时间之后提示连接出错.
   不管它,用电脑通过代理直接去下载这个Packages.gz,网址是http://ipkg.nslu2-linux.org/feeds/optware/gumstix1151/cross/unstable/Packages.gz,至于代理,随便去GOOGLE上搜一个能用的"在线代理"就行.
   用winrar解压缩那个Packages.gz,再用写字板打开解压缩出来的"Packages"这个文件,在里面搜索transmission,便看到有一行写着Package: transmission,在以后的几行里发现Filename: transmission_1.73-1_arm.ipk,于是我尝试下载http://ipkg.nslu2-linux.org/feeds/optware/gumstix1151/cross/unstable/transmission_1.73-1_arm.ipk这个文件,成功.
   通过网上邻居把transmission_1.73-1_arm.ipk复制到盒子的任意目录下,然后通过PUTTY进入这个目录执行ipkg install transmission_1.73-1_arm.ipk,结果说libevent要更新.
   再次在"Packages"这个文件里面搜索libevent,看到Filename: libevent_1.4.11-1_arm.ipk这句,尝试下载http://ipkg.nslu2-linux.org/feeds/optware/gumstix1151/cross/unstable/libevent_1.4.11-1_arm.ipk这个文件,成功.
   通过网上邻居把libevent_1.4.11-1_arm.ipk复制到盒子的任意目录下,然后通过PUTTY进入这个目录执行ipkg install libevent_1.4.11-1_arm.ipk,安装成功
   执行cp /opt/lib/libevent* /lib/
   执行ipkg install transmission_1.73-1_arm.ipk,成功
   执行cp /opt/bin/transmission-daemon /usr/local/bin/
   执行transmission-daemon打开Transmission,发现可以正常下载hdbits.org的种子了

   上面说的是探索的道路,其实可以直接下载transmission和libevent然后直接安装,之所以说一下探索的过程是为了教大家怎么找相应的地址,以后transmission或者libevent再有更新,上述的网址就不再适用了
   再说一下傻瓜安装的步骤:    下载libevent_1.4.11-1_arm.ipktransmission_1.73-1_arm.ipk并通过网上邻居将其复制到nas的任意目录中,假设是\\Mybookworld\public\patch
   使用PUTTY登陆,然后SU切换到root用户,当然也可以直接用root登陆
   执行killall transmission-daemon停止Transmission    执行命令cd /shares/internal/PUBLIC/patch/进入这个目录,注意大小写,这个路径对应着刚才复制文件进来的那个路径
   执行ipkg install libevent_1.4.11-1_arm.ipk
   执行cp /opt/lib/libevent* /lib/
   执行ipkg install transmission_1.73-1_arm.ipk
   执行cp /opt/bin/transmission-daemon /usr/local/bin/
   执行transmission-daemon重新打开Transmission
   更新之后我重启过盒子,理论上不重启也能用.新版本不仅能当hdbits.org的bt下载客户端,而且更是多了几个革命性的功能,不过对于我来说买这个盒子的目的已经实现了.

2009年2月22日星期日

制作简易杜邦头

    我这里说的“杜邦头”不是指出门野游用的那种绳子的接头,而是指在电子技术试验中用的接插导线的末端接头,可以插到电路板的针(pin)上的那种东西,带着这种接头的导线叫做杜邦线,常见于电脑主机箱上的按键(或指示灯)与主板的链接的导线。

    这种东西像高温海绵一样莫名其妙的贵,市场上像这样的成品要两块钱一根(上图为十根),如果要是不太讲究或者只用几根的话最好还是自己做,比较经济。
    导线随便找,但是一定是多股的,因为插接过程中需要经常让导线弯曲;接头地方的端子需要专用,找便宜的那种,不给钱的话白要上二三十个一般没有问题的;绝缘头(黑色塑料块)用热缩管代替,便宜而且效果好。

    东西准备好以后就开始制作,首先是剥电线的绝缘皮,可以用自己喜欢的方式,但最好弄的整齐,我使用的是剥皮钳子。

    之后把金属端子卡在导线上边,如图,端子分三部份,第一部分是用来固定绝缘皮的,第二部分是用来固定导线的,第三部分是用来接插的,如果使用机器加工的话,前两部分会被卷180度插入导线里面,但是这个工艺仅凭简单的工具很难实现,所以我们使用别的方式:用第一部分包住导线的绝缘皮而不是插入绝缘皮里面,第二部分用焊锡来连接,注意焊锡要少量,否则过量焊锡可能会把第三部分堵上。

    这两个步骤都不难,但需要注意的是位置和方向,要让端子高低正确朝向相同。

    倒数第二个步骤是用热缩管制作绝缘头,也就是套上之后烫一下的事情,不过由于裁剪热缩管的时候不能保证长短相同,所以在安装的时候应该尽量让热缩管包电线的一端整齐,烫好之后再裁剪富余出来的一端。

    最后还要在“插针”上插一下,因为刚制作出来的杜邦头比较紧,最好放松一下,同时也可以检查一下是否成功。

    如果能找到专门的端子和绝缘头的话也能制作出来很有卖相的杜邦头,但是有一个很重要的原则,一定要一个步骤一个步骤的做,不要一个接头一个接头的做,因为对于排插线来说整齐是第一位的。

2009年2月19日星期四

驾驶员考试理论考试罚款类题目总结(包括河北部分)

    驾校忽然要理论模拟考试,这两天先没空弄15针口摇杆转USB了。

    驾驶员理论考试罚款类题目比较容易搞混,我根据价钱归类了一下,与大家分享

全国通用部分

20-200元
违反道路交通安全法停车
故意遮挡、污损机动车号牌
不装车牌
未放保险标志

200元
评监控录像罚款

200-500元
饮酒后驾车
客车超员小于20%
货车超载小于30%

500-2000元
醉酒后驾车
客车超员大于20%
货车超载大于30%

200-2000元
变造伪造系列(包括各种证件)
私装报警器
无证驾车
协助无证驾车
轻微肇事逃逸
超速50%以上
强行通行
损坏交通设施
开拼装车报废车

河北部分

——河北省实施《中华人民共和国道路交通安全法》办法

5元
行人未按照交通信号通行

10元
非机动车未按照交通信号通行
行人上高速
行人在车道上坐卧、停留、嬉戏、或者出售、发放物品、广告

20元
穿越、跨越或倚坐道路隔离设施
非机动车违规停车
驾驶改装非机动车
明知驾驶员饮酒乘坐机动车
行人扒车、追车、强行拦车或抛物击车
高速事故后未按规定转移
酒后驾驶非机动车

50元
非机动车上高速
非机动车超速
机动车变道时影响交通
不系安全带
开车打手机看电视
乱按喇叭
不按时按地点上路学车
取得通行证不按规定行使
违规载物

100元
未按规定喷涂放大机动车号
长宽高超标
在没有划分机动车道、非机动车道和行人道路上未按规定通行
未取得通行证擅自驶入限制区域

200元
无牌上路
违规超车掉头
路口堵车违规进入
涂抹遮挡车牌
用非教练车上路学车
不排队通行
擅自安装报警器
载客超员
逆行
擅自设置或者撤除临时停车位,或者设障影响泊车
禁上高速的机动车上高速
高速上未按规定使用灯光或妨碍他人行使

    全国通用部分的题好记,主要是地方的细规定太麻烦。个人觉得上网搜搜错题周报、错题月报、错题年报之类的东西,多做一做容易出错的题目对考试很有帮助。以上的数据纯属个人总结,若与实际有出入,请以考试系统为准!

2009年2月14日星期六

声卡15针口(Midi/Game)飞行摇杆转USB口游戏控制器 (上)

     事情的起源是这样的,为了机箱体积小,我搞了台Dell的Optiplex 745小型系统,这个东西和大部分的笔记本一样,没有那个叫做PC Gameport的15针并行游戏接口,恰巧我的老式飞行摇杆与电脑的链接属于这个范畴,所以我决定做个廉价的单片机系统,目的是将PC Gameport(15针口)的游戏摇杆转换成USB口,使我能够正常的玩飞行游戏。

     这个道具需要处理两个问题:一是与上位机(PC)通信,解决方案的灵感来自于一个叫AVR-USB的项目,说的是仅仅用软件使得Atmel的AVR单片机成为一个低速的USB设备(USB 1.1),这里是指不用专门的芯片,仅仅是一些周边必不可少的电平转换电路;二是从摇杆采集开关量和模拟量,恰恰AVR单片机具备足够的接口和内置的数模转换模块,即使廉价的Atmega8(由于量产低成本原理,原本便宜的ATtiny和AT90系列已经成了奢侈品,至少华北地区是这样)。考虑到体积、资源和成本的问题,我最后确定用Atmega8来完成。

     AVR-USB是一个很早以前的项目,网站上已经有了很多现成的参考实例,所以在这方便可以省掉我不少事情,不过还是出现了一个让人头疼的问题,15针口飞行摇杆电路图是这样的:

1 +5 VDC
2 Button 1
3 Joystick 1–X
4 Ground
5 Ground
6 Joystick 1–Y
7 Button 2
8 +5 VDC
9 +5 VDC
10 Button 4
11 Joystick 2–X
12 MIDI Transmit
13 Joystick 2–Y
14 Button 3
15 MIDI Receive

     仔细一看发现有些东西想简单了,按键的开关量可以对应TTL信号的高阻态和低电平,然而模拟量就麻烦了,摇杆输出的模拟量是电阻值,AVR单片机或者绝大多数的模数转换器可以识别的都是电压模拟量,我必须设计个电路对把电阻值转换成电压值,虽然不难,但是无形中提高了成本和功率。
PS:图中的红色虚线可以是导线,如果断开便分成两个独立的双轴双键手柄。

     AVR-USB的参考实例中的确有一个是把微软的老式摇杆转换成USB摇杆,那个项目的方案是通过555电路(实际是556,双555电路)把模拟量转换成频率,然后用单片机通过检测频率量来得出最后的数字量,我的摇杆包括X、Y、Z三个轴,如果我照搬那个项目的话得用3个555电路,这就太繁琐了。当然也有其他的摇杆实例,不过全是非比例摇杆,也就是说上下左右是开关量,不能反映动作程度,只能反映动了没有。

     之后我决定先用最简单的方法做实验,如果效率和功率比较让人满意的话,就实施,这里我参考一个USB传感器项目。自己设计的信号转换电路暂定为:

     虽然有些违背15针口的定义,但是我的目的不是做一个标准的接口转换器,而是让一个老式的15针口摇杆能够在不具备15针口的PC电脑上正常工作。

     为此我做了一些硬件,包括足够的杜邦线,一个AVR-USB的ATmega8实验板,一个杜邦头转15针口的狗,以及一个简易的25打印机并口ISP下载器,还好我的Dell小型系统有这个古老的接口,有了这些,我可以开始了......

最近出了很多事情,这个项目暂且终止

淘宝旺旺和SQL2008冲突

忽然间需要用Visual Web Developer 2008做点儿东西,便从Microsoft网站上下了一个Express版本的,其中包含SQL Server 2008 Express版本,结果第二天发现淘宝旺旺(5.70.05)打不开了。开始还以为是VWD2k8与旺旺冲突,后来Google了一下,网友们都说是SQL Server与旺旺冲突。想想以前我也是挂着旺旺用SQL搞创作的,所以说问题应该出在版本上,而不是生来就有的冲突,根据这个观点,我从http://im.alisoft.com/download/download.ali.html下载了个阿里旺旺2008,经过测试可以正常运行,问题就这样解决了。