2011年2月28日星期一

如何建立自己的debian repository

    首先,感谢zigo的大力支持,并且贡献出他的源码,我才得以完成本文。其次,技术文,该散的可以退散了。
    很多时候,我们对某些东西比较有兴趣,所以会安装一下。debian系统下最熟悉的安装系统就是dpkg了。作为debian用户,我想用deb包来安装这些东西。这样会有以下的好处:
1.便于在多个系统上重复安装。如果是源码包编译,就必须每台系统安装好环境来configure/make install了。
2.便于拆除。如果是make install,能不能拆就看你的运气了。
3.系统可以管理依赖。包括自动安装缺失的依赖包,以及保持依赖包的固定等。
    关于打包,请看debian新维护人员手册( http://www.debian.org/doc/maint-guide/index.zh-cn.html )。本文主要是说一下如何将这些包变成一个自己的仓库。
    变成仓库,你将拥有以下好处。
1.不必自己去复制包,然后手工安装。
2.当仓库更新后,目标机器在update后可以发现。
3.你可以向仓库中加入自己定制编译的,更加新版本的软件。替换掉系统的同名软件,而不改变操作特性(除了没加key会碰到不安全提示)。
    其实debian的主系统是一个超级大仓库,通过ftp和rsync同步提供服务。我们的包如果够重要,也会享受到这种待遇。然而debian官方仓库的要求比较严格,你必须在文件级别搞清楚每个文件的授权,并且核对这些授权是否符合dsfg协定。你的包必须足够重要,有可能的潜在用户。多数时候,我们自己写的产品/库还没有这种待遇,因此只有自己做一个仓库了。
    zigo提供了他的打包代码,比我的功能全多了,大家可以参考这里( http://git.gplhost.com/gitweb/?p=mgmt-scripts.git;a=blob;f=scripts/scan_archive;h=db7647732b989b35ae7d8a48c80a48ecf67e4612;hb=0ff8fd7d0ba1991d552376f8beca0b46bfaa32e3 )。我根据这个脚本,自己实现了一个,放在这里( http://shell909090.3322.org/debian/scan_deb.py )。下面,我简述一下用法和原理。
    首先,你需要建立一个pool目录。在其中建立一些release目录。举例来说,wheezy是一种release,testing也是。但是目前testing是wheezy的别名,你用ln -s做链接指向就可以了。在release目录下,你需要建立category目录。例如main是一种category,contrib和non-free也是。
    在指定一个deb仓库的时候,release和category是必须指定的,可以被看作是一个仓库地址的一部分。
    建立完三级目录后,将你的包放在对应目录下。
    全部文件放好后,在根目录下执行python scan_deb.py。如果你需要自动签名,将最后一行的False改为True。在此前请准备好私钥。如果缺少某种架构,请修改脚本architectures一行。
    系统的基本原理是,在某个release, category, architecture下,对于pool/release/category目录执行dpkg-scanpackages操作,生成Packages文件到dists目录下,并且再生成一个压缩版本。
    对所有目录执行过操作后,使用apt-ftparchive来生成一个Release文件,这个文件指名了有哪些Packages文件,以及他们的MD5各是多少。
    客户端获得了Release,就可以知道某种release的特定几个category是否需要更新。更新到了Package,就知道有什么包,他们的meta信息是多少。最后对Release文件进行签名,就可以防止作假了。

2011年2月25日星期五

上海电信ADSL的劫持?

    刚刚跑去verycd转一下,发现verycd的页面又不能动。最近经常发生这样的事情,整个页面能看,但是不能点击和拖动。再次刷新后问题消失,并且只在家里出现。我开始以为是chrome的bug。
    刚刚不但又出现了这个问题,而且还弹出一个广告。我觉得不对,开源码看了一下。整个源码全是压缩后的js代码,然后用一个frame把http://www.verycd.com/?引用进来。再次刷新后,呈现出一个格式化过的正常首页。很明显,verycd本身是不会搞这种形态的广告的,他们大可在首页上加载各种广告,用不着搞得自己没法访问。
    刚刚的广告是卖电信天翼的,verycd公司在上海,服务器IP是中国电信的地址段,加上我的线路也是电信的,谁是最大的嫌疑者简直呼之欲出。不过同样的,这件事情没有证据,而且没有任何的采证可能。要证明电信劫持,就必须证明,在某次具体的通讯过程中,内容确实被调换了。要跟踪某次具体通讯,并且过程都是可采信的,这个难度可不低。再加上,必须证明只有电信可以劫持内容,就是说必须证明数据包在网络上只经过了电信的路由器,没有转发的可能。即使我和verycd都是上海电信的用户,也没有办法追踪某时刻的路由表,说明包必然没有被旁路转发。最关键的是,verycd本身根本不可能得罪电信来帮你做证。
    问题是,这样的http过程劫持可不可能被用于被用于其他网站呢?你的网络数据又会不会被拦截下来作为商用呢?电信是不是已经知道了你的电话号码,手机号码,你买了什么东西,乃至你的银行帐号和密码呢?

2011年2月23日星期三

linux下第二声卡的启用

    贝壳用的是debian testing,xfce。最近买了一个usb耳机,在windows下一切正常,但是linux下只有mplayer能工作。因为mplayer可以指定输出声卡,其他程序都是使用默认声卡的。而由于debian移除了alsaconf,因此连调整一下都不知道该怎么做。也许修改/etc/modprobe.d/alsa*可以解决问题,问题是,谁知道哪些资料是神马时候的呢?我最早甚至找到过01年的资料...
    后来,在zigo的建议下,我改用了pulse。zigo在linux下玩音频的,又是DD,怎么也算职业人士,推荐果然很给力。当晚我拿着usb耳机,很顺利的听到了youku视频。那一刻我热泪盈眶,感谢国家,感谢ccav,感谢zigo...
    做法如下:
# aptitude install pulseaudio pavucontrol
$ pavucontrol
    在输出设备页面,选择你想要的设备为默认。
    如果有部分程序还是不认,建立~/.asoundrc或者/etc/asoundrc.conf,内容如下:
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
    完了。

    补充一下,pulse的具体资料就不说了。大致上,pulse是一个linux的混音器。用于将多个音源发出的音频流混合成一个音频流播放。严格来说,音频设备属于独占设备,当一个软件发音的时候,其他软件应当不能发音的。这个有点类似于fifo,当两个进程同时打开fifo写数据的时候,目标只能得到碎片。
    pulse的作用,是产生一个可以被多次使用的音频设备,类似于unix socket。每一个进程的数据被单独的输入,然后混音,再输出到真实的物理设备上去。由此,多个音源同时发音就变成了可能。
    有人也许说,alsa原生也是支持多音源的阿。那是因为alsa内部带了一个很简单的混音器,叫做dmix。当然,pulse比dmix更加专业。

2011年2月22日星期二

gfw升级了?

    今天使用的主机上有个朋友发来消息,api用不了了。贝壳检查了一下,主机正常阿。
    最终,发现问题是这样的。
shell@shell-deb:~/tmp$ wget http://shell909090.com/apis/
--2011-02-23 10:08:39--  http://shell909090.com/apis/
正在解析主机 shell909090.com... 74.86.182.175
正在连接 shell909090.com|74.86.182.175|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 读取文件头错误 (Connection reset by peer)。
重试中。

--2011-02-23 10:08:41--  (尝试次数: 2)  http://shell909090.com/apis/
正在连接 shell909090.com|74.86.182.175|:80... ^C
shell@shell-deb:~/tmp$ wget http://shell909090.com/
--2011-02-23 10:13:36--  http://shell909090.com/
正在解析主机 shell909090.com... 74.86.182.175
正在连接 shell909090.com|74.86.182.175|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1156 (1.1K) [text/html]
正在保存至: “index.html”

100%[======================================>] 1,156       --.-K/s 花时 0s      

2011-02-23 10:13:37 (277 MB/s) - 已保存 “index.html” [1156/1156])

2011年2月21日星期一

EPIA主板经常死机问题

    十天死机三次,经过咨询,问题可能在电源或者DMA上。
    用iozone来压硬盘,一次没跑完就死机了,问题看来集中在DMA上了。
    在BIOS里面把硬盘的高性能模式关掉,再压,两次没死机。
    等三天,又死了。
    正在换主板。

2011年2月18日星期五

解决问题的艺术

    前几天的卖家打电话过来道歉了,听起来淘宝的投诉对他们是相当肉痛的一件事情。不过事情已经到这个份上,我花了无数精力下去,怎么可能凭三言两语就给你撤销呢。只是让我白骂一通。
    不说这个卖家的JP问题了,就说整个事情的处理过程。其中有不少反面动作,值得大家惊醒。
1.出错后的态度。
    这点那位卖家做的相当好,错了就认错。很直接的道歉,对不起,是我们的错,我们帮您解决。实话说,要没后面的一堆事情,我有心就这么解决掉了。人也没那么多精力去搞每件事情。
2.出了问题不到手足无措,也不要左右推脱。
    这倒和那位卖家没关系,是我在杭州招行文三路支行的一次经历。我去交水电费,他们交过去后,因为系统衔接问题(实话说,杭州的各个系统衔接做的真是——垃圾啊),不确定是否到帐。所以要找我解决一下,否则万一没交成,我回头发现,投诉信还不写到总部去。
    开始的时候是一位MM,可能是新来的,负责处理我的事情。从交钱的时候就一塌糊涂,我给的钱点来点去点不清楚,和我说话也是含含糊糊,我当是怕生。自己搞不清,叫来经理看,结果和经理讲话的时候也含含糊糊的,不知道怎么想的,居然来做柜面。结果我交一笔1600的钱,等了20多分钟才处理好,我都看懂了处理流程。算了,柜面也不容易,不要欺负新人了。等我上了杭州回上海的动车,才打电话告诉我有问题。说话还是交代半天说不清楚。没办法,只好找她们主管。
    他们主管的名字我现在还记得,叫徐安江,做事清晰利落。先和我道歉,说明是他们的问题,接口上有点问题,周一能查清。要是没到,让我来补交,如果到对方那里了,会发起退回,让我重交。就是要麻烦我一趟。我说这个我可以接受,不过这个水电费快到期了,滞纳金的问题么。他说,会和对方协商,争取免掉,有的话就做主补上。然后问,您有个杭州的账户,方便转回那里么?我说不成,那是我个人开的账户,万一老板误会个啥的。他说,好的,我们钱到了转回上海账户,中间手续费帮您免掉。
    我靠,这一下问题顿时解决。当然,如果换了柜面MM,补上滞纳金和免除手续费就不能做主了。但是前后的沟通实在是——新人勉强不来啊。
    等我回杭州,和他们约好了去解决问题。结果还是上次的小MM,又是一通问题处理不清楚。没办法,还是叫主管吧。我就碰到了她的主管。他跟我说现在交不了,要到周三再过来一趟。我说周三人都在上海了,是你们说周一让我跑一趟的,咋办?他很客气的说,那钱我帮你收着,给你写个欠条,说明事情原委,到时候你凭欠条来我这里拿发票。
    我靠,这话说的,我当场想写感谢信来着。最后事情多,把这茬给忘了。这件事虽然算是服务瑕疵,但是我仍旧认为招行在我碰到的银行里面服务排第二(第一是浦发)。
    碰到问题,首先不要慌,如果自己慌了,客户就不会信任你。当初我在碰到问题的时候,拿着客户的电话大喊,想起来实在是很业余。另外也不要左右推脱,尽力帮客户办好事情。客户的事情办好了,坏事也可以变好事的。
3.解决问题的时候别引起新的问题。
    春节后人忙,我能理解。过年盘账,我也能理解。说暂时到不了帐,客户不会马上翻脸。你哪怕给个折衷点的时间呢,客户也可以接受。但是9号说要查,查到12号说当天到,15号没到说明天,16号又没到。是可忍孰不可忍。事情做到这一步,要么你就拖着,然后等着客户投诉完了骂一顿,还得说你自找的。要么你就想办法的摆平客户。200不到的东西连借个账户先垫付一下转账安抚客户都不会,还开门做什么生意。
4.别到了解决问题的时候还没搞清问题在哪里。
    刚刚给我打电话的卖家小客服,到打电话的时候还没搞清退货流程。他还以为我申请退货,他点同意,我点OK,钱就回去了。我还得给他补课上退货流程,是我申请,他同意,我发货,他接受,完成。这TMD我出事后都自己看了一遍流程,他连流程都没去看,叫什么事啊。

2011年2月17日星期四

淘宝上的某个恶心卖家

    最近为了拼小机器,在淘宝买了这家(http://item.taobao.com/item.htm?id=3259889569 )的小机箱。由于我想装1T硬盘,因此提前查了,1T硬盘只有3.5寸,SATAII接口规格。所以我曾经问这个卖家的客服,你们的机箱可以支持3.5寸硬盘吧?这个尺寸的机箱普遍说不支持的,只有你们这里在参数中明确说明支持。客服答复我,支持。我说,你别光看页面参数,你确定。他说,我确定。
    所以我就下单了。东西到的很快,在春节时段,倒也难得。问题是——机箱质量什么的不说,这机箱压根不支持3.5'硬盘阿。
    我找客服投诉,你们卖的时候可是说好支持的。他查了一会,告诉我,对不起,不支持,您可以外接硬盘。废话,哥的硬盘比主板加机箱还贵,要外接还用买你的机箱?再说要外接我TMD当初问你干吗?没事逗闷子玩阿。我说我给你两条路,一条是想法弄个3.5'硬盘架给我,另一个是换。前一个比较简单,就怕机箱尺寸不符。后一个我是不会付来回邮费的,这是你们的错误,而且最终只有中评。对方问了一下老大,说这个机箱上不去3.5'硬盘架,而后一个这单他肯定亏,所以给我退货。TMD你亏我不亏,确认了能用的结果来一这玩意。搭10块钱退货不说,还浪费时间处理,老子TMD做咨询两小时足够再买个机箱了。
    退货就退货吧,我问对方,我发起请求了,你是先同意还是我先发货。他说,你先发货,哥们。好,我先发货了。过两天一看,改为已经同意退货协议了,总算了了一桩心事。过年闹个肚子,春节后再上去一看——已成交?
    喂喂,这算哪门子事儿阿。马上联系,结果改一个卖家的投诉帐号来处理这个事情。我问他,你们机箱没收到?他说春节刚过,人还不齐,所以要看看。我想想也是,春节刚过,事情一堆,也不忙于一时,就说,你慢慢查,我明天听回音。这是二月九号的事儿。十一号的时候我再催,说去年的帐存档了,财务要去查。十二号再问,说已经在处理了。

shell909090:(14:04:41)
您好,请问有消息了么?
候鸟信誉商城:投诉:(14:26:18)
财务已经在理了 确定后下午会打到你支付宝账户里
shell909090:(14:28:26)
好的,谢谢

    到了15号我上去买东西,顺手看了看——还没到帐。上去问了一下,说财务支付盾在重新重新申请,几天内都不能支付。

候鸟信誉商城:投诉:(16:03:24)
请您耐心等1-2天 财务那边有记录的 但是支付盾重新申请过了,这几天都不能支付
候鸟信誉商城:投诉:(16:05:45)
你放心好了 我们也不是小店 不会蒙你的
shell909090:(16:05:45)
实话说,这次退货问题,我是无责的
shell909090:(16:05:57)
好吧,这样
shell909090:(16:06:00)
我联系一下淘宝的客服
shell909090:(16:06:04)
听取一下他们的意见
候鸟信誉商城:投诉:(16:06:09)
可以
候鸟信誉商城:投诉:(16:10:27)
我问过财务了 最快明天下午可以支付

    我觉得有点不对,就算财务十二号当天转帐发现不能转,马上申请的话。淘宝和对方公司都在杭州呢,十五号怎么也申请到了。而且这家公司上来就坑了我一把,于是就多了个心眼,打给了淘宝客服去问问。客服MM建议我别等了,尽快做投诉。因为淘宝只开放15天的投诉维权接口,过后就关闭了,再处理问题就会更困难。得亏哥没信你们,信你们一回吃一回亏。下面是维权说明。

曾向客服询问主机是否支持3.5'硬盘架,客服很确定的告知支持。但货到后根本不3.5'硬盘,也无法改装硬盘架。因此要求全额退款。在春节前发现退款已经同意,因此将货物寄回。春节后发现变成已经成交,货款反复催促后仍未到帐。 

    投诉过后,对方是这样辩解的。

被维权人(候鸟信誉商城)的留言:
卖家于2011年02月16日 18:54:50不同意维权协议.
2011-02-16
被维权人(候鸟信誉商城)的留言:
当时是说好给你退的,我们点了同意退货,但是买家一直不点退货发货,最后退款自动关闭,年后因为跨年做账问题无法马上支付,要买家等等,聊天记录里说的清清楚楚,不用怕我们赖账的,没必要马上就维权,说了最快今天,最晚明天就给你支付到账上,请买家取消维权。

    首先,你让我TMD先发货你再点同意退货的,谁知道同意退货后面还跟着退货发货阿。欺负老子新手不成?前面不是说支付盾么?怎么这回又变成做帐了?不用怕你赖帐?我倒是不怕你赖帐,我怕你失踪阿。第二天再看,果然还没到帐。不过这次倒可能不是卖家的问题,支付宝总算给力了一把。

淘宝客服留言:
根据维权的内容,淘宝网已经从卖家保证金中扣除175元给买家,已经提交申请将卖家的保证金扣除到买家的支付宝账户,该交易款项将会在三个工作日内到达买家支付宝账户,请买家关注。淘宝及卖家一直在努力为买家提供安全愉快的购物环境,感谢对淘宝支持!
2011-02-17

    基本搞定了。

    事情还有个小插曲。沈崴沈游侠最近也在买小机器,很兴高采烈的给我推荐神板和神箱,我看完箱子的第一句是,箱子很给力,卖家不靠谱。然后让他向下翻一翻,我那颗大名正在买家列表里面呢。最神奇的地方是,这是春节后的事情,我都投诉了,但是网页上还是赫然写着——支持3.5寸硬盘——到现在都没改。估计我这篇要是看到的人多,兴许卖家会改了页面来找我算帐吧。

2011年2月15日星期二

上海地铁的安保想站到神马时候阿

    世博的时候就算了,世博过去,说要站到过年,也算了。过好了年还站着。查又查的不严格,撤又不撤。纳税人的钱花着没个说法,有没有搞错。

2011年2月14日星期一

nginx使用fastcgi连接django时的细节

    django使用PATH_INFO和SCRIPT_NAME来计算urls.py中的匹配路径,当两者都设定时,会出现URL计算结果为空,导致无法访问的问题。具体看这里。

2011年2月10日星期四

闹肚子找到罪魁祸首了

    现在全家闹肚子了,看样子是外婆的冰箱。数年不洗,生熟混用,而且还没有控温器,靠定时器工作的。。。
    亏我也能活到现在。

2011年2月9日星期三

蹊跷的闹肚子

    今年闹肚子了,上吐下泻。
    水样稀,吐出来的也全是水。吗丁啉不管用,黄连素管用,可能是肠道炎。
    奇怪的是,家里没人有事,女朋友家没人有事,我又没在外面吃过东西。
    真是奇怪。