• The New Yorker挺好看的,但电子版的Free Preview只能连续看三期,而且只能看当期。期数限制每次注册个新帐号就好了,但只能看当期只好每期都保存下来留着慢慢看了。

    电子版的布局是这样的:


    分为左右两页,单击可放大。使用FireBug检查元素,发现每页是通过层用两幅图片拼起来的:颜色丰富的jpg作为背景,主要是文字的png叠放在上面(大概是为了减小文件大小吧):


    比如下面这页ad:

    其实是以

    为底,覆盖其上组成的,其中第二个为底色透明的PNG图片。


    从FireFox缓存里把所有图片拖出来,一共有108x2张图片。研究了下PhotoShop安装文件夹下的Photoshop CS3 脚本指南.pdf,写出如下脚本,使用PhotoShop依次组合图片并保存为PDF文件:

     

    var nyPath = "C:/NYer/";

    for (var i = 1; i <= 108; i++)
    {
      // 格式化页码
      var pageFormat = "0000000";
      var pageNumber = pageFormat.substr(0, pageFormat.length - i.toString().length) + i;
      var bgImageDoc = open(File(nyPath + "page" + pageNumber + "_big.jpg"));
      var fgImageDoc = open(File(nyPath + "page" + pageNumber + "_big.png"));

      // 将前景PNG图片模式改为RGB模式,不然无法复制图层
      fgImageDoc.changeMode(ChangeMode.RGB);
      // 将前景PNG图片第一个图层复制到背景图片中
      fgImageDoc.artLayers[0].duplicate(bgImageDoc);
      // 将背景JPG图片文档设置为活动文档,便于合并图层
      activeDocument = bgImageDoc;
      // 合并图层
      bgImageDoc.artLayers[0].merge();

      // 将修改过的背景图片保存为PDF文件
      pdfFile = new File(nyPath + pageNumber + ".pdf");
      pdfSaveOptions = new PDFSaveOptions();
      // 不保留PhotoShop编辑功能,不然生成的PDF文件会非常大
      pdfSaveOptions.preserveEditing = false;
      // pdfSaveOptions.layers = true;
      bgImageDoc.saveAs(pdfFile, pdfSaveOptions, true, Extension.LOWERCASE);

      // 不保存修改
      bgImageDoc.close(SaveOptions.DONOTSAVECHANGES);
      fgImageDoc.close(SaveOptions.DONOTSAVECHANGES);
    }

     

    使用PhotoShop文件/脚本/浏览执行之,等待几分钟,PhotoShop生成了108页PDF,然后直接在IDLE用pyPDF把它们合并起来:
    >>> from pyPdf import PdfFileWriter, PdfFileReader
    >>> output = PdfFileWriter()
    >>> for i in xrange(1, 109):
     output.addPage(PdfFileReader(file("C:/NYer/%07d.pdf" % i, "rb")).getPage(0)) 
    >>> o = file("C:/out.pdf", "wb")
    >>> output.write(o)
    >>> o.close()

    得到20多M的最终成果,和网上发布的电子书很像啊~

  • Lingoes(2.5.3beta)又要强行升级了:

    这意味着我又要重新装一遍词典,词典的安装文件早就被删了,尝试破解之。

    修改资源无果,在MFC的MessageMap密林里徘徊许久后忽然发现还没试过修改时间这个最基本方法。于是将系统时间调回一个月,竟然不提示过期了……好吧,Lingoes本来就是免费的,不需要啥保护措施……

    OllyDbg载入,Ctrl-N打开导入表,下断唯一和时间相关的函数MSVCRT.time,F9执行。

    中断在处理词典文件的loop处,取消此处断点,F9中断在0045A45F,在IDA Pro中绘出所在过程的交叉引用:

     

    很清爽啊,回溯到sub_468E90,在call sub_45A3B0后刚好跟着个经典的test-jz,一个分支刚好调用CDialog::DoModal:

    在OllyDbg中将jz改为jmp,保存到可执行文件,执行Lingoes,不再有过期提示。

  • http://www.f-secure.com/weblog/archives/00001669.html

    & excerpts from http://www.usatoday.com/tech/news/computersecurity/2009-04-22-captcha-code-breakers_N.htm

    Human captcha-solvers work piecemeal. They have shown up in Internet cafes or in sweatshops filled with Internet-connected PCs in China, India, Russia, Brazil, Argentina and Nigeria, working long shifts deciphering streams of characters forwarded by an unseen coordinator, researchers say.
    ...

    The job description as translated by Shevchenko: "Your new job is printing English text that you see in the pictures. (Images of captchas were shown.) All you need is to know English alphabet and know where the keys are located on a keyboard. For every correctly entered word you will receive up to 1 cent, depending on the level that you have achieved. Your only limit is your typing speed. Every minute, you'll be able to correctly type the text from 10 pictures on average. Thus, with an average price of 0.5 cent per one correctly typed text from a picture, your salary will be 3 US dollars per hour."

  • 写了两个Greasemonkey 脚本,用来批量提取 UC Berkeley Webcast 视频地址和 IEEE Journal 的 PDF 文件地址。

    使用效果如下:

    单击 Extract mp4 links:

    IEEE类似:

    得到地址后随便 Flashgot 或 wget -i。

    附上俩脚本:

    IEEE.user.js&UCB.user.js

    就是不知道现在还有多少人在用 Greasemonkey 啊……

     

  • 好吧,我记得高中还是初中做阅读理解出现过这个词,而且我也一直把“现在是知识爆炸的时代”当作默认的公理。

    可是现在想想,觉得这玩意实在是比“云计算”,“云安全”之类的还遥远。

    可能是因为咱是80后,开始上学那会,知识已经爆炸完了。

    也可能是知识实在没什么可爆炸的,essence 就那么点,剩下一圈一圈的都是衍生,而且越衍生越没意思。你看现在网络多发达,资料多多,可是要真等你想用起来,却发现大多数都是信息量极低的垃圾。

    (这个跟那个英语构词挺像,乍一听跟英语真有多少单词似的……)

    所以研究数据挖掘、语义网之类的应该比研究怎么提升学习能力有意义的多(我是说研究)。人这个大脑都开发几千年了,也不见得现代人就比古代人聪明哪儿去。

    而对网络的这热乎劲应该是还没过去,估计等过去后才发现咱对网络的期望值都太高了。

    瞎想想先,这问题有空得好好研究研究。

    P.S. 今天同学看电影问我哎考研的那个左派右派都啥意思,我竟然没想起来……我现在究竟是啥个状态==

  • http://map.jiangnan.edu.cn/

    弄的跟 Google Map 似的,有些地方(用红点标出来的)拍了全景,可以像 Google Map 一样拖动的。玩了会,觉得鼠标太灵敏了,一不小心就拖跑了。而且估计是用照片合成的,只能站在一点观察周围的景物,不像 Google Map 可以四处移动(毕竟人家比较有钱==)。

    对俺们学校还存有美丽幻想的同学请观赏下列组图:

    首先是俺们住的桃园,视角有点扭曲。

    然后是北大门和……庙




    这个是小蠡湖,南北区之间的分界线,还有那个无比猥琐的图书馆(没错,最高的那个)


    图书馆后面有块“学海无涯”的……石头,经常被误读为“苦海无涯”

     

    以后再有人问俺们“xx楼在哪儿”,俺们直接说“去搜索一下吧”……


    右上角还有几个莫名其妙的按钮和……“三维校园地理信息管理系统”,呃,原来“三维”和 GIS 就是这个样子啊,微囧

     

     

     

  • 出了南大门便是了。

    正面:

    背面:

    上学校非官方论坛,被 FireFox 阻止了,说是“已报告的攻击站点!”。好奇看了下,是利用 Microsoft Office Snapshot Viewer ActiveX,RealPlayer 10/11, Flash Player 9 和 迅雷的几个漏洞挂马的。比较令人在意的是有针对 FireFox 的专门攻击代码:

    if (window.navigator.userAgent.indexOf("F"+"i"+"r"+"e"+"f"+"o"+"x")>=1) {
        document.write ("<iframe src=f2.html width=100% height=100% scrolling=no frameborder=0>")
    }

    f2.html 是利用 Flash Player 9 某漏洞的攻击程序。

    所以呢,就算是用 FireFox 也尽量要把 Flash 关掉,推荐Flashblock 插件 。

    另外今天在参观软通动力时同学检测了下公司里的无线网络,注意到两个加密网络,一个用的 WPA/PSK 认证,一个用的 WEP。用 WEP 的那个从 SSID 上推测应该也是附近的某公司,不知道是哪家那么不小心……

    在这个学校学了三年多信息安全,反倒是离安全越来越远了,靠了过去的基础才保留了一点点对于安全的敏锐,看看现在的自己,真不知该有什么感觉才好。虽说好多人总是在强调重要的是能力,不是大学,可惜说这种话的大部分出身都还不错,而这句话,本身就带着浓厚的唯心主义色彩。

    不管承认与否,高考确实在很大程度上决定了以后的人生走向(或者,我该用另外一个词?)。

    而我还要再花多少时间,才能站在和你们相同的位置。

  • 周二课堂上做了个小 presentation,题目是“现代编程语言在安全操作系统设计中的应用”(题目的长度充分的体现出演讲者对内容的不熟悉),其实就是把 Singularity,Sing#,type-safe,verification, invariance 这些我也不懂的东西拖出来走个过场。

    借了个带蓝牙的本子,S60的手机,打算用 PhonePoint 遥控幻灯片,方便我在下面走动加强互动(讲台离下面太远了)。

    结果周老师听说俺自己背电脑过来,特地弄了个小投影来,刚开始没调好(轮到别人时就好了==),投影质量惨不忍睹,而且投影面积太大,幻灯片就只能缩在窗口里面,PhonePoint 基本上就废了;动画效果也没了,问题下面直接就跟着答案……

    然后所有设计的交互内容全部泡汤,我就大脑一片空白的守在本子旁边 BlahBlahBlah 了一通……反响竟然还不错。
    讲的时候好些人出乎意料的挺专注的,难道我竟然把 type-safe 讲通了?? 下课一问说是为了给我面子,调节一下现场气氛……!@#$……

    嗯,觉得挺对不起周老师的,貌似他挺期待俺搞出啥新花样……

    啊,快要考研了……睡觉去……

  • 好久没挂 IRC 了,睡觉前看看……

  • 昨天等杨同学的时候把《小王子》看了,感觉很好。

    还有两次实验,两门学位课考试,一门选修考试,一门选修实验,再加一星期实验。就考研了,完了之后就轻松了,可以放心玩了……

    可惜xiang长大了,不带我玩了……啊啊啊啊啊

    今天图书馆查书,想上外网,结果被IE的内容审查拦住了(限制只能访问图书馆网站)。然后就用XMLHTTP拖了个wget,用wget拖了个opera上外网查了下,原来只要把HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Polices\Ratings下的Key删掉就行了……Orz

    前两天宿舍买了个无线路由,图方便用的WEP,64bit key,后来知道就算是128bit shared key实时捕获数据破解也只要分钟级时间……算了,有空再去实验……

    厄,怎么扯这么远了……

     

  • 杨佳也死了

    2008-11-26

    “简单的不能再简单了的案情变得复杂的不能再复杂”,这正常吗?

  • 偶然看到这么一篇文章:
    http://okasaki.blogspot.com/2008/10/score-one-for-induction.html
    作者说他最喜欢的算法书之一是 Udi Manber 的 Introduction to Algorithms: A Creative Approach,这本书没Introduction to Alogrithms 有名,这两书都在我书架里,都没翻过200页(shame,need fix)。

    我比较在意的是这句话:

    He was making the common beginner mistake of trying to think about what happens during the recursive call instead of trusting that the recursive call works (sometimes called the recursive leap of faith).

    坦白说,读到这Blog之前我还以无法弄懂递归具体步骤为耻,现在看来不是这样的,而教我们的算法的孙老师,某位名牌大学的Ph.D,也错了。

    “You know when you're writing a proof by induction and at some point you use the inductive hypothesis? That's just like a recursive call. You don't worry about what happens inside the inductive hypothesis, you just say ‘Assume that it works for N-1...’ It's the same with recursion. You just assume that the recursive call works.

    原来这才是 Udi 那本书/数学归纳法的精髓……

    Btw 刚去看过,Udi 那本书在Amazon上从两年前的3星涨到4星半了 ,好书是经得起考验的。

  • 比如《政治经济学批判》序言里的这句:

    "...所以人类始终只提出自己能够解决的任务,因为只要仔细考察就可以发现,任务本身,只有在解决它的物质条件已经存在或者至少是在生成过程中的时候才会产生。"

    不知道对以后做Research啥的有没用。

    我估计复习过政治的和我想的都差不多:马克思确实是大牛,毛同学挺会打仗,其他人就全是在扯淡了……

  • Intel iAPX 432

    2008-11-05

    1981年的处理器,竟然在硬件级别实现了进程调度、进程间通信和存储分配,最高支持6个处理器核心,提供面向对象的指令集,另外还带了一个垃圾收集器(GC)。本来是计划取代x86体系结构的,不过最后市场失败了。

    而且据Wikipedia上说失败的主要原因还不是复杂度太高导致的成本高、运行效率低,而是编译器做的不好。上世纪七八十年代果然是CS发展的黄金时期……

    有兴趣的同学可以参考这两个链接:
    http://en.wikipedia.org/wiki/Intel_iAPX_432
    http://www.cs.washington.edu/homes/levy/capabook/Chapter9.pdf
  • 做了两个梦

    2008-10-20

    一个好的,一个坏的

    第一个梦,母亲变得像以前一样凶暴,我不能上学了。

    第二个梦,回到了xiang小时候住的地方,在深深的河水里,遇到了他的邻居。

    然后想到那部没看完的电影

    太阳雨、桃园、风雪、隧道、乌鸦、红色富士山、垂泪的魔鬼和水车之村。  

    只能说最近这些日子挺神奇的……