Gentoo配置手记(10/08/07)

Number of View: 217

我又开始折腾了-___,-

1. 不小心删除了Python
按Gentoo handbook折腾了一天把系统安装好了,于是我就决定emerge一下Python,结果把Python3也给装上了。想删除Python3结果直接把Python2.6一并咔嚓了。彼时还没有认识到问题的严重性,结果后来发现emerge命令执行之后完全没反应,问题严重了。翻开Portage Introduction:

Portage is completely written in Python and Bash.

Gentoo的Portage系统是依赖于Python的,so don’t ever unmerge Python completely!
问题解决方法就是重新编译安装Python:

# cd
# tar xzf /usr/portage/distfiles/Python-2.6.5.tgz
# cd Python-2.6.5
# ./configure --with-fpectl --infodir=/usr/share/info/ --mandir=/usr/share/man
# make
# make install prefix=/usr
# rm /usr/bin/python 2>/dev/null
# ln -s /usr/bin/python2 /usr/bin/python

Reference: [Gentoo Forums] I unmerged python… ensuing problems….

2. 无线网卡无法识别
首先确定网卡型号及驱动模块是否已加载:

# lspci | grep Wireless
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection

搜索该网卡对应的内核模块应为iwlagn,完整的网卡型号与驱动模块对应列表可从 Drivers – Linux Wireless 获得。

# lsmod | grep iwlagn
iwlagn                173410  0
iwlcore               174978  1 iwlagn
mac80211              128158  2 iwlagn,iwlcore
cfg80211              119296  3 iwlagn,iwlcore,mac80211

iwlagn已经正确加载,但是无线网卡仍然无法识别(wlan0: device not found)。
原来还有重要的一步没有做: Software Setup – Installing the microcode files。

# emerge -av net-wireless/iwl5000-ucode

之后无线网卡就可以正确识别了。

Refrence: Iwlwifi — Gentoo Linux Wiki

3. udev更新问题(2010-08-07)
昨天运行了一下emerge -uDN,今早启动系统的时候报错:

* Checking root filesystem...
fsck.ext3: No such file or directory while trying to open /dev/sda6
/dev/sda6:
The superblock could not be read or does not describe a correct ext 2 filessytem.
If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else,
then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:
      e2fsck -b 8193  

* Filesystem coudn't be fixed :(

这个问题很好解决,只要利用livecd进入chroot(参见Gentoo handbook),downgrade udev到之前的可用版本就OK了。

# emerge "<=sys-fs/udev-149"

Refrence: [Gentoo Forums] Installing Gentoo

  • Share/Bookmark

Setup GDM 2.28 and above

Number of View: 280

gdm自从升级到2.28以后就不能设置主题神马的了,而且gdm的background还是一坨非常恶心的绿色,更杯具的是awesome下不知为啥urxvt设置透明背景用的background居然是这个绿色的图,恶心了我很长时间。上次通过设置rc.lua里一个透明选项搞定的,这次awesome升级以后好像又不管用了,一打开urxvt就把我嚇到了….

去查了ArchWiki的Gnome 2.28 Changes,找到了这个命令:


# gksu -u gdm dbus-launch gnome-appearance-properties

终于改过来了。本来想再不行就degrade到2.20的,嗯,可以不用降级了~

  • Share/Bookmark

Nexus One入手之软件篇(二)

Number of View: 701

嗯,这次的主题是吐槽,虽然也有一些推荐啦。

吐槽一:Froyo 今天木OTA更新

Google I/O大会放出了Froyo,偶本来也木有对近期的更新抱太大期望,结果今天早上正在自习的时候看到了@junyu 老师的推说N1的2.2OTA更新出了,搅乱了偶那平静的心湖。偏偏手机发推发没电了,又跑回宿舍充了一个多小时的电,然后骑车去实验室连wifi开同步。结果同步了半天都没有提示我有更新哪。我找到check updates,显示your system is up to date。我不甘心,连上vpn再check,还是那句up to date。我悲愤地暴走了!!!白激动了一个多小时阿~~多浪费感情阿~~~!

吐槽二:软件崩溃引起的故障

这周还出了个妖蛾子。有天运行程序太多了,我正开着evernote同步一个图,结果刚一保存屏幕就黑了,只看得见最上方那个状态栏。我touch了半天,出来一个对话框告诉我seesmic崩溃了,点了force close以后屏幕继续没反应,我急躁地锁屏了,然后开锁就完全没有反应,啥都看不见。

