Wednesday, November 30, 2005

Who Still Runs DOS ... I do, I do!



It is an unfortunate fact of my life that I still have to use DOS applications ... frequently. I recently was called in to look at replacing an old drawing log system still in use at my company. The goal was to replace its functionality and put it in our company portal. There was only one problem with this ... how to get the data out of the system? The old Drawing Log System was written in Turbo Pascal 6.0. That's right folks, Turbo Pascal ;-). All of the data files were in a binary format and we did not have the source code. Bummer. To make matters worse it did not run reliably on anything besides an older system (original Pentium class or older).

This is where DOSBox comes in. DOSBox emulates DOS (machine and all). It runs not only on Windows but also on Linux. You can even emulate older PCs by setting up how many operations per second it emulates. After I fired up the program in DOSBox it worked reliably and I was able to save the Drawing Log files to text files (after some wrangling). If you are having problems running DOS games or applications, DOSBox is for you.

Tuesday, November 29, 2005

EverNote - A Review


I've seens a lot of organizer programs come and go over the years. I've used a lot of them and the ultimate test in how useful they are is how long I can stand to use them. If they are a toy then typically they last about a week. If they are marginally useful they might last a few. If they are very useful they might hang around as long as EverNote.

EverNote is not everything to every person but it sure has taking notes, tasklists, etc. down cold. I have set up many to do lists, etc. in the program and I just keep coming back for more. With search, categorization, image pasting and many more features than I have the time to name EverNote is worth your time to check out.

Monday, November 28, 2005

Grease Lightning


I'm not much of one for time wasting games. I play maybe 5-10 hours a week (and have to squeeze that in around a lot of other things). However, recently I have started playing a game called Lightning Break. Lightning break is a game of skill with pool balls. The object is to put balls into the pockets in a specific order (depends on the round). It sounds simple but aren't all the really fun things in life. I truly suggest this game as a lunch time time waster.

Wednesday, November 23, 2005

Unless I Get A Wild Hair

Hello everyone,
Unless something dramatic comes to me, I'm starting off my Thanksgiving Holiday and will not be writing until next Monday (Nov. 28, 2005). I wish all the Americans out there a very Happy Thanksgiving. To all the rest of you, Happy Days ;-).
-Mike

Tuesday, November 22, 2005

Oldie But A Goodie


Back in the bad old days of video games all we had was text adventures. Yes, I know, text adventures are crap. Sometimes I get nostalgic however and what could be better than sharing a crappy text adventure with a bunch of people online. That's where MUDs come in. MUD stands for Multi-User Dungeon. It is a text adventure that basically a group of people share online. Over the years these adventures have grown very elaborate.

Out of all the MUDs I've seen Age of War is probably one of the most elaborate (and most fun). The area you can explore is huge, there are arenas where players can meet in armed combat and the people are really friendly. If you want to explore what adventure gaming was like in the age of CGA graphics give Age of War a shot. I think you'll find you can have a good, immersive time without the frills.

Monday, November 21, 2005

Bored Again

It never fails to happen. You take your wife out shopping and of course you are sitting out in the store on a chair meant for miserable saps like you. You wait and you wait, bored out of your skull. The boredom is punctuated by your significant other coming out and asking how they look in these clothes or those clothes.

You can either accept this fate or read a good book and wait patiently for them to come out while being entertained. I have a BlackBerry and it has opened up the wonderfull world of ebooks to me. Ebooks are expensive you say. If you are willing to read older books it's not expensive at all. Point your browser to this link and never be bored in the store again.

Saturday, November 19, 2005

The Svelte Sounds Of The Past

I consider myself to be a aficionado of the history of the early to mid 20th century. Perhaps a dabbler would be a better word. One of the key components of a culture is the music that it chooses to listen to. That's why I was incredibly excited to find the Cylinder Preservation and Digitization Project.

In the late 1800s and early 1900s sound recordings were made on cylinders of wax that were played back on phonographs. Obviously not many people have access to a phonograph machine. Even if you did have a machine it would be tantamount to historical suicide to listen to one of these cylinders today. Like a record player, every time you listen to a cylinder you degrade its quality just a little bit.

