1 2 3 Previous Next


224 posts


Happy 2017! As we look back on 2016, there was a lot going on around the world. It did provoke strong emotions and thoughts for many. In the fast changing world around us, one word for me is ‘relevant’. There is change in every aspect of the world we live in, and keeping us relevant with the change will decide the future of us as individuals and also as a civilization. Will the learning, the skill sets, the methods we use today be relevant for the needs of tomorrow?

Biggest changes in our social and political environments are driven by the digitization of everything around us. It is no longer about a specific technology, it is the combined experience created by different technologies that is bringing new disruptive innovations. These experiences were not possible without the connectivity of systems, applications, tools, things, and people. It is truly the combination of atoms(physical things) and bits(the software driven intelligence)that is needed for this digital era. Internet of Things(IoT) is this combination of physical things and the data-driven software intelligence to deliver the right outcomes for your business.

It’s time to start thinking about your learning that will be relevant tomorrow as the technology world evolves around you. This three part blog series is to get you started and we are hosting a workshop at CL Berlin to further bring this learning to you. Come join us on Feb 20th and Feb 24th in Women in Tech Workshop- Introduction to IOT with DIY Arduino and real solutions using Cisco DevNet DevIoT.

"The only relevant question is whether you will let it be possible for you." Gay Hendricks.

Blockchain: A 101 at Cisco Live Berlin 2017


Blockchain. Now there’s a word that has many an industry worried and excited in equal measure. As well as having boardroom execs raising eyebrows everywhere, it has developers the world over salivating at the possible applications of the technology.


"But, why are blockchains interesting?”…I hear you brain wonder.


Because, blockchain technology, the technology behind many a cryptocurrency including Bitcoin and numerous others, has the potential to revolutionize and completely disrupt how numerous global business models function today. From finance and healthcare to the music industry, IoT enablement and beyond.


“Pfff…Really?”, I hear you cry…”How so?"

Blockchain technology was originally developed to power the cryptocurrency Bitcoin. The further application of this technology across industries has since began to emerge and is now recognised to have the potential to change many of them, from banking applications and transactions, through to energy management and smart metering applications.

“OK. Sounds very grand. But get to the tech. WHAT is a blockchain?”

In essence, a blockchain is a cryptographically secure record, or ledger, of digital events (say, an IoT device like a Drone being registered at manufacture). This record is totally distributed - shared among many different people and parties. BUT, very secure. It can only be updated by consensus of a majority of the participants in the system – participants being person-owned compute ‘nodes’ that are part of a particular blockchain network. Once a ‘block’ of transactions is validated and entered into the ‘chain’ (‘block-chain’!), the transaction information can never be erased.

“Alright…what can developers do with it?"

A lot. Blockchains these days come with the ability to write code and deploy to the chain, much in the same way as regular transactions are recorded. This code can then be called and executed on demand or via events (such as time events, other code executing, etc.). This means you have a global database and system of record that uses  every end node in the world attached to the chain as processing power for your application. A world computer!


“I’m just about holding it together here, where can I get more information on the tech and the applications / use cases?”


At Cisco Live Berlin in February, Vallard Benincosa ( vbeninco ) and I will be providing a 101 session on blockchain technology, code uses that will hopefully expand your mind! We’ll also talk about the pitfalls in today’s blockchain offerings, there’ll be a demo and we’ll provide excellent stage banter for you to cringe at, too. Not to be missed for anyone wanting a glimpse into the world of Blockchain!


Feel free to register here.


See you there!



This Feb my good friend Tom Davies (thodavie ) and I will be holding a session on Serverless Architectures.  If you are so inclined, you can register for it here.  We've been working pretty hard over the last year on a serverless solution we hope to demonstrate as part of this talk.  Here's what we want the audience to walk away with:

Serverless will become the new normal

Regardless as to whether you use someone else's serverless services or something crafted by yourself, most developers will gravitate and be happier working in a world where infrastructure is completely automated and code drives the world.  Why?  Simple, less work!  Wouldn't you rather work on fun creative stuff than mind numbing nastiness of "spin up a VM", "install the operating system", etc. 

But wait you say!  I don't use VMs!  We are advanced!  We use containers!  Sure.  Well then now you need to worry about getting the right container image, building the Dockerfile, etc.  Even if you are a big fan of Kubernetes (like I am) it's still a royal-pain-in-the-everywhere to get an infrastructure like that set up.  A serverless architecture probably runs with containers and needs something like Kubernetes underneath the hood, but what if you didn't have to do all that?


What serverless offers is a layer of abstraction on top of something like Kubernetes.  This can include prebaked functions as a service, or code snippets already created for you that you can incorporate into your own application. 

Serverless is more than just the services offered by one giant cloud provider

We want to show that you can create your own serverless service that lives in your own datacenter (or any datacenter) and that's what we have prepared for you. It's simple, doesn't work very well, and has a long way to go, but we want to show you that the concepts are something an enterprise can actually use to make their own developers more productive.

