Blog

  • Puzzle

    Got this via email today.

    Can you solve this puzzle?


    You are riding on a beautiful white horse.
    On your left side is a drop off.
    On your right side are several ostriches being chased by a lion.
    In front of you are four large gazelles that won’t get out of your way
    and you can’t seem to overtake them.
    Behind you is a stampede of horses.
    What must you do to get out of this highly dangerous situation?
    For the answer click and drag your mouse from star to star.
    * Get your drunk ass off the merry-go-round. *

  • Baidu hearts Obama

    Chinese search engine Baidu.com has Obama on their home page today. Kerry (my wife, in case you’re new here) attended the second democratic caucuses as one of Obama’s delegates a few days ago in Issaquah. There were 36 Obama delegates to Clinton’s 12 – going on to the state caucuses. So WA is definitely Obamaland.

    The NYTimes had an article this morning on how kids are being influential among their parents, some of whom are superdelegates.

    A former Seattle CEO and friend thinks Obama would win among delegates but Clinton would win the popular vote. The last time I was in Houston and I spent time with around 70 members of my extended Texan family at a reunion, we had a few chats about Politics. What I found was that we had a lot of common ground. And I found that it’s not the democrats that Texas republicans hate, it’s the Clintons. There’s just something about Bill, and by association, Hillary, that gets republicans very riled up.

    Can Hilary win the popular vote? No way. The fact that Obama recruits new voters to the caucuses speaks volumes.

    But moving away from the negative…

    The reason I’m an Obama supporter is because he brings people together behind a common cause.

    Hillary’s message is: “I’m an experienced Washington insider who knows how to work the system to your advantage”

    Obama’s message is: “Lets all come together around the common cause of making this country great again.”

    As my wife says, when I walk away from an Obama speech I’m energized and I want to get out and do something to make things better.

  • Troubleshooting

    It’s funny how when you’re troubleshooting a performance issue on your servers that suddenly made the load average spike to 14 (350% with four CPU cores) at 6:30am on a Sunday morning (yay!) all the stats look like garbage until you figure out what it is and then it’s so glaringly obvious that you spend the rest of the day kicking yourself for not seeing it immediately.

    Note to self: Next time make coffee, drink coffee, and only then log on to munin to troubleshoot.

  • The problem with myspace…

    I know this isn’t new but… I joined myspace about a year ago and added one friend because I wanted to check it out. I literally logged in once and never logged in again. It’s housecleaning day today on my gmail account and here’s what I came up with searching for “would like to be added as one of”. A total of 156 requests averaging about 1 every two days. …and they’re all girls.  It’s amazing myspace still has so much traffic compared to facebook.

  • Facebook friends not real friends?

    An article on techmeme today talking about a judge in the UK ruling that FB friends are real friends. It reminds me that many people use social networks in many different ways. My 16 year old nephew has over 6,000 friends on myspace and he’s never met most of them. I have about 100 friends on Facebook and I’ve met 95% of them face to face. And everyone I know completely ignores “how do you know this person” on FB when adding a friend. So really the so called “social graph” is a graph where the links vary in strength so much as to make the data a lot less meaningful.

  • Aground

    [warning: non-geeky personal blog entry for benefit of extended family] A few weeks ago mum and dad were sailing their boat up an inlet in a group of islands called the Andamans. (They’re about halfway between India and Thailand and belong to India) They ran aground on a coral reef on a spring tide thanks to some bad local directions – although dad takes the blame for sailing unknown waters on a spring tide. There was one more tide that was a couple of inches higher that evening so they had one shot to get the boat off the reef. Luckily she ran aground level on both keels so they sat it out without causing too much damage and on the evening tide she just floated right off. On inspection both keels had a few scratches but no serious damage. I should add that they’ve managed to get halfway around the world without getting into a pickle like this. 🙂

    Here’s what things looked like at low tide with mum on the foredeck:

  • Linux is Obsolete!

    A lame video on techcrunch today inspired me to go hunting for the original argument between Linus Torvalds and (Professor) Andy Tanenbaum and here it is. Titled Linux is Obsolete, it’s a post by the author of Minix in 1992 telling Linus he’s just created an obsolete OS that’s running on obsolete hardware (the 386) that won’t be around in a few years.

    Andy’s ideas are a great example of how an academic approach to software design can lead to layers of abstraction that kill performance. You see this mistake often in web applications because web development teams are separate from the operations team and don’t have to think about performance under load. So their focus stays on the manageability of the code base rather than its performance. They make language choices and design decisions that help them write beautiful code in as few lines as possible that any university professor would be proud of.

    Find me an ops guy who loves Ruby on Rails and I’ll find you a dev who loves hand-crafting SQL statements.

    Here is AST’s original email:

    Subject: LINUX is obsolete
    From: ast@cs.vu.nl (Andy Tanenbaum)
    Date: 29 Jan 92 12:12:50 GMT
    Newsgroups: comp.os.minix
    Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
    
    I was in the U.S. for a couple of weeks, so I haven't commented much on
    LINUX (not that I would have said much had I been around), but for what
    it is worth, I have a couple of comments now.
    
    As most of you know, for me MINIX is a hobby, something that I do in the
    evening when I get bored writing books and there are no major wars,
    revolutions, or senate hearings being televised live on CNN.  My real
    job is a professor and researcher in the area of operating systems.
    
    As a result of my occupation, I think I know a bit about where operating
    are going in the next decade or so.  Two aspects stand out:
    
    1. MICROKERNEL VS MONOLITHIC SYSTEM
       Most older operating systems are monolithic, that is, the whole operating
       system is a single a.out file that runs in 'kernel mode.'  This binary
       contains the process management, memory management, file system and the
       rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360,
       MULTICS, and many more.
    
       The alternative is a microkernel-based system, in which most of the OS
       runs as separate processes, mostly outside the kernel.  They communicate
       by message passing.  The kernel's job is to handle the message passing,
       interrupt handling, low-level process management, and possibly the I/O.
       Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the
       not-yet-released Windows/NT.
    
       While I could go into a long story here about the relative merits of the
       two designs, suffice it to say that among the people who actually design
       operating systems, the debate is essentially over.  Microkernels have won.
       The only real argument for monolithic systems was performance, and there
       is now enough evidence showing that microkernel systems can be just as
       fast as monolithic systems (e.g., Rick Rashid has published papers comparing
       Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.
    
       MINIX is a microkernel-based system.  The file system and memory management
       are separate processes, running outside the kernel.  The I/O drivers are
       also separate processes (in the kernel, but only because the brain-dead
       nature of the Intel CPUs makes that difficult to do otherwise).  LINUX is
       a monolithic style system.  This is a giant step back into the 1970s.
       That is like taking an existing, working C program and rewriting it in
       BASIC.  To me, writing a monolithic system in 1991 is a truly poor idea.
    
    2. PORTABILITY
       Once upon a time there was the 4004 CPU.  When it grew up it became an
       8008.  Then it underwent plastic surgery and became the 8080.  It begat
       the 8086, which begat the 8088, which begat the 80286, which begat the
       80386, which begat the 80486, and so on unto the N-th generation.  In
       the meantime, RISC chips happened, and some of them are running at over
       100 MIPS.  Speeds of 200 MIPS and more are likely in the coming years.
       These things are not going to suddenly vanish.  What is going to happen
       is that they will gradually take over from the 80x86 line.  They will
       run old MS-DOS programs by interpreting the 80386 in software.  (I even
       wrote my own IBM PC simulator in C, which you can get by FTP from
       ftp.cs.vu.nl =  192.31.231.42 in dir minix/simulator.)  I think it is a
       gross error to design an OS for any specific architecture, since that is
       not going to be around all that long.
    
       MINIX was designed to be reasonably portable, and has been ported from the
       Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016.
       LINUX is tied fairly closely to the 80x86.  Not the way to go.
    
    Don`t get me wrong, I am not unhappy with LINUX.  It will get all the people
    who want to turn MINIX in BSD UNIX off my back.  But in all honesty, I would
    suggest that people who want a **MODERN** "free" OS look around for a
    microkernel-based, portable OS, like maybe GNU or something like that.
    
    Andy Tanenbaum (ast@cs.vu.nl)
    
    P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user
    space), but it is far from complete.  If there are any people who would
    like to work on that, please let me know.  To run Amoeba you need a few 386s,
    one of which needs 16M, and all of which need the WD Ethernet card.
  • Guy's house cleaned out by ad on Craigslist

    This is too much. A guy in Jacksonville, Oregon had his house cleaned out thanks to a malicious ad placed on Craigslist. Someone posted an ad saying that the house had been declared abandoned and all the belongings including a horse were free to good homes. So the entire neighborhood rocked up and started carting stuff off. When the guy arrived the looters were armed printouts of the ad and refused to hand the guys stuff over. From the Seattle Times:

    The independent contractor was at Emigrant Lake when he got a call from a woman who had stopped by his house to claim his horse.

    On his way home he stopped a truck loaded down with his work ladders, lawn mower and weed eater.

    “I informed them I was the owner, but they refused to give the stuff back,” Salisbury said. “They showed me the Craigslist printout and told me they had the right to do what they did.”

    The driver sped away after rebuking Salisbury. On his way home he spotted other cars filled with his belongings.

    Once home he was greeted by close to 30 people rummaging through his barn and front porch.

    The trespassers, armed with printouts of the ad, tried to brush him off. “They honestly thought that because it appeared on the Internet it was true,” Salisbury said. “It boggles the mind.”

    Full article here.

  • Obamagirl's latest

    Nice touch getting Bill to play the sax. 🙂 [obamagirl video below] And in case you haven’t seen it, check out Hillary’s latest faux pas on youtube today. And now I need to go flagellate myself for an hour for violating my not-blogging-about-politics rule.

  • Anycasting anyone?

    [Thanks Sam for the idea for this entry] Ever heard of IP Anycasting? Thanks to my recent change from godaddy (frowny face and no link) to dnsmadeeasy (happy face and they get a link) I’m now using a DNS provider that provides anycasting. What is it and should you care?

    IP Anycasting is assigning the same IP address to multiple instances of the same service on strategic points in the network. For example, if you are a DNS provider, you might have servers in New York, London and Los Angeles with the same IP address. Then when a surfer in San Diego (about 80 Miles South of Los Angeles) makes a request to your DNS system the server in Los Angeles answers and saves the network from having to route traffic to New York or London.

    Anycasting is generally used to distribute load geographically and to mitigate the effect of distributed denial of service attacks. It’s been used by the F root server since November 2002 and has saved good ole F from getting taken down by several DDoS attacks.

    I was using dnspark.net a couple of years ago and we had a few hours of down-time while they were hit by a DDoS attack – so it’s not as uncommon as you think. [They obviously don’t use anycasting]

    Anycasting is suitable for DNS because DNS uses a connectionless session layer protocol called UDP. One packet is sent, a response is received and hey, if the response isn’t received the client just tries another DNS server. [This occurs in the vast majority of DNS queries. There are a small number of exceptions where DNS uses TCP.]

    Anycasting is not ideally suited for TCP connections like web browser-server communication because TCP is connection oriented. For example, TCP requires a 3 way handshake to establish the connection. If the network topology changes and one packet is sent to the Los Angeles server and another is sent to New York it breaks TCP because the New York server doesn’t know about the session that Los Angeles has started establishing.

    That’s the theory anyway, but if the network topology stays reasonably stable and you don’t mind a few sessions breaking when the topology does change then perhaps you’ll consider using Anycasting with your web servers. But don’t get too creative and launch a content delivery network. Akamai might sue you and they’ll probably win. They own patent No. 6,108,703 which covers a “global hosting system” in which “a base HTML document portion of a Web page is served from the Content Provider’s site while one or more embedded objects for the page are served from the hosting servers, preferably, those hosting servers near the client machine.” Akamai just won a case against competitor Limelight for violating that patent and the case is now heading to the appeal courts.

    There are other protocols that are connectionless and therefore well suited for Anycasting like SNTP and SNMP but there isn’t much demand for these because they’re network management protocols and don’t experience the massive load that more public protocols like DNS, SMTP and HTTP get.

    Deploying an anycast network is not something you’re likely to consider in the near future unless you’re eBay or Google, but outsourcing some of your services like DNS to an anycast provider is something that’s worked well for me and might work for you.