Skip navigation

When people think about Jive, they usually think "exceptional collaboration platform", "secure and scalable cloud architecture" or even "amazing user experience".  What might not come to mind is "open source advocate".  Not only does Jive leverage many open source technologies in its products, but it also spends time giving back to these projects and more to improve the technology for everyone.  Given that this is a large part of Jive's cultural DNA, we felt it was time to shed some light on the Jivers who give back to the open source community.  After all there is a reason our Jive SDK used to build integrations with Jive is available in open source (and actively taking pull requests)!


But without further ado, let's get to our first 2014 Jive in Open Source spotlight ... jQuery Mobile!

jquery-mobile.png

  • jQuery Mobile is an HTML5 library that sits on top of jQuery to provide a touch friendly UI.
  • It aims at writing one code base that will look good on every display size using responsive design concepts. 
  • It is based on progressive enhancement which will allow you to have one codebase running on any device, including feature phones
  • It is not a responsive framework but does have some responsive components.
  • It allows the user to have only one HTML document containing several end-user pages which is ideal for mobile since it limits the number of HTTP requests for presentation data.



Screen Shot 2014-01-29 at 12.57.29 PM.png

Jive Contributors

Ghislain Seguin is a father of two beautiful girls 2 and 4. He’s been Jiving since May 2011 and joined the jQuery Mobile team in June 2011. He works on the Jive Mobile web application which of course is built on top of jQuery Mobile. His day to day tasks at Jive are to provide great user experiences for our external communities users. At the jQuery Foundation he is involved with the release process, continuous integration and testing of jQuery Mobile.

 

jQuery Mobile was the first project of the jQuery family to implement AMD, a way to modularize JavaScript code. Thanks to this modularization the jQuery Mobile team was able to offer to their users a custom builder which allows them to tailor a build of jQuery Mobile. Ghislain implemented this end to end: from the modularization to the node.js backend service that builds custom builds and serves them to users.  Recently, he has been more involved with the infrastructure, release engineering and quality sides of the project. His most recent achievement was to implement code coverage using grunt-qunit-istanbul and reporting through http://coveralls.io

 

Through the use of better testing tools and processes, jQuery Mobile can do more with less while keeping quality controls in check!

 

screen568x568.jpeg.jpg

What Does It Bring To Jive

When Ghislain join the jQuery Mobile team, it was in the really early stage. They had a lot of issues. The great advantage of having a jQuery Mobile committer in the Jive Mobile team was that he could address the issues directly upstream instead of having to fork the project. This avoided what a lot of companies (who don’t contribute back to open source) call the upgrade nightmare, which involves re-patching new versions with custom patches to not lose customizations.  This process can take days, sometimes weeks, when upgrading to the latest version of an open source project depending on the depth of customizations employed.

 

As with many open source projects, the jQuery Mobile team gets exposed really early to new technologies. This in turn benefits the Jive Mobile product as it is constantly ahead in terms of technology. Jive Mobile was the first adopter of PhantomJS for headless JavaScript testing. Same goes for AMD, unit testing, grunt and so on.

 

On behalf of the Jive Community and technologists everywhere, I wish to say Thank You to Ghislain and his colleagues on the jQuery Mobile team for their efforts to raise the bar for mobility solutions for everyone!

 

If you have questions about jQuery Mobile, or even are interested to contribute to this project, feel free to reach out to Ghislain Seguin via the comments below.  Ghislain will also be attending the upcoming jQuery Conference on February 12 - 13 in San Diego.  We cant wait to see what new technologies and ideas he brings back!


For more information on jQuery Mobile, please visit:

Resources | jQuery Mobile

jQuery Foundation

Cube_Platform_LARGE.png

For those of you who haven't noticed, we recently launched a new program in the Developer community,

Announcing the 2013-14 Jive Developer Program

 

As part of this program, Jive is growing our Developer eco-system to spread the word about building solutions and integrating with Jive.  Part of that growth is to recognize and distinguish developers for skills they possess on the Jive Platform.  The first badge in this recognition program is the Jive Platform badge.

 

What is the Jive Platform Developer Skill Badge

At its core, this badge represents a person's understanding of how to build integrations with Jive.  This includes not only demonstrating a clear understanding of Jive as a collaboration platform, but also a high-level understanding of each Jive integration pattern and when to employ them to achieve success.

 

