About Me...

NotesRunningLogoRSmall.png

I'm Kathy Brown and I've been an application developer in Lotus Notes/Domino since 2005.

Prior to working in IT, I've had numerous careers including an Investment Analyst and even an Actress (long ago and far away).

And I (try to) love running!

me.jpg

kathy (at) runningnotes (dot) net

On Twitter, kjbrown13

Upcoming Races

Looking 4 Something?

Disclaimer

This is my personal blog. None of the opinions shown here represent those of my employer. In fact, forget I even have an employer. Any examples given here are strictly fictional and hypothetical and it is pure coincidence if they in any way seem like anything in real life.

05/29/2009

House MD and How The Show Relates to IT

Category Lotus Notes House IT
I like the show House MD. If the Twitter-verse is any indication, I think lots of other Lotus/IT-types like the show also.

One day at work, I was sitting with several users trying to figure out unexplained application behaviour (it couldn't be a bug, I wrote the app, it had to be user error, right?). I sat there and asked them several questions, they responded and in turn tried to suggest possible reasons for the unexplained behaviour. At one point, one of the users said, "Wow! You're just like House!". I of course immediately wondered if he meant that I was a sarcastic, uncaring, but brilliant asshole. He *said* he just meant the part about me asking questions and "diagnosing" the problem.

Anyway...where was I? Oh yes, so an important characteristic of House's is his obsessiveness (if that's a word). I think that is an important characteristic for IT people, too. When I can't figure out how to accomplish something in one of my apps, I obsess over it. I ask a million questions (admittedly, to myself, since I can't afford a team of underlings to listen to me). I read anything and everything I can get my hands on that might have an answer. I bother everyone on Twitter. (I was going to make a joke and name a couple of people that I bug with questions, but there are so many, I can't even list them all). I don't stop until I get the answer.

Huh. Kinda similar to my post on running hills. Hmm. Get mad. Yell a lot. Be stubborn. Yep, running hills and IT are very similar.

Back to House - IT can also be like House in that we come up with a diagnosis, and it's WRONG. And we come up with another one, and guess what? It's WRONG, too. And then we decide we need to perform brain surgery...oh wait, that's the show, okay, we open up the server and are JUST about to remove, um, something (I don't do hardware), when we realize, WAIT, I've got it! And it's something simple and stupid, like a typo, or malaria.

Case in point, I have spent the last two days trying to figure out how to get non-Contact Lotus Notes data into a pre-formatted, already created Word template and merge into a "pretty" document. I was obsessive. Google-ing, researching, asking, reading my heart out. I THOUGHT I had the answer several times. Sarcoidosis? Nope. An immunity deficiency? Nope. Okay, seriously, I used the MSConstants.nsf from openntf.org, which had a mail merge of sorts. It had the functionality to create the data file in Word, but was lacking the merging with Word merge fields part. More research and I learned loads of VB code for creating merge fields. BUT, I already HAD my merge fields defined in my template file, I just needed to fill them in with my Notes data.

John Head and Tom Duff helped me out. Of course, due to my vicadin addiction, I was looking at the wrong code. Oh wait, that's House. I don't have a vicadin addiction, or a legitimate excuse for being a dope. My point being (there is a point, in case you wondered) that a NORMAL person might have given up, but an IT person obsessively keeps looking. Finally, correct file, correct code, ah yes! All I have to do is change one or two lines of code (depending on personal preference) and I can do EXACTLY what I set out to do.

Oh, the line? Instead of "documents.Add" which creates a new merge file, "documents.Open ("[insert filepath here]"). Doh.

So to recap, IT is just like running uphill and House MD. :P

05/25/2009

Redhook Brewery 5k Race Report

Category Running
Yesterday I ran the Redhook Brewery Memorial 5k. I ran this race last year and it was HOT. The course feels like a gradual uphill for the first mile and a half. There is no shade to be had at all on this course. Last year the son was blazing and it was hot. Did I mention it was hot last year? Last year I ran a disappointing 30:25. Disappointing because I had hoped to break the 30 minute mark. I had at a race a couple of weeks before, but the heat just killed me.

Luckily this year, it was cooler and overcast. Big Red also made a full recovery from my prior post and was there to keep me on track. This race is pretty packed, 1958 runners this year. The first 1/4 mile or so was PACKED. A lot of weaving through people and being passed. This race allows both strollers and iPods, which was an interesting combo. I saw a lot of guys pushing strollers and coming up behind people yelling "Stroller on your left" and the runner not hearing because they were wearing headphones.

