SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
BP207 Easy As Pie - Creating
Widgets for IBM Connections

Mikkel Flindt Heisterberg
Senior Solution Architect | IntraVision




© 2012 IBM Corporation
Legal disclaimer
© IBM Corporation 2012. All Rights Reserved.
 The information contained in this publication is provided for informational purposes only. While efforts were made
 to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS
 without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product
 plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any
 damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
 contained in this publication 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.
 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. Product release dates and/or capabilities referenced in this presentation may
 change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to
 be a commitment to future product or feature availability in any way. 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.
 Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of
 International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark
 of WebDialogs, Inc., in the United States, other countries, or both.




                                                                                                        2 |   © 2012 IBM Corporation
About me
   With IntraVision (makers of the OnTime®
    suite of calendar and meeting
    management products – showcase booth
    515), Premier Business Partner from
    Denmark
   Been working with IBM Lotus®
    technologies since he was a young boy
   Recently named an IBM Champion for
    IBM Collaboration Solutions (ICS)
   An all together nice guy!

   http://twitter.com/lekkim
   http://lekkimworld.com
                                              3 |   © 2012 IBM Corporation
Agenda
   A bit on IBM Connections architecture and the
    infrastructure for widgets i.e. configuration files etc.
   Introduction to iWidgets – configure, develop and deploy
   Resources and summary
   Q&A




                                                    4 |   © 2012 IBM Corporation
IBM Connections architecture




                               5 |   © 2012 IBM Corporation
Widgets in IBM Connections
   Most functionality in IBM Connections is actually widgets
   You may add widgets in Profiles, Communities and Homepage
   Widgets are made up of two parts
     ─ Widget configuration on the IBM Connections server
     ─ The actual widget written to the iWidget specification (JavaScript / XML / HTML / CSS)




                                                                                       6 |   © 2012 IBM Corporation
Widgets in IBM Connections
   You may add widgets in Profiles, Communities and Homepage
   Most functionality in these features is actually widgets
   Widgets are made up of two parts
     ─ Widget configuration on the IBM Connections server
     ─ The actual widget written to the iWidget specification (JavaScript / XML / CSS)




                                                                                         7 |   © 2012 IBM Corporation
Widget modes
        There are a number of modes defined (view, edit, fullpage, search) but not all
         modes are supported in all features (fullpage and search only in Communities)
        Widgets may contribute multiple modes
        Administrator may choose to use some and not all modes contributed




Added by the community                                                  Added by administrator
        owner


                                                           View mode
                                                                              8 |   © 2012 IBM Corporation
Widget modes
   There are a number of modes defined (view, edit, fullpage, search) but not all
    modes are supported in all features (fullpage and search only in Communities)
   Widgets may contribute multiple modes
   Administrator may choose to use some and not all modes contributed




                                                Fullpage mode
                                                                       9 |   © 2012 IBM Corporation
Widget modes
   There are a number of modes defined (view, edit, fullpage, search) but not all
    modes are supported in all features (fullpage and search only in Communities)
   Widgets may contribute multiple modes
   Administrator may choose to use some and not all modes contributed




                                                  Search mode
                                                                       10 |   © 2012 IBM Corporation
Widget configuration in widgets-config.xml




                                             (unless using
                                             extreme care)




                                               11 |   © 2012 IBM Corporation
Widget attributes makes the widget configurable
   It doesn't make sense to hard code or at least not supply sensible defaults and
    widget attributes can be used for configuration
   String key/value pairs may be supplied – interpretation of the value is up to the
    widget though
   Some values cannot be specified in widgets-config.xml as they may change
    based on IBM Connections configuration (such as context root i.e. “/dogear” /
    “/bookmarks”) or the ID of the active profile / community
   Special values are enclosed in curly braces – i.e.
     ─ {resourceId} profileKey of current Profiles user or communityUnid if in Communities
     ─ {contextRoot} Context root of the current feature (i.e. “/profiles”)




                                                                                    12 |   © 2012 IBM Corporation
Widget attributes makes the widget configurable (2)




                                                      13 |   © 2012 IBM Corporation
Say hello to iWidgets
   In IBM Connections 3 the widgets are iWidgets which means that they are
    written to the iWidget specification
   Widgets are described by a widget descriptor (referenced in widgets-config.xml)
    and optionally JavaScript to provide dynamic behavior and, also optionally, CSS
    to style the contents
   The widget descriptor describes supported modes, startup mode, “iScope class”
    (more in a bit) and, optionally, which resources to load
   Static widget content for each mode may also be supplied




                                                                      14 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    15 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    16 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    17 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    18 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    19 |   © 2012 IBM Corporation
Widget descriptor – more in depth




                                    20 |   © 2012 IBM Corporation
iScope class




