June 19th, 2011

骑刷东方红隧道

  昨天傍晚临时决定的,恩,跟宿舍雄一起骑车去刷东方红隧道。好多单车大牛们都是在东方红那里做的小测试,妙峰山做大测试。

  距离上次刷798已经有段时间了,加上东方红的坡路小有挑战,还是比较激动的。7点多起了个早,然后去宜食家吃的早饭,三块五没吃饱啊,吃完后又买了个一块五的肉夹饼吞下肚哈哈,储备体能很重要。最后带了必需的装备,几块士力架一罐红牛一瓶脉动和一点零钱就上路了。

  长安街很宽阔,到了西边还有树荫,骑起来太爽了啊。路过中科院、五棵松、八宝山、一直到首钢就出六环。路上还遇到一群跑车,远观我们还以为是交通事故呢,走近了才发现原来是结婚的车队……太拉风了。。然后沿着六环走了会儿绕出去就是109国道山路了,坡还算比较缓和啊没什么劲,天气比较热,太阳很大,空气质量也不是特别好。要是昨天先去mm那里借她防晒霜来涂涂就好了。

  一路补了两次水,一直到传说中东方红的坡脚下,没经验的我们没有休息就直接爬这传说中的4公里的坡了。挑战真的来了,车档调到2×3,还是蹬的很吃力啊,都使出吃奶的力气了。半路在一个大石头的背阴面休息了10来分钟,然后终于一口气冲到东方红隧道了!隧道吹来一阵阵凉风,一个字,爽!

  回来时下坡就更加得意了,敞开速度溜坡,速度轻松飚上了49km/h!真是会当凌绝顶,一览众山小!最后路线没照原路绕长安街,而从阜石路直接回来的,这条路可能是新修好的,自行车道非常宽阔,而且旁边有树荫这是我最喜欢的了。

  几个数据:起点海拔53米,终点535米。用时5:50:04,来回全程116.12KM,正好是从我家开车到青岛栈桥的单程距离。不多说了,上图!

从北京邮电大学到东方红隧道_map从北京邮电大学到东方红隧道_earth 

从北京邮电大学到东方红隧道_海拔

  东方红隧道东方红隧道2

Tags: ,

March 23rd, 2011

对ssh和vpn代理服务进行二次中转的探讨

  现有北京和美国VPS各一个分别为VPS_BJ和VPS_CA,流量和配置都比较给力,xen虚拟化,从我所在的客户端直接访问北京VPS非常极速,但访问美国VPS有点偏卡,主要原因是我客户端所在的接入网不给力。另一方面,国内最近对https盯的很严,特别是对翻墙小白来说,访问Gmail等服务有点困难。人家方sir有6个vpn,俺不能比,俺只能把手头有限的几个服务发挥到极致。

  想法一:能通过53端口的OpenVPN蹭网,并且能蹭上后让翻墙小白无障碍访问Gmail等服务。做法是在VPS_BJ上搭建53端口的OpenVPN实现蹭网。然后在此VPS_BJ上另跑一个ssh -D进程连接到VPS_CA,实现动态端口转发,从而在VPS_BJ上创建了一个Socks5代理。客户端只要通过此OpenVPN蹭上网后,然后设置代理为VPS_BJ上创建的代理端口即可无障碍访问Gmail等服务。

 image

  其中VPS_BJ上的ssh进程参数是

1
ssh –CND 10.0.0.1:23 username@vps_ca

  这里有几点是需要注意的:首先,bind_address一定要写成VPN内网IP,这样Socks5代理就只在内网中有效,保证了这个代理只有连上OpenVPN后才能使用,极有效的防止了滥用。其次端口最好绑定一个1000以内的常见但不用的端口,如23 telnet,原因你懂的,不过绑定1024以内的端口需要root权限,谨慎操作。最后,为了防止这个ssh连接死掉或者网络故障挂掉,非常有必要结合inittab中的respawn或者自己写expect脚本实现ssh的自动重连,本文在此不做讨论。

  想法二:我从客户端直接ssh -D连接到VPS_CA有点卡,经常掉线很郁闷。希望VPS_BJ能在中间起个中转的作用,看似绕了一个弯,但实际上速度却更快。实现方法也非常简单明了,直接在VPS_BJ上起一个ssh -L的本地端口转发进程即可,千万不要忘了-g参数,以在所有的interfaces上监听被转发的端口:

1
ssh -g -L 7001:vps_ca:22 username@vps_ca

  之后从PC照旧ssh -D连接VPS_BJ的被转发端口即可。

image

  上述解决方案从VPS_CA通过ssh -R反向连回来也行,如下操作:

1
ssh –R *:7001:localhost:22 username@vps_bj

  需要注意的是,因为ssh -R也是默认只监听lookback这个网口的,需要修改VPS_BJ的sshd_config打开GatewayPorts,同时bind_address参数要写成*才行。

image

  显而易见,从复杂性上,反向远程端口转发不如正向的本地端口转发的方案。另外,上述两个方案也同样需要有对ssh连接进行断线或定时自动重连的考虑。

Tags: , , , , , ,

March 5th, 2011

Bicycle Driving to 798

  早晨10点多睡起来,宿舍的雄提议,骑车刷街去798,带头大哥和我立马响应,给力啊!这几天北京的天气不错,加上郁闷了一个冬天了,本来就特别想出去放放风。

  提前在Google地图上规划了路线。三环辅路的自行车道上经常停着机动车,而四环因为隔离出了独立的自行车道而且没什么停车,也没有三环堵,所以就走的四环,然后从四元桥沿机场高速走没多久就到798了。算了一下单程大概十七八公里,来回共35公里吧。

  去的路大半程都很顺利,特别是路过北辰桥时,速度可以提到30km/h多,温暖的阳光洒在路上,三个追风的男孩儿,非常美。从四元桥往京密路拐的时候颇费了些周折,因为路牌标识基本都是给机动车准备的,然后自行车和机动车道又是分开的,加上四元桥又拆成了东西两座桥。不过还好我们手机中有地图和GPS。

  798一如往常,各种艺术品,各种文艺青年,各种好车,在里面穿插逗留了大概一个小时左右,计划从原路返回。路过奥体中心时,总觉得这么回去还有点遗憾,雄又临时提议绕一圈奥体公园和森林公园,结果又是一呼两应,给力啊!

  果然给力,在五环上的一段和奥林东路上借着两个下坡,码表速度显示已经飙到了38.5km/h和39km/h,太刺激了!特别是第二段,我极力的加速,虽然仍然没有突破40km/h,不过已经非常cool了,后来mm说都快赶上她开车的速度了,哈哈。

  最后满足的回了学校,加上中间逗留时间,共费时3:52:35,极速39.0km/h,总里程52.47km,差不多正好从我们家到蓝村火车站的车程。感谢雄,感谢带头大哥,朋友神马的最给力!

bicycle_driving_798

bicycle_driving_798_sigma

January 7th, 2011

成功在CDMA手机中单独烧写另一张卡的EVDO鉴权码

  现有条件:水货Sprint CDMA无卡槽手机一台;中国电信手机卡两张,其中A卡查到了IMSI、ESN/MEID、Akey三码,B卡查到了AN-AAA两码;手机已写入A卡的三码,语音功能正常。目的:将B卡的AN-AAA写入手机,实现语音走A卡计费,EVDO数据走B卡计费。

  写号的工具无非CDMA Workshop、QPST、QXDM这三个,通常写IMSI、Akey时使用CDMA Workshop最方便,写AN-AAA时使用QPST最方便,最原始的清ESN/MEID什么的用QXDM这个比较高级的工具。

  1. 首先,手机中已经写入了A卡的三码,要上EVDO时通常都是用QPST,所以我们使用QPST先把M.IP这个标签页的NAI内容写好,注意都是写A卡的相关码,如下图:
    qpst_nai Read the rest of this entry »

