Forrest Ye's Blog

Connecting the dots

冲浪记

不管从什么角度去看,学冲浪对我来说都是极有意义的一件事情。

脚上绑着脚绳,一手夹着冲浪板在沙滩上走着,的确很容易让人自我感觉良好。然而,到了海里就完全是另外一回事。首先,你得推着冲浪板直面大海,一步一脚印地,努力向前。站在水中,手扶着冲浪板,在较快的水流冲击下稳步前进已是不易,何况还有不断袭来的浪头:大浪过去之后的湍急水流,可以轻易地把措手不及的你往回带好几米。

每隔十来秒,就有一波海浪来袭,每一波浪头都有半米到一米高。你很快学会了正面和它对抗不是最佳的策略:正确的对策是,在浪到达的那一刻,迅速在水中起跳,用身体的力量压住浪板中后部,爬过一浪。习惯了之后,这种节奏有点像在与海共舞:一二三四,五六七八,踏步前进,优雅起跳。Rinse and repeat.

随着你逐渐深入大海腹地,海水的深度很快就接近你的身高,是时候彻底告别陆地,趴到冲浪板上,开始划水了。对于初学者如我来说,能够稳稳地呆在板上,并且划水前进是一件很困难的事情。首先,在海浪不断的冲击下,在板上保持平衡就是一件不是那么容易的事情:你得让身体重心位于冲浪板的中轴线,身体靠后,在板上的位置恰好让你的双腿伸直、双脚并拢后用脚趾可以抵到冲浪板的尾部边缘。好了,学会快速找到板上位置之后,就是在短短的几秒钟时间里面调整板的朝向,正面面对下一波浪头的冲击。

面对浪头基本有两种不同的应对方式:如果它不够大,则你可以双手抓住冲浪板两侧边缘,在恰当的时机猛地把上半身抬起,让头部高过浪尖:这样你不至于在海浪的冲击下短暂失去视野和呼吸。然后在浪头过去之后迅速身体向前调整重心,重新牢牢将冲浪板压在身下,双手恢复划水,为下一波冲击做准备。

如果海浪很大的话,则是完全另外一种策略,因为直接的高压对抗几乎肯定无法奏效。这个时候你需要做的是,身体向前控制重心前移,让冲浪板做出一个下压的角度,双手牢牢抓住冲浪板两侧,身体紧贴板面,在浪头打到之前一瞬间深吸一口气,闭上双眼,然后用冲浪板的头部刺穿海浪的身体。如果运气好的话,你没有被海浪打翻,这时你可以恢复身体重心在板中后部的状态,打起精神继续划水,等待往后必然继续到来的下一波浪潮。

说到划水,抛开大海周期性的对你和冲浪板的冲击,其实划水本身可能才是最难的环节。你明明已经使出吃奶的力气,手臂已因为连续不断的机械运动几乎无法抬起了,回头一看,并没有前进多少米的距离。然后呢,一个浪头又把你打回原地。

好了,费劲九牛二虎之力总算深入敌方腹地,这里海浪来得没有那么频繁,但是每次脉动都十分有力。现在你要做的,是耐心地等待合适的时机。据说最优秀的冲浪者,把大多数时间都花在静静地呆在海面上,寻找合适的时机这件事情上。

什么样的时机是合适的时机呢?我的身体比我的大脑更早地学会了如何做出正确的判断。一只海鸥掠过,远方的海面逐渐升高,没等身体的控制中心发出指令,鼻子就提前嗅到了体内分泌的肾上腺素的味道。快!划水!掉头!

成功迅速掉头之后,就是疯狂地划水,意图在浪头打到之前获得足够的初速度:这是关键中的关键,关乎到你是会被这波海浪带走,还是被留在原地。

正在没命地划水的你,突然间感受到了来自身后的强大力量。赶紧收手,调整脚上姿势,身体紧贴浪板,双手抓紧浪板边缘。海浪的力量越来越强,身下的冲浪板摇晃得越来越剧烈,你获得的速度也越来越快。

迅速地,你双手一撑,在冲浪板上站了起来。