偶想大概死机了,拿实验室电话给手机打电话,轨迹球还亮了,嗡嗡的震动,可是屏幕就是黑的!偶慌了,心想不是屏幕坏了吧,真坏了我就杯具了。连忙发了个推求助,@CJie 同学立刻回复了,万分感谢阿:

2010-05-22-173050_554x90_scrot

我立刻插拔电池重启,果然好了….长出一口气阿….
android虽然有GC机制管理不活动的activity,但是明显做的不到位,程序一开多了就慢的很。尤其seesmic的用来更新的后台service貌似经常崩溃。所以我觉得在这种不完善的情况下,app是不是最好提供一个exit的菜单让用户可以选择关闭程序而不是在后台运行。不过听说2.2的速度有2-5倍提升,让我们期待一下它的表现会如何吧~

光顾着吐槽,把正题都给忘了。上次推荐了我特别特别喜欢的10个App,这次推的主要是一些还不错但是某些方面还有待改进的app~

1. Droid Comics Viewer

snap20100515_141518

一款很优秀的漫画阅读软件,支持多种压缩格式(zip,rar等),使用轨迹球上下方向或双击缩放图片。要是支持多点触摸缩放就perfect了。不过用手机看漫画真的很不方便,手机屏幕再大也有限度,估计ipad看会比较爽。这个软件还有一个小缺点就是太耗电,看不多长时间就没电了。

2. ShootMe

snap20100515_101808(2)

屏幕截图软件,需要root权限。只要shake一下,当前屏幕的截图就会保存到/sdcard/ShootMe目录下。

3. ASTRO

snap20100515_141635

目前还没有特别满意的file explorer app,ASTRO算是还可以的一个吧。功能比较全,但是缺点是操作比较繁琐。而且目前还没有见到过支持同格式文件批量操作和连续选定操作的app,残念阿。

4. Android Mate

snap20100515_101938

功能比较全面的一个系统管理软件,能够从sdcard上安装apk文件,管理当前运行的service和system进程,管理通过market安装的app,外加file explorer功能。界面方面还可以自定义背景图片。

5. Gesture search

snap20100515_141807

快速手势检索,不过我现在不太用了,觉得画英文字母比打字烦琐….

6. MarketEnabler

snap20100515_141847

这个还用我介绍么,必备阿必备

7. 大众点评

snap20100522_212630

大众点评官方app,提供的周边信息准确丰富。上次去UME安贞店看电影前就用它搜了一下附近的好吃的地方,麻里麻里香锅果然不错的说。

8. Simeji

snap20100522_212836snap20100522_213113

这个日文输入法非常好用,超级好用,特别好用,其实应该五星推荐的,但是估计要用到的人不多,就在这里说一下。Feature包括本地词库查不到的词可以在线找到,输入切换方便,汉字提示准确,还有强大的颜文字库~

吐槽三:鸡肋的app们….

1. Gmail
android上的Gmail程序无疑是所有Google出品的APP中最鸡肋的一个,功能过于简单。首先是不支持附件下载,要下载保存附件还得装一个专门的APP,那个APP还老容易崩溃的。第二是对群发邮件会在头部显示所有收件人,让我这种每天收一堆院里的群发邮件的人每次都要拉几次才能拉到邮件正文,情何以堪啊情何以堪!好吧,这是让我最为怨念的两点。其他跟标签相关的功能不好用我觉得主要还是限于手机屏幕,如果是iPad估计就很爽了。
2. Clock
Clock的界面挺漂亮的,就是alarm功能太弱。我的alarm都已经很多天没响过了….
3. ADouban
豆瓣APP,功能神马的还是挺全滴,还嵌入了barcodeScanner的扫描查找功能。就是“我的收藏“这一块只是简单列出了最近的收藏,感觉有点鸡肋了…而且电影什么的详细信息的显示格式有点囧阿。
4. Google Reader
丫的不能出个app版本么,网页版的字也太小了。点击神马的还容易touch错。

吐槽完毕,神清气爽。

  • Share/Bookmark

给mp3批量嵌入专辑封面

Number of View: 883

鉴于本人素ID3 tag严重洁癖者,之前有用easytag手动给几千个mp3改过tag= = easytag的界面不错,就是不能批量修改,导致那两天改的我手都酸的不行了….入了n1以后有一点不爽的就是不管啥音乐软件,听歌的时候就是抓不到一张封面,那个默认的灰色封面实在让我火大,就用python写了个从豆瓣抓封面图片直接嵌入ID3 tag的程序,一劳永逸了~~

