SlideShare a Scribd company logo
1 of 79
Download to read offline
 

openmindLAB modules
    www.openmindlab.com
 

                 by
         www.openmindonline.it




fgiust   manuel       luca       diego
 
Criteria 3.0
Criteria



     not actually a “module”
   but something you can't miss
Criteria



           it just do queries
                 … but better
Criteria

           It's fast!
Criteria

           everything is lazy...
Criteria




           built-in pagination
                 (at jcr level)
Criteria

    it doesn't do any unneeded work
          (no post-processing!)
Criteria
                                    M!
                           KA -BOOO               displaying the first page of results
  infinity                                                  from a query




                              standard magnolia
                                  query API




                                                                       criteria

  few ms


             few results                             100.000 total results

running a website with more than 3.000.000 magnolia pages full-text indexed
and ~ 1.500.000 executed search/months
Criteria




           and the goodies...
Criteria
  do the maths for you:
  → result.getPage()
  → result.getTotalSize()
  → result.getNumberOfPages()

  builtin spellchecking
  → result.getSpellCheckerSuggestion()

  built-in c2b
  → result.getItems(MyBean.class)

  excerpts
   → item.getExcerpts()

  scoring
  → item.getScore()
Criteria



       … still one more thing
Criteria

            Query composition
      and automatic XPATH escaping!
  AdvancedResult result = JCRCriteriaFactory.createCriteria()
    .setWorkspace("website")
    .setBasePath("/dogs")
    .add(Restrictions.eq(Criterion.JCR_PRIMARYTYPE, "mgnl:content"))
    .add(Restrictions.contains("@name", "Nana"))
    .add(Restrictions.gt("@weight", Float.valueOf(10)))
    .add(Restrictions.between("@birthDate", begin, end))
    .addOrder(Order.desc("@name"))
    .execute();
SimpleMedia 4.3
SimpleMedia



   is anybody still not using it?
SimpleMedia



        really, you can't!
SimpleMedia
SimpleMedia



    too many features to tell,
      just a few new ones...
SimpleMedia



             great performance
               improvements
   (guess why? it's based on criteria APIs instead of Magnolia APIs)
           try it with thousands of items in a single folder
SimpleMedia



    new advanced search panel
       (totally configurable)
       pagination & sorting
    an always improving admin
              interface
SimpleMedia



               playlists!
    ... and playlist export in xspf
              format too
SimpleMedia
              automatic parsing of video metadata

  advanced support for streaming videos (rtp/rtmp protocols)

       pluggable external providers (more than you tube)

      automatic retrieval of preview images from youtube

  document support with advanced pdf handling (pdf metadata
                        and preview!)

  even more format supported (more jpeg flavours, ico files, …)

                      pluggable zip import

                     pluggable video player
SimpleCache 1.0
SimpleCache



     (yes, everything is simple)
SimpleCache



   ... cause we love that "simple"
SimpleCache



       just two short reasons
      for a new cache module
SimpleCache



                 1) simplicity
  the standard magnolia cache module is unfortunately
                *far* from being simple
SimpleCache



              2) ?
SimpleCache



                      2) ?




        * magnolia memory usage with ehcache and overflow to disk
SimpleCache



                  2) streaming
   (translate to: be fast and don't eat your memory at all)
SimpleCache



       (actually a third one)
SimpleCache



  3) it doesn't mix & mess with the
   browser cache, that's a totally
           different topic! *
            * my personal opinion
Rules 1.0
Rules



    just a small and (guess what?)
   simple rule engine for magnolia
Rules



  conditionally display paragraphs,
    say "good morning" or "good
   evening" and that sort of things
Rules



        evaluating expression
Rules



        but that's boring...
Rules



        the real nice things is
Rules



   the nice customizable editor for
       composing expressions!
    targeted to non technical users
Rules
ContextMenu 1.0
ContextMenu



   here we want to make things
      simple for developers
ContextMenu



    this module deviates from the
  standard Magnolia UI for editing
               things
ContextMenu



  (but only when there is a reason)
ContextMenu



   imagine a form with 50 fields
  where each label has to be edited
ContextMenu
ContextMenu



    the developer has to build a
           complex dialog
                   .
   the editor has to *use* an ugly
               dialog!
ContextMenu



   so here the idea of right click
    editing, with automagically
           created dialogs
                   .
        field by field editing
ContextMenu



  just take you template and wrap
            the field in a
   <mcmenu:element name="message">
          ${content.message}
         </mcmenu:element>
Tagcloud 1.0
TagCloud



    just makes tag clouds from
   magnolia-managed data in jcr
    (tags in pages, paragraphs,
               media)
TagCloud
TagCloud



   c'mon, what's special with it?
TagCloud



    it does a very complex task,
                really!
