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.

07/21/2010

What Is Your Application Development Cycle

Category Development
I don't mean for those one-off applications. I mean for the big ones. Applications that have ongoing requirements. Apps that always have new feature requests, bug fixes, etc. And I'm strictly asking about Lotus and Domino development. What is the cycle like?

Do you develop one thing at a time, then test, then release? Do you develop a lot of features at once during a set time frame, then test, then release?

Certainly there are best practices out there, but what is the reality? I'd like to hear how it works for you...

06/10/2010

Lotus Notes Developer Tips at IamLUG

Category Development IamLUG
Most of the sessions are up on the IamLUG site here. As you can see, Tom "Duffbert" Duff and I will be speaking together once again.

Developer Tips EVERY Dev Should Know

Ever wish you had a list of all the top mistakes to avoid when developing for Domino? What about all the tips you need to know to create successful applications? Join Tom and Kathy as they show what EVERY Domino developer needs to know. They’ll explain what you need to know and why you need to know it. They’ll also share how they learned some of these tips the hard way, so you don’t have to!

This is a "repeat" of our session from Lotusphere, but we've changed it up a bit and added new jokes. If you're following our @NotesDevTips account, you'll no doubt see some familiar tips. But the best part is we'll cover more than can be conveyed in 140 characters!

As you can see here, I had a blast last year at IamLUG. It was great fun and I learned a lot. And did I mention that the conference is FREE?!

Hope to see you there!

05/28/2010

Round and Round

Category Lotus Notes Development Formula
So the other day I discussed @Transform. While @Round may not transform your life, it is important to know about.

Us application developer types may not be numbers people. And Lotus Notes isn't exactly known for its number functionality. You probably aren't calculating complex mathematical equations in your Notes applications. However, even if you are calculating simple calculations, you need to know about @Round.

Note that:

3.3 * 3.3 = 10.89

and

3.33333 * 3.33333 = 11.11

No big deal, right? Except if these calculations are on a much larger scale. And if they are compounded by further calculations on the results.

Enter @Round

Determine where the decimal place should go, and apply it consistently with @Round.

@Round (value, factor)

@Round (10.555, 0.1) = 10.6

Note that the syntax for the LotusScript method Round is slightly different. The second parameter is simply the number of digits after the decimal place, not a factor. In LotusScript, Round (10.555, 1) = 10.6.

05/26/2010

Introducing NotesDevTips

Category Lotus Notes Development Twitter
Inspired by the session that Tom "Duffbert" Duff and I did at Lotusphere, "The Top Things All New Notes Domino Developers Need To Know", we have started @NotesDevTips on Twitter.

We will post simple (it has to fit in 140 characters) tips for Lotus Notes Developers. Please follow, retweet and most importantly reply with your tips! We will retweet your tips, so send them in!

04/21/2010

What's Your Favorite Tool?

