MacOS X BlogTV: How To Do It

Update June 2014: Quicktime Streaming Server is deprecated. The functions I described no longer work on this server. If anyone is interested in the historical operations of this software, please contact me.

Setting up your own personal web streaming service to support any standard blog is simple, with off-the-shelf components available for MacOS X. You can post links in your blog pages to streams that serve from your desktop streaming server, no files are stored on the upstream server. You must be willing to put your desktop machine up and online 24/7 with a broadband connection (a cable modem is adequate) as a streaming server. I am currently serving these clips on an ancient Powermac G3/400 with a cable modem. Here’s a summary of :
1. Put your MacOS X Apache server up on the net with an IP name. Use dyndns.org to set this up if you are a cable modem user or don’t have a real hostname that resolves in DNS. QTSS requires you to have a real IP name, and to have the system and Apache configs correctly set to the hostname.
2. Install Quicktime Streaming Server 4, it’s a free download. Install the package, go to your Applications folder and click on the QTSSAdminURL icon, the admin page will appear in your browser. Install the required passwords, and your streaming server is running! Click on the little circle with the question mark, the link will explain all about QTSS
3. Now we need some content. You can use any DV stream you can capture on a Mac. A camcorder with a Firewire port can import video using products like iMovie. I want to import from a variety of NTSC and SVideo sources that don’t have Firewire like my DirecTV, TiVo and VCR, so I used the Canopus ADVC-1000 to capture video with Final Cut Pro. Note that the ADVC-1000, like many converters, will not work with Macrovision-protected tapes and DVDs. Copy protection rears its ugly head yet again! There are easy ways around this problem, but it would be illegal under the DMCA to say what they are. Ask your local video geek.
4. Now you need to compress the DV stream into Quicktime, and prepare different versions of the files for streaming at multiple speeds. You could do this entirely with Quicktime Pro, but that process is relatively difficult. I used Cleaner 5.1.1, which has a wizard for creating and compressing Quicktime files for streaming. Even using the Cleaner wizard, you will need to tweak the settings for each speed setting, to pick a compression and frame rate appropriate to each type of video you present. Go in and explore, you can set various Quicktime features like autoplay, play in browser/external player, etc. Be sure to set Cleaner’s options to specify the IP name of your streaming server when you create the files. This will be important when the blog server remotely calls your server for the files.
Cleaner will produce two folders with compressed files. One contains a master movie and a text file with the HTML to access the stream, and another folder contains the compressed Quicktime files. One folder is labeled “Upload to HTTP server” and those go wherever you can serve web pages from, either in your root website or your ~/username/Sites folder. Copy the contents of the folder labeled “Upload to Streaming Server” to /Library/QuicktimeStreaming/Movies.
5. Now you are ready to test the stream! Remember that clip of HTML that Cleaner made and you put in your web server folder? Call it in a web browser and see if it runs from your local Apache server. Access it with your full IP name, like <http://hostname.dyndns.org/clipname.html> (I’m assuming you put the file in your root webserver, /Library/Webserver/Documents/) and see if it streams. If all goes well, when you click on the Play button, you will see “Negotiating… Buffering…” and you will know the file is being served as a stream, and is now accessible to the world.
6. So now that you can stream and have a working sample of HTML with proper tags, with a little editing we can use that same HTML in any other web page. Here’s the chunk of HTML that will stream the file “gumby.mov” just like in my demonstration (I’ve cut it into shorter lines for readability)

<OBJECT CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"

WIDTH="320" HEIGHT="256"

CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">

<PARAM NAME="src" VALUE="gumby_MSTR.mov">

<PARAM NAME="autoplay" VALUE="false">

<PARAM NAME="controller" VALUE="true">

<PARAM NAME="loop" VALUE="false">

<EMBED SRC="gumby_MSTR.mov" WIDTH=320 HEIGHT=256

AUTOPLAY=false CONTROLLER=true LOOP=false

PLUGINSPAGE="http://www.apple.com/quicktime/">
</EMBED>
</OBJECT>

To make this file work on the blog server, you must change the master movie pathnames from relative to absolute, and point to your home server (I’ve marked the pathnames in red to make them easier to locate). In this example, I changed those instances of “gumby_MSTR.mov” to the full URL, like “http://hostname.dyndns.org/gumby_MSTR.mov” or whatever is appropriate for the originating server. I just take the HTML file generated by Cleaner and open it in BBEdit to edit the paths, or I could paste it into a new page in a web editor like GoLive 6 (that’s what I use). Wherever I drop this chunk of HTML into my blog entry or web page source, the Quicktime streaming “badge” will appear. Now I can copy and paste that HTML directly into a new story window on my blog’s html entry page.

