Improve Your IBM Domino Designer Experience

86
#engageug Improving Your IBM Domino Designer Experience Julian Robichaux :: panagenda Kathy Brown :: PSC Group 1

description

Engage (by blug) 2014 - A presentation by Julian Robichaux and Kathy Brown

Transcript of Improve Your IBM Domino Designer Experience

Page 1: Improve Your IBM Domino Designer Experience

#engageug

Improving Your IBM Domino Designer

ExperienceJulian Robichaux :: panagenda Kathy Brown :: PSC Group

!1

Page 2: Improve Your IBM Domino Designer Experience

#engageug

Who We Are• Julian Robichaux

• panagenda • nsftools.com • @jrobichaux

• Kathy Brown • PSC Group LLC • runningnotes.net • @runningkathy

!2

Page 3: Improve Your IBM Domino Designer Experience

#engageug

The Goals of this Session• Understand how Eclipse™ and IBM® Domino® Designer

work together • especially by using helpful things that “come for free” with Eclipse

• Avoid breaking things • and learn how to fix them when they break

• Work more efficiently • Some information will be old hat, some

(hopefully) will be brand new

!3

Page 4: Improve Your IBM Domino Designer Experience

#engageug

Domino Designer in Eclipse• “DDE” to you and me

• Is it in, on, with, or next to Eclipse? • perhaps we should say “wrapped inside of”

• But I thought Eclipse was just an IDE! How can it do all this “wrapping” stuff?

!4

Page 5: Improve Your IBM Domino Designer Experience

#engageug

An Informal History of Eclipse• Began life as an IBM project to replace the VisualAge®

IDE • VisualAge had compilers for C, C++, Smalltalk, Java, Cobol, and

several other languages

• Eclipse developed as a platform (written in Java) that could:

• run on multiple operating systems • allow development for many different languages & content types • provide (but not require) a GUI • use plugins for extensibility

!5

Page 6: Improve Your IBM Domino Designer Experience

#engageug !6

“The Eclipse platform itself is a sort of universal tool platform - it is an IDE for anything and nothing in

particular.”

http://www.eclipse.org/platform/overview.php

Page 7: Improve Your IBM Domino Designer Experience

#engageug

A Very Abbreviated Timeline• 1999: Development of Eclipse begins at IBM • 2001: Eclipse 1.0 released, eclipse.org created • 2002: Eclipse 2.0 released • 2004: Eclipse Foundation formed, Eclipse 3.0 released

under the new Eclipse Public License • 2004-2013: New Eclipse “simultaneous release” every year

• 3.x through 2011 • 4.x starting in 2012

!7

Page 8: Improve Your IBM Domino Designer Experience

#engageug

Also in 1999...

!8

Page 9: Improve Your IBM Domino Designer Experience

#engageug

Why Are You Telling Me This?• Things to understand:

• Eclipse has a long, rich history completely outside of Domino • Many (most?) of the “new” DDE things are actually “old” Eclipse

things • Name overlaps (view, navigator, workspace, etc.) • Two completely separate JVMs • When you mix two very different (and established) technologies

like this, things are bound to be confusing or... difficult

!9

Page 10: Improve Your IBM Domino Designer Experience

#engageug

Installing (and reinstalling)measure twice, cut once

!10

Page 11: Improve Your IBM Domino Designer Experience

#engageug

Considerations: Fresh Install• A well defragged hard drive • Disable virus scan on entire Notes directory if possible,

NSF and JAR files in Notes directory at minimum • Disable the Windows Search/Index service • Don’t use an encrypted portion of your disc • Disable Aero on Windows 7

!11

Page 12: Improve Your IBM Domino Designer Experience

#engageug

Considerations: VMWare• Fixed size page file, 1.5 to 2 times your RAM

• Defrag first, then restart and fix the page size

• Turn off things that poll • CD auto-play, Bluetooth, shared or mapped drives

• Defrag+compact regularly (or use a fixed size VM) • Keep your VMWare Tools (drivers) updated

!12

Page 13: Improve Your IBM Domino Designer Experience

#engageug

Considerations: VMWare Fusion

!13

Page 14: Improve Your IBM Domino Designer Experience

#engageug

Install Tips• If you’re using VMWare, take a snapshot • Install EVERYTHING (check all the boxes, even if you don’t

think you’ll use Sametime, Connections, etc.) • Don’t get clever with your install paths • Reboot when you’re done, then delete the temp folder • If you’re using VMWare, take another snapshot

!14

Page 15: Improve Your IBM Domino Designer Experience

#engageug

Upgrade Tips• Install over the old copy, or nuke it and start over?

