作者: c君不在

  • 关卡

    关卡有双向和单向之分,单向的又有进入障碍和外出障碍之分。

    为了防止外地入侵,设有进入障碍。

    但,设下外出障碍,却以防止外地之名,这不对吧?

  • postMessage

    postMessage 被设计用来在窗口(window)间通信,特别地,用于跨域间的通信(可携带 cookie)。可支持在普通的页面、iframe / frame、用 open 打开的新窗口间使用。

    使用的方法是:targetWindow.postMessage(message, targetOrigin),接收的事件是message

    其中message不限定为字符串,targetOrigin是用来指定接收方的 Origin,不符合时浏览器禁掉该请求抛出异常,可以是 * ,但建议指定为具体的。

    下面是一个单向通信的示例(A -> B)。

    // A domain
    windowB.postMessage('just a message', 'http://bdomain');
    
    
    // B domain
    window.onmessage = function(e) {
        // for safety
        if (e.origin == 'http://bdomain') {
            // source origin
            alert(e.source);
            // message data
            alert(e.data);
        }
    };
    

    通过设置隐藏的跨域 iframe,然后通过该 iframe 可以实现跨域无刷新提交需求。

    这里是一个 DEMO

    References

    1. postMessage – MDN
    2. compability – Can I use
  • CORS

    CORS(Cross-Origin Resource Sharing),这技术的提出主要是为了解决 Ajax 的跨域问题。如果是 GET 类型的跨域请求的话,还有 JSONP 这种简单的解决方法,但像 POST 这种就复杂了,所以提出了 CORS。

    XDomainRequest

    IE 在 IE8 时就开始提供了跨域方案 XDomainRequest ,有了 error、timeout、progress 等处理函数,可惜得是走得太前并且当初考虑 .net 系列多导致限制有些多。

    比如,对于普通的 Ajax post 来说,一般会设置 Content-Type: application/x-www-form-urlencoded,但 XDomainRequest 不能设置 header,从而只能发送纯文本,这对于服务器端会带来些困扰。PHP 在这种情况下不会把提交的键值对放进 $_POST 变量中,而需要用 HTTP_RAW_POST_DATA 来获取再解析。

    也没法发送 cookie 来做身份验证。

    因为限制有些多,所以 ie10 后抛弃了 XDomainRequest 而采用 XMLHttpRequest Level 2 了。

    下面是一个简单的例子

    (更多…)

  • 童工

    童工问题是个老问题也是个国际性的问题,主流思潮自然是同情和立法禁止了。

    不过说得不好听点,这些都是生活无忧的人施舍的同情心而已。

    人口贩卖这个恶劣并悲惨事实的这里不提,考虑下主动性质的童工。

    2002 年颁发了《禁止使用童工规定》,规定“国家机关、社会团体、企业事业单位、民办非企业单位或者个体工商户(以下统称用人单位)均不得招用不满16周岁的未成年人(招用不满16周岁的未成年人,以下统称使用童工)”。

    这条规定,从条文来看,规定了禁止了儿童出现在任何的经济产出活动中,包括普遍意义上的体力活动,但还包括了童星这一职业、家庭作坊的协助等。

    会有多少人觉得荧屏上的光鲜童星事实上属于童工这一概念呢,不说哈利波特这些出了名的,那些可爱的小孩、婴儿有考虑过吗?事实上,不知多少人恨不得自己的儿女也能走上那闪亮的舞台。

    有多少人觉得帮上家里作坊什么的属于违法法律呢?

    回到大众所同情的从事体力劳动来那类童工。

    每个童工的背后都有着一个困难的家庭。极端的情况就是,无父无母甚至父母无法劳动只能依靠小孩本身来获取生存物资。禁止了工作后,断其生存来源后考虑过如何吗?

    法律上规定儿童应该接受义务教育,甚至都免费了。只是,精神上富裕了,但肉体却死亡了。

    不禁用使用童工的恶果是可见的,毕竟有着工业革命时期的英国作参考。虐童、性虐待、人口贩卖、不受教育导致无文化而社会极度两极。

    只是,禁止童工的同时没能找到解决生活问题的方法是个悲剧。

  • 广告

    随着时间环境认知的变化,思考也在变。

    关于广告(这里此文特指网络广告),以前是属于极度讨厌,千方百计逃避甚至屏蔽。原因自然是不觉得是受众,从来不看。

    现在,虽然依然是不看不喜欢,但却稍有理解。

    (更多…)

  • 海森堡之谜有感

    科学或是无国界的,但科学家却一定是有国界的。

    师生情,朋友宜,在名为战争的巨兽前无能为力崩分离析。

  • 此好非彼好

    这两天看了《这个时代的无知与傲慢》以及《上帝掷骰子吗:量子物理史话》(可惜想读的《量子史话》没有发行电子版,只能后面再买实体书了)这些高格调的东西,上班前回归俗世,看看周边。

    说说旧事。

    周鸿祎的《只要对用户好,我什么人都不怕得罪》这理想很伟大,可惜现实依然是骨感的,就如同专家。

    图中这个说法就彻头彻尾地不是口号那么伟大的东西了。

    正当来说,为了用户而着想的做法是:QQ 那么多广告那么多臃肿那么慢那么多无用的东西,上帝们,来用我们这个彻底以用户为中心的干净清爽全球最快最纯粹的聊天软件吧。

    这才是为用户着想同时合情合理并合法的做法。

    而周老板采访中的说法却是这样的:你不行啊,技术那么烂那么粗暴,没看见你老婆好痛苦吗?让我来帮你吧。看,要这样,慢慢来,九深一浅。不要戴套,给她纯粹的感觉。啊,你太多毛了,看我,多干净!

    QQ 没被定义为“病毒”,那么就不能被强行删除禁用其功能,这样和强奸别人老婆给别人戴绿帽子有什么关系。

    说到利益,一切不向用户收费的服务都是通过把用户卖了来获取利益的,别把自己说得多么伟大多么圣人。

  • ubuntu zip 乱码解决方法

    比如百度网盘上打包下载时,设计到中文问题时,乱码。

    unzip 中有 -O 参数,可以指定编码

    unzip -O GBK file.zip
    
  • 语义化版本号

    对于一个给定的版本号 MAJOR.MINOR.PATCH (主、次、补丁),其变化的规律是:

    MAJOR version (主版本) 会在 API 发生不可向下兼容的改变时增大。
    MINOR version (次版本) 会在有向下兼容的新功能加入时增大。
    PATCH version (补丁版本) 会在bug以向下兼容的方式被修复时增大。

    References

    1. [译]语义化版本管理
    2. Semantic Versioning 2.0.0