Older blog entries for jml (starting at number 4)

Initial Free Software impressions

Recently, I've started hacking on Twisted. Not in a big way, just nipping at the edges.

I'm struck by the many differences between my experiences on Twisted, and my experiences as a commercial software developer.

I suppose the biggest difference is that of relative competence. I'm used to being the most technically competent person on a project. The guy that sets up cvs and the makefiles and who people consult when they complex or obscure programming questions. In Twisted, I am a very long way away from that. I am unfamiliar with the development process, and I am reasonably new to the language. Also, there are some really, really smart people there.

Not being in charge is harder in some ways. I tend to ask for approval before I do things, and ask for advice a lot more. It also means that when I want to do something, I have to justify why it should be done. Oh, and I become mildly nervous when my finger hovers over the "commit" key.

However, the great thing about this is that I am learning a lot. Especially about design and code-craft. It's a real pleasure.

Distributed development is also pretty interesting. Things have to be expressed in a much clearer fashion, and much more work has to go into communicating ideas. I suppose this is an obvious truth. I find the discipline required unusual, but worth working on.

I've never done product development before, only doing bespoke work. Having to think about API changes and backwards compatibility and so forth isn't something I've had to do.

I still find it hard to get the time to do much productive work on Twisted, as I have only the evenings and the weekends to contribute, and focussing and concentrating after spending all day at work can be hard. Especially when you are an IRC monkey like me.

Working on Twisted has been a great learning experience. I look forward to further hacking.

Twisted

Not able to focus much on the weekend. Improved enterprise reflector API in twisted, but haven't committed, as I haven't written decent unit tests yet.

Speaking of unit tests, I committed my experimental deferred test framework on the weekend. The idea is that it should make asynchronous tests synchronous, and not affect normal tests. Either it abuses the twisted reactor, or several other tests in twisted do.

I'm leaning towards "both" at this stage.

Given that I'm new here, and given the harshness of my last entry, it's probably time that I introduce / excuse myself.

I am jml. I am nowhere near as bitter as I might appear to be.

Trust me.

8 Nov 2002 (updated 8 Nov 2002 at 01:53 UTC) »
Fear change. Change is retreat. Change is an admission of guilt. Change is indecision.

Ride the waterfall. Take your project. Analyse it, design it, implement it, test it, fix it, change it, almost test it again, deliver it. Take the fucking support calls.

Request a fucking change. Chain it in paper and process and professional prose. Ambiguous, contradictory, laborious language larded with jargon. Give a fucking estimate.

Pick a number, any number. Lie your fucking tongue out. Tell 'em it's crap. They don't fucking care and slash just your quote in two.

Slave away at your miserable job, marching away for the mistakes of management. Find out that the customer doesn't want it. Fuck 'em, It's been signed off. Hate those words. Rage at the fucked up fools.

Complain and get told it's the way it's done. You're just a fucking programmer who needs to face certain fucking business realities. Embrace legalism and arguing about whether it's supposed to be a button or a fucking hyperlink.

Blame your teachers. Blame UML. Blame lack of fucking Z-specs. Become an academic. Preach personal software process to apathetic students. Teach Eiffel and Haskell and cower behind your desk every time your hear a knock. Demand change requests before you give a fucking extension.

Fuck off,
jml

HTML. Logic. You gotta keep 'em separated.

I mean, we've been writing programs for the web for years and years. One of the huge lessons we've learnt is keeping things separated, that tightly binding one part of a system to another is a Bad Thing.

Of course, the Rampaging Muppet Hordes don't learn quickly.

So, XML up to my neck (10 levels of indentation!), I carry on.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!