• Always better to nuke (uninstall first, then reboot and delete -- don’t just delete) and start fresh *

• If you can’t, at least consider deleting or renaming the framework and the data\workspace\.config folders first (gets rid of old JAR files)

• Resist the urge to do the trick where you rename the old directory so you can have multiple versions of the client on your workstation

!15

*Spin your chair 3 times clockwise while throwing salt over your LEFT shoulder

Page 16: Improve Your IBM Domino Designer Experience

#engageug

Upgrade Tips• “Install Interrupted” and other errors

• Often caused by incomplete or improper uninstall of previous client version (registry entries pointing to files that no longer exist, etc.)

• Use the IBM “NICE” tool • http://www-01.ibm.com/support/docview.wss?uid=swg21459714

!16

Page 17: Improve Your IBM Domino Designer Experience

#engageug

Reinstalling• Best bet is to uninstall, use the NICE tool, then reinstall

• Also reinstall/repair options if you re-run the installer

• Command line option: • setup.exe /v"REINSTALLMODE=vamus REINSTALL=ALL"

!17

Page 18: Improve Your IBM Domino Designer Experience

#engageug

JVM Memory Settings• make sure Xms is smaller than

Xmx, for garbage collection purposes

• you might have issues with Xmx larger than 1024

• NOTE: these settings can get reset after a FixPack install

• http://nsftools.com/blog/blog-08-2013.htm

• DDE 9.0.1 GETS MORE MEMORY BY DEFAULT!

!18

http://www-01.ibm.com/support/docview.wss?uid=swg21617708

Page 19: Improve Your IBM Domino Designer Experience

#engageug

Understanding Eclipse Terminology

and a few configuration details

!19

Page 20: Improve Your IBM Domino Designer Experience

#engageug

Perspectives and Views• What are they? • Perspectives are layouts of Views

• Think of a painter’s palette

• Views are panels or tabs with the tools you need • Think of the colors on the palette

!20

Page 21: Improve Your IBM Domino Designer Experience

#engageug

Perspectives and Views

!21

Perspective

View

Page 22: Improve Your IBM Domino Designer Experience

#engageug

Perspectives• Default perspectives:

• Debug, Domino Designer, Forms/Views, Java, Java Browsing, Javascript, and XPages

!22

Page 23: Improve Your IBM Domino Designer Experience

#engageug

More Perspectives• Each perspective has Views, menu items, and toolbars

needed for that focus • For example: the navigator in the Domino Designer perspective

has Frameset and Pages, the one in the XPages perspective does not

!23

Page 24: Improve Your IBM Domino Designer Experience

#engageug

Customizing Perspectives• Menu option “Customize Perspective...”

• Add or remove Eclipse views • Add or remove Menu and Toolbar items

!24

Page 25: Improve Your IBM Domino Designer Experience

#engageug

Customizing Perspectives• “Manual” customization

• Move view panes all to the left or right for more screen real estate

• Drag up Outline • Add Package Explorer

(Window - Show Eclipse Views)

!25

Page 26: Improve Your IBM Domino Designer Experience

#engageug

Saving Perspectives• Save Perspective As...

• Always a good idea to do this BEFORE customizing

• You CAN make changes in a copy, however if you make them in the default perspective, then your changes will be there whenever you open DDE

• i.e. changing IDs opens the default perspective

• Unfortunately, you cannot make DDE open to your custom perspective

!26

Page 27: Improve Your IBM Domino Designer Experience

#engageug

My Favorite View: Progress

!27

Window - Show Eclipse Views -

Other... - General - Progress

Page 28: Improve Your IBM Domino Designer Experience

#engageug

Tips for Views & Perspectives• Make the tab full screen

• Double-click the tab title, and double-click again to reset it • Or click the small “maximize” icon on the tab bar • Or use Ctrl-M

• Use Window - Reset Perspective when you’ve totally borked it

!28

Page 29: Improve Your IBM Domino Designer Experience

#engageug

Working Sets• It’s an Eclipse thing for organizing your projects

(Notes DB == Eclipse project) • All applications for a client, or all applications

for a project, or only templates, or only production applications, etc.

• Switching working sets does NOT release the open applications from memory (!)

!29

Page 30: Improve Your IBM Domino Designer Experience

#engageug

Working With… Working Sets• Select one or more working sets, or no working sets (shows

all applications ever opened in the history of time) • Edit Current Working Set • Manage Working Sets

!30

Page 31: Improve Your IBM Domino Designer Experience

#engageug

More Working Sets• New in Notes 9: select Applications Not in a Working Set • Working Set preferences

• “Ask me” is good if you often (ever) open the wrong app

!31

Page 32: Improve Your IBM Domino Designer Experience

