Chaospace

Reshape the world by engineering chaos


  • 首页

  • 分类

  • 归档

  • 站点地图

  • 公益 404

  • 搜索

破釜沉舟学习法

发表于 2016-07-06 | 分类于 效率

很多人应该都有这样的经验:一本书,如果是买的,很可能仍在那里落灰;而如果是借的,因为有归还的压力会很快的读完。没有退路的时候,不光能让战士一往直前,还能让大脑更专注于记忆。

为了利用这个压力,一般我看书的时候会要求能完全了解页面的内容,不需要再回头看一遍。大学学英语的时候,看完一页书之后,会撕掉。书越看越薄,知识才真正到脑子里面。

从心理学上将,学了多少知识,是很难量化测量的。但是读了多少页书,撕了多少页书,却是可以量化的。通过这个量化,能够明确看到进展,学习的时候,就意识到事情正在朝向完成不断迈进,这种正面趋势所带来的积极情感能够进一步激励个体把事情执行到底。

攻克 Linux

发表于 2016-07-06 | 分类于 Linux

上一篇文章 提到当克服一个困难的事情之后,剩下的事情就简单了。学习 Linux 也是如此,通过安装 Arch,Gentoo,Linux from scratch,会对整个 Linux 系统有更深刻的理解。

Arch

  • 主页
  • 安装指南

Gentoo

Gentoo 和 Linux From Scratch 简直是绝配。从某种意义上说,Gentoo 安装的 Stage3,就是 Linux From Scratch 前面准备的编译环境。Linux From Scratch 提供了最基本的系统,而 Gentoo 则是用一种优雅的方式管理软件包的下载、自动补丁和依赖关系解决。和 Ubuntu 不同,Gentoo 提供了最大的灵活性,用户可以按照自己的喜好进行选择而不是简单的提供默认选项。用 Gentoo 一年多了,系统基本没有出过什么问题,滚动升级,不但可以使用最新的软件,而且降低了一次升级许多软件包而产生的危险。即时出了问题,也更容易缩小范围,发现问题的所在。但是 Gentoo 也不是没有问题,编译安装需要不少时间,在以前我在台式机中用 xfce 最小安装,还算可以接受。现在换了笔记本,一直那么高负荷编译,发热大,硬盘也会吃不消。所以有了换 Arch 的打算。

Linux from scratch

也许 LFS 不应该被成为一个发行版,因为基本上它只是一个供人学习的工具,通过从 0 开始一步一步安装系统需要的程序。我对这个系统的使用,仅限于从头到尾安装了两次,而装完之后就立即删掉了。但是通过 Linux From Scratch, 我对操作系统的认识产生了质的飞跃。在之前,光操作系统这个词都能把我镇住。而从头装卸了一次之后,突然间豁然开朗,操作系统整个的解体了,“提刀而立,为之四顾,为之踌躇满志,善刀而藏之”。所以向每个希望了解操作系统的人推荐这个系统。安装下来,可能需要花费两三天的时间,但是学到的东西,比用 Ubuntu 两三年都要多。

会当临绝顶

发表于 2016-07-05 | 分类于 心理学

人的主观能有多大的魔力,是一个哲学问题。曾经经历过的几个事情,促使我做一些思考和总结。

爬黄山

六岁的时候,父亲带我去爬黄山。上山的路都是自己走的,包括天都峰。当时确实很累,但是咬牙坚持下来了。那时候太小,是不懂什么“会当临绝顶,一览众山小”的,只知道云海很好看。

后来很长一段时间,都觉得自己内心有一股劲,遇到困难的时候,想想自己爬过黄山,就咬牙坚持。后来想想,这股劲,就是毅力吧。这股毅力,是战胜了一次困难之后产生的。当你战胜了它,所有比它小的困难,都是可以克服的。

“世界上有两种人,赢家和失败者,两者的区别在于,赢家从不放弃…”

退学者

大二开始的时候,系里面有一个人因为玩游戏太多,挂科太多,被劝退。后来听说,这个同学回去之后重新高考,直接考上清华,数学还是满分。

