正常从ubuntu 11.10升级到12.04后遇到的又一个奇怪问题:在用BANSHEE、RHYTHMBOX播放FLAC音乐时,经常会无故暂停播放,表现为音乐播放器停止在FLAC音乐的0时刻,若用滑动条往前拖动音乐的播放时间,仍然可以继续播放。 搜索后发现有人存在同样问题。
无解,故重新安装ubuntu 12.04到另外一个硬盘上,安装完后发现默认居然不能播放mp3,这倒是有解决方案:
sudo apt-get install ubuntu-restricted-extras
正常从ubuntu 11.10升级到12.04后遇到的又一个奇怪问题:在用BANSHEE、RHYTHMBOX播放FLAC音乐时,经常会无故暂停播放,表现为音乐播放器停止在FLAC音乐的0时刻,若用滑动条往前拖动音乐的播放时间,仍然可以继续播放。 搜索后发现有人存在同样问题。
无解,故重新安装ubuntu 12.04到另外一个硬盘上,安装完后发现默认居然不能播放mp3,这倒是有解决方案:
sudo apt-get install ubuntu-restricted-extras
在使用ubuntu 12.04 unity 作为主力系统进行使用(个人使用ubuntu linux已有5年以上),对当前版本的诸多问题发法牢骚,ubuntu牢骚之一:network manager无法管理单网卡的多个虚拟地址。
到目前为止,使用gnome里的网卡图形管理程序network manange管理网卡依然无法管理一个网卡的多个虚拟地址,如eth0,想要再配置一个内部ip地址eth0:1,在图形界面里就没有什么办法了。(但依稀记得很早gnome的网卡管理程序是没有这个问题的)
解决方案:
停止使用network manage管理网卡,使用/etc/network/interface进行直接管理。
sudo service network-manager stop
sudo nano /etc/NetworkManager.conf
将其中的managed=true改为false。
sudo nano /etc/network/interface
直接修改其中的网卡设置即可,然后重新启动网络。
sudo service networking restart
当然,若eth0:1仅为临时使用,那就可以直接使用命令行启动对应的网络,但重启后配置是丢失的。
好消息就是开发人员已经听到了群众的呼声,正在修改对应的程序。
之前元数据自动导出的xml文件,里面的汉字内容都是采用html entity来编码的,在浏览器里可以直接看到,但有时需要在console直接查找文本内容,这时就需要将这写编码后的文本进行转译,恢复成为之前的UTF8汉字,发现recode工具就可以完成这个工作。
cat *.xml | recode HTML_4.0 | grep ‘地貌’
还可以用php cli来完成:
alias decode=”php -r ‘echo html_entity_decode(fgets( STDIN ));’”
$ echo ‘Hello, & world! "’ | decode
Hello, & world! “
postgresql可以支持数组,这点在有些时候很有用,但在查询搜索时要注意方法使用,因为数组和集合(行)不同,查询时一般不能直接使用子查询而要使用join。
1. any(array)的使用
select * from dataorder d left join datasource ds on d.uuid=ds.uuid left join source s on ds.sourceid=s.id where d.uuid=any(s.exclude_data)
2. all(array)的使用
要查询上述相反的数据,就可以使用:
select * from dataorder d left join datasource ds on d.uuid=ds.uuid left join source s on ds.sourceid=s.id where d.uuid<>all(s.exclude_data)
reference
1. http://www.postgresql.org/docs/current/static/arrays.html
之前在ubuntu服务器上一直使用vmware server作为虚拟化方案来模拟几个windows服务器,主要是asp的web服务器。但ubuntu升级到12.04之后,发现vmware server彻底罢工了,网上搜索后,发现vmware server在2011年就已经停止支持了,因此需要转换到其他的虚拟方案。
我在ubuntu desktop上也一直有使用virtualbox方案,感觉也还是蛮稳定的,但在服务器上一直没有考虑过此方案,因为服务器上多数情况下都没有安装X Windows支持,但搜索后发现新版本有VBoxHeadLess方案,即其可以不需要对应的X支持。
安装: 除了安装virtualbox之外,还要安装它的extpack,否则vrdp等功能是不起作用的。
cd /tmp
wget http://download.virtualbox.org/virtualbox/4.1.14/Oracle_VM_VirtualBox_Extension_Pack-4.1.14-77440.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.14-77440.vbox-extpack
因此先在台式机上进行测试:
1. 首先拷贝对应的vmdk文件,然后转换为virtualbox的vdi格式
注意在转换格式之前,应该首先在vmware server中移除vmware tools,否则转换后不能启动,只能作为硬盘读取。
VBoxManage clonehd xxx.vmdk xxx.vdi
2. 然后创建一个新的vm文件
使用图形界面创建也可,也可以使用命令
VBoxManage createvm –name “win2003″ –register
VBoxManage modifyvm “win2003″ –memory 512 –acpi on –nic1 bridged –bridgeadapter1 eth0
VBoxManage storagectl “win2003″ –name “IDE Controller” –add ide
VBoxManage storageattach “win2003″ –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium win2003.vdi
3. 启动对应的vm
VBoxHeadless –startvm “vm_name” –vrde=off&
后面的vrde参数是强制关闭远程链接,我觉得不需要,不加此参数则默认开启主机的远程桌面链接3389端口。
好像有较长一段时间了(愚人节之后?),即在timemap浏览时,地图会变为奇怪的8bit颜色,而不是常见的地图形式。经检查,在timemap中,默认的地图类型为G_PHYSICAL_MAP,而在ditu.google.cn中直接浏览则没有问题,所以修改地图类型为mapType:G_NORMAL_MAP即可解决此问题。
postgresql数据库通常都限定了远程用户访问时的IP地址,因此在出差的时候若想访问数据库服务器就可以使用ssh tunnel来代理登陆。
命令也很简单:
ssh -L5432:dbmachine:5432 username@remote_ip
其中,dbmachine为远程数据库所在的服务器所在的IP地址,前面的端口号为本地所用的端口号,后面的端口号为远程数据库所使用的端口号,remote_ip为可以访问数据库服务器的机器。
然后就可以使用pgadmin或者psql来远程访问数据库了:
psql -h localhost -p 5432 -d dbname -U username
服务器升级到ubuntu 11.10后,经过一段时间的运行,突然发行服务器巨慢,很多软件的log里都提示内存不足,无法fork新进程。远程登录上发现其中有一个进程fuser,占据了大部分的CPU使用时间。
网上搜索后,发现了是PHP5中运行一段时间后会在CRON中执行一段代码而导致产生的问题,在12.04版本中应该已经修复。
具体可以参加以下几个链接:
1. Fuser high CPU usage
2. fuser forking uncontrollably in cron job
修复办法:
直接修改/etc/cron.d/php5文件,让其恢复为11.04的处理方法:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete
当然,也可以等待12.04发布后升级psmisc包。
ipad上的goodreader是一个很好的pdf阅读软件,也支持很好的注记功能,但ipad上修改完后的pdf文档也需要同步到mac、linux上,这时就可以用unison软件来进行双向同步了。
同步方法:
1. 在goodreader上打开wifi设置进行共享
2. 在mac上打开unison,新建一个同步文档,或者在终端直接编辑对应的文件:
vi ~/Library/Application Support/Unison/goodreader.prf
# Unison preferences file
perms = 0
ignore = Name *~
ignore = Name *.o
ignore = Name *.tmp
ignore = Name .DS_Store
root = /Users/wlx/Documents/paper
root = /Volumes/wlx-ipad.local/My Documents/paper
3. 运行unison,选择此文件进行同步
主力服务器升级到最新版本的ubuntu后,postgresql变为9.1版本,而另外还有一台服务器还没有升级,还是默认的8.3版本,同时9.1版本的postgresql中默认还有一个视图是通过dblink连接到8.3版本的postgresql上的,结果这几天发生了很奇怪的问题,即在这个视图上有个字符串字段,里面包括了一些Windows硬盘的目录信息,如:D:\ftphome等,而升级后发现这个目录信息会变为:D:\x0c之类的信息。
经检查,是postgresql在升级到9.1后,有一项特性发生了改变:即\不再作为默认转义符号了,除非你使用E前缀声明指定。而8.3版本和9.1版本二者的默认方法不同,导致了在9.1的视图中产生的正确结果到8.3版本的库里发生了变化,而导致信息不正确。
解决方法也很简单,修改8.3版本的postgresql.conf文件:
standard_conforming_strings=on