April 8th, 2006


Experiments in dropping frozen meat

Major's frienddog Shamus from next door is over. They've been playing hard for hours and are just starting to wind down.

I was upstairs getting something to drink and saw some cold groundbeef in the fridge. I got a bunch, ripped it into little dime-sized balls and started it dropping from the upstairs deck, two floors above them, down to the bottom deck.

At first they'd just hear/feel the thump and look around confused. Then they'd sniff a bit, wander around, and one of them would find it.

After 4 or so, they figured it out... thump meant meat, and they'd localize and eat it almost as soon as it hit ground. Incredibly fast reactions.

Then they started competing and it almost got a little nasty, so I decided to drop two at once, aiming one per dog. I yelled both their names, they looked up, I adjusted, then dropped....

The two pieces of meat hit the ground at the same time, one in front of each dog, and both dogs heard the dual-thump, flinched to jump, but neither moved: they were both confused by the double thump and couldn't localize it. Each had a piece of meat right in front of them, but it took them both 5 long seconds before they thought to resort to their old slow sniffing technique... then in parallel they both sniffed the same ways, and both ate their meat right at the same time.

Silly dogs.

DJabberd Status: bug fixes, and roster flesh-out

Lest you thought I'd forgotten about it, I'm back to hacking on DJabberd. But without Artur today.

-- SSL fixed. I'd broken it during earlier refactoring.
-- iChat support fixed. it sends whitespace where other clients don't, and I was using the wrong method which wasn't skipping whitespace.
-- Roster Add(/Update)/Delete -- but only the place where I call the hooks. haven't updated the SQLite plugin to respond yet. also haven't done global roster pushes yet, which requires a hook phase for inter-node communication. should write a reference implementation of that using Spread.

Actually, that's not much. I'd hoped to finish more, but kept getting distracted. There was also some re-reading of the specs and code to catch back up.

-- finish roster hooks/APIs to the point where I can finish presence, which is largely untouched, but some of which kinda works already because we route messages around between users, even if we can't understand their magic.
-- get it all documented
-- make sure it works on a single node easily
-- run it on my own server, start testing it
-- use it in the office, with LDAP auth and roster support. (all of the company is on roster by default)
-- finish SASL
-- work more on LJ-specific internode communication and offline storage (not using SQLite! :))
-- ESN delivery to Jabber.
-- Jabber/LJ integration.
-- World Domination.

LazyWeb: audio distribution

Dear Lazyweb,

Any problems splitting RCA SPDIF into two identical receivers? Sync issues?

I'm thinking of buying a couple relatively cheap amps instead of a massive speaker distribution system.

Okay, backing up: I want to get audio from a little MiniITX machine (with SPDIF out) out to like 20 speakers, all of whose speaker wire comes to one place.

The advantage to multiple cheap amps is I get zone control for free: manual on/off. Or automatic with remote-managed power strip.

If I get something big/fancy, I'd like serial port/etc control of muting speakers.

I don't even know what terms to Google for, and all my phone calls to installers aren't getting returned. Most frustrating.

Lovingly always,