I'm currently in San Francisco for this years AppleWorld Wide Developer Conference (WWDC). However, unlike a lot of the big conferences I attend, I won't be blogging this one live. Apart from the Keynote on Monday morning, and the party on Thursday night, everything else going on here, including most of the content of the conversations going on in the hallway track, are under a non-disclosure agreement (NDA) with Apple.
However if Twitter manages to stay up under the onslaught I'll be tweeting during the Keynote. I'm currently trying to figure out when I should start lining up outside the Moscone Center. Knowing this barmy lot, there's probably already half a dozen people standing outside the doors already...
The number of people publishing sales statistics for their iPhone applications are few and far between. Apart from people like Pinch Media, who still really only have a skewed sample, the only people with a real overview of what's going on are Apple themselves. The rest of us just have to rely on our own experience, and anecdotal evidence like the recent post by iPhone developer Rick Strom.
Perhaps we're going to see a bit more transparency now that TechCrunch picked up Rick's post and ran with it, or at least some sort of acknowledgement that the App Store isn't going make developer's rich overnight.
I'm building applications for the store not because it's going to pay my mortgage any time soon, but because at last I have a mobile platform where I can "scratch my own itch". After years of pushing the boulder uphill on the on Series 60 platform, and before that on the Palm, the iPhone and Apple's SDK is a welcome breeze in an otherwise desolate wasteland of overly complicated development environments. The barrier for entry is just that much lower and, despite not really being viewed as a mainstream language, I've always had a soft spot for Objective-C. It fits the way I think about things...
I was disappointed, although not terribly unsurprised, to learn that Google had gone with Java as their development platform and Eclipse as their IDE of choice for Android applications. Despite that I'm looking forward to getting my hands on a G1 so that I can play around with the hardware, which allows you to do some cool things you can't yet do with the iPhone.
If someone's using a PC to demo the next big thing, then it's not the next big thing...
Despite the iPhone I consider the mobile web as still born. I rarely use the "real" web on my iPhone, instead the information is brought to me by those native applications that Apple didn't initially think were a good idea. The next big thing isn't going to be the Web, the last big thing was the Web, it's not going to be the next big thing as well.
The signs of the next big thing; in the mainstream with devices like the iPhone and the G1, in academia with projects like Siftables and Google's PowerMeter, and out on the open-hardware fringes with things like the Arduino, are everywhere.
People won't get rich (re-)writing niche iPhone applications which get lost in the noise of the App Store. I know that, despite enjoying the experience of cranking out software, I'm not going to get rich except by the oddest of chances.
However a bunch of people are going to get rich, and probably fairly soon. We're entering a period of change. The next big thing is ubiquitous computing, and don't let anyone tell you differently.
Compared to a real ubiquitous computing we're at the banging the rocks together stage, but the recent trends towards embedded systems and cloud computing are obvious first steps down the path. The Emperor may have no clothes on, but he's got a good suit waiting in the closet...
One of the problems writing software that relies on third party APIs is that when that content goes away your application breaks, and that's something that's happened to my Cloud Status application for the iPhone. The service I was relying on to provide real-time information on Twitter went away...
Cloud Status v3.0
Users of the application currently get a blank page when they ask for the status of Twitter, and there isn't an easy way to reproduce the information that I was using from Twitter's own API. So I've gone ahead and removed it from the application, and implemented the most requested feature for this application to replace it. Support for reporting real-time status from Google Apps, as well as Google App Engine...
The new Google Apps support...
Unfortunately you aren't going to be seeing this update on the App Store any time soon, I'm currently developing against the new 3.0 beta SDK which is still under NDA with Apple. However if you're a fellow developer who would like to test out the new Cloud Status application, and already have the new 3.0 OS deployed onto your iPhone or iPod touch, I'm happy to generate a limited number of Ad Hoc distribution copies for interested parties.
Update: You can of course just go an purchase the current version from the App Store. As soon as I can push the new version to the store I will, and you'll get it as a free update when I do...
So I've been much remiss in not mentioning the official release of John Taylor's Sky Map. Yet another of those funky Google products that started off as someone's 20% project and end up with an official Google launch and a less interesting name. What is it with Google and dull product names?
John's new SkyMap application for Android does stuff that you're not going to get your iPhone to do because of hardware, rather than software, limitations. It makes use of the phone's GPS, accelerometer, and compass to create a window in the sky that moves with your hand.
John Taylor's demo at Google's Searchology Event
John and I actually had a discussion way back when about using the iPhone's GPS to simulate the G1's compass. The iPhone knows your position, so if you walk for a small distance in the direction you're facing, it should be to able to work that out as well...
Of course the question we couldn't resolve was "how far" in the direction you're facing you'd have to go, and in the end we figured it probably wouldn't work all that well. Just one of the reasons I'm looking forward to WWDC, which for once I'm actually going to be at, and the possibility of getting my hands on some new iPhone hardware.
Searching for the Moon
Well done John, very cool. Now, how do I get my hands on a G1 again?
Want to manage your Google App Engine applications from your iPhone? There's an app for that...
The App Engine Manger application allows you to to monitor the status of Google App Engine in real time, estimate your monthly costs based on your current usage levels, then lets you estimate how much a sudden usage spike could cost.
It also allows you to look at the performance of each of your applications individually and examine requests per second, upload and download bandwidth and CPU.
After over ten years traveling around the world racking up frequent flyer miles, and having set foot on every continent except Antarctica, you begin to think you're immune to culture shock.
I know the best place to eat in more than two dozen airports. I know the hidden and totally unsigned walking route between the main terminals which keeps you airside at SFO rather than sending you back through security.
I can speak fluent American as well as British English, or at least I can get the words right. My accent is unmistakable, and at least some of the time, an asset here in the States. I've stayed in some of the best, and certainly some of the worst, hotels in the world and I'm familiar with many of those little cultural taboos that catch out in-frequent travelers and cause difficulties.
Culture shock is what happens to other people...
The sight of what appeared to be a cute soccer mom, with large sun glasses and a scowl on her face, driving a black sport utility vehicle with tinted windows, being pursued at some speed by six police cruisers with sirens blowing and lights flashing down Pacific Avenue here in Santa Cruz proved me wrong.
Or rather the fact that I was the only one paying this incident any attention. The sight of one of the cops leaning out the window of the lead vehicle holding a shotgun wasn't apparently that unusual. The ambulance that raced by a few minutes later, heading in the same direction as the now long departed cavalcade of vehicles, didn't seem to be raising any eyebrows either.
Of such small incidents, and other little things, comes the large and uncomfortable feeling of disorientation that tells you you're a very long way from home. No matter how many times you visit a country, and no matter how at home you feel there, there is always the possibility that culture shock will creep up on you unexpectedly.
Until a couple of months ago I was a fairly happy customer of the Gizmo Project, a SIP based competitor to Skype. Back in February however they sent me a support email to tell me my Call-In number was out of order.
Date: Fri, 20 Feb 2009 Subject: Attn:Regarding Your UK Number From Gizmo5 From: Gizmo5
Dear Gizmo5 Customer:
Our provider for your number in the United Kingdom is experiencing technical problems with their numbers. They are working on this issue but have been unable to provide us with a time frame for when these numbers will be functional.
To remedy this situation we have 2 options for our customers:
1. Offer you a replacement number 2. If you would like to keep your number, we will extend your expiration date to cover the time it was down once the numbers are restored and functioning normally.
Please respond to this email to let us know of your decision. We are sorry for the inconvenience this may have caused and look forward to getting this resolved quickly.
Thank you for your business, Gizmo 5 Support Staff
Since my Call-In number was the one I used for my business I wasn't that happy. I certainly didn't want a different number, this was the one on all of my business cards after all. So crossed my fingers, and just over a week later I got a follow up email.
Date: Sat, 28 Feb 2009 00:02:54 UT Subject: UPDATE:Regarding Your UK Number From Gizmo5 From: Gizmo5
Dear Gizmo5 Customer:
Regarding the number outage that has occured in the UK, We have received notification from our provider that service to the numbers affected should return by Monday March 2nd. They stated that everything possible is done so that it does not happen again.
Thanks again for your patience and we apologize for the inconvenience this may have caused.
Regards, Gizmo5 Support Staff
A long outage, but at least it was almost behind me? Suffice to say the 2nd of March rolled around without my service being restored. In fact Gizmo have never managed to restore my service...
...and quite frankly their level of customer service was abysmal. There was no advanced notice of any possible outage, and then notification that there was an outage was delayed after they did know about it. I learned later from colleagues that the number had gone out of service some time before the initial email I received from them about the problem. Repeated promises that it would be fixed soon, that it was already fixed when it wasn't. Weeks between answering support tickets, support tickets randomly disappearing from my list filled tickets without any reason...
The Call-In number in question has now 'expired' as the entire saga has ran past the end of my billing cycle, and I certainly wasn't going to throw good money after bad to renew a number I couldn't use. Claims that they'd,
...extend your expiration date to cover the time it was down
just didn't happen. Unfortunately availability of number portability in the UK, while normal practice for mobile numbers, is in it's infancy for landlines and relies on the complex interaction of a series of mutual handshake deals between various providers. There is no standard way to do things. So I've now got another dial-in number with a different provider. Fortunately since I'd gone with a standards based VoIP solution I could take my expensive shiny VoIP hardware along with me to my new provider. Heaven knows what I'd have done if I was relying on Skype...
I've had my business cards reprinted, and I'll now tell anyone who listens that they shouldn't trust the Gizmo Project with their business. A dead phone line doesn't give a great first impression to your customers.
I'm currently at Mac Developer Network's NSConference. So what better time to sit down and write my next iPhone application? However abandoning the cloud computing theme running through my previous applications, I've gone back to my roots and written something for the astronomers in the audience.
LookUPbeta for the iPhone
Ever since Stuart Lowe released his LookUP service it has been nagging away at the back of my head that it was an obvious candidate for an iPhone application. So tonight I sat down and wrote it...
LookUP is an aggregator service, allowing you to look up the position and details of astronomical objects by name. I've played with things like this in the past, in fact I wrote my own version several years ago. It just wasn't as user friendly as Stuart's...
I'll be submitting the application onto the App Store in the next couple of days as a free application. However if you want to get your hands on it sooner rather than later, after an extended time in the purgatory that is the Apple review process, I'm willing to generate a limited number of Ad Hoc distribution copies for interested parties. First come, first served.
Three years ago now David Brin wrote a piece in Salon entitled, "Why Jonny can't code" bemoaning the lack of tools to teach kids programming. Nat Torkington, on his return the the world down under, was moved to do something about it and has been consistently doing something about it ever since.
I can’t imagine how people survive without programming. The alternative to knowing a little bit of code is suffering through hours of manual labour in Excel or Word. - Nat Torkington
In parallel an argument has been brewing that the problem with the high school computer science curriculum isn't in the high schools, but in the universities themselves. There is even debate whether there is there any point in trying to teach kids programming at all, and whether we should try to separate the programming sheep from the non-programming goats up front?
However I think all of these arguments are actually missing the point. In the end what University is about is to try and teach the kids to think. A degree isn't, for the most part, about the knowledge we're trying to impart to you. Although if you can hang onto that knowledge you'll probably find it useful, that isn't really the point. Instead a degree is about giving you the tools to learn things by yourself later in life when you leave the ivory towers of academia.
In the end it doesn't matter what we teach them, so long as they learn how to learn...
First up is Rebecca MacKinnon talking about China, the Internet, and what it means for the future...
River crab wears three watches
She's talking how, while heavily censored, the Chinese web contains a great deal of political commentary which is arising virally where people are using stories, pictures and language to get around the censorship. The problem is that there is a opaque layer building up between the government and the citizens.
Kati London
The next speaker is Kati London talking about civic participation, and how we might be able to use games to engage people.
Our penultimate speaker is Jane McGonigal with the results of Free Space, the 3 day massively-multiplayer thought experiment which has been going on at ETech, kicked off earlier in the week at Ignite ETech on Monday.
Nathan Wolfe
The final speaker of the conference is Nathan Wolfe talking about what we can do with all the infrastructure we're building right now...
How is it possible that a virus as devastating as AIDS sat in the human population since the 20's, spread around the world, and wasn't really detected until the 1980's. However the real question is, how do we avoid something like this happening again? How do we avoid something worse? We need to look at how viruses are entering the human population well before they become more than only weakly adapted to living in humans.
I'm in the Free Tech un-conference hanging off the edge of ETech. I'm listening to Rose White from NYC Resistor talking about Hacker Spaces. Last year there was a huge increase in the number of hacker spaces, both in the US and worldwide...
A hacker space is a self-organized space where people share the rent, bring tools, and do different types of hacking. Until recently hacker spaces in the US were places where people lived, as well as worked, and there were negative connotations placed on them by the media. O'Reilly have been part of the drive to take back the word 'hacker', partly by associating the word hacker with the word maker.
What are robotic cars? An autonomous vehicle that can drive on ordinary roads. They offer comfortable workspace, face-to-face, and they bring Moore's law to transportation, as soon as transportation becomes a software problem the pace of change will rapidly increase. They park, deliver and refuel themselves. Three new terms: robo-taxi, whistlecar and deliver-bot.
The DARPA grand challenge competitions was surprising, teams with very small budgets came up with amazing results, despite the almost total failure of the first competition.
When? Some technology is already here, many predict as early as 2020. But barrier may be more legal and social than technically. It does require breakthroughs, but noting compared to general AI. Needs cheaper hardware and heavily parallel hardware.
Why is it such a great thing? Accidents, human drivers kill 45,000 people a year, over a million people worldwide are killed in traffic accidents, and far more people are injured. We also don't realise how much infastructure we've given over to cars, there are six car parking places for every car in the US.
Self-delivery is almost as self-driving. Here we come to the robo-taxi (and the whistlecar which self-delivers but doesn't self-drive), which you summon and then takes you on the trip. The advantage is that you get the right vehicle for the trip. A 10-mile range electric trike allows you to pickup a truck or a van.
Energy is today's hot-button issue, so lets look at the electric car. Who killed the electric car? Conspiracy theories aside, the battery killed it. People won't tolerate the cost, limited range, long recharge times and poor availability of fast recharge. We can make an efficient short-range cars, but people don't want them.
Robots don't care how convenient recharging is, a robot car refuels/recharges itself and stations don't need to be on-route or close. This enables experimental fuels. You don't care about the range of your taxi, just that it will get your where you are going.
A lot of suggestions for futurist transport have actually been around for 40 years, unlike a lot of these robot cars use the existing infrastructure and can be bought be private individuals, and crucially by early adopters and alpha geeks. No matter how attractive the centrally planned system sounds, it won't out compete a system that grows from the bottom.
More advantages. No parking, no congestion, you can read and work in transit. You don't need a license and you don't need to own a car. It's cheaper and safer for accidents. That's by definition by the way, we' shouldn't allow them on the streets until they're safer for accidents than human driven cars.
You can already buy a lot of this technology off the shelf, self-parking, auto-spacing cruise control, lane departure prevention, road side reading, auto-braking and coming soon from VW; lane following, passing and parking.
We have to apply the School of Fish test, put a whole bunch of cars on a track and challenge people to drive amoungst them and crash into one. If the robot cars pass the test, people shouldn't be able to able to touch them, they'll just get out of the way.
Who will be behind the move to robot cars? The companies that want to sell them, accident victim, the alcohol companies, the environmentalist (once they see the advantages)...
What will stand in the way? The law, fear of the unknown, liability, terrorists, the technological challenges. What about software recalls? What happens when your car gets disabled when the manufacturer issues a safety advisory on the current firmware.
Nick is going to talk today about all the ways to find and locate a phone, laptop or desktop at any time. First, the easiest and most fun location technology, where is the storm
Count the seconds between the time you see a lightning strike, and the time you hear thunder, divide by 3. The result is the distance to the storm in kilometers...
A lot of location systems work this way, they know the location of a fixed point, and they measure your distance to that point.
To unambiguously locate you you need at least three reference point, the more points you have the more accurate your location can be pinned down. In practice of course you never know anything exactly, so even with multiple references point you always have a error.
A GPS receiver measures the distance to a satellite by calculating the time it takes for a signal to travel from the satellite to the receiver. But what is the satellite's time? what is my time? A fourth satellite is needed for time synchronisation. But where are the satellites, precisely? As well as a time stamp each navigational message includes the position of the satellite and its path in its orbit, and a subset of the almanac - data about the other satellites in orbit, including a rough position. However the ephemeris (and the almanac) may be delivered via other mechanisms, e.g. backhaul via the cell phone network.
For location technology there are many metrics, one of these is how long it takes to get a location fix. With GPS on a cold start it takes on average 23 seconds, with a warm start, where the time and ephemeris is still valid the time-to-fix is much less, around 4.2 seconds on average. Faint signals (-135dBm and lower) complicate decoding process and may cause the receiver to drop frames, increasing the time-to-fix.
Typical GPS receivers need -140dBm or better, and cannot decode below -145dBm. Outside you normally get a signal from -125 to -130dBM. Inside in your home you get a signal from between -135 to -145dBM, however in a high-rise building the signal will go down to typically between -135 to -160dBm.
Accuracy is very important, and there are many factors contribute to error, the most important is timing inaccuracy. One of the biggest problems is multi-path signals, the satellite signals bouncing off surfaces (building, planes, etc). End-user accuracy is typically 10-30m in a good area. That's not generally good enough, onboard navigation systems generally fix your position by assuming your car is actually on a road.
Moving on to Wi-Fi positioning. There are hundreds of millions of access-points around, so it's easy to determine your location? Okay, but we need to trilaterate. We need the distance to at least 3 access-points and the exact position of the access-points. It turns out there is a quadratic relationship between the signal strength you receive and the distance to the access point. So in practice, distance to an access-point can be estimated by measuring received signal strength. The second problem is solved by driving, and walking around neighbourhoods, malls, campuses and collecting Wi-Fi signal fingerprints, then calculate each access-point's position by (reverse) trilateration.
Conventional wisdom for the range of an access point is about 500ft, but some times they have much larger coverage, some over a kilometer wide. This can happen for many reasons, perhaps the signal is boosted, but perhaps the signal is just bouncing off water, or there was just nothing in the way to prevent the signal propagating. The access point might be in a high-rise building.
The time-to-fix in network mode, where the client collects the Wi-Fi fingerprints, but the location is calculated remotely. However in tiling mode, where the client has a small portion of the database cached locally, and your location is calculated locally the time-to-fix can be sub-second.
Coverage in Europe
So Wi-Fi positioning an GPS positioning complement each other very well...
Accuracy, distance to access-points is only an estimate and we have unmanaged reference points, and access points do move. But many readings compensate. The end-user accuracy is typically 20 to 30m in good coverage areas.
Chris and Cherie are talking about lifestyle hacking and technomadia.com.
The one thing the Prius is useless for is towing anything...
If you take an infinite number of very light things and put them together, they become infinitely heavy. - Robert's Law of Applied Mobile Gizmology, Steve Roberts
The basic trailer model they're using is from Oilver Trailers, who have taken some of their modifications and are now selling them as standard packages to other customers.
They run with 2×100W solar panels backed up by a propane generator. This supports two MacBook Pros, a 24-incg monitor, a Mac mini set up as a media server and a 1TB of NAS. The tech is pretty standard, but it's all crammed into the trailer.
More critical is connectivity, onboard is a "Mobile Command Center" signal booster and a EVDO to WiFi router, looks like the US equivalent to Three's Wireless Router back home. Other connectivity options: Satellite, Long Range WiFi and Internet Cafes.
There are lots of options for home selection: RV, boat, train, backpack, airship(?) and cubesats(?).
What ties people to a place? Debt is the biggest anchor that ties people to location, mortgage or rent, credit card debt, student loans. People are often surprised about how affordable a nomadic lifestyle can be...
Family. You can take them with you, or you can have extended visits with them, and if you want to you can get really far away from them. Pets. A nomadic lifestyle isn't necessarily a bar to having pets.
Stuff. The most common thing people say is "...I could never give up my books". It's incredibly hard but you can shed your stuff.
Other excuses; job or career. There are jobs that can't be done remotely. But if you're a geek, you can probably do your job anywhere. So why are you commuting 40 or 50 minutes a day?
It's not ecologically sound? They're arguing that they're using so little electricity and water now their footprint is much less than when they were living in Silicon Valley.
Practicalities and legalities, you need a state of residence, and a physical address for mail forwarding (or scanning). Use online banking...
If there is something you want to do, the best advice is just go. This isn't for everyone, but if it's for you, get over your excuses and go do it.
The last day of most O'Reilly conferences always seem a lot quieter. Possibly because they run at such a pace that most people are physically exhausted by the end of them. In any case, both OSCON and ETech tend to have a slower feel to them on the final day. This ETech doesn't seem to be the exception to the general rule, there are fewer people about, and many fewer people in the talks...
Security bugs are costly, and there is a bug cycle...
Classic technique fro finding bugs is Fuzz Testing where you feed malformed files, strings and commands to your application and see whether it crashes. Interestingly, despite this being a fairly basic technique, it finds lots of bugs. But fuzz testing doesn't work well with unlikely paths, the edge cases. The fix being talking about today is fuzz testing plus dynamic test generation.
Trace the dynamic execution of the program, capture the symbolic path conditions, create symbolic formula for new path, solve new oath conditions and generate a new test case from solution.
Does this scale? The first generation of tools, like EGT, were exciting but only tested cases where the program was less than 2KLOC of code.
He's now talking about two tools. SAGE, which he worked on at Microsoft and is still internal, and SmartFuzz. You can actually get SmartFuzz, and it scales to larger code by running it in the cloud on Amazon EC2 instances.