The “Love Bug”

A while back my non-traveling job took me to Florida – and surprisingly not Orlando. Yes, for the first time I went to a city called Jacksonville. (Alright, well, first I went to Orlando because of a little thing called a “ground stop” at O’Hare and then I drove to Jacksonville, but yeah, my final destination was Jacksonville) I mean honestly, who doesn’t enjoy a short three hour drive in the middle of the night to make it in time for an 8AM meeting with someone else’s customer?!? I have no complaints though, once I finally made it to Jacksonville the people there were really nice; saying “Please!” and “Thank You!” and “Excuse Me” and calling me “Ma’am” – all those little things you never hear in Chicago when someone is trying to run you down at a crosswalk. “Not-my-customer-who-I-had-to-travel-all-the-way-to-Florida-to-do-a-bake-off” (or NMCWIHTTATWTFTDABO for short) was pretty cool too. I learned a lot of fascinating stuff when I was in Florida. Ironically, none of it was work related. 🙂

It was lunchtime on Day Two and “the guys” and I were sitting around the break room eating lunch and talking cars. I generally get enough “car talk” at home with my Engineer Boyfriend (its either cars or Adam Carolla these days) and did my typical “engineer boyfriend tune-out”. For over thirty minutes I  listened to them drone on about what was necessary to preserve the exterior of their cars (yeah, haven’t heard this ONE-THOUSAND times before!) and why a car wash was way too abrasive, etc etc. I was totally bored. But then out of nowhere I heard someone say “and then there is the problem with those love bugs”. The Love Bug I thought! I loved that movie!!! Lindsay Lohan! Man, I could finally contribute!!! I heart celebrity gossip!But no, unfortunately they didn’t seem to be talking pop-culture. My next attempt at including myself in the conversation

“OMG!!, you drive a punch-buggy? I have always wanted a punch buggy. You know with the little holder for the flower and stuff. Do they still have that? I have always wanted one in pink.”

fell flat on its feet as well. (a lot of blank stares and probably some “blonde jokes”). You see what they were referring to was actually an aspect of Florida that I didn’t know anything about! After a lifetime of visiting Disneyworld the only bug I had ever come across was our friend the mosquito. Oh and a cricket. As in Jiminy.Allegedly Florida has this type of bug called the love bug. In fact they actually have a “love bug season” – like we in Chicago have…I’m not sure what we have actually, that “week in the middle of June that is really nice season”? Anyway, these bugs are born or hatched or whatever it is that bugs do, and then immediately attach themselves (in a sexual manner) to another bug.  The duo stay attached to each other for their entire bug life. (Twenty minutes or so) According to wikipedia:

…the “love bug”spends the entirety of its life copulating with its mate. Sometimes they even play a tug of war as one bug tries to fly one way and the other flies the other way.”
I found this story rather sweet. (No one else at the table did). I brought up the fact that doves mated for life as well. (No one saw the connection) Either way I do see this as the ultimate love story in the insect kingdom.  Kinda like “Casablanca”.But it isn’t all fun and games. If you happen to have a little run in with these little nymphomaniacs they will win every time.  They will explode onto your beloved automobile in a big black mess. An acidic mess that begins to eat away at the outside of your car if you don’t clean it off immediately. Man, would that ruin Mr. Engineer Boyfriends day/week/month/year! 

So take this as a public service announcement. And avoid what Floridians refer to as “the black haze”.

Advertisement

Modifying the Quickr 8.1 DE Default Place

Okay, I am far from a regular Quickplace/Domino user or developer. But because I have made it my point to customize all software products IBM I was roped into one of the biggest challenges of my career (and no, it wasn’t installing WebSphere Portal Server!) – modifying the default Place in Quickr for Domino.

So in order to spare you many a sleepless night here is how I did it:

  1. Create a new Quickr Place. Let’s name this new Quickr Place “Team Aniston”
    Launch Domino Designer 8.
  2. Open the Main Quickr Place in the Designer by selecting File -> Application -> Open and browsing to something like C:\Domino|data\LotusQuickr\lotusquickr\Main.nsf.
  3. At the same time follow these steps to open the “Team Aniston” Main Place at C:\Domino\data\LotusQuickr\teamaniston\Main.nsf.
  4. Now copy two forms in the \teamaniston\Main.nsf to \lotusquickr\Main.nsf by expanding Forms and copying over QDK_h_Page and QDK_h_SubRoom.
  5. Next open a Notes Client and again open both the “Team Aniston” Quickr Place by selecting File -> Open -> Application and navigating to C:\Domino\data\LotusQuickr\teamaniston\Main.nsf and the Quickr one at C:\Domino\data\LotusQuickr\Main.nsf.
  6. Copy all the documents from the System/Customize view of teamaniston to the main quickr place. Also copy the Customize document from teamaniston System/Table of Contents to the main quickr place.

