This is a fun one! Learn how to hack up robots you can buy at a local toy store. You’ll see the methods used to take the video stream out of the robot and turn it into a format Flash likes. You’ll get the lowdown on how to send API commands to control the bot. We’ll show you how to connect it to alternative controllers and use ActionScript for some simple color detection on the video stream.
Core Audio, the only media framework available since day one of the public iPhone SDK, offers extremely low latency and powerful access to the device's audio processing system... assuming you can handle what's renowned as one of the hardest APIs on the platform. In iOS 5, Core Audio gets even better, with great new features that had previous been burdensome, if not impossible, to develop on your own. Once the iOS 5 NDA drops, the shiny new bits will be available to all, and this talk will be one of your first chances to learn how they work. Attendees will learn the basics of Core Audio -- the engine APIs that process sound (Audio Queue, Audio Units, and OpenAL) and the helper APIs that get samples into and out of them -- and then look where iOS 5 fills in some of the holes that have existed up to now.
CANSPY: A platform for auditing CAN devicesPriyanka Aash
"In the past few years, several tools have been released allowing hobbyists to connect to CAN buses found in cars. This is welcomed as the CAN protocol is becoming the backbone for embedded computers found in smartcars. Its use is now even spreading outside the car through the OBD-II connector: usage-based policies from insurance companies, air-pollution control from law enforcement or engine diagnostics from smartphones for instance. Nonetheless, these tools will do no more than what professional tools from automobile manufacturers can do. In fact, they will do less as they do not have knowledge of upper-layer protocols.
Security auditors are used to dealing with this kind of situation: they reverse-engineer protocols before implementing them on top of their tool of choice. However, to be efficient at this, they need more than just being able to listen to or interact with what they are auditing. Precisely, they need to be able to intercept communications and block them, forward them or modify them on the fly. This is why, for example, a platform such as Burp Suite is popular when it comes to auditing web applications.
In this talk, we present CANSPY, a platform giving security auditors such capabilities when auditing CAN devices. Not only can it block, forward or modify CAN frames on the fly, it can do so autonomously with a set of rules or interactively using Ethernet and a packet manipulation framework such as Scapy. It is also worth noting that it was designed to be cheap and easy to build as it is mostly made of inexpensive COTS. Last but not least, we demonstrate its versatility by turning around a security issue usually considered when it comes to cars: instead of auditing an electronic control unit (ECU) through the OBD-II connector, we are going to partially emulate ECUs in order to audit a device that connects to this very connector."
(Source: Black Hat USA 2016, Las Vegas)
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJeff Prestes
Learn about DK 8 and Device I/O Library
Also, see the lab how to install from scratch Rasbian, JDK 8, Device I/O on a RaspberryPi.
See the code from github and build your own machine
Core Audio, the only media framework available since day one of the public iPhone SDK, offers extremely low latency and powerful access to the device's audio processing system... assuming you can handle what's renowned as one of the hardest APIs on the platform. In iOS 5, Core Audio gets even better, with great new features that had previous been burdensome, if not impossible, to develop on your own. Once the iOS 5 NDA drops, the shiny new bits will be available to all, and this talk will be one of your first chances to learn how they work. Attendees will learn the basics of Core Audio -- the engine APIs that process sound (Audio Queue, Audio Units, and OpenAL) and the helper APIs that get samples into and out of them -- and then look where iOS 5 fills in some of the holes that have existed up to now.
CANSPY: A platform for auditing CAN devicesPriyanka Aash
"In the past few years, several tools have been released allowing hobbyists to connect to CAN buses found in cars. This is welcomed as the CAN protocol is becoming the backbone for embedded computers found in smartcars. Its use is now even spreading outside the car through the OBD-II connector: usage-based policies from insurance companies, air-pollution control from law enforcement or engine diagnostics from smartphones for instance. Nonetheless, these tools will do no more than what professional tools from automobile manufacturers can do. In fact, they will do less as they do not have knowledge of upper-layer protocols.
Security auditors are used to dealing with this kind of situation: they reverse-engineer protocols before implementing them on top of their tool of choice. However, to be efficient at this, they need more than just being able to listen to or interact with what they are auditing. Precisely, they need to be able to intercept communications and block them, forward them or modify them on the fly. This is why, for example, a platform such as Burp Suite is popular when it comes to auditing web applications.
In this talk, we present CANSPY, a platform giving security auditors such capabilities when auditing CAN devices. Not only can it block, forward or modify CAN frames on the fly, it can do so autonomously with a set of rules or interactively using Ethernet and a packet manipulation framework such as Scapy. It is also worth noting that it was designed to be cheap and easy to build as it is mostly made of inexpensive COTS. Last but not least, we demonstrate its versatility by turning around a security issue usually considered when it comes to cars: instead of auditing an electronic control unit (ECU) through the OBD-II connector, we are going to partially emulate ECUs in order to audit a device that connects to this very connector."
(Source: Black Hat USA 2016, Las Vegas)
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJeff Prestes
Learn about DK 8 and Device I/O Library
Also, see the lab how to install from scratch Rasbian, JDK 8, Device I/O on a RaspberryPi.
See the code from github and build your own machine
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...savageautomate
Presented @ DEVOXX 2014
LET'S GET PHYSICAL: I/O PROGRAMMING WITH JAVA ON THE RASPBERRY PI USING PI4J
Wednesday at 14:00 - 15:00 @ ROOM 4
Robert Savage (@savageautomate)
http://cfp.devoxx.be/2014/talk/JWA-8162/Let's_Get_Physical:_I%2FO_Programming_with_Java_on_the_Raspberry_Pi_using_Pi4J
http://www.savagehomeautomation.com/projects/pi4j-devoxx-2014.html
why Java is so popular is the platform independence. Programs can run on several different types of computer; as long as the computer has a Java Runtime Environment (JRE) installed, a Java program can run on it.
Java is a strongly typed programming language because every variable must be declared with a data type. A variable cannot start off life without knowing the range of values it can hold, and once it is declared, the data type of the variable cannot change
ELC-E 2010: The Right Approach to Minimal Boot Timesandrewmurraympc
This was presented at ELC-E 2010 in Cambridge and describes an approach to cold boot time reduction. It also demonstrates the approach through a case study with an MS7724 reference board.
MIB API
Monitor device Management Information Base variables
MIB
RMON and RMON-II
DiffServ
Network API (JFWD)
Interface to Filters
set packet drop filters
intercept packets
carbon copy packets while forwarding at line-speed
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014datafundamentals
Hadoop Demystified + Automation Smackdown!
You want to learn hadoop, we cover that. But then we also cover that automation process, so you can compare approaches. Includes code and references.
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
This is a light training/presentation talk.
My name is Lyon Yang and I am an IoT hacker. I live in sunny Singapore where IoT is rapidly being deployed – in production. This walkthrough will aim to shed light on the subject of IoT, from finding vulnerabilities in IoT devices to getting shiny hash prompts.
Our journey starts with a holistic view of IoT security, the issues faced by IoT devices and the common mistakes made by IoT developers. Things will then get technical as we progress into a both ARM and MIPS exploitation, followed by a ‘hack-along-with-us’ workshop where you will be exploiting a commonly found IoT daemon. If you are new to IoT or a seasoned professional you will likely learn something new in this workshop.
https://www.iotvillage.org/#schedule
Functional verification is one of the key bottlenecks in the rapid design of integrated circuits. It is estimated that verification in its entirety accounts for up to 60% of design resources, including duration, computer resources and total personnel. The three primary tools used in logic and functional verification of commercial integrated circuits are simulation (at various levels), emulation at the chip level, and formal verification.
"WTF is Twisted? (or; owl amongst the ponies)" is a talk that introduces the Twisted asynchronous programming framework, how it works, and what uses it.
The PAC aims to promote engagement between various experts from around the world, to create relevant, value-added content sharing between members. For Neotys, to strengthen our position as a thought leader in load & performance testing.
Since its beginning, the PAC is designed to connect performance experts during a single event. In June, during 24 hours, 20 participants convened exploring several topics on the minds of today’s performance tester such as DevOps, Shift Left/Right, Test Automation, Blockchain and Artificial Intelligence.
DEVOXX Let's Get Physical: I/O Programming with Java on the Raspberry Pi usin...savageautomate
Presented @ DEVOXX 2014
LET'S GET PHYSICAL: I/O PROGRAMMING WITH JAVA ON THE RASPBERRY PI USING PI4J
Wednesday at 14:00 - 15:00 @ ROOM 4
Robert Savage (@savageautomate)
http://cfp.devoxx.be/2014/talk/JWA-8162/Let's_Get_Physical:_I%2FO_Programming_with_Java_on_the_Raspberry_Pi_using_Pi4J
http://www.savagehomeautomation.com/projects/pi4j-devoxx-2014.html
why Java is so popular is the platform independence. Programs can run on several different types of computer; as long as the computer has a Java Runtime Environment (JRE) installed, a Java program can run on it.
Java is a strongly typed programming language because every variable must be declared with a data type. A variable cannot start off life without knowing the range of values it can hold, and once it is declared, the data type of the variable cannot change
ELC-E 2010: The Right Approach to Minimal Boot Timesandrewmurraympc
This was presented at ELC-E 2010 in Cambridge and describes an approach to cold boot time reduction. It also demonstrates the approach through a case study with an MS7724 reference board.
MIB API
Monitor device Management Information Base variables
MIB
RMON and RMON-II
DiffServ
Network API (JFWD)
Interface to Filters
set packet drop filters
intercept packets
carbon copy packets while forwarding at line-speed
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014datafundamentals
Hadoop Demystified + Automation Smackdown!
You want to learn hadoop, we cover that. But then we also cover that automation process, so you can compare approaches. Includes code and references.
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
This is a light training/presentation talk.
My name is Lyon Yang and I am an IoT hacker. I live in sunny Singapore where IoT is rapidly being deployed – in production. This walkthrough will aim to shed light on the subject of IoT, from finding vulnerabilities in IoT devices to getting shiny hash prompts.
Our journey starts with a holistic view of IoT security, the issues faced by IoT devices and the common mistakes made by IoT developers. Things will then get technical as we progress into a both ARM and MIPS exploitation, followed by a ‘hack-along-with-us’ workshop where you will be exploiting a commonly found IoT daemon. If you are new to IoT or a seasoned professional you will likely learn something new in this workshop.
https://www.iotvillage.org/#schedule
Functional verification is one of the key bottlenecks in the rapid design of integrated circuits. It is estimated that verification in its entirety accounts for up to 60% of design resources, including duration, computer resources and total personnel. The three primary tools used in logic and functional verification of commercial integrated circuits are simulation (at various levels), emulation at the chip level, and formal verification.
"WTF is Twisted? (or; owl amongst the ponies)" is a talk that introduces the Twisted asynchronous programming framework, how it works, and what uses it.
The PAC aims to promote engagement between various experts from around the world, to create relevant, value-added content sharing between members. For Neotys, to strengthen our position as a thought leader in load & performance testing.
Since its beginning, the PAC is designed to connect performance experts during a single event. In June, during 24 hours, 20 participants convened exploring several topics on the minds of today’s performance tester such as DevOps, Shift Left/Right, Test Automation, Blockchain and Artificial Intelligence.
Scratching the itch, making Scratch for the Raspberry PieESUG
Title: Scratching the itch, making Scratch for the Raspberry Pie
Speaker: Tim Rowledge
Fri, August 22, 12:00pm – 12:30pm
Abstract: Scratch was originally written in a Squeak 2.8 era image. Much has changed since then and to make the Raspberry Pi run Scratch as well as possible we have ported the code forward to a 4.5 image so it can run on a StackVM; and soon a Cog VM. A substantial amount of Smalltalk code has had to be rewritten to do this and yet we have to maintain complete compatibility with the original system to avoid overloading the teachers that use it in their classes. A new branch of Cog for the ARM cpu is being written as well.
Bio: Tim Rowledge has almost 30 years of Smalltalk experience, and almost as much with ARM. Somehow the two have always gone together.
These slides are part of a presentation I gave on a Google Hangout on air regarding Python Performance Profiling. Specifically, I explore examining both development and production environments, build systems, testing frameworks (py.test & nose), various profilers for dev, and how to profile in production. The full talk is on youtube here: https://www.youtube.com/watch?v=tZc-v0-3OKQ
Patterns & Antipatterns in Docker Image Lifecycleyoavl
While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the anti-patterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
This talk takes it from the point that everybody already understand the need in the CI/CD pipeline and some of the basic techniques are taken for granted. It’s much more about tools, processes and automation.
Continuous Delivery: releasing Better and Faster at DashlaneDashlane
An introduction to how the Dashlane Engineering Team worked on achieving Continuous Delivery: the ability to deliver to production, fast, reliably and on-demand, through an industrialized automated Release Pipeline.
How is automation done in real world (and) on existing systems. This webcast shows our way from existing handmade installations to ansible playbook managed environment.
Why did we choose ansible over others? A demo shows installation and how automation tools can reduce stress during incident remediation situations.
Speaker: Christian Hilgers, Senior Software Engineer at ConSol Düsseldorf
How is automation done in real world (and) on existing systems. This webcast shows our way from existing handmade installations to ansible playbook managed environment.
Why did we choose ansible over others? A demo shows installation and how automation tools can reduce stress during incident remediation situations.
DevLearn 2018 - Designing AR Experiences for Performance SupportChad Udell
While many companies are experimenting with AR in the L&D space, there are a number of businesses harnessing the power of AR for enhancing operational performance outside of the training department. How do these experiences differ, and how can you renew your department’s focus on performance by taking on more advanced AR solutions in your efforts?
In this session, you will learn practical approaches for designing effective AR experiences. You’ll discover an approach to strategic implementation of AR by forming a partnership with functional business units. You’ll also explore the difference between simple marker-based AR solutions and more advanced computer vision and machine learning–backed AR. You’ll then look at how you can integrate AR systems with operational business systems in order to maximize return on investment and realize the opportunity that AR-enabled workers represent. Finally, you’ll look at aligning measurement of business task success and AR experience usage in order to align learning and production.
Leveraging Devices to Create Amazing Mobile Learning - TK2014 ResultsChad Udell
Are your mobile learning efforts little more than a retread and reskin of existing elearning content? Feeling a little bored and disillusioned with the promise of mobile learning left unfulfilled?
Check out what you can do with Mobile Learning when you leverage the device's unique capabilties.
You likely have a lot of great learning content in your library. How do you get it to mobile devices without attempting (and likely failing) the dreaded conversion process? It can be difficult to think through the ideation process to bring new life into your content for the small screen and the on-the-go mobile learner.
Session participants will examine a number of high-profile success stories and gain insight into the instructional design process used to marry mobile user-experience design and existing content. You’ll see examples, case studies, and process documents, and you will explore real-world examples on how to successfully refocus your efforts to create great mobile learning.
Max 2010- Building Mobile Learning with Your Existing eLearning Toolkit - Ado...Chad Udell
See how mobile learning can be achieved using Adobe Creative Suite 5 and Adobe AIR. Most smartphones are capable of using learning content created with these tools without needing native development. This approach accelerates development, lowers costs, and increases adoption thanks to cross-platform compatibility. Various mobile platforms will be explored, featuring mobile web content and applications. Testing and debugging using Adobe Device Central and other testing platforms will be examined.
This session will examine the four main systems – Windows, Android, iPhone/Pad, and BlackBberry. What’s the difference? Does the OS change what is possible? What can they offer you, and which should you be choosing?
Creating mLearning With Your Existing ToolkitChad Udell
People often think mobile applications only consist of dedicated software development tools and techniques used by traditional computer scientists that can often be arcane or require very specific tools and platform-specific APIs. And sometimes we must redevelop applications several times to hit all target platforms, which can be very time consuming and expensive. But most modern platforms are quite capable of providing very powerful and engaging experiences using Web based APIs and manipulating the DOM via Javascript. This may be a far more accessible toolkit for your development team and it could accelerate your development efforts.
This is a fun one! Learn how to hack up robots you can buy at a local toy store. You’ll see the methods used to take the video stream out of the robot and turn it into a format Flash likes. You’ll get the lowdown on how to send API commands to control the bot. We’ll show you how to connect it to alternative controllers and use ActionScript for some simple color detection on the video stream.
1. Hacking Robots for Fun and Profit
presented by Chad Udell
at Flash and the City, 2010
2. Hacking Robots for Fun and Profit
• Flash is eminently hackable and ideal for building UIs
for experiences that integrate with hardware
• Tons of devices are coming with web connections
• Hardware is getting cheaper and easier to get
• Hobbyist techniques can be adapted for real world
9. Basic Limitations
• Skillset - We aren’t robotics engineers or electricians
• Budget - Every client is conscious of this - duh
• Scope - Need to integrate a timer, controls, basic
computer vision, long term maintenance solution
• Quality - Uptime is crucial. “Out of Order” is not an
option
10. Choosing a Robot
• Essentially we need a connected webcam
• Needs to be cheap
• Needs to be hackable
Enter, Rovio.
11. A Diagram of the system
2 Stations, each containing:
!"#$%&'()*+,-./+*0)
UPS (APC BR1200)
APC AV C2
Happ Kiosk Amp
and Speakers
1"234&+56(!11(.7
Rovio Charger
Happ
Controls
Server (Red 5)
Netgear Wireless Access Point
WG-102
Switch
Rovio
12. Rovio to the Rescue
• Skillset - Essentially like building a mashup
(documented API, built in webserver)
• Budget - They are inexpensive and readily available
(important for uptime)
• Scope - many of the requirements are handled in
some built in fashion already (wayfinding, charging).
• Quality - We have a company backing it
13. Flash to the Rescue
• Skillset - We like it.
• Budget - No extra expensive hardware to be
designed, no expensive proprietary SDKs.
• Scope - Still some questions here. Going to have to
manage the client’s expectations.
• Quality - Debugging and remote config is easy
14. Controlling the Rovio
• Rovio responds via HTTP (CGI script)
• Use of key listeners to trigger API calls.
/rev.cgi?Cmd=nav&action=value&drive=d_value&speed=s_value Input
Parameter
value = 18 d_value = 0 (Stop)
1 (Forward)
2 (Backward)
3 (Straight left)
4 (Straight right)
5 (Rotate left by speed)
6 (Rotate right by speed)
7 (Diagonal forward left)
8 (Diagonal forward right)
9 (Diagonal backward left)
10 (Diagonal backward right)
11 (Head up)
12 (Head down)
13 (Head middle)
14 (Reserved)
15 (Reserved)
16 (Reserved)
17 (Rotate left by 20 degree angle increments)
18 (Rotate right by 20 degree angle increments)
s_value = 1 (fastest) – 10 (slowest)
16. Getting the Video
• Rovio sends via MJPEG via HTTP (CGI script)
• Set a loader’s source to the URL
Camera Control – GetData.cgi
Description
The basic command for acquiring MJPEGGrammar
/ChangeResolution.cgi?ResType=value[&RedirectUrl=sUrl] Input Parameter
None
Privilege
None
Return Value
An instance captured motion image.
• Results were marginal (12-15 fps)
18. Deeper Research on Video/Image Processing
Simple color detection -
• http://www.interactionfigure.nl/2009/colour-tracking-with-the-webcam-in-flash/
Color detection in Processing
• http://jamesalliban.wordpress.com/2008/11/16/colour-detection-in-processing/
Haar training for object detection
• http://note.sonots.com/SciSoftware/haartraining.html
Modified facial detection
• http://www.quasimondo.com/archives/000687.php
19. Technology Evaluations
• Shopping = Fun
• Reading Electrical Engineer Documents = Not so Fun
• Wiring Boards = Fun for some
• Building PoCs = Super fun!
24. Alpha
• Video was ok, but needed some juice.
• Computer vision was deemed better than AR or
object detection
• Play control overall was very pleasing
• Testing, Testing, Testing
26. Enter Red 5/Xuggle
• Transcode the Video to H264 (SteamStream)
• Replace the MJPEG loader with a Netstream object
• Better results. Lower latency.
• Approaching 24-30fps
• There is a bit of a hiccup with the initialization of the
stream.
28. Processing the video
• Considered AR
• Too Inflexible - Markers weren’t attractive
• Considered Object Detection (Haar Cascades/
OpenCV)
• A tad slow-ish
• Attempted using simple ColorBoundsRect
33. How about Creating a Unique Target?
• Eliminate False Positives (was better, but not perfect)
• Ensure Speedy Detection (was a little slower)
Not Unique A Lot More Unique
34. Processing the video
• Settled on Color Detection via Thresholding
• Tomek’s Blob Detection
• http://play.blog2t.net/fast-blob-detection
• Soulwire’s Color Averaging
• http://blog.soulwire.co.uk/code/actionscript-3/
extract-average-colours-from-bitmapdata
42. Buttoning it up
• Charging handoff
• Locking the kiosks down
• C++ Socket Server for the Lights
• Startup, shutdown
• Training for the switchover
43. Lessons Learned
• SWF to EXE is not needed anymore. AIR 2!
• Test early! Test Often! Test Under lots of Conditions!
• Static Electricity Sucks (installation is crazy)
• Your Kiosk Can Never Be Too Stable (Bullet Proof
Your Kiosks)
• Logging, Logging, Logging
• Buy Lots of Extras
44. Other stuff to hack!
• Security/WiFi Cameras - http://www.axis.com
• Tons of X10 Stuff - http://www.smarthome.com
• Other Robots - http://www.spykeeworld.com/
• Rocket Launcher - http://www.thinkgeek.com/
geektoys/warfare/8bc4/?cpg=cj
• Ultimarc Controls - http://www.ultimarc.com/
45. More info, code samples, etc.
• http://electricpineapple.net/ - Erik Peterson’s blog
• http://ionagroup.com/labs - Iona’s Blog
• http://visualrinse.com - My Blog
Questions?
46. Thank you
• Find Us on:
THE IONA GROUP
620 West Jackson Street • Morton, Illinois 61550
P: 309.263.4662 • F: 309.263.8262 • 888.644.IONA
www.ionagroup.com