哈哈哈,Strkingly 开始接入外包了

2B 工具,必须满足客户100%的需求,才有生存空间。所以建站工具在现有技术基础和框架下,没有完全成功的可能。

上线了/Strikingly认证开发者资格申请表


上线了/Strikingly 是一款简单易用的网站和小程序营销类SaaS工具。我们是第一支被硅谷最知名孵化器Y Combinator录取的中国团队,获得了来自顶级投资机构1750万美金投资。目前用户遍布全球200多个国家和地区。我们有百万级用户和各种定制开发的项目。成为我们认证的开发者,你可以接我们开拓出来的项目单子。我们看重的是长远的合作,一起赚钱并累积到各种门户行业的专业知识背景。我们的客户包括:Microsoft、阿里巴巴、Uber、招商银行、渣打银行和众多中小企业等等。

http://apply.sxl.cn/

随着 HTML5 一声炮响,网页进入“更富的体验”阶段,基于 HTML 的建站工具也涌现出来,比较知名的有 Strkingly、WIX 等。——早年更多,不过很长时间这条赛道一直比较冷清,所以慢慢都死了。

我之前做过两个建站工具,这种东西和 2B 产品一样,开始的时候很容易,20% 的时间可以完成 80% 的功能,然后就很开心,觉得胜利在望。然后就找用户来试用,结果用户就会提出一些 20% 的需求,然后你去实现,发现再用一倍的时间也做不出来……

与 2C 的产品不同的是,后者用户会觉得有 80% 的需求被满足,赚了,继续用这个产品(当然也是因为大部分 2C 产品是免费的);而 2B 的用户因为 20% 的工作无法开展,而必须放弃这个产品。

所以解决方案就是雇人。有人在,什么需求都能做。但是结果就是公司一直扩张,原本几个人全远程,结果也不得不租办公室才能管理这么大的开发团队了。

然后需求还是做不完,又不想丢失客户,干脆,接入外包商吧!于是就出现开头一幕。


其实写这篇就是为了说:所有建站工具,在现有的技术基础和框架下,都无法满足普适的需求。当然,我们可以做一些辅助自己的工作,或者满足本厂的需求。

开发 WordPress 的 nginx 配置

整理两个开发 wp 的常用文件。

以前比较习惯放在 /etc/nginx/ 里,用 service nginx start 启动(对应 MacOS + brew 就是 /usr/local/etc/nginx/brew services start nginx)。来到我厂后,开始频繁接触 Nginx 和 OpenResty,现在觉得单独放在目录下面比较方便管理,所以改了一个出来。

配合 Makefile,方便日后使用:

  1. 启动服务 make run
  2. 关闭服务 make stop
  3. 重新加载 make reload
  4. 使用 php-fpm
  5. 代理上传资源(/wp-contents/uploads/)到真实服务器
  6. log 在本地
nginx = nginx

.PHONY: run
run:
    mkdir -p logs
    $(nginx) -p $$PWD -c nginx.conf

.PHONY: reload
reload: logs/nginx.pid all
    $(nginx) -p $$PWD -c conf/nginx.conf -t
    kill -HUP `cat $<`

.PHONY: reload
stop: logs/nginx.pid
    $(nginx) -p $$PWD -c conf/nginx.conf -t
    kill -QUIT `cat $<`
error_log logs/error.log error;
pid logs/nginx.pid;

events {
    accept_mutex off;
}

http {

    server {
        listen 9010;
        listen [::]:9010;

        include /usr/local/etc/nginx/mime.types;

        root /Users/meathill/Sites/wp-dev;

        index index.php index.html index.htm index.nginx-debian.html;

        server_name wp-dev.com;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location /wp-content/uploads/ {
            proxy_pass https://blog.meathill.com/wp-content/uploads/;
            proxy_set_header Host blog.meathill.com;
            proxy_ssl_name "blog.meathill.com";
            proxy_ssl_server_name on;
        }

        location ~ \.php$ {
            include /usr/local/etc/nginx/fastcgi.conf;

            fastcgi_pass 127.0.0.1:9999;
        }
    }
}

