Improve Your IBM Domino Designer Experience

  • 2,292 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,292
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
26
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. #engageug Improving Your 
 IBM Domino Designer 
 Experience Julian Robichaux :: panagenda Kathy Brown :: PSC Group !1
  • 2. #engageug Who We Are • Julian Robichaux • panagenda • nsftools.com • @jrobichaux • Kathy Brown • PSC Group LLC • runningnotes.net • @runningkathy !2
  • 3. #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
  • 4. #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
  • 5. #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
  • 6. #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
  • 7. #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
  • 8. #engageug Also in 1999... !8
  • 9. #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
  • 10. #engageug Installing (and reinstalling) measure twice, cut once !10
  • 11. #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
  • 12. #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
  • 13. #engageug Considerations: VMWare Fusion !13
  • 14. #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
  • 15. #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 dataworkspace.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
  • 16. #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
  • 17. #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
  • 18. #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
  • 19. #engageug Understanding Eclipse Terminology and a few configuration details !19
  • 20. #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
  • 21. #engageug Perspectives and Views !21 Perspective View
  • 22. #engageug Perspectives • Default perspectives: • Debug, Domino Designer, Forms/Views, Java, Java Browsing, Javascript, and XPages !22
  • 23. #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
  • 24. #engageug Customizing Perspectives • Menu option “Customize Perspective...” • Add or remove Eclipse views • Add or remove Menu and Toolbar items !24
  • 25. #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
  • 26. #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
  • 27. #engageug My Favorite View: Progress !27 Window - Show Eclipse Views - Other... - General - Progress
  • 28. #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
  • 29. #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
  • 30. #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
  • 31. #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
  • 32. #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
  • 33. #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
  • 34. #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
  • 35. #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
  • 36. #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.workbenchworkingsets.xml • com.ibm.designer.domino.ide.resourceswsInfo.xml !36
  • 37. #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
  • 38. #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
  • 39. #engageug Back Up Your Settings !39 Bonus: also backs up your SAVED custom Perspectives
  • 40. #engageug General Settings aka: boxes you can check !40
  • 41. #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
  • 42. #engageug Default Language Type !42
  • 43. #engageug Line Numbering !43
  • 44. #engageug Spellcheck (you shud prolly turn this off) !44
  • 45. #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.
  • 46. #engageug Hotkeys • Help - Key Assist
 
 or... • Control - Shift - L
 
 or... • File - Preferences - General - Keys !46
  • 47. #engageug Hotkeys !47
  • 48. #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
  • 49. #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
  • 50. #engageug Working With Code and doing things more easily !50
  • 51. #engageug Search Tips • Old skool: File - Application - Design Synopsis... • It still exists! !51
  • 52. #engageug Search Tips • Single code element: Control + F • make sure you use “wrap search” • regular expressions! !52
  • 53. #engageug Search Tips • Full design search: Search - File... (or Ctrl + H) !53
  • 54. #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
  • 55. #engageug Searching Help - Scopes !55
  • 56. #engageug LotusScript Tips • Comment and Code Templates !56
  • 57. #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
  • 58. #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
  • 59. #engageug XPages Tips • Troubleshooting local web server port conflicts • TCPView from sysinternals.com (now Microsoft Sysinternals) !59
  • 60. #engageug XPages Tips • Where do all the print statements go for local debugging? • log.nsf -or- dataIBM_TECHNICAL_SUPPORTconsole.log
 • Extra logging info • config file: datadominoworkspace.configrcpinstall.properties • see the commented log levels at the bottom of the file
 • logs at: datadominoworkspacelogstrace-log-0.xml • might have to shut down local web preview for logs to flush • notice the “domino” in that path... !60
  • 61. #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 notesosgi: • Troubleshooting tips in Julian’s April 2012 Clippings Newsletter • http://www.socialbizug.org/communities/community/clippings !61
  • 62. #engageug XPages Tips • Problems Tab, “configure contents...” • Show only errors “On any element in same project” !62
  • 63. #engageug XPages Tips • To Build Automatically or Not To Build Automatically !63 Working Local? Yes No Sure, Build Automatically No, Just No
  • 64. #engageug Java Tips • Get stack trace line numbers from Java agents and script libraries • No performance penalty !64
  • 65. #engageug Java Tips • Save the whole agent when you save a class in the agent !65
  • 66. #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
  • 67. #engageug Java Tips • TODO and FIXME • Eclipse view: Other - General - Tasks !67
  • 68. #engageug Java Tips • Adding Domino API Javadocs for hover help • Domino Javadoc Generator: 
 http://domino-javadoc.sourceforge.net !68 https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer
  • 69. #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
  • 70. #engageug Java Tips • Scrapbook pages • from Package Explorer: • Right-Click - New - Other • Java - Java RunDebug • Scrapbook Page • Use a Console view for output • Highlight code, right-click, execute • System.out.println() goes to console 
 (Other - General - Console) !70
  • 71. #engageug Java Tips • Scrapbook Pages • Evaluate String commands, 
 regular expressions, 
 XML parsing, etc. !71 http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/java_scrapbook_pages
  • 72. #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
  • 73. #engageug Java Tips • Eclipse Tips and Tricks page • http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tips/ jdt_tips.html !73
  • 74. #engageug Plugins soup up your ride !74
  • 75. #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
  • 76. #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
  • 77. #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
  • 78. #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
  • 79. #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
  • 80. #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
  • 81. #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
  • 82. #engageug FreeMem • http://www.junginger.biz/eclipse/freemem.html !82
  • 83. #engageug QuickREx • http://sourceforge.net/p/quickrex/wiki/Home !83
  • 84. #engageug FindBugs for Domino Designer • http://openntf.org/p/FindBugs+for+DominoDesigner • Christian Güdemann !84
  • 85. #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
  • 86. #engageug Thank You! !86 Kathy Brown
 PSC Group LLC
 kathy@runningnotes.net
 Twitter: @runningkathy Julian Robichaux
 panagenda
 jrobichaux@panagenda.com
 Twitter: @jrobichaux