听到这个消息时,内心还是很震撼,也许有一丝的嫉妒和不甘心。当时已经感觉出来:高三上三年和上了大一再回来上高三,有一种难以言喻差距存在。因为学习过高数,再看高中数学,不要太简单。

同样的时间,一直在低水平的地方重复,效果并不大。

克服了高数,高中数学就是那众山小。
克服了泛函,线性代数就是那众山小。

攀岩

大四毕业的时候,和同学一起去攀岩。同样一个道,开始的时候,每个人都爬不到顶。也许是爬道中间确实有些地方有点难。直到有一个女生,尝试很多次终于通过了困难区,攀到顶端。然后奇迹出现了,后面的每个人,都能爬道顶了。

攀岩回去之后,整个手都抖的不行,两天抬不起来,两天一直思考这个事情。前面的人,因为没有人成功过,所以老是以为我也不行。而当认识到这个事情是可能的时候,就可以成功了,这就是榜样的力量。

所谓的榜样,就是让人真正相信,之前不可能的事情,现在是可行的了。一个人临绝顶,天下人看众山小。

最难解的代码问题

发表于 2016-07-05 | 分类于 代码

由于 C 语言的本身设计非常贴近底层,所以会有一些坑,很容易出问题。回想一下之前遇到的难解问题,大概包括下面几类:

越界访问

死锁

堆栈溢出

Linux 的堆栈是比较小的,32 位系统上是 8KB,64 位系统上是 16KB。所以使用静态变量,长调用栈时要非常小心。

因为堆栈后面会有 Thread 的重要信息,所以堆栈溢出后,很可能看到调用栈都是乱七八糟的。

最近 Linux 内核有计划将堆栈使用的直接映射内存变为虚拟映射内存。这样可以通过映射表检查是否有堆栈溢出访问,堆栈溢出的错误会更容易发现和调试。

多次回收 (Double free)

建立社群的步骤

发表于 2016-06-30 | 分类于 经济

1. 重新定义目标用户群体,确立产品定位

  • 确定目标人群,用户画像
  • 设计联系成员的纽带

2. 寻找初始用户

3. 策划社群活动,强化身份认同

4. 社群裂变,培植自组织

5. 建章立制,健全社群运营机制

  • 评价机制
  • 激励机制
  • 会员积分体系
  • 游戏化等级

6. 社群文化

部落群体必须具备三个特征:

  • 相似的文化
  • 频繁的互动
  • 共同的利益

创新者的窘境

发表于 2016-06-28 | 分类于 经济

具有领先优势的大公司,在面对突破性的技术创新时,失去了竞争优势,被后起者超越。《创新者的窘境》这本书希望找到问题原因

原因总结

  1. 资源分配的重心是满足当前用户,所以创新产品得不到足够的重视。
  2. 公司规模和市场规模不匹配。新技术的市场规模开始时都比较小,大公司会忽略这个小市场。
  3. 新的市场可能是不存在的,所以很难去分析。不但是未知的,而且是不可知的。
  4. 害怕失败,不愿意离开安全区。

解决方法

  1. 创建与世隔绝的科研基地,封闭开发。
  2. 将突破性技术商业化的责任交给一个足够小的机构。
  3. 在未知市场试错,发现新的机会。避免传统的绩效考核方式。
  4. 创业公司、孵化器。

技术类型和典型缺陷

发表于 2016-06-23 | 分类于 效率

不同的技术类型,有不同的缺陷,需要重点关注和加强:

Type

甲骨文告谷歌 - 输了

发表于 2016-06-14 | 分类于 开源

Java 开源十年

十年前 Sun 开源 Java 的时候,普天同庆。一个新的世界展现在 Java 眼前,一个开源的 Java 吸引力更多开发者和公司的贡献。十年间,

谷歌做了 Android,用 Java 作为软件开发语言。Android 凭借开源属性,和苹果展开激烈竞争,成为世界第一手机操作系统。

专利流氓搅局