Earning more skill badges and being active in the Jive Developer Community are ways you can level-up your reputation in the Developer community and win prizes in the 2013-14 Jive Developer Program

 

How to earn the Jive Platform Developer Skill Badge

To earn this badge, you can do one of two tasks:

  • Write a blog post in the Developer community that talks about an integration you are considering building.  In this blog post, be sure to mention:
    • What role(s) does Jive play in the integration? (required)
    • What role(s) does (REMOTE SYSTEM) play in the integration? (required)
    • What integration patterns do you plan to build and what will they do at a high-level? (i.e. tiles, apps, esf, cartridges, etc...) (required)
      • How do they work together? (if, applicable)
    • Share any screenshots/mockups that help support what you want to build (optional)
  • Alternatively, if you are not the blogging sort, work with Mark Weitzel or myself offline to privately discuss your integration story.

 

Finding Community Members Who Can Help

With each of these blog posts introducing various skills, we will highlight some community members that have already earned this badge and would be great people to reach out to help you in the community should you have any questions! They are all just an @mention away!  But as always, myself and Mark Weitzel are always here to help!

 

profile-image-display.jspa?imageID=21275&size=165

Mark Weitzel

Jive

profile-image-display.jspa?imageID=17435&size=165

Nils Heuer

Pokeshot

profile-image-display.jspa?imageID=9943&size=165

Aaron Walker

7Summits

profile-image-display.jspa?imageID=20541&size=165

Ryan Rutan

Jive

profile-image-display.jspa?imageID=8791&size=165

Marc Rudkowski

Fidelity Investments

profile-image-display.jspa?imageID=19658&size=165

Stephan Leuendorff

Pokeshot

profile-image-display.jspa?imageID=15938&size=165

Brian Welter

7Summits

profile-image-display.jspa?imageID=17103&size=165

Brian Shoemaker

Thomson Reuters

profile-image-display.jspa?imageID=18155&size=165

Craig McClanahan

Jive

profile-image-display.jspa?imageID=12092&size=165

Creighton Medley

Lexmark

profile-image-display.jspa?imageID=18367&size=165

Paul Gueller

7Summits

profile-image-display.jspa?imageID=18448&size=165

Aron Racho

Jive

Are you interested in joining the ranks of Jive Developers?  Interested in learning more about all the integration offerings available in Jive?  Or perhaps, you are just interested in the chance to tech talk and win prizes in the 2013-14 Jive Developer Program?  Either way, reach out  and let us know how you see your Jive integrations working, and let's build something great together!

Compared to my previous post this will be a short tutorial. The issue here is editing content. When you load a content object the text is formatted for display, with tappable areas containing extra information. Unfortunately this extra information is problematic when submitting edited content. So now we are adding methods to reload the content with the text formatted for editing. These methods are also used to lock the content so multiple people can't edit at the same time.

 

Before we look at the new methods, lets look at the changes to the content classes.

In JiveContentBody there is a new property: editableValue. This shows which type of formatting the text is using. YES for simple html tags suitable for editing and NO for the more complex html tags suitable for interactive display.

In JiveDocument there is a new property: editingBy. This shows who currently has the document locked for editing, if anyone. This is intended to be used as a quick check of lock ownership before you try to use any of the new apis. But this is time sensitive information. If you display a lock symbol on the content be sure to periodically update the content to maintain the validity of the lock display.

 

So what are the new methods?

In JivePlatformVersion there is a new version check method:

- (BOOL)supportsContentEditingAPI;

 

In Jive there are 4 new methods:

- (void) getEditableContent:(JiveContent *)content withOptions:(JiveReturnFieldsRequestOptions *)options onComplete:(JiveContentCompleteBlock)complete onError:(JiveErrorBlock)error;

- (void) lockContentForEditing:(JiveContent *)content withOptions:(JiveReturnFieldsRequestOptions *)options onComplete:(JiveContentCompleteBlock)complete onError:(JiveErrorBlock)error;

- (void) saveContentWhileEditing:(JiveContent *)content withOptions:(JiveMinorCommentRequestOptions *)options onComplete:(JiveContentCompleteBlock)complete onError:(JiveErrorBlock)error;

- (void) unlockContent:(JiveContent *)content onComplete:(JiveCompletedBlock)complete onError:(JiveErrorBlock)error;


The getEditableContent method gets the editable text without setting the lock.

