Debian中安装、更新Dropbox

在Debian中可以通过

#aptitude install nautilus-dropbox

来安装Dropbox,而且在朝内需要先翻Q才行:

#export http_proxy=http://xxx.x.x.x:xxx

或者使用VPN等手段……

 

Dropbox需要手动更新版本,同样需要先翻Q,然后:

#dropbox update

自定义U盘/移动硬盘图标

说到U盘,我就想起了我以前那个制作好的Win7安装U盘,被人借走后就再也没有回来了……

好了,题外话啰嗦完了,下面进入正题。给U盘设置一个个性图标,在Windows中,一打开“我的电脑”或者“计算机”就可以看到,多酷!

效果图:

设置方法:

第一步:准备一个图标

这个图标可以是ICO格式,也可以是带有图标的EXE文件,也可以是打包为DLL格式的图标集。

这里有一些在线制作、转换ICO格式图标的网站:

http://www.damotou.com/http://www.ico.la/ 

http://converticon.com/http://tools.dynamicdrive.com/favicon/(这两个网站为英文界面,但支持一个图标包含多种分辨率)

 

也可以用本地软件制作、提取:AveIconifier2Axialis IconWorkshop图标终结者3

 

第二步:制作autorun.inf文件

这个文件是不是很眼熟?没错,它就是被U盘病毒弄出名的,但今天的工作跟病毒无关。

假设上一步准备的图标文件名为 upan.ico /tubiao.exe/tubiao.dll。在U盘根目录新建一个文本文件,用记事本打开,写入内容:

[Autorun]
icon=upan.ico

—————–到此为止,这是分割线—————

注:对于exe和dll文件

icon=tubiao.exe,0          (0表示第一个图标,依次类推)

icon=tubiao.dll,0           (同上)

然后将文本文件改名为“autorun.inf”(如果系统未显示文件名后缀,则写入内容后,选择另存为,文件名和前文一样,文件类型选“所有文件”)。

第三步:重新插一次U盘。

 

 

更多折腾:

1.在autorun.inf里写上

label=自定义U盘名字

名字可以写很长哦……,而且即使修改了卷标仍然显示这个名字

2.隐藏这两个文件

在CMD中,分别运行(X改为U盘盘符)

attrib +h +r +s X:\autorun.inf

attrib +h +r +s X:\upan.ico

用Python干掉星空极速

一说到星空极速,就跟说到x虎360一样让我不爽。以前在学校的时候就想方设法把它干掉,当然,在众人的帮助下也确实干掉了。当时为了使用方便,自己用C语言实现了一个破解程序,虽然不完美,但也基本够用。

前不久在别人电脑上又看到了星空极速这个垃圾软件……

现在刚好自己又在学习Python,于是我想到了用Python来重写一遍,想了一下,应该比用C实现起来更顺畅些。

纯属练习,fuckxkjs32-gbk.py   代码如下:

#!/usr/bin/env python

# -*- coding:gbk -*-
”’ 找回星空极速3.2真实拨号密码
    用法:
    1-直接运行,然后按提示输入密码
    2-加参数运行,参数为密码,多个密码用空格隔开
        比如:fuckxkjs32.py woshimima1 woshimima2
    感谢:http://blog.sina.com.cn/s/blog_48a42d5b0100cet2.html

    注:本程序只使用了部分字符加密表
”’

import sys