Speaking of strollers, no matter how much better I do than in years past, I STILL get passed by women pushing double-strollers up hill. Very degrading.

Anyway, so mile 1, I managed an 8:52 pace, which was pretty good for me, especially since I had to fight the crowd a bit. I slowed down on mile 2 with a 9:13 pace. Mile 3 I picked it back up for 9:01. Total for the 5k: 28:31. Not a PR, but definitely better than my time last year! Almost two minutes better!!

And even more exciting to me was that my run was MUCH better than my prior run. Heading out in a few minutes for a run. Next race is June 13th, Market Square Day 10k (I think - I haven't signed up yet!).

05/22/2009

Betrayal

Category Running
Today I was betrayed. Betrayed by Big Red. I've posted previously of my love for Big Red and today Big Red failed me. I started my run as I normally do. And about 1/4 of a mile in, I glanced down at Big Red to see what my pace was. Sadly, Big Red had gone dark. That's not a euphemism, the screen had gone dark. My Garmin Forerunner 305 was off. Despite the fact that it had just been ON. And despite the fact that I had just recently charged it. Sadness kicked in. Then panic. What will I do? How will I know how fast (slow) I've run? How far I've gone? How long it took? I contemplated stopping and going back home. Then, I realized how ridiculous that was and that I should run. I knew about how far to go for a three mile run. So what if I don't know if it was EXACTLY three miles, or long it took, at least I would have gone for a run. So I continued on.

I continued on for one of the most CRAPTASTIC runs I have ever had. First and foremost let me say that I don't like heat. I can run in below freezing temps in a snowstorm, I don't like it, but it's okay. I don't like heat. It happened to be 90 degrees out for my run today and it's 2 PM with the sun blazing. Not the best time for a run, but I have to run when I can, right? Add to that, I hadn't really had ANY water to drink today. Oops. A medium iced coffee and a diet coke. Not exactly the best hydration for a hot run.

I swear there was no shade to be had on my run either. And it FELT like it was uphill both ways. But maybe I was hallucinating.

And, some guy was out mowing his dirt patch. So I got to run through a lovely cloud of gas fumes from the mower and a ton of dirt that the mower kicked up. Boy, I sure hope he has a dog, so I could run through some pulverized dog poo.

When I stopped for my "cool down" walk back to my house, all the neighbors were out and I kept chanting in my head over and over, "Don't pass out - don't puke". Feel free to use that, if you find it motivating.

There was other brilliantly funny stuff I was going to blog about, but in my heat addled state, I've forgotten it all.

05/19/2009

“Push Through the Pain”

Category Running
While plodding today (er, um, running) I came to a realization. First however, I must explain. I am not fast. I don’t try to be fast. I don’t come anywhere near top placement in races for my gender and/or my age. Heck, 90 year olds can beat me. I’m not concerned with that. At most, I just try to beat my own time on a particular course or distance. Although that isn’t even a goal sometimes. Just last April I ran my second half marathon, my goal was not to beat my first half marathon, but to enjoy myself. So, you see, I am not fast. And I am okay with that, mostly.

A critical lesson I have learned about running, and well, almost anything in life, is that I can push through the pain. More accurately, I have learned this through running, but it’s applicable to other parts of life. I can do anything. A bad run for three miles? So what, I can withstand pain for 30 minutes. If I can withstand the pain of running for two-plus hours, I can withstand a lot.

But here’s what I realized today. “Push through the pain” for other people means Go Faster. Push through the pain and move faster. “Push through the pain” for me means Don’t Stop. A big difference. Don’t Stop works great for a half marathon, and I hope someday for a marathon, but it doesn’t do much to make me faster. I wonder if my definition of pushing through will ever change. Can I change from a “Don’t Stop” runner to a “Go Faster” runner? Do I want to?

Anyone out there ever a Don’t Stop runner that changed to a Go Faster runner? Or were you always one or the other?

05/14/2009

DXLMagic for Dummies

Category DXL Lotus
I recently needed to look through an application to determine if a view was used anywhere in the application. A common requirement, right? A quick Tweet, and several people said DXL was the answer to my question. Dump out the design into a file and search through it for the view. Done. But how to accomplish it?

A few posts ago I dabbled in DXL. Just one folder, which I manually exported to a file, but used DXL to create a new one from the file. So, how to export the design of an entire application? Enter Stephan Wissel's completely awesome DXLMagic. I missed this session at Lotusphere, but lucky for me and others that missed it, he's got a ton of great information on his blog.

So I titled this entry DXLMagic for Dummies, because, well, I am a dummy. He has very detailed instructions on his blog about how to get started and I still managed to screw it up. I'm blogging about it in the event someone else is a dummy and runs into the same problem.

Okay, so if you're interested. Go look at Stephan's instructions. Pretty detailed, right? Go to Openntf.org to download the latest and greatest (and it IT great) jar file of DXLMagic. Now, Stephan's instructions say that if you are using a Windows machine (I know, my first mistake) to add three lines to your autoexec.bat file. I can follow instructions pretty well, so I did that. File, open, type type type. Save. Reboot for good measure. Now he lists several commands at our disposal. I was first and foremost interested in DesignExporter.

Note to Dummies: we are going to enter the commands at a command prompt. (You know, Start, Run, cmd).

Another note to Dummies: Stephan's instructions say to start the command with java [command] [parameters]. In my excitement, I missed this for my first several attempts. Surprisingly, it doesn't work if you forget the word java at the beginning.

I got an error. Shocking, right? I checked my Java version. Stephan's instructions do say that this will work with 6, maybe 5, but definitely 6. Okay, I had the latest and greatest from the Java site. Now what? Check my typing in the autoexec.bat. Yep, it all looks good. Per Stephan's instructions, I have my file paths in quotes since Notes is buried under "Program Files", which has a space in it. Still nothing, still getting "NoClassDefFoundError" "java.lang.ClassNotFoundException".

Around this point, I sent out an SOS on Twitter, which Stephan was kind enough to respond to himself. He tried to help me out a bit, but since this wasn't a problem with his code, I felt a bit bad about pestering him. I kept trying on my own. Still nothing. Still the same error.

Messing around a bit more and typing SET in the command prompt showed that the other settings from the autoexec.bat were in effect, except CLASSPATH. For reasons uknown to me, they didn't take. So, I manually typed SET CLASSPATH=[stuff from Stephan's instructions]. This was a test box, so I didn't really care if I broke other things. You may feel differently. I navigated to the directory where the DXLMagic.jar file was located. I have no idea if that mattered, I'm just tellin ya what worked for me. And that did indeed work!

