Browsed by
Author: YI

哦的神啊, 90天40万行代码

哦的神啊, 90天40万行代码

新闻链接: http://news.163.com/12/0604/11/835EHV450001124J.html

这个必须要记录 .

40万/90days=4K/day

每天代码量超过4K行! 这完全打破了我对软件工程, 对软件神人的一切看法. Bill, Linus等人与她相比, 也就是个P啊. 我军威武!

大家都是人, 怎么差距就这么大呢?! 虽然说现在码农越来越贱, 不过编程这种事多少还是需要一点思考的, 而我就算是每天打4K行字, 连续90天, 估计手也会抽筋吧. 看看人家神女! 仰慕之情悠然而生啊.

定时自动备份MySQL数据库

定时自动备份MySQL数据库

网上搜索的一些文章或者脚本, 在Ubuntu/Kubuntu中似乎都有这样或者那样的问题, 经过一番摸索后, 以下方式是可行的.

step1: 创建定时任务, 例如在早上1:30备份数据库. 编辑/etc/crontab文件, 添加内容:

30 1    * * *   root    sh  /home/yxh/cronDayBackupMySQL.sh

step2: 创建shell脚本cronDayBackupMySQL.sh. 要非常注意脚本中的标点符号(不得不说, shell脚本是怪折磨人的)

#!/bin/bash
currDateStr=`date +%Y%m%d`
mysqlBackFileName=mysql${currDateStr}
mysqldump -u root -p db_yxh --password=1234 | gzip > /var/backups/$mysqlBackFileName.sql.gz

其中, 数据库是db_yxh, 数据库root用户密码是1234, 备份的sql文件压缩存放在/var/backups目录下.

解压缩gz文件也很简单, 直接试用gzip即可:

gzip -d xxx.gz

 

基于HTML5的SIP客户端

基于HTML5的SIP客户端

项目名称是:sipml5,地址:http://code.google.com/p/sipml5/

该项目基于Google的WebRTC项目。这点与我以前写的一篇blog吻合,将SIP引入WebRTC不仅是可能,而且已经有人搞定了!

粗略地看了一下该项目的情况,界面是比较丑陋,不过看介绍应该是基本可用的。这是个好消息啊,尤其对企业用户而言,可能都不需要每个员工安装部署SIP终端,直接部署该终端即可,再结合云通信平台,整个系统都能简化不少。

如果该项目能覆盖Chrome, Firefox以及IE三个主要平台,基本就可以在实际环境中部署。非常让人期待啊。

修改button的宽度

修改button的宽度

缺省情况下,<button>根据button的内容自动调整自身的长度。然而在内容比较简短的情况下,我们有时希望button本身的长度要更灵活一些。常用的设置width属性的方法无法调整<button>的宽度,需要采用style属性进行调整,如下所示:

<button id="btnPrev" style="WIDTH: 6%"> < </button>
极其垃圾的D-Link产品

极其垃圾的D-Link产品

极烂无比的产品!极烂无比的技术支持!

在京东上购买了一款D-Link的无线路由器产品(带ADSL功能):DSL-2740EL(固件CN_2.10),想替换已有的TP-Link+ADSL拨号器,减少一个设备,想法很美好,过程很恶心,结果很郁闷。

替换后,能成功拨号上网。于是测试了一下公司的应用服务,噩梦开始了。

问题1:外网服务器(设置在美国)通過UDP5060端口向动态DNS的地址发包,没有收到。怀疑是网络问题,因此在服务器上抓包,发现已经发出了包。折騰了半天,未果。换回TP-Link+ADSL拨号器,内网计算机能成功接受到包。于是怀疑D-Link有问题,打技术咨询电话,答复一堆什么防火墙不对、端口映射不对、运营商过滤等等。我靠,根本就没防火墙好不好?! 端口映射不就一条虚拟服务器配置吗?!运营商怎么就不过滤TP-Link呢??扯了半天,最后转给一个所谓的开发人员,接着又相同的废话重新扯一遍。最后不了了之,没有答复。

最后外网服务器改成通过UDP6060端口发包,内网计算机居然就能收到包。这说明什么?这说明D-Link路由器内部肯定屏蔽了外网5060端口的数据包(推测可能因为5060是SIP标准端口,D-link屏蔽了该端口),或者该设备内部逻辑的确存在bug。又打电话过去,D-link人员就是不相信,又开始扯防火墙、运营商屏蔽、端口映射不对等废话。实在让人怀疑,他们可能不是技术有问题,而是听力有问题!