代码放在 Github wp-dev-env

WP Super Cache 的 max-age 有问题

给博客上了全站 CDN,哈哈

我厂做的是高性能网关,CDN 也是其中一大功能,所以就要吃自己的狗粮。之前多次尝试在七牛上配置全站 CDN,均以失败告终,这次因为是自家的产品,可以找同事咨询,所以打算再试一次。

配置过程暂且不提,基本上很顺利。结果在缓存上遇到一些麻烦,源站(也就是我的博客)控制为:max-age=3,所以基本上完全失效。

由于这个东西很多地方都可以控制,所以只好逐一排查。首先打开 WP Super Cache 的配置——它负责缓存,所以从它找起——无果;然后 Google “wordpress cache-control”,无结果;然后 Google “max-age=3”,发现这个地址:Cache-Control max-age=3, must-revalidate,原来缓存 max-age=3 竟然是插件的问题,而且一直保留至今。

按图索骥,打开 /wp-content/plugins/wp-super-cache/wp-cache-phase1.php,没有找到,原来这段已经被挪到 wp-cache-phase2.php,而且亦然没改……修改为 86400,缓存就可以 HIT 了。

至于这个地方是不是 Bug?我觉得是。这么短的时间不科学,如果真的这样,不如放出来给用户选择。

告别 Bluehost

原先的 Bluehost 空间出现问题,博客访问无限卡维护状态,于是索性把博客迁出来。所以,准备跟 Bluehost 说再见了。

Long long ago,201 为了让大家吃自己的狗粮,要求在职员工每个月都要写博客回帖子发评论。对我这种爱现的人来说,写就写嘛,于是积累了不少文章。离职的时候,还想继续写,不过担心放 201 平台上不安全,于是决定自己搭服务器。

那是2011年,当时我根本不懂服务器,市面上也没有云服务。我四处对比了一下,决定买 Bluehost 的域名+空间。Bluehost 跟联通是一路货色:“老用户与狗不得参加”。所以头一年各种优惠,吸引了我这种啥也不懂的小白,后面就再没优惠了。而我因为懒一直续到明年……

不过 Bluehost 也有好的地方,他们家的服务器专为建站调教,装 WordPress 各种方便,自动化脚本分分钟建起一个实例。其它常见网站程序也是如此。而且不限空间和流量,可以各种尝试各种摸索。于是我一股脑搭了一堆东西,虽然最后都没派上什么用场……

总之,从此,我开始接触学习使用服务器,以及服务器端软件。靠着无敌厚脸皮,我不断从身边各种运维那里一点一点的汲取服务器知识。如今,大体上一个服务器从空白系统到配置完成搭建网站我已经能轻松搞定了。

于是 Bluehost 空间就越来越不够用了:

  1. 首先它是空间,权限很低,很多东西无法安装
  2. 其次速度越来越慢,平均一个页面将近10秒的打开时间,实在难以接受
  3. 其次国内外的云服务越来越好,价格越来越低,Bluehost 一个月将近 15 刀的租金性价比低得令人发指……

所以我开始慢慢把服务迁出去,只是因为各种原因,比如这个空间2018年才到期,于是平日投入最大的博客一直没动,甚至宁愿写一个 Node.js 爬虫同步文章到 CDN,都不想迁……不过爬虫写的并不顺利,最后甚至可能就是它把博客搞挂了,如今桌面上非 Chrome 访问博客,都会无限卡在“维护”状态,无法恢复,甚至直接改代码注释掉状态判断都不行。

哎,所以没办法,迁出来罢!

回头把域名也转出来,明年空间到期后就彻底告别 Bluehost 了。

迁移到 Vultr

DO 的速度越来越慢,Vultr 推出了更便宜的套餐,还有东京机房,于是就把梯子和 Ghost 博客都迁了过来。