#engageug

Preferences and Settings• Notes client and DDE shared storage of settings

• Eclipse is a cornucopia of plugins • Every plugin has its own folder in [notesdata]\workspace

\.metadata • There is also a central Eclipse preference store

(a tiny bit like Windows registry, but much better behaved)

• OSGi handles plugin lifecycle and caching

!32

Page 33: Improve Your IBM Domino Designer Experience

#engageug

The Workspace Folders• Main subfolders under the [notesdata]\workspace folder

are: • .config -- OSGi cache, JVM cache, Eclipse startup config • .metadata -- plugin folders, preference files • applications -- third-party plugins you’ve installed • logs -- Eclipse logs, Java core dumps and heap dumps • UDM -- spellcheck files • also a folder for each server you access from DDE

(including “Local”), with subfolder for each database

!33

Page 34: Improve Your IBM Domino Designer Experience

#engageug

Deleting the Workspace• Removes caches, configurations, preferences, settings

• including Notes/DDE UI customizations

• Deletes [most] third-party plugins you’ve installed

• Deletes extra settings in rcpinstall.properties

• Everything will be rebuilt with default settings

!34

Page 35: Improve Your IBM Domino Designer Experience

#engageug

The -clean Option• -clean is a less nuclear option • Rebuilds the plugin caches and some

of the Eclipse/OSGi config files • but you don’t lose your preferences

• Make a COPY of your Notes shortcut, change target to:

• notes.exe -RPARAMS –clean

• Delete the copy of your shortcut when you’re done so you don’t accidentally do this every time you open Notes

!35

Page 36: Improve Your IBM Domino Designer Experience

#engageug

Cleaning a Broken DDE• Files you could delete (or rename) manually

• Special workspace folders for each server+db you access

• workspace\.metadata\.plugins\ • org.eclipse.core.resources (additional DDE project cache) • com.ibm.rcp.personality.framework (perspective info) • org.eclipse.ui.workbench\workingsets.xml • com.ibm.designer.domino.ide.resources\wsInfo.xml

!36

Page 37: Improve Your IBM Domino Designer Experience

#engageug

Back Up Your Settings• Can’t I just back up my whole workspace folder?

• You could, but not always portable between installations/versions

• What about my workspace\.metadata folder? • Still too much

• What about this specific list of folders... ? • There is an easier way if you will just

stop asking questions

!37

Page 38: Improve Your IBM Domino Designer Experience

#engageug

Back Up Your Settings• Hat tip to Paul Withers

• http://www.intec.co.uk/quick-setup-restore-of-domino-designer

• Switch to a non-Domino perspective in DDE (like “Java”) • File - Export - General - Preferences

• Saves as a .epf file (text file, you can look to see what’s there)

• To import: File - Import - General - Preferences

!38

Page 39: Improve Your IBM Domino Designer Experience

#engageug

Back Up Your Settings

!39

Bonus: also backs up your SAVED custom Perspectives

Page 40: Improve Your IBM Domino Designer Experience

#engageug

General Settingsaka: boxes you can check

!40

Page 41: Improve Your IBM Domino Designer Experience

#engageug

File - Preferences• There are so many settings in DDE, you might not have

seen them all – here are a few useful ones • Please don’t be insulted if you’ve seen some of these before • Not everyone is as smart as you • Newer versions of DDE sometimes have new settings

• Almost all of the DDE specific preferences (from File - Preferences) map to Eclipse preferences

!41

Page 42: Improve Your IBM Domino Designer Experience

#engageug

Default Language Type

!42

Page 43: Improve Your IBM Domino Designer Experience

#engageug

Line Numbering

!43

Page 44: Improve Your IBM Domino Designer Experience

#engageug

Spellcheck (you shud prolly turn this off)

!44

Page 45: Improve Your IBM Domino Designer Experience

#engageug

Colors and Fonts

!45

Basic - Text Font is the default editor font, you can override for Java and JavaScript here,

LotusScript has its own settings under Domino Designer.

Page 46: Improve Your IBM Domino Designer Experience

#engageug

Hotkeys• Help - Key Assistor...

• Control - Shift - L or...

• File - Preferences - General - Keys

!46

Page 47: Improve Your IBM Domino Designer Experience

#engageug

Hotkeys

!47

Page 48: Improve Your IBM Domino Designer Experience

#engageug

Hotkeys Shortlist• Ctrl + / -- toggle single-line comments • Ctrl + Shift + / -- toggle block comments • Ctrl + i -- auto-format • Ctrl + F6 -- switch between editor tabs • Ctrl + M -- maximize or restore a tab • Ctrl + Space -- all sorts of code-completion things

