Latest stories

Catching Car Mileage Numbers

Kata

“7777…8?!??!“, exclaimed Bob, “I missed it again! Argh!” Every time there’s an interesting number coming up, he notices and then promptly forgets. Who doesn’t like catching those one-off interesting mileage numbers?

Let’s make it so Bob never misses another interesting number. We’ve hacked into his car’s computer, and we have a box hooked up that reads mileage numbers. We’ve got a box glued to his dash that lights up yellow or green depending on whether it receives a 1 or a 2 (respectively).

It’s up to you, intrepid warrior, to glue the parts together. Write the function that parses the mileage number input, and returns a 2 if the number is “interesting” (see below), a 1 if an interesting number occurs within the next two miles, or a 0 if the number is not interesting.

Wrapped Function

Kata

Create a function method that allow you to wrap an existing function. The method signature would look something like this:

Usage Example:

function speak(name){
   return "Hello " + name;
}

speak = speak.wrap(function(original, yourName, myName){
   greeting = original(yourName);
   return greeting + ", my name is " + myName;
})

var greeting = speak("Mary", "Kate");

ES5 Generators(i) 和闭包 closure

Kata

Description:

This is the first part of three (part2, part3).

Generators and Iterators are new ES6 features that will allow things like this:

function* fibonacci() {
    let [prev, curr] = [0, 1];
    for (;;) {
        [prev, curr] = [curr, prev + curr];
        yield curr;
    }
}

Using them in this way, we can do amazing things:

let seq = fibonacci();
print(seq.next()); // 1
print(seq.next()); // 2
print(seq.next()); // 3
print(seq.next()); // 5
print(seq.next()); // 8

This is powerful, but until a few months later, ES6 will not be born.

The goal of this kata is to implement pseudo-generators with ES5.

Hexo 部署到新电脑

换了新的电脑,想把在 hexo 上的部署文件转移到新电脑上。因为提前在 github 为此做了一些工作,就是按照网上一些朋友的建议,在 github 上创建两个分支,一个分支 「master」 用于 hexo 部署,另一个分支「hexo」用于存储源文件。这样当需要在一台新电脑上使用 hexo 时,只需要把源文件 clone 到本地就行了。但事情总不是一帆风顺😅。今天遇到的问题是,把源文件拉到本地以后,每次执行 hexo d 部署, 都会把所有源文件都部署到 master 分支上。按照常理,应该是只有 public 文件夹里的内容才会放在 master 分支下的。

「骑着白马入地狱,叼着纸烟进天堂」

  • 這一年在德國的生活回顧
  • 『孤獨指南』
  • 直播節目,心理療傷,自我慰藉
  • 語言學習的瓶頸
  • 當學習少了儀式感

畢業一年

來之前,沒曾想到自己會在德語考試上停留這麼久。

二〇一六年九月到二〇一七年九月。

二〇一六年九月底到德國,處理很多事情,落戶,銀行卡,房屋合同,保險,找房,還有房屋的衛生問題,自己又盲目的報名了十一月份的考試,當時由於整個大四下忙於畢設,疏於德語的學習,等我到德國時,德語退步很大,加上剛來的不適應,十一月考試結果特別差。然後十二月找房,一月份搬入新家。二月份的時候又考了一次,結果較上次有很大進步,到三月份,自己在 Tandem 的六個月語言課程結束,然後是面臨四月的考試,那時的狀態也是最焦慮,最混亂的,當時覺得如果考試考不過就全完了,巨大的壓力和焦慮也導致了考前複習的極度混亂,甚至一度的通過上網來麻痺自己,緩解焦慮,清楚的記得考前的一晚都還在看著 BiliBili 網站的視頻,想要逃避現實。四月底的那次考試考完,反倒讓我開始反思自己的學習模式,然後是五月份自己開始了極度自律的一個月,每週統計,效率上很高,直到六月二號開始,黃同學的到來,我那極度自律的狀態也隨即結束了。從六月二號到六月十四號又回到考前的極度緊張和焦慮,加之考前一天得知四月的考試結果,頂着巨大的壓力和焦慮又去考了六月那一場。雖然五月份自己極度的自律地在複習,但複習方向以聽力,口語為主,沒有很集中的背單詞和準備句式,考試最終還是在寫作上吃了虧。

端午

关于端午的几段记忆

其实现在想想,最后悔的大概是大学本科时代,没有像现在这样,对时间规划,时间管理有非常深的思考,没有在本科就把英文学得足够的好,没有在大一大二就开始接触播客,开始阅读英文教材。我每次站在现在去回望过去,都总会觉得过去的自己幼稚到不行,很难想象过去的自己在看着过去的过去的时候,也是一样的想法。

时值端午。如果不是在社交网络上看到些许的关键词,远离中文社会很长时间的我是感受不到任何节日的气息的。我想分享几段个人关于端午的几段记忆,或许也是,关于端午我能想起来的全部事情。

Habitica 的量化人生

从去年十二月开始,自己一直在使用一款效率软件 Habitica 来进行管理生活。本来我已经对所有 to-do 类的效率应用都失去信心了。Habitica 别出心裁的「游戏化」概念真的戳中痛点。这也是它能够在众多效率类应用中有着明显区分度的原因。而在使用了几个月之后,我发现这种「游戏化」是一种很好的量化工具。它把你生活中大大小小的事件,量化为不同的价值。这样的价值则是通过「经验」、「金币」、「魔法值」、「生命值」来进行体现的。

「有目标,能坚持!」

碎片式学习

最近花了¥30买了 Reeder,一个 RSS 阅读应用。用起来,左划右划的快捷操作,可以按照时间顺序排列的 feed,黑白风的 UI,各方面都要比 Feedly 出色。一个好的软件和应用,交互的好坏直接决定了你打开它的次数。显然,我更愿意打开 Reeder,甚至愿意直接在 Reeder 进行阅读。而以往所有的阅读活动都是在稍后读应用中进行的。但是在我用了有将近两年的 RSS 工具,我都没有意识到,这样的一种阅读活动,其实不比微博,twitter,高出多少,本质依然是碎片式的学习,碎片式的阅读,其内容来源也都是来自互联网快速烘焙的产品,哪怕依靠大厂,哪怕是 New Yorker,the economist,每篇文章的保存时间会有多久呢?

Samorost 的银河历险记

「Samorost」是来自捷克开发者团队 Amanita Design 的作品,中文译名「星际历险记」,如果之前有玩过他们的作品比如「Machinarium」,便能提前对他们的作品风格有所预设。「Samorost」和前作「Machinarium」风格相似,都是相同的鼠标点触操作模式,内含大量构思巧妙的关卡,人物沟通采用了会话气泡加动画的形式,暗藏的手绘攻略,以及故事核心都是一个子供向的童话。

以下涉及剧透

名为丢失的记忆

『カイバ』(读作:Kaiba)可能会是一部我目前看过的汤浅的所有作品中,最喜欢的一部,喜欢的程度已经超过了『ケモノヅメ』(读作:Kemonozume)。在之前我的另一个系列文章「间隔年日记 #008: 人体机器」中,我曾经得到了这样的结论:

分类

标签