Monthly Archives: October 2004

How to Make Lava Lamps – Oozing Goo

Lava Lamp Patents!If you would like to wander back to the days of the Keith Partridge and Greg Brady and make a really groovy pad, you can go learn How to Make Lava Lamps at Oozing Goo. They also listed the two patents on the Lava Lamp, namely U.S. Patent 3,570,156 and U.S. Patent 3,387,396. Frankly, the idea of placing alcohol and turpentine in a closed container over a heat source sounds the teensiest bit dangerous to me, so if you end up with no eyebrows, don’t come crying to me. I’m not stupid enough to try it.

Yet.

What’s really amazing about this invention to me is just the idea itself: that somebody would buy a lamp that consists of globs of goo floating around in liquid. How does one even get to the point where one asks this question?

Bonus Coverage: A Method for Animating Viscous Fluids

mod_bt: making things better for seeders

While digging around, I found out about mod_torrent, a project which appears to be moribund, but also mod_bt: making things better for seeders, which appears to be alive. Both are Apache modules which are supposed to be able to transparently server files via bittorrent. I think I might have to give this a try. I’ll let you know when/if it works and is ready for testing.

More ideas for ipodding clients

Well, my experiments with podcasting are revealing a couple of problems with the current podcasting solutions, and I thought I’d write a couple of them down so that others can comment and/or integrate them into their future developments.

Please, please, please, set the user agent fields in your ipodder requests…

Programmers out there, please set the user agent field in your http request, including a version number and a web address where we can learn more about your client. I’ve had a number of clients who seem to access my podcast directory in a particularly unfriendly way, often repeatedly downloading the same file up to a dozen times. I would like to be able to determine if I am doing something wrong or potentially report a bug to your client, but I can’t if I cannot identify which client you were using.

Be a polite client

Please, use ETag and Last-Modified tags. Try to do something sensible with all status codes that are returned from the HTTP server. In particular, make sure that you act appropriately with redirects, accept status codes like 503 (resource unavailable) and read the suggested Retry-After response code, and handle ranges and partial downloads. Take some time to really make the HTTP transactions processing in your client bulletproof.

Scheduling ipodder updates…

Most ipodder clients now have way of scheduling the times when an ipodder polls and downloads new content. I’m going to put forth the bold suggestion that most of these are actually bad: the reason being that certain intervals are too short to be friendly to the remote site’s bandwidth, and they tend to cluster around the top of the hour, and cluster around certain common hours. I’m beginning to see this fairly clearly in my access logs. What this means is that occasionally my http server is completely idle, and other times people are contending for my bandwidth in trying to download my latest/greatest podcast.

A much more polite system would be for the downloading script itself to pick random times to update, and at infrequent intervals. This would help even out the access patterns at the server, and would make for better download speeds at the client side. If your client properly handles the status code 503, you can even have your client back off and retry (perhaps with exponentially decaying frequency ala Ethernet).

Addendum: It is probably counterproductive to do this with BitTorrent. In that world, you actually want lots of people to collide at the same time, so that you can take maximum advantage of the parallelism available. Perhaps your webserver should deny requests for BitTorrent feeds until it reaches some threshold, and schedule them (perhaps using RetryAfter) to all come back at some later time to create a more efficient Torrent Network.

Integrating functionality to the http server

Some of the above requires cooperation from the http server, so why not integrate the functionality directly into an http server. If you pick a high performance but simple server like thttpd or boa, you could (at least in theory) directly implement throttling, access control and perhaps even P2P functionality like BitTorrent into a single server which would be simpler to setup and to manage.

Just some ideas and hints. Feel free to comment.

Memory Walk 2004, Incredibles Wrap Party and General Network Chaos

Me and My Better Half!Wherein your host has an exhausting Saturday filled with a charity walk, general networking problems of great mystery, and ends the day in a tuxedo for The Incredibles wrap party.

Other links of interest from the show:

Apologies…

My website was offline yesterday, I’m trying to debug a network problem. It may experience some additional problems today. I’ll try to settle it down in the next 24 hours or so.

More success…

