不只是家具,而是亲手打造自己的美好生活——宜家游记

新年伊始,公司也换了新的办公地点。对于IT一族而言,办公环境要求其实很简单:如生命线的网线「永远不嫌快的网速」,舒服的椅子,足够宽敞的桌面,当然还有越多越好的显示器。而这个周末的任务就是要解决桌椅的问题。

帝都看起来挺大,其实符合自己口味能选家具地方却数都数不出来。单纯的买办公家具其实很可以很简单粗暴的——随便找一个家具城,然后到办公区任意点几个桌子、椅子,完事收工。但是,作为想把办公区域搞得温馨一点的IT族,总觉得这样做缺了一点「家」的感觉。于是,似乎就只剩下宜家这一个选择了。

宜家是早有耳闻,但是真正让自己深刻的记住是《蜗居》中,郭海藻与宋思明在选家具的时候,郭满心憧憬的向宋描绘自己对宜家家具的向往,结果却被送宋「批评」没有品位。这里不谈剧情前后文,单就郭的表述而言,基本上可以代表宜家在国人眼中的位置和面向的消费人群。知乎上邬炫良的总结挺中肯,摘要如下:

宜家的消费者主要是年轻人,喜欢新鲜乐于尝试,所以宜家的商品预期使用期都是三年左右(数字是个人猜测不准确),不像传统的家具行业,预期使用期都是八年以上(同猜测)甚至更久,大概是因为在中国人心目中“家庭”的观念很重,所以家具作为一种象征,也需要有经久耐用的属性。
宜家注重的是设计,鼓励尝试不同的生活,赋予家具和衣服一样可以轻易替换的属性。从价格上我们也可以看出,宜家家具的价格其实是比较便宜的,是属于使用三四年以后替换掉你并不会觉得心疼的价格(对它主要的消费人群来说)。
所以这也是有些人觉得宜家家具质量不好的原因,它的家具确实不具备长年使用的特点。
但是它的卖点,也就是它的设计和价格,正中年轻人的下怀,再也不用长年面对同一套家具了!
所以宜家真正的忠实受众,会在不缺家具的情况下,仍时不时去逛逛宜家,看有没有新的产品。而传统的家具店里,基本上只有刚刚结婚的或者刚生了孩子的人在逛。
这就是宜家为什么看起来热闹而普通家具店看起来冷清的原因之一(生意好的原因还有很多,比如口碑比如体验但是题目是针对质量与生意的关系就不赘述了)。

抛开成本不谈质量,宜家的家具在具有设计感的同时,价格相对便宜。且标准化水平远高于国内家俬。更重要的是,对于想要孩子的小夫妻,相对不用担心甲醛等问题。

走进宜家,感觉这不是一个家俬卖场,而是在一个壕的大别墅里闲逛,一切安排布置居家而温馨。很多女生在这里自拍的不亦乐乎,如入无人之境。很多屌丝男直接睡在宜家的体验床垫上,真是一个绝佳的午休场所呀。

搜寻的第一个目标是桌子。自己对桌子的要求是这样的:宽大的桌面,稳定的桌脚支撑,高度可调节。简单来说,就是一个桌子该有的样子即可。可即便是这种要求,很多时候却不得不面临只有小隔间桌子可选的窘境。而这一次在来到宜家的办公区后,却发现几乎所有的桌子都是「桌子该有的样子」。

第二个目标自然是椅子。自己对椅子的要求也很简单:高背,带腰部支撑,高度、角度可调节。理想的选择当然是Herman Miller Embody,不过考虑到自己的预算以及边际成本,还是打算在IKEA选一个功能OK,价格也能接受的产品。而这一次,宜家又一次没有让自己失望。

选好以后,到楼下仓库推着小推车取零件,然后交给送货部分。最后就等着在家自己组装家具了。宜家的家具不含送货,需要独立支付,这点挺不爽的。不过送货还挺快,一般隔天到。

跟小伙伴们忙活了一个下午,终于组装完成。而且在组装的过程中,大家前所未有的热情高涨,干劲十足——连要赶去三亚度假的童鞋都差点想推迟航班了:) 不得不深刻的同意老高所言:

你不是在买家具,而是在亲手打造属于你自己的家。

老实说,在这点上,中国的几大地产商没有宜家理解得深刻。

新的开始,Fighting!

39B11A336CE4FC6A0360B1816A2217EA

为你的LAMP配置SSL证书

问题背景

对于一些涉及隐私以及对安全级别有一定要求的web业务,最简单的做法是走https,如网银、github、google的加密搜索。

当客户端通过https访问web服务时,服务器通过想客户端传递其持有的CA (Certificate Authority)颁发的证书,以证明其可信的身份。然后配合服务器的私钥对会话进行加密,从而保证客户端与服务器“安全”的通信。具体的流程及细节可以参见这个视频

其实https能提供的安全保护是极其有限的,有很多绕过/攻破这条线,顺利拿到用户数据的案例。其中比较有名的是黑帽09上面的一次公开展示,感兴趣的话,有两篇文章可以研究一下:

回到主题,我为自己的LAMP配置SSL证书的原因是升级到iOS 7.1后,以前通过in-house发布的几个app无法安装了,提示“证书错误”。7.1以前,可以通过http的方式把in-house发布的app挂上去,7.1及以后,必须走https。知道原因以后,解决起来就很简单了:

  1. 生成私钥server.key, server.csr
  2. 向CA申请证书server.crt
  3. 配置apache SSL证书

生成私钥server.key, server.csr

可以在线生成,也可以通过openssl自己生成server.key:

openssl genrsa -des3 -out server.key 2048 // 推荐至少2048以上
openssl req -new -key server.key -out server.csr -config openssl.cnf // 生成csr (Certificate Signing Request)
cp server.key server.key.orig // 养成习惯,备份私钥
openssl rsa -in server.key.orig -out server.key // 移除私钥的pass phrase

向CA申请证书server.crt

申请证书的意义在于:因为给我颁发证书的结构是可信的,且我可以证明我持有的这个证书是这个可信结构颁发给我的,因此我也是可信的。

证书的获取一般有两种方式:

  • 自己签发证书,这是二逼青年的做法。很不幸,我们的12306.cn同学就是这么搞的。虽然自己签发证书约等于没有安全性,但是天朝人民还找不到第二个在线买火车票的地方,所以,你懂的……
  • 向可信CA申请,这是普通青年的做法。之于文艺青年嘛,都去做全球仅有的那几个可信Root CA去了。

CA方面,有人说天朝的基本不靠谱,严重不推荐。我没去深究,有这方面实践经验的同学不妨谈谈。就我个人使用情况来看,推荐两个国外的:

  • VeriSign, 产品全面,服务优质,价格也比较贵。提供短期测试证书申请,但是trial测试周期只有30天,且必须在浏览器上加一个测试的根证书,基本没有可用性。如果开发者要测试证书可用性,还不如自己签发一个来的方便。天威诚信主要就代理VeriSign的产品,另外,支付宝就是用的天威的办法的证书。
  • StartSSL, 价格低廉,且可以提供免费一年的Class 1证书。免费一年证书申请可以参考这里

在墙内,中国金融认证中心也在业界做的不错。我手里有一份全球各大CA的价格表,能比官网给出的价格优惠不少,对于创业公司来说还是有必要考虑节省一下这部分开销,感兴趣的可以email我 liudaning[at]gmail.com。

配置apache SSL证书

假设CA颁发的证书为server.crt,对应的私钥为server.key(已移除pass phrase)。apache配置主要有两部分:

  • 开启ssl module
  • 设置证书和私钥的路径

httdp.conf参考配置如下:

完成以后,重启apache。

基于AWS EC2 & WordPress搭建个人Blog笔记

随着coud computing的发展,越来越多人将自己的平台搬到了云主机上来,尤其是中小、个人站点。对于中小团队以及个人站长而言,对一个云平台的考量,除去价格因素,考虑最多的应该是该云平台的其他配套服务,如海量存储服务、缓存服务、负载均衡服务、邮件服务等。如果只从这两个维度来看,业界的翘楚当推Amazon Web Services (AWS) 「因为总所周知的原因,只能为Google App Engine感到遗憾……」。

