SICP in Clojure
Personal blog of Wojtek Gawroński, a passionate software developer.
Personal blog of Wojtek Gawroński, a passionate software developer.
It's been 418 days since my first Github commit of Go code. In that time I've written a Syslog-to-Kafka producer, a Raft-based distributed SQLite database, a near real-time log search system, and become a core developer of InfluxDB. So if there is one word to summarize Go, it's productive. I haven't had the same burst…
This post is for all of the miscellaneous features that arent large enough to get their own individual posts. If you havent read all of them, here are the links to the previous posts on recompilation, inspection, class redefinition, and restarts. One somewhat obscure tool for debugging is SBCLs trace. SBCLs trace goes…
Articles and tutorials about Rust, Embedded development and Computer Graphics.
Around four years ago, when I had first decided to start at Mozilla research, I had planned to write an LR(1) parser generator. It seemed like a good way to get to know Rust. However, I found that newborns actually occupy somewhat more time than anticipated (read: I was lucky to squeeze in a shower), and hence that…
More about the programming language Rust
Over the past year, I've been rewriting large portions of the Middleman codebase to better reflect how I like to write code (as opposed to the silly version of me who did the original version 6 years ago). I've learned a lot since then, spent pretty much every day writing mostly Javascript and trying to find any…
I'm still on my way back from the Bay Area Erlang Factory 2012 (in fact I finished this post after coming back entirely), in San Francisco, and I've been starting to see a bunch of twitter posts regarding people posting their slides online. Although it is a good idea, I tend to view my slides as pure visual support…
In 2001, my favorite programming language was Python. In 2008, my favorite programming language was Scheme. In 2014, my favorite programming language …
For a while I’ve been working on a garbage collector for Rust with Nika Layzell. I thought this would be a good time to talk of our design and …
In this port to Swift of the great of Haskell's "Functors, Applicatives, And Monads In Pictures" we are going to look at these functional programming concepts aided by some very helpful pictures.
Easy wins for Haskell beginners
Enter magic getopt . Via a little bit of macro magic, the above options-handling code turns into this:
On behalf of the Jython development team, I'm pleased to announce that the final release of Jython 2.7.0 is available! It's been a long road...
Craig Federighi: I always end up seeking back to figure out what part I missed where the podcast started, and then I realize it just starts.
Bridging Discrete and Continuous Logic in Automated Reasoning Systems In this article we will explore the connection between Functional Programming and reasoning. Functional Programming is often ad…
When I (George) started to write CIL I thought it was going to take two weeks. Exactly a year has passed since then and I am still fixing bugs in it. This gross underestimate was due to the fact that I thought parsing and making sense of C is simple. You probably think the same. What I did not expect was how many dark…
Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :)
So, as previous posts show , I like Go well enough. But as a computer-language polyglot, "Go programmer" is not part of my identity, and I try for a balanced view. It is very human to go overboard in both praise and criticism, both easy to find online.
Arrays are JavaScript’s “native” representation of lists. Lists are important because they represent ordered collections of things, and ordered collections are a fundamental abstraction for making sense of reality.
People who write Ruby programs want to use metaprogramming. It’s part of what makes the language what it is. But in existing implementations of Ruby, metaprogramming is slow. My work focused on making it fast, providing fast tooling for Ruby programmers, and fast support for legacy C extensions.