●   Access to dojo version 1.4.1 (highly customized for IBM Connections)
●   You do not have to use dojo to declare the class...                    21 |   © 2012 IBM Corporation
iContext
   An iContext instance is automatically set into the iScope class
   The iContext provides access to the widget markup (e.g. root element), I/O
    related functions (i.e. URL rewriting), widget attributes etc.
   The iContext is easily accessed from the iScope class using this.iContext
   Important functions include:
     ─ iContext.getRootElement() : DOM Element
     ─ iContext.getElementById(id:string) : DOM Element
     ─ iContext.getiWidgetAttributes() : ItemSet
     ─ iContext.getUserProfile() : ItemSet
     ─ iContext.io.rewriteURI(uri:string) : string
     ─ iContext.iEvents.fireEvent(name:string, type:string, payload:object)


   You retrieve information from an ItemSet using getItemValue(name:string)


                                                                     22 |   © 2012 IBM Corporation
Using iContext




                 23 |   © 2012 IBM Corporation
Using iEvents




                24 |   © 2012 IBM Corporation
Keeping context
   JavaScript is single threaded - all requests for web resources are done after the
    current method completes
   The callback is done with another context i.e. “this” will refer to something else
    than your iScope class
   Solution is to
     ─ use closures i.e. save a reference to “this” before the call
     ─ use dojo.hitch and have dojo apply the correct context




                                                                         25 |   © 2012 IBM Corporation
Keeping context
   JavaScript is single threaded - all requests for web resources are done after the
    current method completes
   The callback is done with another context i.e. “this” will refer to something else
    than your iScope class
   Solution is to
     ─ use closures i.e. save a reference to “this” before the call
     ─ use dojo.hitch and have dojo apply the correct context




                                                                         26 |   © 2012 IBM Corporation
Keeping context
   JavaScript is single threaded - all requests for web resources are done after the
    current method completes
   The callback is done with another context i.e. “this” will refer to something else
    than your iScope class
   Solution is to
     ─ use closures i.e. save a reference to “this” before the call
     ─ use dojo.hitch and have dojo apply the correct context




                                                                         27 |   © 2012 IBM Corporation
What's your origin?
   In browsers we have what's called the
    “Same Origin Policy”
   JavaScript running the the browser may
    only do XHR's against the same server
    it was loaded from
   Same server means
     ─ Same hostname / IP
     ─ Same port number
   To work around this we use an AJAX
    proxy
   IBM Connections supplies us with a
    proxy which is easy to use from your
    widget code



                                             28 |   © 2012 IBM Corporation
Using the AJAX proxy




If running in Profiles the proxy will be http://<host>/profiles/ajaxProxy
Above request will be http://<host>/profiles/ajaxProxy/http/www.google.com/search?q=Lotusphere
                                                                                29 | © 2012 IBM Corporation
IBM Connections AJAX proxy is used for all requests




   Easy to see if using Firebug to trace
   AJAX proxy used for all requests even though widget descriptor and required
    JavaScript files are fully qualified and from same hostname / port combination

                                                                       30 |   © 2012 IBM Corporation
Proxy security
   For security access through the proxy is disallowed by default
   You have to allow access on a per hostname and method
    type (GET, POST, DELETE etc.) basis (or open for all
    hostnames / methods although not recommended)
   Do remember to allow access for LtpaToken cookies if
    authentication should be propagated                              (unless using
                                                                     extreme care)
   Proxy configuration done in proxy-config.tpl on
    the IBM Connections server




                                                                       31 |   © 2012 IBM Corporation
Using Connections provide a very comprehensive REST API based on the
 IBM the IBM Connections REST API
    AtomPub standard
   Each feature has full documentation on how to access data using the API in the
    InfoCenter / wiki – unfortunately examples are hard to come by
   Since these requests probably go to the IBM Connections server they may not
    need to be proxied (unless features are on separate servers)
     ─ Remember to always use widget attributes (e.g. {profilesSvcRef}) to get URL to the Profiles
       feature unless you are willing to guess / hardcode
   Using the lconn.core.xpath and lconn.core.xslt classes can help you
    work with the XML based results
     ─ Loaded by default by the IBM Connections pages
     ─ Probably not supported neither officially or unofficially... :-)
   Most important functions:
     ─ lconn.core.xpath.selectNodes(xpath:string, xmldoc:XMLDocument,
       ns:array) : Nodelist
     ─ lconn.core.xslt.loadXml(url:string) : XMLDocument


                                                                                      32 |   © 2012 IBM Corporation
IBM Connections REST API example




                                   33 |   © 2012 IBM Corporation
Widget title, i18n and resources
   Unfortunately setting the title of your widget isn't as easy as
    one could have hoped :-(
   Setting the title can be done in one of two ways (well three
    actually):
     1) Using general IBM Connections strings properties file – this one is easy
        and only require creating / changing one file
     2) Using custom properties file – this one is clean as you don't depend on
        others files but it does also require change to LotusConnections-
        config.xml


●   Title is set as the value for a property where the key is the
    widget id from widgets-config.xml
●   String resources – e.g. translation – can be done using same
    approach

                                              OnTime=Calendar by OnTime
                                                                                   34 |   © 2012 IBM Corporation
Widget title, i18n and resources example




                                           35 |   © 2012 IBM Corporation
