LambdaChip v0.3.1 was released!
In the past decade, I've been trying to use Scheme programming language in the product environment. The existing lore around Scheme is always fascinating, paradoxical, and mystical. However, although Scheme is prominent in the academy, I'm pretty sure only a few people had tried it in a product. Because I didn't see many discussions about the problems using Scheme in product development. Most people were just following other people's opinions. And less people discusses the real problem, and how to deal with the problem.
LambdaChip is a Functional Language Virtual Machine designed for embedded system.
Rust is a strange language.
1997年，有一个叫 Paco Underhill 的家伙写了一本书叫做《Why We Buy: The Science Of Shopping》，中文名《顾客为什么会购买》。此书出版后在某个群体内大受欢迎，再版了多次，并被誉为“新时代的销售圣经”。您不用去读这本书，原因待会儿您就知道了。那么这本书里面写了什么呢？它可以说是一本很有洞察力，并且极具实操性的一本书，它主张明智的销售总是顺应顾客的习性而不是试图改变他们，由此它提出在销售场景当中用科学的统计和分析方法，来研究如何通过重新规划物品的摆放、场地的利用、标识的搭配等等来提高顾客的购买率。当然，这本书里所讲的案例是跟具体销售场景密切相关的，经验并不能直接拷贝，但它所介绍的分析方法却是通用的。
Today I released GNU Artanis 0.4.1. GNU Artanis is the product level Web Framework for Scheme programming language. Please see the release note for better description.
In the past 30 years, GNU Hurd has been the official kernel of GNU operating system. The term "kernel" may not be precise here. "The kernel" is the classical concept of the monolithic OS design; in microkernel, there's still the concept "kernel", but it's smaller than monolithic. However, GNU Hurd is not following the simple "kernel + userland" design. GNU Hurd is a collection of servers, which can interact with its microkernel GNU Mach by IPC (Inter Process Communication) for system level requesting. Sounds a little familiar? Try to imagine you're running bunch of dockers on the cloud, and there's a centralized node for scheduling.
公元1945年，Samuel Eilenberg和Mac Lane一同建立了范畴论，当时他们只把这个不怎么起眼的东西当作工具来解决一点代数拓扑上的问题。而这个东西是如此抽象和玄幻，以致于在之后很长一段时间内范畴论都在被当作哲学来讨论，直到一个叫格罗滕迪克的年轻人突发奇想把它真正用到数学研究上去，这个后来被封为数学之神的人在那一瞬间启发了凡人数学家们，于是范畴论开始从一门哲学变成了被数学家认真对待的东西。纯数学有太多的东西无法进入应用领域而被人类所关注了，所以绝大部分数学家可能都没有想到，这套玄门秘术会在计算机应用领域大放光彩。
To C++ folks, if the Functional Programming is still an academic theory or confusing concept to you, then you're out. It's already used a lot in our daily product development today. I'd like to share you 8 essential patterns to help you grab this powerful weapon quickly in a practical way. It's not hard, and I hope you're familiar with C++14 features.
If you're suffering from the installation and dependencies of GNU Artanis, here's an easier way to go.
If you encounter this kind of error by Nginx:
Oops, seems I haven't updated my blog for 11 months. What I'm doing?
There're serveral concurrent models nowadays, CSP, Actors, π-calculus ...etc. It is believed that these concurrent models could bring high performance and scalable concurrent network service. Actor-model(I may call it Actors in the rest of the article) is a hot one that many folks would like to talk about it. But rather than using it, have you imagined to implement one for better learning it? Well, if your answer is yes then this is the article for you. I'll show you a feature-limited tiny actor-model implementation in Scheme, although you may call it a poor man's threading system, hope that's enough for you to understand the principle.
These days I'm facinated in working on MAL (stands for Make a Lisp) project with Guile. I've done several steps so far, and I'll send pull request when it's all finished. And I found my implementation in Guile-2.1 runs faster than most of others, only little slower than C version. Seems there's something to be expected. ;-)
I'm pleased to announce artanis-0.0.3 here.
Yesterday night I've written command line interface (CLI) for GNU Artanis, after took care of my daughter to sleep, I had only one hour to hack something.
I'm pleased to announce artanis-0.0.2 here.
Artanis is a new web application framework (WAF) written with pure GNU Guile Scheme. Artanis is free software, under GPLv3 and LGPLv3.
Unfortunatly, Guile doesn't provide a method to convert hex to bin (When I'm writing, the current version is 2.0.11). People have to write their own one.
According to SICP, high-order function gives us the ability to build abstractions by assigning names to common patterns and then to work in terms of the abstractions directly. It's very useful while you're trying to refactor you code.
The concept of pipeline in functional programming means a succession of functions that operate, one after another, on an array of data, which consists of a chain of processing elements arranged so that the output of each element is the input of the next. One of the famous practices is Unix pipeline.
In spite of a Scheme implementation, Guile is also an extension language platform. This means you can write new language on it, which could be totally different from Scheme. Say, PHP/Lua/Ecmascript...and all these front-end will take advantage of the compiling optimization machenism of Guile.
Take it easy if you're uncomfortable with the word 'elegant'. This article is not driven by any academic purpose. I'm trying to show an interesting way to write chaos Scheme code. ;-)
1. Why bother to do it?
Well, I love Scheme. That's all.