Tags: , , , , ,

December 21st, 2010

高校创业小公司之小窥

  在北京,无数的写字楼,甚至无数的居民楼里,无数个小公司都在编织着无数个美好的创业的梦。接踵而至的互联网热潮、SNS热潮、移动终端热潮、物联网热潮,一遍又一遍的拍打着这些公司里创业者们的心。

  很多有高校背景的工科实验室的大小老板们,也纷纷加入了这个浪潮。既想要做一个学者,又想要做一个商人,这是一个总会萦绕在他们耳边的矛盾的课题。而我有幸(或者更确切的说是非常不幸),在读研这两年半,窥探和切身体验着这个环境。

  创新是创业者最原始的驱动力,一个别人没有想到的好点子,也许能让你的公司立刻受到众多VC甚至Google等巨头的青睐,从而一夜暴富;但也许,它也只不过是你的一厢情愿,市场不认可,风投不认可,甚至连自己的员工都不认可。不知道如何及时止损,死扛,然后注定的草草了事,在这个时代,成本未免过于高昂。为什么申请到的一千多万的纵向课题,甚至有可能比不上一个不盈利的开源OpenFetion给人更多的激情?为什么前者需要不断地拿钱才能去砸市场,而后者无需任何开销,就能有源源不断自愿为其做宣传、做test、做debug、做commit的热情网友?

  创新是创业的灵魂,但是创业的实体,还是人才。没有合适的人,再好的点子,也无力去把它变成现实,进而把它变成钞票。可以肯定,绝大多数未谙世面的学生,是无法完全理解到领导者的决心和信心的,他们还没有能力从更高的层面去宏观的观察整个创业活动,整个项目的运作,从而把自己摆正在对公司对自己最有利最协调的位置。更不幸的是,刚刚结束本科四年填鸭式教学的研究生,他们作为需要被拿去真正做实事的实体,连最基本的踏实的技术功底和知识面也没有。就好比做互联网的不知道腾讯TT浏览器和IE的关系, 做SNS的从来没上过Twitter/Facebook。没有基本技术和开阔眼界的积累,更如何让他们去学做管理并使被管理者信服?然而领导者们却并不一定认为这是在赶鸭子上架,而是美其言曰在挫折中成长。挫折是满了,成长有多少?成本又多少?用什么去衡量2年多的最美好的青春时光?

  要维持一个公司的运作,学生是自然无法扛大旗的。即使领导者极不情愿的最终肯拿出比较丰厚的待遇条件给社会应聘者,却仍然很难觅到合适的员工。那些技术积累好,眼界也比较开阔的应聘者,除了关心待遇外,还有非常重要的一点是公司的前景。尽管今天开得了很好的待遇,但也许明天这家公司就倒闭。这一点会让领导者非常受伤。也许七寸不烂之舌,可以忽悠倒国家自然科学基金,可以忽悠倒信产部,可以忽悠倒北京市科委,但是却忽悠不倒优秀的应聘者。于是没有办法,只能把拿研究生来当棋子,尽管研究生的产出值非常低,但是可以人海战术,同时自己也只需要付出相当低廉的成本,何乐而不为?

  创业公司面临的又一个窘境是,任务多而杂乱,同时资源却很有限,特别是人力资源非常有限。于是许多学生,今天被安排做这个,明天被安排做那个,无法在一段时期内专注于某个方面,从而无法真正深入到某种技术的精髓,更不必说满足自己的激情和信仰。这种朝三暮四的直接后果就是,许多地方本来需要搭建一个相对好一点的架构,都被匆忙略过了,因为时间赶,因为自己没有办法全面的宏观的来观察来思考这个项目,因为自己明天就要被安排去做另一个项目。大家都变成了浅层次的茫然的执行者,很少去思考代码如何优化、逻辑是否合理、架构是否清晰。一个团队连思考的时间都没有,如何去跟别的团队竞争?没有思考,哪来的进步?

  许多学生抱怨自己是导师的廉价打工者。这确实说了一件事实,但其实对导师也不公平,既然自己没有输出许多有价值量的东西,凭什么要求自己得到丰厚的回报?但是进一步想,造成这种事实的原因是什么呢,仅仅是学生不思进取?我想与其抱怨待遇少,我更赞成把这件事实的原因归结于,导师没有给学生提供一个适合他们的学习和生存环境。为什么学生贡献少,因为他们在现阶段技术储备少,正是打基础、学技术、开阔眼界的好时代,而创业公司却把他们当成招来就用、只让你埋头干活的员工,这个矛盾从一开始到后来就一直没有调和的机会,却如何去形成让学生能自给自足、让公司能蒸蒸日上的良性循环?

  从创新、人才管理、时间管理各种角度,高校实验室背景的小型创业公司也许并不适合研究生阶段参与,所以打算读研但没选好实验室的同学,烦请多多三思自己未来两年半的发展道路。如果不幸已经沦为了这个环境中的打工者,甚至更可悲的自己不仅没有思考的自由,还被以毕业延期为挟不被允许逃离去大公司实习,请更多多三思自己的未来前途。挤出点时间,深入的学习一下某门语言,多参与一点网上开源项目,多开阔一下眼界,争取毕业时也能自豪的说,研究生生活没有虚度。

  本文完成于读研第二年年中,本意是写篇不带感情色彩的日志,但实在难掩主观想法。把它当成我这个浮躁的研究生生涯前半段的总结吧。事物总是在变的,也许随着眼界的开阔和年龄的成长,我会完全改变自己的某些观点,也许我会有更深刻的理解,谁知道呢?