Reading i18n strings from your bundle




                                        36 |   © 2012 IBM Corporation
Caveats
   Editing configuration files by hand is prone to error
     ─ IBM would tell you always use checkin/checkout via wsadmin
       as it does a schema check :-)
   Widgets are running in a shared environment
     ─ Make sure your CSS classes do not clash
     ─ Make sure ID's are unique by prefixing something unique to
       them as there may be multiple instances of the same widget
       on the page (it follows from this that you cannot use ID's for
       CSS selectors)
   Because you have access to the entire page doesn't
    mean that you should...
   Never, never, never, never ever add something like
    the following to your stylesheet – you may need it but
    the page as a whole will start to look funny...
    * {font-size: 7pt; color: red; overflow: hidden}
   Start small...
                                                                        37 |   © 2012 IBM Corporation
Things I would have hoped someone had told me...
   Dojo is nasty to troubleshoot due to async loading – all errors seem to come
    from dojo.js which is almost never the culprit
   Logging is really your friend but do add something that indicates which piece of
    code is logging
     ─ console.log, console.trace, console.debug, console.info, console.warn, console.error
   How to show a lightbox




                                                                                      38 |   © 2012 IBM Corporation
Things I would have hoped someone had told me...
   Dojo is nasty to troubleshoot due to async loading – all errors seem to come
    from dojo.js which is almost never the culprit
   Logging is really your friend but do add something that indicates which piece of
    code is logging
     ─ console.log, console.trace, console.debug, console.info, console.warn, console.error
   How to show a lightbox




                                                                                      39 |   © 2012 IBM Corporation
Things I would have hoped someone had told me...
   Network latency kills web application performance – cache as such as possible
    and combine multiple files into one minified version
   Repeat after me: “Latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency, latency,
    latency, latency, latency, latency, latency, latency, latency, latency.....
                                                                          40 |   © 2012 IBM Corporation
Summary
   Most functionality in IBM Connections is actually widgets and you can add your
    own
   Bringing your applications into IBM Connections and thus providing in-context
    access is very valuable
   Widgets are quite easy to develop using JavaScript and CSS although you must
    know about asynchronous JavaScript
   Dojo makes it easy to keep context and it's already loaded
   iWidgets, iScope, iContext, iEvents...
   Use asynchronous calls to keep UI snappy and use dojo.hitch to keep context
   Start small and build from there

   Happy coding!!


                                                                     41 |   © 2012 IBM Corporation
Related sessions
   BP121: Performance Programming
   AD201: Integrate and Customize IBM Connections 3.0.1
   AD203: Developing Custom Client Applications using the IBM Connections APIs
   AD204: Mastering the Art of Social Application Development




                                                                   42 |   © 2012 IBM Corporation
The shameless plug...


Social Application Throwdown
Where: Dolphin, Northern
Hemisphere A-C
Time: 5.30pm – 6.30pm

Featuring yours truly (and 5 other
business partners...)           43 |   © 2012 IBM Corporation
Resources
   iWidget specification: http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/iwidget-
    spec-v1.0.pdf/$file/iwidget-spec-v1.0.pdf
   IBM Connections iWidget Development Guide: www-
    10.lotus.com/ldd/lcwiki.nsf/dx/development-guide
   iWidget support in Homepage: http://www-
    10.lotus.com/ldd/lcwiki.nsf/dx/07072009105437%D8%B5WEBKH7.htm
   iWidget support in profiles and Communities: http://www-
    10.lotus.com/ldd/lcwiki.nsf/dx/10082009050455WEBCNM.htm
   Common iWidget support in Connections: http://www-
    10.lotus.com/ldd/lcwiki.nsf/dx/common-iwidget-support-in-the-lotus-
    connections-features

   In all modesty my blog – http://lekkimworld.com


                                                                       44 |   © 2012 IBM Corporation
Q&A
   But?, How?, Doesn't that mean...
   Give it to me! (or come talk to me
    after the session or find me in the
    hallways...)

   Twitter: @lekkim
    Email: mh@intravision.dk
    Blog:    http://lekkimworld.com

   Slides will be at
    http://lekkimworld.com/lotusphere2012
                                            45 |   © 2012 IBM Corporation

Más contenido relacionado

La actualidad más candente

IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...David Simpson
 
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By ExampleIBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By ExampleIBM Connections Developers
 
Social Enabler for XPages
Social Enabler for XPagesSocial Enabler for XPages
Social Enabler for XPagesNiklas Heidloff
 
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...Niklas Heidloff
 
BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...Carl Tyler
 
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...SocialBiz UserGroup
 
What is new in IBM Connections 5.5 and IBM Docs 2.0
What is new in IBM Connections 5.5 and IBM Docs 2.0What is new in IBM Connections 5.5 and IBM Docs 2.0
What is new in IBM Connections 5.5 and IBM Docs 2.0Luis Benitez
 
IBM Lotus Notes Domino Blog Template Update 8.01
IBM Lotus Notes Domino Blog Template Update 8.01IBM Lotus Notes Domino Blog Template Update 8.01
IBM Lotus Notes Domino Blog Template Update 8.01projectdxguy
 