TagCloud



  ever tried to build an algorithm
   for building a tagcloud from a
               tree???
   (you can't do "select x group by name order by count desc" in a jcr)
TagCloud



   you usually have to read the
   whole tree, making count ant
        caching the result
           (it's an heavy operation)
TagCloud



   the tagcloud module instead is
                fast
TagCloud



   it just reads the lucene index!
     (not in any way magnolia or jackrabbit alone could do)
TagCloud



     oh, and don't miss also...
TagCloud

     the nice tagcloud control!
           (and one more: the pre-built tags)
e-learning module 1.0
e-learning module



  that actually manages a complex
                thing...
e-learning module



             SCORM
e-learning module



             SCORM
e-learning module



             SCORM
     "Shareable Content Object
         Reference Model"
e-learning module



  Standard for web-base e-learning
                  .
  SCORM defines communications
  between client-side contents and
       server-side Learning
    Management System (LMS).
e-learning module



   Load, publish and play SCORM
         compliant courses
Mobile module 1.0
mobile module



    can you guess what it does?
mobile module
mobile module



       it just allows you to serve
  different content according to the
     device used to browse pages
mobile module



     It used WURFL to get the
   information about capabilities
   and features of mobile devices
mobile module



    Developers can define different
  templates to be served depending
     on mobile device capabilities,
   resolution, browser, OS, device.
mobile module



           Preview result
   (template/screen size) from the
          admin interface
and...
there is still more
in openmindLAB!
th
 but this is the 79 slide...
so you will have to try it by
         yourself ;)

More Related Content

Similar to Openmind magnolia modules 2010

Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
Ritesh Kumar
 
Mobile Developer Summit 2012, Pune
Mobile Developer Summit 2012, PuneMobile Developer Summit 2012, Pune
Mobile Developer Summit 2012, Pune
Bhuvan Khanna
 
Front-End Modernization for Mortals
Front-End Modernization for MortalsFront-End Modernization for Mortals
Front-End Modernization for Mortals
cgack
 

Similar to Openmind magnolia modules 2010 (20)

Apple Machine Learning
Apple Machine LearningApple Machine Learning
Apple Machine Learning
 
Extending NetBeans IDE
Extending NetBeans IDEExtending NetBeans IDE
Extending NetBeans IDE
 
00 intro to java
00 intro to java00 intro to java
00 intro to java
 
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityEngage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
 
Basic java part_ii
Basic java part_iiBasic java part_ii
Basic java part_ii
 
Connect 2014 JMP101: Java for XPages Development
Connect 2014 JMP101: Java for XPages DevelopmentConnect 2014 JMP101: Java for XPages Development
Connect 2014 JMP101: Java for XPages Development
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
Mobile Developer Summit 2012, Pune
Mobile Developer Summit 2012, PuneMobile Developer Summit 2012, Pune
Mobile Developer Summit 2012, Pune
 
Empowering Magnolia for Enterprise Use Cases - Experience Report
Empowering Magnolia for Enterprise Use Cases - Experience ReportEmpowering Magnolia for Enterprise Use Cases - Experience Report
Empowering Magnolia for Enterprise Use Cases - Experience Report
 
Drupal For Dummies
Drupal For DummiesDrupal For Dummies
Drupal For Dummies
 
Improving Drupal Performances
Improving Drupal PerformancesImproving Drupal Performances
Improving Drupal Performances
 
Understanding Framework Architecture using Eclipse
Understanding Framework Architecture using EclipseUnderstanding Framework Architecture using Eclipse
Understanding Framework Architecture using Eclipse
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with android
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
 
What every C++ programmer should know about modern compilers (w/ comments, AC...
What every C++ programmer should know about modern compilers (w/ comments, AC...What every C++ programmer should know about modern compilers (w/ comments, AC...
What every C++ programmer should know about modern compilers (w/ comments, AC...
 
ASP .NET MVC - best practices
ASP .NET MVC - best practicesASP .NET MVC - best practices
ASP .NET MVC - best practices
 
Organized web app development using backbone.js
Organized web app development using backbone.jsOrganized web app development using backbone.js
Organized web app development using backbone.js
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Front-End Modernization for Mortals
Front-End Modernization for MortalsFront-End Modernization for Mortals
Front-End Modernization for Mortals
 

Openmind magnolia modules 2010

  • 1.   openmindLAB modules www.openmindlab.com
  • 2.   by www.openmindonline.it fgiust manuel luca diego
  • 3.  
  • 4.
  • 6. Criteria not actually a “module” but something you can't miss
  • 7. Criteria it just do queries … but better
  • 8. Criteria It's fast!
  • 9. Criteria everything is lazy...
  • 10. Criteria built-in pagination (at jcr level)
  • 11. Criteria it doesn't do any unneeded work (no post-processing!)
  • 12. Criteria M! KA -BOOO displaying the first page of results infinity from a query standard magnolia query API criteria few ms few results 100.000 total results running a website with more than 3.000.000 magnolia pages full-text indexed and ~ 1.500.000 executed search/months
  • 13. Criteria and the goodies...
  • 14. Criteria do the maths for you: → result.getPage() → result.getTotalSize() → result.getNumberOfPages() builtin spellchecking → result.getSpellCheckerSuggestion() built-in c2b → result.getItems(MyBean.class) excerpts → item.getExcerpts() scoring → item.getScore()
  • 15. Criteria … still one more thing
  • 16. Criteria Query composition and automatic XPATH escaping! AdvancedResult result = JCRCriteriaFactory.createCriteria() .setWorkspace("website") .setBasePath("/dogs") .add(Restrictions.eq(Criterion.JCR_PRIMARYTYPE, "mgnl:content")) .add(Restrictions.contains("@name", "Nana")) .add(Restrictions.gt("@weight", Float.valueOf(10))) .add(Restrictions.between("@birthDate", begin, end)) .addOrder(Order.desc("@name")) .execute();
  • 18. SimpleMedia is anybody still not using it?
  • 19. SimpleMedia really, you can't!
  • 21. SimpleMedia too many features to tell, just a few new ones...
  • 22. SimpleMedia great performance improvements (guess why? it's based on criteria APIs instead of Magnolia APIs) try it with thousands of items in a single folder
  • 23. SimpleMedia new advanced search panel (totally configurable) pagination & sorting an always improving admin interface
  • 24. SimpleMedia playlists! ... and playlist export in xspf format too
  • 25. SimpleMedia automatic parsing of video metadata advanced support for streaming videos (rtp/rtmp protocols) pluggable external providers (more than you tube) automatic retrieval of preview images from youtube document support with advanced pdf handling (pdf metadata and preview!) even more format supported (more jpeg flavours, ico files, …) pluggable zip import pluggable video player
  • 27. SimpleCache (yes, everything is simple)
  • 28. SimpleCache ... cause we love that "simple"
  • 29. SimpleCache just two short reasons for a new cache module
  • 30. SimpleCache 1) simplicity the standard magnolia cache module is unfortunately *far* from being simple
  • 31. SimpleCache 2) ?
  • 32. SimpleCache 2) ? * magnolia memory usage with ehcache and overflow to disk
  • 33. SimpleCache 2) streaming (translate to: be fast and don't eat your memory at all)
  • 34. SimpleCache (actually a third one)
  • 35. SimpleCache 3) it doesn't mix & mess with the browser cache, that's a totally different topic! * * my personal opinion
  • 37. Rules just a small and (guess what?) simple rule engine for magnolia
  • 38. Rules conditionally display paragraphs, say "good morning" or "good evening" and that sort of things
  • 39. Rules evaluating expression
  • 40. Rules but that's boring...
  • 41. Rules the real nice things is
  • 42. Rules the nice customizable editor for composing expressions! targeted to non technical users
  • 43. Rules
  • 45. ContextMenu here we want to make things simple for developers
  • 46. ContextMenu this module deviates from the standard Magnolia UI for editing things
  • 47. ContextMenu (but only when there is a reason)
  • 48. ContextMenu imagine a form with 50 fields where each label has to be edited
  • 50. ContextMenu the developer has to build a complex dialog . the editor has to *use* an ugly dialog!
  • 51. ContextMenu so here the idea of right click editing, with automagically created dialogs . field by field editing
  • 52. ContextMenu just take you template and wrap the field in a <mcmenu:element name="message"> ${content.message} </mcmenu:element>
  • 54. TagCloud just makes tag clouds from magnolia-managed data in jcr (tags in pages, paragraphs, media)
  • 56. TagCloud c'mon, what's special with it?
  • 57. TagCloud it does a very complex task, really!
  • 58. TagCloud ever tried to build an algorithm for building a tagcloud from a tree??? (you can't do "select x group by name order by count desc" in a jcr)
  • 59. TagCloud you usually have to read the whole tree, making count ant caching the result (it's an heavy operation)
  • 60. TagCloud the tagcloud module instead is fast
  • 61. TagCloud it just reads the lucene index! (not in any way magnolia or jackrabbit alone could do)
  • 62. TagCloud oh, and don't miss also...
  • 63. TagCloud the nice tagcloud control! (and one more: the pre-built tags)
  • 65. e-learning module that actually manages a complex thing...
  • 68. e-learning module SCORM "Shareable Content Object Reference Model"
  • 69. e-learning module Standard for web-base e-learning . SCORM defines communications between client-side contents and server-side Learning Management System (LMS).
  • 70. e-learning module Load, publish and play SCORM compliant courses
  • 72. mobile module can you guess what it does?
  • 74. mobile module it just allows you to serve different content according to the device used to browse pages
  • 75. mobile module It used WURFL to get the information about capabilities and features of mobile devices
  • 76. mobile module Developers can define different templates to be served depending on mobile device capabilities, resolution, browser, OS, device.
  • 77. mobile module Preview result (template/screen size) from the admin interface
  • 78. and... there is still more in openmindLAB!
  • 79. th but this is the 79 slide... so you will have to try it by yourself ;)