Generating code
How to use go generate.
Railway-oriented programming
A recipe for a functional app, part 2
A taste of Rust for C/C++ programmers
If, like me, you've been frustrated with the status quo in systems languages, this article will give you a taste of why Rust is so exciting....
Why Go is elegant and makes my code elegant
This is a enthusiast blog post. I’m not even gonna speak about how concurrency comes easy with Go. Honestly, I’m not good enough to speak about it. I’ll just speak about how using Go in my everyday programming makes me happy.
C++17: I See a Monad in Your Future
[If you prefer, you may watch the video of my talk on this topic (here are the slides).] If you thought you were safe from functional programming in your cozy C++ niche, think again! First the lamb…
Replacing `import` with `accio`: A Dive into Bootstrapping and Python's Grammar
At Hacker School , I've been building an alternate universe Python by overwriting builtin functions and statements with Harry Potter spells. This is a thing you can do at Hacker School!
Talking about “types”
My essay “In Search of Types” attempts to be a dispassionate review of some of the different concepts, purposes and attitudes surrounding the word “type” in programming. I imagine that my passions are still rather thinly veiled in places. But in this post I'm going to come out with a more unabashedly ranty take…
Architecture of a Real World Haskell Application
There were numerous posts on reddit, SO and the like which were asking for how to architect real world Haskell applications. Well, this is my go at it for an in-house testing tool which is used extensively. I would not claim myself an advanced Haskeller, some of the code is probably not idiomatic Haskell (and also…
Boeing Flies on 99% Ada
A discussion of how Boeing used Ada in its new 777 jet to run a complete fly-by-wire system that technicians backup and monitor with on-board floppy disks. The Ada Information Clearinghouse is the Ada Resource Association's official Web site on the Ada programming language and on software engineering.
Object Oriented Programming is Inherently Harmful
“ Object-oriented programming is an exceptionally bad idea which could only have originated in California. ” – Edsger Dijkstra
Suture – Supervisor Trees for Go
Supervisor trees are one of the core ingredients in Erlang's reliability and let it crash philosophy . A well-structured Erlang program is broken into multiple independent pieces that communicate via messages, and when a piece crashes, the supervisor of that piece automatically restarts it.
SBCL 1.2.0 Released with ARM support
New SBCL versions are usually released at the end of each month: check the Sourceforge File List to see the current version. The new features of the two most recent SBCL releases are listed below.
Spreadsheet-like programming in Haskell
mvc-updates 1.0 announcement post
A Cover Letter in Brainfuck
Warning: another technical post.I wrote this cover letter many years ago, when I wanted to get accepted to the Matzov unit of the Israeli Defense Force (in Israeli, every male is conscripted…
Visualising the Go garbage collector
gcvis is a simple way of visualising the operation of the garbage collector within a Go process. Here is a screenshot of it in operation. The rest of this article explores how gcvis works and how to interpret its results.
You could have invented Parser Combinators
Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction
Go Is a Shop-Built Jig
Alex Payne wrote an excellent essay called Thoughts on Five Years of Emerging Languages. It called to mind something I wrote a while ago for a …
Parsing PHP in Go
An elegant open source and mobile first theme for hugo made by @mdo . Originally made for Jekyll.
Hindley-Milner in Clojure
I wrote a lambda-calculus interpreter and an implementation of Hindley-Milner to type check it.
Critiquing Facebook's new PHP spec
The CircleCI blog is your home for DevOps, continuous integration and delivery, and engineering productivity. Explore tutorials, guides, and best practices.
Haskell, Monads and Purity
I believe the notion that Haskell uses “monads” to enforce purity is rather misleading. It has certainly caused quite a bit of confusion! It’s very much like saying we use “rings to do arithmetic”. We don’t! We use numbers, which just happen to form a ring with arithmetic operations. The important idea is the number …