刷了一门选修课

今天早上上完第一节课回来上网选课。RP 不好,两门选修课都是要抽签的。忐忑地点击了“抽签”那个链接,结果第一门抽中了,第二门课没有抽中。但是这第二门课是我很喜爱的《庄子》导读,居然没有选上让我好生郁闷。

不得已,想起来之前打算用 Java 做一个选课工具,直接像浏览器那样处理 Cookie,登录,然后用 HTTP 请求去选课。至于被发现的问题,其实只要频率不是太高问题就不大。

说干就干,上 www.jetbrains.com 去下载 IntelliJ IDEA,发现已然是 8.0.1 版本了,下载回来装上,IDEA 还是一如往前那样好用。再去 Apache Software Foundation 下载他那出名的 HttpClient,有了这个东西就能自由地处理 HTTP 协议了。

去年给 Daniel 干活的时候在 Android 平台上用过 HttpClient,所以这次写一个选课的小程序还是比较容易的。Coding 加上 Debugging ,不到两个小时就搞定了。

中午去吃饭的时候跑了一段时间,一共发了 700 来个 Request,没有选上。看来还没有人在这个时间退课。下午 3:10 的时候困了,爬上去睡了一会儿,睡之前把程序打开了,后来醒来一看,在第 265 个 Request 的时候已经选上课了。很好很强大。

自己把笔记本的电源问题搞定了


(此文中的图片托管于 Google Blogger,在国内访问可能无法显示,你懂的)
偶的笔记本是 TOSHIBA Satellite M19 Pro,购于2006年3月。买来之后头两年用起来还正常,到后来就问题不断。最让人受不了的地方有两个:一是笔记本的屏轴,由于屏轴过紧(可能是没有润滑油了)导致转动不灵活,时日长了就把屏轴处的塑料挤坏了。最早是左边的轴出问题,现在右边的轴也不好使了。屏轴这东西修起来要换整个屏幕外壳,代价太大,不管了,现在将就一下还能用。另一个是笔记本的电源接口。前两年也是没有问题的,有一天突然用着就断电了,我还以为是电源变压器坏掉了,后来调整了一下电源接口的方向就好了。从此开始了电源接口接触不良的历史。

今天下午去上杨老师的结构概念设计,带着电脑跑过去。把电源接到浩浩的接线板上,笔记本电源灯不亮,按以往经验调整了电源接口,还是不行。看来是它的大限到了。

回来之后,自己打开工具箱,准备把电脑大卸八块,自己拆下那个电源模块,然后找修手机的人焊一下那几个接触不良的触点就OK了。

之前没有拆过笔记本电脑,所以开始的时候倍加小心,总算是没有白费我苦心,终于把整个电脑拆开,弄到了需要修理的电源模块。然后拿到紫荆12号楼的小电器维修处让师傅帮助焊了一下触点(还没有收钱呢),高高兴兴地跑回来装好电脑,终于能用了。

下面放几张拆电脑的图上来:

拆机第一步,把键盘上面的那个小横条拆下来。不少笔记本都是这样开始的。
小横条拆下来之后就可以拆键盘了,这是键盘拆下来之后的模样。
左边的掌托也被拆下来了,露出了无线网卡和集成的 Modem
把连接线小心地断开,就可以把屏幕与机身分离开来了,为下面的拆解做好准备。
机身上面板被拆开,可以看到整个机器的电路结构了,左上方那一小块是我要拆的电源板。
好了,这就是我要修理的电源板。坏掉的是AC电源接口,就是那个黑色的方形物体,实际上把它下面的元器件脚重新焊接一下就好了。
这是拆解完成以后的螺丝,大大小小、形色各异,装的时候要有良好的记忆,不然就装错了,甚至是少装了,后患无穷。
THE END

网络学堂可以迟交作业

(此文中的图片托管于 Google Blogger,在国内访问可能无法显示,你懂的)
很早就发现了这样一个漏洞,这次把分析和实践过程都偷偷地写出来。

事先声明:本人以研究性的目的撰写这篇文章,目的不在于教唆大家晚交作业。至于您依本文操作产生的一切后果和责任请自负。此 BUG 已反馈给学校计算中心网络学堂开发人员并得到修复。

从原理上讲,网络学堂的提交控制现在有两个地方。第一个地方是课程作业那个表格最右边的“提交作业”按钮,如果过期了服务器会在 HTML 页面中把这个按钮禁用,变成不可点击的。这样就无法打开提交界面。然而实际的链接是在源代码中可以看到的,这样就毫无安全可言。

