(   )
                          (    )
                           (    )
                          (    )
                            )  )
                           (  (                  /\
                            (_)                 /  \  /\
                    ________[_]________      /\/    \/  \
           /\      /\        ______    \    /   /\/\  /\/\
          /  \    //_\       \    /\    \  /\/\/    \/    \
   /\    / /\/\  //___\       \__/  \    \/
  /  \  /\/    \//_____\       \ |[]|     \
 /\/\/\/       //_______\       \|__|      \
/      \      /XXXXXXXXXX\                  \
        \    /_I_II  I__I_\__________________\
               I_I|  I__I_____[]_|_[]_____I
               I_II  I__I_____[]_|_[]_____I
               I II__I  I     XXXXXXX     I
            ~~~~~"   "~~~~~~~~~~~~~~~~~~~~~~~~

Tue, 08 Sep 2009

Perl CGI Programming, the Right Way

One of the best resources for learning Perl CGI programming online used to be Ovid's CGI Course. I was disappointed to find it no longer online, but glad to see it in updated form, now maintained by the Perlmonks community. It always distinguished itself from other CGI tutorials with its early attention to security and taint mode. Well worth the read.

posted at: 16:32 | path: / | permalink | CGI, Howto, Perl, Programming

Fri, 14 Aug 2009

RCS Misery

While I am definitely old-school, and still use RCS for things like personal config files and documents, I would never consider using it on a development project where lots of developers are working on a shared codebase. I had to do just that recently for a contract I'm working on with several other developers. Absolute misery. Even worse, this version of RCS is hacked so that the VC metadata is not local, meaning I can't use Emacs' VC-mode to make life easier. Imagine locks that someone always forgets to release ("You done with that file?"), no merging, branching or private repos - so no way to test your changes without possibly breaking stuff other devs are doing. Sheesh.

posted at: 17:35 | path: / | permalink | Programming, RCS, WTF

Fri, 03 Jul 2009

Contract Programmer WTF

I've done contract work through Guru.com in the past, and I still take a look around there from time to time. While looking through open projects, I'll sometimes visit a contractor's profile that was given bad reviews. This customer review was priceless:

In the end a truly dreadful, horrible experience. These people have left me up the creek without a paddle. If I were you, I would not deal with them...

The contractor in question is an Indian company with a listed minimum rate of $8.00/hour. Some verbatim copy from their profile, minus the company name:

1. Very good Communication Skill ...We are having well equipped office with excellent technical skilled team for the development of [Company Name] projects as well as on site software, webdevelopment and web designing projects...

Ummm, yeah. Eight dollars per hour? And they give such a great example of their communication prowess. Why would you ever hire someone like that?

posted at: 11:36 | path: / | permalink | Contract, Programming, WTF

Wed, 24 Jun 2009

Random Cool Emacs Hack

If you spend a lot of time in Emacs, you'll invariably end up with multiple buffers of the same name hanging around. It's sometimes irritating to discern between them while switching. Check out the very useful elisp function that will kill all other Emacs buffers of the same name, courtesy of Trey Jackson at "Life Is Too Short For Bad Code" [0].

posted at: 21:20 | path: / | permalink | Elisp, Emacs, Hack, Programming