前几年 DigitalOcean 刚出的时候,因为很便宜($5/月),还送 $10 启动资金,于是就入了一台,搭了个梯子,搭了个 Ghost 博客准备写长篇。然而时过境迁,长篇还是就那几篇……

前几天看到 Vultr 推出了更便宜的套餐,$2.5/月,配置和 DO 一致。而且 DO 上梯子的速度越来越慢,几乎只够搜索,所以干脆换一下吧。便买了一台,将梯子和博客都迁了过来。新机器在东京机房,速度比美西的还是快多了。同样价格,配置也比 DO 高上一截,1G 内存安装 SQLite 终于不用搭虚拟内存了。

有需要购买的同学不妨用我的链接:http://www.vultr.com/?ref=7124198

也谈阿里月饼事件

阿里开人没问题,但理由实在让同为程序员的我难以接受。从不懂技术的角度出发,他们想当然的认为,今天会写几行点击脚本,明天说不定就把公司数据库拷出去卖了!然而在身为程序员的我看来,这两者有天壤之别,几乎完全不可能发生。

终于,阿里开除了月饼事件中的第五人,而且几乎是由最高层在充分复盘下做出的决定。可以认为这件事尘埃落定。本来这是个热闹,是个谈资,于我没啥切身关系。不过我在很多人的表述中,看到了我不希望看到的东西,所以我决定表达下自己的看法。

后文可能很长,所以先把我的观点列出来:

  1. 阿里开除这五人没有问题。
  2. 不是定量而是定性问题,这五人的行为不涉及到人品和道德问题。
  3. 整件事情是因不了解而产生恐惧,因不了解而产生攻击的结果。施害方是阿里管理层,或者按网络传闻“阿里HR”;受害方是习惯用代码解决问题的程序员。

下面逐条表述。

阿里开除这五人没有任何问题

不仅阿里,任何公司开除任何员工其实都没有任何问题,只要公司愿意承担相应的责任。我不是具体当事人,就不展开了。

作为打工者,无论身处何位,无论跟公司、跟老板、跟直接领导是什么样的关系,都要时刻做好离开这个公司的准备,也必须随时修正自己的职业规划。不要依附任何人,更不要依附某个公司。个人与公司之间,就是简单的雇佣与被雇佣关系,也应该是简单的雇佣与被雇佣关系。不要掺杂个人情感之类乱七八糟的东西。

个人觉得公司不合适,可以跳槽;公司判断个人不适合,将其开掉对公司和对个人也都是最好的方式。此次事件中阿里就是这么做的。

这五人的行为不涉及到人品和道德问题

首先,我要强调,当时执行的是“秒杀抢月饼”,“秒杀”!不是温情脉脉你谦我让,就是谁先抢到谁就赢!那么每个人动用自己的能力增加自己的秒杀机率就理所应当。

我们平时抢东西怎么抢?找个网速更快的地方;多准备几台设备;多找几个同事朋友帮忙一起抢。这和写一个脚本自动去点击有什么区别呢?有人会有人不会?我没有朋友怎么办?我没有多台设备怎么办?我只蹭得到时断时续的网怎么办?“抢”这个事儿本身就是不公平的。

“秒杀”对于当时没时间的人,就是最大的不公平。

再回到“脚本”这个东西上。阿里官方定性是“有牟利目的”,“利用系统漏洞”,“侵害了其它参与秒杀小二的利益”。这点我完全不同意。就那几盒破月饼,还是自己掏钱买,也没人蹲外面等着高价收,怎么就“有牟利目的”呢?至于“系统漏洞”,一个点击脚本叫个屁的系统漏洞啊!黑到数据库里改数据才叫系统漏洞,点击脚本只是作者为了避免自己正常工作被打扰临时开发出来的“效率工具”而已。只是在不懂技术的人眼里,这东西自己不理解,给它按一个自己理解的名称理所当然,最近炒得火热的“系统漏洞”看起来蛮合适,就它吧。于是一大堆不懂技术或者半桶水的人就给它定了性。