Quicktime Streaming Server 4 and Movable Type: BlogTV

Update June 2014: Quicktime Streaming Server is deprecated. The functions I described no longer work on this server. If anyone is interested in the historical operations of this software, please contact me.

This is a quick test of serving Quicktime from my local desktop machine through my MovableType blog. I can capture and compress Quicktime video clips of anything I record on my TiVo, VCR, or camcorder, and stream them from my desktop computer, the same system where my Movable Type blog runs. Frame rates and quality are optimized for different modem speeds, there are 3 levels, 56k, ISDN and T1, and you will automatically be served the stream matched to your speed. Click the Play button for a short message from Prof. Enid Gumby.

This should work OK on my cable modem as long as it doesn’t get too many hits, which is likely since nobody reads this blog anyway. The public is invited to view this experiment and test the load on my QTSS system, but if suddenly this gets to be a bandwidth hog, I’ll have to turn it off.
Update: A high-traffic blog linked to this experiment, I’ve gotten a few dozen hits in the last hour and my server barely feels the load. But then, this is only a 5 second video clip. I’ve received a few inquiries about how to do this. It’s easy with MacOS X, Quicktime Streaming Server is a free download and very easy to use. I’ll write up the tech details and post them in another story, it will take me a bit of time to put it together. In the meantime, I would appreciate feedback about how well the streams, image quality, data rates, etc. worked for you.

King of the Geeks

One of the perils of the tech industry is a little game of one-upsmanship that I call “King of the Geeks.” Usually it’s a friendly game, but sometimes it is a stupid battle of egos. I had an amusing example of it today while I was talking to a tech on the phone. I mentioned an ancient product, and made an offhand remark that it was from the early 80s and probably before his time. He responded, “oh I remember that product, I started programming back in the days of the VIC-20.”
I said, “oh, two can play that game, I like this game, I usually win.” I told him that my computer store sold VIC-20s, but I started long before that. I trumped his VIC-20 with my experience in IBM punch card sorters. He responded with his experience programming patchboard computers. Now that is old tech, the stuff they were replacing as obsolete when I started computing. I still could have won the game, but I did not play my ace-in-the-hole, the card that always beats everyone, the Digicomp 1.

digicomp1

The Digicomp 1 was my first computer, I bought one by mail order from Edmund Scientific when I was just a little kid, this must have been around 1963. So you have to go back a long LONG ways to beat me when you’re playing King of the Geeks..
One reason I find this game so distasteful is that I used to encounter it almost daily when I worked as a salesman at ComputerLand in Los Angeles. Some customers would take pleasure in tripping up the salesmen and trying to prove they were smarter and knew more about computers than the sales rep. I found an article in a sales magazine that described this game, and said that the winning sales strategy is to let the geek win the game, it specifically said to use the phrase, “I defer to your obvious technical expertise in this area.” The strategy is twofold. If you’re trying to sell a computer, you want to seem knowledgeable, but if you win the game, you’ll just offend the customer and he won’t buy anything. If you cave in and admit defeat, the geek gets what he wants: ego strokes. But that’s the second part of the strategy, by caving in so easily, the geek has a hollow victory, which he’ll probably not catch on to immediately. It will bug him later.
So that is why I try to not even play this game. Sometimes I get swept up in it, then I always let the other geek win. But I make it a tough victory for them, so they get their ego strokes from defeating a worthy opponent.

No More Spam

I finally got sick of 50 to 100 spams a day, so I set up email filtering with Procmail. If you can set up Procmail, you are a true Unix geek. I found a simple recipe for Fetchmail/Procmail on MacOS X, all the required programs are already installed, you merely need to configure them. I set up fetchmail to get mail from my ISP every 5 minutes, them Procmail filters the mail, and delivers it to MacOS X Mail.app. Any incoming spam has to run a gantlet of hundreds of filters, I’m using filtration rules from Spambouncer. I set it to reject all mail in languages I don’t understand, like Chinese, Korean, Russian, Turkish, etc. I don’t know why I get dozens of spams in Korean each week, but I do. And now it’s all blocked. Goodbye spam. I set up a little monitor, it pops up to announce each time a spam is killed. It is almost more fun watching the spam die than getting real email.

Brute Force

The Hacker’s Dictionary defines Brute Force:

"Describes a primitive programming style, one in which the programmer relies on the computer’s processing power instead of using his or her own intelligence to simplify the problem, often ignoring problems of scale and applying naive methods suited to small problems directly to large ones. The term can also be used in reference to programming style: brute-force programs are written in a heavyhanded, tedious way, full of repetition and devoid of any elegance or useful abstraction."

