SlideShare uma empresa Scribd logo
1 de 64
collective.amberjack   on-line tutorials with
the basic idea
✓ plone tours for new
  comers

✓ born @ bolzano sprint
  (nov ’08)




                          link foto
that’s all folks?
maybe not...
✓ every product/add-on
  might have his
  amberjack tutorial
✓ just-hired people in
   companies needs
   tutorials
✓ wizards

✓ simplified e-learning
the first goal
✓ PLIP #9324
✓ Use Amberjack to offer
  guided help for first-time
  users
✓ to be included in a next
  4.x release
we are writing
these tours
✓ Add and publish a Folder
✓ Add and publish a Page
✓ Add and publish a News
  Item
✓ Add and publish an Event
✓ Format a page using the
  visual editor
✓ Create internal links


                             link foto
we are writing
these tours
✓ Create external links
✓ Upload an image
✓ Insert image on a page
✓ Upload and link to a File
✓ Using the Contents tab
✓ Using the Display menu
✓ Create a static text
  portlet


                              link foto
a spotlight




       http://www.flickr.com/photos/slopjop/1300515408
you just installed Plone...   and you’re an happy guy
..and you need to
learn it by yourself..
hum, selecting the tour from the
list? so easy?
... and complete the
steps!
one at a time, please
http://www.flickr.com/photos/eklektikos/2541408630/sizes/l/




the blueprint   tours, steps, steps, steps
the blueprint
the blueprint

✓ A tour has

  • a name (and an Id)

  • a set of steps
the blueprint

✓ A tour has

  • a name (and an Id)

  • a set of steps



✓ every step is made by

  • a tuple (url, xpath, xcontent)

  • a title

  • a set of microsteps
the blueprint

✓ A tour has                         ✓ every microstep has

  • a name (and an Id)                 • a description

  • a set of steps                     • a id for an ajStep (choosen
                                         from the available ones’ set)

                                       • selector
✓ every step is made by
                                       • text
  • a tuple (url, xpath, xcontent)

  • a title

  • a set of microsteps
the blueprint

✓ A tour has                         ✓ every microstep has

  • a name (and an Id)                 • a description

  • a set of steps                     • a id for an ajStep (choosen
                                         from the available ones’ set)

                                       • selector
✓ every step is made by
                                       • text
  • a tuple (url, xpath, xcontent)

  • a title
                                     ✓ajStep is related to the HTML
  • a set of microsteps               generated by Plone
Do not touch Plone
✓ collective.amberjack
   do not changes anything
   in Plone itself

✓ it’s just unobtrusive
  javascript code and tours
  descripted through HTML

         http://www.flickr.com/photos/dhowellphoto/3023319312
the software components
amberjack library
collective.amberjack.core
collective.amberjack.portlet
collective.amberjack.plonetour
collective.amberjack.metatour
amberjack.org
✓ developed by Arash
   Yalpani
✓ provides an unobtrusive
  javascript infrastructure
  for online tours
✓ not completely usable for
  our purposes
                              link foto
basically it provides
✓ a fancy popup “div” with
  prev/next/exit buttons,
  fully html enabled for
  your steps.
✓ a mapping between a
  step and each url you can
  visit.

                         amberjack.org
some use case not fully supported

✓ in Plone a path does not identify uniquely a html page:


   • view a page (/plone/page-a/view)


   • edit a page (/plone/page-a/edit)


   • save a page (/plone/page-a/view)


✓ it’s not just about links, we also submit forms
the solutions

✓ make the mapping between steps and url less strong:


   • now the steps has an order (1. 2. 3....)


✓ don’t just rely   on urls to pass tour variables

   • use cookies
collective.amberjack.core

✓ tour definition   and      ✓ amberjack skins
 registration
                              • model_t

✓ step definition              • safari

                            ✓ amberjack integration and
✓ZCML configuration for        extension

  • tours
                            ✓special use case
  • ajStep                   configurations
                              • aj_xpath_exists
✓ validators definition
                              • aj_any_url
an example: add a folder
✓ the tour is made by the steps:         ✓ filling a field is entering a string
                                           inside a HTML field: it’s about JS
   • add_folder,                           and HTML.
   • fill_out_the_fields,

   • publish_folder,

   • all_done

