Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

John Murray :: Think Do Keep


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

John Murray :: Think Do Keep

  1. 1. Think! Do! Keep! OOTS 2007 John Murray Senior Product Engineer
  2. 2. Exploiting the Slipstream <ul><li>Plan your move </li></ul><ul><li>Make the break </li></ul><ul><li>Don’t lose control </li></ul>
  3. 3. Think! <ul><li>Starting position </li></ul><ul><ul><li>What is where? </li></ul></ul><ul><ul><li>How does it work now? </li></ul></ul><ul><li>Goal </li></ul><ul><ul><li>How do we want things to be? </li></ul></ul><ul><ul><li>What will we gain? </li></ul></ul><ul><li>Devising change </li></ul><ul><ul><li>What is to be altered? </li></ul></ul><ul><ul><li>In what sequence? </li></ul></ul><ul><li>“Is that clear?” </li></ul><ul><ul><li>Do we all know what we’re doing? </li></ul></ul>
  4. 4. Think! – Umlanji <ul><li>Picture your Caché or Ensemble classes </li></ul><ul><li>Create UML class diagrams directly from your class definitions </li></ul><ul><ul><li>Accurate </li></ul></ul><ul><ul><li>Complete </li></ul></ul><ul><ul><li>Up to date </li></ul></ul><ul><li>Understand someone else’s classes </li></ul><ul><li>Explain your classes to others </li></ul>
  5. 5. Umlanji’s Slipstreaming <ul><li>Leveraging existing UML modelling tools </li></ul><ul><ul><li>Umlanji generates XMI file from class definitions </li></ul></ul><ul><ul><ul><li>Poseidon from Gentleware </li></ul></ul></ul><ul><ul><ul><li>Enterprise Architect from Sparx </li></ul></ul></ul><ul><ul><ul><li>others </li></ul></ul></ul><ul><li>Exploiting Caché Studio extensibility </li></ul><ul><ul><li>Integrates as an add-in </li></ul></ul>
  6. 6. Do! <ul><li>Work accurately and efficiently </li></ul><ul><li>Focus effectively </li></ul><ul><li>Troubleshoot rapidly </li></ul>
  7. 7. Do! – Serenji <ul><li>M and COS code editor running on Windows </li></ul><ul><ul><li>Caché and Ensemble (INTs, MACs and INCs) </li></ul></ul><ul><ul><li>GT.M </li></ul></ul><ul><ul><li>Also M21, MSM and DSM </li></ul></ul><ul><li>Syntax colouring as you type </li></ul><ul><li>Collapsible blocks for dotted-DOs and {…} </li></ul><ul><li>Boundary marking, and highlighting of unreachable code </li></ul><ul><li>‘ Live’ subroutine and extrinsic function calls </li></ul><ul><ul><li>Tip showing comment and parameter mapping </li></ul></ul><ul><ul><li>Navigable – jump to target, go back </li></ul></ul><ul><li>Bookmarks </li></ul><ul><li>Tabbed multi-document view, splittable panes </li></ul>
  8. 8. Doing More <ul><li>Control interactive or background processes </li></ul><ul><ul><li>Click in margin to set breakpoints, optionally conditional or deferred </li></ul></ul><ul><ul><li>Step in, over, out, run to here </li></ul></ul><ul><ul><li>Break on change of arbitrary expression </li></ul></ul><ul><ul><li>Break on error </li></ul></ul><ul><li>Hover to see value of variable or expression </li></ul><ul><li>View symbol table at each stack level </li></ul><ul><li>Have direct access to execution context </li></ul><ul><ul><li>e.g. change variables, then continue </li></ul></ul><ul><li>Debug faulty code, understand functioning code </li></ul>
  9. 9. Serenji’s Slipstreaming <ul><li>RE/parser </li></ul><ul><ul><li>Parser for M syntax </li></ul></ul><ul><ul><li>Implemented in M </li></ul></ul><ul><li>MSM-Workstation </li></ul><ul><ul><li>Compact M engine, easily deployed </li></ul></ul><ul><ul><li>Runs on Windows </li></ul></ul><ul><li>SourceView ActiveX control </li></ul><ul><ul><li>Text editor component architected to permit plug-in parsers </li></ul></ul><ul><ul><li>Infrastructure for collapsible blocks </li></ul></ul>
  10. 10. Keep! <ul><li>Keep your work </li></ul><ul><ul><li>Preserve changes over time </li></ul></ul><ul><ul><li>Give confidence to blaze a trail, knowing you can revert </li></ul></ul><ul><li>Keep control </li></ul><ul><ul><li>Parallel working serialized when necessary? </li></ul></ul><ul><ul><li>Been through correct testing and approval stages? </li></ul></ul><ul><ul><li>Right pieces in right places? </li></ul></ul><ul><ul><li>Fixes to previous product releases rolled forward to next one? </li></ul></ul><ul><ul><li>Reproducible build? </li></ul></ul>
  11. 11. Keep! – VC/m <ul><li>Version control, workflow and configuration management for: </li></ul><ul><ul><li>M and COS code & data </li></ul></ul><ul><ul><li>Classes </li></ul></ul><ul><ul><li>Web pages (CSP, EWD, HTML) </li></ul></ul><ul><ul><li>Arbitrary text or binary files </li></ul></ul><ul><li>Retain versions of your code as you change it </li></ul><ul><li>Control and integrate concurrent changes </li></ul><ul><li>Manage multiple release cycles </li></ul><ul><li>Specify workflow controlling how changes are deployed </li></ul>
  12. 12. VC/m’s Slipstreaming <ul><li>Web browser technologies </li></ul><ul><ul><li>DOM and Javascript </li></ul></ul><ul><ul><ul><li>Script the manipulation of the Document Object Model </li></ul></ul></ul><ul><ul><li>XML and XSLT </li></ul></ul><ul><ul><ul><li>Serve pure data, and supply a transform that renders it presentable </li></ul></ul></ul><ul><li>Beyond Compare </li></ul><ul><ul><li>Visual diff tool capable of accessing FTP sites </li></ul></ul><ul><ul><li>VC/m masquerades as an FTP site whose directory structure is optimized for the diff tasks a VC/m user needs to perform </li></ul></ul><ul><ul><li>Next version of BC implements Merge, so VC/m will benefit </li></ul></ul>
  13. 13. Keep Do Think JIT – Just In Time TIJ – The Italian Job