CatCoding

当前 18,共 27 页

lcc 阅读记录

之前看 EOPL 感觉收获挺大,最近又花业余时间看了看编译相关的东西,这是我看 lcc 的时候顺手记下的一些自己的理解。这本书《A Retargetable C Compiler》还挺大头的。lcc 代码量不是特别大,更复杂的是 tinyCC,tinyCC 甚至可以直接运行 C 代码。 alloc. ......

折腾服务器

最近花了一些时间研究机器的部署,主要是实践了网络安装服务器和 OpenStack 部署。 网络安装 Ubuntu 如果有多台服务器,网络安装似乎是唯一的选择。基本原理就是在局域网里面配置一个 host,里面配置好一个 DHCP 服务和 TFTP 服务,用 Apache 弄一个系统镜像供服务器下载。 ......

A mini Scheme interpreter written in Go

Scheme-Brained Hare 在我学 Go 的时候开始了一个自己的业余小项目,就是这个GoScheme,打算用 Go 来写一个 Scheme 解释器,因为重写轮子是学习新东西的好手段。 现在基本完成了,当然只是一些基本的语法支持,没有宏。 我只是用这个项目来熟悉 Go 的语法,Go 来做 ......

最近在用 Go

最近一直在用 Go 做开发,我们打算整一套和 Rails 对应的 Go 开发框架。一些代码在我们的Github 小组里有。这里的几个项目都用到了代码生成的方法,生成 Go 文件,最后的整个 web 程序被编译成一个可执行文件。 我们正在用一个项目来验证这个想法。其中: 1. xuanwu(玄武) ......

Visualize Git Projects with Ubigraph

一个比较大的项目一般都由一群人协作开发,开发人员可能活动于各个模块之间。前两天突然想起如果把一个工程的所有 commit 数据提取出来,然后按时间顺序动态演示出来可能会比较好玩。从这个过程中我们可以看到一个项目是如何进化的,各个开发者到底在折腾哪些模块。比如这是一个多个开发者参与的一个项目展示图,其 ......

Heartbleed 简单分析

这几天不断听到一个词“心血漏洞”,近年来影响最严重的互联网漏洞。今天小小地研究了一把,顺便把引起一些思考记录下来。 到底是什么样的代码 有一些 C 语言和开发经验的朋友看看这个Fix就能了解些具体细节了。 在网络传输中有一个叫做心跳的概念,简单来讲就是客户端发送一个简单的心跳包给服务端,服务端又返 ......

另一本魔法书:EOPL

概述 很多学习计算机的同学都知道有一本号称魔法书的经典教材叫作《SICP》,《计算机程序的构造和解释》,MIT 的计算机入门课程用的教程。这本书内容广泛而深邃,从出版几十年来影响了很多程序员。今天介绍另外一本我认为也是魔法书的教材,叫做《Essential of Programming Langu ......

关于随机数

随机数代表着不确定性,其在计算机中广泛使用,比如用作加密的 key、密码的生成、模拟,扑克游戏中,还有一些经典的算法 (比如Monte Carlo) 依赖随机数的产生。以下是一些随机数相关的问题简单总结。 随机数产生,真随机数和伪随机数生成器 随机数的产生是一个很有趣的问题。我们希望只通过计算机来 ......

LeetCode: anagrams

LeetCode 这个题目想出来一个好办法,题目的意思是输入一组字符串,把他们按照 Anagrams 归组出来, Anagrams 的意思是字母相同,排列不同的两个字符串。 比如: aabc baac cbaa 这些都是 anagrams 的。如果两个字符串是满足这种关系的,那么把字符串排序后的结 ......