跳至主要内容

如何做到心无杂念

最近计划着要转行,可总是静不下心来。想来想去时间一天天的过去,一天天的耽误,心里也是着急。前天,朋友的话让我有所悟。做事得心无旁骛才行,尤其是影响比较大的事。

用程序的方法看待心无旁骛

每个人的生活都是一个小小的系统。而系统的稳定性和健壮性也是每个人都追求的。然而,维持系统的稳定性和健壮性并不是一件容易的事情。心无旁骛说的就是系统不受外部因素影响。

用程序的方法解决杂念

要做到心无旁骛,就必须解决杂念。杂念其实就是变化。变化总是能够给系统带来不稳定因素,对系统造成各种干扰。不过,仔细来看,变化则是外部系统功能弱化,存在度降低的过程。当这个过程传递到子系统时,需要子系统对其进行代偿,继而维持自身的存在度。而子系统为了代偿这些弱化的功能,便需要找到更多的能代偿的子模块。这些子模块的集合就构成了子系统的存在。当子系统再也找不到可以为其代偿的子模块之时,便是子系统湮灭之时。正所谓皮之不存,毛将焉附,就是这个道理。因此,外部的变化和模块的代偿能力便是一对相辅相成的矛盾。每个模块的存在都是做到了调和变化和代偿的矛盾。然而,如何才能调和这对矛盾呢?
变化的开始是随机的,并且变化一旦开始,它的传递是强制的,单向的,如水波纹一般,要么遇到坚硬的石头反弹,要么被较软的物体完全吸收。因此,我们可以从反弹和吸收方面入手。
病从口入,尽量减少系统的出入口,来减少传入系统内部的变化量,消耗系统的代偿能力。引入满足自身需要的模块增加自己的代偿能力。基于此,我们如果要调和变化和自身代偿的矛盾有以下几个方法:

拥有四面的铜墙铁壁,封装严密

要做到封装好就必须有铜墙铁壁。然而,要做成这样一堵墙,就必须有一个与外部系统格格不入的模块来完成。也就是我们常说的倔脾气。它能够帮人保护好自己不受外界的侵害。此外,减少与无效信息的接触,也是个抵御侵害的方法。
当然,封装也有不良后果。系统代偿能力的固化。由于系统的代偿能力的变化是随着引入外部变化而变化的。如果外部的变化极少引入,那么系统的代偿能力便会固化,甚至萎缩,更严重的带来系统的消亡。并且,在这个过程中,由于外部系统会主动贴近发生交互多的子系统,脱离交互少的子系统,因此,会造成自身被脱离,增加遇到来自原系统之外所带来更不可控的变化的风险。因此,适当的不务专业一些,拥抱变化也未尝不可。至少它能够帮你背靠大树好乘凉。

建好门,内外松耦合

耦合度高,在程序架构中带来的问题就是牵一发而动全身。松耦合的作用就是将系统中各个组件的依赖程度降到最低,避免出现牵一发动全身的现象。而松耦合的实现方法就是把接口设计好,也就是建好门,不单单是大门,还有各个房间的小门与窗户。要做到这些,需要对自身资源进行归整,对主动引入的变化做好归整,对被动引入的变化做好归整。然后将这三者很好的组合到一起。
当然,松耦合也有不良后果。耦合度过于松散,换句话说就是功能的固化。就仍然回到刚才封装的不良后果中。此外,如果封装是主动屏蔽变化,那么耦合就是主动引入变化。当接口的过滤设计的不好时,会引入自身处理不了的变化,引起中毒,也会引入过少的变化,饿死机体。

维护好可靠的外交关系,拥抱变化

拥抱变化看似与刚才的封装相互矛盾,实则是为了弥补封装模块的缺陷所提出的。不过,也不是什么变化都要引入,只引入自身需要的。然而,新的变化总是富有风险的。因此,在引入变化的时候千万不能盲目。一定要按部就班,根据自身系统所能容忍的程度来引入,一步一步,由小到大的来。
此外,引入新的模块之后,系统内部必须有一个沙盒一样的东西,也就是个试验场。在这个试验场里,只能引入足够小规模的变化,以防失控对主系统产生威胁。因此,要做好这个沙盒,首先内部得有足够的空间承载这些引入的变化。

勤劳致富,高内聚

高内聚意味着内部模块足够小的时候应该牺牲安全换取紧耦合。目的是为了提高单个模块的代偿能力。而紧耦合也就带来了频繁的变化。所以,勤劳在这里起作用。勤于修整因为紧耦合所带来的自身的资源的混乱。勤于处理传入的变化。这两者都是为了提高自身的代偿能力。

放到生活中来说

