• GIS for Web Developers
  • skyelog: October 2005
  • Python in a Nutshell
  • 19 October 2005

    la la laaaa

    Joel Spolsky's Hitting the High Notes. (a.k.a. why hiring good programmers matters)

    "So, why isn't there room in the software industry for a low cost provider, someone who uses the cheapest programmers available? (Remind me to ask Quark how that whole fire-everybody-and-hire-low-cost-replacements plan is working.)

    Here's why: duplication of software is free. That means that the cost of programmers is spread out over all the copies of the software you sell. With software, you can improve quality without adding to the incremental cost of each unit sold.

    Essentially,
    design adds value faster than it adds cost.

    Or, roughly speaking, if you try to skimp on programmers, you'll make crappy software, and you won't even save that much money.
    "


    Eric Sink's response article.

    "I really like this metaphor, but it's a two-sided coin. High notes are amazing, but harmony is powerful. I am not disagreeing with Joel's metaphor. Rather, I like his metaphor so much that I want to finish it. Joel spoke of individual talent in terms of a soloist. I want to speak of team talent in terms of a choir."


    // random personal thing
    Theresa and I saw Serenity and I absolutely loved it. Joss doesn't disappoint, and IMHO the fans hopes for the movie have been realized. Thanks Joss.

    Labels:

    three "virtues"

    "We will encourage you to develop the three great virtues of a programmer: Laziness, Impatience, and Hubris.

    LAZINESS: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.

    IMPATIENCE: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.

    HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.
    "

    -- Programming Perl, p. xiv, by Randall Scwartz & Larry Wall

    Labels:

    18 October 2005

    64 big ones

    Bob Parsons started, built, and sold one business and then started and built another. These two blog entries, while making other points, tell the story.

    Success key: Never give up (but be very quick to change). Turning $15,000 into $64 million. Kissing $64 million goodbye.


    The temptation to quit will be greatest just before you are about to succeed. Parking cars for a living.

    Despite the titles, I think Bob is doing just fine. (the formatting choices could be a bit more readable, however)

    Labels:

    17 October 2005

    revolutionaryness (part 2)

    Nintendo's Genre Innovation Strategy: Thoughts on the Revolution's new controller is the most interesting article on the game business I've read in quite a while.

    "The non-business person looks at this strategy with horror. Nintendo invented the 3D platformer, yet they have no major product in that niche at the moment. Surely this is the most obvious sort of stupidity. However, consider the following portfolio management issues: ..."


    Despite the fun that I and many others had joking abou the Nintendo Revolution controller, this article makes Nintendo's current and past strategies make sense in a way previously unknown to me. I also appreciate the discussion of the marginalization of the non-super-hardcore players of various genre. It rings very true with my own experiences.

    Well done.

    Labels:

    14 October 2005

    snychronicity

    Unison File Synchronizer is a tool I make heavy use of at home. I'll let the author summarize:

    "Unison is a file-synchronization tool for Unix [including OS X] and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other."
    It runs from either the command line or from a GUI client and in my year+ of using it has lived up to the promises on the web site.

    Other routes to accomplish the same thing are Bill Stearns rsync-mirror or rsync-backup. (Bill has lots of other neat stuff on his site; check it out.) There are also a number of various FOSS projects for mirroring and synchronizing out there, but their discovery and evaluation is left as an exercise for the reader.

    (update) Harmony is another interesting project from Prof. Pierce. Having one set of bookmarks automatically sync'd between my various computers is something that I have wanted for a long time.

    Labels:

    13 October 2005

    sum sum summertime

    Paul Graham's essay "What I Did this Summer" is a lessons learned and 'what happened' summary of the experimental Y Combinator's Summer Founders Program. The basic idea was to fund a small number of hacker-based startups with (minimal) funding and the kind of great access to key people that can be so elusive in the earliest stages of a company/product.

    "The whole summer was full of surprises. The best was that the hypothesis we were testing seems to be correct. Young hackers can start viable companies. This is good news for two reasons: (a) it's an encouraging thought, and (b) it means that Y Combinator, which is predicated on the idea, is not hosed."


    ... and on (another) unrelated note: Has the tomb of Odysseus been found?

    now what?

    Joel Spolsky (Joel on Software) has a new article: Set Your Priorities with his ideas for finding and prioritizing the schedule of your next release.

    "You're not making a schedule today: you're just prioritizing. The only thing that you have to get approximately right is the vague idea that you could do two medium features or one large feature or ten small features in about the same amount of time. It doesn't have to be accurate."


    On an unrelated note, "Breezy Badger" the Ubuntu 5.10 release is available.

    Labels:

    12 October 2005

    code and style

    Ruby Code and Style is a new on-line magazine about, you guessed it, programming with Ruby.

    I am a bit annoyed and yet pleased at all the attention and hype Ruby is getting via Ruby on Rails. I'm still smitten with the language, and have been since Cory put me onto it (before Rails existed). We use it for system scripting here at work, and I haven't found anything to complain about it for that purpose.

    Having said that, it isn't perfect for everything. Ben is also an enthusiastic Ruby scripter, but his experiments with using Ruby as an in-game scripting language have shown that it really needs a byte-code compiler before it will be suitable for that purpose. For now, the in-game scripting role is comfortable filled by Lua. I have a bone to pick with Lua, but I'll save that for a future post...

    Labels:

    two ars arts: penguin audio & disaster IT

    "Editing audio in Linux" is about what you would expect. I am curious what Kevin thinks about it.

    "Parallel to Linux's furthering of basic usability, there's been a lot of work put into high-end uses for Linux, like professional audio production. These applications require a certain amount of spiffy GUI and big helpings of performance and stability—which Linux is now more than ready to provide. Audio editing is also greatly helped by compatible hardware, which can give a more intuitive user interface and better performance. Unfortunately, Linux has always been plagued with hardware compatibility issues, and this is very evident when trying to do professional audio production."


    "Doing disaster IT with a shelter lab LiveCD build" discusses the trials and tribulations of making a LiveCD for the Katrina recovery shelters. Ther is a lot of technical detail, but I found it interesting because it is so different from what I am used to dealing with.

    "The present article is a short introduction to one of the most important categories of tools to emerge from the efforts of myself and others to meet the shelters' need for free, zero-maintenance, bulletproof, Internet-connected computers: the shelter lab LiveCD build."

    Labels:

    sniffity snif

    "Monitoring network traffic with Ruby and Pcap"

    Ars Technica has a neat article on using Ruby with Pcap to monitor network traffic. Sniffers aren't new, but Ruby is such a nice language to work with..

    "There are many situations where the ability to monitor network traffic can save a lot of time and effort. If you want to reverse engineer a network protocol, keep an eye on junior's browsing habits, or blackmail your evil boss, Ruby and libpcap can make it easy!"

    Labels:

    knock knock, Neo...

    Port Knocking is a wicked clever idea to greatly increase the safety and crack resistance of a publicly accessible server.

    The basic idea is to have the server operating in stealth-mode (no port query is every answered, just silently ignored) until a specific sequence of ports are touched, causing the server to open a port and enable a specific service. Trivial example: I touch ports 2022, 2122, 2222 and then SSH on port 22 is enabled for, say 60 seconds or until an active SSH session ends.

    Neat idea? Wait, there's more. Now add dead zones of ignored ports, source IP address encoding, time stamp, and other data contained in which ports are touched. Now sprinkle on some military-grade encryption and secure hashing and you have something which basically can't be re-used; even if you send the same exact sequence again the port won't open. Also note that the act of opening the port is just the first step; the normal security of whatever you are connecting to still applies.

    It is always important to remember that security through obscurity is not something you can depend upon; but this would make your server awfully obscure...

    Labels: ,

    11 October 2005

    freedom wears (or surfs) black

    "I worry about my child and the Internet all the time, even though she's too young to have logged on yet. Here's what I worry about. I worry that 10 or 15 years from now, she will come to me and say 'Daddy, where were you when they took freedom of the press away from the Internet?'"--Mike Godwin, Electronic Frontier Foundation

    Freenet is an attempt to make a scalable darknet implementation. From the what is freenet pages:

    "Freenet is free software which lets you publish and obtain information on the Internet without fear of censorship. To achieve this freedom, the network is entirely decentralized and publishers and consumers of information are anonymous. Without anonymity there can never be true freedom of speech, and without decentralization the network will be vulnerable to attack."

    For more detail, there is also a philosophy page for the project.

    Labels:

    trivia quest

    Epic: what we want or what we deserve...

    This is circa 2004. Predicting the future is always dangerous, but danger favors the bold.

    (if this link is broken, search "google epic" and you'll find a mirror)

    Labels: ,