Thursday, December 29, 2005

Hospitals Are So 1500s

I had a fun Christmas! Oh boy I did. My wife was hospitalized this last weekend during Christmas and it was a blast. I have never seen a more convoluted, slow, shift the responsibility on the next shift bunch of crap in my life.

Health care is the only business I know where customer service is uneccesary. Why? The answer is simple. No matter how bad their service, a hospital is not going to lose any business. In fact as long as they do not kill you they are almost guaranteed you will come back. This is especially true in areas with very few hospitals.

If you wonder why your medical bills are so high look no further than your local hospital's emergency rooms. You wait 3 hours to get a room (if you're lucky). Then 2 hours later a man comes in for some blood work. If you are unlucky enough to go towards the end of a shift the current shift is looking for a way to shift your case to the next shift. In other words be prepared to have to wait until 4 in the morning to get admitted to the actual hospital from the emergency room if you come in past 8 in the evening be prepared to wait as people shuffle you from person to person like some strange inefficient ballet.

Then, when you do get your room be prepared to be interrupted every hour on the hour as your vitals get checked, blood drawn, etc. Then be prepared to wait for the next afternoon for a Doctor to actually dain to come and release you from the hospital. All in all hospitals are prime example of human stupidity, laziness and inefficiency. Then we wonder why a basic hospital visit costs $1000 a day. I don't have to wonder anymore.

If I ran my businesses like hospitals are run I would not have a business.

Tuesday, December 20, 2005

Merry Xmas

Merry Chrismas to all. I will be taking a break from writing from now until next Wednesday in observance and celebration of the season. I hope you all have a wonder Christamas holiday.

Monday, December 19, 2005

Inconvenient Temp Files

Recently I had a temp directory that shut down a server by filling up the C drive. The culprit was a nightly job that unzipped temp files into the temp directory (Go Figure ;-)). The solution was simple. Create a Perl job to kill those files nightly before that other job runs. The code follows:

# This program get's rid of all the files matching regex $regex (ckz_* in our case)
# temp files for user ARGV[0]

use File::Path;
my $user = $ARGV[0];
my $regex = $ARGV[1];
my $temp_dir = "C:\\Documents and Settings\\$user\\Local Settings\\Temp";
if (-d $temp_dir) {

      opendir(DE,$temp_dir);
my @all_files = readdir(DE);
foreach $file (@all_files) {
# Make sure file is not a directory
$entry = "$temp_dir\\$file";
if (-d $entry) {
if ($entry =~m/$regex/i) {
print "DELETING ENTRY: $entry\n";
rmtree($entry);
}
}
}
closedir(DE);
}

else {

print "Directory $temp_dir Does Not Exist!";
}

This code removes any temp files matching $regex in the user $user temp files. These two variables are passed in on the command line ($ARGV[0],$ARGV[1]).

Funny Clause

http://members.cox.net.nyud.net:8090/jmccorm/santa.html

Enough said.

Friday, December 16, 2005

The Travails Of Using SMS Messaging To Communicate Server Downs

Recently, my company email servers have been flaky. It has been decided that we needed a way to communicate server downs to the IT staff so we can take corrective actions. The easiest way I could come up with was SMS messaging to our company cell phones. The only problem is that my company is cheap and SMS services that you can call programmatically cost money.

Perl came to the rescue yet again. I remembered that the T-Mobile website (our cell service provider) had a web page you could use to communicate with T-Mobile cellphones. You only needed an existing account setup on their site (with your mobile number and a password).

Armed with this knowledge I started using Samie and Win32::GuiTest to automate Internet Explorer to do the whole process automagically. Samie is a great package but it does have some issues. Some of the procedure calls do not work as expected. I've posted a modified version that works with my code at:

http://www.streamload.com/lamberms/Sam.pm

Anyway, here is the code solution to do SMS messaging. It comes in two parts, tmobile_sms.pl and kill_ie.pl. You call tmobile_sms.pl with five arguments, your T-Mobile cell phone number, account password, T-Mobile phone number to sms, from information and the message. It then automates IE to go to the T-Mobile web page, log in and send the message. When it is done doing this kill_ie.pl kills the popup the T-Mobile web site pops up (Samie does not do this well) and closes IE. Here is the tmobile_sms.pl code:

use Win32::OLE;
$Win32::OLE::Warn = 3;
use Win32::SAM;
$| = 1;
my $URL = "https://my.t-mobile.com/Communication/";
my $IEDocument;
my $seconds;
my $account_mobile_num = @ARGV[0];
my $account_mobile_pass = @ARGV[1];
my $mobilenum_to_page = @ARGV[2];
my $from_text = @ARGV[3];
my $msg_text = @ARGV[4];

if (@ARGV[0] eq "" || @ARGV[1] eq "" || @ARGV[2] eq "" || @ARGV[3] eq "" || @ARGV[4] eq "") {

       print "Invalid Command Used.  Command Should Be Formatted Like:\n";
print "tmobile_sms.exe your_cell_phone_num your_cell_phone_pass cell_phone_to_sms from_text msg_text\n";
exit;

}

StartIE();
$seconds = Navigate($URL);
print "First Page took $seconds seconds to load\n";
SetEditBox("txtMSISDN",$account_mobile_num);
SetEditBox("txtPassword",$account_mobile_pass);
ClickImage("https://my.t-mobile.com/images/mytmobile/ph/buttons/leftp.gif",0,1);
print "Second Page Loaded In $seconds.\n";
while (not VerifyTextPresent("SELECT A PHONE")) {

       print "Select A Phone Text Is Not Present\n";
sleep(1);

}
$seconds = Navigate($URL,0,1);
print "Third Page Took $seconds seconds\n";
while (not VerifyTextPresent("Characters left")) {

       print "Characters left Text Is Not Present\n";
sleep(1);

}
SetEditBox("txtNum","$mobilenum_to_page");
SetEditBox("txtFrom","$from_text");
SetEditBox("txtMessage","$msg_text");
$seconds = ClickImage("https://my.t-mobile.com/images/mytmobile/ph/buttons/left.gif",0,1);
if (-e ".\\kill_ie.exe") {
exec(".\\kill_ie.exe");
}

