Search This Blog

Tuesday, March 23, 2010

OSGi For Modularizing Large Projects

OSGi helps establish good practices in software development by effectively applying at a macro level these good OO practices:
  • hide implementation details (design by interface contract)
  • minimize dependencies (high cohesion, low coupling)
Declarative programming and in particular declarative services promote:
  • extensibility (e.g. wrapping a web server)
  • writing POJOs and using in a larger context
Keeping the data model and visual representation separate promotes:
  • not writing too much from scratch
  • maintaining the reusability of core logic
  • allowing different app versions per audience
  • grow or shrink app

Tuesday, March 9, 2010

Messaging Patterns Used In CORBA

  • Synchronous with Timeout Method Invocation (SMI) – the client is blocked until a response is received from the server or a timeout occurs (client might spawn a thread so main thread is not blocked)
  • Asynchronous Method Invocation (AMI) – the client is not blocked but receives a callback from the server
  • One-way Method Invocation (OMI) – like AMI except no callback is received

Friday, March 5, 2010

Presentation And Diagramming Links

Programmer Productivity Tips

  1. Use a modern IDE such as Eclipse.
  2. Content Assist (or Code Completion, tab completion, Intellisense, etc.)  Content assist provides you with a list of suggested completions for partially entered strings. In Eclipse type something in the editor window and then ctrl-space. (e.g in Eclipse: Preferences->Java->Editor->Content Assist->Advanced)
  3. Code Templates: For example, type sysout and then ctrl-space and it spits out System.out.println(); with the cursor in the right spot. Type "for" ctrl-space and get a for...loop, type "try" ctrl-space and get a try...catch block.  (Eclipse: Window->Preferences->Java->Editor->Templates) 
  4. Code Generation: Faster Java coding in Eclipse Galileo (IBM), Useful Eclipse Shortcuts (SO) , Eclipse Shortcuts (Vogella)
  5. Compiler Warnings: Using Eclipse Java Compiler Errors/Warnings – Improving your code quality, CheckStyle
  6. Syntax Highlighting
  7. Focus (i.e. turn off email, browser, im when possible)
  8. Google
  9. Dual Monitors
  10. Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems
  11. Caffeine
  12. Debugger Java Debugging With Eclipse (Vogella)
  13. Sound isolating headphones
  14. Design Patterns
  15. XML Binding (no need to write DOM and SAX code any more)