Gaming Keyboard – productivity enhancer

My first experience with a “IBM PC” clone was using Word Perfect to create something for school. For those of you who are not old enough to remember Word Perfect was similar to the UNIX editor vi in that you could do any and everything with a keyboard. In fact my dad had a keyboard overlay with all the shortcut’s on a quick reference guide it was fantastic.

Ever since I have been a keyboard freak and hate using the mouse unless I really have to.

So I use a Gaming keyboard nowadays and I have an old Logitech G15 keyboard which I love to bits. What I have done is created shortcuts to frequently used applications like mail or my workspace.

You can program the keys through the GUI to open a link……Here’s how to calculate the link

Drag “workspace” to your desktop and a shortcut is created

Create Workspace Shortcut
Drag and Drop a Bookmark to Create Workspace Shortcut

If you view the shortcut in notepad it looks like this

[InternetShortcut]
URL=notes:///ClientBookmark?OpenWorkspace

so I copy and paste the link into the interface for the button – et voila

Create G15 Shortcut
Create G15 Shortcut

Show heap status shortcut(s)

For those of you who don’t know, Domino R8 now runs in Eclipse. Eclipse is a Java based application and can be rather memory intensive. You can see the allocated Java Virtual Machine space (heap size) in your designer by going to:

File –>Preferences—>General

Show heap size
Show heap size

And this shows you the heap size and allows you to clean it up and speed up your designer client.

Domino Designer Heap Size
Domino Designer Heap Size

The problem is when you check and save this open it is not remembered from one designer session to the next – even though it remains checked it is not displayed.

Here is way for us lazy/productive people to turn this link on with the minimum of effort:

Keyboard only

  1. Alt+F
  2. F
  3. (Type) General
  4. Enter
  5. Enter

Gaming Keyboard (Productivity Enhancer)

Even better when you can program your gaming keyboard to do a single button push for you 🙂

Creating a shortcut to show heap size using Logitech G15 gaming keyboard
Creating a shortcut to show heap size using Logitech G15 gaming keyboard

StrokeIt

StrokeIt is a Windows Mouse Gestures program or in their words “an advanced mouse gesture recognition engine and command processors”. It can be programmed to perform almost any shortcut task – here is the Show Heap

Strokieit Show Heap shortcut
Strokieit Show Heap shortcut

Anything else?

  • There is AutoHotKey which is another shortcut program
  • There is Ben Poole’s SendKeys replacement but I have had timing issues with that and cannot get it to work consistently.
  • I’d like to do it in @Formula and add it to a toolbar button
  • Let me know what you’ve come up with…!

Productive or Lazy?

To the core I do not like having to work harder than I have to, when trying to achieve the simplest of tasks.

When a search and replace will suffice rather than editing 50 lines of code – I will do a search and replace I would rather use a keyboard shortcut than use the mouse when a code library can be created and re-used I won’t write the code twice.

Now you could look at this as being productive – but you could also see this as being lazy in a way, “I have only so much time to do a million things, why work harder than I have to”……so are the most productive people efficient or lazy/smart enough to realize there is a better way?

My favorite session at Lotusphere this yeas was AD103: Embracing the Eclipse Within by Maureen Leland. In this session she introduced all the Eclipse keyboard shortcuts which can be used in Domino development and discussed how the Eclipse platform will take the Domino Designer into the future. This was one of the very few sessions which I knew nothing about before entering and I got a great deal of information from it which I can start using immediately.

What is a scriptlet?

In the JavaScript world Scriptlets are short pieces of code which can be executed through the browser directly. They act on the page in the same wasy as if the user had clicked a button in an application.

An example of a simple Scriptlet is javascript: alert(location.href); void(0);

The best way to add a Scriptlet varies depending on which browser you have:

For Firefox – right click in the Bookmark bar and select New Bookmark

Example Scriplets

Here are some examples of some useful Lotus Notes Scriptlets – Keeping them in a Bookmark folder allows them to be used as developer tools whenever you need them

Show me the session cookie – (this works on any website)
javascript: var temp=document.cookie;alert(temp.replace(/;/gi,”\n”)+’\n\nLength=’+document.cookie.length)