We are trying to tackle a simple problem:  People want to try making their own Sparkbot to respond to simple commands like "/sayhello" where the sparkbot account might say "hello back to you".  Making a sparkbot isn't as easy as it could be.  You have to write lots of code, then find a place to host it, then autoscale it if needed, then baby it.  Making changes might require you to set up a CI/CD pipeline or figure out your cloud provider's way of updating.  If you are brand new to making sparkbots, this could take you about a week if you had average experience. 

We created a serverless platform called Pipeline that attempts to automate most of that part for you and all you have to do is enter the code you want run.  From there, we handle the rest!  The scaling, the maintenance, etc.  We hope to have a pretty neat demo for you in Feb.  See you in Berlin!



Things to do in Berlin in the Winter

Gong to Berlin, Germany this Winter? Check out this list of things to do in Berlin in the WinterThe list will come in handy when you are in Berlin for Cisco Live 2017, I did notice however that the list did not include Cisco Live Berlin and also left out my DevNet sessions for UCS Programming. I'll have to contact the author!

Cisco Live Berlin is only a few weeks away and I am actively preparing and practicing my sessions. I want to make sure that the time I get to spend with Cisco Live attendees in the DevNet Zone is as productive and enjoyable as possible.


Do You Manage Data Center Infrastructure or Applications?


If you manage data center infrastructure or the applications that run on the infrastructure then Cisco UCS has an API for you. The UCS Unified API is consistent across the UCS product line, this consistency has led to the development of several Python SDKs and PowerShell modules for UCS. The UCS Python SDKs and UCS PowerTool Modules are freely available, community supported and DevNet enhanced with introductory Learning Labs for UCS Python SDK and Learning Labs for UCS PowerTool. If you are interested in how to utilize these tools built on top of the UCS Unified API make sure you register for my sessions.


What Does the UCS Unified API Do for You?


The UCS Unified API allows you to manage all aspects of a UCS system, it is really that simple. You can query and configure, you can automate and orchestrate, you can do everything the graphical interfaces offer. If you want to deploy a server and load an OS, you can do it. If you want to manage the VLANs attached to a specific server interface or hundreds of server interfaces, you can do it. The UCS Unified API allows programmatic access to the over ten thousand UCS objects that comprise the UCS Object Model. Programmatic access provided by the UCS Python SDKs and the UCS PowerShell modules with their built-in object meta-data ensures that you have complete access to everything you need to devops your way to streamlined, automated, self-aware and more, UCS deployments.


Register / Learn / Participate


If you are going to be at Cisco Live Berlin and you want to learn about UCS programming register for one of my sessions


DevNet Workshop - UCS PowerTool Suite - Secrets, Tips and Tricks

Technical Level:  Intermediate

Session ID: DEVNET-2061 - Register

    • Wednesday, Feb 22, 4:00 p.m.
    • Thursday, Feb 23, 12:00 p.m.


DevNet Workshop - Managing Cisco UCS with the Python SDK

Technical Level:  Intermediate

Session ID: DEVNET-2060 - Register

    • Tuesday, Feb 21, 3:00 p.m.
    • Wednesday, Feb 22, 12:00 p.m.

Cisco UCS Python SDKs

Technical Level:  Intermediate - Register

Session ID: DEVNET-2063

    • Wednesday, Feb 22, 9:00 a.m.

If the sessions are full you should still come by, gather around and listen.


You can also try one or more of the Learning Labs, before you come to Cisco Live or on site.


Hope to see you there!!!

Follow @johnamcdonough


Hack-o-Life Event Highlights

Posted by jkratky Dec 6, 2016

Hack-O-Life 2016 Event Summary


What a great event, check out everyone that was there!





We were very delighted to have around 50 undergraduates and graduate students from Hong Kong and Mainland China to participate the Hack-O-Life 2016.  Using technology to come up with new innovation and initiation to tackle “Healthy Aging” issues in Hong Kong.






We received a lot of positive feedback from participants regarding the program with special thanks to mentors for their guidance on various professional advice including medical, insurance and corporate technology etc. Participants were inspired by the insightful presentations and interactive group discussion.

This year, we are very glad to have Dr. David Chung Wai-keung, JP, Under Secretary for Innovation and Technology of HKSAR Government, to kick off the Hack-O-Life 2016 together with our organizers. Mr. Simeon Preston, Group Chief Operations Officer, AIA Group; Mr. Matthew Smith, Global Head of Market Development, Internet of Things, Cisco; and Prof. King Chow, Director of HKUST Interdisciplinary Programs Office.  We have also received tremendous support by Prof. John Leong Chi-yan, SBS, JP, Chairman of Hospital Authority as the Head of the judging panel.




Big congratulations to Habhub from the Hong Kong University of Science and Technology who won the AIA Award with 3-month tailor made mentorship program from AIA’s senior executives. They designed an application to keep track of elderly’s rehabilitation schedule with video demonstration. Friends and relatives can also monitor their loved ones' progress thru this application with voice messages and texts.





Another winning team, M-TRIANGLE from Shantou University won the Cisco Award with 4-day trip to Cisco’s headquarter in San Jose, California. They designed a smart watch especially for elderly with emergency link service, medication alarm reminder, GPS and entertainment functions to enhance their living standards.