if (-e ".\\kill_ie.pl") {
exec(".\\kill_ie.pl");
}
exit;

And here is the kill_ie.pl code:

use Win32::GuiTest;

$| = 1;
my @windows = ();
my $time_counter = 0;
while ($#windows == -1 && $time_counter < 121) {

     @windows = Win32::GuiTest::FindWindowLike( undef, "^Microsoft Internet Explorer", "","",5 );
$time_counter++;
print "Looking For Popup Window\n";
Win32::Sleep(1000);

}

if ($time_counter == 120) {

     print "FAILURE Finding Microsoft Internet Explorer Window!!!!\n";
exit;

}

else {

if ( !bring_window_to_front( $windows[0] ) ) {

print "* Could not bring to front $window[0]\n";
}

     my @enterbutton = Win32::GuiTest::FindWindowLike( undef, "OK", "Button" );
if ($#enterbutton > -1) {
#Click OK Button
Win32::GuiTest::SendKeys("~",1);
Win32::GuiTest::SendKeys("%({F4})");
print "Clicking OK Button\n";
exit;
}
else {
print "Could Not Click Enter Button\n";
exit;
}

}

exit;

sub bring_window_to_front {


my $window = shift;
my $success = 1;
if ( Win32::GuiTest::SetActiveWindow($window) ) {
print "* Successfully set the window id: $window active\n";
}
else {
print "* Could not set the window id: $window active\n";
$success = 0;
}
if ( Win32::GuiTest::SetForegroundWindow($window) ) {
print "* Window id: $window brought to foreground\n";
}
else {
print "* Window id: $window could not be brought to foreground\n";
$success = 0;
}
return $success;

}

Thursday, December 15, 2005

Mono Is A Game


After my last blog entry on Mono the development environment I thought it would be appropriate to talk about my new game obsession, Mono. In this game you go around shooting simple spheres and collecting powerups that increase the power level of your shots. All of this is happening to a simple techno score and it just ROCKS! It is like asteroids with a twist and I cannot get enough of it. I think you might like it as well.

Wednesday, December 14, 2005

Orange Is Not Just A Fruit Anymore


For a long time now I have been fascinated by the use people make of such open source tools as Blender, Povray, Audacity, etc. Put together, these excellent 3d rendering and sound packages make it possible for the end user to produce Pixar quality short films. As proof, I offer up Project Orange. This is a project to use Blender and other open source tools to produce a short film. The blogs on this site give quite a bit of insight as to what it takes to produce creative works with free tools. It makes for interesting reading.

Tuesday, December 13, 2005

Mono Is Cool In Concept

I've been working a bit with Gentoo Linux lately and I was curious about cross platform development between WinBlows and Linux (Yeah, I know, gross!). The one project I came up with that seemed plausible was Mono. Mono is a cross-platform development environment that uses basically replaces .Net. It has the C# language (the flagship of .NET development) and it seems relatively complete. The only problem I see so far is a problem that affects many open and closed source projects ... the documentation sucks. I am looking to compile a set of C# code into a dll and it is next to impossible to figure out how. I'm probably missing something. I'll report what I find out in the next few days on the blog.

Monday, December 12, 2005

I've Been Dug

Looks like I have been dug 10 times at digg.com. Check it out at:

http://digg.com/programming/Resize_And_Markup_PDFs_For_Free

Welcome diggers ;-)!

Friday, December 09, 2005

Resize And Markup A PDF For Free (Well If You Have The .Net Dev Environment Anyway)

Well, yesterday I promised you code to resize or markup pdf documents. I've been frustrated for years because every library I ever used made the pdf look horrible when I did a resize. Then ITextSharp entered my life and everything changed. After a bit of work I was able to come up with the code that allows me to resize a pdf to A,B,C,D,E,A3 or A4. I can also markup the pdf. This code will create a command line program for you that will do the same.

To get this working:

  1. Create a new Console Application VB .NET project
  2. Set a reference to the ITextSharp dll (found from the ITextSharp link above)
  3. Set the startup object as the Main subroutine in the code
  4. Build the project
After building the project you will get a command line program. The arguments to this program will be:

  1. Source PDF file
  2. Destination PDF File
  3. Operation - Resize or Markup
  4. The size for the destination PDF (A,B,C,D,E,A3 or A4) or the markup text
Since the commercial alternatives to this free software cost "real" money, I would not mind a small donation (if you feel really generous). To do this use the following link (defaults to $10):



The code can be downloaded at:

http://www.streamload.com/lamberms/PDFCommandLineCode.zip

Happy Coding!

Thursday, December 08, 2005

Stay Tuned

I'm working on some code feverishly for resizing and "watermarking" PDF files. This has been the bane of my existence at work. Getting it correct programmatically is a pain. This has made it necessary for me to purchase utilities for doing this in the past. I wish to save you this expense if I can. So anyway, stay tuned in the next day or two for some VB .NET code for resizing PDFs followed by code for marking up PDFs.

Wednesday, December 07, 2005

Playing With PDFs Programmatically

