I am about to lose my oldest email address, an account I have maintained for over 10 years. I just received notice from my ISP that they have lost control of the domain name that contains my address (how did that happen?!?) so I will have to move my account to a new domain. I have other email addresses, so I guess I will discontinue that account entirely. This means I’ll probably lose contact with some people that only know my old address, but on the other hand, this account is so old and well-known that it attracts a ton of spam. So you win some, you lose some.
My email address ceicher@inav.net will be deactivated as of July 31. You can continue to contact me at my other account, I’ll have to put it up here in a slightly cryptic format so spammers don’t harvest it from my website: email me at (ceicher) and then insert the @ symbol, and then the domain (mac.com).
This is all getting a bit complicated. My server is being relocated as of July 15, so this server will go down just 3 days from now. [Update: the telco hasn’t yet pulled the plug as of Monday so I might still be online for a while longer.] I haven’t been able to arrange for new hosting, so it might be a while before I get the server back online. This message isn’t going to get out to everyone in time, so I hope it will be cached by Google in the meantime, in case anyone searches for my address. I’m going through a bit of a rough transition, but things should be back in place next month, with luck. We Apologize For The Inconvenience.
Category: Computers
Belkin Doesn’t Suck
The Disinfotainment server was down for the last couple of hours due to the complete failure of my Belkin UPS. It died and shut down with absolutely no warning. I test the battery every month and it showed no signs of any problems, and then suddenly, poof, everything in my office shuts down all at once. This is not how a UPS is supposed to work, if the battery fails, it shouldn’t take down the main power circuit, it should just fail to provide power during a blackout. I don’t understand how this could happen.
I pulled the UPS and had to plug everything back into the wall sockets, which is a bit risky since thunderstorm season is approaching. I’ve got to get this unit back up and running as soon as possible. And now I discover this expensive UPS doesn’t have replaceable batteries, which is the whole reason I bought it in the first place. So I guess I’ll have to rip it apart and find some aftermarket batteries. I’m sure these batteries aren’t unique, someone has to manufacture them for Belkin. What a pain in the ass.
Update: I changed the title of this item from “Belkin Sucks” to “Belkin Doesn’t Suck” based on new information. I opened up the UPS case to look inside, and the batteries are not replaceable. That sucks. But the batteries apparently aren’t the problem, it looks like the transformer overheated and partially melted. That really sucks. Then I called Belkin, and it turns out my unit has a 3 year warranty, they’re honoring the warranty just on my word, without me even having to dig through my files to find my original receipt. My old UPS is discontinued, so they’re replacing it with a brand new model and giving me another 3 years warranty. Best of all, they’re shipping the new unit today, I’ll have it in a few days, then I can send the old unit back to Belkin for recycling and full credit against the new model. Yay!
Update Again: The replacement UPS arrived today, a week after I contacted Belkin. That time in transit is typical for shipment by ground (I don’t think you’re allowed to ship lead-acid batteries via air). It cost me $26 to send the dead UPS back, ouch. Anyway, the server should go down for a few hours sometime soon while I rewire the power plugs.
Stereoscopic Computer Graphics Circa 1992
I haven’t posted anything for a while, and at times like this I like to hunt around for some old work in my archives. So here’s a computer graphics project from 1992 that I’m rather proud of. It is deceptively simple, but that is part of any artist’s repertoire, to make the difficult things seem simple.
I was first introduced to stereograms when I was a young child, my family would visit my Grandmother and she would always bring out her Victorian era stereogram viewer and old stereo photo cards showing exotic sights from around the world. Perhaps this was a bit ironic since my Grandmother was totally blind. She became blind as an adult, so perhaps she was sharing the same images she viewed as a child.
I learned to draw stereograms by hand in a perspective drawing class in my first year of art school, an arcane procedure that confounded most drawing students, but I enjoyed it immensely. Each year, a collector of stereograms came to the art building and set up a stall to sell individual stereo photo cards, I used to spend hours looking through his collection, but since I was a starving artist, I never had enough money to buy any of them. When I first got access to 3D computer graphics hardware in art school, my first project was to produce stereograms. Unfortunately, the hardware was primitive and low resolution, and the depth effects were difficult to perceive. I remember how difficult it was to get my professor to come over to the art school and see my first stereograms, since the only graphics terminals were in the Computer Science building, and artists of that time wanted nothing to do with computers. I finally managed to get him to come over for a demo, I produced stereograms of bright arcs swooping through space, an homage to a famous sculpture by Alexsandr Rodchenko. The professor devastated me with the remark “oh, that’s just technical.” That was when I decided to drop out of art school. It would be 15 years before that professor jumped on the bandwagon, and tried to make his reputation as a guru of 3D Virtual Reality. And of course, by then he had completely forgotten that I was the first artist to ever show him a stereoscopic VR image.
After dropping out of art school, it would be amost 10 years before I could afford my own computer equipment capable of rendering stereograms. I did some primitive stereoscopy experiments with Paracomp Swivel 3D, but the first application capable of doing the job properly was Specular Infini-D. One of the demo images in the Infini-D application was an animation called “virtual gear.” I viewed it and was immediately irritated, it was just a disk spinning on its axis, not a gear at all.
Now if you’re going to call your demo “virtual gear,” you have a historic precedent to live up to. One of the most famous interactive computer graphics experiments of all time was Dr. Ivan Sutherland’s Virtual Gears. Sutherland set up an interactive graphics display showing two gears, you could grab one gear with a light pen and rotate it, and the second gear would move, meshing teeth with the first, moving as perfectly as real gears would.
Gears are a graphics cliche that annoys me continually. Gears are overused as an iconic image, and are almost always badly designed. I can’t count how many times I’ve seen animated gears that would not work in reality. The gears don’t mesh, or are combined in mechanisms that would jam. I’ve even seen gears that counterrotate against each other, if they were real gears, all the gear teeth would be stripped away.
My Grandfather was an amazing tinkerer, and was always constructing clever little gadgets with gears and pulleys. My favorite gift from my Grandfather is a college textbook from the late 19th century entitled “Principles of Mechanism.” The book shows how to design gear and pulley mechanisms, and shows how to distribute power throughout an entire factory from a single-shaft waterwheel. I always enjoyed the strange diagrams and mechanisms, and was astonished how much advanced calculus went into the design of even simple gear teeth. So when I saw the Infini-D image, I immediately thought back to “Principles of Mechanism” and decided I could do better. I would design a properly meshing set of gears that was accurately based on real physics. To make it a challenge, I would make the gears different diameters with a gear ratio other than 1:1. And to add realism, I would produce it as a ray-traced 3D animation. Click on the image below to see the finished animation pop up in a new window.
In order to design the gears properly, I had to sit down and work through quite a bit of the physics of gear design. I discovered some interesting things about gear ratios, if I designed two different diameter gears with the right ratio of teeth, both gears would return to a symmetric position after only a half rotation of the largest gear. This would allow me to produce a fully rotating animation loop without having to animate the full rotation, I could just loop the same frames twice, saving half the rendering time. Look closely at the animation, the slots in the two gears match up after the left gear rotates only 180 degrees. There are 60 frames in this animation, but it takes 120 frames to complete one full cycle. I saved 50% of the rendering time.
And it was good thing I discovered this trick, the animation took 48 hours to render on my Macintosh IIcx. I borrowed a Radius 68040 coprocessor board and the animation rendered in about 24 hours. When I bought a new PowerMac 8100/110, the render took about 20 minutes. I haven’t benchmarked this file since then, but I suspect it would render in about 30 seconds on my current dual 1Ghz G4 computer (if I could get Infini-D to run at all).
My stereoscopic rigging in Infini-D took months of fine tuning to get it to work perfectly. About that time, Specular Inc. started releasing inexpensive accessory packs for Infini-D, selling for about $100. I had previously contributed some work to Specular, producing a procedural texture generator for cloudy skies, the “Sky Library” which you see in the background of this stereogram. Sky Library was Specular’s most popular software download, and they knew of me and my work, so I started negotiating with them to sell my camera rigging as a software accessory pack, with an inexpensive plastic stereogram viewer included. I sent them several animated stereographic demos including Virtual Gears, high-resolution Iris inkjet printouts of various stereograms (which were very expensive to produce in 1992), and a freestanding stereo viewer. They had never seen stereograms and did not understand how the viewer worked, they tried to hang the metal legs over their ears, so I sent them a videotape showing how it stood up on the metal legs. I worked for months, trying to get their interest in releasing my work as a product, but they told me there was no market for my rigging, and they didn’t want to release it. I persisted, but eventually they stopped returning my calls.
A few weeks later, I received a mailing of the Specular Infini-D users’ newsletter, and was astonished at what I found. The newsletter’s feature article was about setting up stereographic camera rigging in Infini-D. The article used all the methods I had taught them, but the setup was all wrong. They had taken all my careful design, published the core concepts, but missed all the mathematical subtleties that made the images work as a stereogram. And to add insult to injury, I did not get any credit at all, they claimed they invented it all by themselves.
The Vanguard Motion Analyzer
I was idly surfing a web link showing nostalgic old photos of computer equipment from as far back as the 1940s, and I was astonished to see a faded, dusty old photo of a device I recognized, the first computer graphics machine I ever used, the Vanguard Motion Analyzer.
I remember seeing the Vanguard Motion Analyzer when I was just a little kid in junior high school, it must have been around 1970 or ’71. I was in the math club and we were permitted to use the University of Iowa’s timeshare computers. One of the local hackers liked me because a little kid like me was useful when we went dumpster diving for timeshare passwords, I could easily squeeze into the big dumpsters behind the computer center. We got into a lot of mischief together.
My hacker buddy invited me to sneak into his workplace for a demonstration I would never forget. This visit would have to be a secret, because the job was a classified project for the Department of Defense. Nobody was supposed to know the University had contracts with the DoD, this was at the peak of student protests against the Vietnam War, the students would have a fit if they knew about his work. So one day after school, I rode my bicycle over to his office containing the Vanguard Motion Analyzer for a demonstration.
The VMA is an incredible piece of analog computing technology. It is essentially a Movieola, a device for viewing 35mm films through a rear projection screen. But this is no ordinary Movieola, it has a clever arrangement of mirrors and prisms so the image can be precisely zoomed and rotated. It also has a special electromechanical film transport so the film can be moved back and forth, one frame at a time. There were two clips at the top of the screen to hold a sheet of translucent graph paper. A sliding clear plastic bar could be moved up and down the screen, to help align the image’s horizon (or other reference points) perfectly level, for more accurate data plotting. Films could be played through the glass plate, viewed through the paper, and the operator would manually plot the position of objects on the graph paper.
My friend’s job was classified because he was plotting boresight films, high-speed 35mm films of artillery projectiles in flight. These films were used to calibrate new types of artillery guns or shells. A boresight film might record a tracer shell’s flight taking a fraction of a second, but the film would last for many seconds if played at regular speed, and you could clearly see the projectile moving slowly across the screen. The film would advance one frame at a time, he’d plot the shell’s position on the graph paper, advance another frame, plot another position, again and again. Then he’d input the plotted data on IBM punch cards. He let me plot a few data points, and it looked like the most tedious damn job I ever saw. But the high-speed films of flying artillery shells were absolutely fascinating, and perhaps for the first time, I got an idea of the mathematics behind the visual images of the world we see with our own eyes. If I had never seen this demonstration, I might never have ended up working in computer graphics.
I can see the goals of the project more clearly, now that I’ve spent years working on computer graphics. The boresight films were probably taken from more than one point of view, and the computer was used for a “stereographic reconstruction,” a way to calculate a 3D path through space from combining two 2D paths. The data was needed to calculate “artillery tables,” to calibrate the gun so the gunner could accurately hit the target.
Artillery tables are the reason the computer was invented in the first place. A unique table had to be calculated for every large-bore artillery gun, since they all had slightly different characteristics due to variations in manufacture. The tables were produced by an army of clerks, calculating manually with logarithm tables and slide rules, tediously working out the path for each type of shell, at every angle of elevation of degrees and even arc-seconds. But during the military buildup before World War II, artillery for ships was produced in such quantities that the clerks could not keep up with demand. Obviously an automated method of calculating the tables was needed, so a clever mathematician at Iowa State University, John Atanasoff, invented the first programmable digital computer. But when WWII started, Atanasoff abandoned his work and joined the Naval Ordinance Laboratory.
Other major advancements in computing were directly inspired by artillery targeting problems. Battleships often used “artillery computers,” which were massive mechanical analog computers with the artillery tables built in to the mechanism. Eventually, advanced models were developed to target moving ships. Other applications soon followed; Norbert Wiener developed methods of targeting moving aircraft with radar operated anti-aircraft artillery, using analog computers with feedback to continuously aim the gun ahead of the aircraft, as appropriate for the speed and height of the target. Weiner’s new science of Cybernetics caused an explosion of new ideas, and lead the way to the modern computing age.
But let’s return to the Vietnam era and the Vanguard. Eventually, rumors about my friend’s project leaked out, but were obviously misunderstood due to the incomprehensible technology. Rumors spread that the University had a secret contract with the CIA. Student protesters were up in arms, holding protests in front of the building, accusing the University of helping the Military-Industrial Complex to build killing machines. And they were right. So one night, the Weathermen went down to the office, and blew it up with dynamite, totally destroying the entire building. And that was the end of the project.
Profit Margin
Long ago when I worked at a retail computer store, our store had a minimum profit margin on computer sales of 20% (that alone should tell you this is a LONG time ago). All the salesmen had to obey the rule of not selling a computer at less than 20% profit. I had a fancy HP-35 calculator so I could quickly add delta +20%, delta +21% if I wanted a 21% profit, etc. The other salesmen used standard calculators. They always tried to grab my customers, somehow their quotes for the same products would be less, and my customers would buy from some OTHER sales guy for less than I’d quoted them the day before. It was infuriating. And the boss was especially infuriated because none of the salesmen could meet their margin quotas, so he started withholding their commission on low profit deals, which just added to the vicious circle of pissed offedness.
So one day, I caught a salesman doing a calculation, and I was shocked what I saw. He calculated 20% margin on a product by multiplying cost times 1.2 to get the retail price. So I asked him, if I sell a product for $100 at 20% profit margin, what’s the cost? He shot back the correct answer, $80. I said ok, now type $80 into your calculator and multiply it times 1.2. Answer, $96. Oopsie.
I reported to the boss what I had seen. He hit the ceiling. When he calmed down, he made me go around the sales floor with him, and he demanded that every single salesman go through the same routine. What’s the cost of goods on a $100 sale at 20%? Now use your calculator to compute 20% margin on an $80 item. Oopsie, $96 is wrong. Every single salesman was a math moron, they ALL were calculating it the wrong way. And then I had to teach them the proper calculator method while Mr. Tyrant Boss watched over us, and he was not satisfied until every salesman demonstrated an ability to calculate the correct profit margin TWICE on his own. The correct formula to calculate a retail price with 20% margin is 1.25 times cost. None of the salesmen believed this was correct until I made them multiply 80 * 1.25 and it came out to 100. Some of the cleverest salesmen asked me how I’d calculate an arbitrary profit margin, like 21%. So I had to demonstrate that too.
Over the next few weeks, my sales skyrocketed. My own customers were no longer able to undercut my prices merely by asking a different salesman to quote the same equipment. This was a huge relief because in the past, I’d do all the prep work and the other sales guy would walk off with all MY profits with no effort except to multiply times 1.2.
MacOS X Spam Fighting
I’ve been seriously bummed that I’ve been unable to implement the latest new antispam tricks since I’m on MacOS X and I’m basically stuck with Mail.app’s plain vanilla spam filters. I used to maintain a tip sheet on spam filtering for MacOS X using procmail and SpamBouncer, but that technique was obsoleted in MacOS X 10.2 when Apple removed Mail.app’s support for unix mbox format. The only way to use to procmail filtering with MacOS X was to set up your own mail server, I’d rather not bother with that.
But now I’m all excited that someone figured out how to add mbox support back into Mail.app. I’m going to give it a whirl and see if I can’t patch together some new spam filtering tricks, maybe I’ll try SpamAssassin instead of Spambouncer.
QWest DSL Sucks Even More
For the last 2 months, I’ve been trying to figure out why my QWest 640/512 DSL line has been performing at about 500/130. This has severely impeded my ability to serve BlogTV streaming video, aside from the general annoyance of having about 25% of my former upload speed.
The problems started when my old ISP went out of business and I suddenly had to switch to QWest.net. I told QWest to preserve my existing 640/512 account, and they said they would. But I immediately noticed a decrease in performance, and “opened a ticket” with tech support, which means they are supposed to investigate and call me back with results. They never did get back to me. I waited since December 10th, I’ve repeatedly tried to call their tech support line, but I’ve never been able to get through, I usually give up after 45 minutes.
I spent 4 hours on the phone with QWest today. I started, as usual, by spending 45 minutes on hold waiting for tech support to answer. I gave up and called the sales office, they told me my account was 640/256, which was not what I ordered. Then he made some weasely remarks about the 640/256 really being a 640/512-256 account, and that if I wasn’t getting 512 I should be talking to tech support (like I hadn’t already tried that). I told him I couldn’t get through, so he started a conference call, we both waited on hold for about 20 minutes and finally got through. But I warned Mr. Salesguy that the tech guys were going to blame sales, just like the sales guys pointed the finger at the techs. I call this a “mutual finger-pointing exercise,” everyone points the finger at everyone else. And that’s exactly what happened.
The tech guy immediately said that he’d been working tech at QWest for 6 years and they had never offered 640/512k accounts. I told him they surely did, because I had one. He got really huffy and told me they don’t offer them any more. I asked him, which was it, they don’t offer them NOW, or they NEVER did? I insisted that they DID sell 640/512, I had it up until 60 days ago and I’d like my account restored to its previous speed. He started yelling at me about what would happen if I went into a car dealership and wanted to buy a Studebaker? WTF? I was thinking of telling him about a friend of mine, he collects Studebakers, and how there is limited production of new Studebaker Avantis, but I decided against it because that would go nowhere with Mr. Angry Tech Guy. Instead, I demanded to talk to his supervisor.
So now I get ahold of a reasonable, knowledgable tech supervisor, I could immediately tell he’d been doing this for decades, a real old telco guy. At this point, I’d been on the phone for over 3 hours. As soon as I started explaining the situation, the battery in my phone died, we got disconnected. Arghh!
Fortunately the Supervisor called me back and I picked up on my other phone with a fresh battery. He explained that QWest used to offer 640/512 with CAP protocol, but now they switched to DMT protocols, which offered more reliability but only at 256 instead of 512. I told him I’d like to switch back to CAP but he said it couldn’t be done. QWest has a standing order to switch customers off CAP if they make the slightest change to their services, and that CAP is no longer available. I objected, I said that if my ISP hadn’t gone under, I’d still be using CAP and I’d still have 512 upstream, so I didn’t see any reason why I couldn’t be restored to the old protocol. He sympathized but said this was impossible. However, he did say there’s light at the end of the tunnel.
Apparently QWest has been experimenting wth a new 1500/1000 DSL protocol, and are about to offer it at the same price as the old 640/256 line, if the phone line is of sufficient quality. There is no guarantee I’ll get full speed, there isn’t even a guarantee they’ll offer it in my neighborhood. So there is a possibility that sometime this month, I’ll get new higher speed services at the same old cost. But if not, I’ll have to pay twice as much for 640/640 SDSL. Gee, let me guess which of those two plans will happen.
Oopsie
Comments were temporarily disabled due to my botched attempt to install MT-Blacklist to block comment spam. But I removed the software and now everything is working correctly.
The problem isn’t with MT-blacklist, it’s with Perl. I’m missing an important library and Perl wants to upgrade to a whole new Perl version instead of just installing the one piece I need. Perl sucks.
DSL Hell, Again
If you’ve been unable to access this website at any time over the past 2 or 3 weeks, it is because I’m in DSL Hell again. My ISP, Internet Navigator, has been unable to keep my DSL line working for more than 48 continuous hours. Lately the line has been dropping out for 5 to 10 minutes every 12 hours. I’ve complained to my ISP so frequently that they’re now ignoring my problems, and blaming them on QWest, which I guarantee is not responsible for this fiasco. QWest’s lines check out 100% reliable, all the problems are at Internet Navigator.
There really is no excuse for this level of service, nor is there any excuse for INAV techs giving me a response like “you’re the only one with this problem, we aren’t hearing this complaint from our hundreds of other DSL users.”
The irony of all this is that I switched to DSL because I was fed up with the unreliability of my old cable modem provider. I decided tha it would be better to have a more expensive, slower connection but with more reliability. Unfortunately, the new DSL line is more expensive, slower, AND less reliable. Three strikes, you’re out.
I’m continuing to work on the problem, but at this point, it looks like I’ll have to switch to a different ISP. The only way I can get the same level of service (well, the same as I’m supposed to be getting now) will be at QWest’s own ISP, at a price increase of about 30%. This DSL line is already exceeding my budget, now it’s going to break the bank. I’m screwed.
Microsoft Kills The Web
Microsoft is about to kill the Web. Due to a court injunction against their illegal unlicensed embedding technology, stolen from Eolas, they are now forced to alter Internet Explorer 6. For years, programmers like me have been forced to work around IE’s ActiveX embedding, using stupid tricks to make our QuickTime videos work in both standards-compliant browsers, as well as the standard-breaking IE. And now I have to go in and remove all of that junk, and replace it with even more convoluted junk. This is going to take a lot of effort to repair, for me and everyone who ever wrote a web page with an embedded object.
But the biggest problem will be with old web pages that are no longer actively maintained. Nobody is going to fix those web pages. Microsoft is going to make unilateral changes that will kill huge sections of the Web. Microsoft is pure evil, this is just more proof, if you haven’t been convinced already.