The lockContentForEditing method returns the editable text and sets the lock. This method is reentrant, allowing you to reset the lock on the server. Be sure to do this periodically as the server does have a timeout.

The saveContentWhileEditing method publishes the content while continuing to edit. When used with the draft flag this can be used to implement an autosave feature.

The unlockContent method releases the lock, effectively canceling the edit session.

 

All of these methods will return an error if someone else is editing the content. But they will not prevent the same user from editing the content using 2 different programs. In this case the final edit will "win".

 

But wait, these methods either cancel the edit or continue editing. How do I publish my changes?

Using the existing updateContent methods. They have been updated to release the lock, if present, as part of the publish process.

 

Currently only JiveDocument supports locking, so why should I use the locking methods for other content types?

For forward compatibility. Just because document is the only content type that currently supports locking doesn't mean we won't add it to other types in the future.

 

So what is the flow for editing?

Editing API flow.gif

 

You say the display html has extra stuff in it compared to the editing html. Can you give me an example?

Display HTML

Editable HTML

<body><!-- [DocumentBodyStart:c4282aa4-ff2d-4941-9e7a-50618c508ce3] --><div class="jive-rendered-content"><p>just some text</p></div><!-- [DocumentBodyEnd:c4282aa4-ff2d-4941-9e7a-50618c508ce3] --></body><body><p>just some text</p></body>

If it is that different for a single line of text, imagine what it looks like with links and images.

hero-small.png

producteev-developers.png

About 4 months ago, the Producteev Team announced the release of their new RESTful APIs.  To celebrate this event, we decided to setup a developer challenge to see who could make the best Producteev integration by the end of 2013.  The winner(s) would receive a brand new iPad Mini and promotion in the Jive Developer community.

 

During this challenge, we had numerous amazing conversations about how Producteev could complement both personal and enterprise applications, and while not all of them came to fruition we had some great submissions and most importantly ... we have a winner!

 

And the winner is ...

 

profile-image-display.jspa?imageID=20915&size=350

ProducteevGoogle

by: William Cheung

 

Tasks and Calendars should work better together, this integration made it happen, and we expect this to grow into a full 2-way sync between GCal and Producteev in the long run so more users could benefit from it.

Images

Screen Shot 2014-01-23 at 1.58.38 PM.png Screen Shot 2014-01-23 at 1.59.02 PM.png

 

As in most competitions, it's hard to choose the best, but we wanted to highlight another fantastic submission that we think shows a lot of promise, and hope to hear more from in the coming months.

 

 

USync

by Matúš Michalov of Gassumo Limited

 

Really powerful sync mechanism between Producteev and Microsoft Office365


 

 

dev-exp-producteev.png

Next Steps

First up, we'll be sending wcheung his iPad Mini and awarding Producteev badges (left) to those who participated in the 2013 Producteev Developer Challenge.  Stay tuned to the Jive Developer and Producteev Developers communities to learn more about how you can leverage both Jive and Producteev to build bigger and better solutions. 


Dont forget to check out the 2013-14 Jive Developer Program to learn how to win big by integrating with Jive and Producteev!

developer-level-0.png

Calling all developers, architects and information technology enthusiasts!

We all know that Jive is the best social business platform on the planet and today, we are incredibly excited to announce the 2013 - 14 Jive Developer Program. The goal of this program is to get you building amazing technical solutions that solve your real world business problems faster by building your skills, learning from other developers, and sharing your success.  Together, we will spread the word about all the developer awesomeness that is in the Jive platform.

 

What is the Jive Developer Program

The Jive Developer Program (JDP) is designed to recognize and promote development mastery on the Jive platform.  Each year, the JDP runs from July 1st to June 30th, and the program and requirements each year will vary based on the latest Jive technologies.  Participants join conversations in the Developer community, earn skill badges, learn best practices and win entries into the annual drawing for cool techie prizes.

 

Grow Your Skills

In Jive 7, we've opened up the platform in new and exciting ways. We now have Tiles, Web Hooks, a complete mobile SDK, Jive Anywhere cartridges, and much more! There's a lot to learn! Knowing the right technique to use when integrating with Jive is important, and to help you understand and gain proficiency with each, and to make learning about them more fun and entertaining, we're introducing a set of skill badges in the Jive Community.  Each badge represents an integration pattern/feature that is available for developers to create integrated solutions with the Jive platform.