Can I say how fabulous this tool is? IT IS FABULOUS. And so easy to use (you know, once you get it working). And so useful! I had a blast (yes, I am a geek) searching through the design of my application just looking for stuff, because, you know, I could. So newbies/dummies, don't be afraid of DXL, jump in! Have fun! Check out Stephan's blog! [ETA: actual error message above]

05/12/2009

In Case You Missed It

Category Funny
In case you missed this on Twitter, or on Facebook. You HAVE to check out this item on Amazon, and be sure to read all the reviews!

Amazon Item

For extra fun, check out the "Items Other Customer Viewed"

05/11/2009

JUST GET OUT THERE AND RUN

Category Running
I haven't run in a week. And I don't feel like running today. But I know that I should. I know I'll feel great when I'm done. But right now I feel like a three-year-old, stomping and kicking and screaming, "I don't wanna!!!".

Suck it up. JUST GET OUT THERE AND RUN.

That's what someone needs to tell me.

The sad thing is that I regularly go through this, and yet still I let it get to me. I don't feel like running, and one day I give in to that feeling. Then the next day I feel bad about not running the day before and I don't go running again just because I'm mad at myself. That makes sense, right? The more days slip in between runs, the easier it gets to skip the run. I'm not sure if it's post race blues, or just life. Wait a second. Who cares?! JUST GET OUT THERE AND RUN.

Oh, right.

You've heard it here first. I *am* running today. I *will* feel better when I'm done. Wasn't I just dreaming about a MARATHON last week? And now I'm finding it hard to gather the energy to run three miles. Sheesh. JUST GET OUT THERE AND RUN.

Please make a comment to check and see if I went for a run. Public humiliation may be all that gets me out there today!

05/06/2009

It's Never Easy, Or Is It?

Category DXL Lotusscript
Today I tried my hand at a DXL Import. Guess what? It didn’t flipping work. Surprising, eh?