Let's face it, PDFs have become the defacto standard for sharing documents with your employees and customers. The problem comes in when you want to automatically generate things like invoices, quotations, etc. programmatically. I am constantly playing with PDFs at my day job as all of our drawings are converted to that format. It is not unusual for me to want to do things like watermark and resize these documents. When I want to do these kinds of things I turn to a few different libraries depending on what environment I am currently in. Here are a list of the libraries I am currently using:

1. Perl - PDF::API2
2. Java - Itext
3. .NET - ITextSharp

With these libraries on your side PDF manipulation ceases to be a chore and becomes fun (OK, well tolerable then).

Monday, December 05, 2005

Christmas Times A Coming

Oh, Christmas, where have you gone? Do you remember when Christmas did not mean doing a mad dash for cash until December 25th? Do you remember when it really was the thought that counted? Do you remember when you did not have to spend $1200 at Christmas just to "satisfy" everyone? Do you remember when just being together was Christmas enough.

I wish instead of remembering this I was experiencing it now.

Friday, December 02, 2005

My Head's In The Clouds


I am not usually a fan of games that don't involve First Person Shooter characteristics. That may explain why I came to Cloud with low expectations. I thought I would find boredom, instead I found a non-linear, entertaining and engaging game. Give it a check out.

Thursday, December 01, 2005

Just Curious

Hey there everyone. I was just wondering if anyone was reading my ramblings. If you are could you post a comment and let me know you are out there ;-)?

Spyhunter Rides Again


Remember the SpyHunter arcade game? I do. I remember how it bankrupted my tight budget as I tried to stay one step ahead of the enemy vehicles and ended up feeding quarter after quarter into the darn machine.

Thankfully, with the Internet, I have an alternative to bankruptcy and it's called Highway Pursuit. This freeware game is basically SpyHunter for a Windows machines and has the advantages of being free and a lot prettier than the original. Check it out for some good ol' fashioned fun.

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 ;-)

Monday, October 31, 2005

Store Your Video Tracks On Wax


I'm a very amateur 3D artists. I've been looking for a way to string a bunch or 3D scenes together with transitions and do some simple effects (besides the Microsoft MovieMaker). I think I have the answer and it's called Wax.

This simple program allows you to add media (video, audio, pictures) to a non-linear editor and then start playing. You can add DirectX transitions, a bunch of built-in plugins and transitions. I found this program to not only be easy to use but fun to play with (the hallmark of a good application). You owe it to yourself to check this program out if you do video editing on a Windows box.

Friday, October 28, 2005

A Machine Shop In Every Home And A Chicken In Every Pot


Like many of you, I have wasted many a hour playing the game Tetris. This game is a marvel in simplistic rules leading to complex results. That is why I was so happy when I saw my favorite game repurposed as shelving. I thought, "Hey that his pretty darn cool." Then I thought about all those executive desk toys and I knew what I had to have. How cool would it be to have small Tetris blocks that you could stack on your desk. Pretty darn Geeky if I don't say so myself!

Ahhh, now the problem was how to build the blocks. I could have used my Father's power tools and come up with a wooden model. What fun is that though? I wanted it made out of plastic or some really, really cool model like brass. That is where emachineshop comes into play. emachineshop is a online machine shop that is easy to understand if you have any experience with 3D. You just download their CAD program, input your design, enter the material you want to use, select a process to use (3D mill, lathe, etc.), select a finish and receive a quotation. Their CAD program automatically alerts you to any difficulties that may be present in your configuration of your parts.

It is a quick to design your part with the problem that it is expensive for low volume jobs. My order of 5 sets of 5 blocks was 300+ dollars. That amount goes down quickly with volume. I eventually decided 300 and some dollars was too much for a set of desktop toys. If you want to cut those costs and get your own Tetris desktop toys, I know someone interested in helping you...

Thursday, October 27, 2005

Clear As Kristal


I am a big fan of Acid, a program for mixing together music samples. I'm also a fan of free software as well. This is where the Kristal Audio Engine comes into play. If you are just mixing sounds for your personal enjoyment this program is completely free and competes pretty well with Acid. Better yet, it enables VST plugins which opens a world of sonic possibilities to the end user.

If you have ever wanted to mash up sounds in a creative way for a ridiculously cheap price then Kristal is for you.

Wednesday, October 26, 2005

The Star Runner - Chapter 3 Section 5

I just added new addendum section to my story The Star Runner to more closely tie chapters 3 and 4 to one another. You can find it at:

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

Enjoy!

What An Audacious Sound


In my work for Second Life I often need to edit sounds for my various games and products. I have tried a lot of programs over the years for sound editing and creation but a few years ago I got a hankering to be completely legal in the software I use (comes from selling software yourself). It was then that I discovered Audacity. Audacity is a free sound editor but free does not mean crap in this case.

With audacity you can do all the standard editing, pitch changes, fades, etc. With its support of LADSPA and VST plugins as well as support for the Nyquist language almost any kind of sound or effect can be created within this program. If you are recording sound or changing it I suggest this program.

Tuesday, October 25, 2005

The Star Runner - Chapter 4 Section 1

The newest section of my new story, The Star Runner:

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

Enjoy!

Auditing Over The Network


At my "real job", we have a lot of user systems just floating out there. We really need to know where these computer are at as far as specs, program licensing, etc. The problem is that we have not done an audit in several years. We really have no clue at all what is running on these system. A free program called WinAudit goes a long way towards solving this problem for us.