!48

Page 49: Improve Your IBM Domino Designer Experience

#engageug

Other People’s Preferences• http://www.slideshare.net/SocialBizManager/ibm-domino • http://notesin9.com/index.php/2012/02/12/notesin9-043-

domino-designer-tips-and-tweaks • http://xpagetips.blogspot.com/search/label/Designer%20Tip • http://nathantfreeman.wordpress.com/taming-ibm-domino-

designer • http://www.slant.co/topics/67/~what-are-the-best-

programming-fonts

!49

Page 50: Improve Your IBM Domino Designer Experience

#engageug

Working With Codeand doing things more easily

!50

Page 51: Improve Your IBM Domino Designer Experience

#engageug

Search Tips• Old skool: File - Application - Design Synopsis...

• It still exists!

!51

Page 52: Improve Your IBM Domino Designer Experience

#engageug

Search Tips• Single code element: Control + F

• make sure you use “wrap search” • regular expressions!

!52

Page 53: Improve Your IBM Domino Designer Experience

#engageug

Search Tips• Full design search: Search - File... (or Ctrl + H)

!53

Page 54: Improve Your IBM Domino Designer Experience

#engageug

Search Tips• Full design search: Search - File... (or Ctrl + H)

• Search: • entire workspace (open databases) • all databases in a working set • all design elements in a database (project) • selected design elements

• File patterns allow you to specify certain design elements (use the “Choose” button for a list), or use * for all design elements

• Non-code elements (forms, views, etc.) have their DXL searched • Regular expressions • Results listed in a Search view (tab) you can leave open

!54

Page 55: Improve Your IBM Domino Designer Experience

#engageug

Searching Help - Scopes

!55

Page 56: Improve Your IBM Domino Designer Experience

#engageug

LotusScript Tips• Comment and Code Templates

!56

Page 57: Improve Your IBM Domino Designer Experience

#engageug

LotusScript Tips• Determining the correct error line number

• Navigate - Go to erl line... • Needed in DDE 8.5.x, seems to be less necessary in 9.0

!57

Page 58: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• Changing the local web server port (8.5.3+)

• not just XPages, any DDE local web preview • great if you’re running a local web server (on purpose or

unknowingly (Skype!))

!58

Page 59: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• Troubleshooting local web server port conflicts

• TCPView from sysinternals.com (now Microsoft Sysinternals)

!59

Page 60: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• Where do all the print statements go for local debugging?

• log.nsf -or- data\IBM_TECHNICAL_SUPPORT\console.log

• Extra logging info • config file: data\domino\workspace\.config\rcpinstall.properties

• see the commented log levels at the bottom of the file

• logs at: data\domino\workspace\logs\trace-log-0.xml • might have to shut down local web preview for logs to flush • notice the “domino” in that path...

!60

Page 61: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• The dreaded “Error 500” on local XPages preview

• Turn on runtime error notification (Application Properties, XPages tab)

• Test a very basic XPage (is it all XPages, or just that one?) • Add error handling (JavaScript and Java) • Check the logs (see previous slide) • Check for duplicate (previous version) JAR files in notes\osgi:

• Troubleshooting tips in Julian’s April 2012 Clippings Newsletter

• http://www.socialbizug.org/communities/community/clippings

!61

Page 62: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• Problems Tab, “configure contents...”

• Show only errors “On any element in same project”

!62

Page 63: Improve Your IBM Domino Designer Experience

#engageug

XPages Tips• To Build Automatically or Not To Build Automatically

!63

Working Local?

Yes No

Sure, Build Automatically No, Just No

Page 64: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Get stack trace line numbers from Java agents and

script libraries • No performance penalty

!64

Page 65: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Save the whole agent when you save a class in the

agent

!65

Page 66: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Code templates

• Java - Editor - Templates • Ctrl + Space (FTW!) • Default shortcuts to start with:

• for, while, try, new, final, toarray

• Make your own for fun and profit!

!66

https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/using_code_templates_in_dde?lang=en_us

Page 67: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• TODO and FIXME

• Eclipse view: Other - General - Tasks

!67

Page 68: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Adding Domino API Javadocs for hover help

• Domino Javadoc Generator: http://domino-javadoc.sourceforge.net

!68https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer

Page 69: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Code Snippets

• Built-in Eclipse functionality • Right-click code and choose “Add to snippets” • Drag and drop to paste into editors

!69

Page 70: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Scrapbook pages

• from Package Explorer: • Right-Click - New - Other • Java - Java Run\Debug • Scrapbook Page

• Use a Console view for output • Highlight code, right-click, execute • System.out.println() goes to console

(Other - General - Console)

