Marginal Insanity

Just remedied a recurring eyesore with a Lotus Notes database I’m working on. The culprit: displaying the form left-aligned when it is first displayed. More to the point, contents of the form are aligned 1″ from the left by default. What if the contents are aligned less than 0.75″ from the left, (the left edge of the screen’s orientation when the form is displayed is originally at 0.75″?) This problem is usually encountered when forms are designed to be printer-friendly, just as in my case.

The amount of similar posts in Notes.Net and the amount of time it took me to get something working for me just shows how much something seemingly simple can get so seemingly hopeless and absolutely frustrating in Notes development.

Nevertheless I found the workaround for me. Thanks to Larry E. Gearing for taking the time to post something comprehensive for all other developers lost at Notes.Net, I got around the hassle and was able to proceed elsewhere. His proposed workaround is to make use of keybd_event native to MS.

Here’s the content of Larry’s response:

(Revised 2004/03/09, still learning)
There are many ways to open a document. Most of the suggestions under this topic worked in some but not all cases. Most failed when a document in a view is right mouse clicked and “edit” is selected from the drop down.

My biggest obstacle was the I had a field with the “Give field initial (default) focus” option checked. When I opened my form in edit mode, Ctrl+Home would not move focus off that field. I guess this is a reason to avoid the initial focus option!

What I am using now is
(1) first line of form is a blank line with text property set to left margin 0″ absolute and “hide when printed”. This will force the form to the left when opened in read mode and not cause a problem when the form is printed.
(2) to force the form to the left when opened in edit mode I added
– to Global declarations: Declare Sub keybd_event Lib “user32.dll” (Byval bVk As Integer, Byval bScan As Integer, Byval dwFlags As Integer, Byval dwExtraInfo As Integer)
– to Post Open
Sub Postopen (Source As Notesuidocument)
‘force to left
Source.HorzScrollBar=True
Source.HorzScrollBar=False
Source.HorzScrollBar=True ‘leave it on
‘keybd_event declared in Globals
‘Ctrl&Home
keybd_event &H11,0,0,0 ‘ Ctrl on
keybd_event &H24,0,0,0 ‘ Home
keybd_event &H24,0,2,0 ‘ Home off
keybd_event &H11,0,2,0 ‘ Ctrl off
End Sub

This seems to be working, 2004/03/09

Same here man! Way to go!

Readers, Authors Dilemna

One common suck-up Notes developers experience early on in their careers is the loss of documents because of erroneous Readers fields. Readers and Authors fields in particular are very tricky and a lot of new developers experience hassles in addition to the one above.

Good thing Andre Guirard took time to come up with The Complete Reader and Author Field Troubleshooter Guide in the Notes 4 and 5 developerWorks forum. The same useful and comprehensive guide can be found in the forum’s FAQ so it wouldn’t be hard to get to the material when you’re already starting to pull your hair because of Readers and Authors field gripes.

The Risk Called Office Printers

Yup the title’s right. If the BBC article towards the end of the previous month’s to be believed:

The humble office laser printer can damage lungs in much the same way as smoke particles from cigarettes.

Read more on the said finding of a group of scientists from The Queensland University of Technology.

[08/18/07 Update] – For a good laugh, here’s abarclay12’s take on the printer risk thingie. Included there is an interesting tech article linking HP’s official statement on PC World which went:

HP is currently reviewing the Queensland University of Technology research on particle emission characteristics of office printers. Vigorous tests under standardized operating conditions are an integral part of HP’s research and development and its strict quality control procedures.

What’s with PR these days? More to the point I just don’t get what the second sentence is doing there. Strict quality control procedures and research and development should include health risks among important prerogatives and the fact that they did consider reviewing the study just shows that this is one thing they failed to consider.

I think I should talk to my boss for me to get placed a little farther away from the office laser printer. My proximity from the culprit right now’s somewhere around a meter or 2.

Notes/Domino-Stuff Elsewhere

Domino LogoI’ve been working with Notes and Domino for more than 4 years now. I’ve worked with R5, 6, 6.5 and 7 and in the course of going around with the Lotus technology, I’ve encountered some things from different Notes and Domino experts elsewhere.

One common limitation in starting out with Domino web development is the lack of the Calendar control functionality for date fields. Sure this has been done by the Domino Web Development lot long ago but it still pays to maintain a link of pertinent resources for it. I encountered the need for the said solution and I just realized how much of a waste looking for something I have implemented more than 2 times already has become because more and more people are not bothering to take their time searching the Notes/Domino 4.5 and 5 Forum.

So half an hour into the search, (including the 6 and 7 Notes and Domino forum that is,) I encountered this forum post to which Notes-legend Stan Rogers’ response included this Projectdx resource. Another big name in the Notes/Domino arena, Jack Ratcliff, had this to say but the resource he linked to seems unavailable already.

Speaking of the quality of Notes and Domino forum posts, Ben Poole has this recent post he calls the Best Forum Post in Ages.

