This feed contains pages in the “networking” category.

A wee rant about presence

Presence, that is, in the context of instant messaging applications, i.e. “available”, “away”, “busy”, etc.

If my status is set to “busy”, I don’t want windows popping up every twenty seconds with your inane messages. Likewise, if I am marked as “away”, then getting upset because I won’t reply probably won’t help your situation at all.

On a barely-related note—gajim, why must you store your logs in a binary database? Bad computer, no biscuit. That is all.

Avahi Rocks

Last night I started playing around with Avahi (Bonjour for you Mac users, “WTF?” for Windows users who haven’t caught up with the 21st-century yet). It’s pretty cool; since ?Joplin died I can’t rely on having a DNS server that’ll point me at the other machines on the network (and it was a pain to update anyway), so all my machines have libnss-mdns installed. Now, when I look for ?gilmour.local it’ll tell me what its current IP address is itself, assuming it’s turned on.

In a perfect world, I’d be able to disable DHCP on Dan’s poor overworked router and rely on link-local addresses for everything inside the house, and the router would advertise itself as such via DNS-SD and be used automatically for non-link-local addresses - i.e., t’internet. Unfortunately, that doesn’t appear to be possible: not only would it require the hardware to support it to do it with a commodity router, but the software doesn’t appear to exist to do it with a custom-built router.

Avahi presence notifications are pretty cool: ?gilmour showing up in my Gajim list automatically is just cool in principle, and it would be even cooler on a large network with various people using iChat and similar systems.

Another idea I saw when researching last night: apt-zeroconf, where Avahi-enabled Debian boxen on a network would share their downloaded .deb packages to save on time and bandwidth.

Gobby, a collaborative editor similar to SubEthaEdit, uses Avahi to find people to collaborate with. Actually, I assume this is what SubEthaEdit does too. TermiSoc types, would this be useful for the Code-A-Thon?

Some other possibilities:

  • The presence-notifications could easily be extended, for example in a large organisation, to form a decentralised addressbook; all anyone would have to do to update it would be to modify their details in the local addressbook or whatever.
  • Same with calendering. Choose which events to publish, people elsewhere on the network can add their own notes to it (which in turn could be ppublic or private), choose to be notified in time for it, etc.
  • Grid computing is probably a fairly obvious one, though on the other hand you’ve generally got a specific set of machines for that, not just a random subset of all machines on a network. And DNS-SD is no good over the public internet.
  • Filesharing. I think this has been done, for example with gnome-user-share. But it could be extended, I’m sure. NFS is a registered protocol type for DNS-SD; combining it with an automounter would be cool. And in no way similar to what NETBIOS was doing years ago. Not at all.
  • NTP is also registered; that’s something you can’t really decentralise much, but being able to avoid setting the server-address on every client would be handy.
  • Seahorse, the Gnome GPG tool thingy, shares public keys using Avahi.

I’ve ranted about decentralisation before, though never blogged about it. Suffice to say that I think having one central server, or even a small (or large) group of servers, is an inherently bad idea for almost any application. There are probably dozens of ways that mDNS/DNS-SD/Zeroconf can improve that situation, and I may blog more about it in the future (though I still hate that word).

Munin: why's it backwards?

Munin is a pretty nice monitoring application: you install the server software on a machine, then client software on various machines, then you get nice graphs and whatnot of various statistics.

The problem is the architecture.

A daemon runs on the clients. It listens on a port. Periodically, the server connects to all the clients in turn and asks for their statistics.

Huh? Since when did servers go round connecting to clients? What about firewalls? What about dynamic IP addresses, or just laptops that move around a bit?

Crazy…

Decentralised Network Filesystem

Something I’ve though would be cool/useful for a while now is a decentralised network filesystem. Basically, I want an easy way of having several hosts on a network export a filesystem, and for all of them to then mount all of the filesystems in the same hierarchy. An example:

(Hostname in parentheses)

/net (local to all hosts)
/net/music (daltrey)
/net/video (joplin)
/net/video/music_videos (daltrey)

This is perfectly possible, of course. It’s just a pain, even with only a few hosts. With a network, all with diskspace to spare, it would become nightmarish. What if every PC on the UoP network could export 20GB of disc space over NFS, and then everything got mounted again elsewhere (say, exporting as /export, but mounting everything somewhere under /net). Software, home directories, etc. could be spread over several machines, which wouldn’t need the disc space if they were mounting everything over the network anyway, and there’d be no single point of failure.

There are disadvantages, obviously - there’d probably have to be a NIS-style central server or servers, handing out lists of mountpoints. And if one desktop went down, someone elsewhere in the campus loses access to their homedir, or some software, or something.

Anyone think I’m not completely insane?