Browsed by
Author: YI

霸道的嘻嘻TV

霸道的嘻嘻TV

这两天忽然在嘻嘻TV以及各种官方网站上,看到铺天盖地的对苹果公司的批评。这些批评都是打着3.15旗号,个个都跟打了鸡血一样兴奋。

简单地看了一下内容,感觉很无厘头啊。苹果是一家公司,维护自己的商业利益没什么问题。例如,苹果iPhone维修后,国外是重新续保,国内只续保90天等,于是乎嗷嗷地叫国内国外两个标准。拜托,咱们国家自己定的标准是可以只续保30天,苹果已经高于国家标准,它只要遵守当地法律就可以了。这种情况下,应当首先问责国家的相关机构,为什么标准定那么低。再退一步,请问嘻嘻TV,国内哪家手机厂商的维修标准和服务水平是高于苹果公司的?至少可以在节目中对比一下吧?

而更让人晕倒的情节来了。若干嘻嘻TV的记者,在未得到允许、甚至明确拒绝的情况下,居然强行闯入苹果(上海)公司的楼层要求采访。这到底是谁霸道?商业公司没有拒绝采访的权利吗?嘻嘻TV想采访谁,就可以直接闯入进去采访,对方甚至都不能拒绝?嘻嘻TV是国家权力机构?自己懂不懂得什么是法律?以后我们是不是可以不需要国家工商机构等,只要嘻嘻TV就可以了?

既然是3.15,显然我们都被嘻嘻TV给代表了。黄浦江的猪肉汤有没有谁问责了?小孩上学难、甚至出生难的事怎么不去关心一下?一个商业公司的事,那么激动干什么?它要是产品不好、服务不好,消费者自然会用脚投票,您以为TA是中石油、中石化啊?对了,您怎么不去采访采访那些公司呢?那些才是老百姓更关心的事吧?

csdn的Disallowed Key Characters问题

csdn的Disallowed Key Characters问题

这的确是个臭名昭著的问题。CSDN即不是全国流量最大的网站,也应该不是技术含量很高的网站,可就是它长期以来一直有这么个问题,居然还发生在一个以技术信息为主的网站上,就象电线杆上的小广告一样,丑陋而顽强地存在着。

解决方法很简单,浏览器进入隐私浏览模式就可以了。

由此却进一步想到:CSDN往cookie里都写什么了?怎么就它这么招浏览器讨厌呢?

updated: 搜了一下网络,看起来不少网友也遇到了这个问题。而CSDN官方的答复居然是“升级路由器”!这个回答实在太无厘头了!

在apache中区分端口配置多个网站

在apache中区分端口配置多个网站

以下配置在kubuntu12.04版本中验证通过。假设有两个网站,分别配置在80端口以及81端口。

step1:修改/etc/apache2/ports.conf,增加以下内容:

NameVirtualHost *:81
Listen 81

step2:修改/etc/apache2/sites-available/default文件,增加以下内容:

<VirtualHost *:81>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/yi/work/mss_web
    <Directory />
        Options FollowSymLinks
        AllowOverride all
    </Directory>
    <Directory /home/yi/work/mss_web/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /home/yi/work/mss_web/cgi-bin/
    <Directory "/home/yi/work/mss_web/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

最后,重新启动apache2即可:

sudo service apache2 restart
wubi方式安装kubuntu12.04

wubi方式安装kubuntu12.04

wubi是Windows Ubuntu Installerer的缩写,意思就是在windows环境中安装ubuntu,即将ubuntu作为windows系统的一个应用程序对待。这种方式对初学者,以及不希望重新调整windows分区的人比较有用,而且这种情况下ubuntu的速度也很不错, 比虚拟机方式要快。

step1:从ubuntu网站下载kubuntu的iso软件包(例如:kubuntu-12.04.1-desktop-i386.iso),保存到本地,例如d盘。

step2:从该iso文件中,解压出wubi.exe文件,并与上述iso文件保存在同一个目录下。

step3:将上述iso文件更名为installation.iso (这点极为重要,否则wubi.exe会联网从ubuntu网站下载安装文件)。

step4:断开网络连接,运行wubi.exe开始安装。

后续包括重新启动等细节步骤, 不一一累述。

很赞的bootstrap

很赞的bootstrap

毫无疑问,bootstrap是个相当不错的前端框架,我们一直在用它 :-) 。个人感觉使用这个框架最大的好处是写前端界面很快,而且用户体验比较统一。显然很多人都有类似的观点,因此bootstrap社区居然隆重地推出了一个臭屁的网站来显摆各种最新、最好的、使用bootstrap的网站,请访问以下链接:

http://expo.getbootstrap.com/

Debian6中文乱码问题

Debian6中文乱码问题

最近安装最新的Debian6.06 Gnome版本,遇到一个奇怪的问题:选择中文安装,完成安装后重新进入系统,界面全是小方块,中文显示乱码。

经研究后发现,居然是没有安装中文字体,这是个多么奇怪的bug,选择了中文界面安装居然不安装中文字体!

解决方法也简单,安装中文字体即可:

apt-get install ttf-wqy-zenhei ttf-wqy-microhei

 