Now all you need to do is restart the Quickr Server! Now when you access the Default Quickr Place you should see a Customize option like you do on “Team Aniston” or other Quickr Places that you create. You can then click that button and taken to a screen that will let you upload new .htm files following the standard steps for editting a Theme.

NullPointerException – an excellent team-builder.

I was recently asked to describe my favorite class in the JDK and why. Yes, this is what my friends and I discuss when we have finished pondering why Jessica Alba named her baby Honor Marie or if Paris Hilton is really preggars or just trying to pull a fast one on us. Yes, we go straight from “People” magazine to computer programming.

To be honest I had never been asked this before. I could quickly rattle off my favorite food (cranberry orange mango bagel), favorite color (pink) or favorite animal (dog) but as for the JDK – the answer was just not that straightforward. I mean there are so many great classes to choose from – where did I possibly begin? (Hmm. Perhaps I’ll just spend a crazy Friday night watching 20/20 and pondering just this)

I first thought about carrying on about how something as simple as java.lang.Object had changed my life – transitioning me from a mere employee at a large IT company to a mere employee at a slightly larger IT company. But I thought that would be too easy, so I decided to dig deeper.  I started to remember what really gave me trouble as a beginning programmer – the class that I just couldn’t get my head around. My “vicarious”, as it were. (The word I couldn’t remember the definition for when studying for the SAT and now use all the time!)  But it had been too long and I couldn’t remember one. But then it hit me. I knew exactly where to go with this, the NullPointerException!

I know it is a shocker but the NullPointerException (as well as all RuntimeExceptions) are near and dear to my heart – mostly because I am very familiar with them. I believe I come across a NullPointer just about everyday working with IBM Software (generally displayed to the end user as simply, “null”), But anyway, what better way to make friends with your coworkers, or bond with customers then by staying up for several nights in a row troubleshooting a product deficiency, known as engaging in a “crit-sit”. Some of my “top five” favorite IBMers I have met doing just this, talking about life while waiting for the server to restart. And hey, it’s also the only time that IBM brings in free food – the good stuff too, like pizza and oranges (I have never understood why we seem to always get oranges!).

Anyway, I have a fondness for a lot of classes in java but for most you “code alone”. With a “NullPointerException” you are part of something much bigger than yourself; you are part of a team.

When Dogear bites back.

Note* “Dogear” to the layman is a social bookmarking service. A feature of the IBM Lotus Connections product suite.

This weekend, while surfing the Internet I was interrupted by an urgent ‘ping” from a friend of mine in the UK. Normally I would ignore Sametime chats on the weekend, heck I ignore them during the week as well – do the ‘ole wait a few minutes and switch to ‘Away’ trick!  But since it was a slow news day I decided to respond. All I was told by my little British friend was that I needed to quickly check my Intranet Profile as someone must be playing a trick on me.

Damn I thought! Someone hacked my password (Seemingly “passw0rd” isn’t that secure anymore!) and posted that picture of me dressed in a turkey costume again! (key word, again!)

But no, I went to my corporate Intranet Profile and nothing struck me as odd. I looked okay, my “tags” were nothing out of the ordinary, no unauthorized blogs… I don’t understand I asked, what could possibly be ‘off’ on my profile?? “Check out your dogear” is all he said.

Then it hit me. You see about a month ago (yes, it has been there for an entire month – maybe more!) I had to do a demo for a customer of mine – a pharmaceutical company. In an effort to allow my Connections/Quickr demo to resonate with them I decided to randomly pick a drug listed on their website and build away. Paying no particular attention to what the drug actually did (I was lucky I was able to spell it the same way twice and/or even to pronounce it!) I added it to my doggear, tagged myself the resident expert, blogged about it, and populated a team space – all on IBMs Internal deployment of Lotus Connections. (The one we all use everyday) It was only once I arrived at the customer site did I realize that my drug of choice happened to cure a little disease called “Genital Herpes”.  Yes, I was now IBMs expert in all things related to Herpes.

The customer ate it up of course – enjoying the effort that we at IBM had gone through to show we cared but through the entire demo I was just counting down the minutes until I could get back online, make some changes and go back to just knowing stuff about portal and collaboration and themes and dogs. However it was a Friday afternoon. So when I did finally get home (traffic in Chicago can be a real pain!) I went out to dinner and to the mall – retail therapy. My expertise remained untouched – at least until today, (If only they would refresh the damn cache!) thanks to a set of sharp eyes across the pond.

The funny thing is, at the end of our Sametime chat all he said was “its okay, I am sure no one noticed, its not like its been up there for more then a day, right?”. Uh yeah, it’s just been a day. Of course 🙂

