Browsed by
Category: 杂文

随便记点什么

工匠精神

工匠精神

“工匠精神”似乎是最近非常热的单词,突然之间到处都在呼唤工匠,言必称工匠。我理解“工匠精神”是要耐得住寂寞、对品质精益求精,这毫无疑问让人非常向往。

只是目前就全社会提倡“工匠精神”,合适吗?我们现在还远远达不到追求“工匠精神”的地步,我们现在更应该提倡把事情做好,把事情做对。比如下面这张图:

斑马线上的井盖
斑马线上的井盖

把井盖放好,需要技巧吗?不需要。需要精益求精吗?也不需要。只需要把事情做对即可,这么简单的要求做到了吗?连续三次都没做到!每次经过这个斑马线,我都忍不住猜想:当时的工人究竟在想什么?

只有把事情做好、做对了,我们才能进一步精益求精,而现状还差得很远。现在提倡“工匠精神”实在是荒诞、好高骛远,也就让人怀疑最终的成效,这可能也只停留在一个口号而已。

还是老老实实先学会走,再考虑怎么跑吧。

再见,bluehost

再见,bluehost

BlueHost(以下简称BH)是个老牌的虚拟空间服务商,与其他服务商相比,BH有很好的口碑,当然,也有相对高的价格。我们的小公司自创立以来,就使用BH的空间来支持网站(myvoipapp.com)。虽然随着我们技术水平的发展,越来越多地采用VPS和云计算资源,比如我们的云系统miniSIPServer.com以及我们为客户部署的各类系统,都换用了VPS和各类云系统,但是我们的官网始终保留在BH中。

一方面是考虑到多年数据积累,迁移整个系统是费时费力的事情,比如需要考虑email、web、ftp、论坛、blog、数据库等,想想就觉得很麻烦。另一方面,BH一直以来工作得很好,对于初创企业(尤其是没有太多技术积累的初创企业),BH提供的各类一键式安装和维护,的确省心省力,不会让人太操心,把精力更多地放在自己业务发展上。

然而最近我们终于还是花时间把网站迁移到VPS上了(推荐Linode以及DigitalOcean,两家口碑极好的VPS服务商),告别了使用时间近乎十年之久的BH。下面分享一些我们做决定时的一些动因和思考。

1、稳定性

在虚拟空间服务领域存在大量的服务商,坦率地说,绝大部分虚拟空间服务只能做个人blog等非关键应用,少数才能为严肃的商业网站提供服务,而一直以来BH都是其中佼佼者,其基础就是良好的稳定性。这也是我们一直使用BH的根本原因。

然而最近不知道是出什么问题了,也许是BH推出了VPS类业务,调整业务重心,从而忽略了原有的虚拟空间业务。总之,最近一年以来毛病不断,网络故障、主机故障、数据库故障、各类故障层出不穷,以前十年间出的问题加起来都没有最近一年多。

2、糟糕的技术支持

出问题不可怕,如果有良好的技术支持,很多问题是可以被容忍的。然而要命的是,BH的技术支持水平严重下降。很多问题本来是可以避免的,比如擅自修改php配置,居然去掉了mysql的pdo驱动,导致我们的服务大面积中断。

最离谱的是,连续几天awstats居然没有任何统计数据。由于我们以前过于信赖BH自身的工具,没有引入第三方的统计分析工具,以至于我们都无法确认这只是awstats的问题,还是BH的节点出现了严重问题,感觉非常糟糕。

BH新的技术支持人员的专业素养也让人怀疑。比如cpanel的问题、sftp等问题,域名管理配置问题等,简直答非所问,让人吃惊。而且online chat现在居然要三十几分钟的等待才能连接,实在无法理解。遥想当初使用BH的时候,还是个技术小白,几乎什么都不懂,完全是依赖即时的online chat来获得帮助,真是今非昔比。

3、隐性的商业成本

这里就不说擅自修改商业定价策略和产品包的内容。