The Cylinder Preservation and Digitization project has made 5000+ of these cylinders available to the public in the form of mp3 and unedited .wav files. Go out and see what your grandparents and great grandparents were listening too. I am as we speak.

Friday, November 18, 2005

Lost Disks No More

Here at the office we have a constant problem, people "borrowing" install CDs and never returning them. I got so sick of this phenomena that I started making ISOs of CDs and placed them on a linux box running Samba. CD ISO images can be "mounted" as file systems in Linux using loop devices. For a full explanation of this process click on this link. Combining this capability with Samba (basically creating a Microsoft Windows network share) you should be able to tell people to install from your CD server instead of handing out the disks.

For those pesky people that want a CD you should be able to just tell them to burn the ISOs from the CD server to a CD with Nero or Easy CD Creator. If a installation program absolutely requires that the disk be in a "CD Drive" use a tool like Daemon-Tools (see picture below). This basically mounts a ISO image on your Windows machine and emulates a CD drive. With these tips you should be set to stop losing those precious install CDs. Viva la installacion!

Wednesday, November 16, 2005

VMWare Rides Again

Yesterday I wrote in my blog about using the VMWare Player application with a VMXWizard to basically get a "free" VMWare Workstation software application on your machine. I ran into one snag however. The VMWare Player does not come with VMWare Tools for Windows and Linux. The VMWare Tools enable you to install SVGA drivers on a VMWare image. Without it you are stuck in 16 bit color ... YUCK!. After a little digging I found some downloads for you on the VMWare site. These links are:

Linux VMWare Tools: http://www.vmware.com/support/esx/doc/install_guest_esx.html
Windows VMWare Tools: http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=920

These pages come with full instructions but basically with the windows download you get a .iso image that you can mount by editing the .vmx file that configures your VMWare "machine". For example in my .vmx file this looks like:

ide1:0.filename="C:\Documents and Settings\Administrator\Desktop\VMWare Tools Install\windows.iso"
ide1:0.deviceType="cdrom-image"

After that you can run the setup off of your "CDROM" drive (the mounted image). That finalizes your ability to fully run VMWare on your system for free. Here is a picture of a loaded Windows 2000 server install running in VMWare:

Tuesday, November 15, 2005

VMWare Player And Free Virtual Machines


I love scratch space. Machines that I don't care about destroying are frankly a very wonderful thing for a programmer. Machines that always have a standard configuration are an elixir to a beleaguered soul.

When I heard that VMWare was releasing a free VMWare Player I rejoiced. Finally, virtual machine software that is free. The only problem was that the player could not create its own VMWare "machines". Luckily with software like the VMXWizard that is not a problem. You can use the VMXWizard to create your VMWare machines and then launch them from the player. Yippee! Time to start playing.

Monday, November 14, 2005

Dystopia Half-Life Mode


I have a new addiction and it's not pretty. I just spent a large chunk of my weekend playing Dystopia, the Half-Life 2 mod.

Dystopia combines a first person shooter with a second element, cyberspace. In this game you can play a decker which means you can "jack in" at specific places on the map and accomplish goals for your team (open door, take over security turrets, etc.). The thing that makes it interesting is that when you are decking you are completely vulnerable in the "real world". This means that to be truly effective as a team you have to have people protecting you.

I strongly suggest you check out this mod. You will have a blast.

Friday, November 11, 2005

UltraVNC Single Click


I support a lot of family and friend's PCs. One of the things I hate most is to get a call at 8:00 at night for PC support. If it's an "emergency" I have to crawl out of my very comfortable house and help fix the problem on site. That is why I have enjoyed learning about UltraVNC Single Click.

With UltraVNC Single Click you wrap a executable with the VNC client, a logo (picture of who you are) and some information. Then you launch the UltraVNC client with the following command line:

"C:\Program Files\UltraVNC\vncviewer.exe" -listen

Then you place the UltraVNC Single Click executable on a web page (or some other accessible place). Now when your relatives have computer problems they can surf to your web page, click on the executable, run it and then their PC establishes a connection to your viewer. As long as they can route to your machine you now have the ultimate support solution.

Thursday, November 10, 2005

Workflow Made Simple


