Linus Torvalds And Github

Submitted by mudge on 5 September, 2011 - 19:36

Linus Torvalds recently put the Linux kernel on Github as well as his dive log software. Here I asked him how he likes Github and what he thinks about it.

From Linus:

It seems to work well as a hosting place, I'm less impressed with the infrastructure to help "develop" things. It's clearly way too easy to create pointless issue requests, and the "pull requests" seem to be actively designed for somebody who pulls without ever even thinking about what he does - which is against everything I believe in as a project manager.

So from the pull request it's actually hard to see *what* somebody asks you to pull. Together with making it trivial to create commits and pull requests entirely in the browser, I think it's much too easy to do bad-quality requests.

Interview with Salvatore Sanfilippo about Redis

Submitted by mudge on 6 March, 2011 - 22:36

Salvatore Sanfilippo (or antirez) is author of Redis, an open source, key-value data store. Also known as a data structure server because values can be strings, hashes, lists, sets and sorted sets.

Why did you choose to write Redis in C, and why ANSI C specifically?

The first prototype of Redis was a Tcl script. I started prototyping with Tcl since the language is designed basically from the start with event driven programming in mind.

The prototype was useful to make me understand if the idea was actually viable, and it showed that it was but that memory efficiency and speed were crucial in the project.

So I started rewriting the whole project in C, and after a week I had a prototype (that I posted on hacker news). I used C because I needed speed, memory efficiency, real time features (no garbage collector or other delays I was not able to control), and the ability to talk well with the operating system layer, so that every optimization was possible. It helped that I'm fluent with C too.

This is a continuation of the Interview With Albert Gräf - Author of the Pure Programming Language, going more in depth about rewrite rules for data structures and functions.

It is recommended to read the Data Structures section of the Pure Primer before reading this interview as it covers basics of user-defined data structures in Pure and is referred to in this interview.

Keeping with the spirit of term rewriting, Pure eliminates the segregation of "defined functions" and "data constructors". Any function symbol can occur in a normal form term, so a (pure) constructor symbol is nothing but a function symbol which happens to not have any equations. This might first seem like an arcane feature, but it makes it possible to deal with symbolic terms and "constructors with equations" in a direct fashion. For instance, if you want you can write constructor equations for the "list cons" (denoted ':', like in Haskell) which keep your lists sorted and duplicate free:

> x:y:xs = y:x:xs if x>y; x:y:xs = x:xs if x==y;

Interview With Albert Gräf - Author of the Pure Programming Language

Submitted by mudge on 1 March, 2011 - 12:12

Albert Gräf is the author of the Pure programming language. Pure is a functional programming language based on term rewriting. It has a syntax featuring curried function applications, lexical closures and equational definitions with pattern matching, and thus is somewhat similar to languages of the Haskell and ML variety. Pure is also a dynamic language, and is more like Lisp in this respect. The interpreter has an LLVM backend that does JIT compilation.

Why did you name the programming language Pure?

I don't really remember how that name came about, maybe I originally envisioned the language to be much purer than it came out to be. ;-) But I liked the name, others liked it, too, so it stuck. In retrospect, it's a sort of pun and it also has a nice recursive backronym (Pure universal rewriting engine). Moreover, in this day and age it's quite a feat to find a short catchy name that hasn't been used for a programming language yet.

Interview With Andy Lester - Author of Grep Replacement Tool Ack

Submitted by mudge on 28 February, 2011 - 09:51

Andy Lester is the author of ack, a grep-like text search tool designed for programmers with large trees of heterogeneous source code.

ack searches directories recursively by default while skipping usually undesired directories and files such as version control directories, backup files, binary files etc. Some of its other capabilities and features include highlighting of search results, filtering files without searching them, and using real Perl regular expressions. ack is often used in place of grep.

What inspired you to make ack? How did the project start?

I was tired of writing grep foo $(find . -name '*.pm' | grep -v .svn) to search through all the Perl modules in a project at work. I was refactoring a lot of code, and I was doing the same kind of searches over and over. Sometimes I wanted Perl, sometimes PHP, sometimes HTML, sometimes everything except for Perl, and so on. I wrote the first version of ack to allow me to say ack foo --perl or ack foo --no-php, and it just grew from there.

Why this is called blueparen

Submitted by mudge on 1 February, 2011 - 22:18

The editor of blueparen is a fan of LISP programming languages. What better than programming with a bunch of blue parentheses?

Which Programming Paradigm Do You Like Best?

Submitted by mudge on 18 January, 2011 - 19:01
Syndicate content
.