In the era of Internet of Things, connecting things to the mobile devices and web is becoming ubiquitous. You can control room light using your mobile phone. You can monitor your heart rate and weight on browser. Front-end developers like you already have skills to prototype software ideas, so why not prototyping the Internet of Everything?
- Arduino
- Johnny-Five JS robotics framework
- PubNub Data Stream Network
Building Realtime Javascript Apps with PubNubTomomi Imura
A talk for KTH Royal Institute of Technology students for DM2518 Mobile Development with Web Technologies.
This talk covers high-level overview of PubNub, and JavaScript APIs focusing on location-aware services and prototyping IoT. It also covers EON.js for mapping, and PubNub's new service, BLOCKS sneak preview.
Five 'Must Ask' Questions When Considering a Cloud Services Brokerage Busines...jamcracker4677
The first step in considering a Cloud Services Brokerage (CSB) model for your business or IT needs is to understand and formulate the business model. This informative webinar addresses 5 key questions to consider when developing your CSB business case:
Business Case Justification: Whom will I be operating the CSB for (e.g. Internal users, External customers and channels, or both) and what business issues should I be focusing on?
Economic Model: What are the revenue gains and/or cost savings metrics and target results I should expect to achieve with a CSB?
Vendor Management: How do I manage varying contracts, SLAs and integrations with disparate Cloud Service Providers (CSPs) being delivered via my CSB?
Operating Model: What's the best approach for my organization in deploying and operating a CSB as well as supporting my users?
Risk Mitigation: What are the business and technical risks with the CSB model, and how can I best mitigate them?
Using the FLaNK Stack for edge ai (apache mxnet, apache flink, apache nifi, a...Timothy Spann
Using the FLaNK Stack for edge ai (apache mxnet, apache flink, apache nifi, apache kafka, apache kudu)
Demos and how to build applications at scale with real-time events in Apache NiFi to Apache Kafka to Apache Flink then stored to Apache Kudu and Apache HDFS. The easy button.
We issued 20 young coders with smartphones pre-loaded with an app that gathered data on the network activity of the other apps they used. Their data was captured using the Python-based data portal CKAN, analysed with SciKit-Learn, then returned to them using Docker and the Ipython Notebook. Python also played a role in the reverse-engineering of some of the more interesting apps we discovered.
Building Realtime Javascript Apps with PubNubTomomi Imura
A talk for KTH Royal Institute of Technology students for DM2518 Mobile Development with Web Technologies.
This talk covers high-level overview of PubNub, and JavaScript APIs focusing on location-aware services and prototyping IoT. It also covers EON.js for mapping, and PubNub's new service, BLOCKS sneak preview.
Five 'Must Ask' Questions When Considering a Cloud Services Brokerage Busines...jamcracker4677
The first step in considering a Cloud Services Brokerage (CSB) model for your business or IT needs is to understand and formulate the business model. This informative webinar addresses 5 key questions to consider when developing your CSB business case:
Business Case Justification: Whom will I be operating the CSB for (e.g. Internal users, External customers and channels, or both) and what business issues should I be focusing on?
Economic Model: What are the revenue gains and/or cost savings metrics and target results I should expect to achieve with a CSB?
Vendor Management: How do I manage varying contracts, SLAs and integrations with disparate Cloud Service Providers (CSPs) being delivered via my CSB?
Operating Model: What's the best approach for my organization in deploying and operating a CSB as well as supporting my users?
Risk Mitigation: What are the business and technical risks with the CSB model, and how can I best mitigate them?
Using the FLaNK Stack for edge ai (apache mxnet, apache flink, apache nifi, a...Timothy Spann
Using the FLaNK Stack for edge ai (apache mxnet, apache flink, apache nifi, apache kafka, apache kudu)
Demos and how to build applications at scale with real-time events in Apache NiFi to Apache Kafka to Apache Flink then stored to Apache Kudu and Apache HDFS. The easy button.
We issued 20 young coders with smartphones pre-loaded with an app that gathered data on the network activity of the other apps they used. Their data was captured using the Python-based data portal CKAN, analysed with SciKit-Learn, then returned to them using Docker and the Ipython Notebook. Python also played a role in the reverse-engineering of some of the more interesting apps we discovered.
An Android Project which was developed to give the user's a brand new chatting experience and was presented as Bachelor of Engineering Completion Project. It was successfully implemented on a local network to explore its functionality, and it has the potential to be implemented on a global scale.
Secure protocol design for decentralized worldHacken
Kristof de Spiegeleer (Founder of Threefold) shared important security insights about the field where his company operates and the products it develops.
Hardware hackers - hacking appliances with netduino + xamarinbryan costanich
Get inspired to build your own connected things as I walk through hacking household appliances into connected things that you can control with your phone using Netduino and Xamarin. Come learn how Netudino.Foundation (http://Netduino.Foundation) makes creating connected things in C# a piece of cake, with a massive library of peripheral drivers for sensors, LCDs, etc., and a handrolled API that makes building smart hardware a plug and play experience.
Programmers love Python because of how fast and easy it is to use. Python cuts development time in half with its simple to read syntax and easy compilation feature. Debugging your programs is a breeze in Python with its built in debugger. Using Python makes Programmers more productive and their programs ultimately better. Python is continued to be a favorite option for data scientists who use it for building and using Machine learning applications and other scientific computations.
Python runs on Windows, Linux/Unix, Mac OS and has been ported to Java and .NET virtual machines. Python is free to use, even for the commercial products, because of its OSI-approved open source license.
Python has evolved as the most preferred Language for Data Analytics and the increasing search trends on python also indicates that Python is the next "Big Thing" and a must for Professionals in the Data Analytics domain.
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...ITCamp
If there is a common practice in architecting software systems, it is to have them store the last known state of business entities in a relational database: though widely adopted and effectively supported by existing development tools, this practice trades the easiness of implementation with the cost of losing the history of such entities.
Event Sourcing provides a pivotal solution to this problem, giving systems the capability of restoring the state they had at any given point in time. Furthermore, injecting mock-up events and having them replayed by the business logic allows for an easy implementation of simulations and “what if” scenarios.
In this session, Andrea will demonstrate how to design time travelling systems by examining real-world, production-tested solutions.
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo Sencha
Big data and Internet of Things (IoT) connectivity is increasingly forcing enterprises to find solutions to organize and visualize large amounts of incoming data. To allow rapid decision-making for everything from immediate actions in tactical situations to strategic analysis and reporting, developers need the ability to provide a flexible dashboard that allows users to visualize critical insights from all that data, on any screen and device. This session will demonstrate a dashboard app that provides big data analysis capabilities and interacts with IoT devices via Ext JS constructed components including Grids, Charts, and Widgets.
Getting more out of Matplotlib with GRJosef Heinen
Python is well established in software development departments of research and industry, not least because of the proliferation of libraries such as SciPy and Matplotlib. However, when processing large amounts of data, in particular in combination with GUI toolkits (Qt) or three-dimensional visualizations (OpenGL), Python as an interpretative programming language seems to be reaching its limits. In particular, large amounts of data or the visualization of three-dimensional scenes may overwhelm the system.
This presentation shows how visualization applications with special performance requirements can be designed on the basis of Matplotlib and GR, a high-performance visualization library for Linux, OS X and Windows. The lecture focuses on the development of a new graphics backend for Matplotlib based on the GR framework. By combining the power of those libraries the responsiveness of animated visualization applications and their resulting frame rates can be improved significantly. This in turn allows the use of Matplotlib in real-time environments, for example in the area of signal processing.
Using concrete examples, the presentation will demonstrate the benefits of the GR framework as a companion module for Matplotlib, both in Python and Julia. Based on selected applications, the suitability of the GR framework will be highlighted especially in environments where time is critical. The system’s performance capabilities will be illustrated using demanding live applications. In addition, the special abilities of the GR framework are emphasized in terms of interoperability with graphical user interfaces (Qt/PySide) and OpenGL, which opens up new possibilities for existing Matplotlib applications.
ECMeowScript - What's New in JavaScript Explained with Cats (August 14th, 2020)Tomomi Imura
That's what the title says! I am explaining ECMAScript 6 (ES 2015) to ES2020 with cats.
This talk was given at Web Directions Code://Remote conference in 2020 in Sydney, but I presented remotely from San Francisco. Damn you, COVID!
Visual Studio Code はエンジニアのみなさんでしたら、とても馴染み深い印象をもたれているのではないでしょうか?現在、私はマイクロソフト社で Developer Advocate として VS Code 開発チームとも一緒に働いています。今回は Developer Experience の観点から、マイクロソフトの開発者たちと試みた取り組みに関してご紹介します。今回の試みでは、開発者の体験をより良いものにし、モチベーションを上げるために、開発者ならば誰もが好きな VS Code のエクステンションを使ったアイデアを実施しました。また、技術的な観点から VS Code の新機能や、これからの取り組みについてもお話ししたいと思っています。
More Related Content
Similar to [Mobile+Web DevCon] Prototyping Internet of Things with JavaScript and PubNub
An Android Project which was developed to give the user's a brand new chatting experience and was presented as Bachelor of Engineering Completion Project. It was successfully implemented on a local network to explore its functionality, and it has the potential to be implemented on a global scale.
Secure protocol design for decentralized worldHacken
Kristof de Spiegeleer (Founder of Threefold) shared important security insights about the field where his company operates and the products it develops.
Hardware hackers - hacking appliances with netduino + xamarinbryan costanich
Get inspired to build your own connected things as I walk through hacking household appliances into connected things that you can control with your phone using Netduino and Xamarin. Come learn how Netudino.Foundation (http://Netduino.Foundation) makes creating connected things in C# a piece of cake, with a massive library of peripheral drivers for sensors, LCDs, etc., and a handrolled API that makes building smart hardware a plug and play experience.
Programmers love Python because of how fast and easy it is to use. Python cuts development time in half with its simple to read syntax and easy compilation feature. Debugging your programs is a breeze in Python with its built in debugger. Using Python makes Programmers more productive and their programs ultimately better. Python is continued to be a favorite option for data scientists who use it for building and using Machine learning applications and other scientific computations.
Python runs on Windows, Linux/Unix, Mac OS and has been ported to Java and .NET virtual machines. Python is free to use, even for the commercial products, because of its OSI-approved open source license.
Python has evolved as the most preferred Language for Data Analytics and the increasing search trends on python also indicates that Python is the next "Big Thing" and a must for Professionals in the Data Analytics domain.
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...ITCamp
If there is a common practice in architecting software systems, it is to have them store the last known state of business entities in a relational database: though widely adopted and effectively supported by existing development tools, this practice trades the easiness of implementation with the cost of losing the history of such entities.
Event Sourcing provides a pivotal solution to this problem, giving systems the capability of restoring the state they had at any given point in time. Furthermore, injecting mock-up events and having them replayed by the business logic allows for an easy implementation of simulations and “what if” scenarios.
In this session, Andrea will demonstrate how to design time travelling systems by examining real-world, production-tested solutions.
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo Sencha
Big data and Internet of Things (IoT) connectivity is increasingly forcing enterprises to find solutions to organize and visualize large amounts of incoming data. To allow rapid decision-making for everything from immediate actions in tactical situations to strategic analysis and reporting, developers need the ability to provide a flexible dashboard that allows users to visualize critical insights from all that data, on any screen and device. This session will demonstrate a dashboard app that provides big data analysis capabilities and interacts with IoT devices via Ext JS constructed components including Grids, Charts, and Widgets.
Getting more out of Matplotlib with GRJosef Heinen
Python is well established in software development departments of research and industry, not least because of the proliferation of libraries such as SciPy and Matplotlib. However, when processing large amounts of data, in particular in combination with GUI toolkits (Qt) or three-dimensional visualizations (OpenGL), Python as an interpretative programming language seems to be reaching its limits. In particular, large amounts of data or the visualization of three-dimensional scenes may overwhelm the system.
This presentation shows how visualization applications with special performance requirements can be designed on the basis of Matplotlib and GR, a high-performance visualization library for Linux, OS X and Windows. The lecture focuses on the development of a new graphics backend for Matplotlib based on the GR framework. By combining the power of those libraries the responsiveness of animated visualization applications and their resulting frame rates can be improved significantly. This in turn allows the use of Matplotlib in real-time environments, for example in the area of signal processing.
Using concrete examples, the presentation will demonstrate the benefits of the GR framework as a companion module for Matplotlib, both in Python and Julia. Based on selected applications, the suitability of the GR framework will be highlighted especially in environments where time is critical. The system’s performance capabilities will be illustrated using demanding live applications. In addition, the special abilities of the GR framework are emphasized in terms of interoperability with graphical user interfaces (Qt/PySide) and OpenGL, which opens up new possibilities for existing Matplotlib applications.
ECMeowScript - What's New in JavaScript Explained with Cats (August 14th, 2020)Tomomi Imura
That's what the title says! I am explaining ECMAScript 6 (ES 2015) to ES2020 with cats.
This talk was given at Web Directions Code://Remote conference in 2020 in Sydney, but I presented remotely from San Francisco. Damn you, COVID!
Visual Studio Code はエンジニアのみなさんでしたら、とても馴染み深い印象をもたれているのではないでしょうか?現在、私はマイクロソフト社で Developer Advocate として VS Code 開発チームとも一緒に働いています。今回は Developer Experience の観点から、マイクロソフトの開発者たちと試みた取り組みに関してご紹介します。今回の試みでは、開発者の体験をより良いものにし、モチベーションを上げるために、開発者ならば誰もが好きな VS Code のエクステンションを使ったアイデアを実施しました。また、技術的な観点から VS Code の新機能や、これからの取り組みについてもお話ししたいと思っています。
[Japan M365 Dev UG] Teams Toolkit v4 を使ってみよう!Tomomi Imura
Teams アプリ制作ツールである Visual Studio Code エクステンション、Teams Toolkit が バージョン4 をもってついに GA (正規版) リリースとなりました🎉 ですので今回は Teams Toolkit の紹介と新機能の使い方を説明したいと思います。
- Teams プラットフォームの基本
- Teams Toolkit for VS Code の紹介
- Teams Toolkit for VS Code 使い方ステップ・バイ・ステップ
[#DevRelAsia Keynote 2020] Developer Centric Design for Better ExperienceTomomi Imura
Tomomi Imura talks about improving the developer experience of technical content & docs and her own experiences from the most recent project at Microsoft and her previous work at Slack.
#TinySpec2019 Slack Dev Meetup in Osaka & Tokyo (in Japanese)Tomomi Imura
Slack 開発者向け meetup スライド(このPDF 版は大阪と東京で使われたスライドを編集してアップしています)
Slack platform features recap & new features (This is a combined / modified version of the slide deck used in both Osaka and Tokyo)
[2019 south bay meetup] Building more contextual message with Block KitTomomi Imura
South Bay Meetup talk about Block Kit, a UI framework that enables you to build rich and interactive experiences in Slack, also how to build a slash command using Block Kit & its demo.
[TechWorldSummit Stockholm 2019] Building Bots for Human with Conversational ...Tomomi Imura
Using voice commands has been pretty ubiquitous nowadays, as more mobile phone users use voice assistants like Siri and Cortana, as well as devices like Amazon Echo and Google Home have been invading our living rooms. You can interact with the intelligent assistant without leaving your couch. At the same time, chatbots have been insanely popular, and services like Slack and Facebook Messenger let you achieve multiple tasks without leaving the client- you can schedule a meeting, order some pizza, call a taxi, etc.
Historically in web development, we have been relying on various UI elements to interact with your users. Now with the new technologies, you can develop rich applications with natural user interactions with a minimal visual interface. This enables countless use cases for richer and more accessible web applications.
In this talk, Tomomi Imura will talk about the examples of the conversational interface, and what and how you can build with JavaScript in a browser using the Speech API, the open web standard, also with Node.js to work with the 3rd party platforms!
Building a Bot with Slack Platform and IBM WatsonTomomi Imura
[IBM Watson Online Meetup - April 17, 2019]
In this interactive workshop, Tomomi Imura from Slack and David Nugent from IBM Developer SF City Team will walk you through building a bot using Slack's API and Block Kit, and making it smarter using IBM Watson.
Tomomi will walk you through how to build a Slack bot with Slack API using Node SDK, and improve the bot with Slack’s new Block Kit Builder. She will also cover how to make the bot smarter using IBM Watson.
This session uses Node.js, however, you should be able to follow if you have a general understanding in any programming language. All you need is a Chrome browser to try out the sample code.
[DevRel Summit 2018] Because we all learn things differentlyTomomi Imura
My talk at DevRel Summit Singapore 2018, about supporting true developer diversity-
1. Supporting different learning styles
2. Supporting a diverse developer community - diversity is not only about gender!
Future of the Web with Conversational InterfaceTomomi Imura
Using voice commands has been ubiquitous nowadays, as more mobile phone users use voice assistants like Siri, as well as devices like Amazon Echo and Google Home have been invading our living rooms. You can interact with the intelligent assistant without leaving your couch. At the same time, chatbots have gained popularity, and services like Slack and Facebook Messenger let you achieve tasks without leaving the client- you can schedule a meeting, order some pizza, call a taxi, etc.
Historically in web development, we have been relying on various UI elements to interact with users. Now with the new technologies, you can develop rich applications with the natural user interactions with a minimal visual interface. This enables countless use cases for richer and more accessible web applications.
In this talk, Tomomi Imura talks about the trend of the conversational interface, and what and how you can build with JavaScript.
The talk is given at:
- TokyoJS (shorter ver) July 28, 2017
- ModernWeb Taiwan Aug 10, 2017
[DevRelCon Tokyo 2017] Creative Technical Content for Better Developer Experi...Tomomi Imura
Let’s say, you are searching certain frameworks, or APIs to satisfy your new project- what if you stumble on some awesome-sounding shiny website, but it comes with very poor documentations. Do you want to try it out, or keep searching something else? Or when you see a GitHub project with no README, how do you feel? I think this developer experience is one of big key factors for you to decide what technologies to use.
User-Experience (UX) focuses on understanding what users' need and value, and provide practical products or services. This human-computer interaction acts the same when the users are developers. The ideas of “Developer Experiences” is to establish a good relationship between developers and platform providers.
So, as a developer evangelist, what can we do to improve DX to get developers' interests?
In this talk, Tomomi Imura will talk about her experiences, and how I create developer-centric contents and docs to drive the community and acquired new developers and customers.
Google Calendar is a versatile tool that allows users to manage their schedules and events effectively. With Google Calendar, you can create and organize calendars, set reminders for important events, and share your calendars with others. It also provides features like creating events, inviting attendees, and accessing your calendar from mobile devices. Additionally, Google Calendar allows you to embed calendars in websites or platforms like SlideShare, making it easier for others to view and interact with your schedules.
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...Peter Gallagher
In this session delivered at Leeds IoT, I talk about how you can control a 3D printed Robot Arm with a Raspberry Pi, .NET 8, Blazor and SignalR.
I also show how you can use a Unity app on an Meta Quest 3 to control the arm VR too.
You can find the GitHub repo and workshop instructions here;
https://bit.ly/dotnetrobotgithub
2. @girlie_mac
Tomomi is a:
● Front-End Engineer
● Open Web + Tech Advocate
● N00b Hardware Hacker
● Sr. Developer Evangelist at
PubNub
3. @girlie_mac Source: PLATFORM, data based on Cisco IBSG
Estimate 50B by
2020
non-human/human =
6.58
2003:
non-human/human =
0.08
2015:
non-human/human =
3.47
2008:
non-human/human >= 1
Era of Internet of Things
4. @girlie_mac
Withings: Smart Body Analyzer
GE Link
Cinder
Sensing Cooker
Nest: Learning
Thermostat
Whistle: Connected pet collar
Amazon
Dash Button
12. @girlie_mac
Tessel
USB PLUGS TO
COMPUTER ETHERNET
MODULES
GPIO DIGITAL PINS
EXTRA USB
PORTS
Pin Modules:
● Accelerometer
● Ambient light
● Servo
● RFID
● GPS
● USB modules,
like camera &
audio
etc...
13. @girlie_mac
Raspberry Pi
USB TO POWER
SOURCE
TO MONITOR
TO MOUSE
TO KEYBOARD
WI-FI ADAPTER
SD CARD
GPIO DIGITAL PINS
4 EXTRA USB
PORTS
ETHERNET
17. @girlie_mac
Programming Pi with Node.js
Download & install Node.js (v0.12.6) with node-
arm:
$ wget http://node-arm.herokuapp.
com/node_archive_armhf.deb
$ sudo dpkg -i node_archive_armhf.deb
You may not want the
latest node.js!
20. @girlie_mac
Ohm’s Law & Resistors
R =
V - Vs f
I
source voltage (V) forward voltage (V) (LED
voltage drop)
current thru the LED (A)
resistance (Ω)
21. @girlie_mac
Ohm’s Law & Resistors
R =
5 - 1.9
0.02
source voltage (V) forward voltage (V) (LED
voltage drop)
current thru the LED (A)
resistance (Ω)
= 155Ω
25. @girlie_mac
Blinking LED
var five = require('johnny-five');
var board = new five.Board();
board.on('ready', function() {
var led = new five.Led(13); // Create an instance
led.blink(500); // "blink" in 500ms on-off intervals
});
Pin number
31. @girlie_mac
Streaming Data w/ PubNub
No media, just data!
● Small data (no buffering!)
● Publishing/Subscribing in
true realtime (low latency!)
● Broadcast, unicast,
multiplex
32. @girlie_mac
CDN vs. DSN
Content Delivery & Data Stream Networks are similar:
● Deliver contents (or data) to a user based on the
geographic locations
● Copy contents (or data) to network at diff locations
● Provide protection for large traffic surges
Difference: Static contents vs. realtime data (“Data in
Motion”)
47. @girlie_mac
Sending Data from browser
redInput.addEventListener('change', function(e){
publishUpdate({color: 'red', brightness: +this.value});
}, false);
function publishUpdate(data) {
pubnub.publish({
channel: 'hue',
message: data
});
}
Send the red value to PubNub to
tell the MCU to reflect the
change!
the value has
changed! Publish the
new value!
48. @girlie_mac
Receiving Data to LED
pubnub.subscribe({
channel: 'hue',
callback: function(m) {
if(led) {
r = (m.color === 'red') ? m.brightness : r;
g = (m.color === 'green') ? m.brightness : g;
b = (m.color === 'blue') ? m.brightness : b;
led.color({red: r, blue: b, green: g});
}
}
});
to the GPIO pins
that connect to
LED anodes
51. @girlie_mac
KittyCam in Node.js
1. Detect motion (Johnny-Five IR.Motion obj)
2. Take photos (Raspistill, command line tool)
3. Cat facial detection (KittyDar)
4. Store the photos in Cloudinary
5. Publish the data to PubNub
6. Stream on web (subscribe the data from
PubNub)
53. @girlie_mac
PIR Sensor > Run Camera
board.on('ready', function() {
// Create a new `motion` hardware instance.
var motion = new five.Motion(7); //a PIR is wired on pin 7 (GPIO 4)
// 'calibrated' occurs once at the beginning of a session
motion.on('calibrated', function() {console.log('calibrated');});
motion.on('motionstart', function() { // Motion detected
// Run raspistill command to take a photo with the camera module
var filename = 'photo/image_'+i+'.jpg';
var args = ['-w', '320', '-h', '240', '-o', filename, '-t', '1'];
var spawn = child_process.spawn('raspistill', args);
...
motion detected!
Take a photo!
54. @girlie_mac
Processing Photo
...
spawn.on('exit', function(code) {
if((/jpg$/).test(filename)) {
var imgPath = __dirname + '/' + filename;
// Child process: read the file and detect cats with KittyDar
var args = [imgPath];
var fork = child_process.fork(__dirname+'/detectCatsFromPhoto.js');
fork.send(args);
// the child process is completed
fork.on('message', function(base64) {
if(base64) {
// Send to cloud storage
}
}); ...
var kittydar = require
('kittydar');
a cat detected!