Category: Programming

Thrift vs. Protocol Buffers

Google recently released its Protocol Buffers as open source. About a year ago, Facebook released a similar product called Thrift. I’ve been comparing them; here’s what I’ve found: Thrift Protocol Buffers Backers Facebook, Apache (accepted for incubation) Google Bindings C++, Java, Python, PHP, XSD, Ruby, C#, Perl, Objective C, Erlang, Smalltalk, OCaml, and Haskell C++,…

Read the full article

Moving the ‘C’ in MVC

I’m sure I’m not the first to suggest this, but here goes. Ever since somebody first thought of applying the Model-View-Controller paradigm to the web, we’ve had this: The View is a conflation of HTML and JavaScript. JavaScript is an afterthought, a gimmick to make pages “dynamic.” All the real action is in the Controller,…

Read the full article

AI Lives!

Just when you thought the A.I. Winter would last forever, up pops Brainhat with an open-source inference engine that uses natural language as its primary interface. Cool!

More Clojure Love

I dropped by the Java Users’ Group meeting last week since Rich Hickey was there to talk about Clojure. I expected a bit of carping from the Java guys, and at first they were all “efficiency this” and “security that.” But by mid-way through the talk I think they were getting it. A few even…

Read the full article

JSON Is YAML

Cool fact: All valid JSON is also valid YAML. So any YAML parser can also parse JSON. Long live the mighty list/map data structure!

EC2 Authorizations for Hadoop

I just did my first test-run of a Hadoop cluster on Amazon EC2. It’s not as tricky as it appears, although I ran into some snags, which I’ll document here. I also found these pages helpful: EC2 on Hadoop Wiki and manAmplified. First, make sure the EC2 API tools are installed and on your path.…

Read the full article

We Don’t Know How We Program

Paul Johnson, in the U.K., wrote a piece about how there is no known “process” for programming. At some point, all the theory and methodology goes out the window and someone has to sit down, think about the problem, and write some code. I’m sure I won’t be the only one to suggest this, but…

Read the full article

Calling Java Constructors with this()

The things I don’t know about Java… could fill a book. Here’s a new one, from the Hadoop sources: public ArrayWritable(Class valueClass) { // … } public ArrayWritable(Class valueClass, Writable[] values) { this(valueClass); this.values = values; } The second constructor uses the syntax this(arg) to call a different constructor, then follows with initialization code of…

Read the full article

Astronauts Without Mission Control

Joel Spolsky complains that architecture astronauts are taking over at big, rich companies like Google and Microsoft, pushing out elaborate architectural systems that don’t solve actual problems. He’s right in that smart, technical people like to take on any large, abstract problem that is, as he puts it, “a fun programming exercise that you’re doing…

Read the full article