Tags: , ,

December 20th, 2010

开启Google Maps 5 for Android的矢量和离线功能

  紧跟Nexus S的发布不几天,Google就把革命性的Google Maps 5 for Android放到了菜市场上供下载。新版的应用包含矢量3D和离线两个最炫的功能(当然大陆是没有3D的啦),但是在我的Sprint Hero CDMA上更新后却无法开启这两个功能。很多网友同样也抱怨自己的机器有类似的现象。XDA上的大牛Brut.all给出的解释是一方面Google会根据手机类型、OS、网络所在国家决定一系列功能的开启与否,另一方面,许多旧机器硬件上(包括G1)是具备Multi-Touch功能的,但是被软件给锁住无法开启。

  还是XDA最给力,综合了几个大牛的指导,完美的解决方案如下:

  1. 首先手机必须要提权到root,这个不用多说。
  2. 接下来完全卸载删掉手机原ROM自带的或者手动安装的Google Maps(去/system/app和/data/app找找)。
  3. 然后下载安装Brut.all新修改的Maps 5应用
  4. 这里下载多点触摸补丁,解压缩到/system/etc/permissions目录下,并且设置权限为644。删除或者重命名手机里原有的多点触摸xml文件。
  5. Reboot。

  Google太给力了!不过我用WireShark抓包观察过Google Maps for Android与Google服务器之间的交互,尽管走的还是http请求,但是数据全部都是二进制的不可读的,跟Google Maps API完全没有任何交集。也许Google根本不想公开手机端的API。Anyway,现在终于能用上最新的矢量+离线功能了。

by

ny

Tags: , ,

December 6th, 2010

