This document provides an overview of how to embed messaging and video capabilities into apps using Cisco Spark APIs and SDKs. It discusses the Cisco Spark platform and how developers can build bots, use the REST API and OAuth for authentication, and leverage SDKs for browsers, iOS, and Android. It also covers how guests can access Cisco Spark capabilities without being a registered user through guest mode and JWT tokens. Code samples and demos are provided to illustrate integrating messaging, video calling, and other real-time collaboration features into third party applications and business processes.
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Codemotion
Since its 2013 release, React has brought a new way to design UI components in the world wide web. The same fundamentals have been taken to another important environment in our contemporary world: the mobile applications. We'll see the philosophy behind React Native - learn once, write anywhere - and how this new framework helps developers to build native apps using React.
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Codemotion
In times where a jungle of JavaScript frameworks wants to solve every conceivable problem in web app development, Elm offers a different approach. Elm is a functional language that compiles to JavaScript. It has a user-friendly compiler, a sound type system, built-in immutability and lots of other features that come in handy when developing large, hopefully bug-free, single-page apps. While having fun in the process! In this talk you'll see how Elm works and learn how to use it to build a web app. More importantly, you'll learn the pros and cons of using it over a JavaScript-based solution.
Examples used in the talk: https://github.com/odino/react-native-codemotion
Ever since it launched, RN has gained lots of interest since it opens a new door to web developers: mobile development, with the added of bonus of being able to re-use a substantial chunk of code for both ios and android.
Follow me on this step by step tutorial on how to build a simple mobile app with the latest version of React Native, understanding the concepts behind it, the differences between React and its native version and seeing how you can debug a native app directly in your browser.
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
Building cross-platform mobile apps using open source tools. A manic paced session where I build the same app across 4 different open source mobile development frameworks.
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Codemotion
Since its 2013 release, React has brought a new way to design UI components in the world wide web. The same fundamentals have been taken to another important environment in our contemporary world: the mobile applications. We'll see the philosophy behind React Native - learn once, write anywhere - and how this new framework helps developers to build native apps using React.
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Codemotion
In times where a jungle of JavaScript frameworks wants to solve every conceivable problem in web app development, Elm offers a different approach. Elm is a functional language that compiles to JavaScript. It has a user-friendly compiler, a sound type system, built-in immutability and lots of other features that come in handy when developing large, hopefully bug-free, single-page apps. While having fun in the process! In this talk you'll see how Elm works and learn how to use it to build a web app. More importantly, you'll learn the pros and cons of using it over a JavaScript-based solution.
Examples used in the talk: https://github.com/odino/react-native-codemotion
Ever since it launched, RN has gained lots of interest since it opens a new door to web developers: mobile development, with the added of bonus of being able to re-use a substantial chunk of code for both ios and android.
Follow me on this step by step tutorial on how to build a simple mobile app with the latest version of React Native, understanding the concepts behind it, the differences between React and its native version and seeing how you can debug a native app directly in your browser.
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
Building cross-platform mobile apps using open source tools. A manic paced session where I build the same app across 4 different open source mobile development frameworks.
13 practical tips for writing secure golang applicationsKarthik Gaekwad
Writing secure applications in a new language is challenging. Here are some tips to help get you started for writing secure code in golang. Presented at Lascon 2015
"Tools of the Trade" - 2016 Edition.
Presentation given at the Java Vienna Meetup in December 2016.
My personal opinions on what Software Tools professional JVM based projects should be using at the moment. Ranging from my opinions on Development Tools, Project Management Tools, Continuous Delivery / Continuous Integration, Artefact Management, etc.
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
No relationship in DevOps is more important than that between your CI/CD server and your Binary Repository. Jenkins has long been the go-to server for CI/CD, and JFrog Artifactory has long been one of the most popular integrations with it. This webinar focuses on the new features of the integration, leveraging the Jenkins Pipeline DSL for infrastructure-as-code of your favorite artifactory features whether it be generic, maven, gradle or Docker, and will show an end-to-end example of pipelines across multiple technologies and how powerful these new capabilities are.
CocoaPods talk given at the RubyMotion Inspect 2013 conference.
There is another version that does not include speaker notes available at: https://www.slideshare.net/alloy020/ruby-motion-inspect-2013-without-notes-18676749
The videos that were shown on slide 5 and 6 are available at: https://vimeo.com/63891717 & https://vimeo.com/63891716.
Memaksimalkan Non-Blocking IO pada Node.jsCodePolitan
Slide ini digunakan pada webinar yang diselenggarakan oleh CodePolitan atas dukungan Pixel House Studio dengan tema "Memaksimalkan Non-Blocking IO pada Node.js", yang dilaksanakan pada 15 September 2016 pukul 19.00 WIB
How to build a tool for operating Flink on KubernetesAndreaMedeghini
Operating Flink on Kubernetes can be challenging. Which products are available? Do we need to build our own tool? Which tool do we need? How do we build it? This presentation provides some ideas how to build a Flink Operator and it contains a link to a proof of concept available on GitHub
Phoenix web framework is awesome. Backed by the beauty and productive Elixir and performance and realibility of Erlang VM. This presentation is for Singapore Elixir Meetup in March 2016
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...Codemotion
Abstract Syntax Trees (or ASTs) are the core of most tools we use in JavaScript, from Babel to ESLint, from prettier to codemods. In this talk we see what they are, how they power such tools and how to use them directly to develop custom solutions to everyday problems.
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
Scala is the only language that can be used to produce code that can be "trans/compiled" for the JVM, in Javascript and in native binary. This allows to write libraries that are usable in JVM and JS using the power of functional programming (i.e. cats, scalaz), generic programming (i.e. shapeless) and macro/scalameta available in Scala. In this talk, we will see how to write a Scala application backend and a SPA (scala.js/scala-js-react) that share the same code as a business logic, datamodels and transparent API call (JVM/JS) in Scala (via autowire/akka-http/circe).
13 practical tips for writing secure golang applicationsKarthik Gaekwad
Writing secure applications in a new language is challenging. Here are some tips to help get you started for writing secure code in golang. Presented at Lascon 2015
"Tools of the Trade" - 2016 Edition.
Presentation given at the Java Vienna Meetup in December 2016.
My personal opinions on what Software Tools professional JVM based projects should be using at the moment. Ranging from my opinions on Development Tools, Project Management Tools, Continuous Delivery / Continuous Integration, Artefact Management, etc.
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
No relationship in DevOps is more important than that between your CI/CD server and your Binary Repository. Jenkins has long been the go-to server for CI/CD, and JFrog Artifactory has long been one of the most popular integrations with it. This webinar focuses on the new features of the integration, leveraging the Jenkins Pipeline DSL for infrastructure-as-code of your favorite artifactory features whether it be generic, maven, gradle or Docker, and will show an end-to-end example of pipelines across multiple technologies and how powerful these new capabilities are.
CocoaPods talk given at the RubyMotion Inspect 2013 conference.
There is another version that does not include speaker notes available at: https://www.slideshare.net/alloy020/ruby-motion-inspect-2013-without-notes-18676749
The videos that were shown on slide 5 and 6 are available at: https://vimeo.com/63891717 & https://vimeo.com/63891716.
Memaksimalkan Non-Blocking IO pada Node.jsCodePolitan
Slide ini digunakan pada webinar yang diselenggarakan oleh CodePolitan atas dukungan Pixel House Studio dengan tema "Memaksimalkan Non-Blocking IO pada Node.js", yang dilaksanakan pada 15 September 2016 pukul 19.00 WIB
How to build a tool for operating Flink on KubernetesAndreaMedeghini
Operating Flink on Kubernetes can be challenging. Which products are available? Do we need to build our own tool? Which tool do we need? How do we build it? This presentation provides some ideas how to build a Flink Operator and it contains a link to a proof of concept available on GitHub
Phoenix web framework is awesome. Backed by the beauty and productive Elixir and performance and realibility of Erlang VM. This presentation is for Singapore Elixir Meetup in March 2016
Gabriele Petronella - Mythical trees and where to find them - Codemotion Mila...Codemotion
Abstract Syntax Trees (or ASTs) are the core of most tools we use in JavaScript, from Babel to ESLint, from prettier to codemods. In this talk we see what they are, how they power such tools and how to use them directly to develop custom solutions to everyday problems.
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
Scala is the only language that can be used to produce code that can be "trans/compiled" for the JVM, in Javascript and in native binary. This allows to write libraries that are usable in JVM and JS using the power of functional programming (i.e. cats, scalaz), generic programming (i.e. shapeless) and macro/scalameta available in Scala. In this talk, we will see how to write a Scala application backend and a SPA (scala.js/scala-js-react) that share the same code as a business logic, datamodels and transparent API call (JVM/JS) in Scala (via autowire/akka-http/circe).
Nicola Corti - Building UI Consistent Android Apps - Codemotion Milan 2017Codemotion
Consistency is probably one of the best-known design principles. Consistent UIs are easy to use, easy to learn and frustration free. Nonetheless, they are also extremely easy to break! Just a few development iterations are enough to totally mess up your color palette or your icon sets. Yelp ships its experience across Android, iOS and Web apps used by millions of users. In this talk, you will get an insight into the challenges we face on a daily basis ensuring our visual consistency, and the solutions we adopted.
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - ...Codemotion
When we were developing our SoundCloud app for Xbox One, something became very obvious during usability testing: signing in with a game controller really sucks. Entering text requires navigating a virtual keyboard to individual letters, numbers, and characters one at a time – such a nightmare! Other connected devices are even more extreme, with no way to enter text at all. Learn how to implement what we call “remote device sign-in”, a way for people to sign in to devices with limited input capability that is secure, simple, and fast.
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
Once you start working with Big Data systems, you discover a whole bunch of problems you won’t find in monolithic systems. Monitoring all of the components becomes a big data problem itself. In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system using tools like: Web Services,Spark,Cassandra,MongoDB,AWS. Not only the tools, what should you monitor about the actual data that flows in the system? We’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Gabriele Nocco - Massive distributed processing with H2O - Codemotion Milan 2017Codemotion
H2O è la piattaforma di analisi dati distribuita più interessante degli ultimi anni, inserita da Gartner come Visionary nella Data Science. Permette di eseguire elaborazioni massivamente parallele, e si collega facilmente a piattaforme essenziali per il calcolo distribuito ed l'analisi predittiva, incluse Spark, TensorFlow e MxNet. Nel talk conosceremo l'architettura di questa libreria, le sue funzionalità e potenzialità, tramite demo interattive con Spark, TensorFlow, ed alcuni algoritmi particolarmente in voga.
Giovanni Laquidara - Hello ARCore - Codemotion Milan 2017Codemotion
Get ready to develop a brand new experiences that seamlessly blend the digital and physical worlds with Android! We will learn the potential of the new AR SDK from Google, ARCore. By looking its 3 key technologies: Motion tracking, Environmental understanding and Light estimation We will have a clear vision of what We can develop with. You will be back at home with a deeper understanding of how to create AR apps with ARCore using your development environment and ready-to-reuse code samples.
Matteo Valoriani - How Augment your Reality: different perspective on the Rea...Codemotion
If you think there's been a lot of talk about Augmented Reality and Virtual Reality this year, 2018 is going to blow you away. Apple with ARkit, Google with ARCore , Microsoft with HoloLens, Facebook with Oculus and many others are working to transform our Reality with new products and services in the not-too-distant future. Therefore Apple, Microsoft, Google and Facebook is approaching AR/VR from different perspectives and in this session we will try to understand how these different technologies work and which best suits the different areas (industry 4.0, tourism, healthcare, ...)
James Williams - Demystifying Constraint Layout - Codemotion Milan 2017Codemotion
ConstraintLayout has had the reputation of being very powerful but difficult to learn. Too many times have I talked to developers who were reluctant to use it in their designs because it was "too magical" and they couldn't understand what it was doing. Despite the learning curve, ConstraintLayout allows you to make your designs more responsive and ultimately make your UI code faster to render. It also includes some design features that allow you to more accurately implement your designer's work. In this session, you'll learn how to make sense of the features of ConstraintLayout.
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...Codemotion
Service Fabric è la piattaforma, utilizzabile sia su Azure, sia on-prem che su altri cloud provider, per l'implementazione, distribuzione e gestione di soluzioni stateful e scalabili basate su microservizi. La sessione consentirà di capire quali sono i concetti alla base di Service Fabric e quali servizi e funzionalità fornisce la piattaforma sia a livello di infrastruttura che per lo sviluppatore.
Vincenzo Chianese - REST, for real! - Codemotion Milan 2017Codemotion
Let’s face it: the term REST is treated as a buzzword these days rather than as an accurate description of the Web’s blueprints. Everybody claim to do REST APIs; the truth is - nobody is doing REST API. It’s time to stop this. In my presentation I’d like to go with you through the original specifications and build an API that will respect all the constraints. All live, no prepared things. Then, we will compare the results with other API that claim to be REST. You will be surprised how different the results will be!
Maurizio Moriconi - ARKit: Augmented Reality made simple - Codemotion Milan 2017Codemotion
How to use iOS device camera and motion features to produce augmented reality experience! In this talk we do an overview on this new Apple framework and make some demos to show how developers implements cool features in our apps.
Claudio Carboni - ArcGIS platformthe foundation of your idea - Codemotion Mil...Codemotion
The 'location' or 'positioning', is one of the most valuable and underutilized information for an asset or a physical person. The possibility to extend enhanced collaboration solution, such as Spark, into processes and applications designed around the 'Science of Where' provide an incredible capability to solve industry-relevant problems, not easy or cost-effective to address today. The workshop deals with real-life use cases of Spark enabled solutions for asset tracking and asset protection. You will also learn how to use Cisco Spark to share asset location info within a biz process.
Anna Makarudze - Django Girls: Inspiring women to fall in love with programmi...Codemotion
Django Girls is a non-profit organization that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support. Our goal is to bring more amazing women into the world of technology and increase the diversity in the Django community. We believe that technology is for people and everyone should be able to build it. We are making technology more approachable by creating simple tools and resources designed with empathy. In my talk, I will share on how Django Girls was started and the journey travelled so far in empowering women across the globe.
Erik Tiengo - Embedding Cisco Spark and Location applications (ESRI) into bus...Codemotion
The 'location' or 'positioning', is one of the most valuable and underutilized information for an asset or a physical person. The possibility to extend enhanced collaboration solution, such as Spark, into processes and applications designed around the 'Science of Where' provide an incredible capability to solve industry-relevant problems, not easy or cost-effective to address today. The workshop deals with real-life use cases of Spark enabled solutions for asset tracking and asset protection. You will also learn how to use Cisco Spark to share asset location info within a biz process.
Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion M...Codemotion
Stack Overflow serves over 100 million unique visitors a month, serving a page in 20ms using 9 web servers and 2 database servers. In this talk I will cover how we develop, build, configure, deploy, monitor and maintain the site, as well as cover aspects of working in a team distributed around the world.
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017Codemotion
Feeling uninspired and tired of constantly building the same layouts? Let’s leverage the CSS superpowers you might have heard about before, but haven’t already used. Let’s explore new CSS features that give us a great set of tools and enable to do amazing things on the web! The future of web graphics and CSS as a design language is bright, and finally it will make us less dependent on the image editors. We’re entering the new era with in-browser designing. Don’t stay behind and get some fresh air of creativity directly in the web browser.
Rich, interactive web applications AKA fat clients are now commonplace. There are so many frameworks for building these rich client applications, and the debate among developers is which of these frameworks to use. As designers and developers we need to step back, and ask ourselves when and how we should enrich our client applications and when or why not. Let’s dig in to the question: Why do we even want fat clients, and when should we use them? Let’s examine the complications such clients introduce so we can weigh them against all the benefits.
If it takes minutes to code a bot, building professional bots represents quite a challenge. Soon you realize you need serious programming and API architecture experience but also “Bot” specific skills. In this session, we'll first show the basics to build a ChatBot. Then we'll explore the challenges faced when creating advanced Bots (Context storage, NLP approaches, Bot Metadata, OAuth scopes), and discuss interesting opportunities from latest industry trends (Bot platforms, Serverless, Microservices). This talk is about showing the code and sharing lessons learnt.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Cisco DevNet
S’il est possible de créer un bot en quelques minutes, construire des assistants interactifs professionnels représente un réel challenge : assez vite, nous voilà confrontés à des patterns de développements avancés, des enjeux d’architecture propres aux API Web. Sans compter les compétences spécifiques au domaine des bots.
Au cours de cette session, nous présenterons le code de bots permettant de gérer des interactions Chat et Voix, et explorerons les défis rencontrés lors de la construction de ces bots : stockage des contextes, approches NLP, scopes OAuth, meta-données.
Nous présenterons ensuite les tendances actuelles en terme d’architecture : plateformes de bots, exécution de bots sous forme de micro-fonctions / serverless…
Depuis un an, j'interviens sur la mise en place de bots, et ai pu coder un framework de bots en nodejs, et tester quelques framewokrs de bots. Ce talk est un retour d'expérience.
Le support est en anglais et au format 4/3.
Rome 2017: Building advanced voice assistants and chat botsCisco DevNet
If it takes minutes to code a simple bot, building professional bots represents quite a challenge. Soon you realize you need serious programming and API architecture experience but also “Bot” specific skills. In this session, we'll first show the code of advanced Chat and Voice interactions, and then explore the challenges faced when building advanced Bots (Context storage, NLP approaches, Bot Metadata, OAuth scopes), and discuss interesting opportunities from latest industry trends (Bot platforms, Serverless, Microservices). This talk is about showing the code and sharing lessons learned.
Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz ...Codemotion
If it takes minutes to code a simple bot, building professional bots represents quite a challenge. Soon you realize you need serious programming and API architecture experience but also “Bot” specific skills. In this session, we'll first show the code of advanced Chat and Voice interactions, and then explore the challenges faced when building advanced Bots (Context storage, NLP approaches, Bot Metadata, OAuth scopes), and discuss interesting opportunities from latest industry trends (Bot platforms, Serverless, Microservices). This talk is about showing the code and sharing lessons learnt.t
Direct from DevNet@TAG in Milan and Rome in May 2016! Learn about Cisco DevNet, Spark and Tropo APIs any why there's never been a better time to innovate with Cisco.
DevNet Express - Spark & Tropo API - Lisbon May 2016Cisco DevNet
Direct from the Cisco DevNet Lisbon Portugal Express event in May 2016. Learn about Cisco DevNet, Spark and Tropo APIs any why there's never been a better time to innovate with Cisco.
How to Build Advanced Voice Assistants and ChatbotsCisco DevNet
Learn more about the CodeMotion Voice Machine and Cisco DevNet Chatbot. Understand what a typical bot journey is and where to go to get more information about Cisco Spark and Tropo.
BotCommons: Metadata for Bots - Devoxx 2017Cisco DevNet
The lack of common practices around bot software make it to difficult to implement automated tooling for bots (such as discovery, versions transitioning, bot status) as well as inform end-users efficiently (such as bot commands, usage policy, feedback submission, point of contact for support).
The goal of the BotCommons project is to define some industry common practices to publish metadata for bots.
This BOF is about sharing current thoughts and drive the initiative further with developer communities and industry professionals.
https://cfp.devoxx.be/2017/talk/HHX-6365/BotCommons:_Metadata_for_Bots
This webinar deck provides a primer on DreamFactory's open source REST API platform, including:
- Cloud installation options
- Configuring an application
- Connecting to a SQL database
- Setting up role permissions
- Performing database queries with the REST API
- Making API calls to your database using DreamFactory's mobile SDKs
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp
Thanks to the recently released v4 of the Bot Framework SDK, creating your first bot is a breeze; still, implementing a production viable one is no easy task since several aspects must be taken into account such as user authentication, integration within existing apps, multi language support, technical considerations (e.g.: Azure Functions vs. MVC Core, Blob Storage vs. CosmosDB) and, last but not least, operational costs.
Moreover, you might want to reuse your bot’s Azure hosted, Cognitive Services-backed code to address Amazon’s Alexa users to avoid the need to implement (and evolve) it twice.
Eager to learn how to do that for real? Don’t miss this code-based talk then.
Mobile SDK: Considerations & Best Practices LivePerson
Mobile SDKs are a great way to make your service or API easily consumable by the large number of developers out there looking for state of the art tools to make their apps stand out in the competitive marketplaces, but building a stable, compatible and successful SDK is quite a challenge.
In this talk we the technical and design challenges involved in developing an efficient mobile SDK that is highly compatible with its host mobile app, and the various considerations we took into account and the lessons we’ve learned while designing and building LivePerson’s native mobile SDK.
Join to learn programming with React and Cisco Collaboration Devices API: listen to ‘RoomAnalytics’ events sent by each device’s Camera and update a provided React map to show how many developers join some workshops. Then, you’ll learn to create custom Controls and deploy Javascript Macros onto the devices.
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016Codemotion
What if your surveillance drone could wake you up via a SMS in the middle of the night ? What if an interactive assistant could speak you the next CodeMotion session and give you directions ? Join this session to experience how to turn your data into engaging interactions. We'll show case an Innovative Drone demo, and an interactive Voice & Chat assistant for the CodeMotion event, then present the Cisco Spark & Tropo Cloud APIs. Want to try these by yourself ? pass by the codelabs where our technical mentors will help you ramp up and build your first Text to Speech and Bot prototypes.
Similar to Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Milan 2017 (20)
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
Blockchain (and Cryptocurrency) is an evolution of 20-year old research from scientists like Chaum, Lamport, and Castro & Liskov. Due to the current hype, it's hard to distinguish beneficial aspects of the technology from a desire for a "silver bullet" for device security, verifiable logistics, or "saving democracy". The problem: blockchain introduces new security challenges - and blind adoption without understanding reduces overall security. In this talk, Melanie Rieback and Klaus Kursawe explain the pitfalls and limits of blockchain, so you can avoid making your applications LESS secure.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
Networking is a core part of computing in the digital world we inhabit. But, how well do you know how it works? Do you understand all the moving parts of the OSI stack inside your computer, and how the network is actually put together? How can this ever work? This guided safari of layers, standards, protocols, and happenstance will bring us close to the copper wire, and up through the layers of CDMA/CD, ARP, routing and HTTP. We will make a few excursions through patchworks that still work forty years later, and cleverly designed mechanisms that show that simplicity is the only way to last.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Enhancing Performance with Globus and the Science DMZ
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Milan 2017
1. How to embed
Messaging andVideo
in your apps
API Evangelist @CiscoDevNet
@SteveSfartz
Stève Sfartz
DEMOS
AND CODE
INTENSE
2.
3. /Cisco/DevNet/SteveSfartz
API Evangelist @CiscoDevNet
Cisco Spark &Tropo APIs
NodeJS mainly, a bit of #golang
France and all around Europe
hosted @PIRL – Paris Innovation
Center & Research Lab
twitter://@SteveSfartz
github://ObjectIsAdvantag
“vision without
execution is
hallucination”
-- Thomas Edison
stsfartz@cisco.com
@SteveSfartz
4. so what’s on the menu
• Tour the potential ofVideo Calls
• Messaging from code
• Calling from code
• Demos & tech details
6. ENGAGEMENT
TIME
Optimizing the Space between the Spaces
REALTIME
Occasional
Messaging
Scheduled
Meetings
Ad Hoc
Meetings
Furious
Chat
How do I escalate from chat
to a live meeting without killing our
momentum?
We’re on a roll in this meeting, if only I
had a little more time to finish my thoughts.
I need a few more
answers before I can
assign the action items
Where did that list of
important reference
articles end up?
9. Secure, scalable, continuous collaboration
Cisco Spark Platform
Apps and
Endpoints
On Premise Services Cloud Based Services
Single Experience Across Devices & Applications
Apps and
Endpoints
12. ?! Now what if your app could get
these Messages,Audio/Video
super powers ?!
13. Cisco Spark ‘Free’ plan
Web, Desktop, Mobile clients
Illimited messaging & spaces
Up to 3 participants in a Call
Developer access to Cisco Spark APIs
https://developer.ciscospark.com
14. Cisco Spark REST API
14
GET
POST
DELETE
PUT
/Rooms
/Memberships
/Messages
/Webhooks
/People
/Teams
developer.ciscospark.com/
18. Cisco Spark
Cloud Service
1. interacts in spaces
via a CiscoSpark client
Cisco Spark User
Your Bot code running
On-premise or on a PublicCoud
2. posts notifications to
registeredWebHooks
Publicly accessibleAPIs
3. posts messages
as notifications fly in
Bot Architecture: Webhooks
Register events your
bot is interested to
listened to
Messages / created
Memberships / created
As events happen in
spaces, receive
notifications
23. Step 3 – App Requests AccessToken
duittenb
With the received Auth Code, app.html does a HTTPS POST to spark
with the client ID & secret to request the AccessToken.
HTTPS POST send :
https://api.ciscospark.com/v1/access_token
grant_type = authorization_code
redirect_uri = http://myserver.com/app.html
code = auth code…
client_id = oif8we28382u398u2938u
client_secret = hf33we28382uf8we2838Zx
http://myserver.com
24. Step 4 – Spark Response
HTTP POST response
{
"access_token" :"ZDI3MGEyYzQtNmFlN0NDNhLWFlN",
"expires_in” :1209600, //seconds
"refresh_token":"MDEyMzQ1Njc4OTAxMjM0NTY3ODkw",
"refresh_token_expires_in":7776000 //seconds
}
duittenb
Spark returns the AccessToken to the Application
Some applications may store this access token in a secure way so
it can be re-used when a user logs into the Application
http://myserver.com
25. Cisco Spark for Developers
developer
bot
oauth
jwt
token REST API
SDKs
Browsers,
iOS, Android
all Spark
features
26. Spark SDKs
Calling
• Calling
• Call Events
Specs
iOS SDK - swift
• iOS 9 and 10
Browsers SDK - WebRTC
• Chrome - current
• Firefox - current
CODECS
• H264
• Opus
Call &
Media Controls
• Call Control
• AudioControl
• VideoControl
Other
Functions
• Persistent
registration
• Feedback
• Push
notifications
43. API access token from the user JWT token
POST https://api.ciscospark.com/v1/jwt/login
Authorization: <jwt-user-token>
{
"token": "eyJhbGci.eyNlX3R5cGU.I4zgVxATOH9Y"
"expiresIn": 21599
}
45. Secure, scalable, extensible Conversations
• Desktop, Mobile, Web clients
• APIs & SDKs to extend the platform
• API tokens, Oauth, JWT
• Key Management Server for end to end security
• WebRTC,Voice over IP
• SIP addresses
47. Get empowered at
Learnings labs
Fog computing
Sandboxes
ready to use
Kubernetes cluster
for DevNet members
48. Other talks at CodeMotion
today 14:10: Embedding Cisco Spark and Location
applications (ESRI) into business processes
saturday 12:30: Microservices and containers
networking: Contiv, deep dive and demo
BEFORE YOU START : run the CiscoDevNet and roomId bots
Who has already heard of Spark ?
Who has already heard of Cisco ?
Cisco is 90% market share in networking WW
and major actor in collaboration software (> 50% WW)
Today, it will be about collaboration and building the next gen app.
We have opened our secrete sauce to application developers, and continue to open it.
I have 30 minutes to show you the use cases it opens to you,
and the dirty details
Demoes flow:
- experiences
-- Desktop
-- Mobile
-- Web
-- Device
=> our goal: bring it to your app
- message
- audio & video calls
- meetings
- Widget:
-- space-grid: he just went crazy with ChatOps
-- customizable => what if I only wanted to chat
-- and what if I wanted anybody to chat with my bot, invite non Spark users to the discussion
=> gest mode
Then we have a pretty powerful platform that can do messaging, audio/video call, extensible and scalable,
Web, Desktop and Mobile, and you can start for free:
- Spark Free account
- Spark Developer Portal
- Create your 'guest' developer organisation (coming)
What's next ? what's the vision for the future
Now what is I could invite an Professional assistant to the game
- RoomFinder
- Spark assistant
=> Spark is an extensible, scalable and secure Cloud platform
to build your new gen app or business
I am a technical evangelist at DevNet – Cisco Developer Program
It means Cisco pays me to create developer resources (labs & samples), explain and teach technology at conferences and enterprise workshops, and sometimes support hackathons.
I am based in France, and report to the best manager in the world named Mandy, sitting a the back of the room,
And I love Italy, my wife’s family living in Sardegna, I spend most of my vacations in Sardaigna / en Bosa Marina, perto de Alghero.
This intensity various from occasional messaging, where I just send a few messages here and there, to something I call furious chat, where everyone is sending messages at once. In fact, if they had just spoken those messages it would have been a meeting. And in fact the next level of intensity is an ad-hoc meeting, and perhaps the most intense is a scheduled, more formal meeting. The line for real-time is around here – at furious chat – when things are happening at that very moment together.
All of the pain points are on the transitions.
First pain point – escalating from furious chat into the meeting itself. Requires all of this coordination to figure out how to do that – whose bridge to use? Are you in a video room and how do we get you in?
Second pain point – sharing information during a meeting- the chat in the meeting isn’t the same chat. You can email it after the meeting…
Third paint point- how do I know when to switch meetings when I have all of these back to back meetings?
Forth pain point- work doesn’t stop when the meeting ends, if anything that’s when it starts and tracking actions requires connecting with people
Cisco Spark addresses all of these pain points and all of these points of “work”. We want Spark to be the platform that all people use to meet, collaborate, chat and call so that all interactions can be continuous and agile.
Conversations (messages, audio, video, all of them)
At work, on the way, home office, family & friends
It’s not one app, it’s all apps
It’s not one personal device, it’s all devices
It also comes from everywhere = connected world
Spark platform
=> Bring this power to the developer via a set of APIs and SDK we’ll demo
Conversations (messages, audio, video, all of them)
At work, on the way, home office, family & friends
It’s not one app, it’s all apps
It’s not one personal device, it’s all devices
It also comes from everywhere = connected world
Spark platform
=> Bring this power to the developer via a set of APIs and SDK we’ll demo
Cisco supports third-party endpoints across a wide range of operating systems.
We offer three client applications integrated to help mobile professionals work at optimal productivity, wherever they are and whatever device they use.
Cisco Jabber is our all-in-one UC application.
Cisco WebEx is the industry-leading web conferencing application.
Cisco Spark instantly creates a place for teams to work together, where their work can live, and provides a way to stay connected to it all.
These applications are tightly integrated with each other and can be accessed across a range of devices including laptops, tablets, mobile phones, and Cisco collaboration endpoints.
This range of endpoints from room systems to software running on mobile devices is tailored to support the various ways in which people work – all the way from your pocket to the boardroom. And they all work *together* to deliver a consistent, delightful, no-compromise collaboration experience.
<presenter note>: Depending on the opportunity, you may want to drill down on one client or another and field questions, perhaps pull additional slides from other EBC “Chapters.”
It is strongly recommended that you encourage the account team to create a Spark room for the participants in this EBC as a way to follow up/stay in touch/share the slides from the day. If AM creates this now, you can circle back and do a live demo later during the session.
Create a space « CodeMotion Cisco Spark API »: hey Anna, where is this happening already ?
Calling you: answer on Phone
Calling you: answer via Desk
We’ll leverage Spark APIs to implement this use case
Spark APIs are accessible at https://developer.ciscospark.com/
This is where you get your API token and run thru the interactive documentation
developer.ciscospark.com
Create a new space: « API demo »
Post a message => people use it to do ChatOps (later)
Drop a document
Interact with a bot: CiscoDevNet
Create a Bot Account
Run an existing bot on Glitch: pick https://github.com/CiscoDevNet/botkit-template
Create an Integration redirecting to Requestbin
Getting an Access Token
If the user granted permission to your app, Spark will redirect the user's web browser to the redirect_uri you specified when entering the grant flow. The request to the Redirect URL will contain a code parameter in the query string like so:
http://your-server.com/auth?code=YjAzYzgyNDYtZxx3YS00OWZkLTg2YTgtNDc3Zjg4YzFiZDlkNxxlN2FhMjMtYzUz
Your app will then need to exchange this Authorization Code for an Access Token that can be used to invoke the APIs. To do this your app will need to perform an HTTP POST to the following URL with a standard set of OAuth parameters. This endpoint will only accept an x-www-form-urlencoded body.
https://api.ciscospark.com/v1/access_token
The required parameters are:
grant_type This should be set to "authorization_code"
client_id Issued when creating your app
client_secret Remember this guy? You kept it safe somewhere when creating your app
code The Authorization Code from the previous step
redirect_uri Must match the one used in the previous step
NOTE: in THIS occasion the redirect_uri does NOT have to be encoded and can be send ‘as is’
duittenb@cisco.com
(DJ) Q: Is this access token stored on myserver.com/app or in a user cookie? Do you have to go through this procedure every day?
How do you check if a user has a valid access token? Stored where?
Spark will then respond with JSON containing an Access Token that's good for 14 days and a Refresh Token that expires in 90 days. The Refresh Token can be used to generate a new Access Token when the current one expires:
duittenb@cisco.com
CALLING
•Dial by PersonEmail
•Dial by SIP Address
CALL EVENTS
•Call progress events (ringing, connected, rejected)
•Incoming call event
•Remote push notification (closed app) (developer responsibility)
•Local push notification (backgrounded app) (developer responsibility)
CALL CONTROL
•Accept / Reject
•Hangup
AUDIO CONTROL
Audio output select (handset / headset / speakerphone) (iOS + JS)
Mute/unmute local audio
Mute/unmute remote audio
VIDEO CONTROL
•Mute/unmute local video
•Mute/unmute remote video
•Camera select
•Keep the aspect ratio (iOS only)
•Rate call quality (iOS+JS)
Incoming call notification for iOS
Envision a mobile application for a clothing store, that lists items for sale and has an automated ordering system. Perhaps you go to a shirt and some jeans and when you go to the checkout, there was a problem processing your payment. When that happens, from right inside the app, you are prompted with an option to join a video call with a customer service rep. When that option is selected, the video call natively starts right in the same clothing store application– no need to open or install any other applications. This feature can make the user experience much more efficient and friendly, and made possible by using Spark Video SDK for iOS (Android will be coming very soon!)
Go to the SDK doc https://developer.ciscospark.com/sdk-for-browsers.html
Show the documentation: https://ciscospark.github.io/spark-js-sdk/api/
Web Dialer: https://webdialer.chhab.rocks/login with steve.sfartz@gmail.com
- spark: stsfartz@cisco.com
- sip: ppalomo-demo-dx80@cisco.room.ciscospark.com
Think of the Cisco Spark client as two separate pieces. RECENTS for all of your latest interactions, and SPACE for chat and calling capabilities.
We take those 2 pieces of the Spark client and turn them into the RECENTS widget and SPACE widget
Super Easy Integration
Responsive UI built with HTML5 and React.js
New features automatically gets pushed via public CDN
Open source libraries
WebRTC A/V Calling & Messaging
Widget demo with paola.mancini@italtel.com and space
Hackathon demo with hackvivatech-paris/widgets/widget-space-global-events.html
Space widget in hackathon-resources, put the access-token of the guest
Contact someone
JWT
HS256
Both choices refer to what algorithm the identity provider uses to sign the JWT. Signing is a cryptographic operation that generates a "signature" (part of the JWT) that the recipient of the token can validate to ensure that the token has not been tampered with.
RS256 (RSA Signature with SHA-256) is an asymmetric algorithm, and it uses a public/private key pair: the identity provider has a private (secret) key used to generate the signature, and the consumer of the JWT gets a public key to validate the signature. Since the public key, as opposed to the private key, doesn't need to be kept secured, most identity providers make it easily available for consumers to obtain and use (usually through a metadata URL).
HS256 (HMAC with SHA-256), on the other hand, is a symmetric algorithm, with only one (secret) key that is shared between the two parties. Since the same key is used both to generate the signature and to validate it, care must be taken to ensure that the key is not compromised.