$ sudo apt-get install python-mutagen
$ cd your-mp3-dir
$ find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
$ sudo apt-get install python-mutagen
$ cd your-mp3-dir
$ find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
在 Ubuntu 下看不了 RMVB 的最重要的原因是因为没有 w32codecs 这个解码包.
我们的确可以使用 apt-get 看到它的确在控制范围中. 但是 ubuntu 官方的源中竟然没有包括这个东西. 所以直接使用 apt-get 是安装不上的. 网上流传的解决方法普遍都是给出一些源地址, 然后让我们加入 source.lst 中. 这里我推荐一个比较简单好记的方法, 使用 ubuntu-tweak, 在其第三方软件那里勾选 Medibuntu. 然后点击 Refresh 按钮, 等待更新结束.
最后你只需要在 Terminal 中输入:
$ sudo apt-get install w32codecs libdvdcss
其中 libdvdcss 装不装取决于看不看 DVD.
到此问题就解决了.
参考地址[link]
本人所使用的笔记本 T400 搭载的是 ATI 3470 的显卡, 在 Ubuntu 8.10 的时代一直工作良好. 但是当使用了 Ubuntu 9.04 并装好 ATI 驱动之后, 每次开启 Compiz 的视觉特效总会让 UI 行为出现严重的延迟问题. 我每次都不得不放弃很多 UI 特效, 退而使用基本视觉效果.
今日在查阅资料的时候发现已经有人知道如何解决这个问题了. 原来这个是 ATI 显卡的通病. 据一篇文章的作者说, 是一个 xorg 的 Bug, 据说已经 patch 过了, 但是在 Ubuntu 9.04 发布的时候不知什么原因把这个给去掉了. 于是乎导致了这个问题.
解决方案:
9.04
# 添加认证:
$ sudo apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com 0x643dc6bd56580ceb1ab4a9f63b22ab97af1cdfa9
#
# 修改/etc/apt/sources.list 加入以下源:
deb http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-x-swat/xserver-no-backfill/ubuntu jaunty main
#
# 保存后运行:
$ sudo apt-get update
$ sudo apt-get upgrade
9.10
# 添加认证:
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com DBDD06BF16E70E3E
#
# 修改/etc/apt/sources.list 加入以下源:
deb http://ppa.launchpad.net/launchpad-weyland/xserver-nobackfill/ubuntu karmic main
deb-src http://ppa.launchpad.net/launchpad-weyland/xserver-nobackfill/ubuntu karmic main
#
# 保存后运行:
$ sudo apt-get update
$ sudo apt-get upgrade
这样就搞定了.
或者自己下补丁打包安装:
下载xorg补丁地址http://launchpadlibrarian.net/32728179/xserver-xorg-backclear.patch
编译xorg并打上补丁,然后安装
sudo apt-get build-dep xorg-server
apt-get source xorg-server
cd xorg-server-1.6.3
patch -p1 < /path/to/xserver-xorg-backclear.patch
debuild
cd ..
sudo dpkg --install xserver-xorg-core*.deb
资料引用自[link]
自从上一篇文章说了如何启用 thinkpad 的红帽和中键之后我又无聊地 google 了一番, 找到了一个叫做 thinkwiki 的网站, 里头有很多有用的关于 thinkpad 的资料. 特别是安装 linux 的配置资料.
看到了一个脚本 (for ubuntu 9.04)
用于解决 thinkpad:
1. 红帽/中键
2. FN+F8 开关触摸板
3. fix 了一些电源方面的 bug
4. 映射了 FN 作为 Menu 键
我修改了一点, 添加了激活静音键的功能, 具体修改后代码如下:
#!/bin/sh
# Shell-script for postinstallation work on a T400 or another Thinkpad
# Scrolling with Trackpoint
echo '< ?xml version="1.0" encoding="UTF-8"?>
<match key="info.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>' > /etc/hal/fdi/policy/mouse-wheel.fdi
# FN + F8 to switch trackpad on/off
echo '< ?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="input.x11_driver" string="synaptics">
<merge key="input.x11_options.SHMConfig" type="string">True</merge>
</match>
</device>
</deviceinfo>' > /etc/hal/fdi/policy/shmconfig.fdi
# recommended workaround for hard disk bug
sed -i 's/ENABLE_LAPTOP_MODE=false/ENABLE_LAPTOP_MODE=true/g' /etc/default/acpi-support
sed -i 's/BATT_HD_POWERMGMT=1/BATT_HD_POWERMGMT=200/g' /etc/laptop-mode/laptop-mode.conf
# Menu Key Workaround
sed -i 's|key\ <i151>\ \ \ {\ \ \ \ \ \ \[\ XF86WakeUp|key\ </i151><i151>\ \ {\ \ \ \ \ \ \[\ Menu\ \ \ \ \ \ |g' /usr/share/X11/xkb/symbols/inet
# Mute Key
cp /boot/grub/menu.lst /boot/grub/menu.lst.`date +%F`.bak
sed -i 's|kopt=root=UUID=.\{36\}\ ro$|&\ acpi_osi="Linux"|g' /boot/grub/menu.lst
update-grub
echo '==========================================='
echo 'After an reboot you certainly can use the features! To do so type "reboot"'
把这段代码复制到一个文件中 (比如 thinkpad-config), 然后在 terminal 中执行:
$ chmod 775 thinkpad-config
$ sudo ./thinkpad-config
最后重启就 ok 了.
原始脚本地址可以访问: URL
编辑 /etc/hal/fdi/policy/mouse-wheel.fdi (大概默认没有, 自己建立一个)
填入如下内容:
<match key="info.product" string="TPPS/2 IBM TrackPoint"> <merge key="input.x11_options.EmulateWheel" type="string">true</merge> <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge> <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge> <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge> <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge> <merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge> </match>
重启机器就 ok 了.
今天在新的 Ubuntu 上面安装 rails 的时候碰到了这样的问题:
`require_frameworks': no such file to load -- net/https (RuntimeError)
原来是缺少 libopenssl-ruby library:
解决方案:
$sudo apt-get install libopenssl-ruby
本文作为 Ubuntu下部署rbuy on rails开发环境 补充
不知道大家有没有觉得在默认情况下, 我们的 Ubuntu 在出现警告音的时候不是像 windows 那样亲切地 "叮叮叮", 而是才用 PC 的蜂鸣器来大声地 "嘟嘟嘟". 特别是在我们使用 shell 不全, 或者 vim 在行首/尾时候也会出现这个愤恨的声音. google 了一下找到了解决方法.
1. 就是干脆把 x 环境和 shell 环境通通关闭声音.
方法就是编辑你的 ~/.bashrc 文件, 加入
xset b off
2. 如果你像我一样只是烦恼 shell 下开发烦人问题的话, 就只要把 gnome-terminal 的 profile 中的那个 "终端响铃" 去掉就好了!
一直使用的是 ubuntu 的 linux 系统. 都说 linux 比 windows 快, 可是我就没有发现出来. 开了 firefox 感觉卡得要死了! 反正感觉都很慢... 无意间看到一个叫做 xfce 的东西, 就装了. 根据配置使用之后发现就是一个和 gnome/kde 一样的 X 环境. 不过我的机器从此"正常"的跑起来了. 内存占用及其小, 开什么都很顺畅, firefox 也没有过去卡了! 也许 firefox 针对 win 下真的做过很大的优化! 反正感觉就是好多了!
ubuntu 下使用 apt-get 安装 xubuntu 就完事了!
$sudo apt-get install xubuntu-desktop
奇怪... Ubuntu8.04 下我都没碰到这类问题, 倒是升级到 Ubuntu8.10 的时候 java 就出现乱码了~ 不说为什么, 因为我也不知道. 这里记录一下简单的解决方案:
1.
在 ${JRE_HOME}/lib/fonts/ 下建立个目录 fallback
比如我这儿就是
$cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/
$mkdir fallback
2.
在 fallback 里弄个中文字体(拷贝或链接都可以)
比如我这就是
$ln -s /usr/share/fonts/truetype/arphic/uming.ttf /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
3.
进入 ${JRE_HOME}/lib/fonts/fallback/ 执行 mkfontscale, 再把 jre/lib/fonts/fallback/fonts.scale 的内容加到 ${JRE_HOME}/lib/fonts/fonts.dir
我这儿就是
$cd /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
$mkfontscale
$cd ..
$cat fallback/fonts.scale >> fonts.dir
DONE!
羡不羡慕那些 rails 视频在 MAC OS X 下面帅气的自动跳出绿色和红色的自动测试提示呢? 当然如果你是 MAC 用户就不用羡慕了哈!(比如我就不羡慕嘿嘿) 但是大部分朋友都是 PC 呀! 没有 MAC 下的 Growl 作为 UI 提示工具怎么办呢? 没事啦! 这些我们都好解决, Ubuntu 下面我们可以用 rnotify 这个 ruby gnome 的消息提示工具. Windows 下我们可以用 ruby-snarl 这个消息提示工具啦! 当然还有 AutoIt 这类辅助工具! 这里我们先说 Ubuntu 这样的 GNOME 环境中的解决方案.
首先是安装 autotest, rspec, rspec_rails 三个插件
$sudo gem install autotest
$rails hello
$cd hello
$./script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec
$./script/plugin install http://rspec.rubyforge.org/svn/tags/CURRENT/rspec_on_rails
$./script/generate rspec
这样便安装好最基础的 BDD 环境了. 手动在你的 rails 目录下键入
$./script/autospec
这是这个自动测试不是在后台运行的, 因为他要显示信息嘛!
所以最小化这个终端窗口吧, 或者新开一个 Tab 来继续操纵你的 rails 应用.
就可以启动针对此 rails 应用的持续测试功能了. 让我们来试试看! 如何工作, 在终端中你的 rails 目录下键入:
$./script/generate rspec_scaffold post title:string
$rake db:migrate
$rake db:test:clone
看看你的那个自动测试窗口吧! (如果你的小机器不太快, 这个测试窗口还和原来一样, 那么稍等一会会, 他马上就运行咯!) 你大概会看到类似的结尾结果:

哈! 是不是很有成就感? (当时我满有的...) 呵呵, 但是这个只是在终端中看到的, 难不成要我们每次保存了新的东西都要光顾我们的终端信息么? Mac 下有 Growl 来做桌面 UI 气泡提示. 在 Ubuntu 这样的 GNOME 下我们可以使用 ruby-notify 来实现. 首先必须安装 ruby-gnome2 / libnotify-dev 和 ruby-libnotify 这些组件依赖. (其中 ruby-libnotify 需要手动安装)
$sudo apt-get install ruby-gnome2 libnotify-dev
以上安装好了 ruby-gnome2 和 libnotify-dev , 至于 ruby-libnotify 可以到其官方网站下载手动其源代码编译安装, 当前最新版本为 0.3.3, 在其下载页面我下好了 ruby-libnotify-0.3.3.tar.bz2 文件, 将其解压开好. 使用终端进入其目录中执行:
$ruby extconf.rb
$sudo make
$sudo make install
这样就安装好 ruby-libnotify 了! 其实就是用它来代替 Mac 下的 Growl 啦! 接着建立 ~/.autotest 文件并填入如下代码.
require 'rnotify'
require 'gtk2'
module Autotest::RNotify
class Notification
attr_accessor :verbose, :image_root, :tray_icon, :notification,
:image_pass, :image_pending, :image_fail,
:image_file_pass, :image_file_pending, :image_file_fail,
:status_image_pass, :status_image_pending, :status_image_fail
def initialize(timeout = 5000,
image_root = "#{ENV['HOME']}/.autotest_images" ,
verbose = false)
self.verbose = verbose
self.image_root = image_root
self.image_file_pass = "#{image_root}/pass.png"
self.image_file_pending = "#{image_root}/pending.png"
self.image_file_fail = "#{image_root}/fail.png"
raise("#{image_file_pass} not found") unless File.exists?(image_file_pass)
raise("#{image_file_pending} not found") unless File.exists?(image_file_pending)
raise("#{image_file_fail} not found") unless File.exists?(image_file_fail)
puts 'Autotest Hook: loading Notify' if verbose
Notify.init('Autotest') || raise('Failed to initialize Notify')
puts 'Autotest Hook: initializing tray icon' if verbose
self.tray_icon = Gtk::StatusIcon.new
tray_icon.pixbuf = Gdk::Pixbuf.new(image_file_pending,22,22)
tray_icon.tooltip = 'RSpec Autotest'
puts 'Autotest Hook: Creating Notifier' if verbose
self.notification = Notify::Notification.new('X', nil, nil, tray_icon)
notification.timeout = timeout
Thread.new { Gtk.main }
sleep 1
tray_icon.embedded? || raise('Failed to set up tray icon')
end
def notify(icon, tray, title, message)
notification.update(title, message, nil)
notification.pixbuf_icon = icon
tray_icon.tooltip = "Last Result: #{message}"
tray_icon.pixbuf = tray
notification.show
end
def passed(title, message)
self.image_pass ||= Gdk::Pixbuf.new(image_file_pass, 48, 48)
self.status_image_pass ||= Gdk::Pixbuf.new(image_file_pass, 22, 22)
notify(image_pass, status_image_pass, title, message)
end
def pending(title, message)
self.image_pending ||= Gdk::Pixbuf.new(image_file_pending, 48, 48)
self.status_image_pending ||= Gdk::Pixbuf.new(image_file_pending, 22, 22)
notify(image_pending, status_image_pending, title, message)
end
def failed(title, message)
self.image_fail ||= Gdk::Pixbuf.new(image_file_fail, 48, 48)
self.status_image_fail ||= Gdk::Pixbuf.new(image_file_fail, 22, 22)
notify(image_fail, status_image_fail, title, message)
end
def quit
puts 'Autotest Hook: Shutting Down...' if verbose
#Notify.uninit
Gtk.main_quit
end
end
Autotest.add_hook :initialize do |at|
@notify = Notification.new
end
Autotest.add_hook :ran_command do |at|
results = at.results.last
unless results.nil?
output = results[/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/]
if output
failures = $~[2].to_i
pending = $~[4].to_i
end
if failures > 0
@notify.failed("Tests Failed", output)
elsif pending > 0
@notify.pending("Tests Pending", output)
else
unless at.tainted
@notify.passed("All Tests Passed", output)
else
@notify.passed("Tests Passed", output)
end
end
end
end
Autotest.add_hook :quit do |at|
@notify.quit
end
end
然后呢, 这里有几个图片, 请你下载下来保存到 ~/.autotest_images 目录下(自己建立这个文件夹).

(注意哦! 文件名不要变哦! 分别为 pending.png pass.png fail.png)
打工告成! 你可以在 rails 工程目录里头执行:
$./script/autospec
不出意外的话你应该会看到如下结果

Tips:
1. ~/.autotest 这个文件可以定制 autotest 的运行.
2. ruby-libnotify 可以用于 GNOME 中作为消息提示.(注意哦! 用源代码编译安装哦!)