✓ the “fill_out_the_fields” step has to:

   • fill the “title” field with a value

   • fill the “description” field with
     another value

   • save it
collective.amberjack.core - tour
collective.amberjack.core - tour



  ajTour = {'tourId':u'basic01_add_and_publish_a_folder',
   'title': _(u'Add and publish a Folder'),
   'steps': (add_folder,
             fill_out_the_fields,
             publish_folder,
             all_done,
             )}
collective.amberjack.core - step
collective.amberjack.core - step


  add_folder = {
      'validators': (isManager, isNotFolderCreated,),
      'url': u'/',
      'xpath': u'',
      'xcontent': u'',
      'title': _(u"Create a new folder"),
      'text': _(u"Folders are one..."),
      'steps': ({...})
collective.amberjack.core - microsteps
collective.amberjack.core - microsteps


  'steps': (
    {'description':
           _(u"In the [Title] field, type.."),
     'idStep': u'form_title',
     'selector': u'',
     'text': u'MyFolder'},
    {'description':
           _(u"In the [Description] field, type .."),
     'idStep': u'form_description',
     'selector': u'',
     'text': _("This folder will be used...")},)}
collective.amberjack.core - ajStep
collective.amberjack.core - ajStep

  ajStandardSteps = (
      ...
      ('form_title',
        '#archetypes-fieldname-title input'),
      ('form_description',
        '#archetypes-fieldname-description textarea'),
      ...
  )
collective.amberjack.core - ZCML registration
collective.amberjack.core - ZCML registration


    <collective.amberjack:tour
        tourdescriptor=".tour1.ajTour"
        />


    <collective.amberjack:ajstep
       stepsdescriptor=
         ".ajStandardSteps.ajStandardSteps"
       />
validators
✓ isAnonymous
✓ isAuthenticated
✓ isManager
✓ isReviewer
✓ isContributor
✓ isEditor
✓ isReader
             http://www.flickr.com/photos/traveleden/3797157077
collective.amberjack.plonetour

✓ defines the 12   tours              ✓translations


✓ provides tour specific validators     • french

  • isFolderCreated                    • italian

  • isNotFolderCreated


✓ZCML registration
collective.amberjack.portlet

✓ a portlet for starting a single tour

   • it just lets you provide the tourId and the skinId


✓ a portlet that lets you provide a set   of tour in a given order, you
  provide:

   • portlet’s title

   • tours’ list and order

   • skinId
collective.amberjack.metatour

✓provides 2 archetypes:

   • ajtour

   • ajstep

     • url, xpath, xcontent


     • microsteps

✓ metatours and ZCML registered tours are identical
http://www.flickr.com/photos/vramak/3499502280




See in action
Create a folder and a page
Create a folder and a page
http://www.flickr.com/photos/orphanjones/414401592




write your own tour   as simple as you need
what you need to
do
✓ create an empty package
  via paster

✓ write your tour in
   myTour.py
✓ add it to the available ones
  through ZCML

✓ translate it
✓ (opt. add custom ajSteps)


            http://www.flickr.com/photos/domhuk/197875701
Let’s see some, still in progress, code
http://www.flickr.com/photos/anirudhkoul/3786725982




who’s involved   the team, actually now
who’s involved
✓ Nate Aune proposed the
  idea to find a framework
  to create tours and adapt
  it to plone
who’s involved
✓ Nate Aune
✓ Vincent Fretin
  completely refactored the
  code, i18ned everything,
  has been a guide to me
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox wrote all the
  tours
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli during
   his thesis worked on the
   initial core
who’s involved
✓   Nate Aune
✓   Vincent Fretin
✓   Sam Knox
✓   Giacomo Spettoli
✓ Mirna Bagnolatti during
    her thesis developed
    tours from scratch,
    translated them in italian
who’s involved
✓   Nate Aune
✓   Vincent Fretin
✓   Sam Knox
✓   Giacomo Spettoli
✓   Mirna Bagnolatti
✓ Andrew Mleczko tour
    validations, tiny
    refactoring, test test test
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli
✓ Mirna Bagnolatti
✓ Andrew Mleczko
✓ Federica D’Elia test
  coverage