So, what I was trying to accomplish: I needed to generate a folder for a user, if the user did not already have a particular folder in this application. The folder needed to be able to be updated by the designer whenever requested changes were made (if a change was requested, each folder needed to have the new design), hence I could not use a shared-to-private view. DXL seems all the rage, so why not? Export the folder to DXL, edit and replace folder name to a new folder name, import the DXL and voila! Happy new folder. Added bonus, anytime the folder design changes, I could do the very same thing for all the folders and have the design updated. Extra added bonus, I could learn something new! [Note: a button automagically updates the documents in these folders, so no need to be concerned that I would be zapping meticulously moved documents when I replaced the folders.]

It all seemed too easy. For this exercise, I manually exported a folder using Tools, DXL Utilities, Exporter. Whew. Okay, halfway there, right? Ha. Well, first I tried to get fancy. I wanted to store the exported DXL in a profile doc in the database, and use the NotesDXLImporter (the help says you can use a rich text item) to import the DXL into a domino folder. A little help file here, a little help file there and I had this:

Dim session As New NotesSession Dim db As NotesDatabase Dim importer As NotesDXLImporter Dim doc As notesdocument Set db = session.CurrentDatabase Dim rtitem As notesrichtextitem Set doc = db.GetProfileDocument("adminprofile") Set rtitem = doc.getfirstitem("prodoc_body") Set importer = session.CreateDXLImporter importer.ReplaceDBProperties = False importer.ReplicaRequiredForReplaceOrUpdate = False importer.ACLImportOption = DXLIMPORTOPTION_IGNORE importer.DesignImportOption = DXLIMPORTOPTION_CREATE Call importer.Import(rtitem, db)
ls2html was brought to you by nsftools.com

And … no go. It didn’t blow up, but I got an error, ever helpful as always.

DXLfail.JPG

Yes, thanks. Wonderful. Well, fine. Maybe for my first try, I should simplify a bit. Let’s get the DXL from a file.

Dim session As New NotesSession Dim db As NotesDatabase Dim importer As NotesDXLImporter Dim doc As notesdocument Set db = session.CurrentDatabase Dim stream As NotesStream Set stream = session.CreateStream If Not stream.Open("C:\Documents and Settings\kathy\Desktop\folder.dxl") Then Messagebox "Cannot open " ,, "Error" Exit Sub End If If stream.Bytes = 0 Then Messagebox "File did not exist or was empty" Exit Sub End If Set importer = session.CreateDXLImporter importer.ReplaceDBProperties = False importer.ReplicaRequiredForReplaceOrUpdate = False importer.ACLImportOption = DXLIMPORTOPTION_IGNORE importer.DesignImportOption = DXLIMPORTOPTION_CREATE Call importer.Import(stream, db)
ls2html was brought to you by nsftools.com

Hey, look at that! I just successfully created a folder from DXL.

Being stubborn, I’ve tried to get the rich text item on the profile doc to work, and it…won’t. Stepping through the debugger, all looks right with the world. The DXL is correctly stored in the profile doc and captured in my code as a rich text item. It just doesn’t work.

So, being really stubborn, I still wanted this to work from a document within the database, rather than a file. Further investigation showed I could get plain text from a profile doc and send that in to a NotesStream. Success! I could now import my folder from a profile document.

Dim session As New NotesSession Dim db As NotesDatabase Dim importer As NotesDXLImporter Dim stream As notesstream Dim doc As notesdocument Set db = session.CurrentDatabase Set doc = db.GetProfileDocument("adminproftext") Set stream = session.CreateStream Call stream.WriteText(doc.GetItemValue("prodoc_body")(0)) Call stream.WriteText(doc.GetItemValue("Body")(0)) stream.Position = 0 Set importer = session.CreateDXLImporter importer.ReplaceDBProperties = False importer.ReplicaRequiredForReplaceOrUpdate = False importer.ACLImportOption = DXLIMPORTOPTION_IGNORE importer.DesignImportOption = DXLIMPORTOPTION_CREATE Call importer.Import(stream, db)

ls2html was brought to you by nsftools.com

So this isn't the most exciting or advanced post in the world. We'll say it's DXL for Dummies. Meaning me.

Oh, and I'm very excited to try ls2html tool from nsftools.com in this post. Pretty cool, huh?

05/03/2009

Margaritas Mexican Fiesta 5K

