Connections disconnected, now with solution

The frustrating thing about installing software is that sometimes, the installation just doesn't want to go your way.  I'm honestly blaming the operating system this time.
java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
1. My first thoughts were logical, somewhere in my installation response file, I had not properly escaped a character in the install path.  I went back and meticulously replaced every \ with \\ (this ain't your flavor of Linux folks, it's the other OS) 2. Another failure.  I'm still thinking logical, lets try the other fix for the \ character, so I switched them all to / which should be legal, but the install came to a screaming halt at 2 minutes 34 seconds 3. Need log files, need a stack trace, oh error message, please let me peer deeper within your nested inner-ness
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:116) org.apache.tools.ant.Task.perform(Task.java:348) org.apache.tools.ant.Target.execute(Target.java:357) ........ Caused by: java.util.Properties.loadConvert(Properties.java:532) java.util.Properties.load(Properties.java:371) org.apache.tools.ant.taskdefs.Property.loadFile(Property.java:458) org.apache.tools.ant.taskdefs.Property.execute(Property.java:391) org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
4. This is not deep enough, even with the full 88 lines in the stack trace.  My assumption thus far is still that somewhere along the way, I have an illegal character, what I'd like to know is where might that be. 5. I'm beginning to get a little frustrated, time to get a fresh cup of coffee and "think, think, think" (a reference to Blues Clues in a post about software installation, pathetic) 6. OK, I'm ready to beat this thing like a polka dotted poodle.  Let's use the response file generation option with the graphical installation, maybe I've fat fingered something 10 times.  This task yields a variety of representations of my friend, the whack (a \ character) , from the old days of MCSE classes where we called UNC shares whack whack server whack share - \\server\share... Don't ask, sorry for drifting off topic, but it has kind of stuck in my head), so I take it we need a combination of a single whack, double whacks and back whacks.  That's whacked! 7. With this new response file, I'm off and running, this is going to be perfection.  Failure. 8. I've lost my mind at this point 9. So I start trying stupid things, changing the encoding of my response files.  Failure.  Double checking all non-visual characters in my response files.  Failure.  Try another server for the installation.  Failure.  Turn on verbose logging.  Failure.  Stand up when kicking off the install.  Failure.  Sit on my desk while starting the install.  Failure.  Singing We All Live In a Yellow Submarine will trying yet another install.  Failure, although it brought a small crowd to my cubical. 10. ***UPDATED***  Apparently if your Windows TEMP path starts with the letter U, the installation will fail.  After resetting TEMP to C:\Windows\temp and rebooting, Connections installs like a champ.  Hmmm.... I'm not sure I believe this one, but too much time was lost and I really was beyond experimenting to prove or disprove this. Happy installing!

Binary life

#!/bin/bash #shortest just10things post that does nothing but wait sudo shutdown -t 10800 -krf '' '1) on or off 2) one or zero 3) yes or no 4) black or white 5) true or false 6) full or empty 7) hot or cold 8) left or right 9) up or down 10) in or out'

Technically selling software

