Marstone Studio

Cross

Posted by: marstone on: 2012/03/12

There are full of crosses in your life
in front of which you go ahead, turn back, left, right, or just right stay here, and wait something to happen, or, for nothing

No way is wrong, just as no way is right for you
you saw, you choose, and then you are going to understand why
but before that, it is hard to make the decision
you scare, stuggle, for nothing

An awesome saying I saw today from Kang Team:
We came, we saw, we kanged
yes, it is that simple, just kang what you saw
No matter what it should be, do it first. That’s inspirational.

At the cross, some thing to pursue:
The fulfil, crack
The profit, apps
The duty, enterprise
The fame, science
The passion, games

What to gain, what to lost?
or, from the end of “21g”,
What you gain, what you lost?

21grams

Ten years ago in Peking

Posted by: marstone on: 2012/03/05

无意中想起十年前在北京的一段传奇经历
和尼古拉斯在新东方的宿舍
纱窗上有个洞
床头上有一行小字,一个箭头,貌似说旁边有好东西
打开箭头旁的床腿上的盖儿,发现了一把钥匙
用它打开旁边的打不开的一个厨子
发现了一光盘和一望远镜…

一晃n年,尼古拉斯已在欧洲定居了
期望,在不久的将来,能去南半球转转~

What’s new in Mobile?

Posted by: marstone on: 2012/02/21

currently, personally, three:

1.location

2.push

3.fragment reading

That’s all that changed the world.

Sleep… and Hibernate In Path

Posted by: marstone on: 2011/12/15

Path (Mobile app) is great

Our Cyberspace is evolving.
The original media of the Web is Text, Hyper Text
so we got our cyberspace learnt some nouns:
Text, Image, Video, Music
But in those years,
what we can do to change the cyberspace is only ONE verb: *post*

we post posts, since bbs
we post blogs, since web 2.0
we post articles, since wiki
we post videos, since youtube
we post microblogs, since twitter
we post status, replies, docs, retweets, etc

The ages ended since foursquare, coz we got another verb: *checkin*
and in the meanwhile we got another noun: Location
actually, we yet got another 2 verbs before since facebook:
*like* and *recommend*
It is those verbs that really changed our life in the cyberspace
so, many services cloned those
just like g+ give another facebook like: *plusone*

Then Path comes, as the same as g+ in concepts: real life sharing
Path gives us *sleep* and *awake*
and other ACTIVITIES as g+ defines in api
twitter also followed the activity tab that shares the verb: *follow*

However, Path is not greater before it could share everything as decleared
I have *slept* in Path for serveral days without using it
and then, I would probably *hiberate* here while the whole cold winter

Tags:

渐行渐远

Posted by: marstone on: 2011/11/12

生命在慢慢的被一种新的生活所占据

欢乐而平淡
远离尘嚣

在一个适当的位置,做好力所能及的事情,用代码来绘制创新;
和适当的人在一起,安静的生活,清晰的憧憬着未来,平静无奇的未来

一条笔直的路,足以让你不顾回头地走下去
电影,桌游,电子,推特,运动

不算极客,已经没有Geek的狂热
不算技术,不算文艺
神棍节被问起自觉得是事业型还是家庭型?
都不是
也不算传统

都说社会是个大染缸
然而这一方净土已不再属于染料
喧嚣的摩都,却充满了宁净
这意味着什么?
渐行渐远

没法理解圣贤们的大隐于市
却能感觉到远离的恐惧
上不着梦想
下不着尘埃

IMG_4624

PS:手机坏了一个月了,没有手机的日子竟也照常,仿佛从未有过一般,遂感慨之

伪善

Posted by: marstone on: 2011/09/11

晚上和小白吃饭,不经意谈起,911十年了。
后来在推上看到有人说,那些悼念美国人,而无视身边苦难的人,是伪善的。

我倒是觉得,善和伪,当事人或许并不明白其中的含义,只是人云亦云罢了。
保护动物,保护环境,热爱祖国,热爱劳动。
为什么?
仁义礼智信,忠孝廉耻勇。
又为了什么?

百度出了东施效颦的易平台,却只字不提Android,我不禁觉得一阵愤怒。
然而很多人会笑我,关你何事呢?
就像我们是否会敌视恐怖主义;是否会同情美国人民和日本地震;
却又是否会善待所爱的人。
哪些是善,哪些是伪?哪些是真,哪些是美?
为什么大家会敌视轮子?而轮子的宗旨正是道德经。

这一切说回来,道德是什么?
道德,按照老子来说,其实是道和德,而德是为道来服务的。
道德,是赤裸裸的意识形态的入侵。而意识形态,是个恐怖的东西。

