Posts

  • G1 Garbage Collector

    I am really psyched about the new G1 Garbage Collector. That link is worth a read if you want to learn about it. This is a really a pretty revolutionary re-think of the way garbage is collected in the JVM, and should bring substantial improvements to applications with large heaps that need low pause times.

  • Python Library for Bind9/named Configuration

    I had to spend some time this week generating a Bind9 configuration file from a database. I decided to learn Python at the same time. :) This is a quick Python module that will let you build Bind9 config files in no time flat:

  • A Layman's Guide to Deep Packet Inspection

    What is Deep Packet Inspection?

    Suppose you send a postcard to someone. On the left hand side of the post card, you write your return address, you write the address you want the card to be delivered to, and hopefully you remember to add some stamps. On the right hand side, you fill in the message you want to send ("Hey mom! Wish you were here!"). Then you drop your postcard into a mailbox. Your postcard will be picked up by a mail carrier, and go through a sorting process. Postal workers will look at the destination address to decide where to send the postcard, and it will move from postal center to postal center until eventually it arrives in the hands of a postman who delivers it right to the door of your intended recipient. This is similar to the way the Internet works. Instead of using postcards, the Internet works by sending data in "packets". A packet has a "header" which has some information about what computer the packet is from and what computer or server the packet is going to, and a body which contains the actual message that is being sent ("Hey mom! Wish you were here!"). When your computer sends a packet out into the Internet, it is passed through a series of "routers"; each router reads the address of the computer the packet is destined for from the header, and either passes it on to another router, or else passes it on to the destination computer. Or at least, that is how it has worked up until very recently. Routers have been getting smarter, and modern routers use a technology called "Deep Packet Inspection", or "DPI", to decide what to do with their packets. When you send a postcard, you expect it to be delivered based on what your write on the left hand side, but suppose for a minute that postal workers also read the right hand side of your card, and used that information to decide how to handle its delivery. For example, the post office might decide to give priority to messages it thought were important; if there are too many postcards to deliver in a day, your "Hi mom!" message might have to wait until tomorrow so that a postcard could be delivered today that said "Patient at our hospital needs a new heart. Send transplant right away!" Or, a somewhat more nefarious use; the post office might decide to simply not deliver any postcards that said something bad about the post office. Or what if the post office decided to start keeping a database of all the businesses you sent and received postcards to and from, so that they could sell this information to advertisers? This is exactly what DPI is all about; DPI enabled routers will route packets based not only on the header of the packet, but also based on the content of the message, and may use the contents of those messages for other purposes as well.
  • Things I Hate about Firefox 3, and How to Fix Them

    Firefox 3 is here! While there's a lot to like about the new Firefox, there's plenty of things to dislike, too. This is a quick run down of the things that bother me the most, and how to fix them.

  • Internationalization in Java

    This is a quick tutorial on how to make it easy to support multiple languages in your Java programs.

subscribe via RSS