第二个地方是在提交界面上。本来这个控制是没有的,也就是说把第一个限制突破了就可以提交作业。但是第一个限制的突破太简单,稍微学习一点网页制作的知识就能搞定。所以后来就加上了这个限制。

这个限制的实现原理是这样的:服务器会判断当前的时间是否已经过期,如果是,则在返回的页面中加入了一个 JavaScript 的语句,当你点击“提交”时就会调用

function submitcheck() {
  if(0==0){
    alert("现在已经超过了提交作业的截止时间。请与任课教师联系。");
    return false; }
}

结果就是跳出来一个消息框,告诉你已经过了截止时间,然后残忍地返回 false 终止提交。

当初我面临这个问题时,也想了好久应该怎么绕过。最先想到的是去分析 JavaScript 的提交过程,然而它这个提交是一个模块化的东西,还带有一个图形的上传进度条,分析起来并不容易。后来,我把目光集中到那个“if(0==0)”上面。正因为有这个,说明这个是由 JavaScript 控制的。而 JavaScript 本身的本地执行特性又决定了这一点其实是可以更改的。所以,突破就在这儿找到。

好了,理论原因分析做完了,现在该进行实践了。毛*主*席说过“实践是检验真理的惟一标准”,且让我们来试它一试。

工欲善其事,必先利其器。事先的 requirements 还是必须达到的。这里的要求很简单:要绕过第二个限制,必须使用 TheWorld 浏览器。它的下载页面是 http://www.ioage.com/cn/download.htm 下载的时候选择“绿色版”即可。

启动 TheWorld 浏览器,打开网络学堂。选择你要提交作业的课程,选择左边的“课程作业”那一栏。在右边页面的空白处点击鼠标右键,选择“查看源代码”,如图所示:

这样就打开了网页的源代码。看得懂的人在这儿一下就能明白。看不懂也没事,方法是固定的:选择“编辑”,“查找”,在查找框里输入作业的名字,比如“第三周课后作业”,就定位到了相关位置。在这一行再往下用目光搜索,可以看到“onclick=”javascript”这样的代码,喏,这就是我们要找的链接。把双引号之间的内容复制一下,然后贴到网络学堂的地址栏中,回车,就可以打开熟悉的提交页面了。这一步如图所示:


看到提交页面之后,第一关就算过了。第二关比较麻烦一点,需要用到 TheWorld 浏览器的“广告过滤”功能,这个功能本来是对付广告的,但这回用到解除限制上也非常之好用。在 TheWorld 浏览器中选择“工具”,“广告过滤”,“广告过滤选项”,如图:


在设置页面中找到“自定义过滤器”,勾上“使用黑名单过滤”,在下面的大框中填上一行“#ex#0==0###0==1”(不含这儿的引号),然后点击左边的“应用”即可。

回到提交作业的页面,按 F5 刷新一下(目的是为了使刚刚设的过滤器生效),然后就可以偷偷地提交作业啦。

别了,T79/80

最熟悉的一趟火车要停运了。因为今年的铁路第六次大提速,T79/80这一列往返于京武之间的最后一趟以座位为主的特快列车就要离我而去了。自己虽然每次乘坐时都会因为它的拥挤而满腹牢骚,并扬言以后再也不坐这车了,实在是太挤,不如多花点钱去坐夕发朝至的Z77/78这趟车,毕竟是卧铺。可是牢骚归牢骚,T79/80却是再也没有机会乘坐一次了。据铁路消息,目前京汉之间白天运行的快车只剩下抢钱的“和谐号”(又名喝血号)动车组了。说实话我还真不稀罕这玩意儿,有直达特快就够好的了。况且动车组是白天乘坐,光是坐位与卧铺就没得比,况且还要贴上白天宝贵的光阴,我看是不划算吧。
T79/80这一个宝贵的车次看来是不会取消的了,据说会改跑汉口到广州。这样也不错了,至少增加了南下的运力。之前它的兄弟T77/78次汉口到北京西升级到Z77/78次直达特快以后,车次就转手让给青岛到北京的车了。还有传说中的武汉局王牌车37/38次,升猪以后T37/38竟然被柳局拿去跑深圳到桂林了,浪费一个好车次!
感叹这么多,有什么用呢。该撤的还是要撤的,暑假回去真的没车坐了,傻等Z77次……