问题2:在问题1终于消停后,开始比较正式的应用。结果又出问题了。现在外网服务器能与内网计算机建立连接,开始正常工作。同一内网的其他计算机又不能通过动态DNS与该计算机建立连接了。用wireshark抓包,发现内网发给动态DNS对应的外部IP地址的包全部都返回“地址不可用”。也就是说,动态DNS对应的外部IP地址,只能在外部使用,不能被内部使用。这真是弱智!这样导致的结果就是:我们在外面工作时,要将应用地址改成动态DNS的域名,回到公司,又要改回内部IP地址进行访问。

不得已,又打电话过去,这次回答很干脆:不支持“端口回流”。我X!一个简单的路由而已,搞什么飞机,还“端口回流”,晕死!

吐血!不伺候了!换回TP-Link+ADSL,多一个设备就多一个设备吧,世界清静了!以后再也不采用D-Link的设备了,浪费了大量时间给他们作测试,还不讨好,悔死!

wine环境中字体平滑设置

wine环境中字体平滑设置

WINE中运行windows程序,发现字体都有锯齿,比较难看。google之后发现,设置注册表中的参数即可解决。运行regedit,然后修改以下值:

[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="2"

 

Kubuntu12.04中python的一点变化

Kubuntu12.04中python的一点变化

最新的12.04版本中,默认携带的python版本是2.7版本,并且在Ubuntu的库中不再提供2.6版本,因此如果使用了python2.6的开发库的程序,在新版本中必须要进行相应的调整。

比较简单的办法是做符号链接,例如:

sudo ln -s /usr/include/python2.7 /usr/include/python2.6
sudo ln -s /usr/lib/libpython2.7.a /usr/lib/libpython2.6.a
sudo ln -s /usr/lib/libpython2.7.so /usr/lib/libpython2.6.so

Linux中共享库的实现方式,虽然采用版本号能解决windows系统常见的DLL冲突问题,但是也不完美,遇到版本库升级,应用程序都必须要改动:要么改动配置文件或者源码,要么改动符号链接等。

对于python而言,由于可以分目录安装,并且共享库也带版本号区分,完全可以2.6和2.7共存,不知道ubuntu是出于什么考虑,去掉了对2.6的支持。

sqlite3记录的唯一标识

sqlite3记录的唯一标识

与Oracle类似,sqlite3提供了内置的ROWID项用于返回每条记录的ID。例如,下面的sql语句可以返回数据项及对应的ROWID:

select ROWID, groupID, description from tbl_hunting_group;

关于ROWID的细节信息,可以参考官方的说明文档:

http://www.sqlite.org/autoinc.html

呼死你,没办法解决吗?

呼死你,没办法解决吗?

在SINA上看到一篇新闻,大意是运营商认为没办法解决“呼死你”问题。原文链接如下:

http://tech.sina.com.cn/t/2012-03-11/14416824164.shtml

作为一名曾经的行业人士,我认为运营商的说法基本是睁眼说瞎话。国内任何一个C5局,都有黑白名单、呼叫过滤等功能,如果是华为的CC08交换机,更具有大容量呼叫过滤功能,掐掉这样的“呼死你”电话根本不存在任何技术问题,更不可能解决不了。

如果担心误杀,接到用户投诉时,查一下该用户的话单或者话务统计即可知道真相。

国内运营商的运维、管理水平、服务水平仍然非常低下,遇到一点问题,直接就回答“解决不了”,反映出这么多年来始终没有真正的服务客户意识,只是靠着垄断坐享其成。

网易开源镜像服务

网易开源镜像服务

我很少访问网易的web网站以及网易的相关服务,但是网易提供的开源镜像服务确实值得称道,其前身就是著名的cn99镜像。网站地址为:

http://mirrors.163.com

该镜像基本上对一些主流的linux发布版本都提供了镜像,国内访问的速度非常不错。并且它提供了一些在线帮助指导,在安装linux版本时,有很好的参考意义。这个地址十分诡异,居然是.help(在根目录下整了个.help文件? 为什么不直接是help呢??)

http://mirrors.163.com/.help