19 March 2019
C

Memory allocation strategy for struct and union in C programming language

If you are writing program by C programming language, you may need to care about how many memories to allocate, and when you should deallocate them. That is a heavy work for programmers, but at the same time it is very interesting. You will recognize that when defining a float variable, how many memories we need to allocate? Why a function can modify extern variables by passing the pointer of them?

C Bg
read more
12 March 2019

关于散列表的一些思考

散列表(也叫Hash表)是一种应用较为广泛的数据结构,几乎所有的高级编程语言都内置了散列表这种数据结构。然而散列表在不同的编程语言中称呼不一样,在JavaScript中被称为对象,在Ruby中被称为哈希,而在Python中被称为字典。即便称呼不同,语法不同,它们的原理基本相通。

Hash
read more
12 March 2019

Rack Middleware

Rack官网对于Rack的介绍比较简单,只是介绍了Rack的作用和基本的使用。不过也可能因为不复杂,所以才用简单的几段话介绍了Rack。虽然我们不用了解middleware的调用原理也可以开发出能使用的middleware,但是总有点不知所以然的感觉,所以抽空总结了下Rack中middleware的调用原理。

1553048590181
read more
28 February 2019

浅谈循环之硬件级实现

现代编程语言中循环是十分常见的功能,几乎任何编程语言都有类似forwhile这样的循环语句,不过在计算机底层就没有那么幸福了,许多的硬件其实并没有提供硬件级别的循环。不过硬件级别的限制,似乎并没有影响到我们日常的工作,今天就主要来看看循环的本质是什么。

1548571442207878
read more
22 February 2019

详谈IEEE浮点数编码机制

在一些工程领域中单单依靠整数是无法满足他们对精度的需求的,这种时候就需要用到浮点数了。今天着重来聊一聊在计算机底层,浮点数的编码方式,以及它相关值的计算方式。

Float Number
read more
13 February 2019

细说计算机底层整型编码机制

如今计算机的抽象级别越来越高,越发少人关注在计算机底层发生了什么事情,其实底层也有些很有意思的东西。这篇文章主要想科普一下整型在计算机硬件中的相关实现,它是以什么方式来存储的?如何区别正负数?硬件会怎么去解释相关的位串?

Compute
read more
6 February 2019

缩减Docker镜像体积历程总结

容器化的过程中总是免不了要构建镜像,一个体积更小的镜像除了能够节省机器的磁盘空间之外,还能够提升传输效率。这篇文章主要是想讲述一下自己在优化镜像体积时所采取的措施,当然并不是所有方案都对减少镜像体积有明显效果,具体项目还要具体分析。这篇文章我以Rails项目的镜像构建作为例子。

Docker Vector Logo
read more
28 January 2019

你是 “最佳实践” 的受害者吗

这篇文章是有感而发,也算是自己软件开发生涯的一些所思所想的总结吧。IT科技在这几十年来发展迅速,各个领域都萌生出所谓的“最佳实践”。今天主要想来谈谈这些所谓的最佳实践可能并不是那么的“最佳”,甚至有的时候它们还会是“最糟”的存在。

1488412500246013212
read more
11 January 2019

PostgreSQL构建通用标签系统

对资源打标签在建站过程中是很常见的需求,有些时候我们需要给文章打标签,有些时候我们需要给用户打标签。实现一个标签系统其实并不难,其本质就是一个多对多的关系-我可以对同一篇博客打多个标签,同时也可以把一个标签打到不同的博客身上。这篇文章主要通过分析标签系统的原理,并用PostgreSQL来实现一个能够为多种资源打标签的标签系统。

Hello
read more