Hack-O-Life offers a good opportunity to open interdisciplinary platform for both academics and commercial sectors to engage their creative and innovative minds.  Students can leverage on various technologies and software to come up with viable solutions for specific problems and to create something for our local community. We look forward to working with similar minds alike again in the near future.



Let’s share the happiness!


What is ZendCon?


ZendCon is a web developer conference aiming towards PHP Developers, ZenD Framework developers, and the general web developer community, with an average of 400-450 attendees. The conference runs every October and is on its 12th annual event. It aims towards enterprise development and the latest in technologies, including open source technologies. You can find more information at zendcon.com.


DevNet Booth


Cisco DevNet was an Exhibitor Sponsor during this event. DevNet is a developer program at Cisco. We had a cute booth set up and gave away a lot of goodies, ranging from Bluetooth speakers, camera lenses, and sunglasses. It was a lot of fun to really get to know attendees and have great conversations on what people are working on. It’s always amazing to see how many people that weren’t aware of the changes with Cisco and the amount of software tools we have available to help improve their work. With a lot of APIs, Open Source Software, and all sorts of goodies, it never hurts to check out what is available at developer.cisco.com.




Speaking Sessions


I had the honor and privilege to have an opportunity to speak at ZendCon. I spoke on two sessions, one on RESTful APIs, and another on building custom applications. It was excited to have participation in the audience very interested and asking a lot of questions. I definitely can’t wait for the event next year!




Great conferences always stem from the roots of having a great organizer(s). With Adam Culp having a reputation of running spectacular events, I would always recommend others to attend his conferences. His next event will be SunshinePHP in February 2017 located in Miami, Florida. I have attended SunshinePHP a few times in the past and is definitely one of my favorite PHP conferences. Check it out!


Can we sponsor again? Yes please!


sponsor zendcon.jpg



Since we always appreciate a bit of help trying to come up with gift ideas around the holiday season, the DevNet team has assembled some of our favorite items for your friends and family. So from our family to yours, we hope you have a great, fun, and perfect gift giving holiday!


For the Builder

  • Circuit scribe allows you to draw circuits with metallic conductive ink! From: @mandywhaley
  • As if you weren't already planning to get one, the Alexa Dot is an affordable way to learn about the new trends of voice interaction. From: @mattdashJ
  • If you're feeling REALLY ambitious you can hack your car Carloop!  "Carloop is a 100% open source kit that lets you connect your car to the cloud via 3G, WiFi or Bluetooth. We provide easy to use libraries so you can track your car with GPS, log mileage on an SD Card or check your engine codes. It’s Plug and Play, no cables required." From: @denapom11
  • Interested in a little bit of root/ROM hacking? A usably-featured Android tablet for $33! From: @dstaudtatcisco
  • You're using source control, right?!  If so, a gitkraken pro license is handy for those learning git who want some GUI help. From: @mandywhaley

For the Foodie

For the Traveler

For the Security Conscious

For Parents

For Those Trying To Be Healthy

For YOU (and your career!)

The giver of gifts needs a little something special too. Treat yourself to free DevNet Learning Labs and Sandboxes!

If you do give one of the gifts listed above, tweet @CiscoDevNet a pic with #DevNet hashtag!

Happy Holidays from the DevNet Team!

I spent three days at the end of October at Serverlessconf London. The London conference was the third of it’s type worldwide after events previously held in New York in the summer, followed by Tokyo in the Autumn.


The conferences, relatively small at this point with around 400 attendees, are focussed around a new application design and development pattern using a ‘serverless architecture’.


There’s a growing buzz around serverless right now. It’s the new black for cloud app development.


Essentially, serverless is a methodology where the infrastructure that an application runs on is completely abstracted away from the developer - to such an extent that they do not have to think about, manage or in any way care about the lifecycle of DC  / Cloud resources that are ultimately executing their application code. The containers, VMs, physical hardware or whatever else their code may run on / in becomes somewhat redundant to the developer. Developers simply develop code, then deploy it to a ’serverless cloud service'.


And there’s no shortage of service offerings springing up from cloud vendors to augment this new approach.


These services range from the large cloud players such as, you guessed it AWS (Lambda service), MSFT (Azure Functions), Google (Cloud Functions) to smaller players with a dedicated focus, like Iron.io for example. There’s also opensource efforts in the serverless space already with IBM’s OpenWhisk offering (which as you’d expect, IBM will offer services around). In short, there’s an ecosystem of service suppliers expanding to feed this new development methodology, even as I type.

Now, to clarify, of course there are still servers involved in the deployment and execution of the application and it’s code logic - it’s clearly not some form of magic wizardry - but the ’serverless’ name tag comes from how developers see the approach. Not operations (But you still need operations. More on that later).


I attended the conference in the knowledge that the buzz and hype around this methodology was growing and braced myself for an event very much slanted toward development and might be somewhat blinkered to the reality of operations and real world deployment of serverless applications.

But, I was really surprised by the realism and pragmatism in the room.


The keynote, provided by Patrick Debois, of DevOpsDays founding fame, was upbeat but cautionary, very much tailored to calling out the areas that need to be considered in further detail - like security, deployment, cost considerations and challenges to be faced.


