The arrival of the iPhone changed the whole direction of software development for mobile platforms, and has had a profound impact on the hardware design of the smart phones that have followed it.
Not only do these devices know where they are, they can tell you how they’re being held, they are sufficiently powerful to overlay data layers on the camera view, and record and interpret audio data, and they can do all this in real time. These are not just smart phones, these are computers that just happen to be able to make phone calls.
The arrival of the External Accessory Framework was seen, initially at least, as having the potential to open the iOS platform up to a host of external accessories and additional sensors. Sadly, little of the innovation people were expecting actually occurred, and while there are finally starting to be some interesting products arriving on the market, for the most part the External Accessory Framework is being used to support a fairly predictable range of audio and video accessories from big-name manufacturers.
The reason for this lack of innovation is usually laid at the feet of Apple’s Made for iPod (MFi) licensing program. To develop hardware accessories that connect to the iPod, iPhone, or iPad, you must be an MFi licensee.
Unfortunately, becoming a member of the MFi program is not as simple as signing up as an Apple Developer, and it is a fairly lengthy process. From personal experience I can confirm that the process of becoming an MFi licensee is not for the faint-hearted. And once you’re a member of the program, getting your hardware out of prototype stage and approved by Apple for distribution and sale is not necessarily a simple process.
However all that started to change with the arrival of Redpark’s serial cable. As it’s MFi approved for the hobbyist market it allows you to connect your iPhone to external hardware very simply, it also allows you to easily prototype new external accessories, bypassing a lot of the hurt you experience trying to do that wholly within the confines of the MFi program.
Another important part of that change was the Arduino. The Arduino, and the open hardware movement that has grown up with it and to a certain extent around it, is enabling a generation of high-tech tinkers to prototype new ideas with fairly minimal hardware knowledge.
Every so often a piece of technology can become a lever that lets people move the world, just a little bit. The Arduino is one of those levers. While it started off as a project to give artists access to embedded microprocessors for interactive design projects, I think it’s going to end up in a museum as one of the building blocks of the modern world. It allows rapid, cheap prototyping for embedded systems. It turns what used to be fairly tough hardware problems into simpler software problems.
Turning things into software problems makes things more scalable, it drastically reduces development time scales, and up front investment, and as the whole dot com revolution has shown, it leads to innovation. Every interesting hardware prototype to come along seems to boast that it is Arduino-compatible, or just plain built on top of an Arduino.
I think the next round of innovation is going to take Silicon Valley, and the rest of us, back to its roots, and that’s hardware. If you’re a software person the things that are open and the things that are closed are changing. The skills needed to work with the technology are changing as well.
At the start of October I’ll be running a workshop on iOS Sensors and External Hardware. It’s going to be hardware hacking for iOS programmers, and an opportunity for people to get their hands dirty both the internal sensors in the phone, and with external hardware.
The workshop is intended to guide you through the start of that change, and get you hands-on with the hardware in your iPhone you’ve probably been ignoring until now. How to make use of the on-board sensors and combine them to build sophisticated location aware applications. But also how to extend the reach of these sensors by connecting your iOS device to external hardware.
We’ll look at three micro-controller platforms, the Arduino and the BeagleBone and Raspberry Pi, and get our hands dirty building simple applications to control the boards and gather measurements from sensors connected to it, directly from the iPhone. The course should give you the background to build your own applications independently, using the hottest location-aware technology yet for any mobile platform.
The workshop will be on Monday the 8th of October at the Hoxton Hotel in London at the heart of Tech City, and right next to Silicon Roundabout. I’m extending a discount to readers; 10% off the ticket price with discount code OREILLY10. That makes the early bird ticket price just £449.10 (was £499), or if you miss the early bird deadline (the 1st of September) a full priced ticket still only £629.10 (£699).
Alasdair Allan is the author of Learning iOS Programming, Programming iOS Sensors, Basic Sensors in iOS, Geolocation in iOS, iOS Sensor Apps and Arduino and Augmented Reality in iOS. Last year he and Pete Warden caused a privacy scandal by uncovering that your iPhone was recording your location, all the time. This caused several class action lawsuits and a U.S. Senate hearing. He isn’t sure what to think about that. From time to time he stands in front of cameras, and you can often find him at conferences run by O’Reilly Media. He runs a small technology consulting business writing bespoke software, building open hardware and providing training, including a series of workshops on sensors. He sporadically writes blog posts about things that interest him, or more frequently provides commentary about them in 140 characters or less. Alasdair is also a senior research fellow at the University of Exeter. As part of his work there he built a distributed peer-to-peer network of telescopes which, acting autonomously, reactively scheduled observations of time-critical events. Notable successes included contributing to the detection of the most distant object yet discovered, a gamma-ray burster at a redshift of 8.2.
Oggcamp, now in it’s fourth year, has firmly established itself as “The” unconference for those interested in open source hardware and software. This year’s venue, was the fantastic John Moores University building, which provided fantastic facilities for the Oggcamp organisers.
Oggcamp, for the first time had a fringe event. Called the “Open Hardware Jam”, it was a chance for hardware hackers and makers to meet and learn new skills from each other. There were many makers there, from the latest sewing technology (producing fantastic custom t-shirts and baseball caps) to the Raspberry Pi being sold to eager delegates.
The Jam was a great chance to get hands on and learn new skills, many delegates learning to build devices using Nanode, Arduino and Fignition. 3D printers, were also present, different types producing all manner of custom made curios.
The heart of Oggcamp is the unconference, this year with 4 tracks, 3 for the unconference, and 1 track for a great list of scheduled speakers. Unconferences are always fun, you never know what talks you will get, and Oggcamp certainly does not disappoint. We had talks about programming, podcasts and the future of our children’s ICT learning in schools. There was also a lightning talk session added to the schedule, to allow for fast paced talks.
The event has grown in four years, from a small hotel in Wolverhampton for the first Oggcamp, to a large University building in Liverpool for this year. The momentum that Oggcamp generates, before and after the event is immense, with lots of projects being created and demonstrated at the event. With so many people in attendance, it is easy to reach out and work with like minded people.
My thanks to the organisers, especially Dan Lynch, for their sheer hard work in making this event happen.
Special thanks to my crew, it was my pleasure to be your “Chief”, you all worked extrememly hard, and I am proud of you.
So what are these fab labs of which people have been speaking about so much lately? As Wikipedia puts it, “The fab lab program was started in the Lab at MIT, a collaboration between the Grassroots Invention Group and the Center for Bits and Atoms (CBA) at the Massachusetts Institute of Technology, broadly exploring how the content of information relates to its physical representation, and how a community can be powered by technology at the grassroots level”.
The program grew out of a popular class at MIT called “How to make (almost) anything” thanks to Professor Neil Gershenfeld, who realized that academic education was heavily centered on theory and his students could barely screw in the proverbial light bulb. In one of his speeches he said that at the time he thought “Will the MIT allow me to teach these things? Won’t they be too useful?”.
Anyway, a fab lab is a fabrication laboratory, i.e. a lab equipped with digital technologies in which people can meet and build, almost anything. The term fab lab can also be interpreted as “fabulous laboratory”, for the almost magical way in which you can design a digital model on a computer and automagically transform it into a real and almost living object. Actually, the vast majority of projects startsout on the back of a napkin before they evolve into more and more precise models, which will then be the basis of the first prototype. This is good, because it means that anybody can start a brilliant project, all they need is a little nudge and someone as passionate who can help them.
Frankenstein Garage is a fab lab, if a very small one yet: also known as FabLab Milano, Frankenstein Garage was born in May 2011 in front of a coffee machine – one of the most dangerous places in the world because it can host conversations that can lead you to the most strange and unimaginable places and situations. Which is exactly what happened to us.
“Us” basically means Paolo and me, even though one of the mantras about starting a new grassroots fab lab sounds more or less like “the more, the better”. Paolo is a very creative and passionate electrical engineer, while I… well, I write posts for Josette G. We lived in front of each other before realizing that we shared a lot of passions and interests, and so it was only natural that we started collaborating. Before we started the famous conversation at the coffee machine we tried other different projects, which failed but taught us a lot. And now here we are.
The official list of the tools for a fab lab leads to an initial investment of about $180.000. The crisis which is storming over Italy and Europe at large makes it very difficult for everybody to start out with such an investment, and this is even truer for us as we started out of nothing. So, how can you launch a startup during such a difficult time? We are following the theories by Steve Blank, Alex Osterwalder, Eric Ries, Josh Kaufman and many others.
Theories that always hold up, even in happier times because they focus on finding an actual working and healthy business model before putting on a money-eating monster. This is why we started even without a venue, just collaborating with different projects of the international fab lab network.After that, as knowledge sharing is a very important part of the philosophy of fab labs, our MEVO (minimum economically viable offer) was education, with the “sciura Maria” courses in which we teach the foundations of electronics, microcontrollers programming, processing, and 3D printing.
Also, we have had the great pleasure of speaking at conferences like WhyMCA, Italian Agile Day and Codemotion. Meanwhile, leaning on other established labs, we have helped people to realize their projects in a perfect fab lab style. Now it seems we have a venue, even if Italian bureaucracy and the costs of insurance do not help those who wants to start a business of their own, so we hope to have the fire extinguishers of the proper color as soon as possible.
Anyway, if you are interested in starting a grassroots fab lab of your own, you can attend FABFUSE 2012 which will be held in Amersfoort (NL) from 8th to 11th August – sorry you have to wait until next year. Also, do not miss the Makers Italy fair which will be held near Milan from 9th to 11th of November. Bring your ideas with you, we’ll be longing to hear them. So… what is your idea? And what are you waiting for?
Andrea Maietta (@andreamaietta) Passionate supporter of agile methods despite his three digits weight, he passed from the role of scrum half to that of Scrum master, even if his true love remains the back row. He’s cofounder of Frankenstein Garage, the first (would be) fab lab in Milan, where he tries to build a lightsaber while he’s busy keeping the geeks of the lab down to earth. Every now and then he rants on [http://andreamoz.blogspot.com].
Paolo Aliverti (@zeppelinmaker) He shares his many interests, which comprise business, management and technology, on his blog. LEGO, electronics and IT have been his biggest passion since he was in the cradle (but don’t tell his wife). He’s cofounder of Frankenstein Garage, where he puts his experience on physical computing to good use leading courses on electronics and microcontrollers.
Functional programming ideas have been around longer than computers: Church’s lambda-calculus was invented in the 1930s as a way of describing computations as functions around the same time that Turing was describing what an idealised (human) “computer” could do through Turing machines. The idea of using functions as the primary means of computing fed straight into Lisp and its (LAMBDA …), ideas of procedures in Algol68, but settled into what people now call functional languages in the late 1980s, with the definition of ML, Haskell and Erlang.
Erlang – which is really a language for high-concurrency, fault-tolerant, robust systems – is based on functional ideas because it’s so much easier to write concurrent systems when every assignment is a single assignment (check out Single Assignment C too). Haskell and ML (and also OCaml, SML, …) are general purpose languages where types do much of the heavy lifting for you: types are inferred from what you write, and if you have got a program that type checks then you’ve ironed out a whole class of errors before running a single instruction.
As I’ve said, these languages were first defined more than twenty years ago, so what are the modern functional programming languages? One answer is Java, and other mainstream languages, which are taking on more and more functional features. Using immutable data is inherited from the functional world, as were Java generics. Coming soon are closures – yes, that’s right, LAMBDA in Java! So you can do functional programming in Java (and O’Reilly have recently published Functional Programming for Java Developers: Tools for Better Concurrency, Abstraction, and Agility).
But what if you want to try the real thing? A first choice is F#, which puts a functional language into the .NET framework as a first-class citizen, with internationalization, intellisense, and full integration with C# and the .NET libraries. One of the ways of getting started with F# is to use it to explore some of the library APIs, executing calls interactively. Extending Java to give a fuller functional language, as well as Erlang-style concurrency, is Scala. From Scala too, there’s access to the Java libraries, as well as execution on the JVM. Finally, it’s worth taking a look at Haskell, which is functional first, but which provides controlled access to concurrency, IO, exceptions and a wealth of open source libraries.
At CUFP 2012 you can find tutorials on F#, Scala (1 day each) and Haskell (2 days) designed to give you an introduction to the functional style of programming even if you’ve never used a functional language, this is a chance to find out more.
But, why bother, you might say? One reason is sheer curiosity: you’ll find out what all the fuss is about, and see where ideas like map-reduce come naturally out of the programming style. It also give you a different way of attacking problems: even if you’re going to be programming in Java, then a functional style might well give you a different tool to solve the problem at hand.
Another reason is to get a job (really!). How are functional languages getting used? Erlang and Scala support high-throughput message handling and web systems, and are the “secret weapon” behind applications supporting Facebook, Amazon and other systems. Haskell gets used in building domain-specific languages in security, crypto and increasingly in the financial sector, where F# is getting traction too. You’ll see a steady stream of jobs calling for Erlang, Haskell, Scala, F#, as well as for people who are happy using one of these languages and C, or Java or whatever, because functional languages often come in as a solution to part of a problem, rather than solving the whole thing.
If you like the sound of this, then sign up for one of the tutorials at CUFP, and I look forward to seeing you there!
My main research interests are in functional programming, most recently to help people to write programs more effectively. In particular, together with Huiqing Li I have been working on building refactoring tools for functional programs in Erlang and Haskell, supported by EU and EPSRC funding. I have also worked in reasoning and multimedia. I have written four books on Functional Programming including Erlang Programming with Francesco Cesarini and Haskell: the Craft of Functional Programming – Simon Thompson, Professor of Logic and Computation, University of Kent
I am suffering from a lack of Perl – maybe not the language but definitely the community. As far as I can remember, I have always been there – behind the O’Reilly table, filled with all the pale blue books. You guessed this year I am not going to YAPC as it is outside of my territory – that feels very strange and my Summer is incomplete. Come on Perl people get YAPC back in my part of the world! Since I cannot talk about YAPC, I will talk about two new (or not so new courses) that we have organized with Floss UK. These courses are not just about Perl but the tutor is the Perl Guru – Damian Conway.
I will not bore you with the details of the course, you can read them on the website –
Regular Expressions Training Course
Thursday 11th October 2012
Venue: Imperial Hotel, Russell Square, London WC1B 5BB
Presentation Skills Training Course
Friday 12th October 2012
Venue: Imperial Hotel, Russell Square, London WC1B 5BB
I thought I would just give you some examples of people’s feedback after they listened to Damian’s courses or talks. First quote is about the “Presentation Skills” course given in London in April (I know you’ve read this quote in a previous post but if the BBC can do repeats why can’t I):
“I attended Damian’s ‘Presentation Aikido’ yesterday. It’s the only time I’ve remained so engaged with a subject for 7-8 hours, and that includes school, university, OSCON and an all night session with Lord of the Rings. What’s even more impressive is that I remained engaged with a subject I normally find incredibly tedious. Like almost everyone else, my professional life has been blighted by three dimensional transitions, psychedelic colour schemes and psychotic presenters, not all of my own creation. Damian’s skill is to focus on the content and to cut the rubbish that can make presentations so unbearable. And that content is unparalleled. Using his hard-won experience as a speaker, he imbibes attendees with a very real sense of what it takes to make great presentations, and that’s the best possible outcome I could have hoped for.” – Graham Morrison, Linux Format
Then I ramdomly took some quotes from Damian’s website – please note for once I am not guilty for the typos etc.
“Damian is a witty, engaging and experienced speaker and it shows in his delivery style and the quality of his talk and slides. He makes the whole process of presenting look effortless. Of course, if you had attended his class on presentations you would know that he had already practiced his talk at least three times in the week before. That was an important lesson and it does help as it makes you confident and knowledgable about the flow of your talk. There were several other tricks that Damian gave in that presentation and if you get a chance to attend, I recommend you take it.”
“Dr. Damian Conway is an extremely clever, creative, witty, and entertaining lecturer. He has been aptly characterized as a cross between Donald Knuth and Monty Python.”
“Damian is the most engaging and motivated instructor I’ve had the pleasure of seeing. I can’t wait to see what he has up his sleeve in the next twenty years!”
“Very knowledgeable (for obvious reasons) as well as congenial and animated. Made the subject quite fun and very enticing.”
“Informative and interesting; not boring. Lively speaker; no way to get any sleep in here.”
“Great pace/instruction. Damian is an excellent teacher; very creative and knowledgeable. The humor really made for a great presentation.”
“Damian is a top-notch instructor. I was extremely pleased. It’s good to be taught by leaders in the field!”
“Too much fun; should be declared illegal!”
I hope I have convinced you that these two courses are a must, if not have a look at Damian’s website where you will find more fantastic quotes.
When I introduce myself to people as one of the “machine learning” guys at Rangespan, most often people will follow up with “What is Machine Learning?”. It’s a good question so let me explain.
Machine Learning is about how we can make computers learn like humans do. Let’s take the example of learning language. Take a one year old toddler, she might hear this new word called “bird” when people point to an object in the sky and decide to start using it herself whenever she sees something in the sky (perhaps mistakenly when it was an airplane). What that toddler just did is remarkable; she didn’t just memorize or associate the word “bird” with the occasions in which she saw things in the sky previously, rather she discovered a pattern in how the word “bird” is used, and decided to use it in a similar but slightly different context.
This idea of using pattern recognition to make generalisations lies at the heart of machine learning. A classic example studied extensively in the academic community is hand written digit recognition. All hand written digits differ from each other in big or small ways. What we’d like to do is discover broad patterns to be able to automatically recognise hand written digits: e.g. a six looks a bit like a spiral, a four has no round bits, … We could try to have programmers encode these patterns in algorithms but a much more successful approach, pioneered by nature and rediscovered by the machine learning community, is to give a computer a few examples of hand written digits together with their labels and let it figure out what patterns are useful to distinguish different digits. “Machine learning people”‘s jobs are about inventing new algorithms that can learn patterns from existing data in order to generalize.
For this reason, machine learning is also a driving force behind the big data movement. When more data is available, most machine learning algorithms can more easily discover patterns and generalizations.
For the past few years I had done lots of machine learning research at Microsoft in Cambridge but in September last year I decided to join a startup in London. The first thing that struck me was the buzz at the various meetups that are organised in the city. It’s great to join a group of people to talk about a common topic.
When a friend in New York sent me an email late last year about a discussion they had at the New York Machine Learning Meetup I imagined how fun it would be to get some people together in London to talk machine learning. When we started contemplating the structure of the meetup we thought we could make the meetups even more interesting if we could bring people at the cutting edge of research (academics) with people at the cutting edge of practice (industry) in the same room.
So in February 2012 we kicked off the first meetup with Jedidia Francis (PhD student from Oxford) and David Singleton (Google). We organised that meet up in the dev room at Rangespan and when 25 people showed up, space got a bit tight.
Six months and eight speakers later our group has grown to more than 300 people. We’ve had speakers talk about self driving cars, agents that learn how to play civilization from reading the manual, … We’ve learned about how machine learning systems are used at big organisations like Microsoft as well as at small startups like PeerIndex. We’ve been sponsored by PeerIndex, Forward Internet Group, VisualDNA, Rangespan and O’Reilly.
It’s quite clear that machine learning is hot, smoking hot. It’s exciting to see so many people wanting to learn machine learning and apply it to their application domain. I believe that there is no other place in the world where there is so much high quality machine learning happening than in and around London: with universities like UCL, Oxford, Cambridge, …, startups like PeerIndex, Last.FM, Rangespan, …, established companies like Microsoft, Google and all the hedge funds there is an almost unlimited supply of people who know machine learning as well as an unlimited demand for people who can work in machine learning.
If you want to help out by presenting your work and/or sponsoring the meetup, do get in touch. Otherwise, I look forward to meet all of you at the London Machine Learning Meetup soon!
Jurgen is a dev manager at the e-commerce startup called Rangespan where he is helping to build the biggest catalog and most competitive marketplace in the world. Before joining Rangespan Jurgen was a research scientist at Microsoft. As part of the Bing Personalization team, Jurgen invented new statistical models for predictive tasks and helped develop Bing’s recommendation engines. Jurgen has a PhD in Machine Learning from the University of Cambridge, an MSc in Computer Science from the University of Wisconsin-Madison, an MSc in Informatics from the Catholic University of Leuven, and was a Fulbright Scholar.
I don’t think I’ve ever attended a training session that began with the tutor pushing me towards a wall after reassuringly telling me that he “wasn’t going to hurt me”, but this training session is like no other that I’ve attended.
Damian Conway, minor deity of the Open Source and Perl world is not like other trainers. A professional presenter, Damian tours the world speaking at conferences and providing training far and wide from his native Australia in what can only be described as a unique and elegant style.
Our martial arts introduction to the day was of course all part of a carefully planned and executed methodology designed to teach us how we too could excel at presenting.
Our tutor better described this as “Presentation Aikido” or a way of harmonising with the flow of the Universe, or in our case our audience.
Sticking with the advice of keeping focus on five to seven points, we learned all about the seven key points of presentation.
- Be competent – only talk about things you know about.
- Be passionate – only talk about things you either love or hate.
- Be entertaining – it’s the key to communication
- Be prepared – most of your work is done before you step in the room.
- Be stylish – nobody likes a bad slideshow.
- Be engaging – connect with your audience.
- Be yourself.
For me, the biggest eye opener was when Damian told us that he spends around one hundred hours preparing for each hour he presents. Us mere mortals should probably be trying for twenty to thirty hours though!
Don’t just take my word for it, Graham Morrison of Linux Format had this to say:
“I attended Damian’s ‘Presentation Aikido’ yesterday. It’s the only time I’ve remained so engaged with a subject for 7-8 hours, and that includes school, university, OSCON and an all night session with Lord of the Rings. What’s even more impressive is that I remained engaged with a subject I normally find incredibly tedious. Like almost everyone else, my professional life has been blighted by three dimensional transitions, psychedelic colour schemes and psychotic presenters, not all of my own creation. Damian’s skill is to focus on the content and to cut the rubbish that can make presentations so unbearable. And that content is unparalleled. Using his hard-won experience as a speaker, he imbibes attendees with a very real sense of what it takes to make great presentations, and that’s the best possible outcome I could have hoped for.”
If you don’t know how to do these things then I recommend getting yourself to the next session coming up in October!
Damian will be back in the UK and will give the following full day courses
- Regular Expressions Training Course – October 11th (and no, it is not just for Perl fans)
- Presentation Skills Training Course – October 12th
Ian is a keen Perl hacker co-founding and co-chairing Northwest England Perl mongers for the last three years. Lately his focus has gone back to an old love in the form of network monitoring and management since working on an OpenNMS project for his employer. When not wrangling exim, herding linux system and working on access control technologies, he can be found roleplaying or singing tenor.
Back to Florence for EuroPython 2012 – Don’t be jealous – you would hate the heat! We are talking serious heat here between 35 and 40 degrees.
Monday morning started with a talk by Guido van Rossum “Not the State of the Python Union”. In this talk Guido answered some questions –
- Worried about the future of Python 3
- Wondering when lambda will be fixed
- Angry about the GIL
And much more.
This talk was followed by Alex Martelli’s “Permission or Forgiveness”. Inspired by the Mother of Cobol, Rear Admiral Grace Murray Hopper ‘s motto “It’s easier to ask forgiveness than permission”. I cannot argue with Alex’s recommendation of applying or not applying this motto in the Python environment but I would not recommend its application at home.
Other talks included all the buzzwords:
- PyPy
- White PyGame (Python’s most popular 2D game library)
- OpenStack – the large and relatively new platform for building IaaS public and private cloud
- Django – Python Web Framework
- Tornado – the non-blocking lightweight web server and framework
- Juju – new open source configuration management and tool for deploying services into a cloud and data centre environment
- Flask
- RestFS – next generation cloud storage
- PyPedia
- Camelot
There are of course some more generic talks like –
- Spotify, Pipelining your Music by J Pulliainen
- Becoming a better programmer by H Massa
- Health for Geeks: Feel better, save money, live longer by being lazy by N Larosa
- Music Theory; genetic algorithms and Python by N. Tollervey
- Increasing women engagement in the Python environment by L Root
As expected you can now find talks on databases and Python, Arduino and Python, Android and Python etc.
The week was not just about talks but there was Coding Competitions – Python Challenge and Google EuroPython Code Jam. One should not forget the social side of the event with PyBeer, PyFiorentina, Tag Cocktails etc.
EuroPython (Florence) is one of the best organized conferences I know. Organized by Python Italia, Associazione di promozione sociale with a lot of support from Develer Srl.
Hope to see you there next year!