A Gentle Introduction to Data Compression
Joe Bertolami's portfolio and blog covering artificial intelligence, game development, computer graphics, data compression, and more.
Reading Lamport, again
We’ve just kicked off an internal distributed-systems seminar. Our inaugral paper was Lamport’s classic “Time, Clocks and the Ordering of Events in a Distrib...
Formal Methods in Building Robust Distributed Systems
We all know that when designing and operating applications at scale, it is persistent state management that brings the most difficult challenges. Delivering state-free applications has always been (fairly) easy. But most interesting commercial and consumer applications need to manage persistent state. Advertising…
When TDD Doesn't Work
Over the years many people have complained about the so-called “religiosity” of some of the proponents of Test Driven Development. The recent brouhaha over TDD has, once again, brought these complaints to the fore. So I thought it would be a good idea to talk about when TDD does not work.
Don't Learn to Code, Learn to Program – But Come Back in 10 Years
I want to discuss why programming and coding are not the same, and why I can no longer support the Learn to Code movement. I can no longer tell my friends to learn coding. Although I’m passionate about it, it’s too arcane and insular for mainstream practice.
JavaScript Promises in Wicked Detail
GOPAY303 adalah platform game digital yang menyediakan strategi pola RTP paling ajaib saat ini. Menyajikan analisis akurat, navigasi kencang, dan aksesibilitas ramah mobile 24 jam.
Django 1.6.2 and 1.7a2 released
Posted by Jacob Kaplan-Moss on Feb. 6, 2014
Clojure 2013 Year in Review
This is my third Clojure year-in-review post. In 2011 I was excited about Clojure 1.3, ClojureScript, and the second Clojure/conj. By 2012 I was blown away by four Clojure conferences, two O’Reilly books, reducers, Datomic, Immutant, and a partridge in a pear tree.
The Colors of Chemistry
This notebook documents my exploration of color theory and its applications to photochemistry. It also shows off the functionality of several Julia packages: Color.jl for color theory and colorimetry, SIUnits.jl for unitful computations, and Gadfly.jl for graph plotting.
Rust for C++ programmers – Part 8: destructuring
First an update on progress. You probably noticed this post took quite a while to come out. Fear not, I have not given up (yet). I have bee...
Mixins, Forwarding, and Delegation in JavaScript
This essay discusses how to separate JavaScript domain properties from object behaviour, without prototypes . This is deliberate. By examining four basic ways to have one object define the behaviour of other objects, we gain insight into what we’re trying to accomplish at a very basic level.
OCaml on iOS 7 Released
Pansophical reader, with your bafflingly good mobile OCaml project, I’m ready at last to release an OCaml compiler for iOS 7. It works for all my projects, and I hope it works for yours.
Your REST API should come with a client
Why your API needs a vendor approved client.
Typographic Programming Language
Allow me to present a simple thought experiment. Suppose we didn’t need to store our code as ASCII text on disk. Could we change the way we write – and more importantly read – symbolic code? Let’s assume we have a magic code editor which can read, edit, and write anything we can imagine. Furthermore, assume we have a…
Interactively Programming Flappy Bird in ClojureScript
I have been doing interactive programming in ClojureScript recently. After having spent some time with it, I can easily say that when I return to projects that don’t have an interactive workflow I feel like I am in the stone ages.
How to compile with continuations
In terms of unreasonable effectiveness, the transformation to continuation-passing style (CPS) ranks with the Y combinator .
PyPy IO improvements
Hello everyone! We've wrapped up the Warsaw sprint, so I would like to describe some branches which have been recently merged and which i...
Ghost 0.4 Released
Today we are releasing Ghost 0.4 - the next minor release of the Ghost blogging platform. With a great deal of shiny new things. This release represents a total of 374 commits across 178 issues from 88 incredible contributors all over the world. It's a cleaner, faster, more sophisticated