然而,一线开发人员脑子里,是怎么想的:

MDZZ,谁都跟你们似的那么闲,上班时间搞秒杀?老子活儿还干不干了。尼玛公司福利还搞花活,随便抽签或者申请下不就完了。哎,没办法,惹不起帮孙子,好吧,写个脚本,随便抢一盒吧。

就是这样。不需要因为抢的是月饼,就从轻处罚。参与者本身不希望攻击什么,只是利用自身能力帮自己争取一些优势,和找人帮自己抢是一样的。写个脚本只是提高自己本职工作的效率,这只是个效率工具,而已。

因不了解而产生恐惧,因不了解而产生攻击

继而,我就得出上面这个结论。

在很多不懂技术的人看来,程序员就像中世纪的巫师一样,你不知道他在干什么,只知道他鼓捣鼓捣鼓捣,就鼓捣出来一个东西,能干很多事情,很神奇。其实大多数行业,专业和非专业之间都有很高的壁垒,只不过其他行业要么成型已久,比如厨师;要么跟现实比较紧密,比起设计师;要么我们其实不关心,比如科学家。程序员这个行业又新,干的事情又抽象,产出的结果又跟其他人紧密相关,于是大家对我们的误解也就越深。

比如,我司的后台由我开发。然则我的同事会通过观测得到一些的“客观规律”,然后拿来跟我争辩,坚信他们才是对的……

所以大家可以容忍代秒,可以容忍多设备秒,可以容忍4G秒,但是不能容忍程序员写个三两行的脚本,走正规途径,秒。因为,“我不会,我不懂”。如果他这样干了,就是“作弊”,就是“利用系统漏洞”。我不管是不是,反正他会我不会,我没法确认他不是,那我姑且用最大的恶意去猜测,那就是“是”!

因不了解而产生恐惧,因不了解而产生攻击。

让我拿祖师爷举个例子。图灵(拜三拜),人类历史上最伟大的头脑之一,将二战缩短了两年的男人,因为同性恋,被强制精神治疗,甚至直接导致他的死亡。

因不了解而产生恐惧,因不了解而产生攻击。

我在担心什么

有本科幻小说,讲未来的,说未来不同行业之间术语的差别就跟现在不同语种之间的差别一样巨大。现实正在向这个方向发展。如何去界定不同行业的人的行为?按照自己的经验去推测?用最大恶意去揣摩?按照传统道德来批判?还是,听听专家的意见,做同行评定?

按照阿里这个做法,甚至还有很多支持的人,“同行评定”可能只是程序员脑中的乌托邦。

科技越来越发展,开源的工具越来越多,程序员可能涉足的领域、操纵的东西越来越多。有些有明显边界,无须多辩;有些则边缘模糊。比如在饮水机上加监控,水开自动提示,我可以比其他同事享用更多的热水,这是问题么?比如我用摄像头监控领导的办公桌,他一回来我立刻跑过去让他先签我的请假条,这是问题么?有个妹子,领导安排她做报表,我帮她用脚本生成了,于是她成功挤掉了另一个妹子,这是问题么?客户有100个表单,销售报价100人・天,我做了个工具,30天搞完了,净赚70天,这是问题么?

所有这些,都是在程序员眼里看来理所应当,甚至很酷的事情。但是到大众眼里,可能就不那么好接受。如果放任对程序员的不信任和攻击性增加,那么将来很可能有一天,我也会因为某个我认为理所应当的事情,被公司开掉。


总结

阿里开人没问题,但理由实在让同为程序员的我难以接受。从不懂技术的角度出发,他们想当然的认为,今天会写几行点击脚本,明天说不定就把公司数据库拷出去卖了!然而在身为程序员的我看来,这两者有天壤之别,完全不可相提并论。

希望非程序员能多听听程序员的呼声。程序员们也不要羞涩,该表达就表达。希望以后程序员的环境更加宽容,不要让我们步步惊心。