linode-VPS内核升级记录

linode-VPS内核升级记录

由于linode默认的内核(ubuntu10.04)缺省将SIP等协议过滤模块编入了内核,而且linode默认没有采用模块化的方式,因此被迫重新编译内核。linode提供了一篇文档指导如何使用自编译的内核,但是在细节上实际还是有不同,导致按照文档的步骤编译后,系统没办法启动。于此记录一下,以备后续需要。

采用linode的文档编译和配置,往往会出现以下一些错误:

i8042 no controller found
udevd[1077]: failed to create queue file: no such file or directory
udevadm[1816]: error sending message: connection refused.

第一个错误涉及menu.lst,在这个文件中,不能像文档那样,启动时携带’quiet’参数。

第二个错误与Ubuntu版本可能有关,需要人工指定/dev,需要修改/etc/fstab的配置(后续说明细节)。

基本步骤如下:

下载最新的kernel代码并解压:

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.7.6.tar.bz2

将系统原有的config导入到kernel源代码的目录下,同时根据自己的需要修改.config文档:

zcat /proc/config.gz > .config

顺序执行以下命令:

make oldconfig
make -j3 bzImage
make -j3 modules
make
make install
make modules_install

如果成功,应该在/boot目录下看到新生成的内核文件,例如vmlinuz-3.7.6等。

创建/boot/grub/menu.lst文件,添加以下内容:

default 0
timeout 5
title           Custom Compiled, kernel 3.7.6
root            (hd0)
kernel          /boot/vmlinuz-3.7.6 root=/dev/xvda ro

注意,Ubuntu版本可能还需要安装grub软件:

apt-get install grub

修改/etc/fstab目录,添加以下内容:

dev             /dev            devtmpfs        0       0

完成上述步骤后,修改linode中该node的profile,将kernel修改为pv-grub-x86_32,然后重启启动该node即可完成升级。SSH登录系统,使用uname -a命令即可查看新内核版本。

2013-07-19 update:

在编译3.9.x内核时,出现以下错误信息:

/bin/sh: bc not found

此时,安装bc即可:

apt-get install bc

 

网络慢时初步诊断方法

网络慢时初步诊断方法

在linux环境下,可以使用mtr跟踪各环节的丢包率。如果是使用Ubuntu系统,缺省应该已经安装了mtr,如果没有的话,可以使用下述命令安装:

sudo apt-get install mtr-tiny

使用mtr进行丢包率检查的命令也比较简单:

mtr --report 您的站点

例如您的网站是demo.com, 则命令为 mtr –report demo.com即可.

下面是最近一个测试报告,不解释。

HOST: ubuntuLTS Loss% Snt Last Avg Best Wrst StDev
 1. 121.15.56.1 0.0% 10 21.7 24.7 17.6 35.7 5.5
 2. 121.15.56.1 0.0% 10 19.6 23.0 19.5 39.2 6.1
 3. 113.106.45.61 10.0% 10 20.9 21.3 19.7 27.8 2.5
 4. 219.133.30.234 0.0% 10 21.0 20.7 18.7 22.7 1.3
 5. 121.34.242.226 10.0% 10 21.5 23.6 21.5 25.3 1.4
 6. 202.97.35.246 0.0% 10 24.0 24.2 21.4 28.6 2.0
 7. 202.97.60.90 10.0% 10 26.4 23.9 21.6 27.3 1.9
 8. 202.97.52.162 0.0% 10 189.0 191.5 187.6 200.7 3.6
墙升级了

墙升级了

对于一般浏览或者下载,进行以下测试:

从linode VPS下载一个文件,速度大约是4KB/s。

上传一个文件到linode VPS上,速度大约是110KB/s。

对于VPN,进行以下测试:

VPN时常无法建立;建立后时常断开;建立后时常无法正常打开网页。

Phonon程序无法播放语音文件的问题

Phonon程序无法播放语音文件的问题

问题基本情况如下:我们开发并发布了一个软终端产品,当然其中采用QT以及Phonon模块。在我们的开发环境中,一切都很美好,能正常地播放音乐。可是安装到客户的计算机上,出现问题了,无法播放提示语音(wav文件录制)。

这个问题的实质是我们没有将Phonon的插件一同打包进安装文件。Phonon实质上只是个前端封装模块,具体工作有赖于后台的解码器。在windows系统中,Phonon缺省采用DirectX作为后台解码器部分,具体实现为一个plugin。如果不安装这个plugin,则phonon无法正常播放语音文件。

假设QT安装在d:\qt\4.8.4目录下,则上述plugin可以在以下目录中找到:D:\Qt\4.8.4\plugins\phonon_backend\phonon_ds94.dll。

注意,不是简单地将这个文件拷贝到程序目录下即可,而是要拷贝到程序目录的phonon_backend子目录下。例如,我们的程序安装在d:\minisipphone目录,则上述dll应当拷贝为:d:\minisipphone\phonon_backend\phonon_ds94.dll。

另外需要注意的是,不同版本的QT要采用各自版本的phonon_ds94.dll,例如qt 4.6.2的程序就不能采用qt 4.8.4的phonon_ds94.dll,否则还是会出现放音错误。