我要买辆指南者,涂满哑光漆

  终于把驾证学出来了,再也不用大清早的5:45起床迷迷糊糊的去赶班车了。8月底报名,9月中旬考的科目一,11月中旬考的科目二,12月初考的科目三。因为实验室考勤管的太严,只能周末去学,还算花的时间非常少了。期间除了学车,还长了很多见识,也遇到不少糗事,呵呵。

  之一:如果坐公交回,周围的风景是先是农村,然后城乡结合部,然后进城;车速是先很慢(因为农村路窄),然后狂飙,然后又很慢(虽然路很宽)。有一天还在等车的地方花8毛钱买了一个老太婆4个柿子,哈哈,太值了。

  之二:科目二考前集训时认识了几个要一起考试的学员。一个在华为的总代理那里做销售,可以用一时一刻电话不消停来形容,就不明白为啥这哥们不买个蓝牙耳机捏,多拉风。一个是在中国平安做证券,哥们十分能忽悠,不过能听出来其说话漏洞很多,但是他总是能自圆其说,不愧是做忽悠生意的。还有个女的,花了500,免考科目二直接过关,这年代有钱真是能使鬼推磨啊。还有遇到一个奇葩男,总是叽叽喳喳的问这个问那个,考试时也一样,最后终于如愿把考官搞烦了,没过。

  之三:因为自己图便宜,当初是在论坛上找了个代理让给推荐了个最便宜的驾校报的皮卡,事实证明确实比海驾东方时尚神马的值,看周围其他驾校的同学总是约不上车这个情况,感觉自己庆幸多了。这件事情告诉我们,买东西最贵的不一定是最好的,适合自己的才是最好的。

  之四:自学车开始,自己也开始关注车,从实验室下班回宿舍路上我都在留心路边停的车哪个装了倒车雷达哪个没有。加上宿舍里大黑和早睡带头大哥都比较懂车,平时经常调侃很多知识,确实学了不少。

  一直感觉学13楼下小超市老板开的那辆指南者灰常拉风,我真想也买辆,当然一定要涂满黑色的哑光漆,不知道什么时候才能在帝都有自己的车,当初的愿望都实现了吗?

Tags: ,

December 6th, 2010

实验室服务器被黑记(下)

  本来这篇文章写的差不多了,后来一直忙,存成草稿没有发,直到最近才想起这回事来。简单分析了一下被植入的脚本,才学疏浅,有误的地方请同学们多指教。

  让我们先来看一下植入脚本的文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
root@delleon:~/tmp# find . -printf '%y %p\n'
d .
d ./conect1
f ./conect1/autorun
f ./conect1/run
f ./conect1/bash
f ./conect1/LinkEvents
f ./conect1/start
f ./conect1/inst
d ./conect1/r
f ./conect1/r/raway.e
f ./conect1/r/rnicks.e
f ./conect1/r/rversions.e
f ./conect1/r/rkicks.e
f ./conect1/r/rsignoff.e
f ./conect1/r/rtsay.e
f ./conect1/r/rpickup.e
f ./conect1/r/rsay.e
f ./conect1/r/rinsult.e
d ./conect2
f ./conect2/m.pid
f ./conect2/autorun
f ./conect2/m.lev
f ./conect2/run
f ./conect2/alongi.seen
f ./conect2/.192.168.1.98.user.swp
f ./conect2/vhosts
f ./conect2/bash
f ./conect2/m.set
f ./conect2/LinkEvents
f ./conect2/xey.seen
f ./conect2/cron.d
f ./conect2/start
f ./conect2/m.ses
f ./conect2/inst
f ./conect2/update
f ./conect2/192.168.1.98.user
f ./conect2/192.168.1.98.user2
f ./conect2/mech.dir
d ./conect2/r
f ./conect2/r/raway.e
f ./conect2/r/rnicks.e
f ./conect2/r/rversions.e
f ./conect2/r/rkicks.e
f ./conect2/r/rsignoff.e
f ./conect2/r/rtsay.e
f ./conect2/r/rpickup.e
f ./conect2/r/rsay.e
f ./conect2/r/rinsult.e
d ./conect3
f ./conect3/autorun
f ./conect3/run
f ./conect3/bash
f ./conect3/LinkEvents
f ./conect3/start
f ./conect3/inst
d ./conect3/r
f ./conect3/r/raway.e
f ./conect3/r/rnicks.e
f ./conect3/r/rversions.e
f ./conect3/r/rkicks.e
f ./conect3/r/rsignoff.e
f ./conect3/r/rtsay.e
f ./conect3/r/rpickup.e
f ./conect3/r/rsay.e
f ./conect3/r/rinsult.e

Read the rest of this entry »

Tags: , ,