Xupeng's blog

Nov 13, 2006 - 1 minute read - Comments

在啄木鸟社区创建了pygetsong项目

今天在limodou的引荐下向Zoom.Quiet申请在啄木鸟社区创建了pygetsong项目。
项目的wiki页面地址为:
http://wiki.woodpecker.org.cn/moin/PyGetsong
项目的svn代码仓库地址为:
http://cvs.woodpecker.org.cn/svn/woodpecker/pygetsong/
感谢Zoom.Quiet,大中午还忙着配置pygetsong的svn仓库,感谢所有关心和支持pygetsong的人们:)

从今天开始最新的getsong将会出现在svn软件仓库里,使用过程中出现问题的朋友请先检查一下所使用的getsong是否为最新版本,从svn获取最新getsong代码的方法如下:
方法一:安装subversion客户端,使用如下命令:
  svn co http://cvs.woodpecker.org.cn/svn/woodpecker/pygetsong/trunk getsong
方法二:使用其他的svn客户端,使用方法参考该客户端的帮助文档。

Nov 9, 2006 - 1 minute read - Comments

改进mp3下载脚本,内置多线程下载和速度优先选择

昨天晚上进行了一些改进,使其不再依赖外部的下载程序而独立运行,在我的gentoo和windows xp下都运行良好。
主要有三个改进:
1。脚本改名为getsong(下载),简单些,呵呵。
2。内置多线程下载,不再依赖axel。
3。选择速度较快的站点进行下载,减少等待时间。

目前还有一些小毛病:在多线程下载一块儿,如有异常情况发生导致线程重试时产生错误的下载结果,这个应该不难修正,晚些时有空了再改一下。

Changes:
在linuxsir上pupilzeng的帮助下已经修正了多线程下载的错误,现在getsong算是一个基本上好用的小程序,说基本好用是因为:靠关键字在百度搜索所得的结果并不全是正确的,因此有可能下载的歌曲不是你想要的,尤其是下载的歌曲如果和某张专辑同名,那下载结果不正确的可能性还会大大提高。

TODO:
提高搜索精确度,尽量保证匹配精度。

Nov 8, 2006 - 2 minute read - Comments

昨晚遭遇LVM2误操作,灾难恢复折腾人

把新硬盘转为 LVM2 有个把月了,lv 的缩放的确方便,尽管不是天天缩放来玩儿,但说不定哪天就有这样的需要了,比如昨天就遇到这样的情况。昨天想要安装一个 Ubuntu 以备不时之需,因为新硬盘全部使用 LVM2 管理,这就需要从现在的 vg 中划分出一些空间给 Ubuntu 使用。/dev/vg/data 这个 lv 有 110G 大小,其中只有 30G 多的数据,于是进行了如下的操作:

Oct 30, 2006 - 3 minute read - Comments

使用指南:好用的播放器mpd

使用指南:好用的播放器mpd
作者:Xupeng Yun <recordus@gmail.com>

mpd是目前我最喜欢的linux环境下的播放器,它跟常见的大多数播放器都很不同,比如它是c/s架构,mpd会作为一个守护进程运行在后台,通过各种各样的client软件来控制播放动作、播放列表等,从一开始使用我便喜欢上了这种方式。下面介绍一下它的使用方法和一些常见问题的解决方法。

一、安装
    我推荐使用最新的0.12.1版,因为我曾使用过0.11.5版,它对某些歌曲的长度识别有问题,而在最新的0.12.1中很正常,以下文字都是基于0.12.1版的。
    如果你跟我一样使用gentoo linux,那么你把portage更新到最新后emerge mpd就可以了:
    emerge --sync
    emerge mpd
    使用其他的发行版的用户可以检查一下软件仓库中是否已有mpd,比如debian/ubuntu用户可以:
    apt-get install mpd
    arch用户可以:
    pacman -S mpd
    如果你使用的发行版还没有提供0.12.1版的二进制包,你可以从mpd官方网站(http://www.musicpd.org/files.shtml)下载源代码进行编译安装。
    
    使用tar命令解开源代码包后进入源码目录:
    tar xf mpd-0.12.1.tar.gz
    cd mpd-0.12.1
    编译安装:
    ./configure --prefix=/usr
    make
    make install

二、mpd的配置
    mpd的系统级配置文件是/etc/mpd.conf,配置方法参见该文件,常用的配置选项有如下几个:
    user 指定用来运行mpd的用户,建议使用默认的mpd用户
    music_directory 指定存放mp3文件的目录,确保user指定的用户对该目录及其子目录、文件有读写权限。
    filesystem_charset 要和你系统使用的locale一致,比如我的:
    aiyi@devr ~ $ locale
    LANG=en_US.utf8
    LC_CTYPE=zh_CN.utf8
    LC_NUMERIC="en_US.utf8"
    LC_TIME="en_US.utf8"
    LC_COLLATE="en_US.utf8"
    LC_MONETARY="en_US.utf8"
    LC_MESSAGES="en_US.utf8"
    LC_PAPER="en_US.utf8"
    LC_NAME="en_US.utf8"
    LC_ADDRESS="en_US.utf8"
    LC_TELEPHONE="en_US.utf8"
    LC_MEASUREMENT="en_US.utf8"
    LC_IDENTIFICATION="en_US.utf8"
    LC_ALL=

    因此我就设置该选项为"UTF-8"
    id3v1_encoding 指定mp3文件id3v1的编码,通常指定为"GBK"

    后两项的设置很重要,它关系到你的歌曲信息是否能够正确显示。

    对mpd配置完毕后要创建歌曲数据库,使用命令:
    mpd --create-db
三、mpd的使用
    启动mpd:
    一般安装mpd时会安装一个启动脚本,比如mpd在gentoo下安装的启动脚本为/etc/init.d/mpd。
    /etc/init.d/mpd start就启动了mpd
    mpd没有安装该脚本也无妨,直接运行mpd就可以了。

四、客户端软件的使用:
    我比较常用的客户端软件是mpc和gmpc,这些软件的安装都很简单,自行解决吧:)
    mpc的常用方式:
    mpc listall 可以列出所有的歌曲
    mpc search filename 可以按文件名查找
    mpc search artist 可以按歌手查找
    mpc search title 可以按歌曲名查找
    mpc add 添加歌曲到播放列表
    mpc listall|mpc add 可以把所有歌曲都添加到当前的播放列表
    mpc playlist 查看当前播放列表
    mpc play 播放
    mpc play 18 播放列表中第18首
    mpc pause 暂停
    mpc stop 停止
    mpc 查看当前播放歌曲的信息
    mpc的更多选项可以看mpc的帮助。

    gmpc是图形化的客户端,使用更加简单,就不废话了。

五、常见问题
    1、我的播放列表怎么有很多乱码?
    这个……要检查一下上面mpd的配置一节说过的两个选项:
    filesystem_charset
    id3v1_encoding
    看是否设置正确
    2、我确认配置没问题,还是乱码。
    这个可能是0.12.1新引入的问题,如果你的mp3文件有id3v2信息,那mpd会优先读取它而不管id3v1。
    解决方法:删除id3v2信息,再确认id3v1是否正确
    3、怎么删除id3v2信息?
    我推荐使用id3v2这个命令行软件:id3v2 -d mp3file
    4、能不能显示歌词?
    偶目前在写一个小程序,用与mpd环境下的歌词显示,基本上完成了,稍候放出。
    5、其他的问题
    我目前还没有遇到其他问题,如果你遇到了其他的问题请使用google,同时也欢迎和我联系:recordus at gmail.com