The Lotus Developer Domain discussion boards are pretty much best avoided nowadays. But every now and again a real gem pops up

Well, I have yet to encounter a forum where its hayday spans more than a few years, (I know of one where older members complain of the downward-spiral of content prevalent after nearly just 4 years.) I guess its pretty much a part of the evolution of online forums, (or just a question of how long it will take before idiocy creeps up.) Whatever it is, it’s just one good reason why I’m constantly on the run towards some other direction from time to time.

Matt sums it up in his comment when he says:

I think the senior developers have developed their own ecosystem on the various blogs and also private IM conversations these days. Not a good thing but the noise to usefulness ratio on the ND6 forum is just too high these days.

The image was taken from Jake Howlett’s site, Codestore btw.

Another List of Development Stuff to Think About

I’ve came across several stuff which I’ve decided to collate into a whole list for the interested seasoned developer.

  1. Here’s a list of what not to do when building a website. Josiah Cole gets candid yet ruthless in his quest against web development show-offs. While I don’t agree with everything there, it still presents a pretty comical stab at some web development practices we still commonly see.
  2. Next is something seemingly trivial yet commonly neglected in web development: explicitly setting the bgcolor CSS attribute of a website to white. Here is the link to Jeffrey Zeldman’s cents as he writes in favor of doing so. Ironically, I got there from Andrew Tetlaw’s blog entry expressing the authors disapproval. As for me, while I think it is still correct to do so, (despite sounding OC’ish,) I don’t hold it against the programmer of a site if he or she does neglect to do so.
  3. AJAX is a buzz word only a web developer hiding in caves shouldn’t have at least heard of. For those interested in finding out where it’s generally accepted to try it out, you might want to check Mat Henricson’s corresponding blog entry for the 12 perfect cases.
  4. We’ve all seen that nifty snapshots of the typical life at the Googleplex, (from Time magazine if I remember it right.) Here is however a dose of stuff that somewhat doesn’t really paint the same picture, (to say the least,) inside the company’s confines. Amusingly it even had to brand itself as a “Microsoftie perspective.”
  5. Completing the list at 5 would be an interesting read for all IT players out there who want to gauge more or less how long it should take before their bread and butter line up in the IT museum. From ComputerWorld, here’s a list of the top 10 dead, (or dying,) computer skills. I wonder how long it would take before Lotus Notes and Domino gets queued up for obsolescence though.

The Weekly Nutshell

The Toughest Day Yet

I started my working week with a leave that actually culminated a stretch of 4 days away from the workplace. While that seemed a jackpot to the busy developer then, things had their way of turning sour instantaneously.

It was a busy day last Tuesday as all people in the department I was working for were preparing a lot of reports for the following day and needed me to take a look at a lot of things in one of the databases. Imagine the toughest day of the year for me so far as I was met with the following setbacks last Tuesday:

  1. Just as I was at the gate of the organization I was assigned in the first thing in the morning, the guard informed me that my ID was expired, (it was valid until June 30.) So I had to ask someone from the department to do something for me to get in. The wait had me waste about 15 minutes of my time and late for about 8 minutes.
  2. When I turned on my PC, I realized that there was no power in my CPU. It had a different plug so I had to use a power strip for it to get going. Since there was no more power strip left in the place, my officemate had to call the appropriate people to get me one and I had to wait until lunchtime .
  3. When I was finally able to start my machine, I found out that my network password has also gone caput so I had to ask my superior to file for its renewal. I had to wait for almost 3 hours for this to get done.
  4. When I was finally able to get past the first login page and log on to Notes, I cannot open any database since the certification for my Notes ID was expired too! Upon asking my superior again, she called the Notes Admin and had my certification ironed out. After I got the confirmation, I got to do official work at past 3 pm.
  5. Just when I was finally getting a lot of things done already, all of us notice that the production server was down! When I already had the chance to rush off a lot of things in a span of time less than an hour, the server choked on me!
  6. It was almost 5 pm when I got to resume work. By about 5:30, I had a lot of the issues they raised earlier sorted. When time came for me to leave, my attention was called as replication or save conflict messages were all the entries shown in a view I tweaked earlier. Turns out that my Notes ID wasn’t properly certified at all because when my boss re-saved the view in designer, all people there saw the view return back to normal.

Well there were still a lot of minor disturbances but anyone who gets to read this will definitely get the picture. Workwise-stress, this has to be the toughest day I have experienced so far.

I could have easily done all the work I was actually able to do in at most have a day but with all the mishaps and lack-luck’s, my load remains at full until the next week.

To Do’s

Career-wise I had myself doing something new the past week: having a taste of Graphics Design. That was after 5 years of dodging the Photoshop bullet because either someone else was more qualified or willing to do it or because I had a convenient excuse of being color-blind.

So what prompted me to do it? While I have no intentions of being a top of the line graphics designer, as a Domino developer for the most part of my resumé, there’s simply no way for me to get attention to what I’m able to come up with for the web without descent graphics. Add that to the fact that not everyone’s always at my disposal and that was when I decided to take the dive.

