Python 2 字符串编码踩坑小结
Tips: 如果您已经充分理解问题是什么,请直接跳到 #问题出在哪里 一节。
字符串和编码
先从概念说起,字符串和它的编码是两个不同的概念:
- 字符串是一段文字本身,可以是中文可以是英文,以及各种语言
- 字符串的编码是计算机存储、处理字符串的方式;作为一种数据,它和其他数据一样,都是以一串0和1组成的,通常我们用字节数组来表示它。
字符串经过编码(encode) 就成为了一堆数据,反过来,数据经过解码(decode) 就变回我们认识的字符串。

Bandit 是一个用来检查 Python 代码中常见安全问题的工具,它会处理各个源代码文件,解析出 AST(抽象语法树),然后对 AST 节点执行一组对应的插件。当 Bandit 完成检查之后,它能生成一封安全报告。
安装说明:参见 GitHub 项目主页。
一不小心拿到了天池阿里中间件性能大赛的冠军,准确的说还有个 24 小时即刻挑战赛(个人赛)的亚军。

Emmm... 过去太久了,不知道说什么感言了。以下是是比赛的题目以及我的解答,备忘。
测试方案:
为了保证公平,Go 中自行封装一个 Integer 而不是用 int 型;考虑到实际中大多数情况下 channel 里走的都是对象而非基本类型,这样是合理的。

经过一个月的学习,成功通过了 AWS 考试认证。不得不说相比从零开始闷声摸索,学习带来的收获还是很大的,避免了一些 AWS 的大坑,也了解了一些 best practice 的系统设计。
可惜这个博客并不是在 AWS 上(原因可能是贫穷)。
以下是我看过的学习资料:
找到这篇文章是在阅读 Kafka 文档时,一个名为 “Don't fear the filesystem!”的段落中提到的。文档指出,我们总是思维定势地以为磁盘很慢,内存很快。然而今天的计算机体系结构中,并非这么简单:
- 因为操作系统 PageCache 的存在,磁盘操作可能很快
- 虽然磁盘 IOPS 难以提高,但吞吐量在不断上升;换句话说,顺序读写磁盘非常快
- CPU Cache 常常被忽略了,了解 CPU Cache 对提升内存读写性能至关重要
当你开始深入 Varnish 的源代码后,应该会发觉它与你日常所见的一般应用软件有着明显不同,而这绝非偶然。
多年以来我的绝大部分时间花费在 FreeBSD 的内核开发上,而每每涉足用户空间编程,却总是毫无例外地发现那里的人们还在以1975年的方式工作。
题目:https://www.hackerrank.com/contests/w31/challenges/spanning-tree-fraction 一张连通图G=(V,E)上,每条边有a和b两个整数,求一个生成树使得Sum(a) / Sum(b) 最大,输出这个最大值的分数形式 p/q
设 \(\frac{\sum{a\_i}}{\sum{b\_i}} \ge
c\) ,经过变换可得,\(\sum{(a\_i - b\_i
c)} \ge 0\),这种形式下 ai - bi * c 就退化为一条边的
cost,能方便得用 Prim 或 Kruskal 算法求出 cost 最大的生成树。
SQS 是 AWS 的消息队列服务,用于暂存消息并等待接收者处理。