I'm not in sales, so don't count me as the expert.  I'm not even technically in technical pre-sales, although I've done my fair share of late.  These are my observations that have come from the half dozen or so most recent engagements where I have been filling the pre-sales technical role coupled with my new fascination on how we communicate.
  1. Knowledge: The thing is, you are not going to know everything, and you need to come to terms with that.  You customer, however, expects you to know everything.  So what do you do in those situations where you don't have an answer?  Simply stating that you would need to reach out to someone with specific knowledge about the question is an acceptable response and helps to build the trust between the customer and you.  Their perception is, "Hey, he's not going to bull shit me with some made up answer."  This works only when you...
  2. Follow through:  Never fail to deliver (or over deliver) on what you promise.  End every meeting with revisiting the next steps, who is responsible for what and when.
  3. Confidence: Going back to #1, there is a specific way to answer questions where you have uncertainty.  The is a huge difference in "I think that can be done with product X" and "Product X has a lot of flexibility, however, to meet that specific requirement, I'll need to check the product documentation to see what options we have."  Choose your words carefully, "Let me contemplate that for a minute" can buy you precious seconds to formulate a response.
  4. Honesty: If you sugar coat it, the project will fail.  You may be able to make a product fit into the requirements, but when it comes time to execute, the reality of a 2000 hour development effort will surely bring a bad taste to your customers mouth.  Do not hesitate to tell the truth, if it takes X amount of time, it takes X amount of time.  Be up front and avoid surprises later, I promise, the relationship will be better for it.  Additionally, never hold back when you feel there is ...
  5. Risk: Risk is a reality.  Be ready to recognize it and respond, but do not react.  Reacting to a situation can change your tone and relay the wrong information.  Letting a customer know when what they are proposing could be a risk is the perfect time to...
  6. Repeat:  In your own words, repeat back to the customer what you heard them say.  This accomplishes two things, first, it let's them know that you were listening and not checking Facebook.  Also, it confirms that you understand exactly what they have said, and what better way to propose an engagement than to understand what you are going to be doing.
  7. Constraints:  It may be time, it may be budget, but everybody has them, respect that.  Which is why sometimes you will have to make a call to...
  8. Plan B:  If at first you can't succeed, try and try again.  If you still cannot succeed, call in the troops.   This technique is used extensively in jewelry sales, the hand off when you just cannot close the deal on a $10k engagement ring (been there, done that, hated sales at that point in my life), new face, new approach.  If you still cannot succeed, it's time for plan B.  Plan B is not as extravagant (the $5k ring), but it's an engagement none the less (no pun intended).  But with every plan B, you must have a...
  9. Roadmap: To get to plan A.  In these scenarios, both parties must compromise, however, if you can deliver plan B and a plan to get to plan A, you have just made two sales, enough said.
  10. Demonstrations:  Do them well, but not too well.  Whether in functionality or your presentation, if your demo too closely matches what your customer needs, it will be hard to propose any sort of services engagement, you have already done the work.  My point, demo's are risky (see #5).  I guarantee that if your demo goes too well, you will be all over #8.  I'm almost asking you to sabotage them, in little ways, here and there.  Spend your energy over delivering once the contract is signed, until then, keep it simple.
There you are, take it for what it's worth. Cheers from the middle of nowhere, Indiana. "Talk hard, I like that. It's like a dirty thought in a nice clean mind."

Interactions

Pushing the limits... 1. Interactions with insects: I had heard on some radio show trivia contest the other day that the average human gets 17 insect bites per year.  I'd like to know where their sample pool was, I had 17 last night. 2. Interactions with software: Hacking it up because it never does exactly what I need it to.  There is a great challenge in taking something that partially fits the bill and mold it. 3. Interactions with computers: Does not compute!  Kidding aside, I have moved from a traditional laptop to a touch screen tablet with full laptop processing power and no keyboard (well, there is a wireless keyboard that I'm trying not to use).  Getting used to alternative input methods is nothing short of crazy difficult.  Typing on the on screen keyboard is getting better, but I'm still not very accurate.  Not having a cursor is just, well, odd.  I do believe that I will become accustom to this after a few more posts and work day emails. 4. Interactions with Carolina sunshine:  Yeah, so, we had a huge fight this week.  I almost broke up with Carolina in favor of Chi-town after my AC went out and it's only 98 degrees with a heat index of 105.  I love you Carolina, but Chicago treats me so well, is beautiful and pretty "cool." 5. Interactions with caffeine: I'm addicted to coffee, there, I admitted it.  (See #4) Yesterday, I survived with none, today, two cups. 6. Interactions with fragrances: For the last few nights, my yard is covered with the overwhelming smell of gardenia.  There is something about it that is refreshing, ranks up there with jasmine, honeysuckle and wormwood. 7. Interactions with words: Words can hurt, be truthful, but ensure the filter between your brain and mouth is in check. 8. Interactions in the dark: You may really think you can navigate your dwelling in the dark until someone leaves something in the middle of the floor. 9. Interactions with water: We are composed of a lot of water, respect it! 10. Interactions with people: I've realized this week after a brief encounter with my health that I have a lot of people in my life to thank for a lot of things.  In staying with the traditions of the medium, yet also breaking them by nesting Just10Things within Just10Things, here goes a few shouts to people I've interacted with that I may or may not have thanked properly (full names withheld, but you know who you are) (this is not a complete list, but I'm not breaking any more rules tonight) :
  1. For just being there, for support, for a shoulder to lean on - ND, KD
  2. For bookends, I never knew what they were used for before this week - HW
  3. For front porch moments and "My butt itches" - AO
  4. For kicking the town, good food, good drinks, and keeping it REAL - JD
  5. For being a best friend - RT, ST
  6. For saving me when I didn't know what was happening - RH, JW
  7. For Shadowboxer - VW
  8. For the best extended family anyone could ask for - DB and family
  9. For a wreck that was forgotten and you made me remember, it's all good - SS
  10. For showing me that there are still beautiful people in this world - CM
