Justin Chapweske has created a Large File Support Hall of Shame on his weblog. Basically, he lists mainstream software that cannot handle files larger than 2 GB (or in some cases 4 GB). I was surprised to find the Apache web server at the top of the list, considering that it is the Internet’s most popular web-serving software. It will be interesting to see how this page evolves as instances of this problem are discovered and/or fixed.
Category: Tech
The geek is strong is this one
ssh keep-alive tip
Whenever I login remotely to my machine in Canada, the ssh
session dies after a while if I don’t actively type something. This is not the server timing out, but rather the TCP connection hanging. Figuring out a way to keep sending it keystrokes automatically is beyond my ability, but I found out that I could just have it send me data continually, and that works just as well to keep the terminal session alive. The following Bourne Shell loop works:
> while date ; do sleep 10 ; done
This just prints the date and time to my terminal every 10 seconds. At any time, I can interrupt it with a CTRL-C and continue to use the session. So now you know. 😛
I’m making another trans-Pacific flight in two weeks’ time, and I’ll want to have a lot of podcasts to listen to for the long trip. The problem is, the 256-MB SD card in my Palm Tungsten E isn’t large enough to hold the all of the mp3s that I need. So, I decided I could record a bunch of them onto minidisc. My minidisc recorder knows nothing about mp3s. It’s just an audio device. So I have to get my computer to play the mp3 files so that the minidisc recorder can record the resulting audio in real time. I do this while I sleep, so it’s not a problem.
The discs hold 74 minutes of audio in stereo mode, or twice that in mono mode. That’s 2 hours and 30 minutes, approximately. (The newer MDLP minidisc standard can hold 2X and 4X in stereo, but my recorder is too old to do that.)
I’ve already prepared the 2-hour long, four-episode series Hitchhiker’s Guide to the Future by Douglas Adams from the BBC. I’m not sure what will be next in my backlog of podcasts. But I’ve got about 37 episodes from the back catalogue of Evil Genius Chronicles from September to December 2004, that I haven’t listened to yet. In total, they take up 18 hours of playback time. I’ve been listening to these early shows of Dave’s (from August 2004) to track the evolution of podcasting. Where I’m at in the stack, he still hasn’t used the word “podcast”—it hadn’t been invented yet. I love the Evil Genius.
I’ll close by saying that, even though it’s limited to real-time transfer, I continue to love the minidisc format. It rocks!
In his keynote speech at Gnomedex 5.0, podcasting pioneer Adam Curry tells the story of how he and Dave Winer accidentally created podcasting. He uses the analogy of Chocolate and Peanut Butter from the legendary Reese’s Peanut Butter Cups commercial and the analogy of switching places from Tom Hanks’ movie Big (1988). It’s a very entertaining tale of how it all got started, and Curry covers where we are today, the impact that podcasting is having on music producers and music listeners alike, and he gives a call-to-arms regarding things podcasting developers should fix right now.
Wonderfully, Curry makes the announcement that he is going to embrace BitTorrent as a distribution mechanism for his Daily Source Code podcast. This is important because, politically, as a peer-to-peer technology, BitTorrent needs some high-profile examples of legitimate, non-infringing use. Through its peer-to-peer design, BitTorrent is able to reduce the bandwidth costs for the podcast producers and increase the download speed and efficiency for podcast listeners. Curry’s announcement parallels Doug Kaye’s intention to adopt BitTorrent for his new IT Conversations venture.
If you are at all interested in podcasting, or just curious about this new medium (by the people!), I encourage you to go download and listen to Adam Curry’s speech.
Today is July 4, which marks the two-year anniversary of my involvement with Swing Beijing!. And how am I celebrating? By skipping, actually.
For the last two years, Swing has not just been a part of my life, but it has been my life. I found it at a time when I was just emerging from a one-year hermit phase. Thus, it launched me from my social isolation into a world where I was having multiple encounters with people each week. It also broke my one-year isolation from other foreigners here in China. It allowed me to develop the extroverted part of my predominantly introverted nature.
But it seems as though that time has come to a close. No, I’m not closing myself off and re-entering a hermit phase. I’m just moving away from Swing and concentrating my creative energy in other areas. In November last year (2004), I started to discover other bloggers and also the phenomenon of podcasting. I started connecting with people online, and I began contributing to conversations with others through leaving comments and giving feedback through email. And it has been an exciting time for me.
I’m not sure what the ultimate goal of this new direction in my life is, but I can tell that it’s the right direction. And that’s thrilling.
The hosting woes that I experienced a few months ago forced me to find a new hosting solution and ultimately a new blogging tool called WordPress. And the change has been fantastic. It’s a very powerful tool. But I’ve been sitting on the default look of the WordPress 1.5 install since then, so my site looks like too many others out there. I have been looking for a new design for the header at the top of the weblog, and I finally found one last week. So, here is the new look. It’s a star scene that I generated entirely from the mathematical functions found in the GIMP drawing program. I feel it suits my character and the nature of a “Mad Philosopher” quite well. Here is a screenshot of the new look. Here is the old look for comparison.
As always, comments are welcome. Thanks for joining me in the journey thus far.
More GIMP goodness
In my previous post, I was playing with The GIMP, the GNU Image Manipulation Program. This time, I followed a different tutorial on layers, and got this cool result:
By following the tutorial, anyone with no artistic talent (me) can create a similar looking picture. But the point is, I’ve got a better handle on how layers work and how to use them.
I was just playing with The GIMP, the GNU Image Manipulation Program, following this tutorial on using layers. The result isn’t too bad, is it?
Notice how there is a texture of stacked rocks slightly over the horse’s face and also over the background. Not bad for free software. My ultimate goal is to figure out how to take the background header for this blog, and substitute an image into the blue “window”. Stay tuned for this eventual development.
The horse, by the way, lives in my ‘neigh’bourhood, at Mu Dan Yuan in North Beijing. He seems happy, despite the long face.
For the record people: download is pull, upload is push. Similarly, podcatching is pull, podcasting is push.
If you are moving a file to your webserver, that’s an upload. If you are putting a file onto your mp3 player from your desktop computer, that’s an upload too. Someday, when our mp3 players control and initiate the transfer, then it will be a download. But not before. Downloading is pulling something towards you. Uploading is pushing something away from you. Perhaps a poem will help:
Download is pull, upload is push;
If you get it wrong again, I’ll knock you on your tush.
Podcasting is the act of producing and offering a podcast to the public. Podcatching is the act of receiving a podcast. When someone is listening to the radio, we do not say they are broadcasting. It is the radio station that is broadcasting. So in the same way, listening to a podcast is not podcasting. The person producing the podcast is podcasting.
Thank you.
Coral Content Distribution Network
Tonight, I just heard about the Coral Content Distribution Network. Say you have a large file that you want to distribute on the Internet in a load-balanced way, free from succumbing to the Slashdot effect. Put it on your webserver as normal. Then, if you add these 14 characters to the end of the hostname in your file’s URL:
.nyud.net:8090
the Coral Network will only download your file once and then handle the rest of the distribution for you in a peer-to-peer, distributed way.
Is that not freakin’ cool??!! Check it out.
Finally, I’ve found an optimal solution to backup my large mp3 collection (15.6 GB, 3775 songs, 10.25 days total playback time).
The problem: I continually update the mp3 tags, add new mp3 files, and move the directories around, etc., in the original collection. I keep a backup of the collection on a removable USB hard drive, and it takes forever to transfer the files over the USB1.1 link. These two copies of the collection, therefore, get out of sync, and it would be faster just to copy over the changed files rather than the entire collection to the backup device.
The solution:
rsync -av --modify-window=1 --delete /media/AAA-music/ /removable-drive/AAA-music/
rsync
compares the files in the first directory path with those in the second and determines which files need to be updated. Note that the trailing slash for the first directory path is necessary. The switch --delete
removes any files in the second path that are not found in the first. Thus you get an identical copy in the second location. The switch --modify-window=1
gives a 1-second fudge factor in the comparison of the file modification dates, which is necessary because the dates in the VFAT file system in the second path aren’t as precise as in the first. Use the switch -n
for a dry-run of the command to test it out. No files will actually be written or deleted with this switch.
Also, note that since I am using rsync
to synchronize two directory paths on the same machine (as opposed to on two different machines over the network), it doesn’t use its synchronization algorithm to determine changes within a given file. It operates on whole files instead (comparing timestamps and file sizes). This is what I want here, because it would be very slow to read all the files on the USB drive, something I’m intending to avoid.