On his blog, Lithium's own Santthosh Selvadurai describes using deferred update with local storage in AngularJS.
Find out more about how he's been exploring delivering a responsive UI experience, particularly for mobile, and get hands on with the working prototype.
... View more
We're excited to share some of our engineering experiences working with multiple technologies.
Today, Sheetal Kakkad from the Lithium Social Web engineering team writes about using Redis, and some of the lessons learned.
In the future, we'll be spending time with other engineering teams at Lithium, highlighting which technologies we're working with and some of our experiences in creating a best of breed social customer experience platform. If you're interested in hearing about certain topics, please feel free to let us know!
... View more
Part 1 of my recent conversation with Cisco’s Joe Marcus Clarke, Distinguished Services Engineer, and Gonzalo Salgueiro, Technical Leader is available at the Lithium View’s blog. In part 2, they share even deeper insights on their work with the Lithium Platform, including what their experiences have been with Lithium’s REST API, and expand upon their remarks during their Dev Track presentation at LiNC.
Q. What are your goals this year for the Cisco Tech Zone?
Tech Zone aims to be one of the primary, trusted sources where Services engineers and, as we have noticed already, the rest of the company can go to in order to find their answers and collaborate with others on technical issues.
Our success with Tech Zone has accelerated its evolution to an important Services-wide initiative that will have business significance for not only Technical Services, but now also Advanced Services and Consulting Services organizations too. As part of this expansion in scope there are several goals that we plan to tackle over the coming year or so. These include (but are certainly not limited to):
Expanding relevance of both traditional and enterprise-type gamification
Increasing emphasis on the agility and impact of the content produced natively in Tech Zone and how it feeds our external publication process
Prioritizing the enhancement of analytics capabilities and business insight (productivity, ROI, etc.) that the platform can yield for the enterprise
Focusing on the notion of "Tech Zone Anywhere" (i.e., embeddable collaboration and content creation/re-use)
As these and other goals are carried out, they are all done under the purview of the primary goal of Tech Zone - a feature-rich personalized user experience that is seamlessly tied to the workflow and tools of our engineers.
Q. What was your process of determining what you needed to customize and where?
Customization opportunities are very simply determined by our community membership. They are our stakeholders. We have always used the motto that Tech Zone is a platform "for the engineers, by the engineers." To that end, we maintain very open lines of communication with the Tech Zone constituency and encourage them to let us know if something needs improving/fixing/adding/deleting. These open channels are further supplemented with regular sync meetings, an ideas board, program team evaluations, workflow analysis, role-specific feedback channels (i.e., moderators, Technical Content Engineers (TCE), Technical Leaders (TLs), etc.).
Lastly, we also utilize an outcome-driven approach, whereby we look at the business problem/opportunity that we want to solve (e.g., increase productivity / decrease costs, increase customer value, etc.) and develop architectures and features to address those needs.
Q. Which Lithium tools did you use, and for which purpose(s)?
We started out just using Studio and modifying the various page quilts, CSS, and wrapper. This got us pretty far. Within a day we had a look and feel we liked and some basic custom functionality. For example, one of the first things we did was to create a widget that showed both questions that had no reply and those questions that had no answer.
From there, our imaginations were truly the limit. We started to explore Endpoints as a way to consolidate REST APIs and provide more tactical and relevant interfaces to our community. We started to use jQuery AJAX functions to make RESTful calls to external APIs so that we could start to incorporate Tech Zone into other business processes and applications.
As geeks, we think one of the coolest integrations we did was add a new button to the rich text editor that allowed us to call out to an external network topology mapping tool. Once the topology was saved, a PNG of the topology was pushed back to Tech Zone via an asynchronous callback. All of this was done with Studio, a custom, invisible widget, and jQuery.
Q. For what purposes did you use Lithium's REST API? Was it a specific set of use cases? Or was there a more generic requirement?
We call APIs and Endpoints to provide a richer, custom experience within Tech Zone, and the Lithium REST API is so important to us, we allow all users to be able to use it.
We use APIs to store custom metadata in the community as well as in articles, discussions, and user settings. We use the API to render custom interfaces to show content, as well as a custom leaderboard we built using metrics that are business-relevant to us. It would probably be easier to list REST methods we haven't called since we do things from grabbing data out of the platform to build off-box reports, to creating custom thread states, to showing discussions in external platforms like Salesforce.com all using the REST APIs.
Q. Where did you use custom components, and what was your experience like building them?
We use visible (i.e., aligned within the quilt) and invisible (i.e., jQuery-only that manipulate the DOM directly) widgets throughout Tech Zone. We did small widgets that just had some custom text all the way up to fully customized pages with forms that were processed by Freemarker Endpoints on the backend.
We found it a bit tough to build visible widgets at first. There really needed to be a shell widget that contained our existing theme that we could just extend. Fortunately, we got some help from Lithium development to build such a shell for ourselves. 🙂 Once we had that, it was really easy to use Studio to create the widgets and insert them in our pages.
Beyond the shell idea, one other big suggestion we would have for Lithium here would be to have every single part of a page chopped up and movable in the quilt. This would keep us from having to do a lot of direct DOM manipulation.
Q. You've delivered an enormous amount of content to multiple audiences, including partners. Were there integration considerations in extending access to your partners?
Tech Zone is an internal-only community for our engineers to discuss technical issues about our products and technologies. When we thought about bringing partners into the mix (and by partners, we mean those that help support collaborative products), we had to make sure we didn't leak information about other customers. Therefore, we had to be very careful about permissions for the partner categories. This presented a challenge because of the way Lithium addresses permissions: we needed to define the person's role with a hierarchy carefully - once a permission is explicitly granted (as opposed to "use default") to a parent, one is allowed within all children, even if permission is denied on a child. This makes you think differently when it comes to laying out restrictive permissions, as you can't just grant a permission at the top level and then restrict where needed. That approach is somewhat “unique” to Lithium, and we've already put in a product suggestion to the team. 🙂
But in the end we have a very robust system that allows our support partners to only see areas and content we want them to see. If they try to access areas outside of that, they cannot.
Q. If you were describing your experience extending the Lithium platform to someone who's new to it, what advice would you give and where would you start?
We would start by saying, DON'T PANIC. It's easy and it's fun. There are a lot of examples in the Lithosphere to help get you started. There's also a great community of people in the Lithium Developer Network on the Lithosphere that can help with any questions you have.
In terms of learning, familiarize yourself with http://api.jquery.com/, http://freemarker.org/docs/ in addition to the Lithosphere's Dev Network docs. And keep http://stackoverflow.com on speed-dial. There are a lot of great jQuery and Freemarker questions and answers (and thus solutions) found there that will be of great help to you as you start.
And finally, we want to say that YOU can do this. The two of us were the development team that took Tech Zone from nothing to a production system in months. It doesn't take an army. It just takes people that love to code and have a passion for building a collaborative platform.
Thank you so much for sharing so much of your work with us, Joe and Gonzalo! I’m really looking forward to seeing how the Tech Zone will continue to grow and add value to Cisco.
... View more
I spent some time recently talking with Cisco’s Joe Marcus Clarke, Distinguished Services Engineer, and Gonzalo Salgueiro, Technical Leader. They presented at the first Developer Track at LiNC this spring, and spoke about how Cisco used Lithium solutions to build the Cisco Tech Zone. I wanted to get some more insight on how they’ve been working with the Lithium Platform, including what their experiences have been customizing the Lithium Platform to meet their business requirements. The second half of this Q&A is available on the Lithium Developer Network Tech Blog.
Q. In your Dev Track presentation at LiNC, you described some of the results you’ve had since building Tech Zone on the Lithium platform (e.g., 20,023 total users, 122 externally published articles, 15,986 discussions, 66,289 replies, 26,131 kudos awarded); are there other results that you're particularly proud of?
To be honest, some of the most impressive results were those less tangible and more difficult to express to the outside observer. For example, the challenge at Cisco is to quickly win over a very technically savvy audience that has a rich tradition of shadow IT and homegrown tools and applications development when the organizational tools are deficient. The viral word-of-mouth adoption is truly most rewarding for us. This adoption has been so successful that it is yielding very tangible business benefits. For instance, we have nearly doubled our internal content available since LiNC as we have continued to accelerate the migration of more and more technical teams to the platform!!! We are also seeing that Tech Zone generated content is having a powerful pull effect with the rest of the company. It is bringing in other functions such as Services, Engineering and Sales.
It's also inspiring that our work hasn't happened behind the thick walls of a secret room at some undisclosed location. Quite the opposite. As we have grown with the platform, we have been sharing our use cases, our learnings and our challenges with Lithium, the community of Lithium customers and the industry at large. In fact, we were recently awarded the 2012 Forrester Groundswell Award (Business-To-Employee Category - Collaboration Program: Technical Services: Using Social Knowledge to Reinvent Customer Support) and two consecutive Lithy awards.
Q. Why did you feel you needed a SaaS solution?
To be clear, it wasn't a requirement for us when we started platform evaluation, but it has become a very pleasant surprise in the advantages that it offers relative to ubiquity of content, scalability, centralized security, etc. SaaS offers certain advantages compared to having to develop a wholly homegrown solution completely "in-house." So while we have the technical resources to do it, we'd prefer they keep their focus on Cisco "stuff."
A SaaS solution has helped us have that better resource allocation, as well as improved agility (time to market), innovation, scale, etc. Cisco generally evaluates solutions using a build, buy, partner approach. Lithium was the perfect partner for us and they were actively invested in our success.
Q. Those are significant accomplishments – congratulations! From a technical perspective why did you choose Lithium?
In the beginning we actually considered several different collaborative community platforms. Lithium was the clear choice for us because of its unmatched ability to customize the platform to deliver on our very specific vision. The openness and accessibility of the platform (through the Lithium REST API) and the flexibility offered through its programmability were deciding factors because it allowed us to seamlessly integrate the collaborative experience in the workflow and intelligently tie in to the existing suite of tools and applications we had.
In fact, these considerations really lowered the barrier of entry for us and offered very high ROI with minimal resource investment (just the two of us) and eliminated the need for any professional services engagements in order to produce a highly personalized and scalable enterprise-class solution.
Q. Since one of Cisco's goals was to customize this experience for your users, what was your process of determining what you needed to customize and where?
As the primary guiding principle of Tech Zone is to provide a feature rich personalized user experience that is seamlessly tied to the workflow and tools of our engineers, we take customization and integration very seriously and make it a part of our process design, site layout, development efforts, etc. This and the fact that our enterprise collaboration use case is a bit unique have prompted a significant amount of customization.
In order to not sacrifice on our vision, we went with a platform that was flexible and could grow with us. The key to success with this model is to have a strong partner, like we had with Lithium, that is open-minded and willing to listen. In fact, we share our customizations with Lithium and allow them to evaluate whether or not the newly introduced capability could be (or already is) planned in future releases or if it is something too Cisco-specific. This benefits the broader community of Lithium customers & partners since it enriches the functionality and usefulness of the core platform. It also benefits us because we can eliminate any overhead associated with ongoing support and sustaining efforts associated with these customization overlays.
Q. What was your experience like integrating Salesforce with your Lithium community?
We didn't go the formal route in integrating Tech Zone with Salesforce.com. Instead, we leveraged both platforms' APIs to build custom hooks. So we don't know if this was easier or harder than normal. However, the result fit right into our engineers' workflow, so that was a huge win.
On one hand we built a live-updating interface that shows recent threads in an engineer's technology space. This helps them become aware of relevant questions that they might be able to answer. Then on the other hand, as they work their cases, they have the ability to push a distilled summary of the cases back to Tech Zone into the Tribal Knowledge Base (TKB). The result is knowledge capture right in the workflow.
Thanks so much for these insights, Joe and Gonzalo! I love seeing how much the Tech Zone has grown from its inception, and how much you’ve both been able to accomplish in under 2 years. To read more about Cisco’s experience developing on the Lithium platform, please visit the Lithium Tech Blog.
... View more
At Lithium, we’re serious about developers. We’re kicking off an improved Lithium Developer Network this week just in time for LiNC, and we think you’ll see a huge improvement, particularly in the updated REST API documentation. Also this week, we’re showcasing how customers have customized and extended the platform during the Dev Track sessions at LiNC.
We’re also announcing a new partner service integration delivered by Acceleration , who are joining us at LiNC this week.
And finally, we’re also showcasing all things technical in the brand new Lithium tech blog. You’ll hear updates from our engineering team, as well as news on new APIs and topics of interest to developers. Come join us!
... View more