甲骨文收购了 Sun,但是花了很多年时间,依然搞不清楚怎么通过开源软件盈利,看到 Android 这么风生水起,显然眼红的不行。于是拿起专利大棒,状告谷歌侵权并索赔 90 亿美元。

甲骨文自己在 Java 开发上鲜有作为,却暗指谷歌 Android 的成功完全是 Java 带来的,说的好像自己也能搞出来一个 Android 似的,在专利流氓的道路上越走越远。

旧金山联邦法庭陪审团今日已做出裁决,认定谷歌 Android 并未侵犯 Oracle 所有的 Java 版权。Google 表示,陪审团的认定代表了 Android 生态体系、Java 开发社区以及依靠开放免费编程语言开发创新消费者产品的软件开发者的胜利。松下一口气的不只有 Google,也包括成千上万的软件开发者。

阴霾笼罩 Java

虽然官司赢了,但是 Java 的开源道路已经蒙上了厚厚的阴霾。很多公司再做创新性开发的时候,一定会考虑避免再拿 Java 作为核心组件。毕竟不是每个公司都能像谷歌一样请到最好的律师,能够和甲骨文巨头搞法律对战。

微软一直想做,但是没有做成的事情,甲骨文做到了。

软件版权,已经成为创新的障碍;软件版权,应该消亡。

Sun 开源 Java

Tmux 快速指南

发表于 2016-06-13 | 分类于 技术

启动

操作命令
启动tmux
帮助^b ?

会话

操作命令
新建会话tmux new-session -s play
重命名会话tmux rename-session tutorial
查看会话tmux ls
加入会话tmux attach -t ‘’session’’
脱离会话^b d

窗口

操作命令
创建窗口^b c
关闭窗口^d
下个窗口^b n
上个窗口^b p
最后窗口^b l
选择窗口^b w
查找窗口^b f

面板

操作命令
水平分割^b %
垂直分割^b “
切换^b o
放大^b z

开源漏斗模型

发表于 2016-06-12 | 分类于 开源

Funnel

销售漏斗

销售中有一个经典的漏斗模型,一个用户需要一系列步骤才会真正购买。在每一个步骤上,都会有用户止步不前,所以最终购买的用户仅仅是潜在用户的很小一部分。

  1. 潜在客户
  2. 了解产品
  3. 浏览网页
  4. 产生购买欲望
  5. 点击购物车
  6. 网银付款
  7. 快递收货
  8. 实际使用

开发漏斗

同样,在开源开发中也有类似的漏斗模型存在:

  1. 使用产品
  2. 参与社区讨论
  3. 首次参与贡献
  4. 长期开发者
  5. 核心开发者

同样的,每一步都会有开发者止步不前,只有极少数人会成为核心开发者。所以为了提高最终的成功可能,获得更多的开发者,一个开源产品也需要进行运营工作。

运营开源产品

用户社区

互联网经济中,所有公司都已经大大提高了对用户社区的重视程度。对开源产品来说,更是如此。很多开源项目都有非常活跃的论坛、IRC、邮件列表等等,老用户帮助新用户。

首次贡献

大部分用户开源软件的首次贡献,都是在使用的过程中遇到 Bug。为了解决自己遇到的问题,就去查看代码,找到问题原因,并提交补丁。

和封闭系统相比,开源系统大大降低了活跃用户参与贡献的难度。尤其是 Github 的 pull request 机制,更是简化了 patch 提交和合并流程。为了让更多的用户进行首次贡献,一个开源项目最好提供一份快速启动手册,一个专门的页面介绍如何进行贡献。

长期贡献

首次贡献变为长期贡献,是一个很艰难的过程。除了解决自己的问题,还是需要额外的动力。对于开源软件来说,商业社会惯用的钱已经起不了作用了。

不为钱,则为利。需要给这些开发者足够的荣誉,比如贡献者列表等等。激发人对内心自我实现的渴望。

123…18

Feng Chao

178 日志
14 分类
1 标签
RSS
GitHub E-Mail Twitter
© 2006 — 2018 Feng Chao
由 Hexo 强力驱动
|
主题 — NexT.Mist