So far I’ve been able to see what Photoshop can do as far as getting some images to be rendered transparent and to get cool buttons by using gradients and masks. Thanks a lot to the patience of an officemate for both tasks and to this resource for the latter.

Nothing complicated yet as I’ve been doing it for the requirements I’ve had for the past two weeks alone. Give me a few more months time to about a year and I’ll muster enough courage to include it somewhere in my resumé however obfuscated.

Which brings me to another list of what I want to accomplish come year end:

  1. Start learning Photoshop.
  2. Learn C# and VB.NET.
  3. Enhance my Java skills to include the Enterprise side of the technology.
  4. Enhance my Lotus Workflow and Domino Document Manager skills.
  5. Finish saving up for my daughter’s tuition fee for the next school year so that I can start saving for the following one by 2008.
  6. Upgrade my notebook’s RAM and HD.

Since the first items 2 to 4 are pretty tough to squeeze in my busy schedule, I’m rendering these as moving targets until the middle of next year.

Blog of the Day: Codestore

Mac Notes Icons

I’ve been mentioning Jake’s site, Codestore, in at least two previous posts so I thought I would just as well feature him for the third Blog of the Day. This and the fact that I’ve ripped off taken two cool Lotus Notes icons from his previous blog posts actually, (including the one shown here.)

In the world of Lotus Notes/Domino development Jake Howlett has oftentimes been lumped among those big names in the foray such as Stan Rogers. Here’s Codestore in his own words:

CodeStore started in the late ’90s as a place to store bits of code (hence the name) on my hard drive. Access was soon requested by colleagues, both in and out of the office. That is when I decided to make it accessible via the web. The initial plan was not to make it public but then I thought “Why not?!”. After all if it wasn’t for people sharing with me when I was a novice I would have been lost. So, in a way, it’s payback for all those generous members of the Notes community and to those in a similar position as I was all those years ago.

CodeStore has had many looks over its lifetime and in certain ways reflects my ideals of what a site should be like – simple and functional..

The site’s popularity has never ceased to amaze me. There’s an average of about 5,000 visitors a day. What really makes it worth it though is when I receive mail that takes time to thank me.

I owe a lot of what I know in terms of Domino development to the site. It was a great relief given a technology that’s scarcely documented unlike those from MS. As an added bonus, Jake makes it a point to answer all emails to him, (well my stat’s 2 of 2 and I’m taking it, since I can’t imagine the volume of emails the guy gets daily.)

Freelancing Anyone?

If you’re a Notes/Domino guy and have been weeding through the IBM’s Notes forums in the course of using the technology, chances are you’ve encountered Benedict Poole, (or benpoole if you’re more familiar with his Notes.net handle.) The guy’s got a big name in Notes/Domino development for years now that he’s one of those Notes people whose blog I visit once in a while.

Anyway I encountered his entry on freelancing last week and I must say that after reading a few articles, it was a nice find. He’s right: It is a very sad thing that nowadays there is so little useless information.

The entry basically points to a site dealing with stuff on freeleancing called Freelance Switch. Seems ’twas aptly named as the first entry one gets to see today would be the top 10 reasons you should quit your job today and become a freelancer. Also here are some stuff I already got to check out there which are definitely noteworthy, (I have taken the actual titles of articles as is.)

101 Essential Freelancing Resources

An update indicates that the actual number of resources is currently 126. Just the same however, get links to important and useful online resources for Timing, Invoicing, Project Management and Organization, Stock Libraries, Business Tools, Legal, Job Boards, Web Tools, Advertising and Marketing and other Miscellaneous stuff. (Told you this site’s worth a closer look.)

The Monster List of Freelancing Job Sites

Another extensive list this time of freelancing job sites. Heard of online opportunities but don’t know where to find yours? This one’s got Traditional Job Listings, Job Aggregators, Job Bidding Sites, International, Non-English Sites and Sites with Occasional Freelance Positions.

A Lot of Jobs in One Place

Going through lots of jobs in different sites eats up a lot of time that’s why this article of job boards which aggregate posts in different job sites will definitely be handy for the interested freelancer.

Pitching and the Decision-Making Styles of Clients

Going on to client-related tips, here are ways on how to win that project from your client, be they Charismatics, Thinkers, Skeptics, Followers or Controllers by peeking at their decision-making.

12 Breeds of Clients and How to Work with Them

After the pitch, comes working with the client. The article goes on to show how to work with the Low-Tech, Uninterested, Hands-On, Paranoid, Appreciative, Get-A-Good-Deal, I’ll-Know-It-When-I-See-It, Always-Urgent, Decision-By-Committee, Doormat, Budget and/or You-Should-Be-So-Lucky client.

Getting an Edge on the Competition and Should You Work for Free

The former reads like your typical career article on career improvement while the latter jots down rules of thumbs in dealing with clients asking for freebies. Again for the latter, everything can be summarized in a word: No. For the curious reader though, the article and No Spec link in it are nice reads though.