-
用 Face.com API 处理肖像照
之前某天, 我接了个任务: 把用户上传的照片(全身或者半身照)做处理, 输出一张从头到肩的肖像. 一开始我觉得很难, 因为高等数学什么的早就还给老师了. 但后来一想, “Not to re-invent the wheel”, 找个现成的脸部识别 API 不就可以了吗. 于是开始 Google “face detection”. 结果之中, 来自 face.com 的 API 帮我搞定了这个任务. 顺便把一个批处理的 ruby 程序贴上, 尽管写的很丑. require ‘rubygems’ require ‘net/http’ require ‘rest_client’ require ‘json’ ratio = 2.0 photos = Dir.glob File.join(“photos”, “*.jpg”) photos.each { |photo| puts photo res = RestClient.post( ‘http://api.face.com/faces/detect.json’,…
-
理财在猫本
来到猫本100多天了, 这么快就发财是不可能的. 只是顺便记录一下银行和理财的事, 供我有财要理的朋友们参考. 最优化的顺序是首先申请一个税号(Tax File Number), 基本上凭护照号码 + 签证 + 联系方式就可以获得. 不知道这税号是不是为了防止金融风暴什么的. 然后就是银行账号了. 好像凭护照和住址就可以吧, 因为当初我似乎也就这两样东西. 以我用的 Commonwealth Bank 为例, 常用的账号有两个: 一个是 SmartAccess, 类似我们熟悉的活期存款账号, 但利率基本上接近于0. 另一个是 GoalSaver, 类似于…似乎…可是以前真没见过这么好用的存款账号. GoalSaver 如其名, 是储蓄账号. 年利率1.75%, 这很低不是么? 但是仔细一看规则, 如果月末存款比月初高至少200元并且这个月内最多只有一次支取, 那么本月的利息将按照5.25%的年利率来计算, 精确到天, 精确到元. 也就是说如果每个月都增加存款, 最后年底取出, 将可以享有11个月的5.25%年利率以及1个月的1.75%年利率. 还得提醒, 没有税号的话利息会被银行扣押, 直到提供税号为止. 还有奇怪的是, 如果你的存款高于100,000澳元, 那么你只能享有1.75%的年利率. 难道说, 这是一家稀罕穷人的银行? 以我以往经验, 我不得不怀疑其”别有用心”了 😀 猫本这还有个很象征身份的卡, 叫做 Concession…
-
Ubuntu 12.04 + iMac
这次 Ubuntu 12.04 发布后, 新版本的 Unity 让我刮目相看. 我试用了一段时间后, 逐步从抵制转化为喜欢了. 终于我忍不住把公司的 iMac 交给 Ubuntu 了. 准备工作就是在 OSX 里面使用 Disk Utility, 把磁盘腾出一块来, 给 Ubuntu 留着. 然后就可以开始了. 首先, 我在 OSX 里安装 rEFIt, 一个基于 EFI 的多重启动软件. 装好之后重启 OSX 后, 就能看到 rEFIt 的启动界面. 可以使用 Ubuntu CD 也可以使用U盘, 然后在 rEFIt 里就可以启动到 Ubuntu 的安装程序. 在磁盘空白空间内装好 Ubuntu 后, 出了问题就是 Ubuntu 的启动管理器 Grub2 自以为是的接管了…
-
用 rsyslog 做专属的 log 服务器
对于一个网站服务器而言, 其磁盘操作应该是越少越好的. 尤其是一个高负载的服务器, 如果每分钟要处理成千上万个页面请求, 就意味着要记录相当数目的 log 条目. 磁盘IO是最慢的, 不是吗? 这种情况下很常见的一个做法就是将 log 写到另一台专属的 log 服务器以减轻负担. 比较”现代”的 Linux 系统里, rsyslog 基本已经是标准配置. 所以用一台 Linux 服务器作为另一台 Linux 服务器的 log 服务器并不需要什么额外的软件. 以运行 apache2 服务的网站服务器为例, 将 apache2 log 输出的配置基本如下: 1, /etc/rsyslog.conf […] #避免 local7 被 syslog 重复记录 *.*;auth,authpriv,local7.none -/var/log/syslog #将 local7 转送到 log 服务器 local7.* @SERVER_IP:514 2, /etc/apache2/apache2.conf […] ErrorLog “|/usr/bin/logger…
-
笑笑四岁两个月
这个月我工作很忙, 所以没有太多的记载笑笑的故事. 笑笑最近很淘气, 一天她把她妈妈都舍不得用的眼霜全给抹到镜子上了. 被发现后她妈妈很生气, 打了她屁股(当然, 肯定舍不得用力打的). 于是晚上我们俩都不搭理笑笑, 算是惩罚她. 第二天, 笑笑似乎睡了一觉就明白了, 说, 我错了, 不该乱动妈妈的东西, 也不能乱动爸爸的东西. 后来我想了想, 也许是因为陪她的时间少了她才故意胡闹的吧? 一个周末, 公司的麦口大叔组织我们去钓鱼. 笑笑原来在 iPad 上玩过钓鱼游戏, 听说我要带她去钓真的鱼, 甭提多高兴了. 到了渔场, 我先研究了一下鱼竿的用法, 然后教笑笑用. 笑笑对感兴趣的事物非常专注, 这点我很喜欢. 演示了四五次后, 笑笑基本学会了. 怕她把手刺破了, 所以上诱饵的事我还是代劳了. 然后笑笑抓住鱼线, 松开绕线框, 甩杆, 松开鱼线, 成功的把鱼钩抛到池中. 我帮笑笑锁上绕线框, 这时鱼漂突然沉了下去, 哈哈, 有鱼上钩了. 笑笑兴奋的不得了, 使劲的收线. 不过她力气还是不够的于是我帮她把那条馋嘴的鱼拖出水面, 甩到草地上. 同事的孩子们看到了, 纷纷过来围观. 这时, 笑笑说了一句让我害怕的话: 我还要钓! 她哪里知道钓上来的鱼是要过秤付钱的呢. 笑笑有了成功经验, 这回猛一甩杆, 啪,…
-
工作, 方法与态度
时间过的真快, 转眼我已经在猫本工作了一个半月了. 分享一下我的经历吧. 首先是工作环境. 办公室是在一个完全开放的空间内, 看格局就像网吧一样. 独立的房间用作会谈和培训. 虽然老板自己留了一间, 但也没见他把自己关在里面, 而是坐在长条桌旁. 每天早上公司会有个例会, 大约只有5分钟. 简单到大家只是走过来站个圆圈, 然后由最后过来的那个同事开始总结昨天的工作并提出今天的计划. 刚开始几天, 我很多事情都没个头绪, 一紧张, 英语也掉链子了. 于是老板帮忙串台词: 昨天做的不错, 今天呢? 当然这个不是必须要说详细的, 有时同事也会说, 昨天太忙了, 忙什么我都忘了, 今天继续忙吧. 公司墙壁上有个任务栏. 软件尚未完成的功能, 或者存在的问题, 会被写在卡片上. 同事可以一早来领取一个”任务”, 把卡片拿下来贴在自己桌面上, 完成后把卡片交给下一个流程的同事, 算是完成任务了. 每个卡片上还会根据任务难度系数标记一个分数, 开发团队的队长每个周期(两周)会计算一下所有同事完成的分数总和, 作为团队进展的参考. 一次有人问老板最喜欢什么游戏, 老板说, 最喜欢玩纸牌了(卡片/纸牌都是一个词Card), 于是大家爆笑. 对于工作态度, 我十分赞赏我的同事们. 从早上入座位, 他们就立刻进入工作状态. “半场休息”时, 也似乎只有讨论工作中问题的. 午休时才有”八卦”话题出现. 但下午5PM一过, 他们齐刷刷的开溜, 能加班10分钟的就是队长了. 每两周, 也就是一个开发周期, 会有一个回顾(retro)会. 每个人都可以在白板上写出自己的得意之作或者他人的糗事,…
-
猫本的单车行者们
到猫本快3个月了, 很多事情都是让我大开眼界的. 其中之一就是这些骑单车的路人们. 他们穿着很职业, 从头盔, 太阳镜到紧身的衣裤以及精良的单车, 让我误认为他们是公路上训练的运动员. 有了工作之后, 我发现团队内的几名软件工程师在下班之后, 就会”变身”成为”运动员”, 戴上头盔, 换上紧身衣, 然后骑着单车消失. 后来有一天, 团队里甚至只有我是开车来上班的, 他们戏称我降低了团队的绿色环保指数. 渐渐的我开始羡慕他们了: 虽然个别路段开车能开到限速, 但总体算下来, 开车上班的平均速度也许还不如骑车. 而且猫本这里空气质量很好, 早晚各一次有氧锻炼还能省下汽油钱呢. 只是, 单程就25公里有点远了. 所以我能做的也就是继续羡慕他们吧. 今天陪老婆去教会, 顺便一说对骑单车的羡慕, 结果一位大哥就决定把他闲置的旧单车送给我了. 哈哈, 真难得, 他个子跟我差不多, 也许他的单车送给别人还怕不合适. 非常感谢! 我打算周末先开始小打小闹的练练. 🙂
-
在 Debian 6 上安装 GroundWork
GroundWork 是很漂亮的 Nagios 前端, 并增加了很多易用的功能(单纯的配置 Nagios 很头疼对吧). 而且根据目前 GW 的销售方式, 管理50台设备以下的情况可以免费试用, 提供 Email 即可: http://www.gwos.com/downloads/core/ 在 Debian 6 上安装 GW 时还是有些小问题, 就是 PostgreSQL 提示SHMMAX (最大共享内存?)值不够大. 按照如下方式调整一下, 即可安装: sysctl -w kernel.shmmax=2147483648 sysctl -w kernel.shmall=524288 sysctl -p 第一次运行会提示要求输入 License, 如果之前提交了 Email 地址的话应该已经收到了, 抄过来就可以了. 另外 check_icmp 这个命令有时候会出现”setuid or root”一类的问题导致误报. 按照如下方法可修复. chown root:nagios check_icmp chmod 4750 check_icmp 尚未没发现其它问题. 😀