April 23rd, 2008

  • evan

dvcs and offline

I got a couple of comments on that previous post that betray a bit of a misunderstanding about how collaborative projects work in the presence of distributed version control.

Two possibilities: you're offline or online.

For circumstances when you really are offline (and again, I note that I really am without internet access for a surprising fraction of my hacking time) there is fundamentally no way a bug tracker that requires me to be online can work. For many, the answer to this problem is "wait until you're online" or "take notes in a text file", which is well and good if you're the sort to accept a sub-par situation as unsolvable. (I repeat from before: any time you're resorting to manually shuffling source code, your source control system is failing you*. You could make the same claim about any other tool.) So yes, bug tracking is importantly a communication tool, but if the situation is that I'm physically unable to communicate you can't cite non-communication as a negative of any proposed alternative.

Otherwise, even when you have internet access, no technology solves the communication problem if people aren't willing to communicate. "Private repositories" are a problem, but they're a problem no different from contributors who won't email or contributors who sit on a patch.

When I'm online collaborating with someone else, the workflows between an "offline" and "online" system are equivalent except for running the sync step after some operations. So I thought anon-commenter Daniel's point that email also has this offline-online hybrid behavior (where Outlook has the huge "Send / Receive" button on the toolbar) was right on -- I'd much rather use an offline email client that could sync than one that forced me to be online to use it**. And as he points out, email would be terrible for real-time communication if people only synced once every few days -- that's why you don't do that, with email or dvcs, if you intend to participate in a project. (Though in circumstances where I want to avoid email or hack on some code that doesn't yet compile, that workflow remains available.)

* By this metric the tools I use continue to fail me occasionally; they just fail less than the tools I used before.
** I remain hopeful such a technology will one day be invented. I gave up on mutt when I realized it can't scale beyond a few thousand messages and didn't provide any useful search. Maybe sup will get there.
  • evan

your animation is too slow

Animation in software has a real use: by showing intermediate states between two end states you let the user instinctually see how they're related. But as soon as your animation takes more than around 100ms it's gratuitous. Movement should be so fast I don't notice unless I'm looking at it, because otherwise it's happening so slow I'm waiting for it. Unfortunately, the difficulty of implementing animation tends to make programmers too proud of it (I personally have fallen for this) and you end up with these terrible 500ms fades so common in Flash or Javascript-heavy apps.

Here's a personal request from me to you: knock that shit off. It looks amateurish.