Breaking them anyways: 11. For being the best kids (I'm biased) - ED, JD

PBJ and wine

Things that may not typically go together, however, you never know until you try. I'm not sure I can pull the essence of just ten things into a single post.  I'm not sure I can explain PBJ and wine.  I'm not sure I can handle another day of the heat index over 100. Software: 1. Is like building Legos, interconnected, limitless 2. When it doesn't do exactly what you need, extend and enhance it 3. Needs to be controlled and governed Life: 4. Is like playing with Tinker Toys, sturdy, fragile 5. If it isn't going your way, look to friends for guidance 6. Fluid and unpredictable Lawnmowers: 7. Are like playing with fire 8. When you don't come in first, ask for advice 9. Fast and furious And finally: 10. Single dad lawnmower racing computer geek say what? (You'd get it if you had a daughter into Miley Cyrus) I love the way dusk plays off of the sand and water.  I love having seen Mickey Mouse in a girl fishing.  I love having seen 2 sumo wrestlers in a family walking.  Most of all, I just loved the moments. Drinkage: 1. H2O

Un-relationships

It's Friday and I had to, I just had to cut off the world of WebSphere and DB2 to take a break for awhile.  Not exactly knowing what to do with my time, I thought it would be nice to find something new to learn.  Enter unrelational databases, noSQL, super speedy throughput monsters.  That sounds like fun.
  1. Fire up a CentOS 5.5 VM
  2. Install Apache Cassandra
  3. Install Thrift
  4. Fight to get Thrift to compile, oh, need to have PHP 5.2 +
  5. Install PHP 5.2.10
  6. Thrift compiles
  7. Download phpcassa and stare at the screen
  8. Dig up a basic MySql login module to modify
  9. Try to understand the non relationship model of Cassandra
  10. Continue to try to understand the non relationship model of Cassandra
Well, in my list of 10, it didn't stop there.  I started to get lost in a world of Column Families that store a set of columns and Super Columns store a set of Column Families and rows that don't have to adhere to their Column Family schema (oh wait, there's not really a schema) and attributes on Column Families and attributes on Row Keys and I got lost in an unorganized place; or so I thought. Ten years of relationships (relational databases, that is) including Oracle, MsSQL, MySql, DB2 and it becomes hard to think of data in a non relational fashion.  After fighting with a high level client (think phpcassa -> Thrift -> Cassandra) I was able to modify a simple PHP/MySql login script to authenticate to Cassandra.  Now, it still has some bugs; you can log in with a bad password :) but I'm working on that. Behind this all is a little pet project that smacked me in the head last night, you will have to wait to hear about it for now. This weeks tunage:
  1. The Cars - Just What I Needed
  2. Sting - I Hung My Head
This weeks wine:
  1. Courtney Benham Petite Sirah