读写ID3 tag信息

对ID3信息的读取和修改依赖了mutagen库,当然用之前还是要对ID3标准有一个基本的了解。

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error

audio = MP3(self.filename, ID3=ID3)
try:
    audio.add_tags()
except error:
    pass

有可能音乐文件一开始并没有tag(虽然机率比较小),所以调用add_tags()方法初始化一下,一般情况下都会抛出个error,提示已经有tag了。

album = self.audio['TALB'][0]
frames = self.audio.tags.getall("APIC")
for frame in frames:
    ext = ".img"
    if frame.mime == "image/jpeg" or frame.mime == "image/jpg":
        ext = ".jpg"
    elif frame.mime == "image/png":
        ext = ".png"
    elif frame.mime == "image/gif":
        ext = ".gif"

如果tag中已经包含唱片标题信息,那么audio.keys()的返回结果中就会包含”TALB”这一项,其他还有比如”TLE1″(表演者),“TCON”(流派)等等。ID3标准中规定代表唱片封面信息的帧结构如下:

audio.tags.add(APIC(encoding = 3,mime = "image/jpeg",type = 3,
desc = u'Cover',data=imagedata))
audio.save()

encoding = 3表示utf8编码,mime可以为”image/jpeg”(“image/jpg”)或者”image/png”格式,type=3表示写入的是front cover,desc是描述信息,data是图片的二进制数据,可以从某个uri读取,也可以从本地读取。

从豆瓣抓取封面图片

豆瓣很早就开始提供各种API了,抓取过程很简单,默认是atom,把得到的xml用minidom库解析一下就可以得到封面图片的url了,这个不多说了。

req = urllib2.Request(self.site_url+"?"+url_data)
response = urllib2.urlopen(req)
result_xml = response.read()

elements = minidom.parseString(result)
albums = []
for entry in elements.getElementsByTagName("entry"):
    album = {}
    try:
        album["id"] = self.getText(entry.getElementsByTagName("id")[0].childNodes)
        album["title"] = self.getText(entry.getElementsByTagName("title")[0].childNodes)
        album["author"] = self.get_authors(entry.getElementsByTagName("author")     [0].getElementsByTagName("name"))
        album["image"] = self.get_image(entry.getElementsByTagName("link"))
        albums.append(album)
    except IndexError:
        pass

这个时候得到的图片的url一般是”http://t.douban.com/spic/s*.jpg”的格式,这些图片都比较小分辨率比较低,一般一张2,3k左右。我需要清晰一些,大一些的图片,所以把url中spic换成了lpic,这时得到的图片在20k左右。

image_url.replace("spic","lpic",1)

代码

源码见这里
必需的命令行参数为-d,后接要处理的目录路径。-r表示递归处理该目录下所有子目录下的所有mp3文件,否则默认只处理指定目录下的文件。

成果

我的音乐目录是~/Music,执行python cmd.py -r -d ~/Music递归为该目录下所有mp3文件自动嵌入封面,由于mp3 tag有的有残缺,成功率大约在90%以上。
Amarok播放效果图:
2010-05-15-105026_671x276_scrot
Android Music播放效果图:
snap20100515_113833

  • Share/Bookmark

Nexus One入手之软件篇(一)

Number of View: 529

好吧我承认我懒得更新= =五一在宿舍宅了两天看了一堆电影,我就不忏悔了。昨天夜里11点左右下雨了,下之前还轰隆隆的打了一阵雷,要不是爬上床之后听见雨声我还以为我之前是幻听。这两天实验室正下方不知道施工在干啥,整天的拿电钻钻天花板,时不时的来场震动的惊喜(正写着呢又来了…)。

废话说完了来进入正题。以下是android app之五星赞美list~

1. Live Wallpaper

snap20100407_203736 snap20100504_173722
N1自带的这两个动态壁纸都非常的不错,加上后来更新的gmaps动态壁纸,算起来只有这三款支持触摸反馈。左边是默认的Nexus,触摸时会在触摸点生成新的射线;右边是Water,水面会在触摸点处向外扩散生成波纹。

2. 3D Gallery

snap20100504_175805 snap20100504_175611
Gallery的3D效果基本上和Firefox上的Cooliris差不多,很炫目。我喜欢的几个小特性一是在触摸相册中的某个图片时,整个galley的背景就会变成该图片的模糊化色调;二是长按选定功能。总的来说它确实是一个既美观又实用的app。

3. Widget

