Category Archives: Uncategorized

Git and SVN

I’ve been hearing about Git for several years now. As far as I could tell from the hype, it solved a number of problems that I didn’t have, and introduced a very odd view of community.

I find the religious fervor surrounding Git and Bzr to be very unconvincing. In fact, the more rabid the supporters are, the more they push me away from using it, because the arguments surround this passion, rather than being based in solid technical reasons. “It’s better because it’s better, and because svn is stupid” seems to be the summary of most of what I hear.

So I decided, finally, to actually give it a try so that I could have an opinion based on fact rather than on hype.

Offline commits are clearly a cool thing, for the very rare occasion when I am working on code and don’t have a network connection. But they also encourage people to work at great lengths in a vacuum, without community feedback, and then commit a great wodge of code all at once, resulting in unreviewed commits. This is clearly (to me, anyways) a Bad Thing.

Indeed, most of the features that are hyped as The Reason To Use Git fall into two categories for me. 1) Things that solve a problem I don’t have. 2) Things that seem clearly a bad idea.

1) Cheap branches. Subversion has cheap branches. When pushed, the Git folks say, yeah, you’re right, but CVS doesn’t. … CVS. Well, ok.

2) Fork and hack without all that overhead of connecting with the community. This seems short sighted. Or perhaps it was just very poorly stated. Having a situation where people can hack on the code without participating in the community seems to be clearly a bad idea. Open Source without community is not something that appeals to me, at all.

3) No central repository. Well, in addition to not being true (every project that I’ve heard of does in fact have one master repository that everyone syncs to) this seems to be a bad thing. It seems to promote disunity. And it solves a problem that I don’t feel I have. Major architecture changes can happen in branches in svn. Minor features can happen in branches. Fiddling about can happen in branches. All of these should be working towards a product. If a major change becomes the community-accepted product, then folks switch to that branch as the new trunk. This is all possible, and done every day, with svn. But the everybody-is-trunk thing that gets talked about doesn’t seem to actually happen in the real world.

4) Offline commits. Yes. This is a cool idea, and I look forward to having this feature in the next version of svn. However, it’s not something that compels me to switch to git.

5) Every command does one tiny thing, by design. This makes me CRAZY. Committing a change to the repository – the one up on the network, not my local working copy – takes three commands: git add, git commit, git push. Yes, I’m aware that I’m using the terms differently than Git does. That bugs me, too. Redefining vocabulary as a means to set yourself apart from the herd is just infuriating. Yes, I’m aware that the first two commands can be combined (git commit -a) but I’ve also received very contradictory advice as to whether I should do this, ranging from “Always do this, it’s the only way” to “Never, ever do this. It’s dangerous.”

For the record, yes, I have used Git. In fact, I started a new project using Git, mostly because I want/need to learn about Git, but also because I was starting to get sold on the hype. So I’m not operating entirely in ignorance. I expect I’ll get more familiar with it, but so far it’s been an unpleasant experience.

TekX

I attended TekX in Chicago last week.

I’ve been attending tek for (I think) four years now, and it’s consistently the best conference I do all year. It’s pretty much the only conference where I attend talks and feel like I’ve gotten something out of them more than merely academic interest. And this year, the Wednesday keynote (Josh Holmes) was the best keynote talk I’ve attended in years. He spoke about the value of simplicity. Specifically, the value of understanding what the customer needs (possibly as distinct from what they ask for?) and giving them that thing they’ve asked for, rather than a framework for generating frameworks for solving a larger class of problems that might some day solve the one they have.

I attended Derick’s talk about the DateTime stuff that he’s been working on. Although I was aware of some of this stuff from his talk two years ago, it was unfinished at that point, and so I haven’t actually played with any of it. I expect to have uses for it, starting today.

Having worked for a while on the DateTime stuff for Perl, I know how hard timezones are, how hard recurring events are, and various other things associated with calendars. Derick has done amazing work.

I attended a talk by @lornajane about Subversion and Git. This was the first non-religious comparison that I’ve seen. I’m so very turned off by the religious fervor that seems to always go along with discussion of revision control. Lorna’s discussion of comparative features, benefits, and so on, was very refreshing, and I finally feel that I have some idea what the real differences and similarities are. This talk was followed by a talk about Git which was more religion and less information, but still gave me some good solid information. I’ve been using Git now for 2 or 3 weeks, and so far I hate it. It appears to solve problems that I don’t have, and make simple things into 3 or 4 steps rather than 1. Offline commits are clearly a really cool thing. Nothing else that Git offers seems to be terribly useful. The rhetoric around Subversion being old and crufty, while Git is new and shiny, just doesn’t seem to match the reality.

I really should write a separate post about Git. I’m getting sidetracked.

Anyways, TekX was brilliant, and I highly recommend that you put it on your schedule for next year if you do anything in the PHP world.

Fun at the ASF

After wading through another 100+ message thread on the Apache Software Foundation members list, I wanted to make several observations.