生活中有很多问题都可以基于以上的理论来解决。比如,我自己的实现转行到区块链这件事。这件事是在我自身的Android工作无法代偿生活带来的压力的背景下,拥抱变化而发现的一个新行业。我的目的依然是代偿生活这个模块给我带来的变化。因此,我需要开辟一个沙盒,将其引入。主要做几件事:
1. 观察这个模块可否能够代偿生活给我带来的变化。
2. 这个模块和我原有的各个模块是否耦合。
除此之外,我需要尽量让其对我原有的系统造成较小的侵入。所以,我需要对我的工作模块中包含的子模块进行归类。对生活的子模块进行归类。对外部引入的变化进行归类。对生活,我们的目标是找个以后能方便照顾父母,不耽误孩子前程,自己喜欢的地方定居。目前满足这三个条件的有郑州,荥阳,巩义三个地方。这对我们带来的压力就决定着,我们的家庭目前有三名成员,我,孩子和媳妇。我和媳妇的工作又都在郑州才有。不耽误孩子前程的条件如果是让孩子至少是个一本的话,其实放在巩义就可以。然而,这就和我们俩的工作产生了不兼容。所以,为了保持兼容性,郑州是个合适的选择。然而,在郑州定居的话,我们俩的工作是家庭几乎所有的代偿能力,我们的代偿能力就产生了不兼容。为了保持兼容性,我就需要转行,媳妇也必须工作。然而,孩子此时此刻就没人照顾。只能引入父亲来帮忙。而父亲也是需要我们进行代偿的。因此,整合如下表:

变化 兼容 代偿
孩子的未来(巩义) 郑州 媳妇和我(郑州)
孩子的现在(和妈妈在一起) 郑州 父亲(老家),媳妇,我(郑州)
父亲 郑州 我,媳妇(郑州)
媳妇(郑州) 我,媳妇
我(郑州) 我,媳妇

从表中就能发现家庭这个系统中,我和媳妇在代偿方面占主导地位。我和媳妇50%,孩子30%,爸爸%20。只有提高我的收入是个方法。于是就有了转行区块链的目标。
为了实现这个目标,根据以上理论,我需要做到以下几条:

  • 对区块链的代偿能力和接收变化的方向做出归类,也就是区块链的技术要求和工作。
  • 做好归类以后,少做变化。然后明确目标,努力提高。
    目前区块链的工作在郑州只有10家,技术要求比较宽泛,普遍要求熟悉以太坊,超级账本,比特币的原理,熟悉常见的几种共识机制及实现方法。其次,就是些基础的编程语言,如java,golang,c++等,另外还有些高要求的有带领团队,对分布式系统,数据库熟悉。而我目前从事Android只有java基础,但是自学能力强,学习语言不成问题,对新技术新理论的掌握速度也还行。所以,我应该先从以太坊入手,了解其智能合约。然后从ethereumJ项目入手了解项目的原理实现。完了之后同时把golang语言学会,依葫芦画瓢的看geth的源码。学完之后接下来仍然用java学习比特币,用go和java学习超级账本。至于C++就到工作中在学把。学习的目标是:
  1. 以太坊的智能合约可以发币。
  2. 手写一个Android端的以太坊钱包。
  3. 画出一个以太坊原理的思维导图,并根据这个思维导图写出个简单的以太坊的原理框架来。
  4. 画出一个比特币的原理思维导图,并且根据这个思维导图写出个简单的比特币的原理框架来。
  5. 总结各种共识机制。
  6. 画出超级账本的实现机制的思维导图,并使用超级账本实现一个应用。
    经过以上学习目标,此时市场的工作岗位也应该会翻倍了。
    说完工作,说生活。媳妇需要上班,孩子来到郑州之后,学习的时间会变的更少。不过,有了监督以后学习也会更高效。
    洋洋洒洒写这么多,算是给自己的生活做个总结归整把。

评论

此博客中的热门博文

用Google Calendar写日记

Google的产品一直都是非常强大的。说它强大并不是因为Google公司有多么牛逼,而是它的产品如果你用心用的话总是会用处许多花样。与之前 强大的Gmail做成完全可以替代Google Reader的RSS阅读器 一样,Google calendar一样是个功能强大的产品。它除了大家常用的日历、任务表功能以外,还有一项并没多少人知道的记日记的功能。今天我就详细介绍一下怎样用Google Calendar记日记。 一、日记 日记想必许多人都曾经写过,以前自己买个本子,晚上没人的时候偷偷写,写完之后藏起来。每个人都有点小秘密,不过如果大家回头看一下自己的日记,一定会发现自己原来真的好傻。其实有这个想法,日记就没有白写。日记本来就是记录自己成长的log而已。既然是log,那么流水记事是一定的,时间准确,天气环境什么的都要计入。这样才能以最快的速度还原当天的情景。这其实就是日记的功能。 此外还有童鞋在日记本里记下自己的小梦想,比如买部好手机,到泰山旅游,或者追小丽什么的。这些如果记入日记本里,你会督促自己努力实现自己的目标。 总之,写日记是个很美妙的事情。如何让这件事情延续下去?就请出今天的主角Google Calendar先生。用它来记日记有以下几大优点: 1、日记的数据很安全,保存在Google机房,并且随时可以导出备份。 2、支持的平台很多,网页端,手机网页端,Android客户端,iOS客户端,让你随时都可以记日记。 3、速度很快,Google Calendar一直没有被GFW认证过。另外google的速度,你懂的。 4、仍然是安全,密码只有你自己知道,别人不可能破解。 5、在日历里以日程的方式添加记事,想写多少都可以。事情精确到时分。 6、可计入的内容很多,日期,地点,人物,时间,天气、照片,视频,文档等等。 7、可以提醒写日记。 8、强大的全文搜索 9、日历的查看方式,让你对日记更一目了然 10、可创建多个日记本,让你对自己的日记分类更明确 11、对每一种事件都可以添加不同的颜色,让你对自己一天忙的事情一目了然。 12、界面简洁,可以自定义背景 13、可以针对某一篇日记,某一个事件通过邮件的方式与人分享 缺点: 这种写日记的方式是对传统写日记的习惯的一种挑战,需要你逐渐的适应这种写日记的方式

