看 @zachholman 如何决定 GitHub 用的技术栈

查看原文

这篇文章名不符实,其实讲的是程序员要谦卑,要不断审视现状,并愿意就不爽的地方做出改变。

程序员一般没机会决定公司的技术栈。真正能碰到的机会,要么公司初建,要么赶上大重写,或者在一个边缘问题上你用随便什么闪亮的新东西写,不搞挂的话就没人会说什么。以 Github 为例,即便他们在 Ruby 开发这个领域是个标杆,但也不意味着他们的方案就是最好的。他们选择了现在的技术栈只是因为曾经对他们遇到的问题做了 Tradeoffs,并且,他们将来会怎样做会取决于他们的不断评估:过去做的 Tradeoffs 能否还能满足以后的需求。

普通员工如何参与决策公司的技术栈?很大一部分需要员工内趋地去审视和分析自己分外的工作,特别是那些公司不太可能会分派人手进去解决的领域。至于平时要做什么?时不时地去花时间和精力思考和评估目前正在使用的工具,看看这些用了多年的工具现在还好用么 - 没有必要去抱怨这个工具这里不好那里不好,可以的话,给出自己的解决方案!

read more

如何查看 RPM 安装后打包的那些文件?

查看原文

我们知道可以用 rpm -qi xyz.rpm 列出 RPM 包里的文件列表,但是已经安装了的 RPM,我们其实没办法用 yum 这个命令来执行 rpm 查询,解决办法可以是安装一个叫 yum-utils 的库。它的使用方法和 rpm -qi 类似:repoquery -q -l your-package-here

read more

如何成为大牛?

查看原文

一篇鸡汤,将成为大牛的几个注意点。

  • 决心要有,计划要有,坚持要有,激情要有,自律也得有。
  • 从简单的代码写起,但也跟上技术的潮流。
  • 不断地解决问题,征途是浩瀚星辰!
read more

你真的了解 inode 这个东西吗?

查看原文

本文介绍了硬链接和 Unix 文件系统的 inode。

  • inode 是操作系统提供的数据结构 (struct)
  • inode 存储了文件或目录相对应的硬盘块 (disk blocks), 以及用户啊,权限啊之类的元信息
  • filename, dirname 不存储在 inode 中
  • 文件系统中每个 inode 都有自己的 ID
  • 文件系统通过 ID 找 inode 对应的数据
  • 目录的内容:一张表,登记了从目录和文件名字到 inode ID
  • 目录也其实只不过是一种文件,设定了类型是 DIR
  • 目录的数据存在和上面 ^ 的 inode 区别开的另外一个 inode
  • rm 从目录中删掉一个 name-inode 的键值对。
  • 当没有 name 指向 inode 时 …
read more

后端开发保障应用安全需要至少做到哪些事情?

查看原文

后端安全的几个关键词: Injection(注入), XSS(跨站), CORS(跨域)

  • Injection: 写 SQL 的时候不要自己格式化 query,而应该交给标准库来做,一般 exec("select * from table where field=%s", field) 这种写法是足够安全的;exec("select * from table where fields=%s" % field) 是要命的。想想 field 的值等于 1; delete from table 可怎么办!
  • XSS: 不信任任何用户的输入,用户的输入在渲染 Template 的时候,记得 escape 一下。不少模板库都提供了自动 …
read more

KMeans 和 SK-Learn 实战

查看原文

K-Means 算法是一个简单有效的非监督学习的聚类算法,它基于数据点的距离聚类数据,一个简单的 Python 实现是通过 sk-learn 来做。准备一个 [[a1, b1], [a2, b2], ...] 的数据,然后应用到 KMeans 模型里:

>>> from sklearn.cluster import KMeans  
>>> kmeans = KMeans(n_clusters=2) # 假设只聚类出两簇数据
>>> kmeans.fit(YOUR_DATA_HERE) # 应用模型
>>> keamns.labels_ # 获得前面准备的数据向对应的标签,每个标签对应一簇数据
[0 0 0 0  1 1 1 1]
read more

Load Balancer 漫画简明教程

查看原文

Digital Ocean 家卖机器,顺便科普基础概念也真是业界良心,Load Balancer 是后端编程中时常会接触到的概念,发现这几章图把概念用普通人的语言讲的很清楚。

  • 核心功能:处理请求,并用高效的方式传递给一组服务器执行;当处理完了,拿到响应给回客户端。
  • Round Robin & Least Connections: 两种常用的分派算法。
  • Source Mode & Sticky Session: 两种常用的定点分派算法。
  • 服务监控:某台后端服务器仆街后,LB 会把请求交给别的服务器执行。
read more

HTTP 流量加密需要付出的 CPU 资源有多少?

查看原文

加密的代价有多高?结论:TLS 代价特低,AES-GCM & P256 都是性能很好的算法,RSA 历史作用不可磨灭,但正在死去,被更快更安全的算法替代。未来我们要用什么加密算法呢?不可知啊,NIST 列表有一长串的候选算法,只是目前还没有一个能比 P256 性能更好。

  • TLS 部署很方便,可以使用诸如 OpenSSL 或 BoringSSL 这样的工具。
  • Cloudflare 的工程师在他们的数据中心做了一番统计,结论是,代码不算高。像 BoringSSL 只消耗了 1.8% 的 CPU 时间。
  • BoringSSL 应用 AES-128-GCM 算法,加密速度能到 3.7 Gb/s
  • RSA 不具备前向加密保证( Forward …
read more

怎么写 Robust 的代码?

查看原文

本文教育我们要写出 Robust 的代码,心中要默念一句话:每行代码都有可能会出错。抱着这样的信念写代码,才不会变成马路杀手(Move fast and break things)。

read more

« Page 44 / 54 »