两年前就听闻AWS要在天朝建IDC了,可是到现在,也仅仅是上线了中文网站罢了。IDC建在墙内的好处当然是更好快速的访问速度,但是同时也面临着匪夷所思的监管制度。但是这并不影响我们体验AWS提供的优质的服务,从可用性来看,用户过亿的Instagram在墙内使用也是没有什么问题的;从价格上来看,AWS现在注册以后绑定信用卡就可以免费使用一年费使用套餐介绍」,虽然是温水煮青蛙的策略,但是就事情本身来看,还是挺不错的。

下面简单说一下在AWS上使用其EC2建立个人Blog的过程。

1. 建立主机实例

  • 登录管理控制台,进入EC2
  • 选择Launch Instance,我这里选的是亚马逊推荐的Amazon Linux AMI 2013.09.2:

    The Amazon Linux AMI is an EBS-backed, PV-GRUB image. It includes Linux 3.4, AWS tools, and repository access to multiple versions of MySQL, PostgreSQL, Python, Ruby, and Tomcat.

  • 默认是公/私钥认证登录。记得保存好自己下载的私钥。启动主机后,使用默认用户名ec2-user/私钥登录主机:

    ssh -i your_private_key.pem ec2-user@1.1.1.1

    • 亚马逊的控制台自动生成的命令有一个bug,就是他给出的Example连接命令会把你私钥名称中的「空格」直接附上,如果是复制粘贴党,注意自己去除空格。
    • 如果想要通过口令访问主机,可以在通过证书登录后:
      1. 设置ec2-user的密码:sudo passed ect-user
      2. /etc/ssh/sshd_config中将PasswordAuthentication no–>yes
      3. 由于AMI不允许直接使用root登录。如果想允许的话(不推荐这样做,存在安全隐患)可以通过将/root/.ssh/authorized_keys中的如下内容删去:

        command=“echo ‘Please login as the ec2-user user rather than root user.’;echo;sleep 10

      4. 重启ssh服务:service sshd restart

2. 安装apache mysql php

AMI通过yum安装:

yum -y install httpd php mysql mysql-server php-mysql

默认情况下apache和mysql服务不会开机启动。可以通过chkconfig命令设置一下:

chkconfig httpd on
chkconfig mysqld on

3. 设置主机实例的固定IP

最开始使用EC2主机的童鞋可能会觉得亚马逊的“主机每启动一次,主机IP就变化一次”非常坑爹。这个问题可以通过设置Elastic IP与主机实例绑定解决。从细粒度管理角度看,亚马逊这点非但不是缺点,反而提供了良好的带宽接入选择空间和扩展余地。

4. 安装WordPress

WordPress本身的安装非常简单。但是新版的WordPress插件是通过ftp的方式安装的,也就是说你的主机实例需要跑一个ftp server。这里推荐使用vsftp:

yum -y install vsftpd

然后注意设置用户默认ftp目录为WordPress安装目录的顶层目录。编辑/etc/vsftpd/vsftpd.conf,修改local_root=your_path.

WordPress安装插件的时候,如果填写自己的域名无法,那么就填写127.0.0.1。
如果插件下载下来安装失败,那么可能是wp-content/plugins没有写权限,尝试:

chmod -R 777 path_to_your/wp-content/plugins

最后,上线自己的Blog之前别忘了启用gzip压缩提高访问速度,节省带宽。apache可以通过deflate模块实现压缩。向httpd.conf中添加该模块配置信息即可。参考配置:

<IfModule deflate_module>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>

启用gzip压缩后,记得重启apache服务。

可以通过Google的网页在线测试工具对比一下启用压缩前后的变化。怎么样,效果还是挺明显的吧?

 3月1日更新

服务器跑了几天以后,发现服务器每隔一天就崩溃一次。后来发现是因为AWS Linux AMI默认swap大小为0造成的(好奇怪的默认值……)。知道原因以后解决方法就简单了,只需要建立一个swap交换空间即可,大小一般为物理内存两倍。