wylu

Keep It Simple, Stupid

对于互联网应用来说,我们要尽量保证服务的不可间断性,一旦出现故障需要尽快的恢复。MongoDB 的副本集模式主要解决了在其主从模式下故障无法自动转移的情况,自动实现高可用。三个成员副本集提供足够的冗余性,以承受大多数网络分区和其他系统故障,这些集合对于许多分布式读取操作也具有足够的容量。本文介绍如何从三个现有 mongod 实例创建三成员副本集,包括不启用访问控制的和启用访问控制的。

阅读全文 »

Python 列表具有内置的 list.sort() 方法,该方法可就地修改列表。还有一个 sorted() 内置函数,可从迭代器构建新的排序列表。

因为 Python3 中 sorted() 和 list.sort() 放弃了类似 C++ 中的 cmp 写法,本文将展示官方推荐替代解决方案,以实现自定义的两个参数的比较函数,并详细分析了 cmp_to_key 函数实现原理。

阅读全文 »

这篇文章介绍了如何打印一棵二叉树,首先通过前序遍历序列和中序遍历序列来构建一颗二叉树,然后通过两种不同的方式来打印这棵二叉树。第一种方式是 Linux 风格,通过递归的方式来打印每个节点,并且使用特殊的符号来表示节点之间的关系,最终得到一棵类似于 Linux 目录树的形式。第二种方式是水平风格,通过递归的方式来打印每个节点,并且使用特殊的符号来表示节点之间的关系,最终得到一棵类似于水平的树形结构。这两种方式都可以很好地打印一棵二叉树,具体使用哪种方式取决于实际需求。

阅读全文 »

jsDelivr 是 ProspectOne 开发的公共开源 CDN(Content Delivery Network),专注于性能,可靠性和安全性。每个人均可免费使用,没有带宽限制。jsDelivr 是唯一由中国政府签发并具有有效 ICP 许可证的公共 CDN,并且直接在中国大陆拥有数百个地点。

jsDelivr 有一个十分好用的功能,它可以加速 Github 仓库的文件访问,借助 jsDelivr 我们可以搭建一个稳定快速、高效免费的图床。

阅读全文 »

在使用 Hexo + NexT 搭建个人博客的过程中一直有个问题没有解决,直到今天才找到了解决方法。问题就是在展示同一张图片中,caption出现了两次,如图:

阅读全文 »

Git 子模块(Git submodules)允许你将 git repo 保留为另一个 git repo 的子目录。Git 子模块只是在特定时间快照上对另一个 repo 的引用。Git 子模块使 Git repo 能够合并和跟踪外部代码的版本历史。

阅读全文 »