Until three months agothis was all I knew about podcasts:
When I needed to ask one of my coworkers a question and their reaction was to pull out their headphones and then looked for the pause button on their headphone cord, they were listening to music. When they were searching for the pause button first and then pulled their headphones out, they were listening to a podcast.
In the fall of 2012 (seven years after Apple added native support for podcasts to iTunes and eight years after they thought they had a trademark on “pod”) everything changed. “This American Life" was the gateway prog that kept my brain busy during hours of circuit board assembly. This American Life's branded Android app works about as well as discussing weight loss with our cat, which lead to the historic event in November 2012: I installed a podcast manager.
Here’s the subscription list I have assembled so far.
This American Life
According to their own stats, 750,000 people listen to the podcast of this show alone (i.e. not including the radio listeners across pretty much every NPR station in the US and CBC in Canada). Listen to the program for five minutes and it’s immediately clear that this is a high quality no-nonsense radio production. There are now awkward pauses, nobody ever misspeaks and nobody ever sounds nervous on This American Life. The soundscaping is present but blends in perfectly. Nothing distracts from the speech. Even material recorded when cold calling sources is edited to make every person sound like they are coming right from their public speaking coach.
You’ll notice this as a common theme, so I’ll insert it as an interjection here: I find the production quality of a podcast more important than the content. Your program could contain tomorrow’s best performing stock, if your levels weren’t normalized and your speech wasn’t steady, I wouldn’t subscribe.
This American Life’s content is mostly in the investigative journalism category. The stories are always non-fiction except when Mr Daisy gets to make the program). Some stories are non-stories (like last weeks story on how hog rectums might or might not be used as fake Calamaries).
I don’t know about this one. The shows’ producer won a radio talent contest with the concept of producing a story telling show. I didn’t know this, but story telling appears to be a performance art like stand up. I guess the comedian whose show I went to in London many years ago and consisted of him talking about how his Dad just died was actually a story teller.
Snap Judgement's tag line is “story telling with a beat” and the beat is something that takes some getting used to. There is music mixed into the stories, music between the stories, and none of it quite blends in. And then there are the jokes (?) that make up the credits at the end of the show. I rarely get those. This show makes me feel like a stranger (which I technically am). I subscribe to it for the selection of stories ranging from eye opening to moving.
Fun fact: Snap Judgement’s website’s FAQ contain info on how to get started producing a story that they would air.
From Scratch, unlike TAL and Snap Judgement, is not nationally syndicated. It does, however, run on NPR Berlin of whose existence I had no idea of until half a minute ago. Anyone reading this who listens to NPR in Berlin?
From Scratch is a series of interviews with people who started something, usually one or more businesses and sometimes a non-profit. This week’s guest was the initiator of the Highline Park in NYC. Today I listened to the interview with the founder of Tumblr (guess when I decided to write this post). Many guests are from the New York area which gives the program a local touch.
Initially the interviews felt very scripted with the presenter (Jessica G. Harris) sounding undynamic. After listening to tens of episodes I’ve come to appreciate that though because it shifts the focus to the guest. The inquisitive questions about the guests’ families and personal relationships sometimes make me feel like I am listening to something that’s none of my business, I genuinely hope they go over those before the recording.
This Developer’s Life
I’m pretty sure I know how these two gentlemen came up with the title of their podcast… As far as I can tell this is a private production and they are doing a pretty good job at imitating their namesake. In addition to very clean production, they have access to a surprisingly large number of people and stories. I particularly enjoyed listening to the story with and about Bill Hill, the co-inventor of ClearType.
Something I am grateful for is that they chose “developer” over the totally abused “engineer”. What they mean is “person involved in the creation of software”.
The Amp Hour
This is the odd one out. I’m pretty sure they record the show by recording a Skype conversation and then posting it unedited. They go off on tangents from which they only recover after 10 minutes. And Dave says “oh boy” at least 10 times each episode. I think I am not insulting anyone when I write that Dave and Chris don’t know much about producing radio, but they definitely know their s*** about electrical engineering. Dave deserves a medal or knighthood or something for his instructional videos on the EEVBlog and Chris probably the same for his videos which I should start watching one of these days.
Half of the shows consist entirely of completely unorganized chatting between Dave and Chris about industry news. For reasons beyond my comprehension they devote 10 minutes of each show to repeating the evers-same discussion about Kickstarter.com.
The other half of the shows involve a guests. This is where the style of the program comes to fruition. Most guests quickly realize that nothing has been prepared and relax into storytelling mode. I learned all I know about manufacturing in China from Scott Miller, and got a basic understanding of how those black boxes I solder to circuit boards come to life thanks to the CEO of Touchstone Semiconductor.
I can also recommend NPR’s Planet Money, made by the same people as This American Life, talking about fun things like starting their own shell company in Belize. The Robots Podcast is a good source of information on robotics but takes some energy to listen to. Currently in my playlist and waiting to be heard is The Moth, which I hear is another famous storytelling podcast similar to Snap Judgement.
What am I missing?
Do you know of other podcasts I should try out? Drop me a comment below, or send me a tweet @jonemo, or email me at [my-two-letter-initials]@jonasneubert.com.
Manufacturers are also just Middle Men
Any market where unnecessary middlemen stand between customers and their successful use of a solution is about to be disrupted.
This quote is from an article by Box.net founder Aaron Levi on FastCompany.com. It got me thinking about how bad life must be as a Middle Man.
In the article, Levi mentions Amazon and Ebay as examples for simplicity through disintermediation. Both companies drastically improved processes by removing intermediate parties, aka “Middle Men”. Ebay did it with private sales, and Amazon did it with book sales, then sales of everything, then server commissioning, then book authorship, and so on. Today the trend to kill middle men keeps most of the world’s tech startups busy: Uber, Exec, Spotify, 23andMe, etc—everybody is trying to kill some sort of middle man. Who are these unfortunate people in the middle?
Today’s endangered middle men live at the top of the supply chain. They are retailers, distributors, medical professionals, taxi dispatchers. In the supply chain, they are between the producers and the consumers. They have in common that some or all aspects of how they add value is in the process of being replaced by a cheaper and/or better technology that enables self-service.
What’s quite interesting is that a new batch of middle men is already getting in line for disintermediation. They are the manufacturers. You read that right: Manufacturers are also just Middle Men. In the supply chain, they currently live between the designer and the soon-to-be-gone distributors and retailers mentioned above.
Manufacturing is often regarded as solid future-proof business because its value-added is physical. Middle man assassins today stop at manufacturing because making stuff is hard. Enter 3D printing (which really just is a catch-all term for a group of novel manufacturing methods). Suddenly the assumption that manufacturing is hard is as outdated as the assumption that you can earn money by stocking dead trees on shelves.
The time when you can have an affordable machine in your home that can fabricate many of the objects we are used to buying from a store will be here sooner than you think. Five years in, it will increasingly seem ridiculous to have finished objects transported from a far-away production facility to your house. Who needs free UPS Second Day shipping with Amazon Prime when you can buy a blueprint from the designer and have it fabricated in your home within an hour or two? There will be a new group of startups ready to remove the manufacturing middle men and to cash in on this change.
To pacify the skeptics I should mention that the change I am describing will be gradual and incomplete, just like the current wave of middle men assassinations. Some things will never be fabricated at home (Higgs Bosons, dark matter, etc). Many items will remain more economical to produce in factories for a long time. And there will always be people who prefer doing things the old fashioned way (your parents, progress deniers, the Amish). None of that invalidates my main point though: Manufacturers are middle men.
One more thing: Remember how I wrote that manufacturers are middle men between designers and consumers? There is no reason to assume that designers aren’t next in line to play the role of the unloved middle man. Once manufacturing has been disintermediated, designers are just the middle men between ideas and and consumers. First attempts at design automation are old news even today…
Why I stopped using Gmail
I am a fan of Google products. When Google Voice first came out I went around begging people to invite me and have been using it ever since as my primary number. I can’t even remember how I read RSS feeds before there was Google Reader. And Gmail! I was a little hesitant when it was first released but for the past years Gmail was the first browser tab I opened in the morning and the last one I closed at night. The list goes on. According to my Google Accounts page I use 30 different Google services.
Things were good. Google made more and more great products. Whenever one came along that I found useful, I started using it. Payment was easy: I gave them my data, they used my data to show me relevant ads. Sometimes I clicked the ads and bought something. I was happy. I thought Google was happy. I was wrong.
Google does not want me to love their products. Google wants me to love Google. All of it. As Larry Page himself points out: “This is the path we’re headed down – a single unified, ‘beautiful’ product across everything.” (Source: Pando Daily)
Examples of “unified, beautiful” have been cropping up everywhere on Google for months now:
- The grey bar on top of Gmail has been there in one form or another for a long time. It’s a time sink. I am distracted easily. A constant reminder that Google Reader exists and that somebody whose name I remember added me to a circle is the last thing I need—even if the reminder is beautiful and unifying.
- During my occasional visits to Google+, an artificial intelligence suggests I should invite my boss and other professors I work with to Google+. Nobody told the artificial intelligence that it’s above my pay grade to invite professors to social networks. And anyway: What does the frequency of emails I sent people through Gmail have to do with Google+? Nothing. Beautiful and unified. But mostly annoying.
- For years you could sign up for Google Analytics with any email address. A while ago, you had to merge that separate login into your Google Account. Your client’s websites that you track in Analytics have nothing to do with the cat videos you share on Google+? Too bad, now the cat videos and your clients are beautiful and unified.
- When I google my name, as suggested by Google, the first “search result” informs me that my Google+ profile is 30% complete. Beautiful and unified. And irrelevant.
- There was a time when you could sign up for Google products, and sign off from Google products. Today, you are merely informed when you automatically become user of new Google product like Google+. Compare how many Google products you use today, to the number of Google products you can individually remove from your Google account.
There was a time when users had needs, and chose tools to satisfy those needs. Need to hang a picture? Select a hammer. Need to make pancakes? Select a pan. Need ubiquitous access to your email? Select a webmail provider. Everyone had their own set of tools. Every lumberjacks has their own preference of chainsaw. Every code monkey has their own preference of text editor. Some like Stihl, some like Husqvarna. Some like Vim, some like Emacs. On the internet, these times are over.
We aren’t selecting individual tools any more. We choose from a small selection of beautiful unified tool boxes. If you want Gmail, get the Google tool box including a Google+ profile you never asked for and personalized search results that shape your picture of the world. Some fear that this will lead to incompatible online service ecosystems: Separate world wide webs owned by big companies. I fear more practical issues:
- Google locks people out of their accounts. All the time. I recently lost my Google Adsense account for no clear reason and without a chance for appeal. With a unified Google both your chances of unintentionally triggering an account lockdown increase and the damage caused increases.
- Unexpected interactions between tools you never use and your uninformed actions will result in your data being exposed like it happened with Google Buzz. If you care about your privacy, you will have to understand the entire Google ecosystem to protect it, not just the Google products you use.
- It will be even harder to focus. Google Talk and Google+ and the Google Toolbar are already there today to distract you in Gmail. This will get worse.
I want to continue using the Google tools I love without the risk of losing my online identity by doing something I didn’t know was prohibited (I am still not sure why that Google Adsense account is gone), without the work involved in understanding the entire Google ecosystem to manage my privacy, and without constant distraction by the latest gadgets Google came up with. Dropping Gmail is how I achieve this.
Why Gmail? Of all Google services, Gmail holds the most information about about me, and also the most private information. My mother’s maiden name, my SSN and what medication I took for an inflammation three years ago, it’s all somewhere in my Gmail. By taking that data out of the beautiful unified Google ecosystem, I dramatically decrease the risk of privacy debacles. Gmail is also the Google service I interact with most. By leaving it, I achieve the biggest reduction in beautifully unified distraction. Not using Gmail should also reduce the chances of losing access to the tools I rely on—doing less things inside the ecosystem seems like a good strategy for doing less things that can cost me my key to the ecosystem. And finally: As opposed to other Google products, there are good alternatives to Gmail.
Farewell Gmail. And kudos for your IMAP access, the “archive” concept, threaded conversations, and generally how you disrupted the freemail market!
WebOS developer relations writes you a recommendation to move to Windows Phone 7
HP announced it will no longer produce webOS devices. That’s old news and it sucks because webOS is the only mobile platform I know how to develop apps for. I’ve got better things to do than write about that though, instead I have a fun side story that developed around the whole webOS hubub.
That’s yet another clever marketing move by Brandon after betting $1,000 that the Dilbert creator will like Windows Phone 7 and offering free devices to various hackers including the guys who first jail broke Windows Phone 7 (read more about it at WinRumors).
While Brandon’s move isn’t a big surprise, this entry in the HP webOS developer forums sure is one:
You’ll be forgiving to think this is some sort of prank. But “webOSdev” is in fact the account of Chuq van Rospach, the developer community manager answering developer questions in the HP webOS forums.
anyone who wants to take Microsoft up on their offer, I’ll write you a letter of recommendation to help you qualify.
(I’m not joking. I get that developers have to pay the rent.)
In summary: The developer relations guy for webOS is offering webOS developers help in transferring over to Windows Phone 7. You make up your mind if that is a good sign for the webOS platform or not.
Palm Dissatisfaction Survey
If you follow me on Twitter or know me in person, you might know, that I am a huge fan of HP/Palm’s webOS operating system for smart phones and tablets. While the consensus of the tech world seems to be that webOS is dying, I write apps for it. Oh well.
I bought* a Touchpad on release day (July 1) and it broke (the frame cracked). The replacement process was meant to be uncomplicated. You get the replacement device shipped UPS Next Day before even returning the broken product. That would be the most awesome customer support I ever experienced from a consumer products company! Not quite unexpectedly, HP/Palm managed to turn their big win into a huge pain that makes me regret not superglueing that crack instead.
Today Palm (who is now some HP business unit) asked for my feedback about my recent customer support experience. Always trying to be helpful, I wrote up an honest account of how they pissed me off big time. I don’t really expect anyone at the HP end to read it (maybe the high school summer intern), so I post it here, too, in hopes that someone who cares (like people thinking about buying an HP product) might read it.
The idea behind the return process is revolutionary (for tech companies): Get the new product shipped Next Day before sending the old one back! Wow! Everything else: Not so awesome.
I registered my device in a HP Service Profile on the HP website to get “faster better support”. I described my problem through the web chat to an operator, who suggested a replacement. I would only need to call a hotline to leave my credit card details.
Instead of a quick call, calling the hotline took one hour (!) during which I had to spell my shipping address (which is stored in the HP support profile), find the serial number of my device which I did not have with me at that point (already given in chat and HP support profile), and yell my credit card details into my phone in a public place twice (because sending credit card details over your chat system is deemed insecure). The two phone operators I dealt with needed five attempts in total to write down my address (already stored in HP support profile for faster easier support). Their English skills were not suficient for their job and they clearly struggled with the technology they were using, having to wait for their computer system to respond for several minutes at times. You are an IT company, yet your customer support IT seems to be in shambles! And the operators claimed to be located in California, which I strongly doubt. Why lie to customers about something trivial like your geographic location?
The replacement arrived quickly, but has flaws:
- The home button (it’s a Touchpad) is sunk in and doesn’t return to its neutral position.
- The HP Care package (available in App Catalog) is not available despite being downloaded within 30 days of original purchase.
- Apparently the device does not qualify for the $50 early adopters voucher because it is a replacement. As if it was my fault that my first device was of bad quality!
Initially I was ecstatic about the fast uncomplicated replacement. Now I am just angry about dealing with HP Support.
Their response: “Thank you for completing the Palm survey. Your response contributes to helping us better serve you in the future.” We’ll see.
* Footnote: Technically I only bought half of the Touchpad, the other half belongs to @cojofra.
Update (Aug 20, 2011): A day after submitting this survey response, I received a call from a HP customer service rep. He never mentioned any of the disastrous previous customer service, but tried to work through the problems I listed with the replacement device. And he had clearly done his research: He knew what I had posted in my Twitter stream, read this blog post, and was up to date with the contents of my Palm profile and HP Service Account. Good job, that’s above and beyond anything I have ever seen from a customer service department! Here is the gist:
- HP made some changes and the HP Care packages are now visible to me (and probably all others in the same situation). Unfortunately, after seeing the prices of what’s on offer, I didn’t want any of them. Nevertheless, kudos for fixing this so quickly.
- He told me that not all voucher codes for $50 app credit had gone out. But he would follow up.
And follow up he did. He called me again the next day (when I missed his call) and his colleague called again on Monday - to ask me what my palm profile email is again (doh) - and again on Tuesday. By Tuesday they had figured out that all $50 app credits should have been assigned and they have no idea why I haven’t got mine.
What happened since then: HP pulled some cool marketing stunt that really reinforces in people’s minds how dead webOS is. No $50 app credit has appeared in my Palm profile. And no one called me again. But I am not allowed to call Newegg to maybe get a $400 refund. I don’t think Apple customers get as much fun and excitement as this when they buy an iPad!
The Cubelets arrived!
Exciting times in modular robotics land! A former coworker of mine started a company aptly named “Modular Robotics" who, over the past years, developed a modular robotic
toy construction kit named Cubelets. After spending years finding out how hard developing a hardware product is, they finally shipped the first batch of 100 beta release kits recently shipped. Being excited about having modular robots around that (unlike my own research modular robots) function reliably, I couldn’t resist shooting a short video of my first experiments with Cubelets.
A big thank you goes to my production assistant and partner-in-crime-at-large @cojofra.
Some potentially useful links if you are interested in Cubelets:
- The official Getting Started guide
- Short video (made by someone who knows how to edit video much better than I do) demonstrating Cubelets by Modular Robotics themselves
- A 50 minute talk (mostly) about Cubelets by Eric at the University of Boulder
- Cubelets unboxing video by Per, author of the Flexibility Envelope blog
How to enable developer mode on a HP TouchPad
This might be a no-brainer for developers who developed for webOS phones in the past. But if you are getting started programming for webOS with a HP Touchpad and the (relatively) new Enyo framework like I am doing right now, you’ll have a hard time figuring out how to test your app on the actual device.
Step 1: Put your device in developer mode
In “Just Type” enter webos20090606. If you happen to have a lot of time on your hands you can also enter upupdowndownleftrightleftrightbastart (the Konami Code). Both secret phrases will result in a otherwise hidden button appearing:
Press the button, switch the “Developer Mode” switch on, and follow the straightforward onscreen instructions. Your life will be a lot easier if you leave the password empty, but that also means that anyone who gets your Touchpad and connects it to a computer, has Novaterm and knows what he or she is doing can get root access to your Touchpad. You decide.
When you’re done you should see this screen:
Step 2: Restart
I am not sure this step is really needed but on the internets I read reports of things not working if you skip this step. To restart your Touchpad, press and hold the main button and then press and hold the on/off button. Keep holding them until the flashing HP logo appears.
Step 2: Connect Touchpad to computer
Plug the USB cable into the Touchpad and into the computer where you are developing the app. On the Touchpad you’ll see a
notification popup offering you to connect the Touchpad as a USB drive. Don’t do it.
Step 3: Load your app onto the Touchpad
The assumption here is, that you have the Enyo SDK installed on your computer (if you used the emulator to test your app, you have the SDK). Open your command line (or terminal if on a Mac) and use the following command:
palm-package [directory where your app sourcecode is goes here]
This packages your app into an ipk archive named after the app name you gave the app in appinfo.json.
palm-install -d usb [filename of your compiled app archive goes here]
The app will apear under “Downloads” in the Launcher. Done.
Appendix 1: Dear Microsoft
Notice how this howto did not include a two week process of getting approved by one of your shitty partner companies and how it did not cost me 75 Euros to gain the right to test three apps on my device for one year.
Appendix 2: Dear Apple
Notice how this howto did not require going to the store to buy a Mac. Also note, that no NSA style encryption and security certificates were involved.
Appendix 3: Dear Blackberry
Notice how it was possible to test the app on the actual device.
My ICRA2011 notes - compiled in absentia
ICRA stands for International Conference on Robotics and Automation. It’s one of the three big worldwide robotics conferences every year (next to IROS and RSS). What’s “big” for robotics conferences? Big for robotics conferences is just over 200 technical session with up to 6 talks each, plus a few video and poster sessions, plus a bunch of keynotes, plenaries and a trade exhibition. Obviously, not everything is relevant or interesting to everyone. Here are my personal notes from this year’s ICRA.
Just to be clear from the beginning: I didn’t go to ICRA this year. But it’s 2011 and there is magical stuff like the internet and online conference programs. Much less magical is the fact that I spent last Saturday digging through just under 1000 abstracts in an attempt to find potentially interesting papers.
Things that fly
Lindsey Hines and colleagues from the Nanolab at the CMU Robotics Institute describe how to control the flight of a sub-gram (!) flapping wing machine. Like other flapping wing flying machines the wings are passively rotating which results in aerodynamics whose analysis is somewhere between difficult and impossible (to my knowledge). I think the machine in the paper is the same as the one shown on their website. The abstract says it doesn’t fly (yet), but the research is primarily concerned with inducing the torques necessary to steer during flight.
Already widely reported in popular news is the aero-train described in a paper by Yusuke Sugahara and colleagues from various Japanese universities. AeroTrain is basically a train shaped vehicle that hovers a little above ground, a concept known as Ground Effect Vehicle. My first thought was: “Why is this in a robotics conference?” Answer: Because the paper deals with the control of the vehicle during flight. And that is aerial robotics. See a video of the (not quite train sized) prototype:
This is a video submission (i.e. instead of a presenter talking for 15 minutes, a video is shown) and my guess is that the video shown at the conference is equal or similar to this Youtube video:
The Flying Machine Arena looks like it used to be a normal atrium at ETH Zurich. Outfitted with safety nets and gymnastics mats by Professor D’Andrea and his team it’s now a test arena for, you guessed it, flying machines. I have no doubt that this “arena” makes for a far better test environment for flying robots, than the Duffield Atrium where Cornell engineers let their flying contraptions rise all the way up to the roof where they (supposedly) trigger the fire alarm. Previous output of Flying Machine Arena includes robots juggling, playing piano and dancing.
A quadrotor balancing an inverted pendulum is the latest output of the Flying Machine Arena. If you fancy a challenge, you can download the math behind this demo from the author’s website. Or just watch the video:
Modular Robots at ICRA2011
This paper by Eric Diller et al. from the CMU RI Nanolab (previously mentioned above) describe new work on Mag-µBots, a flock of non-identical millimeter-sized robots that can be controlled in 2D through applying magnetic fields. The same authors (in different order) have another paper about the same robots in the conference. There’s also a project site and a Youtube video:
Dynamic Physical Rendering is a project at Intel Research Pittsburgh. One Intel researcher and two CMU students wrote this paper about a physics based simulator for millions of robotic modules. The abstract says: “Our approach is shown to run 108x faster than a previous scalable simulator.” The software is a fork of an (unspecified) existing physics engine and simulates distributed software running on and interactions between up to 20 million modules. That’s pretty impressive, now we just need to build a modular robotic system with such a number of modules :-)
Researchers from the Harbin Institute of Technology (that’s in China if you were also wondering) present a new self-reconfigurable robotic system named UBot. The modules are cube shaped with two rotational degrees of freedom and four connecting surfaces each. Since the abstract mentions that quadruped, chain and loop configurations are possible, it’s safe to assume that this is a chain type modular robot (not a space filling lattice type). All in all this sounds very similar to other chain type robots such as MTRAN, Polybot. Some pieces of information such as the size of modules and electronics implementation details are not mentioned in the abstract and I’ll have to wait for the full paper to appear in IEEExplore (which—for unknown reasons—usually takes several months).
Yet another new self-reconfigurable modular robot platform is presented by researchers from the Stevens Institute of Technology, University of Surrey and Honda Research: Cross-Ball “provides several flexible 3D reconfiguration capabilities, such as rotating, parallel, and diagonal movements […] for modular robots using more complex self-reconfiguration algorithms”. And apparently every module is mobile on its own. Unfortunately, no pictures yet. The first author (Professor Yan Meng) also lead a workshop at ICRA under the title “Morphogenetic Robotics: A New Emerging Field of Self-Organizing Robotic Systems”.
More on the theoretical side of things in modular robotics is work by Nils Napp and adviser Eric Klavins whose more recent work has been related to the Factory Floor concept. Think of it as a construction site where a bunch of workers cooperate to build a structure under uncertain material supply and without central control. Their ICRA paper presents a load balancing algorithm for proper load distribution in assembly of modular structures.
Kyle Gilpin and his adviser Daniela Rus have been working on the concept of robot dis-assembly for a while, initially with their Miche modular robots and lately with the much smaller scale Pebbles. The novelty in this paper is a (distributed?) algorithm that allows multiple objects to be made from one initial block of pebbles through disassembly.
Robots that are going to replace you
Researchers from Pisa are about to revolutionize the garbage collection industry with their robot DustCart. At least for a small Italian village. Think you’ve seen this before? Indeed, this went through the blogs in 2009.
There’s been lots of work on teaching robots by demonstration. That’s nice, assuming you can do what you want the robot to do. But what if you want the robot to do something, you can’t do? Like flipping pancakes? This issue is addressed in this paper by researchers from the Learning Algorithms and Systems Lab at EPFL. They also have a video on their website.
For this video submission, a KUKA robot was used to serve ice cream. Maybe we can get one of these for when the Cornell Dairy Bar re-opens? Two interesting aspects of this implementation is how the fragile ice cream cone is gripped and the use of a time-of-flight camera.
This paper by researchers in Oussama Khatib’s Lab in Stanford presents a robot that does the job of a checkout assistant. Just like its human counterpart this robot can work with cluttered arrangements of products and previously unseen products. Unlike its human counterpart the robot uses a 3D sensor. Also unlike its human counterpart, the robot costs 400k but once that’s paid it doesn’t ask for a monthly salary. Here’s the video:
If you think you are safe from being replaced by a robot, think again. A group led by Professor Seth Teller developed a robot to complete a task that many thought would remain exclusive to humans for eternity: Following guided tours. That’s right, this robot is your perfect tourist! “The tour-taking behavior is demonstrated in a multi-floor office building and evaluated by assessing the comfort of the tour guides, and by comparing the robot’s map partitions to those produced by humans.”
- The prize for best paper title at ICRA2011 goes to Gian Diego Tipaldi and Kai Oliver Arras from the University of Freiburg. The title: “I want my coffee hot!”
- Again from the Harvard Microrobotics Lab comes a thin, transparent, “hyper-elastic” keypad. This is one of those papers where I really wish I could see more than the abstract right now. The keypad seems to be electrofluidic with fluidic microchannels across which resistance changes. But why is it a “keypad” and not a “keyboard” or “touchscreen”? I suspect that there is some scalability issue. If this is scalable, can I please have the walls in my appartment covered with it?
- It’s 5.5 grams heavy, can walk (actuated by four Shape Memory Alloy coils), communicate wirelessly and has a camera - MEDIC is the work of the Biomimetic Millisystems Lab at Berkeley.
- This robot does not actually climb walls. But the authors argue convincingly that their air hockey table setup is equivalent to a vertical wall sans gravity. What makes ParkourBot (named after the crazy sport where people run and jump and fly through cities) special is, that it climbs walls dynamically (as opposed to statically). The IEEE’s Automaton blog has the details (and the Youtube video).
- This paper probably won’t hit the blog circuit but sounds potentially very insightful: It’s a comparison of four common methods used to model contact in multi-body simulations.
- The Harvard Microrobotics Lab shows a centimeter-scale inchworm robot with bidirectional claws. It walks on ceilings! I can’t wait to see a video of this.
- New results on how fish swim are presented by researchers at the AILab at the university of Zurich. In a nutshell: Fish with joints of varying stiffness swim faster than those with constant stiffness in all their joints. It’s true for real fish, now we know it works for robot fish as well.
- A robot that can climb any tree - like a squirrel. Presented by the Advanced Robotics Lab at the Chinese University of Hongkong. And here is the Youtube video.
- My personal award for the paper with most authors goes to a group from German DLR who present a human-inspired hand arm system. To me this looks like the best replication of the human arm to date. Want to read more? You have the choice between a technically comprehensive review on the IEEE Spectrum blog orthe usual robots-will-kill-us-all BS on Engadget. There is another paper in the Space Robotics session that seems closely related.
ICRA in other blogs
IHeartRobotics has a small collection of videos from ICRA2011 and Travis Deyle bloging at Hizook.com wrote up a list of talks he is looking forward to before ICRA even began, and the “Robot Perception and Learning lab at CSIE, NTU, Taiwan” has the full list of Best Paper nominees and winners.
Fluidinfo API: Likes & Dislikes
I spent the last two weekends1 working with the Fluidinfo API (here is why). Using Fluidinfo is pretty easy, I found two weekends enough to discover most of what is possible with Fluidinfo.2 Here’s my collection of likes and dislikes which accumulated while working with Fluidinfo. In the spirit of a true pessimist, I start with dislikes.
- Among the very first things I learned while playing with Fluidinfo: You can delete your root namespace but you can’t re-create it. If you sign up with the username skillshelv.es your root namespace will be skillshelv.es (big surprise) meaning that all your tags will be in the format skillshelv.es/tagname or skillshelv.es/subnamespace/tagname. Because you have the ability to manage subnamespaces under your root namespace, Fluidinfo exposes the ability to delete namespaces. When I first tried out the Python Library, the first thing I managed to do successfully was delete my root namespace skillshelv.es. Trying to recreate it results in a permission error. That’s why all Skillshelv.es related tags now live in the alternate namespace skillshelves which I obtained after creating a second account.
- There is no results pagination and no way of limiting the result count. The heading of the docs chapter on query results limits sounds promising, but only talks about hard limits imposed by Fluidinfo, not limits set in the query. Try querying for the titles and author names of all O’Reilly books stored in Fluidinfo. You get 2373 book titles and their respective authors, totaling half a megabyte of data. If you only want to show the first ten, you’ll still have to query all of them.
- Object IDs can’t be used in queries. It’s easy to get a list of all tag names that are attached to an object. It’s not so easy getting the values of all those tags. Fluidinfo only provides a clear method to retrieve exactly one tag value associated with a specific object at a time, e.g. the title of a certain O’Reilly book. If you want multiple tag values at the same time, you’ll have to use the /values API endpoint, like in this example which gives you title and price of all O’Reilly books whose title contains “PHP”. Fluidinfo gives you a pretty neat query language to define which objects are included in the response of a query to /values, but querying for an object ID isn’t part of that query language. Therefore, you can’t retrieve multiple tag values for a single object at a time, unless you already know one tag value that uniquely identifies this object. For O’Reilly books the contents of oreilly.com/id seem to be unique and Skillshelv.es uses it equivalently to a primary ID. Update: I mentioned this in the Fluidinfo IRC channel and apparently this is now a ticket and might become a feature in future.
- While this Fluidinfo blog post suggests that Fluidinfo’s matches operator for text matching works like MySQL’s LIKE, it doesn’t actually. matches only matches full words. That’s not unsurprising but was a little disappointing when I tried building an auto-complete feature that pulls data directly from Fluidinfo.
- First class user support! When I reported #1 of the dislikes above via Twitter, Fluidinfo’s CEO replied within a few hours acknowledging the issue. Later I figured out that most the action is going on in Fluidinfo’s IRC channel where the folks behind Fluidinfo seem to always be hanging out waiting for people to approach them with their problems. When one of my (valid) queries wouldn’t work one day, the problem was fixed in no time and on top I got a ton of useful advice.
- Fluidinfo Explorer. This tool didn’t seem very useful to me at first but then I discovered the context menu and the login button :-) Once you have some data in Fluidinfo and you want to quickly check or change a few entries, nothing beats this tool.
- There are
 Like every good grad student I did not devote the entire weekend but also did some
