In winter, the world falls away

I love the winter time. Sure the months drag on and by the end of march you're horribly sick of it all, but when the physical world shuts down there is a wonderful freeing of the mind as the ancient tethers developed in the sub-saharan pre-histories of our ancestors fall away. What's left is a world of pure ideas, playing and weaving in to a smooth wonder.

We got our first snow last night, and I loved staying in.

Coming to Terms With Being a Purist

I've spent a lot of time over the past year lamenting all the unfortunate coding decisions that have needed to be made because of external time/business/etc. requirements. It's getting to the point where my obsession with fighting for perfection makes me blind to anything good that we're putting out there. I see every project I do through the tainted glasses of revisionary perfection.

There's a quote that you often hear made about many things which require a lot of emotional investment. Abstracted, the essence is that you should love the thing you have, not the thing you wish you had. For me, I need to realize that there is some really freaking cool stuff we're building here and that the concessions to practicality aren't always a terrible thing.

I feel much free-er now.

Bloat and Business-Speak

An internal email was sent out with the following opening line:

    I am pleased to announce an evolution in the roles and responsibilities of folks on our Business Development team.

I have reproduced it here without fear of leaking information because it is essentially devoid of it. Rarely have I seen so many words been used to convey so little knowledge.

This company is getting way, way too large for me and the big-company artifacts are showing up all over the place.

Apathy and Aspirations

I don't really care for what I'm working on anymore. The software product that I am working on is loaded with potentially fascinating projects, all of which are necessary in the long run. But our priorities seem to be mostly driven by which person over in Product is loudest and most repetitive, thinking they are designing the application when in fact they are merely suggesting designs. The relationship between designs and designing is merely a subset of plans and planning: The (design|plan)s are mostly useless, but (design|plan)ing is indispensable.

I have such high aspirations for any software I'm working on. I have a tendency to immediately try and see the general problem at work and solve that. It's not ego, it's laziness. I may as well create something that solves as many problems as possible in one-go. The projects I currently work on at my current job reek more of apathy than aspirations.

Pemi Challenge

Ultra running (longer than a marathon) is not a test of endurance. Certainly, one must be in excellent physical condition to have a chance of finishing, but what makes or brakes you is your mind. When the halfway marker of a race is (1) after the part where you fingers went numb from the hurricane force winds, (2) farther along than any distance you've ever traveled on foot in a day and (3) after you long since passed the part when you were running on fumes.

That was the story on Saturday for me. Somewhere between Mt. Galehead and Galehead hut, going up and down over the various step cols and buttresses along Garfield ridge I was broken. Really pushing yourself, really pushing yourself, is finding out your real limits. Finding out when you can really run no more. I heard from other runners that some of their friends can jog out on the trail for days and days. After this weekend I suspect fewer than 1% have come anywhere near their real limit. At the very end of the race, I was able to jog across the final bridge to the parking lot where we started. If I could still jog, I didn't push myself completely. But at least I really know what that means now.

The View Stretches for Miles and Miles

Outside my window at 11pm I inhale the humidity in the air, and it has the sweet musk of spring.

Miles Davis's muted horn brings solace that I haven't felt in months.

The bass softly kneads the tension out of my back.

The city is a cacophony of rain, cars and lights outside my window.

But in the hands of Miles this rich spring night is not but solitude and peace.

A night out, all grown up?

I dislike fancy-schmancy clothing. But I look goooooood in it. I'm really at something of a loss in reconciling my stance on business attire. In a dry, philosophical world my take on suits is that they constraint the wearer and impress the wrong kind of people. But the 'wrong kind of people' are often gatekeepers in the professional world. And yet I like dressing up for a night out, it's fun to play the role of some well-to-do figure. Somewhere in the background noise of this cognitive dissonance the kid that loves to run around shirtless and in sandals is twitching.

F**** Computational Linguistics

Goddam natural language processing. Sure, in some specific applications you can do some clever NLP algorithms to save some human-processing time, but the general problem of AI is probably unsolvable. Specifically, Goedel's famous theorem forces us to accept one of two possibilties:

(1) Human Intelligence is nothing more than the shuffling around of symbols and logical rules, devoid of any underlying meaning


(2) Artificial intelligence researches are mostly deluding themselves.

We don't know enough about Human Intelligence to say whether (1) is true. There's a nugget of information in that sentence that should have keyed you in: "We don't know enough about Human Intelligence...". How in the hell does the AI crowd go about simulating something we don't even remotely understand!?

Ego. Many cs whiz-kids grew up thinking they could solve any technical problem in the book. They liked being the people who could solve the problems nobody else could. The natural progression when looking for problems that other people can't solve seems to be AI. Because AI is unsolvable.

It's been almost a century, and the meaning of Goedel's theory is still lost on most academics.

I wanna play goddamit

I can't say this in a better way: I got in to computer science because I never really wanted to grow up.

Scrum is crap

(This was written loosely in response to this post and
this post. You might want to consider reading those first)

For those of you who don't know, I work at a company that's known for making good software (compared to other software in the medical practice management sector, at least). I'm working on an internal startup (read: new product) and as of right now we're using the Scrum "agile" development methodology. The only positive of Scrum that you can't get without Scrum is that it makes anal product managers worry less. This benefit isn't because Scrum makes the software better, it's because anal product managers love structure in everything. Too bad that doesn't work with software development.

Software methodologies, when followed religiously, mostly turn out mediocre software. This isn't because they don't create structure and control on your development process, it's because they do it far too well. Structure and control is good for testing and bug fixing. But it's terrible for design. Forcing structure and control on to design is fundamentally flawed:
- Good developers should be limited as little as possible. You hired them to be creative and free.
- Good design has a long-term view, where our dreams for grand solutions can play. Forcing people to think only 1-2 weeks in advance turns your development shop in to the knowledge-worker equivalent of an assembly-line. Seductive to a manager, but it won't work.

That's the big thing: Scrum turns software development in to an assembly line. Assembly lines are great for mechanical tasks but software is a complex, creative processes. I'm not saying you shouldn't have some formal task-tracking and clear schedules, but you shouldn't turn software development in to a machine shop. Not everything is a nail, so you can't fix everything with a hammer.

Software methodologies are seductive to developers because it appeals to our desire to apply processes to problems. We like making software because, at heart, creating software is specifying a process that deals with a difficult problem. So some of us think we can do that with software development itself.

Repeat after me: Software Development is not Engineering
The girlfriend comes back from over two weeks adventuring around India (and lounging on some Goan beaches). In the meantime I got sick and worked 12 hour days. God it's going to be good to have her back.

Wild men who caught and sang the sun in flight (or: a return to form)

Never forget that life can only be nobly inspired and rightly lived if you take it bravely and gallantly, as a splendid adventure in which you are setting out into an unknown country, to meet many a joy, to find many a comrade, to win and lose many a battle.

-Annie Besant

Too much fear. Fear of fucking up at work, essentially, has driven me away from adventure outside of work. It was a motivator, but also a poison. And I will drink no more of it.

I'm back, bitches.