Connect2014 BP205: Improving Your IBM Domino Designer Experience

3,968 views
3,702 views

Published on

Julian Robichaux, panagenda
Kathy Brown, PSC Group

IBM Connect 2014, Orlando

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,968
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
86
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Connect2014 BP205: Improving Your IBM Domino Designer Experience

  1. 1. BP205: Improving Your 
 IBM® Domino® Designer 
 Experience Julian Robichaux, panagenda Kathy Brown, PSC Group © 2014 IBM Corporation
  2. 2. Who We Are ▪ Julian Robichaux • panagenda • nsftools.com • @jrobichaux ▪ Kathy Brown • PSC Group LLC • runningnotes.net • @runningkathy
  3. 3. 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
  4. 4. 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?
  5. 5. 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
  6. 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. 7. 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
  8. 8. Also in 1999...
  9. 9. 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
  10. 10. Installing (and Reinstalling) measure twice, cut once 10
  11. 11. 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
  12. 12. 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
  13. 13. Considerations: VMWare Fusion
  14. 14. 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
  15. 15. 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 *Spin your chair 3 times clockwise while throwing salt over your LEFT shoulder
  16. 16. 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
  17. 17. 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"
  18. 18. 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! http://www-01.ibm.com/support/docview.wss?uid=swg21617708
  19. 19. Understanding Eclipse Configuration 19
  20. 20. 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
  21. 21. Perspectives and Views Perspective View
  22. 22. Perspectives ▪ Default perspectives: – Debug, Domino Designer, Forms/Views, Java, Java Browsing, Javascript, and XPages
  23. 23. 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
  24. 24. Customizing Perspectives ▪ Menu option “Customize Perspective...” – Add or remove Eclipse views – Add or remove Menu and Toolbar items
  25. 25. 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)
  26. 26. 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
  27. 27. My Favorite View: Progress Window Show Eclipse Views Other... General Progress
  28. 28. Tips on 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
  29. 29. 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 (!)
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. Back Up Your Settings Bonus: also backs up your SAVED custom Perspectives
  40. 40. General Settings aka: boxes you can check 40
  41. 41. 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
  42. 42. Default Language Type
  43. 43. Line Numbering
  44. 44. Spellcheck (you shud prolly turn this off)
  45. 45. Colors and Fonts 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. 46. Hotkeys ▪ Help - Key Assist
 
 or... ▪ Control - Shift - L
 
 or... ▪ File - Preferences - General - Keys
  47. 47. Hotkeys
  48. 48. 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
  49. 49. Other People’s Preferences ▪ http://www.slideshare.net/SocialBizManager/ibm-domino ▪ http://notesin9.com/index.php/2012/02/12/notesin9-043-domino-designer-tipsand-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
  50. 50. Working With Code and doing things more easily 50
  51. 51. Search Tips ▪ Old skool: File - Application - Design Synopsis... – It still exists!
  52. 52. Search Tips ▪ Single code element: Control + F • make sure you use “wrap search” • regular expressions!
  53. 53. Search Tips ▪ Full design search: Search - File... (or Ctrl + H)
  54. 54. 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
  55. 55. Searching Help - Scopes
  56. 56. LotusScript Tips ▪ Code and Comment Templates
  57. 57. 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
  58. 58. 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!))
  59. 59. XPages Tips ▪ Troubleshooting local web server port conflicts • TCPView from sysinternals.com (now Microsoft Sysinternals)
  60. 60. XPages Tips ▪ Where do all the print statements go for local debugging? • log.nsf -or- dataIBM_TECHNICAL_SUPPORTconsole.log ▪ Extra logging info • config file at: 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...
  61. 61. 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
  62. 62. XPages Tips ▪ Problems Tab, “configure contents...” – Show only errors “On any element in same project”
  63. 63. XPages Tips ▪ To Build Automatically or Not To Build Automatically Working Local? Yes Sure, Build Automatically No No, Just No
  64. 64. Java Tips ▪ Get stack trace line numbers from Java agents and script libraries • No performance penalty
  65. 65. Java Tips ▪ Save the whole agent when you save a class in the agent
  66. 66. 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! https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/using_code_templates_in_dde?lang=en_us
  67. 67. Java Tips ▪ TODO and FIXME • Eclipse view: Other - General - Tasks
  68. 68. Java Tips ▪ Adding Domino API Javadocs for hover help • Domino Javadoc Generator: http://domino-javadoc.sourceforge.net https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer
  69. 69. Java Tips ▪ Code Snippets • Built-in Eclipse functionality • Right-click code and choose “Add to snippets” • Drag and drop to paste into editors
  70. 70. 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)
  71. 71. Java Tips ▪ Scrapbook Pages • Evaluate String commands, 
 regular expressions, 
 XML parsing, etc. http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/java_scrapbook_pages
  72. 72. 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. 73. Java Tips ▪ Eclipse Tips and Tricks page • http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html
  74. 74. Plugins soup up your ride 74
  75. 75. 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
  76. 76. Source Control - Setting ▪ Sometimes DDE hangs (GASP!)
 
 – Turning off On Disk Project syncing can help
 
 
 
 
 
 ▪ Tip! – You have to remember to then manually sync
  77. 77. 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
  78. 78. 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 – http://bit.ly/UpdateSite Wiki entry on installing an update site
  79. 79. 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)
  80. 80. 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
  81. 81. 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)
  82. 82. FreeMem ▪ http://www.junginger.biz/eclipse/freemem.html
  83. 83. QuickREx ▪ http://www.bastian-bergerhoff.com/eclipse/features
  84. 84. MultiClipboard ▪ http://www.bastian-bergerhoff.com/eclipse/features
  85. 85. XPath-Developer ▪ http://www.bastian-bergerhoff.com/eclipse/features
  86. 86. 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)”
  87. 87. ▪ Access Connect Online to complete your session surveys using any: – Web or mobile browser – Connect Online kiosk onsite Kathy Brown
 PSC Group LLC
 kathy@runningnotes.com
 Twitter: @runningkathy ! 87 Julian Robichaux
 panagenda
 jrobichaux@panagenda.com
 Twitter: @jrobichaux
  88. 88. Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. © Copyright IBM Corporation 2014. All rights reserved. ▪ U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ▪ IBM, the IBM logo, ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml ▪ Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. ▪ Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. ▪ Other company, product, or service names may be trademarks or service marks of others. ! 88

×