New
The latest blog posts to take off on Hacker News. 14,544 posts.
Summary of all the MIT Introduction to Algorithms lectures
As you all may know, I watched and posted my lecture notes of the whole MIT Introduction to Algorithms course. In this post I want to summarize all the topics that were covered in the lectures and point out some of the most interesting things in them. Actually, before I wrote this article, I had started writing an...
SciPy - the embarrassing way to code
I’ve programmed in many languages before, indeed I’ve spent at least a year working in Basic, C, C++, C#, java, assembler, modula-2, powerhouse and prolog. One thing I’ve never done before is Matlab, well except a few basic exercises for some course I did way back. A couple of years ago I started using python and more…
Haskell is beautiful in practice
I’ve been writing a bit of Haskell lately (see my GitHub page ), and it’s an absolutely beautiful experience. And I mean that in every way: The language itself of course, but also the community, the documentation, the package system and the Haskell platform ultimately help make the practice of writing Haskell more…
Why kids don't program
Behold, in its full glory, a program that I ran on my ZX Spectrum nearly 30 years ago: 10 FOR n=0 TO 255 20 PLOT n,88+80*SIN (n/128*PI) 30...
Parsing HTML in Python with BeautifulSoup
I got into a spat with Eric Raymond the other day about some code he's written called ForgePlucker . I took a look at the source code and...
Python in the Scientific World
Yesterday I attended a biweekly meeting of an informal a UC Berkeley group devoted to Python in science (Py4Science), organized by Fernando ...
Japanese Teenage Boy Improved Ruby 1.9 Performance By Up To 63%
Japanese online magazine, @IT Jibun Senryaku Lab. (information site for IT engineers to educate and/or develop oneself), published an interv...
Mockingbird, Cappuccino, and what really matters
What makes an app an app?
Clojure N00b Tips from Tim Bray
Clojure is the new hotness among people who think the JVM is an interesting platform for post-Java languages, and for people who think there’s still life in that ol’ Lisp beast, and for people who worry about concurrency and state in the context of the multicore future. Over the last few days I’ve been severely…
It's All Just Programming
My previous agile theme, on organic planning , has implications for how we design and implement solutions -- for making decisions that "stick". Derek Sivers recently used an apocryphal story about walkways to express a similar principle:
Feynman, Challenger Disaster, and Software Engineering
On January 28th, 1986, Space Shuttle Challenger was launched at 11:38am on the 6-day STS-51-L mission. During the first 3 seconds of liftoff the o-rings (o-shaped loops used to connect two cylinders
Compleat: Programmable bash completion for human beings
Compleat is an easy, declarative way to add smart tab completion for any shell command. It’s written in Haskell but requires no programming knowledge. See the GitHub repository for a quick description, or read on for a complete explanation.
H(m || k) also insecure, you really should use HMAC
The HMAC construction turns a cryptographic hash algorithm into a keyed hash. It is commonly used for integrity protection when the sender and recipient share a secret key. It was developed to addr…
The Busy Beaver Problem
Busy Beaver puts another one on the Turing Machine's tape (image from the book The New Turing Omnibus). The busy beaver problem is a fun theoretical computer science problem. Intuitively, the problem is to find the smallest program that outputs as many data as possible and eventually halts. More formally it goes…
Tail Call Amputation
This is perhaps a slight digression; just an extended expression of pleasure about Clojure’s recur statement. It neatly squashes a bee I’ve had in my bonnet for some years now; if it’s wrong to loathe “tail recursion optimization” then I don’t want to be right.
Functional Geometry
Peter Henderson wrote an article about a method to describe pictures with functional programs. I've implemented it in Lisp. An updated version of the article uses curves and different shapes and has some references to other applications for this method, like "An Algebra of Music".
How to Read Other People's Code -- And Why
If you are a professional software developer, or aspire to be one, you will need to know a lot of of things. Various maths, stats, languages, frameworks, methodologies, tools, etc. Fads and buzzwor…