Too Cool for Internet Explorer

jlouiss blog

Adding support for more than 1024 files to etorrent.

Some torrent files contain a humongous amount of files. Thousands. This is one of the problems you have to cope with as a client-writer and I plan to take care of both etorrent and combinatorrent. However, the solution I've adopted for etorrent is sinisterly beautiful, so I decided to write it down.
The ProblemOpen files are limited on UNIX systems.

Combinator parsing, part 2 (Lexing)

In the first part, we set up the scene for combinator parsing. We introduced a small toy language and an interpreter for it. The thing we left out was the meat of the problem. Namely how to parse an expression string into a Standard ML datatype value.

Ripping the backend from Moscow ML

Suppose you have two functions:
(* Type: int * int -> int *)
fun f (x,y) = x + y

(* Type: int -> int -> int *)
fun g x y = x + y
These functions do the same thing, namely add two numbers 'x' and 'y'. They have different types however, and they are called in different ways. 'f' is the usual way in most languages. We take a pair, and return the result.

Things I love using PostgreSQL

Let there be no doubt, that I like to use PostgreSQL as my main database of choice. I like my databases to use SQL, a declarative language, for my operations and queries. I guess the reason for this is my strong knowledge and experience with functional languages in general. The path from functional programming to SQL is rather short.
This is a list, in no particular order, why I love PostgreSQL.

The gatekeeper role

The single most important role in a software project, be it Open or closed source is the role of the gatekeeper. This person, or group of persons oversees the general progression and development of code in the project.

Using Twelf to lift code quality in ExSML

The ExSML project is a fork of Moscow ML which aims to replace the current MosML runtime with one based on LLVM. In Moscow ML the following things happen when you compile a file of SML source code:

First the file is lexed and parsed into an abstract syntax tree. Then elaboration happens. In the elaboration phase we resolve, through type inference, the types of all expressions.

Arr, we be killin' the newspapers, mate

Lately, we saw the emerging trend that newspapers are beginning to die. Good riddance. I've never bought a newspaper, I will never buy a newspaper, and I am pretty sure people younger than my age won't as well. The market is gone, so how are newspapers going to survive?

Currently, they have placed their hope in advertising.

Static/Dynamic typing discussions are uninteresting

People are talking about the RailsConf keynote "What killed Smalltalk?" by Robert Martin. You can watch the keynote talk at blip.tv.

Moving bits in a pirated world for fun and profit

The premise

As soon as a movie/episode is out in the wild on the internet it is
going to be spread like a wildfire. To circumvent this, the
movie/series industry have to change their stance towards copyright
protection. The best they can hope for is to slow down the spreading,
because it is technically impossible to stop.

An update on the Moscow ML for LLVM

The Moscow ML LLVM project is having a blast these days. First, we got
autotools into the project, so everything is now built from
autotools. Then we eliminated a lot of magic in the
code base. Importantly, you can now reorder C functions without fear of
the run-time breaking down and getting out of sync with the compiler.

Udgiv indhold