who’s involved
✓ Nate Aune
✓ Vincent Fretin
✓ Sam Knox
✓ Giacomo Spettoli
✓ Mirna Bagnolatti
✓ Andrew Mleczko
✓ Federica D’Elia
✓ Me, spiritus movens of
  the project
http://www.flickr.com/photos/tranchis/3173646667




Coding events   when the project improves
Sprints
✓ Bolzano Sprint ’08
✓ Sorrento Sprint ’09
✓ a short summer sprint
  ’09
✓ Plone conference ’09



        http://www.flickr.com/photos/johnthescone/2526186118
Thesis

smart students from the
University of Ferrara




             http://www.flickr.com/photos/fabio48/317814195/
Everyday’s work
ok, ok, we’re not so tough




             http://www.flickr.com/photos/nickallen/3631367614/
What’s next
✓ don’t you think we
  already finished, right?!




          http://www.flickr.com/photos/biscuitsmlp/2246503687
complete the work

✓Complete all the tours               ✓Activate the prev/next buttons just
                                       only they have a real meaning
✓Check the entered texts: the texts
 entered in the fields should be the   ✓Translate javascript messages
 ones we expect                        and plone's interface parts referring


✓ Add an option to the Unified         ✓Fix problem when submitting forms
 Installer, something like "./         with contents inside the kupu
 install.sh --with-tours"              editor

  • Add a run-profile option to
    plone.recipe.unifiedinstaller to
    run additional profiles when the
    Plone Site is created
upgrade it - some ideas

✓ Check if the user completes the        ✓setUp/tearDown.
  step                                      • provide a way to create an
   • provide a way to check if the            environment in which the user
     user completes all the                   runs his tours.
     microsteps                             • explore possible security
   • provide a way to autocomplete            issues.
     all of them
                                         ✓Provide a way to create a tour using
✓ Clicking on next step button do         paster.
  all the microsteps of the current
  step.
                                         ✓collective.amberjack as a
                                          doctest-like environment?
✓Load the js stuff only if the tour is
 running
                                         ✓...
I want you

we’ll sprint on Sat-Sun

http://ploneconf2009.org/
program/sprint/collective-
amberjack




            http://www.flickr.com/photos/uhuru1701/2247554605
References

✓ Project’s website:


  • http://www.coactivate.org/projects/collectiveamberjack/


✓mailing list:

  • http://www.coactivate.org/projects/collectiveamberjack/lists/
    collectiveamberjack-discussion


✓code:

  • http://dev.plone.org/collective/browser/collective.amberjack.buildout
Questions!?
Massimo Azzolini
massimo@redturtle.net




          http://www.flickr.com/photos/seandreilinger/2326448445
Grazie. Thank you.

Mais conteúdo relacionado

Semelhante a Collective.Amberjack

Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Diego Freniche Brito
 
Amberjack Lightning Talk
Amberjack Lightning TalkAmberjack Lightning Talk
Amberjack Lightning TalkJazkarta, Inc.
 
國民雲端架構 Django + GAE
國民雲端架構 Django + GAE國民雲端架構 Django + GAE
國民雲端架構 Django + GAEWinston Chen
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAmir Barylko
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1Yoav Farhi
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MITjeresig
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPFabien Potencier
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
 
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Jazkarta, Inc.
 
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to PluginDrupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to PluginAcquia
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, SuccessfullySauce Labs
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjeresig
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipeilittlebtc
 

Semelhante a Collective.Amberjack (20)

Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
Amberjack Lightning Talk
Amberjack Lightning TalkAmberjack Lightning Talk
Amberjack Lightning Talk
 
How to eat Cucmber
How to eat CucmberHow to eat Cucmber
How to eat Cucmber
 
國民雲端架構 Django + GAE
國民雲端架構 Django + GAE國民雲端架構 Django + GAE
國民雲端架構 Django + GAE
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
 
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MIT
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
 
WebGL Awesomeness
WebGL AwesomenessWebGL Awesomeness
WebGL Awesomeness
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
Deliverance: Plone theming without the learning curve from Plone Symposium Ea...
 
Seven deadly theming sins
Seven deadly theming sinsSeven deadly theming sins
Seven deadly theming sins
 
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to PluginDrupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
 
HTML 5 - Overview
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - Overview
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
jQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UIjQuery 1.3 and jQuery UI
jQuery 1.3 and jQuery UI
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 