I recently wanted to build myself a workflow program for configuring quotations for my business (Guinterface). What I really wanted was a "drag and drop" product configuration engine that interfaced with my payment processor (either PayTrust or 2Checkout). I also wanted it to have the ability to take a configured product and print out a pdf quotation (not everyone can pay you right away, some need authorization from their boss).

There really was nothing out there that met my needs (that was in my price range ... FREE). When faced with not having what I want or paying WAY to much for it I take the programming road. The first step in the configuration/quotation/shopping cart program is leading the user through a series of questions that determine what the product will cost. The obvious solution to that was some kind of graphical workflow. JGraphPad, is a "flowcharting" package that is much like Microsoft Visio (except that it is free and a darn sight more flexible). What makes this program great is that it outputs to XML and it allows you to define properties at the "nodes" of your graphs.

To create the front end to my workflow/configuration engine I utilized JGraphPad to create product configurations. To do this I created a few different node types (Workflow, Attributes and Coupon Nodes) and of course there are the arrows that connect Workflow nodes. The Workflow nodes are connected together to form the steps for configuring a product. Each Workflow node asks a question of the user and then exits to another Workflow node via a arrow (based on user input). The Attribute nodes are simply the questions that we want to ask to the user. An example of the properties of a Workflow node is:


This nodes properties basically asks the workflow engine to ask the Attr_BaseInstalls (from the Attribute node of the same name) question. The number of unites that will appear on a quotation for this line is in (evaluated Perl) in the StepLineUnitQty field. The coupons that can be applied to this step are in the CouponsThatApply attribute. The title shown on the web form that asks the Attr_BaseInstalls question is in the StepTitle attribute. The description for quotation line is in the StepLineDesc in evaluated Perl. The currency value that will appear on a quotation for this line is in (evaluated Perl) in the StepLineValue field in evaluated Perl.

The properties for the Attr_BaseInstalls Attribute node are as follows:


This defines all the properties of the questions we ask the user from the Workflow Nodes. It encapsulates checking of user input (Verification property), user prompts (Display Prompt), etc.

Once I had created a structure for creating these workflows I needed a way to interpret the results and lead the user through a list of questions to configure their products. Since JGraph graphs are saved as XML data I was able to use Perl (with the XML::Simple and Graph::Directed modules) to interpret the JGraphPad save files and create the rest of the configuration engine. The final result looks something like:


I love using a combination of open source software with programming know how to solve problems (rather than spending hundreds of dollars). My product configuration/workflow engine may not be pretty but it sure is free ;-).

Wednesday, November 09, 2005

Let Backpack Bear Your Burdens


I hate to admit it, I'm a highly disorganized guy. I'm the guy who leaves reminder notes all over his house to try to keep track of daily tasks. I'm the guy that forgot to go to a wedding once (don't ask). I'm the guy who forgot he had a dinner scheduled with his parents. Yep, I'm one of the disorganized and discombobulated masses that needs serious help.

I'm also a guy who runs a business and needs to keep track of clients, projects, support contracts, etc. It was these needs that got me interested in web based service called Backpack. What can I say about this WONDERFUL service? Backpack enables you to create notes, to-dos, shopping lists, etc. You can even add multiple people to specific to-dos and notes. This enables them to read and modify them. The really beautiful thing is that you can send yourself email and SMS reminders. Using that in conjunction with my BlackBerry is a dream come true. No more forgetting dinner with my mother, YEAH!

Try BackPack if your needs seem similiar to mine. Your Mom will thank you.

Tuesday, November 08, 2005

Synergy On The Desktop

I have a lot of computers at home. I have 3 of them in my office and almost always have at least 2 of them on. It would be truly convenient to use all of these computers at one time as a "super computer". All of this is possible with Synergy.

Synergy enables you to arrange your monitors side by side (and stacked on top of one another) and treat you monitors like one big desktop. Each of these monitors is run by a seperate machine that can be running different OS's. They can be run from one computer mouse and keyboard. This is superconvenient for programming. I can run documentation on one machine while developing on another. I can copy and paste between Windows machines and Linux machines. I can use one keyboard to drive all my machines. In other words, I'm in heaven.

If you have multiple machines and long to make them useful try Synergy.

Monday, November 07, 2005

DemoStudio By Suggestion

After my latest article on Wink (a program for creating demos) I was told by a a colleague and in the comments on the article to check out DemoStudio. I have to say I was really expecting to see something but I came away dissapointed. The suite (if you would dare call it that) is composed of 5 programs, none of which have any cohesive glue between them. I tried to annotate the screenshots I took of a app, nothing. I tried to annotate the AVI recordings I took of my app working, nothing. I'm sure I'm missing some of the features that make this app great but, yikes! Please make the apps usable. Combine all the seperate functions into a single program and make it intuitive. Even for a free app this was one of the biggest turds I have ever seen. Like I said, I'm sure I'm missing something and if I am I sincerely apologize for this scathing review.

Friday, November 04, 2005

Transcoding Fun And Games

Alright so you have created a ton of video content with your ATI All In Wonder or other capture card. You have all of this live television recorded for you viewing posterity. There are a few problems however, commercials and it is in MPEG2 which is a complete pig. There are a few tools that can come to your rescue. Let's start with commercials.

Everyone hates commercials. Even if you can fastforward through them why would you want them to be in your archival video. They just take up uncessary space. Luckily there are tools out there to automagically get rid of them. The best of these is called comskip.exe. This program takes MPEG2 programs and automatically discovers where the commercial points are.

The next problem is the transcoding part. This is easily solved with mencoder.exe which can be downloaded for Windows and Linux from the MPlayer site. Let's say you wanted to turn your MPEG2 file to a XVID with the commercials skipped. That could be accomplished with a series of commands such as (This was ripped off of the GB-PVR site at the following link):

1. edit postprocessing.bat to run

comskip.exe on %1 and echo %1 >> \pvr\transcode.txt

2a. edit \pvr\transcode.cmd to something like that:

#!/bin/bash
f=`cat \pvr\transcode.txt`
for t in $f; do
\pvr\mencoder -oac mp3lame -ovc xvid -xvidencopts fixed_quant=4 $t -o $t.new
if [ %errorlevel% == 0]; do
del $t
ren $t.new $t
done
egrep -e $t \pvr\transcode.txt >\pvr\transcode
done

2b. or in batch syntax (from NormanR)

copy \pvr\transcode.txt \pvr\transcode.tmp
for /f %%a in (\pvr\transcode.tmp) do call :process %%a
del \pvr\transcode.tmp
goto :eof
:process
\pvr\mencoder -oac mp3lame -ovc xvid -xvidencopts fixed_quant=4 %1 -o %1.new
if errorlevel 1 goto :failed
del %1
move %1.new %1
:failed
find /v "%1" < \pvr\transcode.txt > \pvr\transcode.new
del \pvr\transcode.txt
move \pvr\transcode.new \pvr\transcode.txt
goto :eof

3. schedule a new task to be run on weekdays (Mo-Fr) at 9:00 \pvr\transcode.cmd and enable maximum run for 8h.

The UNIX tools (like cat) can be downloaded from the following link. Happy transcoding!

Thursday, November 03, 2005

Wink If You Understand Me


Do you ever have to help people with you software that just refuse to understand what you are talking about. No matter how many ways you explain the issue they still just "don't get it". If you have this problem then Wink is the program for you. Wink enables you to capture screen shots and "movies" of your application in action and then insert descriptive text that will help your users complete a task. A picture is worth a thousand words. If you agree then check out Wink.

Wednesday, November 02, 2005

The Star Runner - Chapter 4 Section 2

I have a new section of The Star Runner for your reading pleasure. You can find it at:

http://www.writely.com/View.aspx?docid=adcvz3dmcjv5


Have fun!

WinMorph And The Art Of Blending


Recently I had to pictures that were reasonably similiar and I wanted to produce the in between ("tween") pictures that when put together would transform the original to the final picture. Whew, that was mouthfull ;-). Being a fan of free software (and being stuck on Windows) I searched around and found WinMorph. This software lets you morph one movie frame into another and incidentally will work on still images as well.

Software similiar to this is used to move babies mouths in those commercials we see on television (it's a feat so unless you are very patient don't try this at home). Anyway, if you want to morph pictures for presentations or animations you should check this package out.

Tuesday, November 01, 2005

If I Thought Someone Were Listening

If I thought someone were listening I might care if this was all I posted for the day ;-)