Category Running
As mentioned in my last post, I got a last minute entry into the Margaritas Mexican Fiesta 5K. Basically, my mother-in-law registered for the race and then, the night before decided not to run and gave me her number. (To be clear, she has breathing issues, she didn't just cop out). So that is how I happened to be registered for a race that I didn't know about until the night before. I was registered as a woman 50 to 59 years old. (To be clear again, I am NOT 59).

This was the first running of the Margaritas Mexican Fiesta 5K. It seemed like it would be fun. Margaritas is a local Mexican restuarant. The race was sponsored by the restaurant and Corona. Free beer and mexican food after the race - who could ask for anything more?

I got there WAY too early. There were only 450 people registered for the race, with plenty of parking. Oh well. I saw a friend that I hadn't seen since the Great Bay Half Marathon, so we chatted a bit before the start.

Before the race started, I hadn't yet decided if I was going to try and run fast, or just take it easy. I haven't exactly been training. I only ran twice this week. My next race wasn't scheduled until the end of May. The race started and a huge group of people started doing some goofy take on Army chants. You know where one guy says something, and the other people echo want he said. Only they were REALLY annoying. I decided I would try and run fast, if only to get past them. Which of course proved difficult since they were running side-by-side, at least 10 people across. Did I mention the fact that the race was small? As a result, they didn't close off any of the roads, and we ran in the bicycle lane most of the way, so only room for one to two runners side-by-side.

Once I got going fast enough to pass them, I figured, what the heck? I'll keep going. It was pretty much a slow gradual rise to the halfway point and then a couple of quick downhills to get back to the starting point. I completed the first mile in 8:56, which is pretty fast for me. The second mile I slowed down to 9:12. I got annoyed with myself (and this woman who ran so close to me, I thought she was drafting) that I stepped it up for the last mile and ran it in 8:27.

So I finished the 5K in 27:50 according to the clock time (no chip time this race). A PR for me! Yippee! I placed 210/433. Again, for me, not too bad.

A personal record AND a free Corona and Mexican food. Could this day get any better? :)

05/02/2009

Daydreaming about a Marathon and Running a Surprise 5k

Category Running
So I've been daydreaming about running a marathon. I've run two half marathons now. Hey, does that count as a marathon? :) It won't be this year, maybe not even next year. But more and more I am considering running one. It used to be a "never, no way" kind of thing, but it keeps creeping back into my brain. This last half marathon wasn't so bad, hey, it was even fun. Why not?

Which leads me to wondering WHICH marathon should be my first? Conventional wisdom says your first should be flat (duh), have good crowd support, well organized and close to home. How about three out of four? Flat and close to home do NOT go together around here. While *someone* on Twitter mentioned an Anguillan triathlong, I think I'll stick to a marathon. ;) So, daydream ideas:

Nike Women's Marathon - this one just sounds awesome, Godiva chocolates, Tiffany necklaces for medals (handed out by fireman in tuxes!). Only problem, you can only get in by lottery. Oh, and I'm guessing it's a little hilly since it's in San Francisco. Ahem.

Boston Marathon - this one would just be cool for the history sake of it. Of course there is NO WAY I would qualify, so I would have to raise money for charity. Not a problem, just being clear that I would never qualify. :) And it's in April, which would mean the majority of my training would be in snow and cold temperatures. Oh yeah, and a little thing called Heartbreak Hill.

Dublin Marathon - I have no idea what the terrain is like here, or the crowd, but I've always wanted to go to Ireland. And I've heard this is a good race. However, that is kind of far to go for a marathon.

Walt Disney World Marathon - I know it's Goofy. Ha ha. But I think this would be a lot of fun. However, it's in January. Training in freezing New Hampshire weather and then running in possibly hot Floriday weather does not sound like a good idea. It is pretty flat however and has marginally good crowds. No crowd support in the parks, though.

Cape Cod Marathon - reasonably close by and sponsored by Dunkin Donuts, what more could you want? I've heard it's pretty hilly though.

Other considerations:

I've heard the Marine Corps Marathon is a great first marathon. However, it doesn't really spark any excitement in me. And if I'm going to train 4-6 months, I think I need to be excited, don't you?

I've also heard the Chicago Marathon is another good one. Again though, no spark.

Hmm, this actually sounds like I'm considering this doesn't it? Any thoughts?

Oh yes, and the surprise 5k I mentioned in the title. Someone I know registered for a race and can't run it tomorrow morning. So, I'll be running the Margarita's 5k Fiesta in her place. Wish I'd run a bit more this week.