Mais de Massimo Azzolini

Value design + Experience design = Business design
Value design + Experience design = Business designValue design + Experience design = Business design
Value design + Experience design = Business designMassimo Azzolini
 
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...Massimo Azzolini
 
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il clientePersonas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il clienteMassimo Azzolini
 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiMassimo Azzolini
 
Plone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 BolognaPlone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 BolognaMassimo Azzolini
 
Be agile: take back control over your work
Be agile: take back control over your workBe agile: take back control over your work
Be agile: take back control over your workMassimo Azzolini
 
Agile values, methods and software
Agile values, methods and softwareAgile values, methods and software
Agile values, methods and softwareMassimo Azzolini
 
Corsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il socialCorsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il socialMassimo Azzolini
 
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012Massimo Azzolini
 
Penelope - oltre il classico project management
Penelope - oltre il classico project managementPenelope - oltre il classico project management
Penelope - oltre il classico project managementMassimo Azzolini
 
Strategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul webStrategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul webMassimo Azzolini
 
Provincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case studyProvincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case studyMassimo Azzolini
 

Mais de Massimo Azzolini (17)

Value design + Experience design = Business design
Value design + Experience design = Business designValue design + Experience design = Business design
Value design + Experience design = Business design
 
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
Design thinking e strategia di marketing, il percorso, il metodo e il gioco d...
 
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il clientePersonas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
Personas + Business Model Canvas: Il redesign del sito a 4 mani con il cliente
 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passi
 
Plone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 BolognaPlone intranet - World Plone Day 2015 Bologna
Plone intranet - World Plone Day 2015 Bologna
 
Be agile: take back control over your work
Be agile: take back control over your workBe agile: take back control over your work
Be agile: take back control over your work
 
Social intranet
Social intranetSocial intranet
Social intranet
 
Agile values, methods and software
Agile values, methods and softwareAgile values, methods and software
Agile values, methods and software
 
Corsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il socialCorsi 3.0 - il sito e il social
Corsi 3.0 - il sito e il social
 
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
Stop that earthquake - Plone and Pyramid to the rescue - PloneConf 2012
 
Penelope - oltre il classico project management
Penelope - oltre il classico project managementPenelope - oltre il classico project management
Penelope - oltre il classico project management
 
Plone Konferenz 2012
Plone Konferenz 2012Plone Konferenz 2012
Plone Konferenz 2012
 
Strategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul webStrategie e comunicazione per il turismo sul web
Strategie e comunicazione per il turismo sul web
 
BibliotecaAccessibile
BibliotecaAccessibileBibliotecaAccessibile
BibliotecaAccessibile
 
Provincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case studyProvincia Di Ferrara's Plone case study
Provincia Di Ferrara's Plone case study
 
GoogleDocs on Plone
GoogleDocs on PloneGoogleDocs on Plone
GoogleDocs on Plone
 
Plone e Web 2.0
Plone e Web 2.0Plone e Web 2.0
Plone e Web 2.0
 

