2009-07-26

春哥


春哥,是一个时代性的折射.

超女的流行,将国人带向了一个新的娱乐时代.
这是一个被冠以"民主"雏形的娱乐盛典,这是一个全民参与度很高的聚会.

然而,同时,这也是娱乐圈里炒作的经典案例.
即使没有关注甚至观看过,但是,即便如此,玉米笔迷之声还是不觉于耳.
这是一个无孔不如的宣传造势.

在超女之后,是继续的运营问题.

传统的选秀之后,得奖之主也就红个一段时间,稍长一点便泯然众人了.
超女之后的继续运营却出乎人的意料.

不知道起初对春哥的反面声音是否是属于造势,反正最后,这已经成了部分网民的自觉.
这是另一种有趣的fans培养模式.
也深合了娱乐圈的一个不朽定律,有问题就有人气.

诚然,李宇春的个人能力确实有一定,这也是有一些支持她的人的原因.
而她的形象,更多时候,是揣测为一种有意的诱导.
从初期的枪骂,渐渐有了跟风,接着是不明真相的群众.

不管如何,正反面都是如此的旺盛.

在这两方中,更为有趣的是一些春哥后援团.
这不是传统意义的后援团,也不是对李宇春有特别偏见的人.
这些人,是一个时代的先声者.

这是一群跟着娱乐成长起来的人所引领的风潮.
前线阵营在wow,在一个突出代表这一时代人的阵营了.

有人将其称为闷骚的进化.
一群在郁闷中成长的人,终于能拿刀子了.
但他们已经学会了冷笑.
于是,刀子成了他们雕刻时代艺术的工具.

在一个嬉闹的时代里,"娱乐"是他们的武器.
草泥马,春哥,贾君鹏,每创造一个词汇,就带领一次狂欢.
狂欢之后,是他们冷冷的笑.

如同春哥,她已经于李宇春无关.
它是一群人对一个现象的嘲讽.
是对这一现象的玩弄.

假装着被历史玩弄着,却在背地里玩弄着历史.
小时候,这叫叛逆.
长大了,这叫嘲笑.

春哥是一种游离在体制外的灵魂表象.
一种离经叛道中,利用传统手法表现的自我创作.
他们不喜欢或者不能在条条框框中畅所欲言,于是,在一个自我组织的国度施展才华.
那里是毫无束缚的.

换个角度来说,也正式因为被压抑得太久,太苦,才需要寻找一个如此奇特的突破口.

在娱乐之后,俨然成了一种文化.
在本来没有信仰的国度,人忽然有了自我发展的信仰,并如娱乐狂潮式的追随.
这似乎是值得庆幸的事情.

然而,欢呼完之后,不得不由莫名的悲哀.
这感觉就像周末狂欢之后,发现星期一需要加班.

精神寄托成为避难所的代名词,只能说明现实来的太压抑太无奈.

当然,春哥文化是在不断进化的.
"信春哥,得永生"
有时候,这向纯粹的信仰迈进了一部.
这种是脱离的是非论证的信仰.
你不需要也不能够去论述它的正确性.

因为它是一种信仰.

2009-07-17

诳话生产


这是很久以前的一个想法.

某次去深圳,搭乘公交系统.
由于在广州习惯了无人售票,咋到还有些奇怪.
不明白像深圳上海这样的城市,为何不采用无人售票,而需要人工售票.

想想人类的发展历程.
人类的智慧在于懒.
越来越多的工作,在人类的智力范围内,所花费的时间越来越短,成本也越来越低.
也就是说,人的聪明使得人的工作需要越来越少的人完成.
这样,一个很奇怪的事情就出现了.

人越来越多,而事情却变得需要越来越少的人参与.
用现在的话说,就是人不断的增加,而工作机会却不断地减少.

宏观一点的说法,就是生产力的发展,减少了对人的因素的依赖.
不断发展的生产力,在某种程度上是抑制人数量的增加.

而人的生存繁衍是自然规律,生物总是在不断地增多扩散的.
即便是在如中国提倡计划生育的过度,理论人口应该是递减的(2人生产1人),但是实际上,人口依然是不断增长的(相比于50~60年时间段,这恰好是一代人的终结).
于是,人的本能活动使得人的数量不断增长,而另一项本能却又希望人越来越少.

在一个提倡创造价值的社会,每个人都被要求作出贡献.而人类自身的发展又使得,需要做出贡献的人数越来越少.

人的不断创新,并没有在创造更多的就业机会,相反,它使得就业职位越来越少.
就像曾经对于机器人的恐慌一样,人类将生产任务交由机器人之后,人就彻底退出生产领域.
而退出市场领域的人类,也就等于退出地球文明的发展过程.

因此,用这个理论来解释深圳公交有人售票的现象的话,就是,这是有意的抑制生产力发展的影响,保有就业机会.

回顾现实,为何就业机会却又不断地涌现呢?
可以看到,关于生产利于的岗位其实是在不断减少的.
以农业为例,机械的引入,让个人的耕地能力得到大幅扩展.
于是,农业需要更少的人来经营,劳动力也就自然地流动到其他领域.

按照以上的理论,多余的人口应该完全退出生产领域.
那么,就业职位的增加,最终就应该在于飞生产领域的贡献.

一个明显的例子就是国家公职人员,或者说,社会政治之类的人类统领人类的位置.
产生于自我约束的内耗中.

也就是说,生产最终只占到人类互动的一小部分.
人类的大多数时间,在于人类系统内部的自我消耗和维护.

关于货币的一点诡辩


有时候会想,经济系统为什么能保持"平衡".
或者说,为什么货币水平总能维持在一定范围,为什么会有所谓的通胀/通缩.

从小受到的所谓经济学教育就是商品的价值由社会必要劳动时间决定.
也就是所谓的,价值是凝结在商品中无差别的人类劳动.
而对应的,价格是之于价值的某种反映,是某种衡量量化标准,是与价值相关的.

那么,问题来了.
人类劳动是离别与经济体制之外的.这就像在牛顿力学里的系统外力.
这是不能再系统内准确衡量或限制的.
换句话说,就是人类劳动是一个无穷数.

人类劳动的结果必然是产生物品,进而一部分转化为商品.
只要有人类在,人的创造和劳动就在永不停息地制造"价值".
刨开部分消耗性商品的使用,大部分时间,商品依然是出于流通过程的.只不过是以不同的形式存在.
如某些原材料最后变成最终产品或中间产品.

在这个过程中,人类不断的创造财富,不断得制造价值.
如果价格是相关于价值的话,那么以货币衡量的经济财富也就应该是不断增加的.
这在历史上称为经济发展.

考虑人口因素和生产力发展相适应.
也就是说,生产的增加恰好适用于人口的增长消耗.也就是所谓的零和发展.
换句话说,也就是人均财富一直维持在一个水平.
又或者说,供求关系一直处于平衡状态.
那么消费水平,或者说货币自身的"价值"是稳定.
也就是没有所谓的通胀/通缩的概念.

当生产跟人口不相适应的时候,必然会使得社会平均财富发生浮动.
如果生产高于人口,则平均财富上浮,反之则下跌.

如果此时的财富分配依然是公平的话(分配过程中机会均等),那么因为供求不平衡,就会导致物价的浮动.
也就是价格的浮动.
价格的浮动也就意味着货币"价值"出现不稳定(单位货币的购买力浮动).
由于某一时刻,社会总财富是由货币数字化的,货币的价值衡量标准出现偏差,就会使得社会总财富的数字产生偏差.
在生产高于人口情况下,也就是供大于求的情况,货币价值减小,也就是社会总价值的量化数字减少.
这就有个悖论,生产的过度发展并没有创造出更多的社会财富,相反,减少了社会财富.

这与常规认识相悖.
问题的根源在于,价格能否作为衡量货币价值,或者说衡量单位财富的量化指标.

价格的形成基于价值,而决定于交换过程.
生活中,价格是有买卖双方的讨价还价决定.经济学上称为博弈过程.
假设单位货币的购买力是稳定的,那么,以价格所代表的价值也就在其实际价值周边浮动.
如果经济系统是平稳的,那么浮动的最终结果是零和的.
宏观上来说,物价水平也确实会维持在一定的范围内.
也就是说,总得来说,价格依然能够成为衡量单位财富购买力的量化指标.

也就是说悖论依然存在.
换个方面,就是生产落后于人口的情况下,社会财富会增加.

另一种说法就是,供不应求的时候,社会财富会增加,经济会发展.

另一个问题是,经济发展之后,社会财富增加,而人口先于生产.
制造的财富不够消耗,而总财富却增长?

社会总财富是由货币的购买力衡量,而这个的表象就是价格.
总财富增长,数字指标是以价格计量的财富增加.
而实际上,生产落后于人口,供不应求.
也就是说,原因在于商品的平均价格上浮.
也就是货币发生通胀.

于是,似乎可以得出这么一个结论,当经济发展的时候,通胀是必然结果,或者是是必然表现.
又于是,不通胀不发展.
若发展,比通胀.
通缩是经济衰退的表现?

2009-07-03

Android入门笔记(2)


Android将一个application肢解为若干个activity,或者说,直接让编程人员从用户操作的角度去编写程序.本着软件工程可重用性原则,一个个的activity必然会发展为组件式的存在,也许不很严格.
那么,从另一个角度来说,一个组件也算是一个application,因为它也完成了一个功能.而实际上,在android中,也确实没有对application中activity的数量有所限制或者说规定.
于是,application似乎只是一个比较虚拟的存在,一个activity的集合罢了.

但是,注意到android的编程模型,是1app1进程1用户1JVM的.
也就是说,物理上还是存在着application的.
如果按照上面对application,即application只是一些activity的集合的话,那么架空application这层,或者说去除application这个概念可能更合适.
但如果去除的话,又使得1app1进程1用户1JVM的原则变得无意义了.
所以,application必须存在,必须保存一个应用是实际的独立个体.

但是,这样的话,activity的自由组合这个先天优势不是也丧失了么?
为此,就有了task的概念.

task实质是也是一个activity的集合或者称之为容器.只不过特殊在它是一个堆栈式的存在,一个activity call了另一个activity之后,就会将那个activity置于堆栈上层.
相对于application来说,task是一个比较动态的存在.
打个比方,application是一个exe,而task则是dll.
application在开始就定义好了所有的资源,而task的话,可以再允许的情况下调用其他东西.
某种程度上说,task是动态生成的application.

不同的task里的activity是由affinity来区别的.某种程度上来说,affinity是task的ID.注意到这个ID是可重定的.感觉Dev Guide的说法,这是由activity的allowTaskReparenting属性决定的.
顺便提一句,android的的开发倒是挺象web的.

activity在task中的表现,或者说加载方式主要有四种:
1.standard(the default mode)
2.singleTop
3.singleTask
4.singleInstance

值得一说的是,android对activity stack的处理让人想起了Erlang的一个思想,就是多线程环境下,如果不能很好地解决锁,那么就让锁消失.Erlang的作法是让没个变量都只能用一次,也就是说,每一次操作的变量其实都是新的.
在android中的task里,一般来说(standard mode),没一个intent发过来之后,都会产生一个新的activity来响应这个intent,就像Erlang一样.
而singleTop mode则是对standard mode的一个特殊处理,即,保持stack顶端的那个activity.也就是说,如果一个intent是由stack顶端的activity处理的话,将不会新建一个新的activity来处理,而是由原来的那个activity处理.
singleTask mode则是对于这个activity则会新建一个task.也就是说,对于这个activity,会分配一个新的affinity.
singleInstance mode则是保证这个activity唯一.这个对于1app1进程1用户1JVM模型来说,就像是引入了一个static变量.