Theme Me Up Scotty: The Banner Image

Note from Self. I am not a “Star Track” fan (ha ha. Get it?!?)  I just thought this was a funny title.  

For those of you who have been living under a rock for the last few years (or at least not an attendee of one of my numerous (and yes, I am trying to see how long I can ride out the “theme” thing here) Lotusphere or Portal Technical Conference presentations; a Portal Theme provides us the “Look and Feel” for our Portal. I could wax eloquent on how important the Theme is to a portal project and how little emphasis we put on all things end user experience at IBM but that will be left for another topic. Due to the lack of, shall we say adequate, documentation on the subject (Theme development) I decided to publish “The Unofficial Guide to Portal Theme Development” – totally uncensoredJ.

So let’s start with the basics. The most common of all requests…change the banner image and ditching that nasty “Launch” menu.

Part that happens before Part One: Disable Theme Caching:

This one seems to cause lots of people lots of problems. Here is how ya do it. And don’t argue on this one. It works – I know it works. So none of this “my portal is messed up because it caches stuff even when I tell it not to” crap. Edit the correct file and be done with it.
Set reloadingEnabled=”true” in the file ibm-web-ext.xmi located under: 

<WASPROFILE_ROOT>\profiles\<profile_name>\config\cells\<cell_name>\applications\wps.ear\deployments\wps\wps.war\WEB-INF\ibm-web-ext.xmi

Restart WebSphere_Portal.

After that is done you can “touch” (force recompile) Default.jsp (for all layout type changes) AND Styles.jsp (color palettes and Style files) – or both if you have no idea what I am talking about here, when you make changes to the theme. This will clear the cache. I promise.

Part One: Adding a Banner to the top left corner of a Portal 6 Theme

Navigate to:

<WASPROFILE_ROOT>\profiles\<profile_name>\installedApps\<cell_name>\wps.ear\wps.war\themes\html\<theme_name> (Yes, I know this one is a doozy!)

Under the subdirectory /colors open the file default.properties (I will go into color palettes and the use of in a different entry – stay tuned!)

Look for the following text – you will mostly be paying attention to the part in radical red.

#banner bannerText=#3161A5
bannerBackground=#E8EBF1
bannerBackgroundImage=url(./colors/default/banner_background.gif) repeat-x
bannerBorder=#3161A5

Place your banner image in:

<WASPROFILE_ROOT>\profiles\<profile_name>\installedApps\<cell_name>\wps.ear\wps.war\themes\html\<theme_name>\colors\default

Change the value for bannerBackgroundImage to reflect your image name. Set the repeat-x to no-repeat. It should look like below:

bannerBackgroundImage=url(./colors/default/newBanner.gif) no-repeat

If you were to view the Theme again through the Web Browser at this point, your new Banner is most likely hidden behind that pesky “Launch” menu. We now need to adjust the height of the row that contains the “banner image” to be able to see our image. (We probably also want to move the Launch menu – we will get to that in a minute)

Open the file styles_theme.jspf under:

<WASPROFILE_ROOT>\profiles\<profile_name>\installedApps\<cell_name>\wps.ear\wps.war\themes\html\<theme_name>.

Search for the following entry and add a value for the height. (brilliant blue below)

.banner { color: ${colors.bannerText};
background: ${colors.bannerBackgroundImage};
background-color: ${colors.bannerBackground}; border-bottom: 1px solid;
border-bottom-color: ${colors.bannerBorder};
margin: 0px; padding: 0px;
height: 40px;
}

Save your files. “TouchStyles.jsp to refresh the cache and view your changes through the Web Browser.

Part Two: Moving the “Launch” button

Once again open the file styles_theme.jspf under:

<WASPROFILE_ROOT>\profiles\<profile_name>\installedApps\<cell_name>\wps.ear\wps.war\themes\html\<theme_name>.

Look for the definition of the “launch” class. Change the position to be “absolute” and then add specific pixel locations (top, right, left, etc) as to where you want the “Launch” button to sit.

.launch {
float:${requestScope.cssRules.bidiLeft};
position: absolute;
top: 53px;
border: 0px;

Slightly Used Dog Toys $5. OBO.

Tonight I started to go about selling stuff on craigslist. Its been a slow Saturday night – nothing good was on Dateline. For the most part I just want to get rid of this annoying IKEA lamp that I can’t seem to find a home for. And when you live in a 900 sq. foot apartment in the middle of the city with “Mr. Engineer Boyfriend” and his six computers and four video game consoles (oh and did I mention a dog?!?) there is no room for superfluous stuff. I mean lets be honest, in the kitchen cabinet, stuffed next to the spaghetti pot (that I have never used) I have a plastic case of 4 hard-drives. And yes, I know. “It’s for security reasons”.

But after entertaining myself for way too long selling crap on craigslist and being further entertained checking out the crap that others were selling on craigslist this lovely Saturday night I got up to grab myself a Gatorade (purple of course) from the fridge and tripped over…well first I tripped over the dog… but then a “rawhide twisty bone thingy”. Or at least what used to be a “rawhide twisty bone thingy”. And this got me thinkin’. Perhaps I had the energy for just one more post…

Slightly Used Dog Toys $5. OBO. City of Chicago.
Approximately 14 Bone Nubs. Some in better shape then others. Of course these are (or were) small dog bones but a small dog with a big heart. Hey, when you buy jeans you pay a premium for the broken-in look – the same should apply when shopping for rawhide. You dog will thank you.

6 (oh okay Myles, 5. Geez!) Stuffed animals. An elephant, a frog (is that what that thing is?!?), an otter, a cat (of course!) and a duck. Some are missing arms, some legs or wings (whatever the case may be), some both. Don’t let this dissuade you, all are capable of soaring through the air at high speeds and then being “retrieved”.

One super (yes Myles its going) annoying red squeaky ball with spikes that seems to smell like whatever catnip would smell like to a dog. Perhaps your dog is a little more mature and will be able to handle it better then my Myles. (Yes, Myles when you turn 3 we can think about getting you one again) If I hear one more squeak from that thing, followed by incessant whining while on a conference call I am going to post a small white Havanese on craigslist! (Just kidding sweety-pups, mommy loves you.)

Huh, funny. Someone else must have just had a similar idea since I just saw a post for 75 used tennis balls. I hope this doesn’t take away some of my potential buyers.

Bow-lingual: The next Translation Server?

Two things happened to me last week that prompted me to fritter away a Sunday afternoon blogging. The first was an excellent post by a friend of mine around the translation capabilities of Lotus Connections. The second was the discovery, or re-discovery, of the “bow-lingual” – a “Ma Self” original (circa Christmas 2005) – while cleaning out my desk over the weekend. “Bowlingual” as described by my Engineer Boyfriend is a total hoax. The “Magic 8 Ball of the Animal Kingdom” he declares it. Designed to “randomize responses or comments whenever it heard anything approximating a bark” (we will prove this wrong shortly, see below) — who would buy such a ridiculous contraption!?! (FYI – As of Sunday “Ma Self” vehemently denies purchasing said “bowlingual”.) In fact Engineer Boyfriend was so incensed (read intrigued) by this device that he snatched it out of my unsuspecting hands and stole off into his little engineer cave to begin assembling it. I didn’t hear from him for another 15 minutes until he returned and instructed me to “Strap it on him and make him bark”.  “Him” being Myles – our test subject who was completely content chewing on my toothbrush.

For easily the next forty-five minutes the two of us grown adults ran around the apartment like two crazy people, jumping up and down, making our best “woof!” and “bark!” sounds, running into the hallway and knocking on the front door, pretending to act scared, surprised, shocked. Nothing worked. Myles occasionally looked up from my toothbrush but overall kept a tight lip – i.e. he didn’t bark. 

Just about to give up, I grabbed a sausage treat. I dangled it in front of Myles’ nose. He started Bark-Yelling at the top of his little lungs, and at that moment, given the situation, I knew exactly what he was saying, I didn’t need “bowlingual” to interpret. “Gimmmmmeeeeee sausage! Sausage! Sausage! I neeeeeed sausage! Pant. Pant. Pant. Oh man, sausage.”

Did “bowlingual” agree?  We rushed to grab the transmitter device (yes, there is both the neck contraption for the dog, and the receiver for the owner) to see. After about two minutes of “thinking” (Gotta wonder if behind the scenes this thing is runnin’ Portal or something!) “bowlingual” told us the what Myles had actually said was “I’m scared. Get away from me”.  Someone was actually able to patent this thing?!?

Long story short (cause we continued to waste an entire weekend playing with this thing) here is what I am wondering. Given the relative inaccuracy of the bowlingual – do we at IBM feel there is anyway that we could improve upon it? Possibly bring it “in house” and give it a “blue wash”. Make it so incredibly hard to use but yet so completely precise that not only could we translate our software into our traditionally served languages but also to those who are currently unserved. Possibly to our friends in the animal kingdom.
In fact after a few tweaks on the current “bowlingual” I was able to conduct the following interview.

Angela: Myles what does “dogear” means to you?

Myles: Pant. Pant. (He was thinking here). Baaaaaarkk. Woof. Woof. Bark, arf, arf, growl, bark, bark. Woooooof. (He had a lot to say).

Bowlingual: Myles said. Dogear? Dogear?!?! Are you making fun of my ears. I am so tired of people picking on my damn ears. Lay off the ears!