BH的初次建站成本比较低,但是续费的时候就比较贵,这点可以接受。然后后续如果需要添加新的服务,比如HTTPS支持,独立IP等,就需要另外付费,综合起来的商业成本,实际上比使用VPS更贵一些。何况,在“lets encrypt”免费提供SSL证书的情况下,对HTTPS进行收费未必合理。实际上,我们切换到VPS后,采用了“lets encrypt”的证书进行HTTPS加密,效果很好,没有任何额外费用。

4、结论

使用VPS的技术要求门槛高一些,至少要懂一些linux的基础知识,所幸的是我们的技术水平在逐步的成长,这方面已经没有什么障碍。而BH对于初创企业目前来看还是很好的选择,只是在留住资深用户方面,还需要更扎实的服务和更稳定的系统环境。

Apache2配置调整

Apache2配置调整

在资源不充足的节点,如果对性能要求不高,可以试试调优一下Apache2的配置,节约对内存等资源的占用。Debian 8系统Apache2默认采用prefork工作模式,可以试试修改/etc/apache2/mods-enabled/mpm_prefork.conf的配置,例如采用以下配置项:

<IfModule mpm_prefork_module>
 StartServers 5
 MinSpareServers 5
 MaxSpareServers 10
 MaxRequestWorkers 20
 MaxConnectionsPerChild 1000
</IfModule>

当然,如果是在资源很充足的情况下,完全可以放大以上这些配置。Apache默认的配置项一般能满足普通情况下的需求,而在特殊情况,例如资源不充足或者资源非常充足,适当调整上述各项配置,会提高Apache的响应效率和稳定性。

DigitalOcean小坑

DigitalOcean小坑

DigitalOcean是我个人非常喜欢的云计算服务商,我们在部署自己的网站、云通信系统、向客户推荐等各种情况都会采用DO(以及Linode,另一个非常优秀的云计算服务商)。

绝大多数情况下,DO节点运行非常快速、稳定,然而有时候也有意想不到的情况发生。最近我们发现一个节点的服务突然中断了,经检查后发现是MySQL数据库异常退出,错误原因是内存分配不足。以前从未发生过这种情况,简单对比后发现这个节点是个小内存节点,只有512M内存(通常我们都为生产环境节点配置2G内存)。我们认为这个节点的MySQL数据库不应该占用太多内存,即便512M内存不够,加上SWAP的支持也应该足够了。

然而分析该节点信息,惊讶地发现DO默认居然没有分配SWAP区(与之对比的是,Linode可以在创建节点时指定SWAP分区)!

检索了DO的文档,对这种情况的解释是建议采用更多内存的节点,SWAP做缓存会拖慢系统,并可能影响其他用户。原则上这点没错,如果频繁发生内存不够的情况,的确应优先升级节点,采用更多内存。然而,如果仅仅是在尖峰时刻偶尔少量内存不足,采用SWAP过渡一下完全合理。

更重要的是,即使SWAP相对而言慢一些,但相比程序crash而言,一个慢点但是稳定的系统显得更合理。同时考虑到DO采用SSD硬盘,速度可以接受,因此我们手工增加了2G的SWAP设置。事实证明,内存在忙时实际只少了1M,用SWAP来应对这1M内存的需求,相当合理。

在DO节点增加SWAP很容易,请点击这里了解细节。文档是基于Ubuntu 14.04,我们的节点是Debian 8,按照这篇文档的介绍,也能设置成功。

以下是简要的步骤记录:

(1)创建 swap 文件:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

(2)修改 /etc/fstab 文件,添加以下项即可:

/swapfile none swap sw 0 0
Ubuntu16.04

Ubuntu16.04

先上图:

Ubuntu 16.04运行界面
Ubuntu 16.04运行界面

与以前的版本没有太大区别,也就是说:丑,慢。