King Xerxes!I am the King! I am the King!

Well, my little podcasting video was an enormous success, so enormous in fact that I am left scrambling looking for a better site to host my files. As of three o’clock this afternoon, over 58 people had downloaded at least some part of it, which choked a lot of my available bandwidth. Luckily, my brother runs websites with much greater bandwidth requirements, so I suspect I’ll have an easy solution fairly soon. Till then you can take advantage of Gordon Smith’s generous offer and get it from his mirror site. Hope that helps.

Incidentally, the illustration on the left comes from The Project Gutenberg eBook of Nonsense Books, by Edward Lear, which contains many illustrations and bad limericks. Give it a peek.

Bandwidth Monitoring…

I’m getting hammered enough that I thought it might be prudent to install some software to figure out just how hard I am getting hammered. Voila, courtesy of rrdtool and SNMP.


Bandwidth Graph!

I started downloading an ISO image, which is why the green line peaks up so high, but the perilous bit is actually the blue line. In theory, I can get a bit more than 30KBps on the uplink, but significant fractions of that rate make my cable modem slow.

I’ll probably tune up the script I use to monitor this, and may make it a regular feature here on brainwagon.

The first rule of podcasting…

I just finished listening to the latest of Dave Slusher’s Evil Genius Chronicles (love the show Dave!) and thought I’d merely give my comments about a topic that he brought up: the common criticism that the only thing podcasting is talking about is podcasting itself, existing only for the self-gratification and aggrandization of people who make podcasts.

To anyone who would like to lodge this particular criticism, I would merely respond with two questions:

  1. If you are upset with the content of someone’s podcast, why are you bothering to listen to them?
  2. If you think that you know better about what the format and content of a podcast, why aren’t you bothering to create one for the enjoyment of those who are forced to listen to the rest of us?

Podcasting, as exciting as it is to some of us, is essentially still an experiment. There are lots of things that need to be done to streamline the creation, distribution and consumption of podcast feeds. People have good ideas, and are using the bootstrapped version of this medium to distribute these ideas so that the evolution of this idea can proceed rapidly. If you’d like to criticize, perhaps you should do so by example: by writing the software and creating the podcasts that shame the rest of us into doing better, or shine light on areas of darkness that we have not yet explored.

Dave seemed to be a bit angry, I’m just amused. People sometimes ask me why I build telescopes when I could just go buy one. If someone asks you that question, there is likely to be no answer that you can give them. Similarly, if someone thinks that podcasting sucks, well, then tell them to feel free to ignore it. Time will unfold and show us one of two outcomes:

  1. Podcasting emerges as an innovative, important new style of media, and they finally catch the trailing edge of its importance, or
  2. We are all deluded, and it’s just a flash in the pan phenomenon of no significance.

I can take being wrong a whole lot easier than I can take the knowledge that I had the opportunity to participate in some small way to the propagation of a cool new idea and I let it slip by because some people thought it was dumb.

Podcasting Video

During my last audio podcast, I promised that I was going to make a short video showing how I record my audiopodcast sessions, and here is the resulting video, encoded in as a Windows Media file. It runs for 6:42, and is about 10Mbytes in size. (Normally, I would use a more standard format like MPEG2, MPEG4 or DivX, but the Windows Media Encoder that I used encodes to this format by default, and heck, this is for people running Windows…)

This short video shows how I load my bumper music, run Audacity, and how I adjust the various Audio Properties to achieve the enormously high sound quality (not to mention the wry humor and sparkling wit) that have been the trademarks of BrainWagon Radio for nearly three weeks. Enjoy! If you have any questions or suggestions, try dropping me an email. Thanks.

Stair Dismount

Stair DismountWhile watching the amateur video program The Packet Sniffers, I was introduced to Stair Dismount. It is a wacky little “game”, where you basically aim a force at particular portions of a stick figures anatomy to push him down a long flight of stairs, and then get points depending on how hard the various bits of his anatomy contact the stairs. As a person working in CG films, I appreciate the programming and physics involved, while the sick puppy in me just likes to see him bounce off the stairs.

Check it out!