There were a number of talks focussed on the operational aspects of creating, deploying and managing applications based on infrastructure that had been completely abstracted away and managed elsewhere by third parties. They were honest, interesting and pointed out many of the pitfalls and lessons that had been encountered when building serverless applications.


Across the two talk tracks available each day, there was a also a good intersperse of technical session (including, global scaling concerns, DB / state persistence, streaming analytics and more) and high level explanatory / product sessions (including a cracker from the IBM OpenWhisk team), that provided something for everyone.

There was also the opportunity of a bonus third day of hands on workshops. The workshop that I attend involved creating a serverless bot, that could tell me the weather in certain cities of the world given a date, when I asked it. A really fun exercise that allowed me to understand the basics of some of the serverless offerings out there and also the serverless framework, which I can recommend keeping an eye on, with a cloud agnostic approach in the pipeline off an open source base.


To summarise three days the best I can to anyone with severe blog attention issues, here’s the list of key take-aways:


  • Best Practices in Serverless Architectures are required.
  • Strong Ecosystem: There is a growing ecosystem of services, tools and frameworks being developed in various states.
  • Serverless is already here: There are serverless applications already out in production, in use today and who’s businesses depend on them.
  • Serverless != Functions-as-a-Service (FaaS): Serverless is an architectural style, which FaaS is a service within that architecture (like lambda), accompanied by many others, including API Gateway services, messaging and event services, queuing, DB Store and more that makes a serverless architecture tick.

followed by a list of key lessons and challenges:


  • Pick your serverless use cases carefully: Serverless application architecture is not appropriate for all use cases (for example, how do you manage long running task or those with high data storage / retrieval needs).
  • NoOps is somewhat of a myth: There are still many aspects of operations required for a serverless application (like performance, availability, debugging, logging, metrics etc.). The developer just has to be more operationally considerate in the serverless development model.
  • You will face challenges: These challenges include time to upskill and learn from mistakes, operation / management needs in a serverless world, configuration management requirements and a lack of mature tooling.

There’s so much more detail of course, but not for this post! I’ll save that detail for further updates.


I walked out of the conference with a very rounded understanding of the major players, the state of the technology and services available, the ongoing development (both in terms of serverless services and serverless applications) and the challenges yet to be overcome and the community face.


For a new technical paradigm in it’s infancy years, the community is showing great maturity in it’s willingness to embrace realism.

That’s definitely a good sign for the future.



What is the Cisco Spark Community of Interest?

This is where you can start your journey as a “DevNet Sparker”.

  • browse others creations, hopefully find inspiration for a bot of yours, or simply extend a code sample to bootstrap your own app.
  • or learn to create bots and integrations by taking the “Cisco Spark Learning Track”.

And, once your Cisco Spark App is finalized, submit it to the Cisco Spark Depot, so that it gets global visibility and encounters the success it deserves.


What is a “Sparker”?

A developer with a passion for Cisco Spark Apps, who can think of nothing but creating integrations and bots in order to automate Enterprise Processes or Things (car, heaters, WIFI, …).

As you are reading this, it is probably you!


What are Cisco Spark Apps?

Cisco Spark Apps concretize Cisco Spark’s extensibility.

By adding Cisco Spark Integrations via the “Depot”, users can tailor their Cisco Spark experience for themselves, their teams or their entire organization. For example, the “Jira integration” will spark your teams of any issues updates (whether EPIC, Story, Task or Bugs).

By creating custom Cisco Spark Bots, developers can tie together existing enterprise processes or any existing back-end to Cisco Spark. For example, the “Room Finder” bot helps colleagues quickly find an available meeting room by polling your internal Enterprise Exchange Servers.


Are there different types of Cisco Spark Apps?

Yes, Cisco Spark Apps can be either Integrations or Bots.


What is the difference between a Bot and an Integration?

Integrations let your application request permissions to invoke the Cisco Spark APIs on behalf of Cisco Spark end-users. The process to request permission is called the OAuth Grant Flow, and is documented in the Integrations documentation.

Bots differ from integrations in that they appear in rooms with their own identity; their Cisco Spark email ends with sparkbot.io. Creating a bot is documented in the Bots documentation.


How can I learn to create my own Cisco Spark Bots and Integrations?

What are you waiting for? Take the Cisco Spark Learning Track”.

Seriously, we’ve put together several modules to ramp you up with building and running your own bots and integrations.


What if I don’t do NodeJS, but rather code in Python, PHP, Ruby or …?

The Cisco Spark Learning Trackand the "DevNet Creations" are great places to start from.

"DevNet Creations" showcases community projects in all languages.

Then, check the Cisco Spark Learning Track, several of its learning labs are language neutral.

For those that are language specific, the community is working on providing examples in more languages... and good news, you’re now part of it. Feel like contributing? Pick a code sample, translate it to your favorite language, and tweet us @CiscoDevNet.

If you’re looking still looking for more language-specificresources, check the “awesome-ciscospark” project on Github. And if you know of a valuable resource not listed on the repo, we'd love you to contribute via a pull request!

