New
The latest blog posts to take off on Hacker News. 679 posts.
Polyglot Platform
Programming languages are silos. The libraries, development tools, deployment practices, and even naming schemes associated with one language — say, Ruby —
PyPy is faster than C, again: string formatting
String formatting is probably something you do just about every day in Python, and never think about. It's so easy, just "%d %d" % (i, i) ...
How the Winning Tron Bot Works
[ Update 8/2/2011 : you can play against a dumbed-down Javascript version of the bot here .]
Protocol Buffers, Avro, Thrift & MessagePack
Perhaps one of the first inescapable observations that a new Google developer ( Noogler ) makes once they dive into the code is that Protocol Buffers (PB) is the "language of data" at Google. Put simply, Protocol Buffers are used for serialization, RPC, and about everything in between .
Learn Perl in about 2 hours 30 minutes
Perl is a dynamic, dynamically-typed, high-level, scripting (interpreted) language most comparable with PHP and Python. Perl's syntax owes a lot to ancient shell scripting tools, and it is famed for its overuse of confusing symbols, the majority of which are impossible to Google ...
The Art of Computer Programming (interview with Don Knuth)
While he was over in the UK for a book tour and lecture series, Professor Donald Knuth made time to talk to BCS editor Justin Richards about his life.
Understanding the Git Workflow
If you don't understand the motivation behind Git's design, you're in for a world of hurt. With enough flags you can force Git to act the way you think it should instead of the way it wants to. But that's like using a screwdriver like a
Vim & Python: Making yourself at home
You might look at Python code every day, but what is the lens through which you view code? It's your text editor. This article was written for Python Magazine and was first in a series on Python development environments. Here, we look at how Vim users can boost their productivity by having Vim tell you as much as…
Sublime Text 2 Build 2091
Sublime Text 2 Build 2091 is available now, with a raft of new features. Many thanks to everyone who has tested the dev builds during this time.
Java 7 is now available
The product version you are looking for is no longer the most current release. Please visit one of the links on the right to get the latest version, download an archived version, or learn more about JavaSE.
WSGI and the Pluggable Pipe Dream
Why WSGI is not as big of a problem as you would believe and why framework independent pluggable applications don’t work in practice.
Every language fixes something - a DiGraph - just for fun
Oh, and - added later - the original from PG is undated, but the "enhanced" version below it was on the C2 wiki in 2003/2004 and possibly earlier, so don't for one minute think it's supposed to be up-to-date, or refer to modern version of these languages.
Finding your way in vim: tags, cscope, grep and more
Vim is quite powerful programmer's editor, but has a very steep learning curve and it takes time to configure it properly. In this tutorial...
Ten Ways to Check if an Integer Is a Power Of Two in C
To write a program to check if an integer is a power of two, you could follow two basic strategies: check the number based on its decimal value, or check it based on its binary representation. The former approach is more human-friendly but generally less efficient; the latter approach is more machine-friendly but…
Setup a complete Django server, deploy, rollback – all in one powerful script.
This will create the neccesary directories, install nginx and gunicorn under supervisord control and upload new configuration files made from templates on all the app-servers. Additionally it deploys the newest codebase from your local git branch.
NoSQL is What?
I found myself reading NoSQL is a Premature Optimization a few minutes ago and threw up in my mouth a little. That article is so far off base that I’m not even sure where to start, so I guess…
Stop hating Java
I noticed that in the Ruby community “Java” is a synonym of pure evilness. It’s often used as an argument against some techniques. “It’s J...
Solving Tetris in C
Exactly one of the following statements is true. In Tetris, you can always get at least one line before losing. In Tetris, a sufficiently evil AI can always force you to lose without getting a single line, by providing bad pieces. Which one? Prove it. The setup I crea...
Donut math - How donut.c works
There has been a sudden resurgence of interest in my "donut" code from 2006 , and I've had a couple requests to explain this one. It's been five years now, so it's not exactly fresh in my memory, so I will reconstruct it from scratch, in great detail, and hopefully get approximately the same result.
SQLAlchemy and You
The Django ORM feels so much easier than SQLAlchemy? Maybe this article can change your perception.