encryptdict = { “ch_0” : [ “E2”,“96”,“D0”,“AC”,“9D”,“A3”,“B6”,“8F” ],
“ch_1” : [ “E3”,“97”,“D1”,“AD”,“9C”,“A2”,“B7”,“8E” ],
“ch_2” : [ “E0”,“94”,“D2”,“AE”,“9F”,“A1”,“B4”,“8D” ],
“ch_3” : [ “E1”,“95”,“D3”,“AF”,“9E”,“A0”,“B5”,“8C” ],
“ch_4” : [ “E6”,“92”,“D4”,“A8”,“99”,“A7”,“B2”,“8B” ],
“ch_5” : [ “E7”,“93”,“D5”,“A9”,“98”,“A6”,“B3”,“8A” ],
“ch_6” : [ “E4”,“90”,“D6”,“AA”,“9B”,“A5”,“B0”,“89” ],
“ch_7” : [ “E5”,“91”,“D7”,“AB”,“9A”,“A4”,“B1”,“88” ],
                “ch_8” : [ “EA”,“9E”,“D8”,“A4”,“95”,“AB”,“BE”,“87” ],
“ch_9” : [ “EB”,“9F”,“D9”,“A5”,“94”,“AA”,“BF”,“86” ],
“ch_q” : [ “A3”,“D7”,“91”,“ED”,“DC”,“E2”,“F7”,“CE” ],
“ch_w” : [ “A5”,“D1”,“97”,“EB”,“DA”,“E4”,“F1”,“C8” ],
“ch_e” : [ “B7”,“C3”,“85”,“F9”,“C8”,“F6”,“E3”,“DA” ],
“ch_r” : [ “A0”,“D4”,“92”,“EE”,“DF”,“E1”,“F4”,“CD” ],
“ch_t” : [ “A6”,“D2”,“94”,“E8”,“D9”,“E7”,“F2”,“CB” ],
“ch_y” : [ “AB”,“DF”,“99”,“E5”,“D4”,“EA”,“FF”,“C6” ],
“ch_u” : [ “A7”,“D3”,“95”,“E9”,“D8”,“E6”,“F3”,“CA” ],
“ch_i” : [ “BB”,“CF”,“89”,“F5”,“C4”,“FA”,“EF”,“D6” ],
“ch_o” : [ “BD”,“C9”,“8F”,“F3”,“C2”,“FC”,“E9”,“D0” ],
“ch_p” : [ “A2”,“D6”,“90”,“EC”,“DD”,“E3”,“F6”,“CF” ],
“ch_a” : [ “B3”,“C7”,“81”,“FD”,“CC”,“F2”,“E7”,“DE” ],
“ch_s” : [ “A1”,“D5”,“93”,“EF”,“DE”,“E0”,“F5”,“CC” ],
“ch_d” : [ “B6”,“C2”,“84”,“F8”,“C9”,“F7”,“E2”,“DB” ],
“ch_f” : [ “B4”,“C0”,“86”,“FA”,“CB”,“F5”,“E0”,“D9” ],
“ch_g” : [ “B5”,“C1”,“87”,“FB”,“CA”,“F4”,“E1”,“D8” ],
“ch_h” : [ “BA”,“CE”,“88”,“F4”,“C5”,“FB”,“EE”,“D7” ],
“ch_j” : [ “B8”,“CC”,“8A”,“F6”,“C7”,“F9”,“EC”,“D5” ],
“ch_k” : [ “B9”,“CD”,“8B”,“F7”,“C6”,“F8”,“ED”,“D4” ],
“ch_l” : [ “BE”,“CA”,“8C”,“F0”,“C1”,“FF”,“EA”,“D3” ],
“ch_z” : [ “A8”,“DC”,“9A”,“E6”,“D7”,“E9”,“FC”,“C5” ],
“ch_x” : [ “AA”,“DE”,“98”,“E4”,“D5”,“EB”,“FE”,“C7” ],
“ch_c” : [ “B1”,“C5”,“83”,“FF”,“CE”,“F0”,“E5”,“DC” ],
“ch_v” : [ “A4”,“D0”,“96”,“EA”,“DB”,“E5”,“F0”,“C9” ],
“ch_b” : [ “B0”,“C4”,“82”,“FE”,“CF”,“F1”,“E4”,“DD” ],
“ch_n” : [ “BC”,“C8”,“8E”,“F2”,“C3”,“FD”,“E8”,“D1” ],
“ch_m” : [ “BF”,“CB”,“8D”,“F1”,“C0”,“FE”,“EB”,“D2” ],
}

