Older blog entries for ajt (starting at number 11)

Random venting.

Apple iBooks are sweet. Nice, small, solid, smooth, fast, little things with excellent battery life. Very happy with that purchase.

Not so happy with my ADSL. Telstra's BigPond sucks. They're incompetent at doing the install (three months before I even get an appointment, which is then cancelled because hey, they didn't mean to make the appointment in the first place, sorry about that, do you remember the name of the guy who called you by any chance? and another month before the actual appointment, then another week or two before the installation), they're incompetent at keeping the underlying routing sensible (trying to ping other local ADSL users gets me one response, then nothing until I leave it for ten minutes, at which point I can get another response, then, again, nothing; and large packets sent to me simply get dropped somewhere upstream from me (and no it is not my MTU or MRU), they still haven't managed to work out how to offer static IP addresses), they're incompetent at support (responding to reports a couple of days late, which happens to be after the problem's been fixed, escalating reports to email addresses that don't exist, managing to let reports just sit around for weeks without any updates, and insisting that I not only use a Windows box, but that I cold boot, and reinstall it before they're willing to even bother checking if the problem might be on their end), and they're even incompetent at billing (their printed invoices list an account code without a leading 0, that their pay by phone services insists must be present). Sprinkle all the above liberally with curses, swear words, and insinuations about animal ancestry and illegitimate parentage, and you have a vague idea how irritating this is. Or get broadband yourself. Bah.

Is it just me, or does anyone else fail to see the relevance of this .NET and mono nonsense? Linux's answer to .NET? Pfft. It may be rude to answer with a question, but a better response would've been "Who cares?". .NET's features are purely market related and non-technical. Sure, there's a bunch of new implementations of old ideas. You can upgrade software off the internet easily! You can write a program and then run it on different computers! You can have your software run remotely rather than locally! There's nothing new here: I do all this every day, right now. What's new is --- well, to be honest, what's new is you can do it on Windows. It's nice to see some, what, twenty year old features might finally make it to the world's premier software platform in the next couple of years. But hey. What's really new is the way all these things are tied straight back into the good ol' Microsoft monopoly. And quite frankly, who cares about that? Personally, I'm not even vaguely interested in what Microsoft wants to do to maintain it's monopoly. If there were some interesting technical features here, sure, it might be worth looking at, or thinking about, but there aren't. Mono is nothing more than Samba, something that might be useful for interoperability, but provides almost no real benefits of its own. Technically, it's a pointless distraction, that doesn't even deserve diary rants like this one.

Jef Raskin's book, The Humane Interface is nifty. A zooming file or window manager (one where you get to move north/south/east/west and zoom in and zoom out, but don't get to "open" things) would be very interesting to play with.

Question of the day: when was the last time you found a problem in some free software, tracked down exactly what caused it, and sent the author a detailed report on why it was a bug and how to reproduce it? When was the last time you complained about some bug, but didn't do the above?

Thought of the day: if we don't charge anything to let people use or modify our software for their own use, is it too much to ask people to go a long way out of their way, just to submit a bug report or a feature request?

How cool! I discovered yesterday that the answer to my previous wishlist already exists in the form of libglade. It's not *quite* the same: the mini-language isn't a simple "%d %s %-5d", it's XML, and as such you don't do it inline, you do it as a separate file, but it means you can write a nice little /etc/passwd displayer in a dozen lines of code (well, along with some GUI clickery). Brilliant :)

One thing I hate about GUI programming is how it immediately takes over everything else you want to do. You have to go into funny other programs to design it, and you have to create all these boring structures and whatnot to handle it, and do loops and do a whole lot of boring cruft for no good reason. Your GUI code takes up pages and pages of complicated, boring, repetitive junk and the actual point of your program gets lost.

Take, for example, a form to display a table of numbers on screen. You either have to let glade take over your project, or you have to work out which widgets you want where, and create them, and place them, and make some hboxes and some vboxes and get them all properly organised, and then eventually get on to your actual code.

Compare that to:
for (i=0;i<n;i++) printf("%5d %5d %s\n", x[i], y[i], name[i]);

Why should I have to write more code than that to make it a GUI? If I just want a simple program that lets me display some numbers, and click a button to say whether that's okay or not, and return 0 or 1 depending, why should I have to write more code to make that pretty and GUIfieid than I'd have to to make it work in a terminal?

It's not fundamentally more complicated: sure, there's a lot of stuff going on in the background: drawing the button, and loading the font, and anti-aliasing it, and whatever else; but there's a lot going on in the background with printf() too: going from the program through the xterminal through X through the videocard, and whatever. So why is my code to handle it so much more complicated?

I wonder if something similar to printf for GUI stuff might be possible; so that in the same way you don't have to create little loops to print just the right number of spaces anymore, you don't have to worry about creating the right hboxes and putting them in the right order. So that rather than having to go to paint a picture of how you're GUI will look, or have to tell it exactly how you want it laid out in words of one syllable or less, you can just wave your hands about a bit and have it actually work.

It's come to my attention that there are people with net connections who aren't fans of Les Horribles Cernettes. You should be.

Ha, yay woo! We got a ranking!

A possible addition to lilo's `Master Collaborationists' criteria:

  • Masters are modest of their achievements and are always ready to believe and acknowledge any number of other people are more competent and accomplished in their areas of endeavour.
It's a good sort of attitude for a collaborationist to have, it puts other people at their ease because they know they you're at least going to give them a hearing, and good will on the part of everyone involved is a primary ingredient for a collaborative project. Maybe it doesn't help so much when it comes to working out who're the best collaborationists, though.

In other news, phase one is complete and working apart from the documentation.

Well, ifupdown should now be able to do network autodetection, at least as soon as I write some scripts that can autodetect stuff. Neato.

As it stands, it's probably also enough to do PCMCIA-esque schemes, but it turns out fitting PPP stuff into the metaphor well is non-trivial. Oh well, phase one is mostly done (tidying up code, changing command line syntax, and fixing the manpages is about all that's left), phase two should be easy, and phase three at least seems doable now.

Meta stuff.

I think there's a fundamental problem with using a /.-style presentation for discussion. Basically, it gives a completely illegitimate bias towards whoever says things first. Everyone reads the article. Most people read the responses made in the first few hours. After that, you'll get read by a few diehards and that's about it --- the only way people are going to even know that there's been a response is to specifically note that the `x replies' was `x-1 replies' yesterday. Ugh.

Advogato's diaries get around this problem: no diary entry is particularly more likely to be read than any other; and when it is more likely, well, that's only because one person is generally more interesting than another. That's not too unfair. Unfortunately, it makes it hard to follow cross diary discussion, and if you're not paying attention, you might miss it.

Something that might be interesting, hypothetically, might be a way of threading individual diary entires that are on similar topics, and a way of promoting a thread of diary entries to an article, after the fact. Or, maybe not.

Oh, and insert random support for what jennv and dan had to say about the ``You're a woman, so you wouldn't understand'' flamewar, or whatever it was trying to be. I mean, yeesh.

Oh, and while I'm on meta stuff, I think GalaxyQuest would've been better grounds for analogy than R and J. I mean, can't you just see it? The heroic BSD software engineer falling for a cute Linux chick who then grows purple tentacles, while another BSDer in the background says "Oh, that's just not right." in a worried tone as they embrace. Doesn't it just fit?

I suppose every now and then I should post a diary entry rather than just lurking and reading everyone else's.

So, what's been happening? March 8 until the 22nd we were of in LA and Orlando preparing and competing in the ACM World Finals. Our team did pretty poorly, really: we got stumped by the "How many animals did Moses take on the Arc?"-esque trickiness of the questions (at our regionals, they tend to be fairly obvious with the questions; at the finals, they're a lot more subtle), and got somewhat stumped on the fabled question-with-the-wrong-test-data. Ah well, it was great overall. IBM were great sponsors. And (a) at least Melbourne did well enough to not leave the South Pacific region cringing in shame, and (b) at least we beat New Zealand. Ha!

After that, anything else is pretty much hardly worth mentioning by comparison. Ummm, there was an interesting thread on debian-devel about signing Packages.gz files versus signing actual .debs, that should hopefully help make Debian be a little more secure. Not with a whimper, but a bang, so to speak. And I think I've come up with an elegant way of replacing:

  • PPP providor scripts
  • PCMCIA schemes (as related to networking, anyway)
  • Network autodetection (via hwaddr / detection of who else is on the network segment)

...in ifupdown. So a new version should appear somewhere soonish. Oh, and Advogato's been invaded by Debianers too. See what happens when you don't keep your mouth shut on IRC?

Still on the whole trust metric thing, I wonder if another interesting application could be for network games like QuakeWorld.

For those who haven't been following, in the ideal case, network servers would never tell a client anything they couldn't be trusted to know. But for efficiency, they'll *actually* tell you lots of stuff, like where the other players are, when bullets are coming from behind you and whatever else, so that if you turn around, there's no lag while the client fills in the blanks: it already just knows. This means people with no skills at playing the game can write clever clients that let them dodge bullets, and see behind them and generally just plain cheat. Which isn't good.

There are at least two possible solutions. The usual solution is obfustication. Release binary only clients, keep the servers to yourself, make the on-the-wire protocol compressed and encrypted, and generally strange, and just generally hope no one can be bothered working out how to break the system. The nice theoretical one is as described above: just treat the client as completely untrustworthy, and only tell it things the human that's using it is allowed to know.

I wonder, though, if the trust metric here could be useful. If instead of certifying free-software gurus, you certify something more akin to `honesty' or so.

Once you've got a bunch of people certified, rather than trying to certify binaries, you can establish trust pretty easily. After all, no person has to give their secret identification stuff to anyone else (thanks to the wonders of digital signatures and public key cryptography) unlike binaries whose "secret" identification stuff has to be available to everyone who has a copy of that binary.

Possibly linear growth (size of attack versus number of clueless certifiers) is still too troublesome though. Some method of negative feedback may be necessary here, which in turn would probably require more granularity than just `Honest' and `Not honest'. Still, it could be a novel solution to a fairly tricky issue as far as free games go.

2 older entries...

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!