海浪带着你以极高的速度向岸边冲去,而冲浪板上的你,也逐渐掌握了在高速中保持平衡的诀窍。

1794年拿破仑带领四万大军,经过重重阻碍翻越阿尔卑斯山脉,看到意大利就在眼前。

从斯里兰卡回来这么多天了,今天回想起当时在海上的情景,脑海中浮现的却是这样的另一个故事。

下次去学滑雪吧。

Status Update

I started working on this project since last November:

modouwifi.com

It’s pretty overwhelming but with a lot of fun!

What is so special in modou router? We have an awesome touch screen. Configuring your WiFi network has never been this easy, even your mom can do this.

Curious about what the experience of the router will be? We’ve created a touch screen emulator

You definitely should try it out now:

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$ BEGIN OF AWESOMENESS $$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

http://modouwifi.github.io/TP-Emulator/

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$ END OF AWESOMENESS $$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

With this screen, you also don’t need to worry if anyone is stealthily stealing your WiFi, because we have anti-theft built-in, enable it, you can still get notified / block access of suspicious clients even they somehow have the password of your WiFi network:

anti-theft

We’d love to build an awesome community, therefore we have open-sourced a bunch of stuffs on GitHub at https://github.com/modouwifi

For example, the modou router has a set of nice HTTP/JSON API built in: https://github.com/modouwifi/modouwifi-api

For the nerds like us, we have command line tools built on top of the HTTP API for controlling the router:

What is more fun? We have a framework for building applications which will run on the modou router: https://github.com/modouwifi/app-framework

Sample applications (plugins):

We also have API for building apps for the screen/touch-panel: https://github.com/modouwifi/modou-tp-api

Wait, API for the touch screen? Is that even possible?

Well, check this post from our forum, see what good folks have already done with the touch screen API:

插件Modou-Love - 七夕送路由器给妹子吧

One more thing…

We are looking for awesome iOS engineer(s) to join us, ping me on Twitter @forresty if you are interested.

Mike Markkula and the Vision of Apple Computer

Originally from Steve Jobs by Walter Issacson:

At age 33 Mike was a millionaire after selling his stock options at Intel after it went public and was practically retired. He got impressed by seeing Apple II demo. He proposed to Jobs that they write a business plan together. “If it comes out well, I’ll invest,” Markkula said, “and if not, you’ve got a few weeks of my time for free.” Jobs took the offer and spent several evenings and some nights at Markkula’s house. For all practical purposes, it was Markkula who wrote the business plan. Markkula expanded Apple vision to go beyond hobbyist market. He visualized that personal computers will be used by “regular people in regular homes, doing things like keeping track of your favourite recipes or balancing your checkbook.”

– from 3 things Mike Markkula did as a champion of “Apple Computer” idea

the truth about schedules

Schedules have three purposes:

  1. to make commitments about when things will be done
  2. to encourage everyone to see her efforts as part of a whole, and to invest her pieces work with the others
  3. to provide a tool to track progress and break work into manageable chunks

– Scott Berkun, Making Things Happen: Mastering Project Management

Object Orientation and Platonic Forms

In Programming iOS 6 by Matt Neuburg:

Indeed, the whole setup reminds one of nothing so much as Plato’s theory of Forms. For Plato, this world of ours is the world of individual things, but those things derive their natures by virtue of archetypal Forms that live off in another world… it is, indeed, implicit in the design of object-based languages and has been evoked explicitly in discussions of such languages ever since Smalltalk.

I am not a smart man. I am not self-disciplined. And (yet even worse) I am stubborn.

It is little moments like this make me happy and remind me that all I need is time.

Dear society, I forgive you.

Great book BTW.

Hubris

noun

excessive pride or self-confidence.

Ship Software

From a WWDC 2011 session video:

Writing easy-to-change code is your second-most important goal as a software developer.

What is your most important goal?

Ship products!

Sheer Determination

“Sheer Determination”.

The most important thing I need in order to become a good entrepreneur.

Just realized Jurassic Park had already taught me this when I was a little kid.

Bipolar Disorder

I thought a two-month trip killed it for me already.

Apparently I was wrong.