WinAudit will scan a machine and give a you a very comprehensive spec/software/drivers loaded, etc. list. The only problem is how do you get the information from the machine to a central repository. I quickly discovered that WinAudit had a command line batch mode. Now I just needed a way to get the text file the batch mode produced to a central repository. I thought about creating a batch file to copy the text file to the network drive but then I realized that our outside sales people could not use this option. What was a itinerate programmer to do? That's easy, script a solution. That sounded painful so I decided to use TaskTastic. TaskTastic is a program that I wrote that had pre-defined "Logic Blocks". The logic blocks include emailing attachments, running executables with command lines, etc. Yep, it seemed tailor made for this.

I created a TaskTastic workflow in a few minutes to run WinAudit in batch mode and then I wrapped the WinAudit executable in with the workflow process to create a executable file that my users could run to give us "audit" of their machine. That process looked like:


Now my users can run this TaskTastic workflow executable and a central email address collects that information for futher analysis. Problem solved!

Monday, October 24, 2005

Diving Into Java Head First


I have been meaning to learn Java for a long time now. You can imagine my excitement (yeah, I know, I'm a complete geek), when I saw a copy of Head First Java at my local bookstore on clearance for $14.99. I thought, "What the heck are you waiting for you lazy get. Buy the book and learn already." I've not been regretting it. The Head First Series are some of the best books in computerdom for teaching you the necessities of a new subject. They take you step by step through the process of learning using visual storytelling devices that work (at least for me). I whole heartedly suggest this book or any others in the Head First series.

Sunday, October 23, 2005

The Star Runner - Chapter 3 Section 4

Here is the fourth and final section of chapter 3:

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

I'll keep them coming as they come to me.

Friday, October 21, 2005

The Star Runner - Chapter 3 Section 3

Here is another mini-section of my "novel" for those of you who are interested:

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

Enjoy!

Thursday, October 20, 2005

The Star Runner - Chapter 3 Section 2

I have posted the next mini section of chapter 3 of The Star Runner. You can find it at:

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

Have fun ;-)

It's Nothing Personal

When I got fired from my first "real job" the manager sat down with me and said. "Michael, I'm really sorry but it's just not working out. Your performance on this last project was pretty bad and we can no longer give you employment with us. It's really nothing personal." It's nothing personal. After going to the restroom and having a fit (and getting some odd stares) I realized what a crock of crap that statement was. To me, it was the most personal thing in the world. I was being told I was not good enough to hold a job there. What could be more personal?

Now, years and many miles more experience later, I realize what the manager was trying to say. He was trying to say "Hey, this is a lousy job doing this firing thing. I'm really not comfortable with it. If you could just do me the favor of not raising a fuss and making it harder for me I would really appreciate it." He was right. It is a incredibly hard job to fire someone. Both sides feel nervous. However, don't minimize the feeling of uncertainty and doubt in the person you are firing by saying "It's nothing personal." Let's face the facts ... you're wrong.

Wednesday, October 19, 2005

Letting ImageMagick Do Its Magic

I love coming up with programmatic ways to solve problems. Recently I was creating something called "The Orb" in SecondLife. Basically The Orb is like a pet that follows a avatar around and does useful (and sometimes blingy) kinds of things. The Orb is in reality just a hollow 3D sphere but I wanted to jazz it up a bit. What I needed was animated textures.

After a little bit of time searching the LSL wiki I realized the problems inherent in how SecondLife animate texture. To animate a texture in the game you call a function like the following:

llSetTextureAnim(integer mode, integer side, integer x_frames, integer y_frames, float start, float length, float rate);

The texture (already loaded on the 3D sphere) is in the form of the frames of the animation placed in the same texture one below the other (see picture at left). This caused me some grief. All I had were the individual frames (in the form of png files). I was going to be doing 10-15 of these animations and I did not want to manually place these "frames" in the same file. I knew about a set of cross platform utilities called ImageMagick that could be used to transform over 90 image formats. I really was hoping it could help me. Sure enough, it did.

ImageMagick contains a utility called convert.exe. This command line utility has a multitude of functions that can be used on a single image or a series of images. By using the command:

convert -append *.png


I soon had a directory of pngs converted to a single png with the "frames" of a animation stacked one on top of another. Voila. ImageMagick to the rescue.

Deaths In The "Family"

One of my coworkers parents in-laws died and yet another person I know is getting fired here at my job. I'm not feeling much like writing today. Perhaps tomorrow.

The Star Runner - Chapter 3 Section 1

The latest chapter section has been completed in my story. Here it is for your reading pleaure:

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

Things seem to be shaping up on this story. It seems to be writing itself. Let's hope that trend continues ;-)

Tuesday, October 18, 2005

The Smaller Gentler Torrent Client


I use torrents all the time (all for legitimate, legal purposes of course ... cough). I have used many of the standard clients (Azureus, BitComet, etc.). Most of these clients are way TOO fat for my tastes. There use of Java or just superflous features make put them squarely in the NO column in my book. Then I discuvered a little BitTorrent client called uTorrent. This Windows BitTorrent client is 96KB. That's right, 96KB. It has all the features I'm looking for including bandwidth shaping and scheduling. Here is a picture of that little feature:


I think this BitTorrent program is fully worthy of your attention if you value efficiency and expediency in you applications.

Monday, October 17, 2005

The Star Runner - Chapter 2 Sections 1 and 2

I now have sections 1 and 2 from chapter 2 of The Star Runner published and ready to critique. You can find them at:

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

Be gentle, these are first drafts ;-)

Bring In The Clipart

I do a lot of work in SecondLife and Real Life for that matter with marketing literature and product design. Sometimes you just don't have any ideas on where to begin with a particular project. I find it helpfull at that stage to look at other people's work for inspiration (not thievery, just inspiration ... well mostly anyway). I find that a clipart resource is one of the best ways to get that kick start. Lately, I find myself enamored by a little open source project called OpenClipart at:

