Wednesday, November 23, 2011


Recently there was a conversation on twitter about by cousin abandoning his voicemail usage.

He believes it's outdated and shouldn't be used and therefore he never answers a voicemail, which led to his box becoming full disabling the use of his voicemail as a means to contact him.

This frustrated me at first, and I assume others, it's a bit extreme, but it makes sense. Either call and he will see your missed call, text him, Facebook him, tweet at him, voice is not needed. You can talk to him when he calls you back, or when you call him again. Whenever I get a voicemail from someone and the content is, "call me back", I think about my cousin's decision.

We also spoke about class reunions being outdated due to Facebook. At least the classic version of the reunion it outdated, but I believe reuniting with old friends is never a let down, but reuniting with acquaintances, nah.

Here are some others I think are outdated:
  • Home phone and answering machines. A straight dial to my home phone will get you endless rings. No answering machine. I have a phone because my cable provided bundled it. My parents don't even know the number. Therefore I don't answer it when it rings because I know it's nonsense. 
  • Ringing my doorbell. I don't answer my door usually if there is a knock or or a door bell ring. I don't like unannounced visitors, again it's likely junk. Some kids selling something, some utility competitor trying to sell me on their services. Sorry, but we have the Internet now, I am not going to make an uninformed decision on my door step. I also do not like exposing the inside of my home to a stranger. Maybe if I had a storm door as a barrier it would help. 

Monday, November 21, 2011

I need a new computer, what should I buy?

Okay, I write software, I don't build machines. I'll be honest, I don't follow much hardware news. To me, hardware is all about numbers and keeping that increasing number cold. Sure there are some cool things going on, I don't mean to knock the field of electronic engineering, but it just doesn't light my fire. I get excited when something new happens in quantum computing for example, a drastic change in how bits are represented and transmitted.

So when someone tells me they need a new computer and then ask me what to get, my response is likely compared to boring coming from someone that "does computers".

Are you writing software, analyzing data, processing images / videos or playing games (real games, not solitaire)?

No. Then anything from $400 to $1200 is likely where you need to be. You don't need fast disks, memory and CPU to write papers, use Facebook and shop. You'll start paying for thin cases and screen size more than speed. This is why the tablet is so popular. Only thing separating the tablet decision from a machine is if you are generating content and organizing your personal data. Regardless of machine, get a large disk, anything less than 500Gb is a waste. Stick with a laptop, if you get a desktop, go all out for power and speed and keep it stationary in a cool space with a huge monitor. This is where you get complex with imaging, video, software, or whatever.

Brands? I like HP and Dell for Windows machines. I never liked Sony and Toshiba, but that is just personal, I am sure they are fine. For Apple, please do not buy these machines to be stylish. They are great, but I really hate the middle age dude going through a crisis with his red convertible sitting in the Starbucks.

On a budget? Then just get something that fits your dollar amount range. Back up your data and prepare to only have your machine last 3 years and throw it away. It's not worth fixing a stock low end machine.

Why post such a simple post? My dad asked, and black friday / holiday is coming up, so why not?

Wednesday, November 16, 2011

An object oriented moment

I don't know why, but I think back on this a lot. Back in college I took a theory of object oriented programming course in java. In this class I experienced a break through that I account for most of my understanding of object oriented design and implementation. When I think about it now, it's such a simple concept, but at the time it was so difficult.

Here is the problem:

"How do you get a sequence to order the elements in reverse of their natural ordering? Write a program to demonstrate your technique. " - page 171, programming assignment 6, Java with Object-Oriented Programming, Second Edition, Paul S. Wang, Kent State University, ISBN 0-534-39276-8

The trick was not to implement a sort, not to iterate the items, just change the natural ordering of a sequence. I struggled with this for days, even visiting Professor Wang after class do work through it on the chalk board. "Can't I just output the list in reverse order?". Nope.

After while, for whatever reason, nobody told me, I didn't cheat, it simply dawned on me. Here is the summarized solution:
ArraySequence<SimpleDate> myseq = 
   new ArraySequence<SimpleDate>(new Comparator<SimpleDate>(){
      public int compare(SimpleDate d1, SimpleDate d2)
         { return d2.compareTo(d1); }
   }, 256); 

See it? The comparator passed returns d2 compared to d1 verses d1 compared to d2. That's it.

Well not completely. The ArraySequence object implements a quick sort. Within the partition, the compare will by default compare left to right. The reversal above switches the sort ordering. My solution is still live on the Kent State Computer Science department website here: sequence. All files were given except (again, we are not implementing the sort, just changing the ordering).

Such a powerful learning experience for me in terms of object oriented software. Interfaces, type parameters, plug compatibility, collections, sorting, etc. You don't rewrite the whole sort, you design the ordering to be pluggable. I don't know why, but I remember this moment often.

Special thanks to the Professor for not giving away the solution and letting me learn. If the links ever die here in this post, simply email me and I can pass along.

Wednesday, November 9, 2011

DB2 GUI installer issues and resolution on windows xp

I was recently trying to install DB2 on Windows XP version 2002 service pack 3 and it was failing. I was trying to install Express-C. The installer logs were reporting:

DEBUG: Error 2836:  The control image_noJava on the dialog SetupInitialization can not take focus
Internal Error 2836. SetupInitialization, image_noJava
Action start 9:56:23: SetPropertiesForConditionsCA.
Action ended 9:56:24: SetPropertiesForConditionsCA. Return value 3.
Action 9:56:24: SetupCompleteError. 
Action start 9:56:24: SetupCompleteError.
Action 9:56:24: SetupCompleteError. Dialog created
Action 9:59:59: CleanUpGUISequenceCA. 
Action start 9:59:59: CleanUpGUISequenceCA.
Action ended 9:59:59: CleanUpGUISequenceCA. Return value 1.
Action ended 9:59:59: SetupCompleteError. Return value 2.
Action ended 9:59:59: INSTALL. Return value 3.

I was just running the setup.exe from the extracted EXE file provided by IBM (db2exc_974_WIN_x86.exe). The installer would start up, fail, and the installer dialog would then close.

The issue I was having was I needed to run the installer with a response file. I used an example file that was provided in the extracted installer assets, simply search for "db2expc.rsp" in the extracted asset directory. This file was then modified to accept the license agreement, and to add a username and password for the database admin account.

The following command was then issued to run a silent install with the response file:

setup.exe /u db2expc.rsp /m

Eventually the control center icon appeared in the system tray and all was well for the installation.

See also:

Share on Twitter