2012年安徽高考语文卷作文仿作:那些被放来放去的梯子们

注:又是一年高考时,看到安徽卷那充满哲学气息的语文作文题,我不得不庆幸自己早出生了那么两年。2012年的安徽高考语文卷的作文题目是“梯子不用请横着放”,我当时突然兴之所至,写下这篇同题文章。人不中二枉少年,然而今日还是决定将当初的这篇文章张贴出来,免得哪一日硬盘损坏再也找不回来,也以此纪念我的大学时光。

梯子们抑或是被贴上“注意安全”的标签,抑或是被横着放下,无非是为了防止倒下来的时候砸到人。因为在人看来,梯子是人造出来的,当然要100%的服从人的意志;如果梯子忽然哪一天无缘无故的倒下来砸到人,那自然是大逆不道的事情。为了防止梯子倒下来,聪明的人们想了很多办法,那些不怎么容易倒的,贴上个“注意安全”的标签,梯子便乖乖的站在原地,再也动弹不得,即使有时候有心动弹那么两下,一看到身上的标签,便也老实了;有些不那么老实的梯子,那得横着放倒,不然还会有时候蹦跶来蹦跶去;而有些么实在是不老实,就算是放倒了有时候还是站起来砸到人,人对这些梯子的处理也经常毫不留情——经常是直接锯了扔掉,让你再也当不成梯子。

有用的时候立起来用,没用的时候直接放倒,这样事情大家其实见得不少。比如说拍虎的周正龙,本来正龙同志拍到了华南虎是好事一件,做成的话弄个旅游风景区国家保护区,那自然是功劳一件;很可惜的是,事情办砸了。正龙这架梯子没用了,怎么办呢?继续放着,说不定哪天就倒下来,一砸一大片人,这样的事情当然不能发生;所以后来正龙同志就被关进去了,彻底放倒,就不怕砸到人了。

一开始发现没用的时候放倒,后来发现有用的时候再立起来,这样的事情也很多。比如说李娜,刚开始脱离国家体制单飞的时候,那自然是属于被放倒的对象,不能让你随随便便和媒体说话,批评体育制度;等到李娜拿了冠军了,这梯子开始能成为某些人升官发财的梯子了,于是李娜又被立了起来。这梯子刚被油漆过,光辉鲜亮,当然旁边的那一行“注意安全”小字,却是照例不能少的。

升官发财的梯子,大家都想爬,至于这梯子怎么来的,根本不重要。四川512地震,震碎了国人的心,震下了国人的泪。这么一个梯子,有些人当然不能错过,利用灾后人们的同情心和捐款,为自己盖楼买车,发国难财;煤矿矿难,死伤无数竟然还有人能因为“指挥抢救得力”受到表彰。当梯子的价值利用完了,那些梯子背后的血与泪,谁还会管呢?

梯子的下场也各有不同,听话的梯子,也许能被放进陈列馆,写上这是XXX的梯子;不听话的梯子,有的被贴了条子,放了人看着,如果你想动一动就立马有人过来;有的梯子还有利用价值,却又比较危险,所以用起来得小心翼翼,比如维基解密的阿桑奇,一面得报道他是怎么受到国外政府迫害的,一遍得把维基解密给屏蔽了,免得梯子砸到人。

然而梯子们却很难有所作为,一则梯子毕竟是梯子,被人放来放去又能如何?二则梯子的生杀予夺最后还是在人身上,万一惹怒了人,将你用锯子锯断让你这辈子废了,又能如何?

梯子终究为梯子,被人放来放去。

优酷伴侣:在Android优酷上开启硬件解码并去除广告

https://play.google.com/store/apps/details?id=com.linangran.openwithexternalplayer

这是我的一个小作品。众所周知Android优酷只能使用软件解码而无法进行硬件解码,导致视频播放一段时间机身就会产生巨大的热量;同时自带的播放器也有种种不方便之处,习惯了MX Player的我很难适应。此外,现在基本没有任何办法能够去除App里片头前面的恼人广告。

正是因为这些种种不便,我开发了这款只有400k大小的小应用。它的作用很简单,就是能够让你使用例如MX Player这样的第三方播放器播放优酷视频。只要在优酷App中选择分享,或者是浏览器的优酷视频播放页上选择分享按钮,然后点击“使用第三方播放器播放”,MX Player就能自动接管视频播放,不再有恼人的广告和巨大的发热。

如果你有和我一样的困扰,不妨试试这款小应用。

Android开发中Java库依赖出现ClassDefNotFound问题

昨天在做一个Android的开发的时候,出现了我从来没遇到过的库依赖问题,网上搜索了半天也没有答案,最后发现原因竟然非常简单,记录于此。

我的Android应用Project1,依赖于另外一个纯Java的项目Project2,我在Build Path里配置好了项目依赖,Eclipse本身也没有报什么异常,但是一到真机上调试的时候,就出ClassDefNotFound的问题,看上去是依赖出了问题。

StackOverflow上的答案没有一个能解决我的问题。我突然想到,Eclipse能正常进行代码提示,说明依赖是对的,只是在Android上跑不起来而已。我立马去检查Project的Java Level,果然是Java 7的缘故。把Compile Level调整到Java 6之后,一切正常。

移动支付将会如何改变未来?

在香港,货币不是由中央政府发行的,而是由三家商业银行发行的。由商业银行发行货币,是否会产生超发而影响市场的稳定吗?答案是不会,因为香港采用的是联系汇率制度,商业银行每发行7.8元港币,就要向香港政府指定的账户中存入1美元。正是因为每发行的1元港币背后,都有美元作为担保,港币的币值能够基本维持稳定。

其实如果我们仔细看一看支付宝里的钱,会发现支付宝的运作体系和港币几乎完全一致,甚至支付宝里的钱都可以称之为“支付宝币”:

1. 每发行1元支付宝币,支付宝公司都要向政府指定的账户中存入1人民币。

2. 支付宝保证1元支付宝币可以在任何时候兑换为1人民币,正如香港政府保证每约7.8元港币就能兑换1美元。

3. 支付宝币在网络上被广泛认可,不仅可以在淘宝天猫等网站上用于购物,很多网络上的个人交易也接受支付宝币。

4. 支付宝币透过移动支付开始渗透到现实生活中,已经有少量商户接受支付宝币。

从这个意义上说,支付宝做的事情比微信支付要更庞大,也更有意义的多:微信支付还停留在支付工具的阶段,而支付宝已经在以发行“支付宝币”为基础,重新定义互联网下的金融体系。

互联网企业做金融具有先天的优势,这是互联网公司的基因决定的。什么是互联网公司的基因,在我看来可以用下面的一句话来概括:以用户体验为核心,先把蛋糕做大再考虑如何分蛋糕。以用户体验为核心,保证了用户能够顺利、方便的使用产品,并且愿意继续使用下去;产品也会依据用户的需求而变,不断提升用户体验。先做蛋糕,再分蛋糕,是互联网企业做产品显著区别于传统公司的地方。传统公司做产品,往往等不及把蛋糕做大,就开始考虑如何把蛋糕围起来自己一个人吃;互联网公司做产品,是在竞争中共同成长,共同提升,并共享蛋糕做大之后的利益。一个典型的例子,就是电商的XX元包邮。在电商发展的早期,这个XX元的门槛是很低的,19元29元就能包邮,目的就是为了培养起用户使用网络购物的习惯;又比如最近的嘀嘀打车和快的打车之间的战争,大额补贴的目的就是培育用户使用手机进行现实生活中使用手机进行支付。可以想象,一旦手机支付做起来,今后还会有人使用麻烦的银行卡进行购物吗?

说到互联网企业,就不能不提传统的金融行业。那么金融行业做互联网金融会有什么优势呢?在我看来唯一的优势就是广泛的线下渠道和依靠政府监管获得的垄断牌照,除此之外没有任何优势。然而线下渠道的意义是让用户能够进行现钞的兑换,当越来越多的商户和个人接受支付宝币付款的时候,线下渠道的意义也就越来越弱。打个比方,如果你的工资是发到支付宝里,你超市买菜出租车付钱都能通过支付宝进行的话,有没有现钞有多大的区别呢?这绝不是天马行空的幻想,在香港几乎所有的商户都支持八达通卡付款;八达通是一种非接触式的卡片,需要付钱的时候,把卡放在读卡器上,嘀的一声就完成了。坐地铁坐公交便利店买东西超市买东西餐厅付款甚至是理发,都可以用八达通付款,八达通可以说是真真正正渗透进了香港的每个角落。更重要的是,八达通卡可以和银行卡绑定,当八达通卡余额不足时,自动从银行卡上划拨一定资金自动充值,这意味着你在平时生活中根本不需要用到现金!事实正是如此,我已经一个礼拜钱包里的钱没有变过了,而我完全感受不到任何的不方便之处。

从这个例子中我们可以看到,互联网公司们的胃口很大:他们要做大陆的八达通。没错,这就是移动支付为什么是最后最重要的关键一环。一旦这件事情做成了,互联网公司以后就能彻底抛弃传统银行自己玩了;一旦这一环做成了,整个基于互联网的全新的金融体系的基础就完全建立起来了:长期投资,可以用互联网理财,投资基金;短期流动资金,可以放在余额宝里保值增值;线上支付,可以使用支付宝转账付款;线下支付,使用手机APP支付;商家,使用手机收款,周转资金可以放入余额宝中,如果需要扩大经营可以申请阿里贷款,或者也可以通过互联网理财进行投资。

唯一有点遗憾的,就是信用卡在这个体系中的缺失,尽管中国人信用卡的消费习惯还没有建立。但是我们不得不感叹互联网公司的敏锐嗅觉,京东已经在开始测试”白条“了,相信很快支付宝或者是微信就会把这个给抄过去。

如果说余额宝只是让传统金融机构开始正视互联网金融的话,移动支付将彻底改写如今的市场格局。中国的银行的主要收入来源于利息差,非利息差的部分不多,大约15%左右,其中很大一部分就是线下刷卡收取的手续费,以及刷卡用卡带来的年费、账户管理费等各种费用。如果移动支付发展起来,银行的这部分收入会直接受到冲击,而在这场战争中,传统银行没有任何胜算。

第一,也是最严重的问题,传统银行以自身收入、而不是用户为重,蛋糕还没做大就要分蛋糕。以线下支付为例,刷卡时需要密码+签名,POS机打印收条又特别慢,严重影响用户的付款体验,而银行从来没有想过如何解决这个问题;一台无线的POS机就要几百上千元(淘宝价),磁条卡芯片卡闪付卡,据说一张三者兼容的卡片成本就接近一百元,还需要用户承担,蛋糕还没做大,就想着怎么收钱了。银行为了规避自身风险,规定凭密码完成的交易就视同本人,在银行卡被盗刷时拒绝承担任何责任;而互联网企业则不同,支付宝承诺你敢付我敢赔,用户资金被盗支付宝先行赔付;支付宝大概八年时间,几乎不收费,今年开始收取转账费用,相比银行费率依然很低而且手机上依然免费,相信只是支付宝阻击微信支付的一个策略,将用户引导到手机客户端上操作,支付宝本身并不依赖这部分的收费。余额宝成立至今,依然不收取任何手续费用。在出租车市场上,更是投入大量资金来培育市场,这对于传统金融机构是根本不可能的。第二,互联网企业竞争压力大,更容易做好产品。先不吐槽各大银行做的屎一样的网银,就说说排队的事情,银行就是这么想的:反正就这么几家银行,你总是要办业务的,等多久关我毛事?再说你们这些屌丝的业务,钱不多还麻烦的要死,都是纯成本,要是国家允许,恨不得把VIP窗口之外的窗口全部关掉最好。而互联网是个充分竞争的行业,用户下载一个新的支付工具,几乎不需要任何成本,为了留住用户,互联网企业必须不断的和竞争对手比较,优化自身服务挽留客户。正是因为这一点,所以就算互联网金融进入了寡头时代,寡头依然还是会把用户放在第一位:用户迁移到其它平台的成本实在太低,稍不留意,用户就会流失到竞争对手那里去。第三,移动支付方便快捷,这是前两条的因引出来的。从商户的角度说,一个500块山寨机,配张手机卡,再加个流量包,就能进行移动收款,不用登记营业执照法人执照也不用费神费力的去和银行打交道;对用户来说,反正手机天天带身上,多装个APP手机又不会变重,手机扫下条码就能支付,过后还能进行评价留言,甚至能从余额宝联动扣款,简直不要太方便。最后,政府有意通过支持支付宝这样的工具,来促进金融市场的竞争,从政策面上看,支付宝将会成为政府放进金融领域的一条“鲶鱼”。有道是背靠大树好乘凉,有了政府的支持,传统银行业也没法打黑枪来阴的了。

移动支付是互联网金融体系的最后一块基石,这就是为什么阿里巴巴和腾讯都对它如此的重视。互联网金融最后能否打通移动支付形成闭环,构筑自己的金融体系,我们拭目以待。不管如何,这个新贵与土豪的战争中,长期被传统金融忽视的普通人,将会重新回到舞台上,并从自由与竞争的市场中受益。

解决UC浏览器云同步插件因为语言设置而无法同步的问题

UC浏览器的云同步功能已经出了有一段时间了,但是我尝试多次都无法将Chrome和手机UC浏览器进行同步。今天我研究了一下这个功能,发现了问题的原因在于浏览器的语言设置。UC云同步插件的Chrome版,会根据Chrome浏览器的语言设置,选择使用yun.uc.cn或者是cloud.ucweb.com。而这两个服务器是独立的,意味着即使是使用相同的帐号登录进去,两个服务器上的数据也会不一样。yun.uc.cn对应Chrome浏览器上的中文,以及Android上的UC浏览器,cloud.ucweb.com对应Chrome浏览器上的其他语言,以及Android上的UC Browser for Android。UC设置两个服务器的原因可能是为了给国内国外不同线路加速,以及防止GFW干扰,不过两个服务器之后的数据库竟然也是不一样的,让人难以理解。

现在的情况是,因为我在手机上使用的是国内版的UC浏览器,而我的Chrome是英文的,所以两个之间无法同步。解决的办法是,要么把Chrome切成中文,这样UC云同步插件会自动使用国内的服务器,要么把手机上的UC浏览器换成国际版。但是我不愿意切Chrome的语言,也不想放弃国内版UC浏览器的诸多便利而改用国际版,所以我决定自己修改一下UC云同步插件,来实现我这个需求。

修改后的插件可以在这里下载,解压后拖动到Chrome的Extension页面就可以安装。修改的过程并不复杂,把API的Server地址改掉就好,不过重新打包后发现服务器使用的是Chrome插件的Message机制把登录信息传递回来的,但是我重新打包之后的AppId会发生变化,导致登录消息传递失败而无法登陆。为此我又将登录部分改为Ajax实现,并Parse Response以生成消息。

值得一提的是,UC云同步插件不仅没有代码混淆,而且有清晰的注释可以查阅(同时暴露了内部测试服务器的地址),可谓业界良心!

 

我看比特币

以下仅为个人观点。

1. 比特币有价值吗?

有。比特币最大的价值就是通过算法保证了一种在网络上进行可靠、快速交易的交易方式,而不依赖任何中央银行或者某个担保方。

2. 比特币会成为未来的货币吗?

不可能。比特币宣称的不受监管,恰恰是其自身最大的问题。经济持续发展,必须依靠政府的调节和监管,美国过去的历史已经证明,一个完全自由的市场会导致诸多问题,并最终引发经济危机。一个国家如果放任比特币,就等于放弃央行在货币政策上的调控能力,进而减弱对市场的控制力;而失去政府管理的市场,会因为人的贪欲而最终走向经济危机。这是任何一个国家政府都不愿意看到的结局,各个国家的央行最终会出手进行控制。比特币等一票电子货币在完全自由的市场交易下的疯狂局面,已经成为了这个观点的最好注脚。

3. 比特币未来会怎么样?

炒作投机,最终泡沫破裂,比特币一泻千里。也许泡沫之后,比特币会在实际跨国、跨境交易的需求中重新回归它的价值,但那是后话了。

傻[哔]的Dropbox

在实验室和寝室的两台电脑上工作,Dropbox是非常必要的工具。但是当我用的时间越长,越发现Dropbox在设计上的傻[哔]之处,最为突出的地方就是Selective Sync。

比如说笔记本是A,实验室的台式机是B。为了在A和B上都能同步工作,我把Eclipse的Workspace目录加入了同步文件夹。但是过了几天之后,我发现Workspace里的.metadata文件夹里包含了Eclipse的偏好文件,但是A和B由于显示器分辨率不同,外加一些外部依赖的SDK位置不一样,导致偏好文件内容不同,而且不可以互相替代。于是我打算将.metadata文件夹从Dropbox的同步文件夹中剔除,在Selective Sync中去掉了.metadata文件。硬盘一阵狂转之后,恭喜你,Dropbox自作主张的删掉了你的.metadata文件夹,你的偏好设置、workspace里的项目配置,都随风飘走了。

好在这只是配置文件,想象一下如果你有一个很大的图片文件夹,你拷到同步文件夹中,然后发现文件夹太大了,想取消同步,于是从Selective Sync里去掉了图片文件夹。恭喜你,硬盘一阵狂转之后,你的图片都没了。

实在搞不懂Dropbox的程序员是怎么设计出这种同步逻辑的,大家都是程序员都用过SVN,你从SVN里ignore一个文件夹的时候,SVN永远不会删掉你本地的文件。这种自作主张的行为,还好意思宣称

 

老子当初就是信了你的这句鬼话,照片都已经被删掉了几百兆之后才反应过来!

只是日子还得过,Dropbox也还得用。如果我是Dropbox的PM的话,一定会把这个Selective Sync改成Unlink This Folder/File,断开连接之后就忽略掉这个文件夹,不再进行同步动作,至于本地文件夹,由用户决定删掉还是保留。

假货泛滥的淘宝和天猫

我从2007年开始使用淘宝,不得不说淘宝拉近了三四线城市和一线城市的距离,并且让网上购物的概念深入每个中国网民的心中。从这个角度说,淘宝是中国电子商务发展的扛旗人和大功臣。然而近几年,中国电子商务业界的发展却走入了一个怪圈,原本生机勃勃的电子商务市场上,劣币驱逐良币的现象愈演愈烈,而作为业界老大哥的淘宝,对这种现象的不仅放任不管甚至包庇掩盖,无疑难辞其咎。

淘宝集市是好中差评的起源,好中差三档的分类虽然非常鲁棒,但是却是一个成功的评价系统——它让消费者可以快速了解到产品的优缺点,并从茫茫多的评论中挖掘出有效的内容。虽然有着某些弊端,但是这个评价体系无疑是非常倾向消费者的。淘宝能够快速发展到现在的规模,支付宝和评价体系绝对是最为重要的两个点。

依稀记得大概在06年的时候,淘宝打算弄一个类似于竞价排名的服务出来,由于卖家纷纷抵制而作罢,并且作出了永远不再推出竞价排名服务的承诺。当然了,说过的话不能反悔,钱却不能不挣。于是淘宝后来搞出一个叫做淘宝商城的东西,也就是今天的天猫。一开始推出的时候,这个淘宝商城的特点就是永远牢牢霸占搜索结果的前两位,无论是什么类型的商品、用什么排序方法,搜索结果的前两位一定是淘宝商城的结果。

所以,商人之所以为商人,逐“”利也。只要能挣钱,马云做个演员又如何?竞价排名不做了,换个名字照样能挣到钱。就像以前的假货,现在改叫做B货、尾单、工厂货;以前的水货,现在叫做港行;以前的翻新机,现在都改叫拆封机。

呵呵。

现在的淘宝,已经是假货的天下。打开淘宝,随便选些关键词,比如吉列、YONEX、阿迪达斯、耐克,反正只要是知名品牌,第一页的结果基本上全是假货,包括天猫,概莫能外。

有时候不得不佩服中国人的造假、售假能力之强,一个个来自小作坊的假货被堂而皇之的贴上了“正品”、“专柜正品”、“假一赔万”、“假一赔命”的标签,再加上一番包装和广告推销,信息完全不对等的消费者如何才能在购买前分辨真假?等到商品到手,发现是假货,要是集市商家一般会选择让消费者退回商品,而消费者如果选择退回商品,就意味着没有办法对假货进行评价,从而导致之后的消费者不能了解到商品的真相;而如果消费者选择不退回商品而差评,一方面自己蒙受损失,另一方面评价往往会被卖家诬为“差评师”,更有少数无良卖家会恶意泄露买家隐私信息作为报复。所以差评师这件事情,我相信会有少数人渣会去做,但是我更觉得是某些无良商家炒作出来的概念,目的就是为了掩人耳目,混淆消费者视听。尤其是在今天,好评率已经不影响搜索结果排序的情况下,卖家对于100%好评的追求已经大幅下降。我记得09年那会儿,淘宝上的100%好评卖家还是有不少的,这两年就基本从没见过了,由此可见,少数差评已经对卖家的利益不构成根本威胁了,而这种情况下,卖家口中的差评师,十有八九都是那些较真、不愿妥协的消费者。至于天猫,根本就没有让你差评的地方,卖家只要随便刷个几十个好评,你的评价就会淹没在茫茫多的评价中,其它买家根本无从看到。

淘宝和天猫的未来将去向何方,也许很难预测。但是在目前电子商务这个行业仍然高速成长的时期,购物品质不会是消费者在选择卖家时的最主要的考量。但是当电子商务行业增长趋缓,整个行业要从增量向提质转变的时候,淘宝将会经历一段阵痛:对假货下手意味着收入的减少,不对假货下手意味着顾客的流失,而淘宝必须在这两者中间做出选择。 在商言商,马云不是慈善家,商人的目的是赚钱。只有当假货问题真正影响到马云的收入时,淘宝才会真正开始重视;正如当微信开始从IM领域侵蚀电子商务的时候,马云才意识到移动平台的威力。

LeetCode: Populating Next Right Pointers in Each Node II constant O(1)空间解法

原题地址为:http://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/
内容如下:

Follow up for problem “Populating Next Right Pointers in Each Node“.

What if the given tree could be any binary tree? Would your previous solution still work?

Note:

  • You may only use constant extra space.

 

For example,
Given the following binary tree,

 

After calling your function, the tree should look like:

题目简而言之就是要按层遍历二叉树,然后加上指向同一层下一个节点的引用。本来没有什么难度,但是题目中常数空间的要求把这题的做法限制的死死的:不能额外建立一个队列,不能用递归。

这个题目最tricky的地方就是当我遍历某一层的时候,已经遍历过并建好链表的上一层本质上就是一个队列!我们只要保存好当前一层的起点,当这一层遍历完成开始遍历下一层的时候,利用这个起点构成的链表进行按层遍历即可。