Hope you find your answers, and let's now meet in the Cisco Spark community...

Want to learn about the new hot Cisco Digital Network Architecture (DNA)?  DevNet has released a new learning track called DevNet Express for DNA which is freely available, as are all DevNet tracks, for you to learn more.  This learning track contains ten modules that are composed of thirty-two labs for your learning pleasure.

As always you work at your own pace, and there is sample code with exercises for you to do hands-on learning.  You’ll learn about DNA, then dive into its components learning about their concepts, APIs and as always you’ll have the opportunity to write and run code.  Most of the currently available modules are listed below.

We recommend that you work through these modules in the order given, especially the first four, as they cover the fundamentals of setting up your system, DNA concepts as well as REST and coding fundamentals.  As with all of the over one hundred DevNet labs, there is nothing to purchase to start and complete the labs.  All that you need is a Cisco CCO ID which can be freely obtained by going to http://www.cisco.com and clicking on the Register link.

Once you have your CCO ID, you can get started at the DevNet DNA Learning Track.

Have questions? Need technical help?  Contact us now at https://developer.cisco.com/site/devnet/support/


Come and learn more at DevNet!

What is BrazilJS?

It is the largest JavaScript conference in the world connecting people from all over Latin America and bringing in speakers from all over the world in the heart of Porto Alegre, Brazil. With 1600 people in the audience, it was a full house! Jaydson Gomes is the Co-Founder of the conference and was a magnificent host! Jaydson and his team did such an amazing job. I was quite impressed with the amount of work and effort put into this entire event. With this many attendees, they had to set the bar HIGH to make sure everyone had a pleasant experience.




This is probably the most attendees I’ve ever seen in an open source programming conference. Usually it ranges from 150-450 people on average. Behind the bleachers was the sponsor booth set up.

Here is a look behind the bleachers of a few sponsor booths throughout the hallway.




I took this picture the day before the conference doing a tech check. It’s always nice to have your laptop connecting correctly with the project when you begin your presentation. ;-)



JavaScript has such a huge community I was very honored to be able to be a speaker at this event and meet so many talented speakers. I spoke about working with APIs and used Cisco Spark and Tropo as an example. To top off the event, I made a tweet about cross browser compatibility and it ended up going viral in the developer community and my phone was going off with notifications for about 3 days straight.

You can find it here: https://twitter.com/TessaMero/status/769638106479886336

Cisco Products


Since I started working for Cisco in March 2016, I pay more attention to who’s using our products. In the speaker’s room, here was a beautiful Cisco router. I wouldn’t call this a promotion since Cisco has moved on and became a “software and services” company rather than a “networking” company. Even a conference organizer was excited to notice it too!

Wrap Up

The Brazilian and Latin developer community is amazing and I would highly recommend anyone from any location attending an event in Brazil. Jaydson throws an unforgettable event and I know every sponsor got more than what they bargained for with this many attendees.

You can find a review from attendees and their experience from this years event: https://www.youtube.com/watch?v=xiuwH_f-4_8

With Cisco DevNet supporting more and more open source communities, I hope we can join as a sponsor for BrazilJS’s 2017 event.

Be sure to follow BrazilJS’s social media accounts to check out their upcoming events:


Also, you can follow me on Twitter or follow my Cisco Blog!

Tons of Interest and Questions for this Slick ‘Bot’ Platform




Thanks to all the more than 500 participants who joined us last week to talk about Cisco Spark, the interactive possibilities of the growing chat ‘Bot’ phenomenon, and the cool cloud services from Gupshup.io making it easy to develop, host and deliver Spark-connected Bot services!


If you missed the webinar, we have you covered as the full WebEx recording is available for playback.


Introductory slides are attached to this post (see below.)


Topics covered included:

  • Cisco Spark intro and overview
  • The reach and opportunity represented by the chat bot market space
  • Use-cases and solutions
  • High-level overview of the Gupshup.io bot building/hosting platform
  • Walk-through demo: build, customize and deploy a Spark-connected Gupshup.io Bot
  • New developer incentives from Cisco: $150m Cisco Spark Innovation Fund and Cisco Spark Startup Packages


Interest from the audience was high, with questions coming fast and furious – below are some of the top Q&A items we didn’t have time to touch on during the event.  If you have more questions or comments, we’d love to start a conversation!


Q: Are other langauages supported on Gupshup besides JavaScript?

Gupshup: You can code your bot in a different language, then use the callback URL function to link your bot to the Gupshup platform. This means that you'll have to take care of hosting as well. See here for details: https://www.gupshup.io/developer/docs/bot-platform/guide/building-bot-outside-bot-builder-tool

Q: Are there a debug view logs?

Gupshup: Yes, you can check the console to debug. We also have a log of all the chats that you can access

Q: Do you have a sample with some natural language processing/AI?

Gupshup: Check out https://www.gupshup.io/developer/docs/bot-platform/guide/introduction-to-gupshup-wi

Q: Can you give me other examples of deeper, more business relevant bot integrations with Spark?