Último

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Collective.Amberjack

  • 1. collective.amberjack on-line tutorials with
  • 2. the basic idea ✓ plone tours for new comers ✓ born @ bolzano sprint (nov ’08) link foto
  • 3. that’s all folks? maybe not... ✓ every product/add-on might have his amberjack tutorial ✓ just-hired people in companies needs tutorials ✓ wizards ✓ simplified e-learning
  • 4. the first goal ✓ PLIP #9324 ✓ Use Amberjack to offer guided help for first-time users ✓ to be included in a next 4.x release
  • 5. we are writing these tours ✓ Add and publish a Folder ✓ Add and publish a Page ✓ Add and publish a News Item ✓ Add and publish an Event ✓ Format a page using the visual editor ✓ Create internal links link foto
  • 6. we are writing these tours ✓ Create external links ✓ Upload an image ✓ Insert image on a page ✓ Upload and link to a File ✓ Using the Contents tab ✓ Using the Display menu ✓ Create a static text portlet link foto
  • 7. a spotlight http://www.flickr.com/photos/slopjop/1300515408
  • 8. you just installed Plone... and you’re an happy guy
  • 9. ..and you need to learn it by yourself.. hum, selecting the tour from the list? so easy?
  • 10. ... and complete the steps! one at a time, please
  • 13. the blueprint ✓ A tour has • a name (and an Id) • a set of steps
  • 14. the blueprint ✓ A tour has • a name (and an Id) • a set of steps ✓ every step is made by • a tuple (url, xpath, xcontent) • a title • a set of microsteps
  • 15. the blueprint ✓ A tour has ✓ every microstep has • a name (and an Id) • a description • a set of steps • a id for an ajStep (choosen from the available ones’ set) • selector ✓ every step is made by • text • a tuple (url, xpath, xcontent) • a title • a set of microsteps
  • 16. the blueprint ✓ A tour has ✓ every microstep has • a name (and an Id) • a description • a set of steps • a id for an ajStep (choosen from the available ones’ set) • selector ✓ every step is made by • text • a tuple (url, xpath, xcontent) • a title ✓ajStep is related to the HTML • a set of microsteps generated by Plone
  • 17. Do not touch Plone ✓ collective.amberjack do not changes anything in Plone itself ✓ it’s just unobtrusive javascript code and tours descripted through HTML http://www.flickr.com/photos/dhowellphoto/3023319312
  • 18. the software components amberjack library collective.amberjack.core collective.amberjack.portlet collective.amberjack.plonetour collective.amberjack.metatour
  • 19. amberjack.org ✓ developed by Arash Yalpani ✓ provides an unobtrusive javascript infrastructure for online tours ✓ not completely usable for our purposes link foto
  • 20. basically it provides ✓ a fancy popup “div” with prev/next/exit buttons, fully html enabled for your steps. ✓ a mapping between a step and each url you can visit. amberjack.org
  • 21. some use case not fully supported ✓ in Plone a path does not identify uniquely a html page: • view a page (/plone/page-a/view) • edit a page (/plone/page-a/edit) • save a page (/plone/page-a/view) ✓ it’s not just about links, we also submit forms
  • 22. the solutions ✓ make the mapping between steps and url less strong: • now the steps has an order (1. 2. 3....) ✓ don’t just rely on urls to pass tour variables • use cookies
  • 23. collective.amberjack.core ✓ tour definition and ✓ amberjack skins registration • model_t ✓ step definition • safari ✓ amberjack integration and ✓ZCML configuration for extension • tours ✓special use case • ajStep configurations • aj_xpath_exists ✓ validators definition • aj_any_url
  • 24. an example: add a folder ✓ the tour is made by the steps: ✓ filling a field is entering a string inside a HTML field: it’s about JS • add_folder, and HTML. • fill_out_the_fields, • publish_folder, • all_done ✓ the “fill_out_the_fields” step has to: • fill the “title” field with a value • fill the “description” field with another value • save it
  • 26. collective.amberjack.core - tour ajTour = {'tourId':u'basic01_add_and_publish_a_folder', 'title': _(u'Add and publish a Folder'), 'steps': (add_folder, fill_out_the_fields, publish_folder, all_done, )}
  • 28. collective.amberjack.core - step add_folder = { 'validators': (isManager, isNotFolderCreated,), 'url': u'/', 'xpath': u'', 'xcontent': u'', 'title': _(u"Create a new folder"), 'text': _(u"Folders are one..."), 'steps': ({...})
  • 30. collective.amberjack.core - microsteps 'steps': ( {'description': _(u"In the [Title] field, type.."), 'idStep': u'form_title', 'selector': u'', 'text': u'MyFolder'}, {'description': _(u"In the [Description] field, type .."), 'idStep': u'form_description', 'selector': u'', 'text': _("This folder will be used...")},)}
  • 32. collective.amberjack.core - ajStep ajStandardSteps = ( ... ('form_title', '#archetypes-fieldname-title input'), ('form_description', '#archetypes-fieldname-description textarea'), ... )
  • 34. collective.amberjack.core - ZCML registration <collective.amberjack:tour tourdescriptor=".tour1.ajTour" /> <collective.amberjack:ajstep stepsdescriptor= ".ajStandardSteps.ajStandardSteps" />
  • 35. validators ✓ isAnonymous ✓ isAuthenticated ✓ isManager ✓ isReviewer ✓ isContributor ✓ isEditor ✓ isReader http://www.flickr.com/photos/traveleden/3797157077
  • 36. collective.amberjack.plonetour ✓ defines the 12 tours ✓translations ✓ provides tour specific validators • french • isFolderCreated • italian • isNotFolderCreated ✓ZCML registration
  • 37. collective.amberjack.portlet ✓ a portlet for starting a single tour • it just lets you provide the tourId and the skinId ✓ a portlet that lets you provide a set of tour in a given order, you provide: • portlet’s title • tours’ list and order • skinId
  • 38. collective.amberjack.metatour ✓provides 2 archetypes: • ajtour • ajstep • url, xpath, xcontent • microsteps ✓ metatours and ZCML registered tours are identical
  • 40. Create a folder and a page
  • 41. Create a folder and a page
  • 43. what you need to do ✓ create an empty package via paster ✓ write your tour in myTour.py ✓ add it to the available ones through ZCML ✓ translate it ✓ (opt. add custom ajSteps) http://www.flickr.com/photos/domhuk/197875701
  • 44. Let’s see some, still in progress, code
  • 46. who’s involved ✓ Nate Aune proposed the idea to find a framework to create tours and adapt it to plone
  • 47. who’s involved ✓ Nate Aune ✓ Vincent Fretin completely refactored the code, i18ned everything, has been a guide to me
  • 48. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox wrote all the tours
  • 49. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli during his thesis worked on the initial core
  • 50. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti during her thesis developed tours from scratch, translated them in italian
  • 51. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko tour validations, tiny refactoring, test test test
  • 52. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko ✓ Federica D’Elia test coverage
  • 53. who’s involved ✓ Nate Aune ✓ Vincent Fretin ✓ Sam Knox ✓ Giacomo Spettoli ✓ Mirna Bagnolatti ✓ Andrew Mleczko ✓ Federica D’Elia ✓ Me, spiritus movens of the project
  • 55. Sprints ✓ Bolzano Sprint ’08 ✓ Sorrento Sprint ’09 ✓ a short summer sprint ’09 ✓ Plone conference ’09 http://www.flickr.com/photos/johnthescone/2526186118
  • 56. Thesis smart students from the University of Ferrara http://www.flickr.com/photos/fabio48/317814195/
  • 57. Everyday’s work ok, ok, we’re not so tough http://www.flickr.com/photos/nickallen/3631367614/
  • 58. What’s next ✓ don’t you think we already finished, right?! http://www.flickr.com/photos/biscuitsmlp/2246503687
  • 59. complete the work ✓Complete all the tours ✓Activate the prev/next buttons just only they have a real meaning ✓Check the entered texts: the texts entered in the fields should be the ✓Translate javascript messages ones we expect and plone's interface parts referring ✓ Add an option to the Unified ✓Fix problem when submitting forms Installer, something like "./ with contents inside the kupu install.sh --with-tours" editor • Add a run-profile option to plone.recipe.unifiedinstaller to run additional profiles when the Plone Site is created
  • 60. upgrade it - some ideas ✓ Check if the user completes the ✓setUp/tearDown. step • provide a way to create an • provide a way to check if the environment in which the user user completes all the runs his tours. microsteps • explore possible security • provide a way to autocomplete issues. all of them ✓Provide a way to create a tour using ✓ Clicking on next step button do paster. all the microsteps of the current step. ✓collective.amberjack as a doctest-like environment? ✓Load the js stuff only if the tour is running ✓...
  • 61. I want you we’ll sprint on Sat-Sun http://ploneconf2009.org/ program/sprint/collective- amberjack http://www.flickr.com/photos/uhuru1701/2247554605
  • 62. References ✓ Project’s website: • http://www.coactivate.org/projects/collectiveamberjack/ ✓mailing list: • http://www.coactivate.org/projects/collectiveamberjack/lists/ collectiveamberjack-discussion ✓code: • http://dev.plone.org/collective/browser/collective.amberjack.buildout
  • 63. Questions!? Massimo Azzolini massimo@redturtle.net http://www.flickr.com/photos/seandreilinger/2326448445

Notas do Editor

  1. puzzle
  2. tutto a 40
  3. punti elenco con il check e img (logo plone anche solo il tondo)
  4. come sopra
  5. idem