Application Development for IBM Connections with IBM Bluemix
Application Development  for IBM Connections with IBM BluemixApplication Development  for IBM Connections with IBM Bluemix
Application Development for IBM Connections with IBM BluemixIBM Connections Developers
 
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...paulbastide
 
AD301: What's New in the IBM Social Business Toolkit
AD301: What's New in the IBM Social Business ToolkitAD301: What's New in the IBM Social Business Toolkit
AD301: What's New in the IBM Social Business ToolkitMark Wallace
 
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...William Holmes
 
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...William Holmes
 
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections Communities
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections CommunitiesIBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections Communities
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections CommunitiesIBM Connections Developers
 
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...IBM Connections Developers
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorialgjuljo
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
MAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - DownloadableMAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - Downloadablepaulbastide
 
The Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevThe Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevIBM Connections Developers
 

La actualidad más candente (20)

IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
IBM Connect 2016: 1402 - Getting Technically Cozy with IBM Connections Cloud ...
 
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By ExampleIBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example
IBM Connect 2014 - AD204: What's new in the IBM Domino Objects: By Example
 
Social Enabler for XPages
Social Enabler for XPagesSocial Enabler for XPages
Social Enabler for XPages
 
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...
IBM Connect 2014 - AD206 - Build Apps Rapidly by Leveraging Services from IBM...
 
BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...
 
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...
Tip from ConnectED 2015: An intro to IBM Security Directory Integrator for IB...
 
What is new in IBM Connections 5.5 and IBM Docs 2.0
What is new in IBM Connections 5.5 and IBM Docs 2.0What is new in IBM Connections 5.5 and IBM Docs 2.0
What is new in IBM Connections 5.5 and IBM Docs 2.0
 
IBM Lotus Notes Domino Blog Template Update 8.01
IBM Lotus Notes Domino Blog Template Update 8.01IBM Lotus Notes Domino Blog Template Update 8.01
IBM Lotus Notes Domino Blog Template Update 8.01
 
Application Development for IBM Connections with IBM Bluemix
Application Development  for IBM Connections with IBM BluemixApplication Development  for IBM Connections with IBM Bluemix
Application Development for IBM Connections with IBM Bluemix
 
IBM Connections Cloud Administration
IBM Connections Cloud AdministrationIBM Connections Cloud Administration
IBM Connections Cloud Administration
 
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...
Business Partner Day 406 - Ignite your IBM SmartCloud for Social Business Int...
 
AD301: What's New in the IBM Social Business Toolkit
AD301: What's New in the IBM Social Business ToolkitAD301: What's New in the IBM Social Business Toolkit
AD301: What's New in the IBM Social Business Toolkit
 
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
 
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
 
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections Communities
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections CommunitiesIBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections Communities
IBM Connect 2014 - AD302: New Ways to Work With Your IBM Connections Communities
 
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...
Programmatic Access to and Extensibility of the IBM SmartCloud for Social Bus...
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorial
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
MAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - DownloadableMAS202 - Customizing IBM Connections - Downloadable
MAS202 - Customizing IBM Connections - Downloadable
 
The Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevThe Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App Dev
 

Destacado

API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...TIMETOACT GROUP
 
XCC 12.0 - Documentation
XCC 12.0 - DocumentationXCC 12.0 - Documentation
XCC 12.0 - DocumentationTIMETOACT GROUP
 
XCC Cloud for IBM Connections Cloud
XCC Cloud for IBM Connections Cloud XCC Cloud for IBM Connections Cloud
XCC Cloud for IBM Connections Cloud TIMETOACT GROUP
 
What's New in XCC 12 - Release
What's New in XCC 12 - ReleaseWhat's New in XCC 12 - Release
What's New in XCC 12 - ReleaseTIMETOACT GROUP
 
IBM Digital Workplace Hub - Official Booklet
IBM Digital Workplace Hub - Official BookletIBM Digital Workplace Hub - Official Booklet
IBM Digital Workplace Hub - Official BookletTIMETOACT GROUP
 
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...TIMETOACT GROUP
 
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...TIMETOACT GROUP
 
XCC & IBM Connections 6
XCC & IBM Connections 6 XCC & IBM Connections 6
XCC & IBM Connections 6 TIMETOACT GROUP
 

Destacado (8)

API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
API & Custom Widgets coming in XCC next - Web Content and Custom App Extensio...
 
XCC 12.0 - Documentation
XCC 12.0 - DocumentationXCC 12.0 - Documentation
XCC 12.0 - Documentation
 
XCC Cloud for IBM Connections Cloud
XCC Cloud for IBM Connections Cloud XCC Cloud for IBM Connections Cloud
XCC Cloud for IBM Connections Cloud
 
What's New in XCC 12 - Release
What's New in XCC 12 - ReleaseWhat's New in XCC 12 - Release
What's New in XCC 12 - Release
 