Cisco: Here are a couple:

  • Example #1 - Code-build DevOps bot - A bot integrated with Jenkins (or other build tools) which monitors build progress and test case results, notifying a room full of developer engineers of build success/failure, with interactivity for requesting charts/links to test case results, git hub source files, etc.
  • Example #2 - Pricing bot - Bot which can interactively search and price products or services, possibly present in a Spark-based customer support room

Stay tuned for the upcoming 'Cisco Spark Depot' - a site for browsing all kinds of Spark bots, integrations, tools and solutions.

Q: How can we get a more detailed overview of Gupshup?

Gupshup: You can start off with our documentation here: https://www.gupshup.io/developer/docs/bot-platform/guide/intro-to-gupshup-bot-builder

Q: I can’t seem to find the Gupshup Proxy Bot in the Spark user search?

Cisco: Bot accounts created by users in a Spark ‘organization’ are searchable only by other users in the organization. However bots can always be added directly by anyone by specifying the full email address, i.e. ‘gupshupproxybot@sparkbot.io

Q: Do you have more complex examples of bots for each platform supported?

Gupshup: Check out ‘hellopegg.io’, a bot that was built on Gupshup

Q: Can the bot run scripts from internal servers like in a corporate data center?

Cisco: Gupshup is a cloud hosted provider – if you wanted your Gupshup bot app to interact with systems inside your firewall, you would need to take steps to expose access, e.g. by publishing a REST-like API

Q: How does Gupshup pricing work?

Gupshup: Its a ‘freemium’ model. On signing up you get 100k API calls free. Past that you are charged per API call. Write to us and we can work out a custom deal for pricing.

Q: How about pricing for bots in Cisco spark?

Cisco: Bot functionality does not incur any extra charges on Spark (Spark itself is free to use for developers/small teams)

Q: How can we integrate a bot running on-prem Cisco Jabber with cloud Spark?

Cisco: This is an extended topic – I would invite you to contact DevNet Support for a detailed discussion: https://developer.cisco.com/site/devnet/support/

Q: What are the possible message events available for Cisco Spark?

Cisco: The Spark event notification categories are listed here: https://developer.ciscospark.com/webhooks-explained.html

Q: What about sending images or doing transactions?

Gupshup: Check the documentation here: https://www.gupshup.io/developer/docs/bot-platform/guide/adding-images

Cisco: Spark bots can share links, Youtube embeds, images and other kinds of documents directly to a room (no support for monetary transactions or interactive objects at this time)

Q: Can the user or agent escalate from bot to a phone call using Spark VOIP?

Cisco: In a room with customer and bot, the bot could (on request) add in a customer service rep, at which point either the rep or the customer could then easily start a voice/video/screen-share session

Q: Can I use Gupshup as development platform, and migrate my bot later to a on premise platform?

Gupshup: In theory yes as your bot logic would still be intact. But since you'll be using helper methods and private APIs from Gupshup, migration will involve porting your code to the other platforms

Q: Is there a way to get reports of the usage of the bots?

Gupshup: Yes, Gupshup has a built it analytics tool

Q: Is the bot code API on Gupshup unique, or does it meets some standard?

Gupshup: The code you see in our cloud-based IDE is unique to Gupshup, as they are helper methods for many things that are under-the-hood. The code is mapped to different messaging platforms. For instance a context.sendResponse() will send a message on any msging platform.

Q: Can a bot be written to federate messages between two different chat platforms? e.g. Skype to Spark? Spark to Facebook Messenger?

Gupshup: We are working on bot-to-bot communication that will enable this. Stay tuned!

Q: Does gupshup support sending messages in response to external events - like a timer or web service?

Gupshup: Yes, Bots have their own HTTP endpoints. Read this: https://www.gupshup.io/developer/docs/bot-platform/guide/http-call-to-a-bot

Q: Any release dates on the Spark voice and video SDKs?

Cisco: No release dates set quite yet, but early access applications are being accepted here: https://developer.ciscospark.com/sdkaccess/

Q: Can we get parameters like IP address passed from Spark to Gupshup.io for backend processing

Cisco: The available data from Spark is documented here: https://developer.ciscospark.com/webhooks-explained.html The actual IP of the message sender is not available, and would typically not be very useful as most clients will be behind NAT/firewall

Q: Given the example of the service desk, is it possible to 'reroute' the bot conversation towards another person?

Cisco: The bot could certainly add or remove reps to the customer’s chat room to effect something like that

The term "serverless" really caught on around November 2014.  That was when AWS introduced it's Lambda service.  The lambda service is a "function as a service" offering meaning that a function (small unit of code) will be ran in response to some event.  A user can input code into the browser window and that code will be executed when the event happens.  The event could be a log message, an API call, or whatever else a developer imagines.

Haters of the term may say:  "It's just buzzword belching" there is something deeper here that is worth understanding.  Serverless has far reaching implications as to how applications is crafted now and in the future.


Yes, servers are still needed.  These function-as-a-service plays like AWS lambda, Google Cloud Functions, Azure Functions, IBM's OpenWisk, and others run on containers that require an operating system and necessary libraries like any modern application.  But they are "serverless" in that the end user doesn't have a server view of the infrastructure.  To the end user, serverless is just an execution environment, where the operating system is not relevant and lives behind the service itself.


