So if I'm only doing the VC thing part time, and don't currently have my fingers in a startup pie, why the relatively slow rate of posting around here?
I've gone back to writing code, and it's been sucking up a fair amount of time and bandwidth.
Why? One level of answer is that I missed being able to build my own tools. Since HyperCard finally died I've had no environment for knocking out quick hacks, unless you count Excel, and I don't. I also found my engineering feasibility and schedule BS detector becoming fuzzier and less useful given the accumulating years since being hands-on.
But Rich Miller didn't buy that motivation when I laid it on him, and you shouldn't either. The second level answer is that I'm playing around with a set of notions about social software, and have some specific ideas that I think worth implementing at prototype level. Exactly what is a matter for later posting. Being acutely aware of the overhead involved in building a team and raising funding, and wanting to remain agnostic about where these ideas were on the spectrum from hobby to serious business, I decided to just have a go at it myself.
I've been working in Perl, for a variety of reasons:
My last serious code (defined as something used by another human) was in a combination of C and various scripting languages. Perl has a familiar feel to someone used to C syntax, immediate gratification, and loosey-goosey typing. Object orientation in Perl is only skin deep, so I can decide how deeply I want to buy into it for a specific project.
CPAN has an awesome collection of libraries with mature functionality aimed right at my tasks of interest. Even the not-so-mature bits are useful cribs for a newbie. While the excitement may have moved on to other languages, the archives of accumulated Perl wisdom at places like Perl Monks saves a lot of frustration when hitting a real puzzler.
I deliberately punted the choice between the leading languages du jour, Ruby and Python. A combination of avoiding premature commitment, and deliberately creating the potential (necessity?) of shifting environments when going from batch-like personal prototypes to possible future web services.
Finally, I've got 40 years worth of computer language history and syntax buried in my hind brain, all the way back to assembler and Fortran II. Reading the camel book alone can't suppress all those years of bogus instincts. I need live code and a motivation to screw around with it to make a new language natural. Fortunately, one of my other avocations provided both: geocaching, of all things. One type of geocache is the 'puzzle' cache, where one has to solve a problem to find the actual coordinates. Given the Silicon Valley environment, a lot of the puzzles around here are rather nerdy - math problems, word puzzles, and cryptograms, many of them most efficiently solved with code. And the lingua franca of the code snips passed among would-be puzzle solvers is Perl. That gave me lots of little challenges and quick rewards while getting started, culminating in writing a hill-climbing solver for substitution ciphers.
Those toy programs barely touched the Perl libraries, and went just fine with a plaintext editor and the command line. That's not enough power for a real project, and misses the point of modern development environments anyway. So I've ended up working in an Eclipse environment, using the EPIC plug-in, all on my trusty MacBook Pro. I'm using git for source code control (it's good enough for perl, it's good enough for me), but mitigating its rather arcane command line interface with the GitX GUI for commits and other common tasks. The developers' suite that comes with OS X provided a nice stable Perl 5.8.8 configuration, which I'm sticking with for now. All in all, probably overkill for a one man project, but you never know.
None of this is meant to provoke a religious discussion about languages and environments (YMMV, and I've seen so many flame fests that they are just boring) but as a bit of background for upcoming posts about the actual topics of interest.