计算机科学主题列表

Table of Contents

1 操作系统 Operating System

  • ubuntu 如何更好地使用Ubuntu. 之前使用Ubuntu有段痛苦的经历
  • macosx 如何更好地使用Mac. 以前使用Windows,后来转向Ubuntu,再后来买了个MBA.
  • docker 基于lxc(linux container)的分发应用工具。
  • vagrant 用来构件虚拟开发环境的工具,底层可以使用多种虚拟化技术。现在支持相对比较好的是VirtualBox
  • sphinx C++实现的全文检索引擎,可以很容易地替换掉MySQL内置的全文检索(FTS)实现
  • graphiteOpenTSDB 类似, 时间序列(time series)数据库, 但是主要用于监控。
  • git 分布式版本控制系统. 最开始用于管理linux kernel, 现在许多开源软件托管在github上使用git管理。
  • ElasticSearch 分布式的搜索引擎,而且还有非常好的插件机制和生态系统比如ELK.
  • ffmpeg 视频/音频处理的瑞士军刀.

2 网络编程 Network Programming

  • UNP Unix网络编程(Unix Network Programming), W. Richard Stevens的神作。包含了TCP Illustrated v1里面和TCP相关的部分章节内容。
  • itachi 自己两天时间写完的异步网络编程框架内核。
  • libev 开源的事件触发器,被认为是更高效的libevent.
  • hpserver 开源的网络编程框架,可以当做一个入门级的网络编程框架阅读。
  • nmstl 开源的网络编程框架。一个很早的作品,代码十分简洁,实现了SEDA的思想。
  • muduo 开源的网络编程框架,作者理想中的网络编程框架实现,里面有很多mina/netty的影子。
  • kylin Baidu in-house的异步编程框架,是linsd(百度首席架构师林仕鼎)的神作,通过阅读这个框架的代码让我理解了异步编程模型。
  • zeromq 开源的消息传输系统,颠覆我们思考和编写网络通信程序的方式。
  • ACE 重量级的网络编程框架,也被人诟病为学术产物而不是适合生产实践。
  • netty an asynchronous event-driven network application framework in Java based on Java NIO.
  • nginx WebServer届的 要你命3000, 可以作为许多协议(HTTP/HTTPS/SMTP/POP3/IMAP/HTTP2)的反向代理服务器, 还可以作为负载均衡器,缓存服务器等。
  • 深入NGINX:我们如何设计它的性能和扩展性
  • finagle an extensible RPC system for the JVM, used to construct high-concurrency servers.
  • HAProxy 高性能的负载均衡器,可以提供4(TCP),7(HTTP)层反向代理。
  • gunicorn Python WSGI HTTP Server. green unicorn(Ruby实现)

3 存储系统 Storage System

4 算法和数据结构 Algorithm and Data Structure

5 机器学习 Machine Learning

6 分布式系统 Distributed System

6.2 Projects

6.3 Articles

6.4 Papers

7 程序设计语言 Programming Language

8 软件设计 Software Design

8.1 Blogs

8.2 Books