洗脑到这种程度,也就难免人云亦云了。
总是感觉,人的生命中,有些更重要的东西需要被追逐
追逐的过程中,却越来越感觉明白的在抵制道德的存在
当道德失去时,人还会有信仰么?
曾经有过么?
茫茫中,渐行渐远,行走在消逝中,追逐那些永不消逝却遥不可及的东西

自由,只是其中之一。

BIOS-Based GPT Experiences

Posted by: marstone on: 2011/08/23

最近打算在一个BIOS-Based Laptop上使用GPT分区,最终放弃。
分享一下失败经验。

起初的目标打算跑4个系统:
1.Linux,这个其实最简单,各个发行版的兼容性都没得说
2.Chrome OS,原生支持GPT的,感觉问题也不大
3.Lion。期望能有显卡和Wifi驱动即可,打算用做iOS开发
4.64 bit Windows 7或者Server 2008 R2

最终只安装上了前两者。
首先花了一段时间才弄明白UEFI Based和BIOS Based的区别;
在BIOS上使用UEFI的GPT,实在是个悲剧。

由于系统无光驱,所有操作均未涉及光盘
首先U盘启动PE,用MBR分区,在32位系统下用nt6 hdd引导到64位安装
安装Windows在第一个分区
然后用DiskGen把分区转化为GPT格式
此时显然Windows已经无法启动
由于BIOS不支持GPT,在GPT Legacy的MBR上安装Grub MBR Mod
支持引导到GPT的Grub,然后就可以轻松安装各种Linux了
同样安装了Chrome OS,通过Hexxeh的景象直接Clone分区到硬盘
Grub启动命令有一句比较麻烦:
kernel /boot/vmlinuz root=/dev/sdaX ro noresume noswapi915.modeset=1
也支持导致出了问题:Chrome启动时不认C-STATE分区
并在没有任何提示的情况下干掉了Win7的分区,用来做C-STATE – -#
于是就要重新安装Windows 7了(这个挫兼容,额)
之后研究Windows的启动,需要Mixed GPT或者UEFI DUET
考虑到Intel这个完全不成熟的东西,尝试之后,直接放弃了
Lion还未尝试。

比较欣慰的是Chromium OS支持我机器的Wireless
打算整回MBR再重装个Chromium OS吧~~

不写啦,去装机了 – -#

The One Ring(至尊魔戒)

Posted by: marstone on: 2011/07/10

image

问题1:《指环王》中的至尊魔戒为什么要被毁掉?
问题2:既然有21个Rings被制造,为啥只是要毁掉最Powerful的一个?
问题3:这种能量如果被合理利用,是否会更好?

我想答案并不是One Ring to Rule Them All, 而是All Rings are Created Equal.

从何说起? 我曾经为之不解的一个现象,是微软。
曾经的微软,拥有世界上最顶级的程序员,拥有最好用的操作系统和办公软件
本是一个值得崇拜的公司(相信很多人反对我),却一直受到了大量的敌视和贬低

无独有偶。
Apple,则是一个近乎宗教的企业:崇拜者众。
果粉们像对至尊魔戒的追求一样,信奉和狂热,she’s charming.
然而,另外一部分人,则要把他扔向末日山口(Mount Doom)的岩浆之中。
或许是因为<One iPhone to Rule them All>?

更有野心的则是<One Graph to Rule them All>
Facebook的Social Graph,是一个伟大的贡献,同样也是另一枚至尊魔戒。

上面的故事中,无论你是反对者,还是追随者,你的心底都将是矛盾的。
人类对于至尊魔戒的追逐,从未停息过,这是每一个人内心的渴望;

毁掉它,则是人类矛盾的天性的另一面:对平等和进步的追求

人类并非不需要一个至尊魔戒,而是至尊魔戒形成以后的,反而成了枷锁和桎梏。
这些至尊魔戒们所形成的垄断,其实很大程度上阻止了技术的进步和平等的竞争。
每次至尊魔戒的形成,虽然是对人类进步的一个巨大贡献,但也成了新的停滞的开端

或许这也是为什么Google+会受到期待,以及Google的反垄断的议案产生。
对于问题3,我想这是人类无法克服的弱点,只有这种破坏性的发展,才是王道

PS: From <The Lord Of The Rings: The Fellowship of the Ring>

200px-Unico_Anello

Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them

In the Land of Mordor where the Shadows lie.

Computing Evolution : A Coder’s View

Posted by: marstone on: 2011/07/03

0.前言

应kingchang童鞋要求,写篇科普。如果大家觉得不科,那就只当是个普吧。普个啥呢? 作为一个码农对计算的拙见;再农一些?就是些对计算机的观点,给希望成为码农或者希望了解码农的人分享。