IBM Digital Workplace Hub - Official Booklet
IBM Digital Workplace Hub - Official BookletIBM Digital Workplace Hub - Official Booklet
IBM Digital Workplace Hub - Official Booklet
 
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...
IBM Digital Workplace Hub with IBM Connections & TIMETOACT's XCC - Web Conten...
 
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...24 Ways to Enhance IBM Connections with XCC – Web Content  & Custom Apps Exte...
24 Ways to Enhance IBM Connections with XCC – Web Content & Custom Apps Exte...
 
XCC & IBM Connections 6
XCC & IBM Connections 6 XCC & IBM Connections 6
XCC & IBM Connections 6
 

Similar a BP207 - Easy as pie creating widgets for ibm connections

Easy as pie creating widgets for ibm connections
Easy as pie   creating widgets for ibm connectionsEasy as pie   creating widgets for ibm connections
Easy as pie creating widgets for ibm connectionsLetsConnect
 
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0sieverssj
 
JMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialJMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialRyan Baxter
 
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...William Holmes
 
AD305: IBM Sametime iWidgets: Extending Connections' Use of Sametime
AD305: IBM Sametime iWidgets: Extending Connections' Use of SametimeAD305: IBM Sametime iWidgets: Extending Connections' Use of Sametime
AD305: IBM Sametime iWidgets: Extending Connections' Use of SametimeJason Cheung
 
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...Davalen LLC
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsnick_garrod
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT Group
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages ApplicationsNiklas Heidloff
 
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser PluginWhat's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser PluginRahul A. Garg
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentcjolif
 
Sunny Days, (Smart)Cloud-y Users
Sunny Days, (Smart)Cloud-y UsersSunny Days, (Smart)Cloud-y Users
Sunny Days, (Smart)Cloud-y UsersMitch Cohen
 
Creating a Data Driven UI Framework
Creating a Data Driven UI FrameworkCreating a Data Driven UI Framework
Creating a Data Driven UI FrameworkAnkur Bansal
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, IntegrateNiklas Heidloff
 
UI Customization in AEM 6.0
UI Customization in AEM 6.0UI Customization in AEM 6.0
UI Customization in AEM 6.0Gilles Knobloch
 
z/VM Single System Image and Live Guest Relocation Overview
z/VM Single System Image and Live Guest Relocation Overviewz/VM Single System Image and Live Guest Relocation Overview
z/VM Single System Image and Live Guest Relocation OverviewIBM India Smarter Computing
 
Mobilefirst - Build Enterprise Class Apps for Mobile First
Mobilefirst - Build Enterprise Class Apps for Mobile First Mobilefirst - Build Enterprise Class Apps for Mobile First
Mobilefirst - Build Enterprise Class Apps for Mobile First Sanjeev Kumar
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetJoseph Labrecque
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 

Similar a BP207 - Easy as pie creating widgets for ibm connections (20)

Easy as pie creating widgets for ibm connections
Easy as pie   creating widgets for ibm connectionsEasy as pie   creating widgets for ibm connections
Easy as pie creating widgets for ibm connections
 
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0
Show110 - Make your business Open and Social using IBM Notes Social Edition 9.0
 
JMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialJMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocial
 
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
IBM Lotusphere 2013 AD109: Using the IBM® Sametime® Proxy SDK: WebSphere Port...
 
AD305: IBM Sametime iWidgets: Extending Connections' Use of Sametime
AD305: IBM Sametime iWidgets: Extending Connections' Use of SametimeAD305: IBM Sametime iWidgets: Extending Connections' Use of Sametime
AD305: IBM Sametime iWidgets: Extending Connections' Use of Sametime
 
AD305:
AD305: AD305:
AD305:
 
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...
Have your Dojo and eat it too! A Technical Presentations from the 2012 IBM Ex...
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid apps
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages Applications
 
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser PluginWhat's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
What's New in IBM iNotes 9.0 Social Edition & IBM Notes Browser Plugin
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo component
 
Sunny Days, (Smart)Cloud-y Users
Sunny Days, (Smart)Cloud-y UsersSunny Days, (Smart)Cloud-y Users
Sunny Days, (Smart)Cloud-y Users
 
Creating a Data Driven UI Framework
Creating a Data Driven UI FrameworkCreating a Data Driven UI Framework
Creating a Data Driven UI Framework
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
 
UI Customization in AEM 6.0
UI Customization in AEM 6.0UI Customization in AEM 6.0
UI Customization in AEM 6.0
 
z/VM Single System Image and Live Guest Relocation Overview
z/VM Single System Image and Live Guest Relocation Overviewz/VM Single System Image and Live Guest Relocation Overview
z/VM Single System Image and Live Guest Relocation Overview
 
Mobilefirst - Build Enterprise Class Apps for Mobile First
Mobilefirst - Build Enterprise Class Apps for Mobile First Mobilefirst - Build Enterprise Class Apps for Mobile First
Mobilefirst - Build Enterprise Class Apps for Mobile First
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 