http://www.openclipart.org/

This project, faintly associated with Inkscape, has 6900+ vector (SVG) drawings. These SVG drawings can be used in conjunction with Inkscape or the Gimp to complement any projects that you may be working on.

Another great resource for these kinds of projects is IStockPhoto. They take submissions from the community and you pay a dollar per image. These images are royalty free as well (with some restrictions). IStockPhoto in conjunction with the OpenClipart project and Inkscape brings the means to create brilliant marketing presentations to the masses on a budget. What could be better than that? Oh, that's right, sliced bread.

Sunday, October 16, 2005

The RIAA Ten Commandments Tee


The RIAA irks me in a big way. Not satisfied with the millions of dollars they earn every year they have to push legislation that limits my ability to use products I own. I felt like wearing my disdain for their policies so I created a T-Shirt that makes my feelings clear. You can buy it at my CafePress.com store for $16.99. The link is:

http://www.cafepress.com/guinterface

Down with the RIAA! ;-)

Saturday, October 15, 2005

The first section of the first chapter of The Star Runner has been published. You can find it at:

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

Once again, be gentle ;-).

Serenity Now

Well, my ex-business partner, full time friend Phil and I played hookie from work yesterday. What would prompt us to do this you ask? One word explains it all, Serenity.

I was never a fan of the series. I believe I saw 1 maybe 2 episodes. After seeing the movie I have to admit that I am hooked. I'm going out and getting the DVDs (probably some time today). Then I 'm going to sit down and have a nice, long screening.

Before you ask, "Yes, it is that good." If you have not seen it yet you owe it to yourself and any friend who loves sci-fi to go see it. You may be saying, "But, I never saw the series." Check out the following link:

http://digg.com/movies/Serenity_Evangelism:_Firefly_in_30_Minutes

It contains a 30 minute movie that shows you key points from the show. Watch that and tell me that this is not one of the best sciece fiction shows out there.

Friday, October 14, 2005

The Complete First Chapter Of My Story - The Star Runner

Hello everyone,
You can find my first (very first draft) chapter of my story, The Star Runner, at the following link:

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

I hope you enjoy it.

Free Your Mind ... The Rest Will Follow


I love brainstorming. Whether it is a story idea, or a set of programming features, brainstorming is my all time favorite activity. The best part about this activity is that you turn off the part of your mind that is cynical and open yourself to possibilities you would never consider in your daily existence.

The worst part about brainstorming is trying to figure out how you are going to capture your ideas in a way that makes sense when you look at it later. I have found the perfect tool to handle this data capture issue, FreeMind. FreeMind lets you store your ideas as a kind of directed graph. You can use it to group your thoughts under conceptual ideas. You can expand/contract the parts of the graph you are interested in seeing, enabling you to focus on the parts of your ideas you are presently working on. Another cool feature is the ability to encrypt nodes in your "MindMap" in order to protect them from prying eyes. All in all this is a very cool (and free) program that I find useful when I am in the planning phase of any new project. I hope you will agree.

Thursday, October 13, 2005

Write From Anywhere


For years now I have been nursing a few stories on the backburner until my "real" jobs and business gave me time to write them. That whole situation changed when my business scaled back. Now I have A LOT of time to pursue my interests (thus this blog).

When all of this went down I just knew I would have to start towing the line and start writing again. The only thing is, I hate the tools most people use to write. Word processors are a great thing but they are over complicated for what I need. The thing I hate most about word processors is the fact that I have to cart the document files with me everywhere. In my life I use 3-5 PCs at any given time. This makes it a real pain because I'll have 3-5 sets of files to keep track of (track revisions, etc.) . This gets tedious to say the least.

Then the hero that is Writely came to the rescue. Writely is an online word processing/collaboration tool. It has all of the basic formatting tools (the ones I need anyway) and keeps track of the revisions of my document. Now I don't have to worry about which one of my PCs has the right files to edit. I can be at a airport web terminal with no computer at all and still write if I get the urge to. It also can publish what I write to a web page and to this blog! Talk about icing on the cake.

If you write and don't feel like worrying about your document files I strongly suggest checking this product out. At the high, high price of FREE it is well worth it.

Wednesday, October 12, 2005

Backup Your Work Folks

I produce a lot of digital data. My hard drive at home is a 80GB drive that came standard with my Dell PC purchase. 80 GB is quite a bit of storage but I still manage to fill it up on a consistent basis. I was getting incredibly tired of doing DVD backups of data, realizing a year later that I needed a file from last year and having to try to find the DVD I was looking for. Some would say "Hey Lambert, buy a flipping hard drive already!". I'm a cheapskate though and went around looking for a alternative.

After much gnashing of teeth I found a perfect (for me anyway) backup solution called Streamload. Streamload is a online backup solution. The $4.95 a month plan I am on allows unlimited data storage and 1GB a month in file retrieval. I don't know about you but I just want to backup stuff, I barely ever have to go to those files after backup. I just need to know that they are there.

Now, I regularly backup my PC to DVD (for safety) and Streamload. When I need files they are convenient to find on Streamload and I don't have to go digging through DVDs to find them. At $4.95 a month I would call that a bargain.

Tuesday, October 11, 2005

Keeping Myself Busy

This has been a transitional time for me (Guinterface scaling back, building up a business in Second Life, going off Paxil ;-), trying to figure out what I want to be when I grow up, etc.). Things are settling down now and I think it is time to come up with a list of to dos that I want accomplish. As I get these items finished I'll chronicle them here (to a very bored audience ;-)).

To Dos:

1. A drawing called Cosmologist's Dream with a human head surrounded by planets (in orbit). The head is obviously in the place where the sun should be. In the background is a sea of stars. The head should shine like the sun.
2. A drawing called Love One Another that features a street beggar with a collection cup in his hand (held up in supplication) and a business man walking by with his hand held out towards the beggar (in a classic get the heck away from me pose). Speak to the hand beggar man!
3. Begin writing my story, The Star Runner, about a galactic business that has "sewn up" all star travel by coming up with gates that transport people from system to system. A scientist develops a "Star Drive" that works like (Warp, Hyperspace, name your technobabble). Of course this threatens the status quo and the story is about the drama that ensues.
4. Continue to develop TaskTastic. Hopefully find a way to market it.
5. Continue to develop my Second Life business.
6. Drum up more consulting work to fill the "Guinterface Void".

That's about all I have for myself right now and I kind of like it ;-). Here's to a more mellow and relaxed Michael ;-).

Monday, October 10, 2005

Pondering A Logo


I've been thinking recently about what a itinerate programmer really is. When I first created this blog at the beginning of the year I was thinking that it was just a cool name. This weekend I decided to try my hand at creating a logo for this blog.

When creating a logo, it is important to consider what you are trying to represent. In my mind I was thinking that a itinerate programmer is kind of like a itinerate samurai. In other words, a programmer without a master. In feudal Japan this was seen as a disgrace. In modern day America you are just seen as hip and very Soho if you are trying to make a living without the safety net of a corporation.

I got into Poser yesterday and started working on my Samurai. Once I had the face correct (a pain by the way), I worked on finding a good Matrixy outfit for my Samurai. I found what I was looking for at PhilC Designs on the web. Then I found a sword from from Renderosity and then set about posing the character and sword. A quick render and a few post production Gimp passes and I was ready to place the samurai in a gun sight. Why a gun sight you ask, well because a independent programmer is always under the gun ;-). Finally, I created the gun sight in Inkscape and put the text inside the scope and voila, all done!

Saturday, October 08, 2005

The Hitchhiker


Here is a little image I came up with over the last few days. Still needs a little work but it is getting there. The theme is after crashing a car the driver (dead obviously) is not sure what has just happened and is trying to hitch a ride home.

I used the usual suspects on this drawing, with a few differences. The original picture was done in Blender. The model of the person was a .obj file imported into Blender from Poser. The car mesh was created by Benigno "Virus" Fernandez as Poser prop. I exported that as a .obj file, positioned it and did a mesh deform of the front end from where it hit the light pole. The grass was created using Blender static particles (a real pain to get the settings right). The following are the setting for the material I used in Blender:


The key is to make the material render as wire only. This gets you the "grassy" look. I change the material for the person to be a Blender halo where the halo particles were very small. This gave a kind of "dot-matrixy" glowing material for the person. I knew I would have to do something with this later.

After I rendered a 1600x1200 .png file I imported this as a background to a ParticleIllusion project. ParticleIllusion is INCREDIBLE. I quickly added the fire, sparking smoke and a blur around the figure to give it that "ghostly" look. Then a quick render and voila, done ;-).

Friday, October 07, 2005

Run ... Its A Setup!


I recently created a program called TaskTastic which enables you to push out "programs" to user systems on your network. These programs are created with a flowchart-like configuration system. Basically, this is like drag and drop programming that is distributable (at least that would be what the marketing people would say ;-)).

To make a short story long, I needed a (hopefully free) installer program to install this piece of software cruft on my user's machines. I had been using the NullSoft install NSIS. That installer system is very full featured but very programming intensive. What I needed was a system that was easy to get going with, enter Inno Setup and ISTool. Inno Setup is a full featured install system for Windows. ISTool enables you to quickly build these installs without a lot of scripting knowledge. I had a professional setup running in just a few minutes with these two programs.

I think if you try them you will be impressed as well. Inno Setup may not be InstallShield but then again it's not InstallShield if you know what I mean. If you are looking for a simple, professional install system that will not set you back a lot of greenbacks, give Inno Setup a whirl.

Thursday, October 06, 2005

Sometimes You Can Find A Difference


Recently I was given the task to write a SpamAssassin (SA) plugin for Guinevere. Guinevere is a mail filtering, virus scanning, rule following rootem tootem program for the GroupWise email system by Novell. It makes sure that viruses and other nasties cannot get in through your Mail Internet Gateway. It has had SA protection since version 2 but Mike Bell (the author of Guinevere) wanted a system more tightly integrated and let's face it, quicker.

Well, to make a short story long I've been maintaining the plugin now for 6 months or so. In that time HUGE changes have been made to the modules that make up SA. When a new revision of SA comes out it is my job to figure out what exactly has changed and how to deal with those changes.

Imagine my surprise (NOT), when major changes were made to how SA processes mail in the last major release (3.1). I was faced with how I was going to understand these changes. I needed a file differencing program and voila, WinMerge to the rescue.

WinMerge is a great, free, file differencing utility. It also has the ability to merge changes from one file version to the next. Since I keep older version of my changes to SA code in a vault I was able to quickly see what had happened to make my plugin not work. I wholeheartedly suggest you take a look at this utility when you're not sure what has changed between versions of your program.

Wednesday, October 05, 2005

The Roof Is On Fire




When I was just a lad in the mid 90s I used to love playing a game called Scorched Earth. It was a basic 2D game where both players had tanks. You took turns shooting each other over a varied set of terrains. My friends and I would spend hours lobbing various types of ammunition at each other. Needless to say, it was a complete and utter gas to play.

The other day I was perusing the games on Sourceforge and found something called Scorched3D. I thought to myself, "That sounds familiar." Sure enough, it was a remake of my favorite classic ;-). This thing has gotten a serious makeover. For one, you can play the game with players across the Internet. You can also play the game across a LAN. Best of all, the game has a 3D makeover and a TON more weapons to play with.

