Gonzo blogging from the Annie Leibovitz of the software development world.

Category: CDX (Page 2 of 141)

Lots of updates… elsewhere

Don Hopkins website came back (as was expected, it seems to go stealth from time to time) and there’s a whack of updates. Thought I would point you to them as I don’t have anything from my own brain today.

He has a neat piece on Sim City for Linux. I talked to him a year or two ago and he had ported the app over to Linux (adding scripting capabilities through a language called TCL) and was going to motion to EA to allow him to distribute it for educational purposes. It’s apparently still lost in EA legal land (as does where most things seem to end up) so not sure if that will ever become a reality.

He’s got a posting on a nice proposal he wrote back in 2000 about building a common authoring SDK for The Sims. The next release of SimExplorer will have something like this in it although I’m not sure how far it will go and initially it won’t be documented (barely have time to write the app let alone the documentation for it) however the SDK thing has been a long time passion for me to get more people writing tools for The Sims.

A section about object hacking pointed me out to Slice City which is essentially Sim City inside the Sims. Quite an amazing feat of hacking by cobbling objects together and making them stand on their head and spin. As you may recall, I created an add-on object a couple of years ago that essentially turned all players into zombies (and creating a few NPCs on the fly), loaded the player up with a shotgun and locked all doors to the building they were in. This created a mini-resident evil game inside The Sims (to activate it you picked up a gamebox and selected an option from the pie menu). The exercise was a disaster as it really dug into the innards of the ways objects worked and I probably did a million things I shouldn’t have. In the end, it was a unusable attempt at object hacking and would lock up my system hard. Not a good example coming from the guy who claims he knows a lot, but then I think I might have been pushing the Sims envelope a little too much back then.

Refactoring in the .NET world

Refactoring is a fancy way of saying “optimizing your codebase”, but it’s a little more than that. Refactoring is a controlled technique for improving the design of an existing code base. It’s the process of taking an object design (in source code) and rearranging it in various ways to make the design more flexible and/or reusable. There are several reasons you might want to do this, efficiency and maintainability being probably the most important.

There are a series of “refactorings” that have generally been accepted as “common”. Martin Fowler is one of the father of these practices and contributed to create a catalog of them here.

Generally from a Software Configuration Management (SCM) perspective, it poses a challenge because when do perform a refactoring you end up touching potentially every file in the system but you can’t be certain which ones upfront. For example, let’s say I’m going to rename a method in a class (from getinvcdtlmt which doesn’t make much sense to getInvoicableCreditLimit). To do this, I could do a global search and replace (if my IDE had that capability) or manually change all the references to it. This means I hit every mention of this method in all my source. What if my source code was referring to this in multiple ways like through a pointer or something? A global search and replace might not work.

Bring on the tools. There are several tools on the market (mostly in the Java space) that perform these refactorings for you with a simple click of a button. In the example above, a global search and replace might be effective enough but for other refactorings (like splitting out a class into multiple classes) you need a tool that understands how code works, not text (or you end up doing this manually).

.NET proves to be an even more discreet platform for refactoring. There are a few tools out there but they’re either very early in development, difficult to use, don’t integrate very well with the Visual Studio .NET IDE, or just plain don’t work. Here are a few of the .NET tools I’ve found out there:

Velocitis

C# Refactory

C# Refactoring Tool

As time goes on I’m sure something will come out of this. The next version of Visual Studio .NET (Whidbey) will offer up the common patterns of refactoring, but that’s a year or so off. Lord knows I would love to come up with a definitive tool to do this, but given my current workload of projects (which I’m still trying to catch up with) I can’t rise to the task.

Anyways, if you’re interested in learning more about refactoring here are some links:

http://www.refactoring.com/

http://www.martinfowler.com/books.html#refactoring

http://c2.com/cgi/wiki?ReFactor

RSS feeds and vanishing sites

Just a quick update tonight as I’m crawling through the various comments left in the system the last few days. For those of you that are geekly enough, and want info spit out in an RSS feed style there are two feeds coming out of this place. First is the news itself which you can access through here. The other is for the comments which you can get here. Of course, you’ll need an RSS newsreader or something to view it, otherwise it’s just XML gobbly-gook and not much value to anyone else.

Also Don Hopkin’s website seems to have gone MIA. If anyone knows what happened speak up.

Catch you later.

Video Toaster goes open source

One of my favorite programs that I never really worked with much, the Amiga Video Toaster, has now gone open source (and there was much rejoicing).

When the video toaster came out, it replaced a 100K production system for 6K. It took video editing/production by storm. It was a wonderful replacement for aging, expensive monster mixers and effects boxes. In fact, when it came out it’s closest competition was nearly $50,000. Toaster had the huge advantage of being a totally new system using new ideas and new techniques. It wasn’t as powerful or as capable as a true non-linear editing system or field-accurate paintbox machine… but it didn’t cost nearly as much as one either. The Video Toaster ushered in the age of affordable desktop video in 1991 and was used in products such as Babylon 5, Sliders, and Jurassic Park. The effects, depending on how you used them, could look cool or cheesy. Think of the effects of Home Improvement, when they did the scene changes.

The name Video Toaster was the end result of humorous false rumors spread by NewTek. They leaked that they were working on a “laser toaster” to toast graphics onto white bread for hotels and resturaunts. Then they said that they had expanded their project to include a “JellyJet printer” that could spray mint, rasberry and blueberry jelly onto the bread for color output. The next month they announced that they had expanded it to the Amiga’s 4096 color “Hold and Modify” mode for “HAM on Toast”. This went on until the actual product was announced. At which point it became vaporware for a very long period of time.

The Toaster was broadcast quality by the only standard that mattered – would a broadcaster broadcast it? They did. The video output was comparable to the quality of a 1″ C-format machine, and the CG letters were comparable to Dubner or Chyron systems of the time. What people fed into the Toaster was another matter. VHS in is going to look like VHS coming out.

Apparently, all the source is in M68K assmebly language but I haven’t had a chance to look at it yet. If this is the case, you might as well start from scratch (unless of course you own an AMIGA, then it is very useful). The Toaster itself did all of the graphics work, and that the Amiga was really just there to control it. Basically, Toaster was a hardware package with controlling software, not just a software package. You can’t really port it to the PC any moreso than you can port, say, the custom software used in a flatbed scanner to a PC; you might be able to emulate the internal operation, but the hardware itself is missing. Another useless tidbit of info is that Dana Carvey’s brother, Brad Carvey, designed the hardware in the Video Toaster.

God bless the Toaster, and those who couldn’t resist tossing in a few Kiki effects or falling sheep here and there! You can find the Open Video Toaster page here.

« Older posts Newer posts »