把最看到的有趣东西,按月份和时间倒叙展示在这里. 因此,如果你感兴趣我在最近弄什么好玩的东西.你可以从这里找到相关的入口.

温馨提示: 如果文章中的链接你无法打开,请使用国外的代理访问.

2020.05

这两个月真是超级忙碌, 几乎每天都忙到很晚才睡觉. 身体好疲惫, 但也总算结束了, 已经离职, 完美地结束了全部的工作. 也算对自己的工作有个交代了, 做什么事, 都只求一个问心无愧. 离职了也好, 总算有些自己的时间了, 看看喜欢的书. 我打算以后再也不要从事编程的工作了, 如果有可能的话, 以后的人生, 找个清闲一点赚钱少的工作. 实在不想再这么忙碌下去了, 并没有多少自己的时间, 也不想再写无聊的代码. 只想要好好学习点有趣的东西, 获得内心的快乐. 编程和计算机将是我的爱好和乐趣, 而我一点不希望它是我谋生的手段. 尤其是写无聊乏味的代码, 好没意思. 我要学习一辈子的编程~想努力在开源的领域贡献自己的才智. 工作就只是工作而已, 能满足生活日常即可.

晚上在游戏里看到她写的那些话, 心里很不是滋味, 说不出来的感觉. 都这么久了. 希望她能拥有自己幸福的生活吧. 也许人就是, 永远得不到就总想要. 爱别人, 真难, 即便付出了全部的心. 不让自己痛苦的办法就是逃避, 永远也不去想过去的事情. 时间久了, 也自然就忘掉了. 唉! 我真的是天生不适合交际, 包括恋爱. 我这种性格, 只适合看书学习和编程, 而且我也不想背负房贷. 所以我打算再也不要认识任何异性了, 保持单身就好, 就单身一辈子. 除非那个人是她么, 我不知道… 算了, 再也不要提及这种事了, 以后只说学习相关的. 感情真是很奇怪的东西, 搞不懂, 也不想懂了, 浪费时间.


喜欢把事情按一批的方式执行, 我想先看完离散数学和组合数学, 然后看算法导论, 再找些有趣的例子实践下. 然后继续学习和折腾开源项目. 这大概是我今年的计划了, 能学好算法就算今年没有虚度. 所谓理想的生活, 并不是一种目标, 而是一种状态, 一种保持学习和为目标而努力的状态. 人们常说”实现梦想”, 梦想永远不可能被实现, 它是随着时间而变化的. 但是人可以做的是不断追求目标和梦想, 在这个过程中超越自我. 我想人生就是一个不断超越自己的过程, 不断努力提升和进步, 从而获得内心的快乐.

最后, 我想给自己一个忠告: 不要急功近利, 静下来学习, 总会不断进步的. 人生很长不是吗? 不要想着一蹴而就, 慢慢来, 活到多少岁学到多少岁.

2020.04

  • Low coupling is often a sign of a well-structured computer system and a good design, and when combined with high cohesion, supports the general goals of high readability and maintainability. Coupling and cohesion are terms which occur together very frequently. Coupling refers to the interdependencies between modules, while cohesion describes how related the functions within a single module are. Low cohesion implies that a given module performs tasks which are not very related to each other and hence can create problems as the module becomes large.

2020.03

MapReduce

在我的电脑找到一个关于Google MapReduce的PPT, 估计是什么时候不经意间存下来的. 这个PPT出自佐治亚理工学院计算学院lingliu教授的一个课程, 她的个人主页: LingLiu, PPT下载链接: Simplified Data Processing on Large Clusters. PPT基于Google研究: 原文. 其中提到的有:

  1. MapReduce Motivation: Large Scale Data Processing. Many tasks: Process lots of data(处理大量数据) to produce other data (以生成其它数据)

  2. MapReduce Concept. IBM的这篇Apache MapReduce提到了MapReduce示例:比如多五个文件里面都记录了(地区,最大温度)的Key/Value pairs. 通过五个Map任务分别得到了不同的中间值(键值对),最终Reduce任务结合所有的中间值得到最终结果,例如:(Toronto, 32) (Whitby, 27) (New York, 33) (Rome, 38).