1.概念(Concepts)

1.1.计算(Computing)

计算是一个把输入(Input)通过资源(Resource)变成输出(Output)的过程
比如我在计算器(资源)上按3+5(输入),就显示8(输出)
在QQ(资源)敲了行”又熬夜啊?”(输入),对方机器(资源)”嘀嘀嘀嘀”(输出)
拿遥控器(资源)点减号(输入),空调(资源)降温(输出)了
发短信,玩游戏,写微博,码代码,都是我们的身边无处不在的计算。

1.2.资源与演化

容易理解,给一个输入后,我们需要什么样的输出:说白了,就是需要什么样的功能
而我们的使命,就是创造这种资源本文主旨,来完成大家需要的功能(逻辑)
资源是什么呢?其实传统意义上,它有两种,一种叫硬件,一种叫软件
注意”传统意义”几个字,在这个飞速发展的领域,它还经常被叫做:过时(Outdate)

而所谓演化(Evolution),就是过时的过程

快速的演化是计算机世界的一个悲剧
许多的Buzzwords,许多的技术/概念,当你还没理解/正在学习的时候,就已经过时了。昨天的博客,变成今天的微博,或许明天就成了的轻博;
PC前天刚换成Notebook,昨天就出了Netbook,Netbook的系统ChromeOS尚未发布,就变成了今天的Tablet,而或许明天就被各种”端(End)”所取代。

1.3.边界与接口

这种灾难性的高速演化,使得我们都在努力寻找一些不变东西。
追求永恒,是有限生命的人类不懈追求却永不可及的东西
不过,我们最终还是发现了一些变化较慢的东西。

试想,在这个信息爆炸的世界中,我们首先需要明确自己的边界(Boundary)
比如作为码农,我们首先明确,我们只创造软件,而硬件在我们边界之外(之下)。
要在边界上交互,就需要接口(Interface),而这,正是我们追求永恒的结果。
好比插座,我们有无数的电器在演化,而插座,两脚的三角的,就那么几种。

2.演化(Evolution)

既然我们只关心接口,对码农来说,每次计算模型的演化,都是接口的革命
这种影响我们边界码农的接口,暂且给一个名字,叫API(应用开发接口)

API.1.指令集(CPU:Instructions)

试问,这种古老的计算器(左)也在完成计算,它需要软件么?

imageimage

这并不是一个容易回答的问题。
某种程度上,软件其实本来也是一种硬件,纯粹的软件是没法存在的。
我们安装一个QQ,其实改变的是硬盘的磁性。
这也是物质与意识的关系,已经争论了几千年。

软件这种技术的雏形,是可编程的(Programable)硬件
起初我们可以通过掰开关、调节元器件特性来实现新的逻辑
后来我们可以通过电流来改变内存的冲放电、硬盘的磁性(如安装QQ)来实现新的逻辑
(否则,我们只能重新焊接电路来实现新的功能。 )
当我们可以用电流(而不是机械)来操作存储时,软件(Software)就产生了
这种靠电流改变存储的东西发展到一定程度,有了个名字,叫中央处理单元(CPU)
于是我们也就有了第一次演化的API[1]:CPU的指令集(Instruction Set)
我们只需要关心CPU提供了哪些指令,如mov, ret, jmp, cpuid.
那时候我们创造计算资源的过程,仅仅是试图把这些指令按照一定顺序和逻辑传给CPU
CPU负责如何来来使用下层的(硬件)资源,诸如内存,时钟,显示器,打印机
至于类似内存要使用哪条哪个颗粒的问题,从此对码农们透明。
我们需要去阅读CPU开发商的Instruction Set的Mannual
来最终创造我们需要的计算资源:软件。

API.1.小结:CPU层以指令集为接口,使得特定硬件资源的细节对上层透明。
这大约发生在50年前。

API.2.中断(OS:Process)

操作系统(OS)的出现,是一次重要的分化。
大部分的”所谓的重要的基础的”计算机的理论,都出现在这个时期。
诸如所谓的操作系统原理面向对象编译原理等等。
这是些所谓专业人士所津津乐道的东西,但殊不知,这些观点已经过时了
可能这是本文最大的异见,也正是本文所要表述的一个观点,在后面会逐渐说明。
OS理论的形成,在软件历史上意义重大,这是因为一个新的边界已经形成。
OS作为边界的下层,以进程为模型,负责统一管理CPU、内存和I/O等资源
CPU也为OS而实现了权限环,使得普通的软件没法直接访问硬件资源。
所有的资源的访问,需要通过新的API[2]来完成:OS的系统调用(System Call)
而我们的队伍,则分化成了两种来协同完成计算:

  • 一种做API下的操作系统,称之为系统软件码农
  • 而另外一种做API之上的,称之为应用软件码农

更细一些的,在边界上,其实并非只有API一个概念,而是三个层次的概念:

  • 中断:虽然真正的技术上的边界出现在这此,但难以标准化
  • 标准:比如POSIX,这是真正的逻辑上的边界,也就是所谓系统调用或API
  • 类库:这儿说的类库只是指对API的进一步封装,称之为SDK,如MFC

这就导致了码农们又产生了细微的分化:
中断和标准,为OS的码农们所实现,另一些人会来封装SDK
剩下的绝大部门的码农,只是和SDK打交道
这也就是为什么大部分人认为码农的入门是使用类库提供的printf()
而不是类库printf()真正调用的接口write()
更不是直接interept某个中断号(linux貌似是int 80h)

至此,码农第一次分工完毕,API下层的码农们数量和需求基本趋于恒定
系统码农可无视后续章节了。后续的每次演化,都将会发生在上次的API之上

API.2.小结:OS层以Process为计算模型,使得单台硬件资源对上层透明。
这大约发生在40年前。

API.3.网络(Network:Protocol)

网络(Network)产生的一个驱动力,是单独硬件计算能力的分化和不足。
比如一个大超市,需要很多的POS机同时参与计算(刷卡、打印、结算)
于是API需要继续演化,使得API下层具有控制和使用网络内其他资源的能力
上层的码农,可以感觉不到网络拓扑的复杂性而完成计算。
于是API[3]出现了:网络协议栈(Protocal Stack)

所谓的经典理论的计算机学家们或教材,提出了相对应的“网络操作系统”
仍然试图用OS的概念来解释这种API的革新,因为:
我们依然需要关心OS的经典计算模型:进程,而进程是不能跨网络的。
我们依然需要OS的API来完成我们期待的计算。

但这仅仅是个开始。
诸如CORBA/IIOP等协议的出现,逐渐打开了这扇门。
如果这两个词儿你不熟悉,这也正常,因为这只是个标准/协议。
后来有两种技术不同程度的实现了它,其中之一,叫Java,另一个叫.NET Framework
抛开后面的Web不谈,Java的成功
很大程度上是因为Java访问/调用其它机器的类/方法,可以像本地的一样容易。

对演化出来的API上层的码农来说,计算,has changed.

与经典理论的不同在于,编程语言逐渐开始显得不再重要,我们更关心的是协议
(这也是经典理论入门的码农的一个误区:”我要学什么语言?”)
对OS的依赖,已经极大地降低。
对硬件和编译器的依赖,也发生了根本的变革:
因为我们的代码并非运行在CPU上,而是运行在虚拟机之内

API.3.小结:网络层的API,已经可以使得多个计算资源分布式工作,并对下层透明。
这大约发生在15年前的C/S时代。

API.4.会话(Web:Session)

Net和Web是一个容易混淆的概念。
因为中文翻译都叫:网;而且他们产生的时代和概念都有相似点。
Web仅仅是Net无数的网络协议中的一个,HTTP协议
而且它的客户端也非常单一,就是浏览器(Browser)
Web程序也常被简单的称作:网页(Web Page)
很多年前,常有人(尤其是专家和老师)会说,做网页很简单,就是HTML
大家觉得这根本不算是编程,觉得做网页的根本不配被称做码农
然而,在计算机领域,只有简单,才会胜出
随便举些例子,去年(2010)的两个热点:
每次只卖一个商品的团购,基本只有签到功能的位置服务
或者几年前的只能发140字长度连评论和图片都不支持的推特
然而,Web时代的霸主,是一个看起来更简单的网站,它只有一个框两个钮
没错,它就是Google(请不要叫谷歌)
像很多人不理解为什么Web一样,很多人不理解一个搜索引擎被如此高估?
铺垫了这么多,这儿我能想到的答案,就是我们需要新的API[4]了:HTML

赘述一下,API是人类追求永恒、追求不变的结果(1.3节)。
比如Java,试图Write Once, Run Anywhere
而这已经逐渐的没法满足我们的需求:
我们的终端越来越复杂越多样化,也就意味着我们下层的计算资源更难被利用。
我们在问,我们能否在OS和Network之上,再建一层API
这层API分离以后最好让我们上层的码农能够(留守下层的码农们可以无视了):

  • 与硬件设备无关,可以跑在各种硬件体系架构和输入输出设备上
  • 与操作系统无关,可以无视操作系统甚至进程模型,无视系统变更和升级
  • 与网络拓扑无关,可以不关心复杂的网络协议栈和通讯细节
  • 与开发语言无关,可以不用再关心学Java好还是学Python好
  • 需要提供和管理更多的资源,不仅是硬件和网络

