XNA Game Studio Express 1.0 Refresh

An updated version of the XNA Game Studio Express framework was just released.  ZMan has written up a summary of the additions to the API.  Since this is a completely backwards compatible release, all the changes resulted in additions to the API and not changes to any method signatures or removal of any methods.  So far, it looks like one of the nice things you get is better font support.

A Tale of Two Shippers

I have been purchasing vintage computer equipment with the ultimate goal of building a computer graphics museum here in Salt Lake City.  When purchasing stuff like this, you occasionally need to use a 3rd party who will pick up your equipment from a remote auction site, pack it, and ship it to you.  More often than not, when you need such a 3rd party service you need to send your equipment by freight.

I had previously used Craters and Freighters in order to have my equipment packed and shipped to me.  The first time was when I purchased a large 3D graphics terminal, the Whizzard 1645 by Megatek (1984).  The terminal was located in Dallas, Texas and would need to be carefully packaged and freight shipped.  It included the original 19″ monitor which made the unit large, bulky, heavy and fragile all at the same time.  They packed everything into a “cardboard crate”, which is a custom sturdy triple walled cardboard crate that they construct on top of a wooden pallet.  The terminal was cushioned with plenty of styrofoam to cushion the monitor and protect it from the occasionally protruding nail or whatnot when things are shipped by freight rather than a carrier like UPS or Federal Express.  The unit arrived in wonderful condition and in a timely manner.

So when I purchased a lot of 19 Tektronix 4105 and Tektronix 4205 graphics terminals from an auction site, Craters and Freighters was the first company that came to mind for shipping.  They lovingly wrapped each terminal in bubble wrap, put each one in an appropriately sized box with plenty of packing peanuts for cushioning.  The boxes were stacked and shrink wrapped onto pallets and freight shipped to me in Salt Lake City, Utah from Hayward, California.  They arrived in perfect condition and in a prompt fashion.

So once again I was out haunting the auction sites looking for items for my computer graphics museum.  This time I stumbled upon an auction that looked like they were liquidating equipment from a television station that had gone under: Abekas digital video recorders, video routing and switching equipment, and some SGI workstations including an Onyx with InfiniteReality 2 graphics and the Sirius Digital Video option.  I won the Onyx and its associated Sirius Digital Video breakout box.  Unfortunately for me, the equipment was located in Reading, Pennsylvania and I needed to get it shipped practically across the entire country — a journey of approximately 2100 miles.  So I started looking around for shippers.  The nearest Craters and Freighters office appeared to be over 100 miles from the auction location.  The auction site had sent me an automatic form mail referring me to a shipping agent called CTS.  I had never heard of them before, but browsing their web site indicated that they provided the same services as Craters and Freighters.

Unfortunately for me, while they provided the same services, the quality of service wasn’t anywhere near the same as Craters and Freighters.  First, they had difficulty taking my order.  I had requested two quotes: one for packing two items for ground shipment and a second for packing and shipping the Onyx by freight.  I received a single email message quoting me a total amount.  Each time that I communicated with Craters and Freighters, I had always talked with the same person regarding my shipment.  However, each time that I called or emailed CTS, I seemed to get a different person and each time they insisted they were the right person to talk with for my shipment.  Because the plastic skins on an Onyx are somewhat fragile, I requested that the Onyx be sufficiently padded to avoid damage to the skins during shipment.  With the details seemingly worked out, I paid the shipping fee and the item was shipped.

What arrived was quite a disappointment compared to my previous experiences with Craters and Freighters.  The pallet that CTS constructed appeared to be made from weak scrap lumber instead of new, sturdy pieces of lumber as Craters and Freighters had done.  Instead of putting padding around the entire Onyx, there was only a single thing piece of styrofoam placed on top.  Instead of packing the two items separately for ground shipment, they had included it in the freight shipment without asking me if this was acceptable or even telling me that they had done so until after the pallet was already shipped by freight.  Because no cushioning was placed between the Onyx, the Sirius Digital Video breakout box and the Octane workstation in the bundle, the Octane workstation case was quite scratched up.  The picture of the Octane on the auction web site showed no such scratches whatsoever — the scratches had all been incurred during shipping.  The whole bundle was attached to the pallet only by shrink wrap placed around the bundle; no strapping had been used to secure the items to the pallet.  The pallet itself was so weak that it practically fell apart as the unit was lifted onto the loading dock by the delivery men.