I’m still having an awful lot of fun working on the Apache HTTP Server project. The ability to contribute to a project that is used by tens of millions of websites is pretty cool, and is my small way of making the world a better place.

There are many valid philosophies of Open Source (or, if you prefer, Free Software) development. The Apache Way isn’t for every project. But it happens to be what makes sense to me. I think it builds strong communities that are based on code and not on ego, and that people come away from them with a well-developed ability to mentor other developers who are just getting started in Open Source, while many models that focus on one individual lead to folks who expect that hand-holding in the next project, too.

Some of the coolest people I know, I met through the ASF. Some of the other coolest people I know I met through PHP and Perl, but the ones that I consider friends are almost all in the ASF. And, in the end, life is more about relationship than changed lines of code.

There are some very cool projects within the ASF that a lot of people just don’t know about that. While my effort to rectify this via FeatherCast has been … ahem … less than successful, I still get to talk to some amazing people. And, yes, I have two interviews that I need to finish editing and push out. Sorry for the slowness. We’re doing some innovative things at Apache, and it continues to be frustrating that all people think about is the web server when they hear Apache.

Write a Better FM – The book

Have you ever noticed that the more likely a given Open Source project’s community is to tell you to RTFM, the less the chance is that they have a FM that’s worth R’ing? I don’t think that this is a coincidence.

I wrote a while back about the need to write a better FM. This is something I’ve been thinking about for at least ten years, and probably more like fifteen, and I thought maybe it was time to get some of my thoughts down for other people to respond to.

I took a stab at writing something earlier this year, in conjunction with a group of people who seemed to have a similar vision. It was a website where folks were, supposedly, writing a book around the topic of writing Open Source documentation. Ironically, the project got abandoned and folks moved away, and now the website is a spam trap. That’s unfortunately how it often is with documentation projects.

However, I’ve kept noodling at the idea, and have even started writing something. I’ve also talked with several people, involved with docs efforts at Perl, PHP, and Apache, who are interested in participating and writing something.

So, any day now (probably after I get done with TekX) I’ll be putting my initial work in revision control (probably GitHub, for reasons I’ll discuss in another post, later) and soliciting contributions. I intend to be a benevolent dictator, at least until there’s a good solid outline. (Want to know why? Well, read the book and find out!)

If you’re interested in participating in this effort, please let me know. The prerequisite is that you’re actively involved in some Open Source project, and have participated in some way in the documentation of that project.

Update: Better FM Website

Cantenna

I spent about an hour, and about $15 today building a Pringles can antenna, in the hopes of being able to work down at the creek during this lovely warm weather.

It didn’t help at all. Presumably that’s because of geography, rather than due to incompetence, but I don’t really know. The creek is situated such that there’s a hill between it and the antenna, so I’m going to blame that. But I really don’t know how to test whether it worked at all.

However, when I reassembled my wireless router with the original antennas, it worked better. Not sure what to make of that, but maybe I’ll be working down at the creek next week after all.

Safe

Safe

April 29, 2010

I wonder if Dad was ever as frightened
driving along the escarpment at night
as I am now, the road almost invisible,
far more treacherous than the roller coasters
we spent the day riding.

We slept quietly in the back
of a green Kombie, inches from the edge
of the Great Rift, avoiding car-swallowing
potholes and juggernaut lorries
barreling by with no headlights.

And my boy sleeps in the back
as the rain sweeps the lines
from the road, and the wind snatches
the Wrangler, tries to fling it
into the oncoming traffic.

A father’s job is
to scream like a girl on the Drop Tower,
but endure the monsoon
with quiet dignity.

Bassinet – before and after

I’ve been meaning to post these photos.

The girl gave us a bassinet that she got at a garage sale. It looked like this:

kuddleKare.jpg

Nice, but very sterile.

My artistic wife broke out the fabric dyes, and now it looks like this:

There, isn’t that better?

Descant

Very belated, for the Weekend Wordsmith

Descant
April 8, 2010

I imagined that one day,
when I was one of the big kids,
I would get to sing the descant
in the Christmas service.

The titchies would sing the easy bits,
then the elevated Older Children
would burst out with the canticle of the angels,
towering above our mortal efforts.

And then, we were far away from home,
where nobody sang descants,
there weren’t any student Christmas services,
and Africa was an epithet
used to deride our lack of culture,
our ignorance of the things that
really mattered.

And all these years later,
at the last lingering notes
of every Christmas melody or Easter hymn,
my heart lifts on the wings of an ibis,
cries out the eucalyptus-scented descant
and longs to return home.

The Sketch at Victoria

The Sketch at Victoria
March 25, 2010

They stubbornly refuse to sit still,
and so this man’s body,
that man’s legs, and another’s drink
combine to form an awkward whole.

The drink, easiest, goes first.

The face, so difficult, left ‘til last,
redone so many times that
I don’t remember whose it is.