从直观感受上判断,传说中的Unity8和MIR如同小媳妇一样,再次爽约了。按钮栏仍然默认是在左侧,而且没有配置能够进行修改,寻觅了很久,终于还是依靠一条命令并重启Ubuntu才搞定:

sudo gsettings set com.canonical.Unity.Launcher launcher-position Bottom

很多软件库都升级了,这导致了部分程度上的不兼容,估计很多软件需要跟随升级。比如,由于libmysqlclient版本升级了,我们的软件也被迫修改进行适应。不过总体上判断,升级还是可控的。

简单地把玩了一阵,个人建议:如果不想追新的话,升到16.04的意义不太大。

2016-04-24更新:将另一台计算机上的kubuntu从15.10升级到16.04,崩溃了,开机直接黑屏。以前升级都没遇到问题,这回是首次遇上。

办理“其他”港澳通行证

办理“其他”港澳通行证

由于港府的要求,深圳去年将港澳通行证限制为“一周一行”。港府赤裸裸地羞辱深圳居民,我对此感觉很愤怒。既然是国家政策,也无可奈何。平时倒没有什么影响,我基本只是两周左右才去一趟香港,到幼儿园换被褥而已。然而有些时候,又确实让人感觉很不方便。比如有次临时有事去了趟幼儿园,后续周末幼儿园的活动就没办法参与了,颇感遗憾。

在此特别感谢深圳公安部门!在“一周一行”推行了一周年后,针对双非家庭的情况,允许办理“其他”类型的港澳通行证,可以一周多行。

所谓“其他”,是指在预约办理签注时,必须选择“其他”类型(请注意,不要选择“探亲”)。由此可见这种情况对公安部门来说,也是非常特殊的一种考虑,实在是非常感谢!

其他流程与办理普通的签注是一样的,但是有些材料需要单独准备:

(1)孩子的香港出生纸原件和复印件。验原件,收复印件。

(2)孩子的回乡证原件和复印件(正、反面复印在一张纸上),验原件,收复印件。

(3)孩子的回港证原件和复印件,验原件,收复印件。

(4)学校学籍表原件和复印件(复印封面、照片页以及校历表页),同样是验原件,收复印件。

(5)自己的身份证、港澳通行证原件,无需复印。

预约时登记为“其他”类型,小孩实际可以不用到现场。但是如果登记为“探亲”类型,则小孩需要到现场拍照。

整个流程大约半个小时搞定,简单干脆,效率很高。为深圳公安点赞!

2017-04-12更新:

签证快到期,今天办理重新续期。与普通港澳通行证不同的是:不能通过微信、电话委托邮政办理,需要本人在网站上预约、本人到公安局去办理重新签注,因此一定要上网提前预约好。

有些地方需注意:

(1)如果是夫妻两人同时办理,在网站上也需要预约两个独立的号,各复印件都需要准备两份。只需要一个人去公安局办理,但是两个人的证件都要带齐全。

(2)现场只支持刷银联卡支付。

(3)现场可以免费复印,不过人比较多,建议在家先都复印好,免得耽误时间。

2018-03-20 更新:

今天去办续签,沮丧而回。

请注意,务必要带小孩的回乡证、回港证原件,只有复印件是不行的。考虑到孩子日常还需要证件过关,因此预约时间只能安排在孩子放学之后、下午5:30之前,要么就是孩子请假或者放假期间了。

这个步骤有些繁琐。其实完全没有必要,因为回港证、回乡证都是五年有效,公安部门已经在去年办证的时候存档了(如果是扫描进电脑的话就更方便查询),完全没有必要每年重复这个验证。

进一步思考的话,甚至港澳通行证“一年一签”是否合理? 毕竟现在去加拿大都是十年一签了,去香港反而是“一年一签”。在如今呼吁“粤港澳大湾区”建设的背景下,此举尤其不合时宜。就算不“十年一签”,至少也可以和回乡证、回港证一样,做到“五年一签”吧。

2019-02-22 更新:

(1)支持微信扫码支付了。