It so happens that I had purchased another Onyx with Infinite Reality graphics earlier and had it delivered just days earlier to the same location.  This Onyx had been packed by the seller and shipped by freight from San Diego, California.  The seller in this case knew how to package these units for shipment with care.  The unit had been surrounded by styrofoam on all sides, secured to the pallet by a vinyl strap and then enclosed in more styrofoam and cardboard to create a sturdy enclosure around the whole unit.  The pallet was constructed from sturdy new lumber.  This told me that it wasn’t hard to package these units carefully for shipment and have them arrive in good condition.  You just had to be paying attention.

Recently I purchased some more SGI hardware from an auction site.  This time its going to be less expensive for me to take a trip out to pick up the equipment and transport it back to Salt Lake City myself by renting a commercial truck.  However, once again the auction site sent me a form letter from CTS telling me how they could ship my items for me.  Given how poor my experience was with CTS before — they had confused my order, changed the terms I requested on my quote without telling me and poorly packed my items for shipment — I certainly wasn’t going to use them again and I told them as much.  What I received back was a snarky reply about how I was going to regret not using them instead of the competition.  This is just another example of their unprofessional behavior that shows why I wouldn’t use them again.

If you ever need to send something by freight and it needs to be packaged and handled with care, I would strongly recommend Craters and Freighters and recommend that you avoid CTS.

Is it the Tool or the Author? Part II

Philip Hofstetter responds to my post about Windows Installer in an attempt to clarify his post.  I say attempt, because to me it looks like he just repeats his same points without saying anything different.  Philip claims that the behaviors he calls out are all attempts to work around some flaw in Windows Installer.  He claims that these poor developer habits are an annoyance to the end user when installing a package:

Read the rest of this entry »

Utah Code Camp Spring 2007: Live Coding

I gave another talk at the Utah Spring Code Camp this past Saturday.  I originally proposed giving a 3-part XNA Game Studio Express talk, but my mail wasn’t being received by the organizer.  Why?  Well, because I’ve been on the internet for so long that spammers actually use my email address as the forged From address on the spam they send out.  Occasionally I get the bounced back virus or spam message that shows clearly that they are forging my address as the originating address.  However, lately people have reported not getting email that I send to them and I can only assume its because the forged spam has resulted in my mailing address being placed on blacklists as a “source of spam”.  Obviously the maintainers of these blacklists aren’t analyzing the mail very carefully, but its just one more reason why you never want to meet me and admit to being a spammer.  I’m likely to just give you a swift knee to the groin without a second thought.

Read the rest of this entry »

Is it the Tool or the Author?

Philip Hofstetter writes in his blog about things that setup authors do poorly.  I don’t disagree with his observations, but I do disagree with his assertion that these problems stem from inadequacies in the MSI technology itself.  Read the rest of this entry »

FractInt for Windows (beta 5)

Download FractInt for Windows Beta 5

The legacy code I’ve been working on lately is FractInt.  FractInt’s most recent release is a source base that compiles in three ways: DOS (FRACTINT), Win16 (WinFract) and lunix/X11 (xfractint).  The DOS code has gone about as far as any DOS program should go, and then some.  The Win16 and X11 code has lagged behind the DOS code in some areas, mostly because people didn’t want to translate the 16-bit x86 assembly code for other environments.

Read the rest of this entry »

“Working Effectively with Legacy Code” by Michael C. Feathers

I’ve just finished reading “Working Effectively with Legacy Code” by Michael C. Feathers.  This is a book that explains a variety of strategies and techniques for transforming a code base without unit tests to a code base with unit tests.  Unit tests are small, quick tests of software components that validate their behavior. 

Read the rest of this entry »

A Concise Recap of Palestinian Victimhood

I really like this analysis because it talks about the predominance of zero-sum game politics in the Middle East.  Too many people conceive of an issue in zero-sum game terms (if you win, I lose) when it is almost never the case.  Read the whole thing, its worth it.