To be clear, function-as-a-service is only one component of a serverless architecture.  Serverless could be viewed also as a model that comprises 3 other important aspects:


  1. The end user doesn't fuss about infrastructure (should we call it infrastructureless? )
  2. The pricing model is charged per transaction instead of by the hour  (hourless billing! )
  3. Ability to call other APIs to run the application  (api-full system! )


SaaS for Developers


The world of software is in a continuous march towards greater abstraction under the holy banner of efficiency.  This is evident in the salient features of popular programming languages that have emerged over time.  Java has garbage collection freeing us from "malloc" and other necessary low level operations.  Python gives us dynamic typing where a variable can be an integer or a string or whatever we assign to it on the fly.  And Go has made it easier for us to run concurrent operations with simple go routines.


This march towards abstraction rolls on in the infrastructure world as well.  Operating systems were designed to abstract the bare metal and enable multi-tasking.  Virtual machines solved the issues of driving more efficiency from the hardware and simplifying maintenance. Containers now give us the ability to strip down our operating systems to the barest of requirements and port to whatever environment we fancy.


But this grand pleasure dome of abstraction that infrastructure has given us over these years has never been the end goal.  It's always been a means to deliver applications.  If I, as an application developer, could abstract the operating system away entirely and just drop code in some ready to run environment I would!  And that's what serverless gives us.


As you read this article right now, you might be aware that it is running on some blogging software.  You don't really care what operating system the software runs on since you never interface with it.  Windows?  Linux?  OS/2?  Doesn't matter to you.  You also don't care if this blog software is running on a container, a virtual machine, bare metal, or even a dead porcupine.


As much as Software as a service (SaaS) applications like Facebook, Cisco Spark, and Google Docs offer great convenience and bliss for users running apps in a web browser, Serverless is SaaS for developers and provides many of the same benefits:  Nothing to install, just a usable environment.


1.  The developer doesn't have to install any virtual machines.

2.  The developer does no maintenance.

3.  The developer doesn't worry about autoscaling and load.


These services are worth paying for.  They make it so developers can concentrate on adding features to the applications that end users can see.  They make it so we don't have to fuss about creating infrastructure.  Yes, rock solid infrastructure is important but the end user of our application will not notice it at all and doesn't care, unless it sucks.


Pricing per Transaction


The economic benefits of serverless are positive for both the supplier and the consumer of the service.  For the end user, serverless technology is priced based on transactions or how many times it is used.  This means we're not paying for idle VMs that are up just in case somebody hits our website at 3AM in the morning.

A coworker at Cisco showed us how he ran his application for ~$5 a month simply using serverless technologies.  Since his website didn't generate a ton of traffic, it didn't hit the super high thresholds so he paid very little per month for an always on service.  If he had instead used an IaaS then his bill would have been ~$100/month minimum.


For suppliers of cloud services, serverless technology is an opportunity to free up hardware resources.  Renting out all those idle VMs per hour starts to cost money and makes it so the IaaS provider has to invest in more servers that will also sit at < 40% utilization.


The economics of serverless give the trend even more momentum and show another reason why the future of cloud services and development will continue down this path.


API Economy


Application developers have long used 3rd party open source libraries and frameworks to write code faster.  For iOS developers using something like AlamoFire is almost a given.  A Python developer may use Flask,  and a Java developer may use jUnit to do unit testing.  With the trend towards microservices, we're also seeing that many undifferentiated functions of an application are being provided by others who specialize in that microservice.  It's now not just 3rd party libraries we put in our applications:  It's 3rd party services.


For example, instead of wanting to create your own user authentication service and database for your new photo sharing app you're creating, you could instead use a service like Auth0 as part of an application.  Auth0 provides all the user management, provides roles, and make the whole headache of learning a library go away.  Since applications are now developed as a mesh of microservices, what difference does it make if some of those microservices are provided by one of our internal development organization or a third party?


What could go wrong?

So now it has been shown that the world of serverless is upon us and all our current architectures are dead or will soon meet an ill fate.  Right?  Well, not exactly.  There are still some issues in the serverless world that give people pause for concern.  Some of these include:



It's hard to understand how to see what the performance is with your application.  When there are many different functions running around how do you get a handle on the entire system?  The vendors of these systems have created several tools but the concept of getting a handle around the entire application isn't so easy anymore.


Version Control

How do you know which version of the code you're running on?  Do you have to re-version your lambda functions?  How do you test for backwards compatibility?  Solutions are starting to evolve, but still not very main stream.


CI/CD Integration

How do you integrate it into your pipeline?  We've seen some interesting projects like lambda CI that tries to take this on, but like many solutions are early and may be inadequate for enterprise environments.


Vendor Lockin

Most of the vendors advocate serverless strategies that bind a consumer to one cloud.  There are some projects like ones sponsored by iron.io that try to make it cloud agnostic.


Hybrid Cloud

When you have multiple data centers and try to stitch services through them the architectures for this may be left wanting.



Onward with Serverless!


