The Price of Fixing One Bug in Our Programs, or Exotic Bugs in PVS-Studio and...Andrey Karpov
One of the most frequently asked questions we get from the readers of our articles is, "Do you use your analyzer to check its own code?" We usually answer that we have a practice of checking our code right in the course of writing it with the help of incremental analysis (it is a mode when individual files are analyzed right after compilation). Besides, we regularly run night checks of the whole code. Because of that, we, "unfortunately", will never get a chance to write an article about bugs found in our own software products.
HTML5 is here and we should use it right now. It is fun and interesting to look at cool CSS3, Canvas and Video demos but our main goal should be to make our day-to-day life easier by using the cool things browsers offer us right now. Learn about local storage, simplifying interfaces and using HTML5 right now!
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Loadzen
Talk by Martin Buhr, Founder of Loadzen.com at Devtank on the 31st of January about the importance of load testing your site as a startup, how http://loadzen.com was built and the lessons learned.
Mining Social Web APIs with IPython Notebook (Strata 2013)Matthew Russell
Slides from my Strata / Hadoop World 2013 (NYC) hands-on workshop.
Workshop Description from http://strataconf.com/stratany2013/public/schedule/detail/30863
Social web properties such as Twitter, Facebook, LinkedIn, and Google+ have vast amounts of valuable insights lurking just beneath the surface, and this workshop minimizes the barriers to exploring and mining this valuable data by presenting turn-key examples from Mining the Social Web (2nd Edition) with IPython Notebook.
Each module consists of a brief period in which each attendee will customize the corresponding notebook for the module with their own account credentials with the remainder of the module devoted to learning what data is available from the API and exercises demonstrating analysis of the data—all from a pre-populated IPython Notebook. Even attendees with minimal programming experience should be able to walk away from this workshop with a working knowledge of the material and be equipped with sample code that can be easily repurposed given the design of this tutorial.
Time will be set aside at the end of each module’s follow-along presentation for attendees to hack on the code, discuss examples, and ask any lingering questions.
The Price of Fixing One Bug in Our Programs, or Exotic Bugs in PVS-Studio and...Andrey Karpov
One of the most frequently asked questions we get from the readers of our articles is, "Do you use your analyzer to check its own code?" We usually answer that we have a practice of checking our code right in the course of writing it with the help of incremental analysis (it is a mode when individual files are analyzed right after compilation). Besides, we regularly run night checks of the whole code. Because of that, we, "unfortunately", will never get a chance to write an article about bugs found in our own software products.
HTML5 is here and we should use it right now. It is fun and interesting to look at cool CSS3, Canvas and Video demos but our main goal should be to make our day-to-day life easier by using the cool things browsers offer us right now. Learn about local storage, simplifying interfaces and using HTML5 right now!
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Loadzen
Talk by Martin Buhr, Founder of Loadzen.com at Devtank on the 31st of January about the importance of load testing your site as a startup, how http://loadzen.com was built and the lessons learned.
Mining Social Web APIs with IPython Notebook (Strata 2013)Matthew Russell
Slides from my Strata / Hadoop World 2013 (NYC) hands-on workshop.
Workshop Description from http://strataconf.com/stratany2013/public/schedule/detail/30863
Social web properties such as Twitter, Facebook, LinkedIn, and Google+ have vast amounts of valuable insights lurking just beneath the surface, and this workshop minimizes the barriers to exploring and mining this valuable data by presenting turn-key examples from Mining the Social Web (2nd Edition) with IPython Notebook.
Each module consists of a brief period in which each attendee will customize the corresponding notebook for the module with their own account credentials with the remainder of the module devoted to learning what data is available from the API and exercises demonstrating analysis of the data—all from a pre-populated IPython Notebook. Even attendees with minimal programming experience should be able to walk away from this workshop with a working knowledge of the material and be equipped with sample code that can be easily repurposed given the design of this tutorial.
Time will be set aside at the end of each module’s follow-along presentation for attendees to hack on the code, discuss examples, and ask any lingering questions.
My keynote talk at the 2007 IA Konferenz in Stuttgart, Germany, I argued we need to create fewer final designed artifacts and more tools to help everyone design. The audio can be downloaded from here: http://www.iavoice.com/2007/11/27/ia-konferenz-2007-keynote-english/
Don't break the door, the key is under the doormatGerard Fuguet
The multimedia content has an exponential increase. The final user feels the need to get the media content each time faster. One of the easiest way to get this content, is centralizing it in one place, and in most cases, making it available to the public, to the internet (almost all the things are connected to the network). This type of architecture is called “Media Server”, who is able to serve this type of content to many devices (Smartphones, computers, TV…). The processes that we focus on this white paper has relation with a software integration in a Media Server in order to get access through this intermediate element.
We will demonstrate how easy is get all content of a Media Server, in particular, a Plex, through a third party application without protection. This situation motivated me to write it.
The intention is take consciousness of these situations and let any user to know how easy get is any type of content of anyone if this is not well protected (We do not distortion with deep technical terms).
Mining Social Web APIs with IPython Notebook - Data Day Texas 2014Matthew Russell
Slides from a 2-hour workshop at Data Day Texas 2014 on how to mine social web APIs. This workshop specifically focused on extracting insight from Twitter data and was partitioned into two hour long segments. The first segment focused on familiarity with Twitter's API, while the latter segment focused on using pandas to extract insight from tweets from the firehose via the Streaming API.
Mining the Social Web for Fun and Profit: A Getting Started GuideMatthew Russell
A presentation to the Nashville Data Science Meetup that introduces Mining the Social Web as an Open Source Software project/book, its virtual machine experience, the codebase, and a brief primer on data mining with Twitter
In this presentation, I want to talk about creating content for an Internet of Things (IoT) product.
Takeaways:
- You need to blend technical writing with copy writing
- You need to present content in a flexible way
- You needs a cross-functional team
Lyrics and observations from the SharePoint musical session delivered by Simon Hudson at SharePoint Saturday on 29 November 2014.
All material is copyright 2014, Simon Hudson
(QCon London, 2007)
"One of the most important and useful aspects of the Rails framework is it's ability to be extended using plugins. Thanks to the flexibility and power of Ruby, almost any aspect of Rails can be altered to suit the needs of a particular application.
"This presentation will help give developers the boost that's often required to get up to speed developing plugins. We'll cover the hooks that Rails' plugin mechanism makes available, and how to put them to best use in practice with practical examples.
"Once we've covered the groundwork, we'll start to look at more advanced programming techniques for sharing code (and other files) between Rails applications. With a few key programming techniques under our belt, we can use plugins to alter and enhance the Rails framework itself."
(Canada on Rails, 2005)
"Rails Engines provide a means to share common functionality across many projects, in a package that's easy to both update *and* override.
"This presentation will explain the concepts behind Engines and demonstrate how they work within a Rails application. I will also discuss how Engines has dramatically enhanced collaboration within our own development team, and how such collaboration can be extended into the Rails community as a whole."
My keynote talk at the 2007 IA Konferenz in Stuttgart, Germany, I argued we need to create fewer final designed artifacts and more tools to help everyone design. The audio can be downloaded from here: http://www.iavoice.com/2007/11/27/ia-konferenz-2007-keynote-english/
Don't break the door, the key is under the doormatGerard Fuguet
The multimedia content has an exponential increase. The final user feels the need to get the media content each time faster. One of the easiest way to get this content, is centralizing it in one place, and in most cases, making it available to the public, to the internet (almost all the things are connected to the network). This type of architecture is called “Media Server”, who is able to serve this type of content to many devices (Smartphones, computers, TV…). The processes that we focus on this white paper has relation with a software integration in a Media Server in order to get access through this intermediate element.
We will demonstrate how easy is get all content of a Media Server, in particular, a Plex, through a third party application without protection. This situation motivated me to write it.
The intention is take consciousness of these situations and let any user to know how easy get is any type of content of anyone if this is not well protected (We do not distortion with deep technical terms).
Mining Social Web APIs with IPython Notebook - Data Day Texas 2014Matthew Russell
Slides from a 2-hour workshop at Data Day Texas 2014 on how to mine social web APIs. This workshop specifically focused on extracting insight from Twitter data and was partitioned into two hour long segments. The first segment focused on familiarity with Twitter's API, while the latter segment focused on using pandas to extract insight from tweets from the firehose via the Streaming API.
Mining the Social Web for Fun and Profit: A Getting Started GuideMatthew Russell
A presentation to the Nashville Data Science Meetup that introduces Mining the Social Web as an Open Source Software project/book, its virtual machine experience, the codebase, and a brief primer on data mining with Twitter
In this presentation, I want to talk about creating content for an Internet of Things (IoT) product.
Takeaways:
- You need to blend technical writing with copy writing
- You need to present content in a flexible way
- You needs a cross-functional team
Lyrics and observations from the SharePoint musical session delivered by Simon Hudson at SharePoint Saturday on 29 November 2014.
All material is copyright 2014, Simon Hudson
(QCon London, 2007)
"One of the most important and useful aspects of the Rails framework is it's ability to be extended using plugins. Thanks to the flexibility and power of Ruby, almost any aspect of Rails can be altered to suit the needs of a particular application.
"This presentation will help give developers the boost that's often required to get up to speed developing plugins. We'll cover the hooks that Rails' plugin mechanism makes available, and how to put them to best use in practice with practical examples.
"Once we've covered the groundwork, we'll start to look at more advanced programming techniques for sharing code (and other files) between Rails applications. With a few key programming techniques under our belt, we can use plugins to alter and enhance the Rails framework itself."
(Canada on Rails, 2005)
"Rails Engines provide a means to share common functionality across many projects, in a package that's easy to both update *and* override.
"This presentation will explain the concepts behind Engines and demonstrate how they work within a Rails application. I will also discuss how Engines has dramatically enhanced collaboration within our own development team, and how such collaboration can be extended into the Rails community as a whole."
The Even Darker Art of Rails Engines (2009)lazyatom
(From RailsConf 2009)
"When I started talking about the idea of ‘Rails Engines’ a few years ago, everyone thought I was crazy. Some people said it was stupid, or just plain evil. Despite that, the ability to write simple yet powerful plugins is baked into the core of Rails 2.3.
"But heed the words of Uncle Ben: “With great power, comes great responsibility!”
"In this session, we’ll discuss how to best take advantage of ‘engines’, in which situations engine plugins are appropriate and those where they aren’t, and how to avoid some of the common issues that can arrive when developing with engine-style plugins.
"When we’re done, you’ll be in the best position to take advantage of this newly-sanctified functionality in your own projects."
(RubyFools 2008)
"Plugins are more than just shiny nuggets of code which rain down from the higher echelons of the Rails pantheon; they are loyal and useful servants that anyone can employ to help reuse code between applications. Without a little guidance, however, the process of figuring out just how to tame these beasts can be overwhelming.
"This presentation will help give developers the boost that's often required to get up to speed developing plugins. We'll cover the hooks that Rails' plugin mechanism makes available, and how to put them to best use in practice.
"Once we've covered the groundwork, we'll start to look at more advanced programming techniques for sharing code (and other files) between Rails applications. With a few key programming techniques under our belt, we can use plugins to alter and enhance the Rails framework itself, and become masters of Ruby's object model along the way."
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
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/
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 4
IoT Printer (2012)
1. “An open-source
distributed platform
for IoT printers”
James Adam - @lazyatom - @freerange
If you’re bored:
bit.ly/printermail :: bit.ly/printerpaint
Text
My first time at an IoT meetup
I am not an expert
I don’t have any hardware expertise
2. Disclaimer:
I don’t know what I
am doing.
I don’t have any hardware expertise
last time I really worked with electronics was in school
really only here to get some help from you
all started with Timmy
4. Timmy - April 2011
messages normally trapped on your phone
wrote a very simple script using the API, set up a webcam, and tweeted a phone number
quite a good response
5. quite a good response
lots of people seemed to enjoy having their message printed
not sure why - novelty of the physical?
6. some people did put in a lot of effort though
nice pieces of ASCII art
all very much inspired by Tom Taylor’s microprinter
7. Tom Taylor’s Microprinter, 2009
(photo by Tom Armitage)
all very much inspired by Tom Taylor’s microprinter
prints daily reports
if you look closely, it’s actually the same printer. I borrowed it from around the corner.
took Timmy to Interesting
8. Timmy at Interesting ’11
(Photo by Roo Reynolds)
took Timmy to Interesting
text messages, tried to read the messages (OCR) and print replies
also printed instagrams from attendees
9. ASCII, obviously
they look like nonsense unless you know what the picture is
anyway, people seemed to get the same kick out of it as earlier -- still not sure why
but the problem is that it was a hack
10. The problem with
hacks is that they are
hacky.
but the problem is that it was a hack
I’m a developer, I like things that are simple, clean, elegant, reliable
I have a learned aversion to things that are unreliable
Timmy was very unreliable
11. Timmy was very unreliable
bugs in the code to say the least
also, Timmy was a bit of a lie
12. also, Timmy was a bit of a lie, because he was really just tethered to a computer
and computers aren’t cool.
also, look at all the wires! jammed into a breadboard
just waiting to be accidentally pulled out
13. Timmy at Interesting ’11
(Photo by Roo Reynolds)
even at interesting, look, a computer behind the scenes
To do anything else with Timmy, it would always just be a hack on top of a hack
dusting off scripts and trying to figure out how they all fit together
so Timmy went on a shelf
14. so Timmy went on a shelf
It still bothered me that it was so hacky.
spent months idly wondering how to “finish it”.
anyway, that’s a long story
15. gofreerange.com/hello-printer
anyway, quite a long story
if you’re interested how I got from there to here, there’s a blog post
The only real motivation here was to try and assuage my developer guilt
16. The Goal:
Make it less of a
giant ugly hack.
The only real motivation here was to try and assuage my developer guilt
However, over the past few months, a few happy accidents happened
found myself with something maybe a bit interesting.
Beyond Timmy.
17. Printer.
gofreerange.com/printer
“An open source toolkit of exploring the possibilities of internet-of-things printing”
project page, best place to start reading about it.
in a nutshell:
very simple printer that anyone can put together
18. Cheap printer
Ethernet shield
Arduino
Ethernet shield
Some LEDs, etc
A very simple printer that anyone can put together themselves
buy everything here from sparkfun or adafruit or cool components
follow the online instructions
19. follow the online instructions
very simple to put together
guide with lots of pictures
very simple Arduino sketch too
20. Poll a special URL
Emit data via serial
Manage some LEDs
and maybe a
button?
a very simple sketch
only does three things
it’s polling a backend server
21. arduino is polling a backend server
acts as the glue between content and the printers
real job is to turn content into something the printer can understand
22. the server’s real job is to turn content into data the printer can use
can transform pretty much any appropriately-formatted HTML page into data that the printer can directly use
so there are three basic components to the system
23. three basic components to the system
the content service only cares about the content itself
24. Content Services
produce HTML
pages, and post
URLs for those
pages to Backend
Servers.
content services are only concerned with specific content. Doesn’t care about printers.
could be static, could be dynamic, could be user-specific or generic
just HTML, reachable via URLs
when service has some new content, it should POST a URL to the backend server
25. Backend
Servers
expect
URLs to
HTML
pages...
... and
converts
them into
1-bit
images,
then serial
commands
backend server then retrieves that page
turns it into an image using headless browser (PhantomJS)
turns that into a 1-bit image -- array of bits
and knows how to translate that into a stream of serial commands for the printer
26. Printers download
serial commands
and send them
directly to printer
peripherals.
the printer polls the backend server
when some content is available, it downloads it
caches it on an SD card (could be >100k)
streams bytes to the printer via serial
might seem complicated, but there are three things that make this work really well. first is that HTML is easy
27. Content generation is easy in HTML
most printers support ASCII bold, inverse, underline, some graphical characters
quite hard to program them to print custom graphics
it’s relatively easy to use HTML to make something that looks great
much more flexible with how information is presented
the novelty of printing ASCII wears off; maybe the novelty of cute graphics will last longer?
second is that responsibility for making content doesn’t all fall to me
28. Content can come from many places
there’s no need for centralised content.
as long as its reachable via a URL, it can be sent to any printer.
content production is distributed
more than one independent content service
29. http://backend1/print/abc123
Content service A - TODOs
Content service B - weather
Don’t need to know anything about each other
As long as they both know the URL for a printer, they can both produce output on it
to try and demonstrate, I wrote a few simple content services
30. bit.ly/printermail
first sample content service
sending simple messages
it’s simple, really just to demonstrate the principle
anyone with a printer can register one it and people can send them content
31. bit.ly/printerpaint
second content service lets you draw pictures
completely separate application from the messages one
uses HTML5 canvas to let people draw a picture
backend server takes care of turning the HTML into something the printer can understand
tweeted the URLs for these services
32. tweeted the URLs
now have metres of pictures and messages from people
(mostly nice; only a few drawings of genitalia)
built a third example service
33. built a third content service that gets the weather using Wunderground
example of automated content (no human triggering it)
sends the forecast for printing at 8am every morning
Icons drawing using HTML5 canvas, but could as easily be images
third interesting aspect of the system is not only is the content decentralised
34. No central server either
there doesn’t need to be a central responsibility for keeping the system running
just like there can be multiple independent content services...
35. Two Backend
Servers using
the same
Content Service
... there can be multiple independent backend servers too.
If you’re paranoid, you can run your own;
If we shut down the one running this printer, another one can replace it and run as many printers as it likes
completely decentralised.
So, what’s the plan?
36. •Other people are better at design
than I am;
•Other people have better ideas for
content that I have;
•So: make it easy for them to produce
and print content, from which
everyone benefits.
The Plan:
Just a software developer, I don’t have a lot of design talent
I probably don’t have the best ideas for what would be useful to print
But maybe you do.
Anything you make, you can potentially share (deploy to heroku, let other people add their printer URLs)
I am really excited to see what other people might make (that I can then use!)
Some people already have
37. Some other people have already been experimenting
Really interesting looking weather forecast from Denmark
38. Another guy is printing out stats from their existing graphing system
(needs to tweak his printer a bit)
What’s really exciting is seeing what other people produce.
39. •HTTP Header parsing
•Running out of space on Arduino
•Reliable networking is hard
•Programming in C is a pain in the
fucking ass.
TODO
Plenty still to do
Make the Arduino slightly smarter (print now header, status codes)
Sketch size has almost reached 32k capacity of the Arduino
Really hard to make Arduino networking reliable when you’re downloading more than a few kilboytes
Programming in Ruby is much easier than this :-/