Más de Mikkel Flindt Heisterberg

Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedMikkel Flindt Heisterberg
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...Mikkel Flindt Heisterberg
 
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORMThere’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORMMikkel Flindt Heisterberg
 
Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...Mikkel Flindt Heisterberg
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamMikkel Flindt Heisterberg
 
Creating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy wayCreating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy wayMikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Mikkel Flindt Heisterberg
 
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)Mikkel Flindt Heisterberg
 

Más de Mikkel Flindt Heisterberg (16)

An Introduction to Lightning Web Components
An Introduction to Lightning Web ComponentsAn Introduction to Lightning Web Components
An Introduction to Lightning Web Components
 
Introduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learnedIntroduction to OAuth 2.0 - the technology you need but never really learned
Introduction to OAuth 2.0 - the technology you need but never really learned
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...BP205: There’s an API for that! Why and how to build on the IBM Connections P...
BP205: There’s an API for that! Why and how to build on the IBM Connections P...
 
IBM Connections 5 Gæstemodel
IBM Connections 5 GæstemodelIBM Connections 5 Gæstemodel
IBM Connections 5 Gæstemodel
 
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORMThere’s an API for that! Why and how to build on the IBM Connections PLATFORM
There’s an API for that! Why and how to build on the IBM Connections PLATFORM
 
Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...Social Connections VI Prague - An introduction to ibm connections as an appde...
Social Connections VI Prague - An introduction to ibm connections as an appde...
 
An Introduction to Working With the Activity Stream
An Introduction to Working With the Activity StreamAn Introduction to Working With the Activity Stream
An Introduction to Working With the Activity Stream
 
Creating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy wayCreating a keystore for plugin signing the easy way
Creating a keystore for plugin signing the easy way
 
OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011OnTime Partner Webinar September 2011
OnTime Partner Webinar September 2011
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
 
Lotusphere Comes To You 2011
Lotusphere Comes To You 2011Lotusphere Comes To You 2011
Lotusphere Comes To You 2011
 
Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011Lotus Community Call - 22 March 2011
Lotus Community Call - 22 March 2011
 
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)
 
Lotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For DummiesLotus Notes Plugin Installation For Dummies
Lotus Notes Plugin Installation For Dummies
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