As more organizations have adopted serverless thinking, open source frameworks such as "serverless" (previously called JAWS) have started popping up and supporting more than just one serverless provider.   This year we have also seen the first Serverless Conferences.

The truth is, most organizations want the benefits of a private cloud or their own stack for running container stacks but lack the expertise to do so.  Serverless is about making the headache of managing operating systems (whether they be in VMs or containers) go away.


Serverless can also be seen as an evolution of many of the backend services that started popping up around 2011.  Back then when iPhone and mobile development was really taking off, people needed a backend cloud place for their applications.  Learning to manage a database or spin up a virtual machine were just extra headaches to do when you could use a service like Parse.com (purchased by facebook, then decommissioned at the beginning of this year), Firebase (purchased by Google), Backand and others.


Your Cloud Strategy and the future


A successful cloud strategy must include if not be driven by trends in software development.  Several trends have been talked about in this article such as greater abstraction, microservices, and the use of 3rd party APIs for accelerating application development.  Any company that wishes to offer cloud services should have a well thought out vision of where software development is, where it can go, and what can be made possible by the offerings.  When organization has separate visions for development teams and infrastructure teams harmony flees.


There are two other emerging trends in computer programming that are worth noting.  As both of these become more focused serverless will become even more mainstream.  They are:


1. Functional Programming

2. Machine Learning


Functional programming is more popular now due to the nature of distributed systems, cloud computing, and faster performance of modern servers.  Having many "pure functions" or functions that take in and output data without changing state and without side effects are required more as many concurrent calls happen within an application.  As more distributed application patterns arise, this will be especially important.   And Guess what?  That's what lambda functions are: Stateless functions that can be scaled and called and produce the same results for a given input.  Functional programming is also called Data Derived programming because the data drives the direction of the code.  You may have heard more about more functional languages lately.  They go by names like: Clojure, Erlang, Haskell, etc.


One of the first functional programming language that emerged in the 1958 was LISP.  LISP found a lot of enthusiasm with Artificial Intelligence programmers due to its simplicity and symbol handling.  It is quite interesting that the other big trend in machine learning (a type of AI) is making its way into software development.  Some predict our machines will be coding themselves in the not too distant future.  They already are!


Imagine a future serverless, infrastructureless world with hourless billing and APIs everywhere with machines writing in functional code.


Where do we go now?


So now you may be asking yourself as Axl Rose did when speaking of his sweet child:  "Where do we go now?"  There are pros, cons, tradeoffs, delusions, and victories to be had along the road.  The serverless market may still be young but it's disadvantages are not enough to detour the huge benefits an organization can reap from them:  little-ops (not quite no-ops and not significant enough to be dev-ops), huge cost savings, and little infrastructure overhead.


The evidence for a future serverless, infrastructureless world with hourless billing, APIs everywhere with machines writing in functional code is not imaginary science fiction.  It is instead is a scenic marker along the pathway we're already headed down:  A natural evolution of cloud services and software development practices.

Security has never been more top of mind for Cisco partners and customers. Surging internet traffic, increases in cyber-attacks and growth in IoT has heightened the need for effective, automated, simple and open security solutions. Cisco addresses this need with the Firepower security platform.


The DevNet Firepower Sandbox is developed for the Firepower ecosystem. It offers Cisco security partners and DevNet members an environment to integrate and test their virtualized security services on the Cisco Firepower platform. Users can access a standalone or clustered Firepower appliances with a preinstalled ASA logical device. Inside and outside virtual machines are also provided for simple traffic flow. Users can also load on their own application onto the blade and integrate with the system

It’s a complete prebuilt Firepower environment for DevNet members.


The DevNet Firepower sandboxes (standalone and clustered) are available now to DevNet members. Check them out at the following link. We would be delighted to get your feedback on them.


DevNet Sandbox Firepower Labs




Joseph Kearns

I had the pleasure of supporting and attending the PNWPHP Conference in Seattle. I think the most asked question is what is Cisco doing at a developer conference?


Screen Shot 2016-09-19 at 2.48.30 PM.png


Surprise! We have APIs!

logo_spark_lg@256.pngtropo-glyph_400x400.pngThe developers were super receptive to our Spark and Tropo collaboration APIs and eager to learn more, and even more excited to learn how easy it was to get started.


What I enjoyed most about the conference was the close-knit feel. We all ate together and drank together. In addition to the technical talks, there were talks about mental health and wellness, developer evangelism and developer communities. I learned about OSMI, a non-profit organization bringing mental health awareness to the developer community. The founder Ed Finkler gave a wonderful emotional talk on Friday night that ended with a standing ovation. I encourage you to check out their website. They have great resources for employees and employers.


Here’s my top 5 list:


  1. PHP elephants - Everyone was trading and collecting all different colors
  2. Diverse talks – Technical and non-technical talks. Check out OSMI
  3. Food and drinks - Vegan, vegetarian and gluten-free food options
  4. Great location – Walking distance to hotels, restaurants, and Space Needle
  5. Tessa – Great job coordinating the entire conference! The kudos just keep on flowing:

Screen Shot 2016-09-22 at 4.36.01 PM.png

Filter Blog

By date:
By tag: