网络寻租

Programmer, Gamer, Hacker

戴面具的国度

| Comments

我在想,如果大家都戴面具就好了, 可以按照自己想要的样子完全装饰自己, 不纠结长相,注重每个人的性格特质。

面具上面根据自己的想法来做, 通过面具体现自己的性格,特质。

比如个性是两面的,就用这个:

平时嘻嘻哈哈,就用这个:

那么如果这样设置,这个世界会变成什么样子呢? 让我来构建一下吧。

首先是为什么会产生戴面具的需求。习俗的产生可能是很无厘头的, 比如以前有一个专制国王,脸部有疾病,就戴着面具出现, 然后要求所有的臣民都戴面具。不戴面具的就杀头。之后慢慢就演变成了习俗。

为了社会安全,每个人的面具上面要有自己特殊的标识, 让别人认出来。类似于汽车必须有车牌号。 扒人面具是重罪,一般只有在自己最亲近的人面前才能摘下面具。

小孩子的面具上面有做家长的记号。成年之后就可以自己选择面具。 但是也还是会有专业的面具师做面具。地位比较高的人,会请好的面具师来订做, 普通人可能就购买模板面具,然后根据自己的要求设计面具。

军人的面具都统一形式,上面有军衔标识。不过为了防止军人间谍, 可能所有的军人都要纹身,通过纹身来达到辨识身份的目的。

戴上面具如何解决吃饭问题?面具的嘴部是有活动机关的,可以伸勺子进去。 那么餐饮习俗也会变化,吃饭就必须把食物做成小块,深入到面具嘴部递食。 然后餐具就不会是筷子,而是刀叉,勺子,甚至有专门的可以伸长到面具里面把嘴擦干净的工具。

因为面具挡着,不好通过表情来沟通,所有的人基本上都会变成面瘫, 然后通过声调和手势来表达情感,语言上面,会有很多微妙的声调区别, 对于外国人来说,理解和学习好声调会显得困难。

会出现可以做出表情的面具,一些比较在乎的人,或者女性,或者贵族, 会根据心情,准备一系列的面具,社交场合下,或者平时,会频繁换。 类似于现在女性换包包。

找老婆,就看谁的面具做得好,因为女性的面具是自己做的,做得好代表心灵手巧。 女性会花费好多时间在学习如何制作面具上面。类似于化妆。

不过男性还是会希望找到除去面具后长得好看的,就会请中意的女性去吃东西, 通过嘴部的缝隙来偷窥想了解女性长相,但是女性也有针对性的对策,有薄纱来遮挡。 但是自信一些的女性,会故意多露一些。更有大胆的女性,会尝试打破禁忌, 面具上面缺失一些遮挡,露出皮肤。

人与人之间还是有差异。有钱人就可以用好的面具, 上面会镶嵌一些贵重的宝石,或者做一些特殊工艺的效果。

每年都有一个面具节:大家把最好的面具都拿出来,游行, 各种面具师制作各种极限的面具来宣传自己,比如最华丽的面具,最大的面具,最精致的面具等。 节日也会吸引大量的外国旅游者,他们会买各种针对旅游者的面具, 一些收藏者也会想办法找到著名人物的面具进行收藏, 面具经济,是这个国家里面的一个重要的组成部分。

如果真的有一个面具的国度,一定很有意思。

Capistrano介绍和入门

| Comments

Capistrano是一个ruby写的远程服务器自动化和部署工具。

虽然我们可以直接连上服务器操作部署,甚至可以写脚本自动来做,但是比起自动化工具来说,有以下缺点:

  • 多台服务器任务量巨大。
  • 手动操作的话,需要连上服务器手动执行,步骤烦琐,容易操作错误和忘记事项。
  • 写脚本自动操作不能重用到其他项目里面去。

用了自动化工具,可能第一次配置比较复杂,但是配置好了之后,发布工作就简单得只需要执行一个命令,轻松愉快。 它也有学习复杂,因为有抽象出现问题难以找到原因,造成额外心智负担的问题, 这个要开发者根据项目大小和类型来做权衡。

看了官方文档,wiki,看了一天都没有看出门道,后来看官方网站上面的文档才慢慢弄懂。

Capistrano的原理是这样:

  • 需要部署的服务器根据角色(role)区分: 比如有app,db,web,然后每个角色可以有多台服务器。
  • 针对不同角色,设置各类的任务,设置执行一些命令。
  • 可以根据阶段设置不同的stage,比如staging/production,staging用来本地测试环境的部署,production用来进行生产环境的部署。
  • 默认的一套发布流程包括了检查服务器环境,更新代码,初始化,上线等各种过程。
  • 每个过程都提供了钩子,把任务链接到钩子上面,就能够保证部署过程按照期待的状况进行。

弄懂如何用cap比较麻烦,我整理了一下如何学习的资料:

  • 首先是去看官方文档,对于基础概念,有一定的了解。
  • 一定要实际部署一下,可以用本地环境测试,repo_url设置成本地,比如”user@localhost:/home/user/testapp”。
  • 弄清楚发布到服务器上面的文件架构。本地测试部署一次就清楚概念了。
  • 如果需要自动部署rails,可看别人整理的一份详细文档

然后学习一些原理性质的资料:

如何减肥

| Comments

减肥第一步,是真正想减肥。 真正想减肥的意思是,你可以下决心放弃美食,放弃晚上舒服地躺在沙发上面看电视剧。

减肥是全身性的,不能局部减。 减肥的要义很简单,就是减少能量摄入,增大能量输出。

需要做的事情有几个:

营养均衡保证热量摄入少,以及长时间保持血糖平衡。 保持全天的血糖平衡,就可以长时间维护好身体的能量消耗等级,保证持续的热量消耗, 不至于因为血糖少而减低热量消耗等级。 千万不能饿到肚子,因为饿肚子会减低人的能量消耗水平,反而瘦不下来。

还有就是每天保持高能量输出,这样让身体维护一个比较高的热量消耗水平。 方法是通过每天高强度运动(时间不一定很长,40分钟足够了), 高强度就是你的心率很高,可以感觉到心跳厉害。 散步,慢跑效果都不够好,要做一些快速跑跳的全身动作。

坚持两个月就会有明显的效果。

大城市快捷美食解决方案

| Comments

在大城市里面吃饭是一个头疼的问题。首先没有足够的时间做饭:每次做饭都需要花费一个小时,不管是给4个人做,还是一个人做。如果在外面吃,就需要花费很多钱,并且往往需要走很远以及等好久。 我是一个注重效率的人。我找到了自己的一套解决方案。解决的思路注重效率,金钱以及营养均衡。

首先是早餐。早餐要一个鸡蛋,足够的碳水化合物,以及蔬菜。 煮鸡蛋需要花费一些时间,一个很方便的解决方案:用微波炉来做。把鸡蛋打在小碗里面,筷子拌匀,用另外一个碗盖着,放到微波炉里面,1分钟即可。可能有一点小爆炸,但是有碗盖着,不会爆出来。 也可以把鸡蛋打到面包里面,混着面包一起。如果觉得口味不好,可以在搅拌的时候加上一点糖。 然后是早上的主食。我的主食是日清方便面。方便面之父创立了日清,在所有的方便面里面,日清是我觉得最好吃的,强烈推荐。 也可以购买冷冻批萨,也可以放很久,我有朋友的冰箱里面都是冷冻批萨,不过价格就贵了一些。

然后是中午和晚上。我的解决方案是找到最近的一家农民餐小食堂。因为是农民餐,分量大,肉多。我一般花费15元或者20元买一份(20元2个鸡腿),然后拆分成2份,分成午餐和晚餐来吃。因为我并不做大体力活,这样的份量刚好八分饱,很健康。 至于口感的问题,我提供2个解决方案:一个是老干妈调料,非常有效。另外一个是用iPad看电视剧,看得精彩就不觉得口感差了。

我是一个坚持的人,周末坚持按照我的食谱进行,社交活动会去聚餐,然后腻味了会更换伙食,购买全家盒饭或者罗森盒饭。7/11的盒饭也很好吃。 可能有人觉得这样吃饭太不会享受生活了,对于我来说,吃饭只是满足身体的基本需要,可以投入更多的时间精力到其他方面的享受上面去。

加班语录

| Comments

  • 我已经习惯加班了。
  • 年轻人不加班怎么行
  • 不加班做不好事情
  • 加班是种生活习惯
  • 反正下班了也是做上班的事情
  • 有的时候不是想加班,而是不上班就不知道日子怎么过
  • 不天天加班的人生是不完整的
  • 10点之前下班不算加班
  • 为了增加加班时间,我搬到办公桌下面睡觉去了。
  • 什么是加班?
  • 工作是生活,加班是乐趣
  • 有的时候下班了还是要回家,换个地方工作效率更高
  • 工作是如此地有趣,以至于让人忘记天亮了
  • 虽然加班很累,比起晚上的无所事事,我还是宁愿加班
  • 国家规定每天工作8小时你就工作8小时?
  • 工作让人上瘾
  • 加班可以让你忘却自己的失败,家庭的不和谐,生活的不如意,并且还有钱拿
  • 加班让人感觉自己是英雄,独自一人和黑暗作战。
  • 下班的时候看着路灯映照下的背影,感受到夜晚略带寒冷的气温,更能够体验到自己的存在
  • 晚上加班是我一天中最快乐的时光,真的在做事情,没有人干扰,安静地独处。

无偏博弈游戏的解法

| Comments

无偏博弈是指这样一种游戏:游戏双方共用棋子,游戏过程没有随机变化,一定会结束在其中一方胜利。 根据结束状态反推,可以用数学归纳法来证明,这类游戏一定可以确认每个游戏状态是必胜还是必败的。

我们可以构造一种必胜方法,在游戏进行过程中,保证每一步都停留在必胜状态上面。 可以根据游戏状态维护一个特殊值,每当这个特殊值不为0的时候,都可以把状态转换到特殊值是0的状态。 然后游戏一定结束在特殊值是0的状态,如果这个状态是必胜态,那么这种方法一定必胜。 如果双方都采用这种方法,失去机会维护这个状态的玩家必败。

这个状态我们叫grundy值。构造的算法采用递归。首先获取这个状态可以走到的所有状态的grundy值, 然后取不属于这些值的最小非负数整数。 假设状态K的grundy值是n,那么K一定可以转换到grundy值是n-1, n-2, …, 0的状态。 证明通过反证法:如果有一个状态t<n不能转换,那么n<=t,产生矛盾。

有了grundy值,之后通过维护grundy值来保证转换到必胜态就好了。 实际做题,通过动态规划来计算一个状态的grundy值,然后通过这个值知道当前状态必胜还是必败。 状态有的时候会非常多,需要寻找规律,把状态合并起来。

学习资料应用:《挑战程序设计竞赛》中游戏博弈部分

如何找对象

| Comments

现在都说找对象难找,如果你不是像我一样矫情挑剔的话,还是可以很快找到的。

首先我们需要知道自己要找什么样的人,以及这样的人存在的概率。 标准要具体一些,方便快速筛选,比如对方性格,背景,外表之类。 如果没有概念,一方面遇到了也可能错过,另一方面会定位到错误群体,浪费时间精力。 不知道怎么办?多见人,多和人接触,自然会清楚自己对什么类型比较倾心。

然后就是把这种人找出来了。单个的相亲类似于大海捞针,非常没有效率, 建议拓展社交圈为主,一个社交圈后面是许多的人,并且有机会一次接触许多。 如何拓展社交圈? 普通人本身有的是工作同事圈,同学朋友圈,圈子里面每个人后面都有一个或者几个圈子, 有些社交达人后面圈子比较多,可以重点挖掘。 除此以外,还有兴趣爱好圈,吃喝玩乐圈,旅游户外圈。如果你想找同类的话,可以重点挖掘这些圈子。 大城市各种活动组织比较多,比较容易挖掘,小城市的话也有各种同城QQ群。 挖掘方法上面,先每个圈子看看,如果发现一个圈子里面有很多达到自己标准的人,再重点关注和发展。 除了挖掘圈子,也要对其他渠道抱有开放心态。父母介绍,朋友介绍,同事介绍,各种活动,工作客户,各种场合遇到的各种人。 也不要拒绝相亲,多一个渠道多一些机会,但是一定要预先筛选,不然见了无数人,没有一个是目标类型。

现在你可以遇到很多人了,那么如何了解他们呢?我觉得要从多个角度。 首先是见面。见面可以知道长相,性格,人的类型,可以最有效地筛选。网上聊了很久见面不喜欢成本就大了。 然后是接触。可以出来聊,更好的方式是一起做项目,可以直接了解对方的性格,能力,行为方式,以及直接发现是否互相适合。 还有就是深入全面了解。可以挖掘对方历史,了解家庭背景,搜索网上痕迹。 很多人表面平平,搜索之后才知道不简单。不要错过他们。

这样你基本可以定位到意向目标了,之后就是争取对方。 不是“找对象”而是“追对象”,和“处对象”了,下次我再来介绍相关的经验。

神秘学

| Comments

玄学和风水人人都在谈,人人都不了解,但是人人都信,这是顶级的神秘学。

比如说易经。易经历史上发挥了很多作用。 易经的特点在于不完整,在于不清晰。普通人弄不懂易经在讲什么。 这样易经的解读者可以以自己想要的方式去解读。 解读本身不是难的地方,难的地方在于让人相信自己的解读。

方法可以是树立权威。 给自己加上各种名头,可以是弄个教授身份,可以建立门派,通过大量的弟子来撑场面,也可以和名人官员来往。 传播信息的时候混杂一些专业知识,通识,心灵鸡汤,有用的东西要有很多。这样培养忠诚度。 到一定程度就可以收割了,让信徒来给自己买单。

还有一种效果是自我催眠。很多人去看书,都说从书中学到了很多。 其实不是这些书教会了你,而是你假借这些书教会了自己。

自动更新程序功能思考

| Comments

对于有经验的程序员来说, 很多看起来比较简单的功能,实际做起来会非常复杂。 而对于有经验的工作者而言,任何事情都是这样的。 把事情做好需要的精力,是把事情做完需要精力的无数倍。 同时带来的好处也很明显:卓越成果相比普通成果来说,有很高的溢价。

回到正题。这里整理一下windows下面写一个可以自己自动更新的程序需要的考虑。

首先,windows下面程序不能自动更新自己,程序开启的时候会锁住程序的可执行文件。 因此,需要先做一个启动器,通过启动器来负责调用程序和更新程序的事情。 同时这个启动器必须足够快足够小。我选择的是autoit, 如果有更多开发资源,最好还是用C++写一个windows原生程序。

启动器的逻辑是这样,分成检查更新和更新部分。 用户开启程序,实际是调用启动器的更新部分后再启动程序。 程序本身运行的时候,再定时监控是否有更新,实际调用启动器的检查更新部分, 这样关于更新的逻辑都丢给启动器,模块化好一些。

检查更新的逻辑比较简单,会去访问更新服务器上面一个版本文件, 和本地程序的版本做比较,如果本地更旧,就下载程序到一个new_program目录下面。 定时检查更新的时候需要随机化检查时间,防止无数客户端同时更新拖垮更新服务器。

更新部分会在本地判断是否存在new_program目录,有的话就替换掉旧的程序, 执行安装脚本做一些系统相关的配置,再启动。

其中为了防止旧程序开启把旧程序目录锁住,需要关闭旧程序,或者跳过这块的更新。 启动器本身也要能够被自动更新掉,逻辑上面需要照顾到这个问题。 启动器对应的一些参数,比如更新服务器地址,更新目录,最好做成配置文件,方便修改。

关于相亲活动

| Comments

这些年参加过不少的相亲活动,这里整理一下我对这些活动的认识。

需求

相亲,目的就是在一定的时间范围内搞定终身大事。 虽然说不同人有不同的标准,一般还是会列一些项目,用来做快速选人。 包括以下方面:

  • 人:年龄,第一感觉,性格,风格
  • 背景:地域,什么工作,收入,父母状况,家境

依据各人的状况,加上一些偏好,比如身高,地域,职业,特性等等。

这个时候,最好能够有大量的满足要求的人选,可以尽快选择出合适的对象。

相亲形式

首先列一些我觉得不是很好的形式:

人民广场相亲角。形式是绝对的硬件条件匹配,年龄籍贯工作收入有房无房学历等等。 父母上场。比起相亲来说,更像是父母消减焦虑的工具。靠谱程度?大海捞针吧。

8分钟。形式就是一堆男男女女,在咖啡厅里面,女生3-5人坐在一桌,男生每8分钟轮换。 在这8分钟里面,互相介绍。好处是可以看相当多的人,坏处是8分钟根本来不及了解对方。人也很杂。 一个晚上人看得挺多,但是一个都不了解。

小规模相亲活动。参与人员男女比例1:1,人数几十人。各种小游戏。 参与后我觉得就是来玩玩的,游戏中怎么可能了解人,并且人数也不是很多, 主题太功利了,比较容易惹来反感。

然后是一些我觉得好的形式:

暴走团。周末出来在城市里面到处走走聊聊。 大量的单身适龄男女(有对象的要么不来要么一起来),大量的自由聊天和组合机会。 一次活动4个小时,近百号人你可以从头聊到尾,每次活动人都不一样。 问题是参与没门槛,人比较杂,如果你要有一些条件限制的话就比较难筛。

派趣网:一个相亲网站,用户审核过,必须是985学校,要放本人照片,介绍等等。 大量高质量的人可供你接触。可惜现在不做了。

我觉得好的方式

首先要聚集靠谱的人。相亲难,首先难在找人。然后难在筛人。 首先,相亲市场需要搜集满足互相匹配人群,比如男的要身高,稳定工作,有房之类, 女的要长相过得去,教育水平。还有就是人要清楚根底,让参与者能够放心加入。

之后是出来见面。一次一个人效率太低,还是要集体活动。

  • 活动本身不能直接以相亲形式,太露骨了,并且功利远离浪漫,不容易产生爱情火花。 可以读书,旅游,徒步等形式。
  • 活动要有破冰环节,防止人聚集在小团体里面,要打散开,让人之间产生互动。
  • 活动还要有大量自由聊天,自由组合时间,方便大家互相接触,互相了解。
  • 还要有互动机会,比如一起做一些事情,这样能够从行为方式上面达到互相了解的目的,只是聊聊,是不能看清楚一个人的。

可能还需要一些辅助。

  • 常识普及:相亲时限,如何交流,女性心理男性心理。可能90后这方面的问题不大,80后还是需要一些学习。
  • 中间人:沟通有障碍的时候,需要中间人作为意愿传达。这个中间人最好是两个人的朋友。

现在没有看到满足这方面需求的专门性质的组织,但是一些非专门的组织在满足上面需求做得比较好, 比如各种学生社团,公益组织,兴趣方向的俱乐部等等。有相亲需要的人可以好好利用这些机会。