def main():
password = “”
# charset = “0123456789abcdefghijklmnopqrstuvwxyz”
if len(sys
.argv) == 1:
while password == “”:
password = raw_input(“请输入待破解密码:”)
print “真实密码:%s % encrypt(password)
else:
args = sys.argv
print “原始密码:真实密码”
for p in args[1:]:
print %s%s % (p,encrypt(p))

def encrypt(password):
truepass = “”
for i in range(len(password)):
truepass += encryptdict[(“ch_” + password[i])][i % 8]
return truepass

if __name__ == “__main__”:
main()

 

 

————————————————————–

不完善的地方(TODO):

  • 直接运行程序输入不能包含空格
  • 对字符集以外字符的处理
  • 将结果写入文件

让Nautilus恢复音乐、视频预览

用Debian的CD1断网情况下安装完成的系统真是“干净”,发现很多功能都消失了……

记得用Sid的时候,Nautilus以前可以显示视频内容预览画面,鼠标指针放在音乐文件上还会自动播放音乐……现在都不行。

我明白是很多软件包没有安装的原因,但问题是缺哪些软件包呢。Google半天后,解决了:

MP3预览:gstreamer0.10-fluendo-mp3

视频预览:gstreamer0.10-plugins-bad,gstreamer0.10-plugins-ugly,gstreamer0.10-ffmpeg

图片预览:gstreamer0.10-plugins-good等……(系统默认已安装)

 

Ref:

玩转GNOME预览功能

GStreamer – 维基百科

U盘修复记

话说今天准备重装Debian,于是开始制作安装U盘,心想Ubuntu里自带“启动U盘创建器”,还没用过,不知效果如何,正好可以试一下。

开始挺顺利,结果最后安装bootloader的时候提示错误“invalid string ‘GNU/Linux’…”,我想可能是由于Debian全称

“Debian GNU/Linux”里有个空格所致,造成多了一个参数……(什么时候去提交个Bug Report……)

我又转念一想,既然是在最后安装bootloader的时候出的错,我只要把bootloader修复不就行了吗,再一想Debian现在的ISO是Hybrid模式,直接dd到U盘就可以启动,那现在我只把前面446字节dd过去应该也可以吧……

想法是好的,但结果是残酷的,正是这个也许异想天开的想法,让我的U盘无法正常使用了……症状为:

  1. 重启电脑,无法在BIOS的启动设备中看到
  2. file /dev/sdc  显示为块设备
  3. 但用 fdisk /dev/sdc  和 dd 均提示无法打开设备
  4. 在Windows中也提示为未插入介质(类似于只插了SD读卡器而没有插SD卡的情况),用HP优盘格式化工具也无法格式化

没办法,看来只有用量产工具修复了。

修复过程还算顺利,用数码之家的U盘芯片检测软件ChipGenius检测出U盘的主控芯片后,下载对应的量产软件,基本上使用默认设置进行量产就行了,不过我发现这样量产后U盘在插入电脑后显示的名称变成了默认的“Generic Flash Disk”,而不是以前的“EAGET CM960”(几年前买的了),对于我这样一个有点完美主义(也可以说是洁癖……)的人来说,这是不能接受的。

于是在量产工具中进行设置,找到USB信息设定一项,发现下面有SCSI和USB两部分,“EAGET CM960”应该填在SCSI部分。(小插曲,本来SCSI部分默认信息为“Generic Flash Disk”,USB部分为“Generic Mass Storage”而我最开始没看清楚,以为是一样的,还在困惑哪个对应的才是“EAGET CM960”,于是Google了一下,发现应该是SCSI部分,当然如果我当初要是细心一点也用不着走这条弯路了……)

设定好后,重新量产一下,OK,U盘回来了……重新制作安装U盘去……

Sid,再见!

考虑了好多天,还是决定不再继续使用Sid了,而是重装Stable(Squeeze)。重装前记一下,原因稍后再写。

重装前的准备:

  1. 备份修改过的配置文件
  2. 记录额外安装的软件

先去完成这两件事……

—————–我是分割线—————–

系统安装完了,但我心情很沉重……因为我在安装的时候犯了错,把home分区格式化掉了,这是我用Linux以来第一次数据丢失……

PS:安装过程截图

——————-再割一下——————

言归正传,为什么用Sid两年多了突然决定不用了呢?

直接原因是因为前段时间升级了系统,但更新NV显卡驱动到290.10后,X无法启动了,现象是启动gdm后,就不断重复报错“acpid:client connected from xxx”、“acpid:client xxxx[0:0] has disconnected.”  在启动内核中加入noacpi和acpi=off也不行,使用老版本内核启动也不行,通过backports源把NV驱动降级到280.xx还是不行……查看/var/log/X.0.log,提示找到了显示设备(display device),但无法找到屏幕(screen)。但我不知道如何解决,网上搜了一圈,没有发现解决办法。

后来想想,我用Sid无非就是为了用上新版本的软件,但我的电脑是07年的产品,已经算是老家伙了,最新的GNOME 3只有使用后备模式(fallback),无法开启特效……而很多软件的新特性都是为新设备准备的,用一台老电脑来追新实在是不太合适,况且Debian 6.0(Squeeze)是今年才发布的,也还是比较新,加上backports源,Firefox等软件照样可以安装最新的版本,用她陪我的电脑终老或许正好……

不过等我以后换上了新电脑,我还是会再安装Sid的,See you……

一些Git学习资料

前言:

Git是啥:http://zh.wikipedia.org/wiki/Git

 

不知不觉看了一堆资料,都是很不错的(除了注明英文的其余均为中文):

Pro Git:http://progit.org/book/zh/

Git Community Book:http://gitbook.liuhui998.com/

 

Git 故事连载:http://gitstory.wordpress.com/

Git 中文教程:http://www.linuxsir.org/main/doc/git/gittutorcn.htm

Why Git is Better than X:http://zh-cn.whygitisbetterthanx.com/

理解Git工作流:http://heikezhi.com/2011/08/04/understanding-the-git-workflow/

GIT分支管理是一门艺术:http://roclinux.cn/?p=2129

Git开发管理之道:http://blog.leezhong.com/translate/2010/10/30/a-successful-git-branch.html

git多人协作开发流程(以blog为例):

http://blog.leezhong.com/tech/2011/02/25/git-workflow-with-blog-demo.html

[英]A few git tips you didn’t know about:http://mislav.uniqpath.com/2010/07/git-tips/

构造干净的 Git 历史线索:http://codecampo.com/topics/379

GotGitHub:http://www.worldhello.net/gotgithub/index.html

Git Immersion:http://gitimmersion.googol.im/

查看京东/新蛋/亚马逊商品历史价格

前段时间在一个博客里发现了一样好东西,对于在京东购物的人来说真是尼玛太有用了!
说简单点,就是可以通过360444.com这个网站来查询京东、新蛋、亚马逊商品的历史价格,看当前价格是否值得购买。
对于京东来说,只要把商品链接里的“buy”换成“444”再打开,就可以看到商品的历史价格了。
例如:
商品链接:http://www.360buy.com/product/363597.html
其历史价格链接:http://www.360444.com/product/363597.html
是不是很爽!?

为了省事,作者写了一个脚本,可以让浏览器自动插入历史价格图片到商品页面。
只需要依次安装三样东西:FirefoxGreasemonkey脚本
然后再用Firefox打开上面的商品链接看看吧~
效果图:

效果图

 

PS:对于Chrome浏览器,由于它自身就支持GM脚本,所以可以直接安装第三那个脚本。

 

更新:

2011.12.1 – 作者写了一个基于box-z的新版历史价格脚本,支持更多商城,http://qixinglu.com/archives/boxz_price_history_image_script,两个脚本可以同时使用。