Mercurial v. git

April 7, 2008 | programming
RockStarProgrammer has a great article on the differences between Mercurial and git at a technical level. This is exactly the article I wanted back when I was trying to pick between the various distributed version control systems.

JavaScript for Emacs

April 7, 2008 | programming
Steve Yegge has been working for quite some time on a way to integrate JavaScript with Emacs, allowing you to code extensions in JS rather than elisp. To that end, he recently announced the availability of js2-mode, a new mode for Emacs that brings heavily revamped syntax highlighting, indentation, and on-the-fly parsing for JavaScript code. I’ve recently been having an internal fight with myself on whether to use vim or Emacs. Although I’ve used Emacs for an incredibly long time, have a massive...

Pilots, Programmers, and Perl

April 4, 2008 | programming
I don’t normally post chat conversations, but some are simply too good to ignore: Me: So I’m getting back into Perl. Devin: heh Devin: does your boss know? Me: ? Me: I don’t get why I’d need to notify Joel Devin: well, you know Devin: it’s like when a pilot starts drinking again Devin: the airline should be notified I think Devin may have a point.

Hating C++

March 27, 2008 | programming
I’m no fan of C++, but I look like a C++ evangelist compared to this poor chap, who assails C++ with a vengeance and eloquence that I have rarely seen. A choice excerpt: C++ is philosophically and cognitively unsound as it forces a violation of all known epistemological processes on the programmer. as a language, it requires you to specify in great detail what you do not know in order to obtain the experience necessary to learn it. C++ has taken premature optimization to the level of divine...

Grabbing Selected Songs from an iPod

February 21, 2008 | programming, technology
Today, I was over at a friend’s house and got sidetracked talking about music we liked. I mentioned that I’d recently discovered Jonathan Coulton, really liked his music. and played her a few songs of his. She liked them and asked whether she could have a copy. Since his songs are all licensed under the Creative Commons, that was no problem. Unfortunately, the only copy of the songs that I had were on my iPod. As everyone knows by now, Apple makes it very difficult to copy songs off an iPod due...

Boldly Going Where We've Gone Before

November 7, 2007 | programming
I empathize with Smalltalkers and Lispers who are in a perpetual state of been-there-done-that. Tons of “new” technologies (on-the-fly code reloading, edit-and-continue debugging, refactoring, and anonymous functions, among others) have been available in Smalltalk-80 since its inception (and frequently in Common Lisp’s predecessors and peers since before that). That said, when I read C# developers lamenting that .NET 3.5 is only a bad imitation of Smalltalk-80, I have a slightly different...

Sorcery with iptables

October 6, 2007 | programming, technology
I normally don’t link articles I see on reddit on the theory that you’ll already have seen them, but this one was too good to pass up. New Artisans has a superb article on iptable tricks to defend against common attacks, and even provides some hands-on examples of what they’re defending against. If you administer your own server, I strongly recommend taking a look. (Note: try the “attacks” they show only within your own LAN. A competent ISP may notice what you’re doing and shut you down if you...

rm -rf /var/www/* ... wait, which server am I logged into?

September 30, 2007 | programming, technology
Unix needs an undo command. This morning, my roommate and I hauled out some of our “big iron” (a languishing Pentium 4 box) to use as a photo server. Because we had initially planned to use that box to host bitquabit.com and its sister sites—a plan since scrapped—it had a full clone of all the data on my Linode hub. Before my roommate got going, then, I thought I’d quickly clean the box and return it to a neutral state. First stop, hose the duplicates of the websites I host. Fire up SSH, sidle...

A REPL for...C?

September 18, 2007 | programming
I’ve talked before about the value of a good REPL (scroll down to “The REPL in .NET”). Unfortunately, the programming language I write the most code in, C, lacks one. Or at least, it used to. The aptly named C REPL provides a REPL for C. Their trick: compile a DLL for each line of code, then load it into a new process. Presto: instant, portable interactive C.

Over-Securing WordPress

September 18, 2007 | programming, technology
I’m generally quite paranoid when it comes to server security—doubly so because I’m no guru at it—so I tend to take a shotgun approach. The virtual server running bit qua bit has a restrictive firewall setup, has root disabled, only allows secure IMAP/POP/SMTP, disallows password login through SSH, and mails me daily security audits, among other things. I also monitor Debian’s security-announce list like a hawk. (If you’re the sysadmin for a Debian server and you’re not on that list, sign up....