If you like simple and fun games do yourself a favor and check this game out.

Tuesday, October 04, 2005

A Philosophical Post

I just wanted to warn you that todays post is a philosophical one. Some of you undoubtedly just ran for the hills screaming. I would not try to persuade you otherwise. I guess I'm just talking to those of you who are left at this point ;-).

I was thinking today about the root of unhappiness in my life. The conclusion I came to was that the things that upset me most were times, places and events in my life where I believed the world owed me something. These situations are minion but include, low satisfaction at work, unhappiness with my worldly possessions and most importantly dissatisfaction with how I was treated by someone.

I pondered these things for some time and came to the conclusion that the world does not "owe" me anything. There are people that work incredibly hard all day long for a $8 an hour and here I am complaining that I did not get a bump in salary to $60,000 a year ;-). How many times have I bemoaned how someone treated me in junior high school? Can I count the number of times I thought I should be more successful because I was working 60-80 hours a week between my full time job and side businesses.

The expectations are in a word total and utter crap! Best to work as hard as you can and be happy with where you are. Better to focus on family and friends and pleasing and making them happy. The things you have can be taken away from you so quickly and then what do you have ... family and friends (hopefully). Better to focus on what is truly important in life, serving others and making others happy. Let's face the facts, some of the happiest times in our lives are found when we do something truly selfless and nice for others.

I guess this post boils down to a quotation by the famous luminary Mark Twain:

Don't go around saying the world owes you a living. The world owes you nothing. It was here first.

I hope and pray you are having a wonderful, expectation free life.

Monday, October 03, 2005

Getting Your Figure On With Daz Studio



I have been a big fan of Poser over the years. I have used it to make countless walk cycles and I won't even mention the number of times I have posed a humanoid and exported the results to another 3D package.
Now I have a new dark master in the arena of figure posing to talk about, Daz|Studio. This package is a free, not quite as feature filled, Poser alternative. I played with the interface this last weekend and I have to tell you it seems quick and powerfull. Better yet, the people at DAZ 3D are offering their Michael and Victoria human models for free for a limited time. These can be used in DAZ|Studio to great effect.
I think it is so exciting that beginning 3D artists have access to these wonderful tools. Where were these toys when I was starting out? Anyway, check out these great tools and unleash the artist in yourself!

Saturday, October 01, 2005

Inkscape ... Why Pay For It When You Can Play With It

Inkscape is a wonderful vector graphics program that I have been using to create marketing information for Guinterface and my business in Second Life. I cannot say enough about this package. I'm not a artist by any stretch of the imagination but this package is intuitive enough and powerful enough to make me look like one. Although not as polished as some more "professional" package (read Adobe products here), it manages to combine enough features to make its asking price ... $0 seem very cheap.
Here are some of the things I have done entirely in Inkscape for my businesses:

Friday, September 30, 2005

OpenOffice 2.0 ... Microsoft Office Replacement

I'm a big fan of open source. I use a lot of open source products in my work (Inkscape, Blender, Perl, JGraphPad, etc.). Yesterday, I needed to do some SQL queries on some customer data (to email the problematic message I blogged about yesterday). I needed to create a distinct set of customer email addresses for this mailing. I could have worked up a Perl script to read in this file, parse it, and then use a hash (associative array) to find the distinct items. That being said, I had heard that OpenOffice 2.0 had a database included with it called Base. I decided to try it. If I liked the experience I thought I might take Microsoft Office off my system and stop paying them the lucre.

OpenOffice 2.0 is currently a release cantidate (not complete ready for its first point release). I must tell you not to hold that against it though. I was up and running in a few minutes and had my distinct list in Base before I knew it. For most operations (word processing, spreadsheeting, etc.) there is no appreciable difference in features. Things are however in different places than Microsoft Office and it takes some getting used to. I think the learning curve is reasonable however and I suggest this product whole heartedly. After all, why pay for something when you can have it for free.

I let you know about my "switch" experience in later entries ...

Thursday, September 29, 2005

A New And Sicker Day

Not feeling well today. Got my wife's ickyness (whatever that means). Well, I sent a missive to Guinterface customers about the new strategy. There was only one problem, instead of BCing the people I put them in the To line. Yep, that's right ... I'm an idiot. Now everyone has our customer list. I hope they enjoy it ;-). I'm going to bed. Good Night.

Wednesday, September 28, 2005

Guinterface Software Issues Settled

Well, as my readers know, Guinterface was trying to figure out what to do when we wind down operations here. The answer is simple. We will be giving Guinterface away for free. We will not be giving out source code. I will make a promise that if I ever truly stop supporting Guinterface I will make my source code open source at that time.

The question of how to make money has been answered. I will be selling support contracts for $250 for 10 resolutions or 1 year. I think this is a very competitive price.