祝这五位今后一路走好,该写什么脚本,就写什么脚本。我支持你们。

我单方面宣布鄙视阿里,不会谋求去阿里工作。


吐槽

  1. 阿里这种货色,好意思说别人价值观有问题?
  2. 谁tm上班时候有时间去搞秒杀啊,HR 你们自己工作不上心别牵累别人好么?
  3. HR 你们外包给谁做的破程序啊,吃回扣了吧?
  4. 阿里那个伪造离职谈话记录的 HR 怎么样了?
  5. 我司老板竟然支持阿里,你可是技术出身啊!

读后感:《只是为了好玩:Linux之父林纳斯自传》

分享一下最近读的一本书:《只是为了好玩:Linux之父林纳斯自传》

先放购买链接

应该说我不是林纳斯的粉,在我塑造三观的关键时刻,读到两本讲比尔盖茨和微软的书,一本好像叫《未来之路》,另一本忘记了;加上盖茨功成名就之后一心公益,造福无数,所以我的偶像一直是他。然后爱屋及乌地喜欢微软,即使现在各种新势力新潮流各种攻击盖茨和微软,他们在我心目中的地位仍然是崇高无二。

不过我对林纳斯也很有好感:世界上两大系统的创始人,开源代码的领军人物,怎么能不喜欢他?看完这本书之后,就更喜欢他了。

林纳斯本分、务实。不知道是不是芬兰那种宽松的生活环境造就,我觉得国内很难找到这种视功名如无物视金钱如粪土——准确地说不是如粪土,他根本不在意——的人物。他只是单纯的觉得写代码好玩,如果有人用就更好了。而且,他做得可以说比任何人都好,历史为证。

这本书看起来很轻松,也很振奋。工作之余翻上几页,有种非鸡血而胜鸡血的感觉。年纪越来越大之后,我想我可能没有机会改变世界了,不过通过别人的经历YY一把改变世界,也不错。


分享书中一个观点。

我们知道芬兰人对个人空间有着近乎变态的要求(参见芬兰人的梦魇)。林纳斯认为正是这个催生出诺基亚。因为芬兰人都不愿意与人交流,然则又必须交流,所以能绕开就绕开能隔离就隔离,那么手机就显得很有用。所以在美国人都没开始用手机的时候,芬兰就人手一部了。

于是我得出一个推论:主流文明(北回归线到北极圈这个范围内)都是喜欢交流的,于是手机这种原本帮助人们隔离彼此的工具很快被改造成增进交流的工具,所以善于此道的美国人(苹果,乔布斯)逐步战胜了诺基亚。

Jetpack的博客总结2015

Jetpack给出了2015年的博客访问报告,发表下小感慨。

WordPress的插件Jetpack如期给出了2015年的博客访问报告

根据他们家的统计,过去一年里博客访问量约12000,不算太高。下半年墙的各种调整,各种出国流量收窄造成不小的影响,继续鼓励病魔早日战胜方校长,并希望ta有空去拜访下其它为筑墙工作的人。

过去一年写了41篇日志,从量上来看大约完成了计划的80%。希望来年能完成。不过热门文章都是更早之前写的,年初计划的文章升级完成的不太好,继续放到来年吧。


移动互联网时代,写长文变得很困难。很多博客都停更断更,硬派技术文越来越少,社交媒体上大多是《10种你可能不了解的JavaScript技术》、《15种2016年可能的前端趋势》,话语权近一步向金字塔尖汇聚,阮先生这种低端博主(仅就其技术言论)竟然能直接进入阿里做P8,名家无营养的文章开通打赏随随便便收几千上万……

不过还是继续写吧,明年争取写更多,更高质量的文章,抽时间搞直播和视频,反正好为人师如我不这样做总有热情无处安放。就当积累人品好了。

(图片来自于Google 和 http://happynewyear2016imagesy.com/merry-christmas-happy-new-year-wishes-messages-images-pictures.html