Open ezScan from a URL (assumes URL in the format http://server/path/db.nsf/viewname/docUNID – no ? opendocument)
javascript: var sTemp=location.pathname; var loc=”scanez://YOURSERVERNAME/”+sTemp.substring(1, sTemp.indexOf(“.nsf”)+5)+”0/”+sTemp.substring(sTemp.lastIndexOf(“/”)+1, sTemp.length); alert(loc); void(0);

Open a specific document by Key (enter MRON-8QDL59)
javascript:%20a=prompt(‘Blog Number’,”);%20location.href=’http://www.nostradominus.com/mdroden/nd.nsf/d6plinks/’+a

Open a user’s document in the NAB (assuming you are viewing a Lotus Notes webpage)
javascript:%20a=prompt(‘Enter the User Shortname’,”);%20location.href=’/names.nsf/($Users)/ ‘

Show the current view in XML format (assuming the URL in the format http://server/path/db.nsf/viewname? openview)
javascript: var sTemp=location.pathname; var loc=”/”+sTemp.substring(1, sTemp.indexOf(“.nsf”)+5)+sTemp.substring(sTemp.lastIndexOf(“/”)+1, sTemp.length)+”?ReadViewEntries”; location.href = loc; void(0);

Show the current view in JSON format (assuming the URL in the format http://server/path/db.nsf/viewname? openview)
javascript: var sTemp=location.pathname; var loc=”/”+sTemp.substring(1, sTemp.indexOf(“.nsf”)+5)+sTemp.substring(sTemp.lastIndexOf(“/”)+1, sTemp.length)+”? ReadViewEntries&OutputFormat=JSON”; location.href = loc; void(0);

Search the current view (assuming the database is Full Text indexed and search forms are enabled)
javascript:%20a=prompt(‘Enter the Query’,”); var sTemp=location.pathname; var loc=”/”+sTemp.substring(1, sTemp.indexOf(“.nsf”)+5)+sTemp.substring(sTemp.lastIndexOf(“/”)+1, sTemp.length)+”?searchview&Query=”+a; location.href = loc; void(0);

Lotusphere 2012 – inspiring and not in a way I had expected

I have been a Lotus Notes developer since 1997 (R4.5) and somewhere along the way I lost my way. Back in the early-mid 2000 I was collaboration with people online about various Domino projects, especially the rich text editor posted in the Lotus Code Store by my good friend Alan Hurt. In 2003 and 2004 I wrote two articles for the View Magazine:

I had prepared a submission for openntf (never submitted) which was very small at the time and I was ready to get seriously into the community….and then it all changed. My company lost a contract, 5 of my team were laid off and by necessity of needing to stay employed, I became a manager……and there I stayed for 5 years, with a very minor role as a notes developer and a major role as a manager of Lotus and .Net applications.

I learned a lot over that time. I learned to write documentation, create a project plan, use a Gantt chart, manage customer expectations and I learned how to manage a team of people who had no respect for each other. Ultimately while I never lost my passion for development, my daily deliverables did not include code for months at a time.

2011 comes along and I am the last Lotus Developer left at my company and that contract finished. My love was Domino Development and I had to leave. So after 10 years at the same company I left and re-energized myself as a developer at my new company. 🙂

I just went to Lousphere in Orlando and it was my first – I have had Lotusphere envy for so long and now I got to go……and it was not what I expected. It was not the developer conference I had expected. In fact I was rather disappointed at the lack of AppDev sessions. But on the final day at Gurupaluzza it struck me – this is what I have missed all these years – the community. I could do this and I could be a champion. I love sharing and writing about Lotus Notes….why not?

I asked a question to the bloggers about why I should come again because it was not a developer conference any more and the response I got was not what I expected – Lotusphere is what you make of it, the friends the collaboration, the networking, and I had missed almost all of that….what an opportunity missed………….

Carl Tyler said that I should go next year because I will be presenting a session…….why not? Is it a dare? Is is a challenge? or is it just he kick in the pants I wasn’t looking for?

This is going to be a good year and I have a lot more to write about.