BP207 - Easy as pie creating widgets for ibm connections

  • 1. BP207 Easy As Pie - Creating Widgets for IBM Connections Mikkel Flindt Heisterberg Senior Solution Architect | IntraVision © 2012 IBM Corporation
  • 2. Legal disclaimer © IBM Corporation 2012. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication 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. 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. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. 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. Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. 2 | © 2012 IBM Corporation
  • 3. About me  With IntraVision (makers of the OnTime® suite of calendar and meeting management products – showcase booth 515), Premier Business Partner from Denmark  Been working with IBM Lotus® technologies since he was a young boy  Recently named an IBM Champion for IBM Collaboration Solutions (ICS)  An all together nice guy!  http://twitter.com/lekkim  http://lekkimworld.com 3 | © 2012 IBM Corporation
  • 4. Agenda  A bit on IBM Connections architecture and the infrastructure for widgets i.e. configuration files etc.  Introduction to iWidgets – configure, develop and deploy  Resources and summary  Q&A 4 | © 2012 IBM Corporation
  • 5. IBM Connections architecture 5 | © 2012 IBM Corporation
  • 6. Widgets in IBM Connections  Most functionality in IBM Connections is actually widgets  You may add widgets in Profiles, Communities and Homepage  Widgets are made up of two parts ─ Widget configuration on the IBM Connections server ─ The actual widget written to the iWidget specification (JavaScript / XML / HTML / CSS) 6 | © 2012 IBM Corporation
  • 7. Widgets in IBM Connections  You may add widgets in Profiles, Communities and Homepage  Most functionality in these features is actually widgets  Widgets are made up of two parts ─ Widget configuration on the IBM Connections server ─ The actual widget written to the iWidget specification (JavaScript / XML / CSS) 7 | © 2012 IBM Corporation
  • 8. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed Added by the community Added by administrator owner View mode 8 | © 2012 IBM Corporation
  • 9. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed Fullpage mode 9 | © 2012 IBM Corporation
  • 10. Widget modes  There are a number of modes defined (view, edit, fullpage, search) but not all modes are supported in all features (fullpage and search only in Communities)  Widgets may contribute multiple modes  Administrator may choose to use some and not all modes contributed Search mode 10 | © 2012 IBM Corporation
  • 11. Widget configuration in widgets-config.xml (unless using extreme care) 11 | © 2012 IBM Corporation
  • 12. Widget attributes makes the widget configurable  It doesn't make sense to hard code or at least not supply sensible defaults and widget attributes can be used for configuration  String key/value pairs may be supplied – interpretation of the value is up to the widget though  Some values cannot be specified in widgets-config.xml as they may change based on IBM Connections configuration (such as context root i.e. “/dogear” / “/bookmarks”) or the ID of the active profile / community  Special values are enclosed in curly braces – i.e. ─ {resourceId} profileKey of current Profiles user or communityUnid if in Communities ─ {contextRoot} Context root of the current feature (i.e. “/profiles”) 12 | © 2012 IBM Corporation
  • 13. Widget attributes makes the widget configurable (2) 13 | © 2012 IBM Corporation
  • 14. Say hello to iWidgets  In IBM Connections 3 the widgets are iWidgets which means that they are written to the iWidget specification  Widgets are described by a widget descriptor (referenced in widgets-config.xml) and optionally JavaScript to provide dynamic behavior and, also optionally, CSS to style the contents  The widget descriptor describes supported modes, startup mode, “iScope class” (more in a bit) and, optionally, which resources to load  Static widget content for each mode may also be supplied 14 | © 2012 IBM Corporation
  • 15. Widget descriptor – more in depth 15 | © 2012 IBM Corporation
  • 16. Widget descriptor – more in depth 16 | © 2012 IBM Corporation
  • 17. Widget descriptor – more in depth 17 | © 2012 IBM Corporation
  • 18. Widget descriptor – more in depth 18 | © 2012 IBM Corporation
  • 19. Widget descriptor – more in depth 19 | © 2012 IBM Corporation
  • 20. Widget descriptor – more in depth 20 | © 2012 IBM Corporation
  • 21. iScope class ● Access to dojo version 1.4.1 (highly customized for IBM Connections) ● You do not have to use dojo to declare the class... 21 | © 2012 IBM Corporation
  • 22. iContext  An iContext instance is automatically set into the iScope class  The iContext provides access to the widget markup (e.g. root element), I/O related functions (i.e. URL rewriting), widget attributes etc.  The iContext is easily accessed from the iScope class using this.iContext  Important functions include: ─ iContext.getRootElement() : DOM Element ─ iContext.getElementById(id:string) : DOM Element ─ iContext.getiWidgetAttributes() : ItemSet ─ iContext.getUserProfile() : ItemSet ─ iContext.io.rewriteURI(uri:string) : string ─ iContext.iEvents.fireEvent(name:string, type:string, payload:object)  You retrieve information from an ItemSet using getItemValue(name:string) 22 | © 2012 IBM Corporation
  • 23. Using iContext 23 | © 2012 IBM Corporation
  • 24. Using iEvents 24 | © 2012 IBM Corporation
  • 25. Keeping context  JavaScript is single threaded - all requests for web resources are done after the current method completes  The callback is done with another context i.e. “this” will refer to something else than your iScope class  Solution is to ─ use closures i.e. save a reference to “this” before the call ─ use dojo.hitch and have dojo apply the correct context 25 | © 2012 IBM Corporation
  • 26. Keeping context  JavaScript is single threaded - all requests for web resources are done after the current method completes  The callback is done with another context i.e. “this” will refer to something else than your iScope class  Solution is to ─ use closures i.e. save a reference to “this” before the call ─ use dojo.hitch and have dojo apply the correct context 26 | © 2012 IBM Corporation
  • 27. Keeping context  JavaScript is single threaded - all requests for web resources are done after the current method completes  The callback is done with another context i.e. “this” will refer to something else than your iScope class  Solution is to ─ use closures i.e. save a reference to “this” before the call ─ use dojo.hitch and have dojo apply the correct context 27 | © 2012 IBM Corporation
  • 28. What's your origin?  In browsers we have what's called the “Same Origin Policy”  JavaScript running the the browser may only do XHR's against the same server it was loaded from  Same server means ─ Same hostname / IP ─ Same port number  To work around this we use an AJAX proxy  IBM Connections supplies us with a proxy which is easy to use from your widget code 28 | © 2012 IBM Corporation
  • 29. Using the AJAX proxy If running in Profiles the proxy will be http://<host>/profiles/ajaxProxy Above request will be http://<host>/profiles/ajaxProxy/http/www.google.com/search?q=Lotusphere 29 | © 2012 IBM Corporation
  • 30. IBM Connections AJAX proxy is used for all requests  Easy to see if using Firebug to trace  AJAX proxy used for all requests even though widget descriptor and required JavaScript files are fully qualified and from same hostname / port combination 30 | © 2012 IBM Corporation
  • 31. Proxy security  For security access through the proxy is disallowed by default  You have to allow access on a per hostname and method type (GET, POST, DELETE etc.) basis (or open for all hostnames / methods although not recommended)  Do remember to allow access for LtpaToken cookies if authentication should be propagated (unless using extreme care)  Proxy configuration done in proxy-config.tpl on the IBM Connections server 31 | © 2012 IBM Corporation
  • 32. Using Connections provide a very comprehensive REST API based on the  IBM the IBM Connections REST API AtomPub standard  Each feature has full documentation on how to access data using the API in the InfoCenter / wiki – unfortunately examples are hard to come by  Since these requests probably go to the IBM Connections server they may not need to be proxied (unless features are on separate servers) ─ Remember to always use widget attributes (e.g. {profilesSvcRef}) to get URL to the Profiles feature unless you are willing to guess / hardcode  Using the lconn.core.xpath and lconn.core.xslt classes can help you work with the XML based results ─ Loaded by default by the IBM Connections pages ─ Probably not supported neither officially or unofficially... :-)  Most important functions: ─ lconn.core.xpath.selectNodes(xpath:string, xmldoc:XMLDocument, ns:array) : Nodelist ─ lconn.core.xslt.loadXml(url:string) : XMLDocument 32 | © 2012 IBM Corporation
  • 33. IBM Connections REST API example 33 | © 2012 IBM Corporation
  • 34. Widget title, i18n and resources  Unfortunately setting the title of your widget isn't as easy as one could have hoped :-(  Setting the title can be done in one of two ways (well three actually): 1) Using general IBM Connections strings properties file – this one is easy and only require creating / changing one file 2) Using custom properties file – this one is clean as you don't depend on others files but it does also require change to LotusConnections- config.xml ● Title is set as the value for a property where the key is the widget id from widgets-config.xml ● String resources – e.g. translation – can be done using same approach OnTime=Calendar by OnTime 34 | © 2012 IBM Corporation
  • 35. Widget title, i18n and resources example 35 | © 2012 IBM Corporation
  • 36. Reading i18n strings from your bundle 36 | © 2012 IBM Corporation
  • 37. Caveats  Editing configuration files by hand is prone to error ─ IBM would tell you always use checkin/checkout via wsadmin as it does a schema check :-)  Widgets are running in a shared environment ─ Make sure your CSS classes do not clash ─ Make sure ID's are unique by prefixing something unique to them as there may be multiple instances of the same widget on the page (it follows from this that you cannot use ID's for CSS selectors)  Because you have access to the entire page doesn't mean that you should...  Never, never, never, never ever add something like the following to your stylesheet – you may need it but the page as a whole will start to look funny... * {font-size: 7pt; color: red; overflow: hidden}  Start small... 37 | © 2012 IBM Corporation
  • 38. Things I would have hoped someone had told me...  Dojo is nasty to troubleshoot due to async loading – all errors seem to come from dojo.js which is almost never the culprit  Logging is really your friend but do add something that indicates which piece of code is logging ─ console.log, console.trace, console.debug, console.info, console.warn, console.error  How to show a lightbox 38 | © 2012 IBM Corporation
  • 39. Things I would have hoped someone had told me...  Dojo is nasty to troubleshoot due to async loading – all errors seem to come from dojo.js which is almost never the culprit  Logging is really your friend but do add something that indicates which piece of code is logging ─ console.log, console.trace, console.debug, console.info, console.warn, console.error  How to show a lightbox 39 | © 2012 IBM Corporation
  • 40. Things I would have hoped someone had told me...  Network latency kills web application performance – cache as such as possible and combine multiple files into one minified version  Repeat after me: “Latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency, latency..... 40 | © 2012 IBM Corporation
  • 41. Summary  Most functionality in IBM Connections is actually widgets and you can add your own  Bringing your applications into IBM Connections and thus providing in-context access is very valuable  Widgets are quite easy to develop using JavaScript and CSS although you must know about asynchronous JavaScript  Dojo makes it easy to keep context and it's already loaded  iWidgets, iScope, iContext, iEvents...  Use asynchronous calls to keep UI snappy and use dojo.hitch to keep context  Start small and build from there  Happy coding!! 41 | © 2012 IBM Corporation
  • 42. Related sessions  BP121: Performance Programming  AD201: Integrate and Customize IBM Connections 3.0.1  AD203: Developing Custom Client Applications using the IBM Connections APIs  AD204: Mastering the Art of Social Application Development 42 | © 2012 IBM Corporation
  • 43. The shameless plug... Social Application Throwdown Where: Dolphin, Northern Hemisphere A-C Time: 5.30pm – 6.30pm Featuring yours truly (and 5 other business partners...) 43 | © 2012 IBM Corporation
  • 44. Resources  iWidget specification: http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/iwidget- spec-v1.0.pdf/$file/iwidget-spec-v1.0.pdf  IBM Connections iWidget Development Guide: www- 10.lotus.com/ldd/lcwiki.nsf/dx/development-guide  iWidget support in Homepage: http://www- 10.lotus.com/ldd/lcwiki.nsf/dx/07072009105437%D8%B5WEBKH7.htm  iWidget support in profiles and Communities: http://www- 10.lotus.com/ldd/lcwiki.nsf/dx/10082009050455WEBCNM.htm  Common iWidget support in Connections: http://www- 10.lotus.com/ldd/lcwiki.nsf/dx/common-iwidget-support-in-the-lotus- connections-features  In all modesty my blog – http://lekkimworld.com 44 | © 2012 IBM Corporation
  • 45. Q&A  But?, How?, Doesn't that mean...  Give it to me! (or come talk to me after the session or find me in the hallways...)  Twitter: @lekkim Email: mh@intravision.dk Blog: http://lekkimworld.com  Slides will be at http://lekkimworld.com/lotusphere2012 45 | © 2012 IBM Corporation