2020.02

  • long time no see! 哈哈, 春节期间最近打了好久的游戏, 做了会网瘾少年.把我的王者荣耀打到了最强王者段位了, 小号也打到星耀二了. 结束了! 心情有点不错, 工作和生活回到正轨.
  • 整理了下自己的一些旧笔记和文档, 有个PDF叫Cmake 实践, 之前在学习Cmake工具的时候用到了它, 真的很不错. 这是我写的一个cmake的项目示例demo, 简述一下CMakeLists.txt写法: 1.约定基本的要素: 版本号, 项目名. 2. 指定源码和编译的目录 3. 使用include包含特定的目录, 以免缺少头文件依赖. 4. 致命令link目录, 以免缺少库的依赖 5.设置源码的变量 6. 使用add_来编译可执行文件或者库.

2019.12

本月学到的新东西: Memoization, Referential transparency, LSM-Tree

  • 计算机科学概念:Memoization, 维基百科的外链给出了几乎所有语言的全部实现. 这个机制是过存储(开销大的)函数调用的结果,并在再次出现相同的输入时返回缓存的结果,通过记忆来加速计算机程序。显然是以空间(需要空间一个额外的映射)换时间(函数调用的时间). 它在函数式编程中重度使用. 我原以为是硬件级别的优化, 实际上是software optimization technique, 比如Python, 它由标准库functoolslru_cache实现. 强烈推荐这个文章, Memoization in Python: How to Cache Function Results, 深入浅出, 在Python中它只是一个带缓存的装饰器.
  • 计算机科学概念:Referential transparency. 在学习Memoization时, 我了解到, 仅当一个函数是引用透明时, 才可能被Memoization(A function can only be memoized if it is referentially transparent), 关于它的概念: Referential transparency and referential opacity are properties of parts of computer programs. An expression is called referentially transparent if it can be replaced with its corresponding value without changing the program’s behavior. This requires that the expression be pure, that is to say the expression value must be the same for the same inputs and its evaluation must have no side effects. An expression that is not referentially transparent is called referentially opaque. 编程时, 我们应始终清醒自己的代码是否是引用透明(没有改变程序自身的行为). 想要了解更多, 推荐SO上的一篇文章:functional programming - What is referential transparency (Prof. Uday S. Reddy, University of Birmingham). 这篇文章写的挺幽默的, 比如: Strachey would be turning in his grave.(译:Strachey的棺材板要压不住了)
  • Python Decorators 虽然我经常使用装饰器, 但是我从没有自己实现过, 准确说, 我并不清楚在何种条件下应该使用它. 我需要再了解更深入, 以确保自己在编程中实践中得心应手地使用. I must get my hands dirty.
  • 课程: Principles of Programming Languages, 在了解Referential transparency概念时, 意外看到了Prof. Uday S. Reddy 教授的一个课程, 它似乎有点意思.
  • 论文:The Log-Structured Merge-Tree (LSM-Tree), LSM-Tree是为了解决高性能事务系统历史记录表的索引问题.基于磁盘的索引结构比如B树有双倍的I/O消耗.LSM Tree实现了以极低的开销实现了实时索引(real-time index).
  • 写完 A Tour of C++的英文笔记.
  • 本月目标: 我必须对自己要求更高一点, 不能只是满足于”知其然”, 更要”知其所以然.” 看了Python的一些标准库组件的代码实现, 我意识到我的代码还远远不够好. 一方面, 我要在工作中提升编程能力; 另一方面, 也要通过私下的自我学习, 弥补自己基础不够扎实和算法不够好的问题. 计算机编程是一门艺术, 也是我的兴趣和爱好, 是我的理想和追求. 珍惜时间, 保持专注, 每天以最大的限度让自己保持进步, 以求超越自我.