桌面上怎么能少了漂亮又方便的widget呢,我用的widget主要有以下几款:

  • Google search,必备,平时都通过它来启动app或定位文件
  • Agenda Widget,这个日历widget比默认的Google Calendar更漂亮,并且有多种size可供选择
  • Google buzz,虽然不常用buzz,但是这个widget做的实在让人流口水啊….
  • Google Latitude,列出最近更新了latitude的好友位置
  • Digital Clock,默认的Clock widget上面不显示数字的,这是一个iphone风格的数字时钟
  • Power Control,必备,可控制wifi,gps,sync,bluetooth等的开关
  • Mini Info Widget,3*1,显示目前系统信息,如电池剩余量,ROM和SD卡使用状况等
  • Seesmic,Seesmic什么时候开始支持widget的我都不知道,今天才发现= =。
  • APNDroid,APN开关,控制流量使用
  • AdvancedTaskKiller,系统缓慢的时候按一下释放内存。

snap20100504_192453 snap20100504_192443 snap20100504_192447

4. 豆瓣电台(douban.fm)

snap20100407_202802

豆瓣不久前推出了豆瓣电台的iphone版和android版app,特点是界面简洁大方,非常有简约美。上图的界面触摸后有一个翻转效果,背面会显示出专辑的信息和评级。它还支持shake skip特性,直接摇一下手机就可以skip掉当前的歌曲啦。

5. iReader

snap20100504_195610

iReader是一款电子书阅读app,我主要用它看小说= =iReader的功能全面,设置项十分丰富。可设置背景,翻页时间动作方向,界面风格,显示等等。支持书签,多种字符编码,搜索,重力感应等特性。最方便的一点就是打开某本书时默认就是上次读到的进度,基本上都不用自己刻意去设置书签。

6. Ringdroid

snap20100407_203948

Ringdroid用于编辑音乐并保存为系统铃声。我主要用它来截断某首歌的前奏(比如《生生世世爱》= .=)。这个app用起来很方便,只要拉动左右两根分界线来截断曲子的某部分就可以了~

7. MovieFinder

snap20100407_203902 snap20100407_203826 snap20100407_203851

MovieFinder通过你的Location来收集附近的影院信息,提供正在上映的电影的列表。值得一提的是它的电影的rating使用的是google rating,但是同时在每部电影下附上了豆瓣、google rating和imdb的链接。有些挫电影的google rating可能还不错的,所以还是check一下豆瓣比较保险。每部电影后面都附有附近影院的放映场次,还提供到影院位置和联系方式。这款app从功能到设计都无可挑剔。

8. Seesmic

snap20100407_203655

其实一开始还是随大流用的twidroid,不可否认的是twidroid功能的确是最全面最丰富的一个,但是用户体验方面还是有所不足的。有一点让我很不爽就是twidroid的发推按钮十分的小,每回都要多按几次才能发成功,包括刷新按钮也经常按了没反应。这两个按钮偏偏又是最常用的,搞得我很悲愤。

后来陆续试了twigeeSeesmic。twigee功能比较简单,胜在界面简洁易用。Seesmic的界面设计可以看出是下了功夫的,home,reply,message和profile都是用的tab显示,很醒目很好切换。refresh按钮就在最新推的上方,与list item等宽,百发百中,不存在按不到的情况。并且设想很周到的一点就是按上方的红色横条就直接到达最新推,这样向下回溯旧推完了以后就可以方便地回到最新推的位置了。这几个设计真是太赞了。Seesmic这次更新以后开始支持官方RT,geotag和widget,功能比twidroid是不遑多让,尤其widget是twidroid pro才支持的。

话说最近又出了那啥的官方客户端,悲愤的是不支持API,无福享受啊。

9.PlacesDirectory

snap20100504_205909snap20100504_205922snap20100504_205857snap20100504_210031

介个就是Google的Places Directory,涵盖了附近所有场所的位置、图片、联系方式等信息,加上GPS精确定位,简直就是户外神器啊。不过Maps比较耗流量,非联通3G包月用户在非wifi环境下慎用。

10.WordMate

snap20100407_204157

WordMate是一款字典软件,自带DictDownloader可以下载很多字典。重要的是它支持stardict使用的字典格式,是不是意味可以直接从stardict官网下载一些dictdownloader中没有的字典用,这个还没试验过~字典list里面居然还有个Dict of Computing,囧,上图就是Python的解释。

该赞美的赞美的差不多了,今天写不完全部了,下次写四星推荐和三星鸡肋~

  • Share/Bookmark
Page 1 of 3123