1. 下载字体包
  2. 下载后打开TTF文件夹,依次打开ttf文件并安装字体,Mac上会打开“字体册”程序。
  3. 在Emacs配置文件中添加 (set-default-font "Source Code Pro 12"),其中12为字号。

Install source code pro font

当记录在 Card 的 description 中的内容被误删了,可以用这里介绍的方法找回。

Trello其实记录了 description 的修改历史,但并没有提供界面功能来查看。目前有一种方法是通过API去获取,前提是需要获得API key和一个Token。

Key 和 Token 的获取

在这里 https://trello.com/1/appKey/generate 获取。

接口

获得了 key 和 token 之后,就可以通过API调用,返回结果中就有修改历史了。

例子

https://api.trello.com/1/cards/[card id or shortlink]/?actions=updateCard:desc&key=[KEY]&token=[TOKEN]

文档

https://trello.com/docs/api/card/index.html#get-1-cards-card-id-or-shortlink


Trello API Documentation文档是关键,看其中 API Reference 的部分标着 Beta ,看来有可能会变,一切以文档为准。

cover

这是讲软件设计的一本相对较短的一本小书。 购买地址: https://leanpub.com/4rulesofsimpledesign

4个原则是:

  • Tests pass
  • Expresses intent
  • DRY
  • Small

测试是基础;命名要表达明晰贴切;拒绝重复;保持代码短小。解释了4个原则之后,使用实现生命游戏为例来说明这些原则。

另外一些吸引我的点:

快速判断是否有 Duplication 的方法

一段代码的实现,考虑如果发生变化的话,其他地方是否也需要修改,需要修改的地方可能就是有重复代码的地方。因为没有很好地隐藏实现。

Tell, Don't Ask

其中提到了 “Tell, Don't Ask” 原则。

去命令对象做什么,而不要依赖一个对象的状态去决定下一步做什么。将这个判断隐藏到对象的实现中。否则就是“leaky abstraction”。

Bad:

def street_name(user):
    if user.address:
        return user.address().street_name()
    else:
        return ‘no street name’

Good:

def street_name(user):
    return user.address().street_name()

class Address(object):
    def street_name(self):
    return self._street_name or 'no street name'

class User(object):
    def address(self):
        return self._address or Address()

遵循这个原则的好处明显,减少逻辑,代码更简单,对象的实现更凝聚。

Unwrapping 方法

Bad:

class Num(object):
    val = None

    def greater_than(self, other_num):
        return True if self.val > other_num.val else False

Good:

class Num(object):
    val = None

    def greater_than(self, other_num):
        num1, num2 = self, other_num
        return self.compare(num1, num2)

    @classmethod
    def compare(cls, num1, num2):
        return True if num1 > num2 else False

第二种实现的好处是:在做 greater_than 时,不必再去接触Num对象的内部。

优步Uber使用体验

2014-08-01 10:47:29

周末在北京用了一次优步(Uber)的服务,体验不错。我的优惠码是: UBERZCH,使用后账户中会赠送50块钱,可以免费乘车了。

优步Uber是类似于滴滴打车的招车服务,不过是豪车版的滴滴打车,iOS和安卓都有App,体验都不错。目前在国内Uber是和租车公司合作,Uber只出平台,租车公司出车和司机,然后分成的一种形式。

用车体验

订车分为总共两种类型:一种是UberX,车型包括帕萨特,索纳塔和别克GL6商务车;一种是UberBLACK,车型是奥迪A6L。

我订到的车型是别克GL8商务车,从订车到达到全程用时半小时,从大望路到东四十条,稍有堵车,费用一共33元,使用了优惠码后一分钱没掏(其实这次行程这距离应该直接订UberBLACK比较划算)。

Uber计算的费用由三部分组成:第一部分是起步价15元,第二部分是行驶里程的费用:5.87公里 x 2.3 = 13.49元,最后是计时费用,每分钟4毛,行驶了00:13:24,看起来时间是从乘客上车才开始计时的,折合5.36元,全算下来一共33元。

订车过程很顺利。我在手机上默认选择UberX,设置好目的地后下单,几乎是瞬间司机就接了单,然后能看到司机向目的地行驶。车快到时我电话联系了一下司机,确定了具体位置。

我对别克车型不熟,一开始以为是辆轿车,约好的路口两边正好停了一边一辆别克轿车,可是看车牌号都不对。就在我正拿着手机念叨车牌号时,旁边一个声音应和了我,一看是一辆六座别克商务车,直接上了车。上车后发现车内非常干净,乘坐非常舒适。

行驶过程中,司机的手机开着应用立在前面,可以看到一直在实时记录行驶轨迹,到达之后司机确定完成订单,同时我这里就显示出了费用,并可以给司机评分,另外司机也会对乘客进行评价。

车辆基本九成新,十分干净,司机穿得比我高档多了... 只是不太爱跟我聊,只在最后求五星时才提起点情绪。

关于优步(Uber)

从应用里的地图上看起来车不多,在国贸附近显示有三四辆车在移动。可能是离他的热点地区不远的原因,订车时司机用了还挺快,是从光华路开过来的。说是目前北京在三里屯和国贸相对比较容易订车,其他地方越远越费劲。

Uber这名字有点吃亏,中文名“优步”感觉也不太接地气,全程司机没提过一次这名字。

优步的价格具体是怎样的?

在北京Uber X(平价车服务)系列租车起步价仅为15元,每公里单价2.3元,每分钟0.4元,在北京服务的最低消费20元。

而Uber Black(Uber的高端车服务),例如约一辆奥迪A6,价格则为起步价18元,每公里单价3.85元,每分钟0.7元,最低消费30元

和打出租车做一下对比:相同的里程,如果打车的话应该到不了30元,算上堵车情况我估计二十七八块应该够了,基本算是较近的距离,所以基本上要贵出两成左右的样子。由于里程单价是相同的,所以多出来的就是 2块起步价差价(15元-13元) + 每分钟4毛的时间费用。

优惠码

我的优惠码是: UBERZCH ,使用这个优惠码,你我都将享受50块的优惠,可以免费坐一次车了。也可以直接点击这个链接进行注册

车费账单

最后提一句 Uber 名字的发音问题:美国人念 Uber 好像是 “ooo-ber” ,也就是说“U”是发“乌”的音,我一直念成了“优”。

Podcasts

2014-07-21 23:10:16

天气变暖后开始骑车上下班,眼被占了,还剩半只耳,路上我就听Podcast,打发了时间也锻炼点听力。喜好是科技,科普,音乐和英语学习。下面说几个我喜欢的podcast,然后介绍一下我在用的Podcast应用。

Podcasts

Tech News Today

我听得最多的节目。每天聊最新的科技新闻。我都是听音频,后来发现其实本来是视频节目。

每期时长:30-40分钟。每周一到周五不见不散。

Tech Weekly

英国卫报的英音科技访谈节目。

每期40到50分钟,每周都有。

Everything Sounds

如其名,关注于声音,基本都使用原始的录音,不局限于谈话,有可能是音乐,甚至环境声音,很有意思。

比如第45期,Sounds of Skateboarding,记录了 Brad Stencil 使用玩滑板的声音来制作音乐的故事。

每期时长:20分钟,较短。

The Why Factor

科普类别,来自BBC。

6月的一期 “Accents” 讲了一个本来说着纯正英国口音的英国女人一夜之间口音全变,变成了说带浓重法国口音英语的奇事。

Song Exploder

大部分是找音乐人聊一首歌的制作等背后的故事。

有一期专访了我喜欢的动画剧集 Bob’s Burgers 的creator - Loren Bouchard,才知道原来整个剧的配乐都是他自己搞的。

每期20分钟左右。每月两期的节奏。

English as a Second Language Podcast

当我有一段时间听啥都费劲听不进去时就听这个,这个英语学习Podcast很老很著名了吧。

每期20分钟左右,隔几天就更新,很频繁。

糖蒜广播

京味聊天,很好玩。

Apps:

Downcast

收听的软件我一直在用Downcast,之前还用过一段Instacast,有一次更新后不爽就换Downcast了。

  • 可设置搜索Podcast的地区,否则搜到的都是华语节目。
  • 可限制每个节目最多保留几期,感觉开发者比较重视空间的占用情况。
  • 可设置到达或者离开某个位置时就开始更新下载最新的节目。
  • 有Mac版本,并且可以和iPhone同步,在电脑上可以从手机上听到的地方接着听。

Overcast

这两天在试用 Marco Arment 新搞的 Overcast,并且买了30块的内购,据说有提高音量,自动去掉静默片段等功能,不过我暂时还没体会到。

从Downcast导入了订阅的所有Podcast,导入后Overcast立即开始下载每个Podcast的最新一期节目。有个缺陷是如果订阅了几十个Podecast,会全部下载下来,会占用几个G的容量。并且在时候使用中,每个Podcast都会使用默认设置,保留最新的三个episode,容量着实吃不消,后来我才Get到可以到每个Podcast里单独设置的技能。( 据说会在之后版本中添加批量修改设置的功能: https://twitter.com/OvercastFM/status/491053053953331200 )