(2)增加了学籍表的复印要求,需要复印:封面、照片页(也就是学校盖章页)以及校历表。

双非儿

双非儿

早上在新浪看到一篇双非孩子上学的报道,顺便也看了评论区的评论,内心五味杂陈。

是的,我们家里老二(苗苗)也是一位双非儿童,所以我非常理解报道中家长的心情和困窘,同时也对评论区的一些冷血评论感到愤怒和悲哀。我已经一把年纪了,经常告诫自己不要太执着、不要太生气,什么事情都要看开点,但这些风言风语实在压抑不住自己的心情。

为什么要去香港生孩子?深圳南山各街道办超生罚款三十几万人民币,去香港生只需花费几万港币。这就和奶粉一样,一个有三聚氰胺,一个没有三聚氰胺,这些都是不难做出决定的选择。

网上“占深圳便宜”的言论,让人极其愤怒!我们每年都交十几万的税,养老金也是自己交,究竟谁占便宜了?更重要的是,一个国家、政府甚至人民,居然视自己的孩子为累赘、负资产,亘古未有!怎么去教育这些”不应该存在的”孩子去爱这个国家?

我要特别感谢香港政府!当初要是没有香港,我们就不会生下苗苗,现在也会少了很多的欢乐。虽然现在有陆港矛盾,有诸多限制,香港政府至少还是采取了一些措施(当然,其中部分措施涉嫌歧视,同样让人反感),考虑了双非家庭的特殊情况。对比之下,我实在不想对内地再多说什么了。

我对强国梦之类的东西没太多理解,也不感兴趣。我唯一能做的是尽力养活自己的家庭,让孩子们健康快乐的成长。如果将来苗苗能看到这篇blog,我希望她首先要感谢自己的妈妈,要是没有妈妈的坚持,她不会来到这个世界。另外,我也希望她长大后能为香港做一些贡献。

如果说我对内地还有一些期许的话,那就是少一些戾气、多一点人性,少做一些梦、多干一点实事。

v2ex

v2ex

我曾经很喜欢进这个网站(论坛),因为TA很自由,很小清新。

而最近却感觉厌倦。V站充斥着果粉、道德洁癖以及以及各色圣母婊。V站站长Livid似乎想以一种想象中的道德尺度来衡量会员。不能说这有什么错误,只是我认为没有什么唯一性的道德尺度,也没有什么人能充当道德标杆。当站长快意地进行评判、屏蔽言论甚至封杀会员的时候,我认为他已经和他反对的没有差别,无论他的理由听起来有多么高尚、多么合理。

V站的这种伪善让人乏味,回想每天手工签到,更是病态。

6to4 tunnel

6to4 tunnel

今天无意中发现,居然不用翻墙就能打开google和gmail,这简直太不科学了,我朝气象从此焕然一新?

本着“怀着最大的恶意揣测他人”的精神,我对此充满疑虑。于是拉出wireshark仔细dig了一下,发现了IPv6数据包,竟然是通过IPv6访问google和gmail!墙没有封锁IPv6,这实在是个惊奇的发现。

难道电信已经开始部署IPv6网络了吗?对此同样充满疑虑。但是有一点是肯定的:最近买的路由器是支持IPv6的。进入路由器管理界面,发现电信仍然是分配IPv4地址,但是在路由器IPv6设置项中,配置了“自动检测IPv6类型”,检测结果是“6to4 tunnel”,而且配置了IPv6地址。

看起来电信的确升级了网络,但是仍然没有真正部署IPv6,还在半遮半掩中,并且猥琐地限速了。有“6to4 tunnel”也还好,至少能访问外部IPv6的服务器地址。google和gmail等都部署了IPv6,因此可以通过IPv6来访问这些服务。而对于没有部署IPv6的服务,例如twitter之流等,依然还是无法访问。

不管怎样,这已经是向前迈进了一步。真心希望步子能迈得更大些!

2016-03-10 更新:好吧,我承认我还是图样了。