Stoners Smoked My Blog

If you were paying attention to this blog when I started it up a little while ago, you noticed that there was a recent “service outage”, as they say in the power industry.  First, they suspended my blog because my account was past due.  Fair enough.  I pay the bill and bring my account current, but for some reason my blog is still disabled.  No problem, I give it a couple days.  My blog was still disabled.  So I email the support staff for the blog system.  They turn my blog back on, but all the content is missing.  Then they inform me that not only is my content missing, but that they accidentally deleted my content and their backup system didn’t actually create a backup.  Oops.

Apparently they didn’t go through a complete and rigorous testing of their blog related procedures.  First there was a procedural screw-up with restoring my blog after it was suspended due to a lack of payment on my account.  (The blog infrastructure is supplied as a feature offered through my ISP.)  Next, there was a procedural screw-up with their backup procedure in that it didn’t actually create any backups.  Finally, there was a procedural screw-up with turning my blog back on, as apparently the operator smoked it in a big corn husk spliff instead of turning it back on.  The only thing in this process that they seemed to get right was disabling my blog when my payment was late.  Hrm.

They extended me some credit for the grief of having lost everything I had configured or written, but honestly this is why I wanted to setup my own blog software on my own web space instead of relying on someone else to provide me the service.  When I enquired as to the preferred choice of blog software, I was told “oh, just wait a little bit we’ve got one we’re creating for customers”.  That was fine and I did a little beta testing on their blog software, which is just a mildly customized version of WordPress and being a software engineer, I could easily have installed that package myself.  When the beta was over, I was presented with a monthly bill for the “blog service”.  Hrm.  No mention of fees was ever made while I was testing it!  The fee was reasonable, but being a software engineer I could have just installed WordPress myself and saved myself the money!  BlogSpot or Town Hall don’t charge me any money for a blog, so I don’t know why they thought I would want to pay just to have a blog on their site.  I got that sorted out and avoided the fees without having to install my own copy of WordPress, but it just didn’t seem very professional to me.

The experience with the Stoners smoking my blog also makes me feel that this is a service at a level of professionalism that is less than what I’m accustomed to from this provider.  So I’m back now, but wondering whether or not this is just an initial bump or a sign of things to come.  The Stoners smoked my stash and I’m left cleaning up the vomit off the floor.

Posted in Legalize Adulthood!. Comments Off on Stoners Smoked My Blog

BitSavers New Documents RSS Feed

BitSavers is a repository of documentation and software for “vintage computers”.  New manuals and documentation are being contributed to BitSavers all the time.  The archive contains lots of documentation on common vintage computers like the PDP-11 as well as obscure items like the AN/FSQ-7, the computer used in the SAGE air defense system.

Unfortunately, the only way to find out when new files were placed on the archive was to periodically browse the What’s New file and check for interesting items.  The what’s new file is just a simple text file with one line per entry for the files that have been added.  There have been a couple times where new things showed up on BitSavers that were of interest to me and I didn’t realize it until much later.  The solution is to create an RSS feed that shows new documents, with links to the documents and a description extracted from the what’s new file.

An RSS feed is just a text file in XML format that is updated periodically.  To generate one for the bitsavers document archive, I wrote a perl script that executes once an hour, gets the What’s New file and parses out the 50 most recent entries.  These entries are used to contruct an RSS XML file with links back to the documents on bitsavers.  The root folder for the documents is the name of the company issuing the document and makes a natural category for each RSS item.  The additional directory structure between the root folder and the document can also tell you information such as which model of computer the document describes.  The document path is used to construct the title of each item.

The perl script that does all this is only 51 lines long and makes use of the LWP::Simple and XML::RSS modules to fetch the what’s new file and create the RSS file, respectively.  Its a nice example of a simple script that leverages other perl modules to do something simply.  This should be no surprise to anyone who is familiar with perl, since it is a scripting language designed for manipulating text files.  Its also a nice example of how a little bit of programming can enhance a resource on a remote web site even without any special access to the web site itself.

BitSavers RSS Feed