real research work on these weekends.
 I realize that I could be suffering the Dunning-Kruger Effect: I could have missed those 99% of Fluidinfo’s functionality that take three years to learn. But my lack of knowledge about Fluidinfo leads me to the erroneous conclusion that I learned the usage of Fluidinfo in two weekends. Unfortunately, I would have no way of realizing this.
Fluidinfo API Contest: Design Decisions
Note: This blog post was intended to be published a a few days ago and was mostly written at a time when I just started working on my submission. Due to work backlog I held back with finishing and reviewing the post until now. Just pretend it’s last Saturday when you read this.
I announced yesterday that I am currently working on a submission to the O’Reilly/Fluidinfo API contest. You should check out the other submissions so far:
- BookChirpa by Mark McSpadden is a data mashup project showing recent tweets about O’Reilly books enriched with information about these books which is pulled from Fluidinfo. There is an About page with a whole bunch of technical info. Ironically, the top entry on the Bookchirpa library page is “21 Recipes for Mining Twitter”.
- David Karapetyan opts for a submission which only adds data to the Fluidinfo data store but doesn’t have a frontend. That’s legit by the contest rules. Here’s a blog post about how he added Amazon Suggestions to each book. 90% of his post are crossed out indicating that the story behind his submission isn’t exactly linear.
- Eric Seidel’s submission is really similar to Skillshelv.es. Shockingly similar. Read about it in his blog. By the looks of it he’s been a Fluidinfo aficionado before because his prior project FluidCV is based on it. His submission to the contest is to let people add O’Reilly books to their FluidCV to - hold your breath - show their skills based on the books they own. Disclaimer: I hadn’t seen his project when I started working on Skillshelv.es.
- Michael Hawes noticed that the books which Fluidinfo imported into their database are only those English language ones sold in the USA. But O’Reilly also publishes books in other languages in the small part of the earth known as ROTW to Americans (the acronym stands for both Rest of the World and Rim of the World). He embarked on the mission to add links to the foreign language equivalents to all existing Fluidinfo book objects. Like David K.’s entry, Michael’s has no front page, but extensive documentation on his blog.
- Rachel Willmer wrote an extension to her eBook price aggregator Luzme.com to send up to date eBook pricing details into the Fluidinfo data store. She writes that she will only sync this data for the duration of the competition but I sure hope she continues to do so after the deadline on Sunday night.
It strikes me how open everyone is about what their entry is and how they went about creating it. So I won’t hold back either and write up the details on my submission, predominantly in this blog and maybe later on as part of the Skillshelv.es site. Today, let’s talk about the design decision that had to be made before I started touching my keyboard.
Here’s the quick technical summary of what my submission will do: Each book will be tagged with one or more skills representing the expertise conveyed in the book. Each book will also be tagged with usernames to represent ownership. Based on this info, users’ skill levels and some other derivative data will be computed.
Platform & Language
Any service that requires user accounts presents the headache of authentication. Sure, there is fancy PECL packages and libraries and whatnot, but in the end you’ll still be storing usernames and passwords and sending password reset emails and all that. I decided to give OpenID a shot. I know that OpenID is a failure. I don’t care. I want to fail in the first person. The good part is that Google App Engine makes using OpenID
To determine what skills someone has based on the books they read, each book needs to be associated with skills. That data is not available (neither in Fluidinfo nor on the O’Reilly website) so I need to make it. At first, I thought about using Amazon Mechanical Turk to gather this data. That might work if the books had to be sorted into a known set of tags. But since I am not intimately familiar with O’Reilly’s book inventory, I didn’t even have the list of skills to start with. In the end I figured, that to get consistency I should first tag all >2000 books myself. Maybe I can recruit specialists in fields that I am not familiar with later on to check and refine my work. Let me know if you are interested. At this point it looks like I might need help sorting the Java and Microsoft Server Products groups of books.
Namespace or Tag?
So the plan is to tag books with skills. Fluidinfo allows pretty much any content as a tag’s value and tag names are alphanumeric. That opens two sensible options:
- Use one tag /skillshelves/skills to hold a list of all tags associated with the book.
- Make each skill a tag inside a /skillshelves/skills/ namespace.
Let’s think about the types of queries Skillshelv.es will run: We’ll need to know which books are owned by a user, and which books belong to a certain skill, and maybe which books belong to a certain skill and to a certain user. Fluidinfo’s query language would enable both data models:
- Use the contains operator for the single skills tag containing a list of skills.
- Use the matches operator for the namespace of individual skills tags.
But what if I want to store some additional meta info for each skill? I am currently toying with the idea of categorizing each book as Beginner, Intermediate, or Expert. This could still be stored either way (instead of a list, use a JSON object), but I don’t think the contains operator can look inside opaque tag values and even if it can it would probably be way slower.
Where is the data?
This question is about where data should be stored. There is the data store local to GAE and there is the Fluidinfo data store. The former is fast and hidden to the public, the latter is slow and everything in there is public. The idea behind Fluidinfo is to make data publicly accessible and writable so my goal is to store as much data as possible in Fluidinfo. That means, both the skill tags and the ownership information will be stored in Fluidinfo. Due to the data model described in the section above, the tags in the skills namespace are a full list of skill categories and the tags in the user namespace are a complete list of Skillshelv.es users. Therefore, basically all data is stored in Fluidinfo’s data store and nothing locally in GAE’s data store. I’ll make three exceptions to that rule:
- User data: To make authentication and authorization on the page easier, all usernames are stored locally, too. Theoretically even the info needed for authentication could be held in Fluidinfo but seriously, why should it?
- List of display names of skills: Because each skill is a tag in Fluidinfo and tags may not contain spaces and some other symbols (e.g. the + in C++), a list of skills is held locally where the display name of each skill and the corresponding Fluidinfo tag are stored. This also allows me to change the display of a skill wihout the hassle of having to change the tags on all affected objects.
- Full list of books: Retreiving the full list of books from Fluidinfo takes lots of time and data volume. To make matters worse, there is no way (known to me) of limiting the size of a result set returned from Fluidinfo which would be helpful for querying the next book that needs tagging. To cut the hassle, I keep a full list of all object IDs associated with O’Reilly books in the local data store and use it for backend work (like tagging >2000 books, doh).
The above is a tour de force through all the major design decision I made before sitting down to code Skillshelv.es. I think I’ll be doing a pretty decent job at demonstrating how Fludinfo can be used as the main data storage location for a project. Obviously I am betting on my luck by planning on pulling this project off in less than two weekends while using technologies I am not very familiar with. We’ll see how it goes. [The Editor: It went ok.]