Cube_Platform_MED.pngCube_Tiles_MED.pngCube_Apps_MED.pngCube_REST_MED.pngCube_Cartridges_MED.pngCube_ESF_MED.pngCube_Mobile_MED.pngdev-exp-analytics.pngdev-exp-producteev.png

Jive Platform - Demonstrate understanding of how to apply the Jive development platform to solve real business challenges

Tiles, Streams & Templates - Demonstrate understanding, application and best practices with Tiles, Streams and Templates in a Jive Add-On

Apps - Demonstrate understanding, application and best practices with Apps in a Jive Add-On

Rest & Webhooks - Demonstrate understanding, application and best practices with REST & Webhooks in a Jive Add-On

Cartridges - Demonstrate understanding, application and best practices with Jive Anywhere & Cartridges in a Jive Add-On

External Storage Framework - Demonstrate understanding, application and best practices with ESF in a Jive Add-On

Mobile - Demonstrate understanding, application and best practices with the Jive iOS SDK

Analytics - Demonstrate understanding, application and best practices with Analytics in a Jive Add-On

Producteev - Demonstrate understanding, application and best practices with Producteev by Jive through an integration

 

How to Earn a Skill Badge

  • Leverage one of the above skills in create a working project / prototype.
  • Write a blog post in the Developer blog describing the skill, your problem and solution.
    • Recommendation:  Provide screenshots, videos, code snippets, attachments and/or upload your projects working code to Github to support your story.
    • Alternatively:  Speaking at conferences (such as JiveWorld or other industry conferences) and/or during reference calls about your integration work can also be used to earn your badge(s)
    • For any questions about format, content or applicability, please reach out to Ryan Rutan and/or Mark Weitzel via status update or discussion in the Developer community to start the conversation
  • Once published / confirmed, your skill badge will be awarded in the JC.

 

Jive Developer Status Levels

What's better than winning a bunch of badges?  How about winning even more?  In this case, we have 4 more badges to be won that represent a developer's status in the Developer community.  Each level comes with its own set of requirements and perks, but each one of them recognize

 

developer-level-0.pngdeveloper-level-1.pngdeveloper-level-2.pngdeveloper-level-3.png

CRITERIA

CRITERIA

CRITERIA

CRITERIA

BENEFITS

BENEFITS

  • 5 entries into the Annual Jive Developer Drawing
  • Access to the Jive Cloud GA Developer Sandbox
  • Access to the Jive Cloud TRUNK Developer Sandbox
  • JiveWorld14 Discount

BENEFITS

  • 10 entries into the Annual Jive Developer Drawing
  • Access to the Jive Cloud GA Developer Sandbox
  • Access to the Jive Cloud TRUNK Developer Sandbox
  • JiveWorld14 Discount
  • JiveWorld14 VIP Developer Event w/Jive Engineering

BENEFITS

  • 25 entries into the Annual Jive Developer Drawing
  • Access to the Jive Cloud GA Developer Sandbox
  • Access to the Jive Cloud TRUNK Developer Sandbox
  • JiveWorld14 Discount
  • JiveWorld14 VIP Developer Event w/Jive Engineering

 

raspberry-pi-logo.png

The Icing on the Cake

Every geek loves stuff. As an extra "thank you" to everyone for their dedication, hard work, and sharing their knowledge with the community, we're going to hold an annual drawing for "geek stuff" -- think geek, Raspberry Pi, iPads® and other killer stuff. At the end of each program year (i.e. July), we will hold a random drawing for prizes to be determined each year.  Prizes will be announced no later than March of the program year.  Winning is simple.  Have your entry drawn at random, and win the associated prize.   Each year, we will look to the community to help influence the quality, quantity and variety of prizes we distribute.  For further questions/suggestions on this topic, please contact Ryan Rutan

 

What's Next

In addition, we will be ratcheting up our cadence to produce even more example programs, best practices and documentation.  If there are specific areas of focus you'd like us to address, please take a moment and share your thoughts (below), and we will prioritize these suggestions accordingly (where possible).

 

Each status-level is enabled in the Jive community, as are the developer skill badges ... so the time starts now.  Start looking for questions to answer in the Developer community, or ask some questions yourself.  Keep an eye out on the Developer community for announcements about upcoming Developer Webinars, as well as new examples.

 

Are you ready to become a Jive Developer Master? If so, then let the games begin!

Filter Blog