自己打造Gmail RSS阅读器完美替代Google Reader(Gmail与ifttt的完美结晶)

Gmail RSS阅读器已经升级到2.0 GR挂掉的日期临近, Feedly 跟着不断的抽风,其他RSS阅读器残疾的功能让我们又一次怀念GR的日子,最近突发奇想,Gmail这么强大,可不可以变成RSS阅读器呢?答案当然是能的,并且与GR相媲美。 于是自己在G+的基友们帮助下打造了一个利用ifttt与Gmail配合的RSS阅读器,相当强大,优点多多,请各位达人指教: 1、收取速度国内延时20分钟之内,无漏收(国外源在五分钟之内) 2、只要Gmail不关,ifttt不关,那么你就可以一直使用下去 3、 内容不过滤,安全 4、翻墙订阅没问题,图片照常显示 5、用Gmail的标签以及关键词过滤管理订阅源,与gr的边栏一样的效果 6、 可以加星标,另加标签来保存重要的文章 7、Gmail的访问速度 8、 Gmail的各种访问平台,跨平台使用。Android,web,桌面,windows,mac,iPhone,iPad,Linux等等,只要能用Gmail就可以用Gmail RSS 阅读器。 9、Gmail的IMAP设置可以在移动端有选择性的收取某个标签的订阅源。 10、 以往的订阅条目全部保存 11、订阅更新可以通过邮箱提醒 12、 全文搜索 13、对收取过程的全程监控 14、可以邮件编辑后转发以此来共享,目前evernote,Blogger,QQ空间支持邮件发布 15、 支持快捷键并且与GR的差不多 16、利用Gmail实验室里的预览窗格可以增加一种阅读方式 17、可以标为已读 18、可以自动翻到下一条目 19、可以删除无聊的条目,比如博主的测试条目 20、客户端有没有都可以用 还有更多的功能供大家来发现 当然也有缺点: 1、添加订阅比较麻烦:需要在ifttt添加触发,在Gmail里面添加过滤,标签 2、邮箱界面的阅读有些童鞋不喜欢,不过Gmail可以换背景的说 打造教程: 一、总体思路 这个Gmail阅读器主要原理是利用ifttt的Feed 应用抓取订阅源的文章更新,然后利用设定好的触发器,通过Gmail应用将这个更新作为一封Html邮

Gmail RSS阅读器2.0升级版

用Gmail+ifttt的完美搭配做成了完全可以替换Google Reader的Gmail RSS阅读器1.0,教程在此: http://james-sun.blogspot.com/2013/05/google-readergmail-rssgmailifttt.html 但是经过一个星期网友们的建议之后,发现了许多不够完美的地方,博主总结了各个建议打造出来了Gmail RSS阅读器2.0. 这次的升级log有以下几点: 1、更加精准方便的收件人地址过滤,解决关键词过滤的各种缺点 2、增加Feedburner的功能,解决依靠ifttt的局面 3、颜色标签,更加方便的管理Feed更新 4、增加回复、转发等共享及保存的功能 5、增加稍后阅读及笔记等标签,让Gmail不仅可以做RSS阅读器,也可以做笔记软件。 6、原来的20大功能一个不少 本篇文章是基于你已经用过 Gmail RSS阅读器1.0 或者明白它的工作原理,因此如果你不是,那么先点链接温习一下吧! 一、精准方便的收件人地址过滤 如果你拥有一个Gmail邮箱,那么你就拥有了无限个邮箱地址。假如你的邮箱是 google@gmail.com , 那么 google+yueguang@gmail.com ; google+QQ@gmail.com ;google+com+cn等等这样格式的邮箱地址都是你的,并且凡是发送到这些邮箱的邮件通通进入你的 google@gmail.com 这个邮箱。 Gmail的过滤器有个通过收件人过滤的规则,在这个规则里填写这个收件人( google+qq@gmail.com )的地址,那么凡是发送到这个地址的邮件将服从过滤器的命令,对其加标签,跳过收件箱。 此外, g.oo.g.le@gmail.com 这种格式的邮箱地址也是属于你的。 g.oo.gle+qq@gmail.com 这类格式也是你的。然而,每个不同的邮箱地址在过滤器面前却都是不同的。就是这么神奇。 多个收件地址过滤的方法: 如果你需要将许多个feed更新归类到一个标签,那么在使用收件人过滤方法的时候,邮箱地址的填写格式一定要这样填:( google+aa@gmail.com )|( google+bb@gmail