20 Mar 2021 -
Less than 1 minute read
最近在看《认知觉醒》这本书,感觉还不错,作者总结的还不错,旁征博引,汇集了很多自我提升的Best Practice,算是一锅很有营养的鸡汤。之前特别反感鸡汤文、励志书、成功学,但自己又没有多少斤两,半怀疑半恐惧,吐槽两句赶紧仍在一边,生怕被人发现自己的懒惰、浮躁。这次希望自己能练习一下自己的表达能力,所以又回来开始写一点博客。其实也不能说完全就是表达能力,毕竟清晰的表达是需要清晰的认识支撑的,而我更希望锻炼的其实是自己的观察、思考、总结的能力。 计划 为了实现锻炼观察、总结、思考能力的目的,本次定的计划是这样的: 吾日三省吾身:每天记录自己的观察、思考 输出倒逼输出:总结自己的思考、产出文章 投入只设下限:每天最少投入十分钟的时间 工具 今天其实是第一天,其实害怕自己又虎头蛇尾,所以这次就找一个轻松一点的主题,先总结一下自己开始实践的准备工作。从以上的目标来看我需要三个工具: 任务提醒 日志笔记 博客发布 我算是一个工具控,之前研究了很久的Vim,总希望能在不使用键盘的情况下能有idea的开发效率,研究了各种代码提示、快捷键设计、包管理、snippet管理、文件树、文件搜索,但最终还是回归了idea + ideaVim插件这个真香组合。之前任务管理、日志笔记、博客发布等工具也研究过很多,但最近发现其实简单的才是最好的,就想Vim,现在我的Vim几乎没有安装任何插件,回归了Vim最简单的形态。所以这次选择工具的思路和之前不太一样,之前的标准总结起来就是大而全,这次选择的思路是小而美。最终这次暂时选择的是: 任务管理:钉钉 日志笔记:Notes 博客发布:Jekyll 但已经决定了要先水一篇博客,就先总结一些自己用过的这些效率工具。 任务管理 我的核心诉求有三个: 跨平台 提醒 记录完成情况 Teambition 了解Teambition是因为前司,Teambition当时被亲切的成为TB,当时公司的项目管理、文档沉淀、简历招聘都是在这个平台来维护的,总结起来几乎是Jira+Confluence的合体。TB现在最大的问题就是现在越来越慢了,操作不太顺滑是最大的槽点,如果优化一下速度,体验还是非常不错的。 Reminders Mac自带,极简。能满足提醒、每天重复、跨平台的诉求,甚至不能给任务加评论,对习惯使用TB的我来讲功能还是太简化了,还在评估中,不过大概率是不会使用了。 Microsoft TODO 微软提供的任务管理工具,跨平台,可以在Mac上使用,功能和Reminders类似,也属于极简应用。 钉钉 我目前使用的任务管理工具,钉钉提供的任务管理基本上是Teambition的弱化版,用钉钉管理任务好就好在可以增强任务提醒,因为工作沟通必然需要时时关注钉钉。 日志笔记 Vimwiki Vimwiki是一款Vim插件,可以用Markdown语法,在Vim中管理文档,并在文档中为某个关键字建立新的文档,并提供关键字的跳转。与Vim的快捷键配合,如果你是一个Vim高手,那么这个软件非常适合你。 Obsidian 支持Vimmode的Markdown笔记软件,支持类似于Vimwiki的文档链接,同时可以在Graph视图中看到文档之间的连接。Obsidian是我所使用的过的所有的笔记软件中最优秀的。它把几乎所有我看中的笔记软件的功能集中在了一起,Markdown、文档连接、Vimmode。 Workflowy 极简思维导图,使用起来像是在维护一张特别大的思维导图。Workflowy也支持任务类型的节点,所以严格来讲其实也算是一个大一统的工具,但感觉功能还是偏简单,而且最近商业化了,使用有限制,大概是每周限制创建的节点数量,有亮点但不足以支撑它成为我的核心应用。 印象笔记 功能强大的笔记软件,不支持Vimmode,后来放弃了。 Bear 小而美的Markdown编辑应用,不支持Vimmode,后来放弃了。 vscode + git + jekyll 目前我使用的笔记软件,把简单又强大的工具组合使用:...
Continue reading...
14 Mar 2019 -
Less than 1 minute read
HomeBrew is a good tool and fill the final piece of the puzzle for me to switch from Linux to Mac. Installation /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Usage brew install <package> brew uninstall <package> brew list brew search <package> brew info <package> brew update brew upgrade brew outdated brew cleanup...
Continue reading...
10 Feb 2019 -
2 minute read
LSM-Tree is a data structure provides low cost indexing and high write throughput. It is commonly used in various applications and systems, including: HBase, Cassandra, RocksDB. Overview LSM trees are designed to handle high write volumes. They are append-only, and keep data sorted in memory, and optimized for write-heavy workloads....
Continue reading...
28 Jan 2019 -
Less than 1 minute read
《深度工作》和深度学习关系不大,是我最近入的一本书,作者用很短的篇幅介绍了深度工作的概念,并且提供了一些提升工作效率的方法。 下边梳理一下书中的观点: 深度工作是有价值的 深度工作是指在无干扰的状态下专注进行职业活动,使个人的认知能力达到极限。这种努力能够创造新的价值,提升技能,而且难以复制。而肤浅工作指对认知要求不高的事务性任务,往往在收到干扰的情况下开展。此类工作通常不会为世界创造太多的价值,且容易复制。 深度工作的能力日益稀少,而几乎同时,其在社会经济中的价值也日益提升。因此,能够培养这项技能,并将其内化为工作生活的核心的人,将会获得成功。 生产力规律: \[\text{高质量工作产出} = \text{时间} \times \text{专注度}\] 深度工作是少见的 如果没有清晰的度量,工作的产出很难评估,尤其是深度工作。在工作环境下,若各种行为对于底线的影响没有得到明确的反馈意见,我们倾向于采用当下最简单易行的行为。忙碌代表生产力,如果生产能力与价值没有明确的指标时,很多知识工作者都会采取工业时代关于生产能力的指标,以可视的方式完成很多工作。 我们这个种群已经进化到了一个阶段,在深度中繁荣,在浅薄中沉沦,作为一种可以可以称作“深度智人”的种族。 深度工作的准则 #1 工作要深入 深度工作应该作为优先考虑的事项,提升深度工作在你的工作、生活中的重要程度。 为了实现深度工作,我们需要选定一个实现深度工作的的哲学 禁欲主义哲学 双峰哲学 节奏哲学 新闻记者哲学 习惯化 如果你需要践行深度工作,你可以先想清楚以下几个问题: 你将在何处工作,工作时间多长 工作暂停后你将如何继续工作 你将如何支配自己的工作 不要独立工作 工作需要设定一个大一点的目标,同时不可以独立工作,协作深度工作产出较高。 像经商一样执行 专注点放在极端重要的事情上 抓住指领性的指标 准备一个计分板 定期问责 安逸是深度工作的一部分 安逸的时光有助于提升洞察力 安逸的时光有助于补充深度工作的能量 晚间安逸时光里进行的工作往往没有那么重要 #2 拥抱无聊 远离网络,拥抱无聊,发展冥想能力,当初学者容易陷入陷阱: 分心 容易被各种想法打断 原地打转 面对一个困难问题的时候,大脑会尽可能的降低能量消耗,这是人类进化的一个结果。最简单的形式就是围绕着已经解决的问题原地打转 缺乏组织与架构 有组织的反思当前的发现,逐渐推进 #3 远离社交媒体...
Continue reading...
27 Sep 2018 -
1 minute read
字符串相似度是一个非常有意思的问题,之前没有仔细考虑过这个问题,只是项目有一个相关的需求,场景比较局限,解决的方案也不叫hack,尚未验证效果,但应该能满足当下的场景的需求。本文并不打算做一个全面的关于相似度匹配的综述,只是提供一个使用特定场景的简单方案。 具体业务场景就不做还原了,数据基本是两组字符串,字符串之前期望是相同,亦或者略有差异,差异较大则为异常数据,需求是将差异较大的数据筛选出来。如: id origin target 1 abcdef abcdef 2 qwerty qwerry 3 abcdef qwerty 其中1、2属于正常数据,3则为异常数据 简单检索了一下,比较匹配的算法是编辑距离算法,编辑距离算法的基本思路是将两个字符串分别作为原始字符串和目标字符串,相互对比,计算从原始字符串需要经过多少次编辑(插入、替换、删除)能够得到目标字符串。 比较直接的思路是用递归算法,可以用动态规划优化,这里直接给出编辑距离计算的代码: public static Integer distance(String a, String b) { if (a.length() == 0) { return b.length(); } if (b.length() == 0) { return a.length(); } int[][] distance = new int[a.length() + 1][b.length() + 1];...
Continue reading...
28 Aug 2018 -
Less than 1 minute read
Nginx 默认只提供了http服务的示例,并且提供了conf.d文件夹,进行http服务相关的配置,配置以及结构都不适合tcp转发。对/etc/nginx/nginx.conf文件中与http {#...}同级,添加:
stream {
include /etc/nginx/stream.conf.d/*.conf;
}
创建文件夹:/etc/nginx/stream.conf.d/,并新建文件:xxxservice.conf
upstream xxxservice {
server server-01:6379;
server server-02:6379;
server server-03:6379;
}
server {
listen 6379;
proxy_pass xxxservice;
}
参考:
https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-health-check/
Continue reading...
15 Aug 2018 -
1 minute read
Markdown 引用处理 The Prodigy drew himself up haughtily. “I do not seek the cooperation of other programmers,” he said. “Every time I thought I had found one who might match me in skill I have been disappointed. Thus, I work alone.” “But even the hacker who works alone,” said Master...
Continue reading...
14 Aug 2018 -
Less than 1 minute read
Java的正则表达式支持在正则中直接添加修饰符,以调整正则匹配的模式: You can add the mode modifiers to the start of the regex. To specify multiple modes, simply put them together as in (?ismx). (?i) makes the regex case insensitive. (?s) for “single line mode” makes the dot match all characters, including line breaks. (?m) for “multi-line mode” makes the...
Continue reading...
11 Aug 2018 -
6 minute read
区块链 区块 交易 新建区块 挖矿 API 交易接口 挖矿接口 一致性 节点记录 一致性实现 跑起来 总结 2018年, 加密货币/区块链曾占据各种头条, 至今尚未停歇, 为什么一盘冷饭会炒这么久, 让人诧异. 没有调查就没有发言权, 今天搬运一个 “learn blockchain the hard way”, 学习一下区块链. 注意: 这篇是我嚼过的, 原文请点击连接: Learn Blockchains by Building One 想直接看最终代码的, 点击链接: blockchain.py 区块链 区块链包含两个 list, 一个存储所有区块(block), 一个存储所有的交易(transaction). class Blockchain(object): def __init__(self): # 所有区块 self.chain =...
Continue reading...
10 Aug 2018 -
Less than 1 minute read
检查各个 datanode 的情况, 文件会在 namenode 上的 log 文件夹生成 hdfs dfsadmin -metasave hdfs-meta-dump 开启 hadoop 的 debug log, 配置环境变量: export HADOOP_ROOT_LOGGER=DEBUG,console 执行 hadoop 相关命令就可以看到效果 启动 hdfs 存储均衡 sudo -u hdfs hdfs balancer 手动执行 NameNode Checkpoint操作,主从节点执行 CheckPoint 操作采用的策略不同,主节点: hdfs dfsadmin -safemode enter hdfs dfsadmin -saveNamespace hdfs dfsadmin -safemode leave 从节点(Standby): hadoop secondarynamenode...
Continue reading...