有且仅有Web,可以做到这些。
在这层API产生以后,我们应用运行的资源基础
已经从CPU[API.1],升级到OS[API.2],升级到VM[API.3]
进而升级到:Server/Browser[API.3]
Server借助应答机制(Request/Respone)
使得我们码农不在需要考虑各种异构的OS和进程、线程的调度
Browser已经成为我们唯一的UI程序并由下层开发,从而无视各种环境的差异

然而,无论是OS的系统调用,还是硬件的指令集码农都容易理解调用方式
Web世界的API是如何提供的呢?

拿Google的Chart API举个例子(可点击打开):
https://chart.googleapis.com/chart?cht=p3&chs=250×100&chd=t:60,40&chl=Hello|World
返回值是一个饼图:
image
在SDK封装以后,我们可能会可以这样调用:
Image image = Google.Chart(“p3”, 250, 100, 60:40, “Hello|World”);
这也是所有的顶级网站真正为这个世界创造的价值:The APIs of the World.
这还有个名字,叫服务(Service),而不是普通用户眼中的界面、功能、技术。

Web的服务端虚拟化(Virtualization),客户端混搭(Mashups),导致传统的面向对象和软件工程等都在演化中逐渐过时。

API.4.小结:Web把世界联成了一个资源(云),以会话(Session)模型向上透明。

题外话:Web已死,Apple当立?尚待观望。云和端的发展是相辅相成的,并不冲突。

API.5.用户(SNS:User)

如果你对Google的观点是:她作搜索的同时,赚了大量的广告费来养活其他各种产品
那么对Facebook的观点很可能是:她做社交网站,有很高的用户粘稠度
那么很失望(或者庆幸)的告诉你:你是个用户,而不是码农
赘述一遍,码农的观点和产品经理、终端用户不同
看到的不是功能和用户体验,而是API为了我们提供了哪些基础资源。

试问,在硬件、网络资源,以至整个世界都已经成为了一朵开放的云以后
我们还有什么资源可以被分化到API底层(或许你正是被分化到API下的一员)?

事实上,Google虽然备份了整个互联网数据,但很难让机器准确理解里面的语义
而Facebook,在做社交的同时,占有了用户的信息流,这是机器可读的
进而言之,不仅Facebook如此,AmazonApple,理论上也有这种能力。

这种资源,已经不在是硬件,而是信息。
信息作为计算资源来提供,最根本的概念,就是用户(User)
毕竟软件几乎都是被用户所用的,用户的信息,也就成了大多数软件系统的基础。
从BBS到QQ,从电子商务到ERP,从blog到wiki
都会提供用户注册、登陆、信息维护。
这种重复的计算,不知是否已经重复了上亿次的开发

于是新的API[5]应运而生:图(Graph)
正如Facebook的豪言:One Graph To Rule Them All
image

3.结论

计算的演化,不是UI、用户体验、功能的改善和增强,而是API的变革
变革的结果和目的,都是拥有了更强的资源(硬件->单机->多机->会话->用户)
而作为码农,则需要在上面建造用户所最终需要的各种计算逻辑(更强的资源)。
这种演化,对码农来说,是差别不大的。总有留守下层的码农做API和SDK
我们一直都是书写一行行的字符串而已(尚无银弹)

  • MOV 60h, EAX
  • printf(“hello, world”);
  • send(&socket, “hello, world”);
  • Image image = Google.Chart(250, 100, 60:40, “Hello|World”);
  • User user = Facebook.Me();

有差别么?

CPU, OS, Network, Web, SNS都是码农的边界
这些边界,我们有时也称之为:平台(Platform),除了API内容,再无其他区别。

最后贴一份不太准确的表格:
image

欢迎指正。

帕累托最优

Posted by: marstone on: 2011/06/29

和虫子聊天, 谈到他们的冷战, 突然领悟了一句话:

一份健康的感情, 是从纳什均衡向帕累托最优逼近的过程

达到纳什均衡的条件有两个比较重要的, 其一是自私的本性;其二是沟通不足

重复的囚徒困境, 通过机器学习/人的磨合, 从而逼近帕累托最优

虽然我不喜欢纳什平衡, 但我觉得这是人性的真实地显露

已经很久没有接触过这个状态了, 这另辟蹊径总觉得是个不健康的过程。想不明白。

Reference: http://zh.wikipedia.org/wiki/囚徒困境

Follow

Get every new post delivered to your Inbox.

Join 47 other followers