I first heard this term in basic Computer Science courses, the classic example is a "brute force search" of a database. Instead of using a clever index system, the brute force method examines every single record and checks for a match, one by one. The method relies on the brute force of manually processing every single record. It is time consuming, but sometimes necessary when the indexes contain errors.
I often use this term to refer to a brute force search of my paper files. Right now I’m hunting for some financial documents from 1995, I can’t find them anywhere so I’ve been doing a brute force search of every single paper in my files, and I’ve got about boxes and boxes full of papers. I took 5 banker’s boxes of records from the last 10 years, handled every single sheet of paper, tossed out all the chaff, and sorted the rest into file folders. I’ve sorted and sorted until my fingers are bloody from paper cuts. And of course, the records I’m looking for have not yet appeared. Now I will have to extend the search even further, and open more old boxes. Darn it, where did 1995 go to?


Update March 15, 2005: Quite by accident, I located the records I was seeking. So that means I searched for almost exactly 3 years for these stupid papers.

Quicksilver Ecstasy

I’m setting up a new "Quicksilver" Powermac for a friend of mine, the new top-end dual 1Ghz model. It is blindingly fast. It reminds of something my sister said when she upgraded from a Performa to an iMac, "it’s like having a whole room full of computers at your fingertips!"
The best feature of this is the DVD recorder. I don’t have much use for video, but I sure do like being able to back up 4.4Gb of data on a single disc. I put my huge 9Gb mp3 collection on two DVDs, now I don’t have to waste all that hard disk space, I can just pop in the DVD, listen to a few tunes, or just copy a few tunes to my local hard drive. I finally have a good backup of my 2Gb Virtual PC disk images that I could never back up to CDRs. Now Dantz just needs to ship Retrospect so we can back up a live unix system. I think the new iMac will be a huge success once people discover the data storage abilities of the SuperDrive.

A Disorienting Experience

I recently had a very disorienting experience while watching TV commercials. A computer graphic effect showed the camera’s viewpoint zooming in from a position orbiting earth, down to a viewpoint of a few people on the ground, then zoomed back again to high orbit. It is a dramatic effect, and very popular because more than one commercial uses this effect. And that was the disorienting thing. I saw two different commercials using this same effect, back to back. The first commercial runs through its camera motion, ending with a view of a starry sky. And then the second commercial starts with a view of a starry sky, and zooms through almost the same motion again. I felt like I orbited earth twice in 60 seconds.
I first read about this CG design from Ted Nelson’s Computer Lib book, he called it a hypermap. He only envisioned a 1-dimensional zoom, but later innovators created schemes that would allow you to zoom in on any spot on earth at any level of resolution, add links to other datasets (i.e. rainfall) and map them over a globe generated from realtime satellite imagery. Much of this technology is adapted from military satellite photoreconnaisance technologies, not just mapping but all computer graphics technology generally. A group of artists and scientists trying to hypermap the globe, but the most powerful expression of this technology is still military.

New Features

I told someone that I felt like I had made some real accomplishments this week, I made two suggestions for new features in a couple of big products, and both were adopted as new features. She said, “oh, so did you get paid anything for this?” Well of course I didn’t.

Vintage Sol-20 Restoration

After years of searching, I have found a source for some rare parts to restore my rare Sol-20 microcomputer. It is in perfect operating condition except for the keyboard. The Sol keyboard used foam pad contacts, the pads decompose after about 20 years and the keyboard stops working. A fellow Sol owner located some spare pads for me, for only $5 yay!

sol20

I built my Sol-20 from a kit in 1975, it took me weeks to assemble it, it was the first computer I owned. I couldn’t afford the fancy (and expensive) Helios 8″ disk drives or 3rd party drives like the 5″ Northstar system. But I could afford a few gadgets, like a 300baud acoustic coupler and a GraphicAdd card. I did a few nice art projects on my Sol, I’m dying to get the machine back up and running, and see if I can still read my 20+ year old data tapes.

Update: My parts source informs me the parts he found are the wrong type and will not work. So I am still searching for some pads.

Update August 29, 2007: A generous donor supplied me with the correct pads and my Sol is now restored to working condition. You can view the results here.

Buried Treasure

FujiTV News reports that on March 5, a construction worker in Koyabe, Japan dug up an ancient earthenware pot containing 1,295 gold and silver coins, worth at least 65 million Yen (approximately $500,000US). Some coins were dated Meiji 3nen (1871) but the bulk of the coins are over 400 years old. The media compared the construction worker to an old fairy tale about “Hanasaka jiisan,” an old man who digs up a pot of gold. There was no report about who now owns the gold.