Category Tools Development Domino
I've had some recent blog entries on using the tools, like DXL Magic or Noteman. Frequently as developers, we think, I'll just do it myself. We code things, that's our job, so we ignore the tools that may be available to us. Or maybe we think they're too expensive. Whatever the reason, I find myself realizing that some tools save me so much time that they are worth the cost. Whether that cost is actual money, or just a piece of my pride (What?! You didn't just code something yourself?!).

Sadly, sometimes I don't look at a tool because it does too much. I don't have the time to spend to figure it all out, or what it can do for me.

So, what are your favorite tools as a Domino developer? Why is it your favorite tool? What do you use it for?

04/15/2010

SNAPPS Quickr Bootcamp

Category Quickr Development
This week I attended the SNAPPS Quickr Bootcamp, held in Overland Park, KS. It was a three-day Quickr developer training session. The next time the SNAPPS folks offer this, RUN, don't walk, to sign up.

Obviously, these guys are smart, they're frequent speakers at conferences, and they are experts on Quickr. They have done a terrific job at putting together material to get you up to speed and developing with Quickr. The three day bootcamp covered what you need to know, as well as what to watch out for. They discussed how to fix things when they go wrong and what you should NOT do (but how to do it anyway). They've really condensed their years (and years and years) of experience and delivered a lot of that knowledge in three days.

The bootcamp was very well constructed, with a basic starting level and working up to more advanced topics. The format was part lecture, part hands on exercises, with enough of each to deliver the knowledge and keep the attendees engaged.

Much like going to Lotusphere, I feel exhausted and my head is filled with stuff I can't wait to get home and try out. Thanks SNAPPS guys!

04/12/2010

Developer Tips EVERY Lotus Dev Should Know

Category Development
Tom and I are at it again! We'll be presenting together on a webinar in the Developer Series over at Consultant in Your Pocket. We're going to try and cram two hours of content into one hour, should be fun! Oh and did I mention the webinar is FREE?! Following is the abstract. We hope you can join us!

Developer Tips EVERY Dev Should Know

Ever wish you had a list of all the top mistakes to avoid when developing for Domino? What about all the tips you need to know to create successful applications? Join Tom and Kathy as they show what EVERY Domino developer needs to know. They’ll explain what you need to know and why you need to know it. They’ll also share how they learned some of these tips the hard way, so you don’t have to!

04/06/2010

Paper Coding

Category Development
The April issue of the Lotus User Group Developer Tips Newsletter is out. In it, I discuss paper coding, a twist on paper prototyping and psuedo-code. I'm curious if anyone else does anything like this when they code and what you think about it.

I'd also like to take a second to say if there is anything you'd like to know more about, or would like to see Tom and I write about in the Newsletter, feel free to drop us a line and let us know!

03/31/2010

Code Inconsistency - Newbie Tip

Category Development Domino
I hate when something means one thing, except when it doesn’t.

Take for example, the following:

@DbLookup ("":""; "":""; view; key; fieldname)

If you’re a Domino developer, you’ve probably coded something similar thousands of times.  And you know the third set of quotes is for the server parameter and indicates the server of the current database.

So, what would you think the empty quotes mean in the following code?

If db.OpenByReplicaID ("", "85255FA900747B84" ) Then

You might think it means the current server.  But, you’d be wrong.  In LotusScript calls similar to this (CreateFromTemplate, CreateReplica, New, etc.) the empty quotes indicates the LOCAL computer.

02/01/2010

Use The Tools - Part 2

Category Development DXLMagic
A couple of weeks ago I blogged Use The Tools, about using tools to help you. Yes, you could do it the hard way, but why? Last time I wrote about Noteman. Today I want to mention Stephan Wissel's DXL Magic. I wrote about it way back in May 2009. I happened to need it again yesterday and luckily I checked OpenNTF to see if there was an updated version. Guess what? There is! And it's super easy to use! Lots of options, easy to use interface.

In my particular instance, I wanted to search through a database to find where particular views were being used. I had reason to believe there were several unused views in the application, but I wanted to be sure I didn't have some code somewhere that called them. Enter DXLMagic. I simply used the Export button to export the design of the entire application into an XML file. Using XMLPad, I easily searched for the names and aliases of the views. Stephan has added lots of other really cool features in here and it's FREE! So don't do more work than you have to! Use the tools!

Here is a screen shot of the Windows version...

DXLMagic.PNG

08/27/2009

Fun with Lists!

Category Lotus Notes Newbies Development Lists
Lotusscript lists, that is. Frequently underutilized by developers (including me), but a very useful tool nonetheless. I had a need recently to loop through some documents, and create a unique list of names from those documents, and then count how many unique names I had. I needed to do it in Lotusscript. I would also need to do something with those names later in my code. Oh, and the number of names would depend on the document collection and how many were actually unique. Addtionally, I had more than one bit of data that I wanted to capture. For this example, we’ll say name and phone number. So, what to do?

Well, I *could* use an array, but not knowing how many names would be added to the array would mean having to ReDim the array, but that’s no fun. So enter Lists! Creating a list is super easy, and you don’t have to know how many items will be in the list. I added a little counter to count the number of items in my list as I added them. Yes, I could have added them, and then looped through afterward and counted them that way, but I actually had some other stuff to do, so did it when I added.

Dim clientList List As String ‘dim the list itself Dim n As Long ‘dim n as long for the counter n = 0 ‘start the count at 0 While Not entry Is Nothing ‘obviously prior code would have dimmed a view entry collection and 'provided a way to loop through it, this part of the code just insures we are acting on an actual entry ‘This next bit checks to see if the item is already in the list and if it is NOT, then increases the counter by 1, 'and adds the entry with column value 5 as the listtag and column value 6 as the value If Not (Iselement(clientList(entry.columnvalues(5)))) Then n = n + 1 clientList (entry.ColumnValues(5)) =entry.columnvalues(6) End If Print Cstr(n) ‘this prints the count of items added to the list ‘This just shows something we can do with the list, such as printing the listtag '(aka column value 5) for all of the entries in the list. Forall clients In clientList Print ListTag(clients) End Forall

ls2html was brought to you by nsftools.com

Pretty easy, huh? Easy to create and easy to use the data. So Lists! Use ‘em!

07/17/2009

Loved This!

Category Funny Development
I am attempting my first embedded video so bear with me, but this was too funny! (Thanks @kalechi)

03/12/2009

Admin for Developers

Category Administration Development Lotus Notes
[Originally posted on my prior blog]

I definitely NOT an Administrator. I occasionally become acutely aware of that fact whenever I have to do something Admin-y.

Now, I am not completely inept. For my first couple of years in IT, I actually did some basic administration for our Domino server: create users, manage mailboxes, etc. However, I only know what I’ve been taught. In other words, my admin said “create a new user, here, this is how you do it”. See, I am not completely inept, just mostly inept.

So, imagine my delight when I saw Jess Stratton’s Lotusphere session “Administration for the Developer: Build and Secure Your Own IBM Lotus Domino Server Playground in an Hour!”. Fabulous, just what I need and now I can do it on my own. No need to bother the admin. Great! She made it look so easy, too. Her slide deck was terrific with step by step instructions. Yeah!

Of course, I come back from Lotusphere (and back to reality) and get busy with work, so I don’t get around to trying it until this week. Okay, download VMWare. Got it. Hmm, which VMWare product? There are approximately 500 of them (I’m exagerrating a little). Well, let’s see, this Workstation thing looks good, and I can download a free trial, let’s give that a go…downloading…installing…hey, look at that! It created an image of the computer it’s installed on. Fantastic. Jess said we could use Windows 2000 since it’s free and Domino 8.5 server works on it. But, look VMWare Workstation made a virtual machine of my XP workstation. We have the licensing, so I’ll just go with that. [Mistake #1]*.

Okay, that worked, let’s install the Domino server…installing…pretty…hey, that worked! Woohoo! Now, go to host machine, launch Notes client, make a connection doc, and a location doc. Umm. Hello? Nothing. Crap.

I then dig out Jess’ presentation slides. Prior to that I had decided to ignore them, since, you know, I know what I’m doing! [Mistake #2] Flip through the slides. Oh look, she recommended pinging between the host and guest BEFORE installing Domino. Hmm. Oh well, no biggie. I’ll just ping now. Ping from guest to host. All good. Ping from host to guest. Nothing. Crap. So then I start playing with the Network Adapter setting on the virtual machine, thinking maybe I just have the wrong setting. Which each time (I think) requires me to shut down and restart the virtual machine. Since I installed Domino as a service, this means I get to watch my Domino server start up and have to shut it down each time. [Mistake #3].

Still no go. Okay, next I Google my problem. No one ever seems to have a problem pinging the guest from the host. Lots of people have problems the other way, and lots of people have solutions, but nothing for my problem. Crap. Again.

Finally, something goes off in my brain that I remember something somewhere about XP and ip addresses. Oh yeah, and Jess said she uses Windows 2000. Hmm. Let’s try that. Dig out old Windows 2000 Server CD. Install…hey! Look at that! PING! PING! PING again, just because I can! Success. Now I install my Domino Server. Ah, look at that. A thing of beauty.

Launch the Notes client. Make a new connection doc and a new location doc (because now I’ve moved on to a new machine, new installs, etc. out of sheer frustration). And…crap. Still can’t see my server. Ping again. Yep, that still works.

Finally, I ask my admin. What the heck am I doing wrong? He comes over, tells me to put the ip address in where the connection doc asks for the server NAME. Not the tab that asks for the Server Address, I had that right, but the tab that asks for the Server Name. I do that, and sadly (because I am now embarrassed in front of the admin, who thinks I’m an idiot), but happily…it works! I make a joke about how long this took me and the following conversation occurs:

Admin: Why didn’t you ask me? Me: Well, it was really the whole thing about XP and the virtual machine ip address that took so long. Admin: Oh yeah, XP [blah blah] ip address [blah blah] I could have told you that wouldn’t work.

Sigh.

Moral of the story: Don’t use XP for your virtual machines and read the instructions.


*Admins may argue my FIRST mistake was actually trying to do anything adminstrative to begin with, since I am just a lowly developer. ;)



[Comments posted on my prior blog]

Dan Soares said...

[grin]

You are FUNNY ! I enjoy reading your posts !

Dan Soares
March 12, 2009 10:48 AM


Jess Stratton said...

LOL great post, and now you have a great learning experience for everyone else to read! Thanks for downloading my presentation!
As for the player, it wasn't Windows 2000 that was free, it was the VMWare Player if you already had an image somewhere.
Hopefully the MP3 of my session will be available soon on LotusLive.com... it was Windows 2000 client that I used. The reason I gave was to show everyone that it does work if you need it in a pinch - and you are a developer. The chances of having an old, unused version of Windows 2000 lying around vs. new server software is much higher!
Anyway, I need to know any steps that are not clear for someone who is not an admin, so I really appreciate you pointing it out to me (needing the IP address for the server name) - I will update the slides.
March 12, 2009 10:53 AM


Kathy said...

Thanks Dan!

Jess-I in NO WAY meant that your presentation wasn't complete. Just that I am a dope who didn't listen as well as I thought I did! :) March 12, 2009 11:14 AM


Lotus Evangelist said...

This was a great post. Always want to hear your perspective. And there is no better way to learn than doing it yourself.
There are some small, but important pieces when setting up a demo environment a few people have posted about it since LS09.
I should load VM now that you mention it on my rebuilt laptop.
March 12, 2009 11:33 AM


Jess Stratton said...

Kathy... LOL, our presentations are *never* complete. If they were, they'd be called "Redbooks."
Thanks again for such kind words!
March 12, 2009 7:06 PM


Jeffery said...

Thanks for not mentioning that the first admin couldn't figure that one out so you had to turn to the real smart guy for the answer.

japerk57
March 13, 2009 7:33 AM