My business partner and friend will be staying on with Guinterface on a consultancy basis for the rest of the year, after which he will be totally transitioned (sounds like management speak doesn't it?). I will miss working with him but look forward to just hanging out with him and being "just friends" haha.

I really struggled on this one and am so happy that it is finally over. I hope I never have to make this kind of decision again but I suppose that is too much to ask ...

Tuesday, September 27, 2005

Tearful Prayers Answered


Anyone who knows me for more than 5 seconds (maybe 10) knows that I love a good first person shooter. I have met my new "dark master" as of last night. About 9 months ago I bought a little game known as Half-Life 2. I bought the "Gold Version" of the game because it came with a game called Day of Defeat Source. When I ran Steam (Valve's online delivery system) for the first time I discovered that Day of Defeat was not out yet. I wept (just a little though).

I thought "That's OK. I'll pick myself up, take myself out of my straight jacket and move on with life." Finally, after 9 months of waiting my tearful prayers have been answered. Day of Defeat Source has finally come out. You can see what I'm talking about at http://www.dayofdefeat.com.

I knew I was in heaven when I played my first game last night. I snuck underneath a guy who was sniping and tossed a grenade up into the window he was using. A few seconds later, WHOOSH out he came flying through the air like a ragdoll. I was in love.

Seriously though, I think this game was worth the wait. The system demands are a little high but if you have the UMPH you definitely want to check out this little gem.

Monday, September 26, 2005

Guinterface Software And The GPL

Guinterface Software recently decided that we were going to publish 2 of our commercial product under some kind of "Free" license. The reasons for this decision are numerous but boil down to the fact that we simply don't have time to support products that have generated 2 invoices in the last 6 months. That being said we don't want to screw customers and we also do not want to "waste" 3+ years of development by throwing the products out.

This led to a decision to shop for a Free license to publish these products under. We still wanted the option to sell the products at some future date or license their technology. This meant a dual license was in order. What to make the "open source" license though. The first license to come to mind was the venerable GPL.

I love using GPL and other "free" programs. I use several of them to generate my daily output of work. That being said, I'll tell you a horrible little secret, I don't pay for any of them as a rule. Nope, no clicking on the ubiquitous PayPal button for me. Why is this you might ask. Well, the answer like so many things in my life is complicated. In the main however it boils down to the fact that I got my start in the IT world in a small business.

The small IT shop is definitely its own animal. Often they run without a budget (in other words, stealing liberally from other departmental budgets). In the company I worked for the IT budget was basically our salaries plus whatever we could beg, borrow or steal. Now, I think a large portion of businesses are not to dissimiliar to this model.

This begs the question, if we release these 2 products as a "free" program how do we make money. Richard Stallman's answer seems to be what I call SSS, "Sell Support Stupid". I personally think this a crock (no offense to Richard who I think is a beautiful person with everyone's best interests in mind). The problem is, Richard does not live in the real world. He grew up in and is immersed in a world that begins and ends in academia. Richard, while espousing that we give our software away for free and coming down on commercial software, has no problems taking money from corporations to maintain his lifestyle.

The fact is, most GPL products make their owners next to no money. There are always exceptions. I am not talking about these however. I am discussing the rule. The other fact is "People Need Money To Eat."

I know this will come as a shock to people ... I need to eat. That and the fact that I know myself (the fact that I never pay even indirectly for GPLd products) lead me to one conclusion. The GPL is not for me. I think it has its place, but in the main I don't believe its place belongs with a small group (or one) coder who wants to make a living. Once again, there are copious exceptions but I'm a realist. I need food and shelter for me and my wife to live.

We still have not come up with a solution to the dillemna of releasing the software and still making a living. Perhaps a dual license is in order, perhaps not. It all depends on what the end goal will eventually be. Stay tuned, I'm sure I'll let you know ;-).

Sunday, September 25, 2005

Freedom


Sometimes the prison we are in is one of our own making and the key to getting out of jail is right in front of us. In this picture I wanted to evoke this message.

As usual I used Blender, Gimp and Poser. The concrete floor texture was generated in the Gimp with the Allegorithmic Map Zone PhotoShop plug-in which can be gotten for free. Then I posed the Poser default Don figure in a thinking pose in which he is sitting. Next, I boxed him in a room in blender using the stucci texture plugins for the walls. I then created the floor and mapped a Map Zone concrete texture onto it. Then I created the bed from a set of extruded mesh circles. I displaced the bed using a Perlin texture and using the nor texture displacement operator. I stole a key off of the Turbosquid web site and positioned it in front of the man. Then I colored it gold and took the color of the key and created a light with that color behind the key to illuminate the man. The bars were created with extruded cubes (horizontal bars) and extruded circle meshes (vertical bars). I finally used a shadow lamp to cast the bar shadows onto the man and jail cell. The scene was too dark so I added another white lamp to the rooms upper right area.

Then a render and voila, the project entitled "Freedom".

Saturday, September 24, 2005

Rock And Sasha's Wedding


Well my two friends in SecondLife tied the knot. Congrats Rock and Sasha. Have a good life together. As an aside the ceremony was online and I forgot it. Yeah, that's right, forgot it. Never have me as your best man is what that tells me.

"Precious"


Just a little something I was working on today. I was thinking about the difference between what we feel is important and what truly is important. Then, being a complete and utter geek, I decided to create a 3D drawing to match my mood. A little while later and voila. Don't you feel sorry for the poor silly hobbit about to stick his finger in the ring?

This was a simple one actually. I took a mesh circle in blender. Cut off half of it and then scaled the circle down until I had a basic "U" shape (more spread out of course). Then I connected the mesh so that it was closed and rotate/copied it 120 times around a point (thus creating a ring). Then I set the material properties for the ring to a goldish color and increased specularity a lot ;-). Here are the material settings in Blender:


Then I made the ring a ray trace object and boosted it's reflectivity. Voila, the one ring. Then I took a map I found of Middle earth and mapped it to a plane to make well ... the map. Finally, I imported a hand trying to grasp something from Poser. After positioning it all in Blender I rendered with a light positioned to make a cool shadow. That is it. Hope your having as much fun this weekend as I am!

Friday, September 23, 2005

This Goes Out To My Buddy Claudia In SL


Here is Claudia Sondergaard's new place. She is planning on selling homes and other building in Second Life. I predict good things for her future as she is a talented individual.