既然对初始加载的过程有所规定,那么也就很自然地会有结束过程的一些规定.
类似垃圾回收,android对acitivity的退出机制也有一些设计.也是跟task有关,acitivity在退出的时候,必然会影响到task的stack,因此,android对acitivity的行为方式也做了规定.
1.alwaysRetainTaskState属性.保证stack不变.默认状态下,一个task长期不活动的话,会退化到root activity,也就是弹出stack,只保留底部的一个acitivity.
2.clearTaskOnLaunch属性.这个会在acitivity加载的时候清空task的stack.
3.finishOnTaskLaunch属性.某种程度上说这个属性保证了某项task是唯一的.因为当一个同类的task加载的时候,如果此属性为true,那么就会先退出之前的task,然后再加载这个task.

Android入门笔记(1)


根据Dev Guide的说话,Android的application模型是比较独立的.即是1app1线程1用户1JVM.做个比喻就是每个app都是一个单用户的独立JVM中运行.
这样,在设计上,是把每个应用独立开来的.资源不共享,独立存在.
在Dev Guide中还提到一个android的特点,app之间可以使用双方开放出来的程序逻辑.这听起来是个很奇妙的东西.一般来说,我们会将这种重用性称为组件.像各个编程语言里常用到的控件.这种重用性的基础是接口的开放性.而android声称能够使用任何应用的任何开放逻辑,那么,也就意味着android有一个非常优雅的程序框架,使得不管程序所用的组件实现什么功能,都拥有一个一致的对外接口,不然不能说能使用任何程序的任何开放逻辑.
对于这个模型,android首先先颠覆了一般程序员的逻辑.即,消除了main函数的存在.也就是通常意义的函数入口.某种程度上说,是有函数入口的,只不过被隐藏了.更多时候,我们或许应该称这个入口为loader,而android的程序是loader调用的程序逻辑,或许也可以称为动态组件式的编程模型.
android在这种程序框架下,定义了4种类型的组件:
1.Activities
2.Services
3.Broadcast receivers
4.Content providers

acititvies或许可以称之为event,他是一个用户导向型的组件.也就是说,它的程序逻辑是以用户角度来定义的.对应于UML,也许可以用用例来称呼它.acititvies完成的是一个用户产生一个需求,然后通过activity去完成它.比如通过滚动条下拉一页,发送一条信息,或者切换一个屏幕等.对于用户来说,这是一个操作.
对应于activity背后的操作,是其前端的交互部分.一个用户操作必然存在着交互区域.android中,这个区域称为view.android将屏幕做一个root view或者正式地说content view.而view则是在这个content view里划分出来的一块矩形区域.这个划分或称可以使递归的,也就是说,你可以在一个矩形内再划分矩形.
从这一点也可以看出,android其实是很重视用户交互.它不像传统的UI设计,将事件的相应绑定到一定的控件范围内,而是将整个响应区域开放.如何响应,响应些什么,完全由程序员决定.

service则更接近于传统意义上的后台进程.它可以看错是对activity的一种补充.在不要求或者不需要用户参与的程序功能逻辑上,就由service完成.

broadcast receivers是基于前面那个独立编程模型的一个补充.android将每个application隔离开来,举个例子来说,就是每个application是一个工厂里的一个车间,它们之间一般无法知道车间之外的事情.于是,为了能够让车间内能够对外部的一些变化作出响应,就有了broadcast receivers.这是一个类似于进程间通讯的概念.也是借鉴与网络里的广播模型吧.google的网络作风--世界是独立而又相互联系的.一个监听器样的存在.

content provider也许可以称为剪切板或者是一个逻辑上的文本共享区吧.

前三种组件是由传统的消息驱动模型的,而content provider则更像是文件系统.
只是在android中消息装在了以intent为名的信封里.
顺便一提的是context,这个无论在何种编程环境里都会存在的东西.当然,它的意义也基本相同.
如同进程的寄存器状态,它代表的就是当前application的所有东西的容器.

聊聊卡布里尼

最近看了部片叫卡布里尼,算是可能这段时间来比较有意思的一部电影. 故事也不算复杂,就是一个意大利修女去美国传教,建立慈善性质医院的故事. 某种程度上来说,也很一般的西方普世价值主旋律. 但是如果换一套叙事手法,比如共产国际的社会主义革命建立无产阶级广厦千万间的角度来看的话,也不是...