Friday, February 24, 2012

Testing thread affinity

Peter Lawrey posts on thread affinity with Java. This is a post full of numbers, good numbers. If you write low latency code in Java, this is for you.

Tuesday, February 21, 2012

More git: moving modules between repos

Not the coolest merge, EVER! but much more grokable, Greg Bayer provides Moving Files from one Git Repository to Another, Preserving History.

The problem: I want to move repo-A/module1 to repo-B/module1 while preserving history. Bayer to the rescue. Thanks, Greg!

Saturday, February 18, 2012

How to introduce a new programming language

The Julia folks provide show the way to introduce a new programming language:

We are greedy: we want more.

We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.

(Did we mention it should be as fast as C?)

Thanks to Michael J. Simoni for pointing out Julia. More here.

Friday, February 17, 2012

Losing malloc, gaining the world

At work we've dropped the malloc that comes with GCC in favor of tcmalloc from Google. Our creaking, monolithic C++ backend gains 10-20% performance, unsurprising given the history of malloc.

Concatenative Programming

Jon Purdy on concatenative programming, which I had never heard of before. Basically it is purer functional programming for those of you who think Haskell is too corporate. (Actually, I enjoyed the read.)

P.S. — A remark from a clever fellow, no slouch he: That made my head hurt and reminded me of, when I was a freshman, trying to do a few chapters of Abelson & Sussman on my HP 28S calculator, which had RPN and (I realized) first-class functions.. I miss RPN calculators.

Thursday, February 09, 2012

Beating the PyPy drum

Laurie Tratt beats the PyPy drum in Fast Enough VMs in Fast Enough Time. Want to know more about VMs? Writing your own language or mini-language? Read on.

Friday, February 03, 2012

Type Theory for the Uninitiated

Kalani Thielen presents The Algebra of Data, and the Calculus of Mutation, or Type Theory for the Uninitiated. Fine calculus a bit soft, algebra a little dull, programming a walk in the park? Type theory is for you.