!70

Page 71: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Scrapbook Pages

• Evaluate String commands, regular expressions, XML parsing, etc.

!71http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/java_scrapbook_pages

Page 72: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Debugging

• you CAN debug Java from DDE • server or client, although debugging a server is a pretty bad idea

!• see Julian and Mark Myers’ presentation from Lotusphere 2012: • http://londondevelopercoop.com/ldc.nsf/pages/goodies

Page 73: Improve Your IBM Domino Designer Experience

#engageug

Java Tips• Eclipse Tips and Tricks page

• http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html

!73

Page 74: Improve Your IBM Domino Designer Experience

#engageug

Pluginssoup up your ride

!74

Page 75: Improve Your IBM Domino Designer Experience

#engageug

Source Control• Even if you aren’t working with a team

• Easily roll back specific changes • Track changes (what/when/who) • Simple system for having a backup, while working locally

• OpenNTF project for 8.5.2, native in 8.5.3 • SVN, CVS, Git, Mercurial

!75

Page 76: Improve Your IBM Domino Designer Experience

#engageug

Source Control - Setting• Sometimes DDE hangs (GASP!)

• Turning off On Disk Project syncing can help

• Tip! • You have to remember to then manually sync

!76

Page 77: Improve Your IBM Domino Designer Experience

#engageug

Source Control - Resources• https://www.socialbizug.org/blogs/articles/entry/

setting_up_source_control • https://www.socialbizug.org/blogs/articles/entry/

using_source_control • https://www.socialbizug.org/blogs/articles/entry/

5_tips_for_source_control_in_domino • http://xpagetips.blogspot.com/2013/04/source-control-good-

stuff.html • From Lotusphere 2012: AD102 – Source Control For The

IBM Lotus Domino Developer, by Declan Lynch

!77

Page 78: Improve Your IBM Domino Designer Experience

#engageug

Extension Library• Depending on version of Domino, no install required

• 8.5.3 UP1 or 9

• For latest and greatest, go to OpenNTF.org

• Install via an Update Site • Wiki entry on installing an update site: • http://bit.ly/UpdateSite

!78

Page 79: Improve Your IBM Domino Designer Experience

#engageug

Extension Library Install Tips• Do NOT install multiple versions

• If you’ve got 8.5.3 UP1 and you go get the latest from OpenNTF.org, REMOVE the library that came with 8.5.3 UP1

• Install the Extension Library on DDE AND your server

• Get the sample database

• Don’t mix and match versions (Server/DDE)

!79

Page 80: Improve Your IBM Domino Designer Experience

#engageug

Third Party Plugins• Finding third-party plugins

• Looks for plugins compatible with Eclipse 3.2 - 3.4 (they might work)

• Before you install • Completely restart the Notes client • Take a snapshot if you’re using VMWare

!80

Page 81: Improve Your IBM Domino Designer Experience

#engageug

Third Party Plugins• File - Application - Install

• You might have to be in a DDE (non-custom) perspective to get the Application - Install menu option

• There is a DDE Preference to allow plugin installs

• After you install • Manually shut down and restart the Notes client again

(don’t use the “Restart now” option)!81

Page 82: Improve Your IBM Domino Designer Experience

#engageug

FreeMem• http://www.junginger.biz/eclipse/freemem.html

!82

Page 83: Improve Your IBM Domino Designer Experience

#engageug

QuickREx• http://sourceforge.net/p/quickrex/wiki/Home

!83

Page 84: Improve Your IBM Domino Designer Experience

#engageug

FindBugs for Domino Designer• http://openntf.org/p/FindBugs+for+DominoDesigner • Christian Güdemann

!84

Page 85: Improve Your IBM Domino Designer Experience

#engageug

Writing Your Own Plugins• What you need:

• DDE 8.5.1+ • Eclipse 3.4.2 (Ganymede for RCP/Plugin Developers)

• http://www.eclipse.org/downloads/packages/release/ganymede/sr2 • You should use EXACTLY this version (not 3.2, not 3.5, not 4.2...)

• Lotus Expeditor Toolkit 6.2.x • http://www.ibm.com/developerworks/lotus/downloads/toolkits.html

• Hints, tips, and instructions • http://bit.ly/pluginredwiki • http://www-10.lotus.com/ldd/lewiki.nsf • Tim Tripcony and Maureen Leland’s Lotusphere 2011 presentation

• “AD102: Hacking IBM Lotus Designer (Gently)”!85

Page 86: Improve Your IBM Domino Designer Experience

#engageug

Thank You!

!86

Kathy BrownPSC Group [email protected]: @runningkathy

Julian [email protected]: @jrobichaux