Blog

  • PHP-CPP编写PHP扩展

    (原文发布于2014年3月26日和4月5日,原文链接Getting Started with PHP Extension Development via PHP-CPP,以及PHP Extension Development with PHP-CPP: Object Oriented Code

    本文收录于[go4pro.org]

    这两篇文章利用http://php-cpp.com/提供的PHP-CPP作为基础,讨论了利用C++(严格说是PHP-CPP)编写PHP扩展的方法,讨论了最基础的东西以及一个类(复数类)的基本实现。

  • To whom it may concern and help

    Running Press Book Publishers 2300 Chestnut Street Philadelphia, Pennsylvania 19103-4317

    To Whom It May Concern And Help,

    I have bought your book God Created Integers (ISBN: 978-0-7624-3272-1) and finished reading.

    I will be very much honored if I can translate this book into Chinese. There is one local publisher who is also very much willing to proceed once it gets the clearance on the copyright.

    So far, the publisher has contacted your local representative in Beijing but no feedback yet.

    This means no complaint to the representative but we would like to see a quicker movement on this.

    Yours,

    Taylor Ren

  • G+上一道蒙了好多人的题目

    今天在G+上看到这么一题,如下:

    bbd369f3-74cb-4eb5-8baf-7fe4138dcc3e

    我的答案是:无解。这道题本身就是一个悖论。理由如下:

    首先,必须假定四个答案中有一个是对的。那么随机选择到该答案的概率是25%,但是答案中出现了两个25%的选项,所以将选对的概率增加到了50%。

    于是,就会将A/D两个答案排除,而只有B答案正确。这么一来,又只有25%的概率选对。

    因此,说是25%的会提升概率到50%,而说50%吧,又将概率降低到25%。

    显然是一个悖论。

    你不能将这两种情形叠加考虑,因为这是两种完全矛盾的情形,这不是概率中的独立情形。

  • Symfony 2中的功能测试

    (原文发布于2014年3月4日,原文链接Functional Testing in Symfony 2

    本文收录于[go4pro.org]

    =====

    基于《Symfony 2中的批量数据生成》,我们可以对页面进行有控制的功能测试。所谓“有控制”,意为在测试数据是受控产生的前提下,假定程序逻辑没有问题,那么结果应该是如我们所预期的那样受控。否则程序一定有问题。

  • Symfony 2中的批量数据生成

    (原文发布于2014年2月24日,原文链接:Data Fixtures in Symfony 2

    本文收录于[go4pro.org]

    =======

    本文介绍了在Symfony 2中使用Data Fixtures工具进行批量数据生成的方法。特别介绍了牵涉到1-M等主从表之间PK关联的数据的生成方法。

  • 论DRM必须被破解兼论其他

    前段时间和令狐、猛禽在Hangout里聊到了“多看”,着重谈到了两个问题:

    一个是,多看的ePub有DRM保护,目前我还没有能找到破解的方法。相比之下,我经常去买书的Kobo站点中的ePub也有DRM保护,但是可以被破解。所以,我说我还是不会到多看去买书。

    另一个是,多看的浏览器在浏览书城购入的书时,不能更改字体。这本ePub用什么字体做的,就是什么字体。这个设置让我很不舒服。

    先谈版权以及DRM的问题。

    盗版的书对作者的著作权有没有影响?没有。《Killing Jesus》不论是精装版、平装版,英文、中文(以及其它文字),纸质书、电子书、盗版书,三联版、Simon & Schuster版,作者的著作权没有受到任何侵犯——都是这个叫O\’Reilly的人。

    盗版更多侵犯的是出版社的权益。

    于是到了网络时代,随着电子书的出现,DRM成了保护版权的选择。

    它采用的是“有罪推定”,即所有人都是会将没有DRM的书籍广为传播、发散并牟利的。所以,鉴于此,书籍必须DRM。而且更进一步,DRM的书籍只能在指定的设备/应用上阅读。

    说实话,这个推论是很荒谬的。

    我买电子书,付了钱。这一电子书的拷贝就归我拥有。这一拥有权体现在如下几个不可分割的范畴:

    • 我可以把这本书收藏起来,收藏在我想要的地方。
    • 我可以撷取书中内容的一部分,作为我研究之用。
    • 我可以将这本书借阅、赠予另一个人。

    这几个点在传统纸质书中都是很常规的。作为电子书,我觉得不应该有什么不同。但是,现在的电子书只做到了第二点,却根本没有做到第一、第三点。

    即使一本书有DRM,也是可以做到第一、第三点的。

    回到Kobo的情况。Kobo的电子书都有DRM保护。我买了书后,一般会将其去DRM,然后导入Calibre进行整理(封面、tag等),然后转化后传到iBooks去读。也会传到肾后的iRiver上让她一起读。这里唯一的和传统纸质书不同的地方,也是找不到类比的地方,就是我和肾后可以同时在各自的机器上看同一本书。在传统纸质书的情形下,同一本书要么我在读,要么肾后在读,不大可能两个人一起读。

    于是,我对于那些DRM保护的很好以至于无法破解的站点的书都会避让。

    =====

    牟利?我10块钱买回来的书,通过散发的方式,每人收0.5元然后赚钱?有可能吗?这样想的人,显然是“没有上过网”的。网络资源的丰富性决定了,永远有免费的资源存在,所以每个要这么做的人,都会面临成千上万个免费提供该资源的竞争,因此也不可能收钱而赚钱。

    电子书本身和纸质书比起来,就有很多不足(当然有好处——比如说方便携带等),比如说:很难实现随机阅读——就是那种看到2/3,突然想起前面某个地方有什么东西和这里是关联的,然后要翻回去看一下。在纸质书状态,人是靠模糊的印象:“这段文字在右边一页的中间偏下一点的位置”来进行快速定位的。这样的印象甚至到了很长时间之后都会存在。在读电子书的时候,我们当然可以靠“书签”和“备注”,但是问题在于,我们不可能在第一次阅读的时候,预知哪些东西在后面还有照应而早早做好标记,这个过程永远只能是在后期阅读时触发的。在这一点上,纸质书的优势永远是存在的。

    (当然,以前我也一直说过,纸质书的另一个优势是:它可以被陈列出来!)

    拉拉杂杂先扯这么多。

  • MySQL存储过程中Cursor的使用

    (原文发布于2014年2月5日,原文链接Cursors in MySQL Stored Procedures

    本文收录于[go4pro.org]

    ====

    这篇文章继续了我之前《存储过程》的讨论,专注在讨论Cursor(光标)。这篇的讨论也很热烈。

  • 大整数和任意精度实数运算

    (原文发布于2014年1月29日,原文链接Arbitrary Precision and Big Numbers in PHP

    本文收录于[go4pro.org]

    ====

    严格的说,这是一篇纯算法的文章,文中讨论了三个PHP库:BC,GMP,php-bignumber,并分别用计算圆周率和进行RSA加密/解密进行了演示。

  • Symfony和Dart的整合——第二部分

    (原文发布于2014年1月20日,原文链接Integrating Polymer/Dart and Symfony – Part 2

    本文收录于[go4pro.org]

    ====

    在第二部分,我继续讨论Symfony和Dart的整合,还是异步数据的获得——但注重在远程数据,并讨论了一种避免JSONP的方法。同时,对编译为JavaScript后的Dart的局限性进行了讨论。

  • Symfony和Dart的整合——第一部分

    (原文发布于2014年1月13日,原文链接Integrating Polymer/Dart and Symfony – Part 1

    本文收录于[go4pro.org]

    ====

    我继续进行着Dart的研究,并在该两部分的文章中讲述Dart和Symfony的结合。

    这一部分,着重在异步数据获得,前台模板(Twig)于Dart/Polymer的整合。