-
I'll show you a little update of my code where I've put a table view controller in the second tab that is displaying some dummy data. Actually it's really pretty simple.
-
With as3swf you can automatically generate Objective-C source code (Core Graphics, Quartz) from SWF Shapes, to reuse those shapes in your iPhone projects. The as3swf Core Graphics shape exporter generates ready-to-use Objective-C class files (UIView subclasses).
Another day, another Daily Mail-esque panic about how social networking is causing the downfall of modern society as we know it. This time it’s pleaserobme.com, a site that scrapes location-based services such as Foursquare and Gowalla and publicises the fact that you’re – shock, horror – not at home.
It’s a clever idea, but it does of course rely on a certain amount of coding skill to be able to set it up in the first place.
So, in the spirit of opening the web to wider participation, I’m putting *my* method of figuring out which house is worth robbing into the public domain. No copyright, no patents, fully Creative Commonsed for your remixing pleasure of this simple four-step process.
Step One.
Drive or walk around your intended target area during the hours of darkness, and make careful note of houses with cars parked outside.
Step Two.
Return the following day during office hours, and carefully note the location of those houses which no longer have cars parked outside.
Step Three.
Break into those houses which are sans-car – the owners are likely to be out.
Step Four.
Profit!
You’ll notice that *my* process has no internet component, unless you want to keep those notes in a Google spreadsheet or something.
Clearly the ease with which I – and you, with a little training and practice – can detect which houses are potentially empty is a serious threat to the cohesion of modern society, so I fully expect that insurance companies will react accordingly. I’m looking forward to reading the press releases which mutter darkly about how people who have the temerity to park their cars outside their houses will see their insurance premiums rise to counter this threat.
And no doubt the Daily Mail will start a campaign to ban the use of non-garage parking – isn’t it better to be safe than sorry, after all?
Unfortunately this is just another demonstration of how “internet” somehow gets equated with “new” when it comes to potential risks. The additional risk posed to your belongings by posting your whereabouts on Gowalla is so small as to be impossible to calculate, however much the actuaries would love to try. If we stopped to contemplate every risk of this type, we’d cower in corners and never go anywhere – let alone multiplying them by the bogeyman factor of teh Interwebs.
It’s lazy journalism at best, and lazy thinking if you *do* take it too seriously.
Oh, and if you are planning on using my Gowalla checkins to work out when you can pop round to relieve me of my belongings, there’s a couple of things you should bear in mind. Firstly, just because I’m out it doesn’t necessarily follow that my house is empty. And secondly, be sure to introduce yourself to my large, snarly and (potentially) bitey dog while you’re round…
-
"Google Browser Size is a visualization of browser window sizes for people who visit Google. For example, the "90%" contour means that 90% of people visiting Google have their browser window open to at least this size or larger.
This is useful for ensuring that important parts of a page's user interface are visible by a wide audience. On the example page that you see when you first visit this site, there is a "donate now" button which falls within the 80% contour, meaning that 20% of users cannot see this button when they first visit the page. 20% is a significant number; knowing this fact would encourage the designer to move the button much higher in the page so it can be seen without scrolling."
-
"The new couple, freshly back from their honeymoon, remove the wrapping to reveal a book-sized wooden box elaborately carved with elephant images. (I didn’t carve it; I bought it that way at World Market.) Mounted into the lid, perhaps incongruously, are an illuminated button, a small display, and a mysterious module that sharp-eyed readers might recognize as a GPS. There’s also some kind of connector tucked away on the box’s left side."
-
"About 2 years ago, after printing out the site onto what has now become jokingly known as the 'Wall of Shame' we decided to embark on an ambitious project, called Global Visual Language 2.0, with the aim of unifying the visual and interaction design of bbc.co.uk and the mobile website."
-
"Urban Defender is a location-aware game that takes place in cities and towns. The game and its main interface, the ball, are situated inside the real world. Other location based games often only work with displays or have navigational character. This game is based upon elements that are fundamental to people in urban situations: districts and their habitants. Targeting children and young adults, the goal and main rule of the game is: try to conquer as many quarters as possible, reinforce these quarters and defend them against other players."
-
"This page is dedicated to making available for download all the episodes of In Our Time, an extremely informative BBC radio program discussing the history of ideas that have shaped our time."
-
10 ways you know you’re with smart people
-
Table of Linux alternatives for Mac apps
My former Headshift colleague Felix Cohen posted about making ARGs local and social a few days ago, and his post prompted me to dust a post of my own which has lurked in a drafts folder for a few months.
Geolocation is now ubiqiutous if you’ve got the right device in your pocket. What was the preserve of dedicated and single-purpose devices a couple of years ago is now embedded into GPS-enabled mobiles. I can whip out my iPhone and figure out my location to within a few metres anywhere I can get line-of-sight to the satellites.
At the same time, geolocation is being embedded into the fabric of the web – any photo that I take with my iPhone can be uploaded to Flickr and automagically geotagged. More and more Wikipedia articles which relate to a physical location have lat/long data associated with them.
And the combination of services and devices has enabled play-like apps – I can check into a location with Foursquare or Gowalla, and stalk my friends as they do the same.
But at the moment, it’s a bit limited and a bit boring – all you can really do with these apps is check in and out of places – once you’ve done it a couple of times, becoming “mayor” of a location strikes me as fairly pointless.
Picking up and dropping random items has some (limited) appeal, but Gowalla’s current implementation is lacking the Pokemon factor – the objects have no intrinsic value, so once you’re done with the “oh, a luggage tag!” novelty factor there’s not a lot else to get excited about. I don’t find myself making a special trip to *that* Starbucks in the hope of finding the planet’s only purple three-legged Snorblax.
What this needs to really grab me is a cross between Gowalla-esque location “services” and geocaching. Treasure hunting is something that appeals to most people’s inner child in a big way – I’m willing to bet everyone has drawn a treasure map at some point in their lives. Geocaching makes this play into something socially-acceptable for adults, even if hunting down Tupperware boxes full of trinkets is fairly high on the geek behaviour continuum.
The physical nature of the caches prevents geocaching being something completely spontaneous. What I want is something that will fill in the odd 5 minutes here and there – inbetween buses, or when the train is standing at an intermediate station.
I started hacking together an iPhone app that would scrape the interwebs for geotagged “stuff” that was relevant to that location – a sort of ethereal Blue Plaque database. A quick moment of discovery – “hey, look who used to live around the corner” – would be enough to dispel the transitory boredom.
The problem with this is that it’s probably not dynamic enough to maintain long-term utility. If I’m standing at the same bus stop three times a week, it’s not going to take me long to exhaust the possibilities of geolocated data unless it’s somewhere that generates a lot of Flickr-style data. And the bus stops I frequent aren’t that photogenic. That idea breaks down completely if it’s somewhere trivial – like a coffee shop queue, for example.
So moving on from there, I started wondering what would happen if you combined existing information with user-generated ephemera. So as well as “Sir Worthy Citizen lived just down the road” and “Flickr users took these photos nearby”, you could add your own geocaches. I’m still not *quite* sure what form they’d take – tweets would be an obvious one. It would be a little bit like virtual digital graffiti – a virtual bus shelter I could scribble on while queueing for my double decaff skinny mochalatechino. The back-and-forth banter that Twitter can generate seems like it could be at home on a virtual toilet wall.
I also quite like the idea of collecting virtual “things”. The challenge there is making the “things” worth collecting, or at least quirky enough to be worth bothering with. Pokemon and Top Trumps are the most immediately-obvious models, but I don’t know how you initiate that kind of collectable – that’s what Gowalla does with the luggage tags and mocking birds, but they’re so random I don’t *really* care about them. And there’s no user creation involved, either - I can’t drop a “packet” of antiacids at Pizza Hut even if I wanted to.
Ultimately you’d want to overlay the kind of competitive behaviour that Felix was talking about in his post – maybe not fighting in the D&D sense, but certainly something that could be cooperative. Ideally it would be something that could build upon a virtual equivalent of the oh-so-English nod of recognition that you give to someone you see every day in the same place, but never engage with any further.
I like the idea of emergent “communities” of people enabled by digital echos of their past and future presence. And if I can actually *engage* with them in a playful way as well…
And I suppose it doesn’t have to be trivial, either – could you combine spotting duff streetlights a la Fixmystreet with a competitive factor? “Congratulations, you’re the reigning spotter of potholes in S10! But beware – X is rapidly catching up with you after spotting a graffitied bus shelter around the corner…”
When the Apple iPad finally gets released in the UK, I’m going to buy two of them.
The first one is going to get used for iPaddy-type stuff, whatever that turns out to be. It’ll be for browsing, and playing games, and reading ebooks and whatever else comes its way. I’ll probably use that as the device that I have a go at writing apps for.
The second one is going to get velcroed to the fridge door.
Insofar as our family has a central, physical point, it’s the fridge. That’s where the letters from school about trips get magnetted to; it’s where the shopping list lives; it’s where the kids write rude messages to each other with the word magnets; and it’s where the family calendar (if we’d got around to replacing it this year) would be.
The problem is that I can’t get to the fridge when I’m out of the house, and I can’t sync it to a device that I can carry around with me. And writing down that we need more baked beans is only half-way to solving the lack-of-baked-beans problem – surely it would be more efficient if I could drop more beans into the shopping basket as soon as I’ve opened the last tin?
I’ve toyed with the idea of sticking a cheap netbook to my fridge – but that would be awkward to operate because whichever flavour of Linux it would run, it would still be keyboard-and-mouse driven. The iPad format changes that, because it’s designed for touchscreen operation from the ground up.
It’s an expensive option, for sure – although given that people seem to see the need for flat-screen TVs that fold underneath fitted cupboards, I’m not sure it’s an extravagant one.
[Incidentally, i
f you want an illustration of everything that's wrong with the marketing of consumer electronics and white goods, try punching the product name - LG GRD-267DTU - of this LG fridge into their website. Utter, utter fail.]
Initially, I can see a whole series of uses based around the “standard” apps. It’ll be the access point for shared Google calendars; notes that would otherwise get scribbled onto post-its; and quick access to things like when the next bus from the stop up the road is due.
But beyond that, it’s easy to see apps becoming “localised” to the kitchen environment. Ocado already have an iPhone app, so having an iPad version should be a no-brainer. Hook the iPad up to a barcode reader – or use the front-facing camera that’s supposed to be along in the next iteration – and you could swipe the tin of beans as it comes out of the cupboard and have it added to the shopping list automatically. Could Ocado take things one step further, and book a delivery slot based on when my Google calendar says we’ll be around to receive the delivery?
This touches on one of the reasons why I think much of the disappointment around the iPad was misplaced. It’s the first iteration of something. The first iteration of the iPhone was basic in the extreme compared to where it is now – no 3rd-party apps, no GPS, no cut-and-paste and so on. But it was the catalyst for an ecosystem of applications which have completely changed the perception of the device. I doubt anyone would have considered how the augmented reality uses would have panned out back in 2007. What gives the iPad – and the other devices that must surely follow it – such potential, is the way in which it’s going to be able break out of what we consider to be the “natural” applications for computing devices.
I came across a weird (well, weird to me) problem with a UITableView this evening. Basically, the situation is this:
I’ve got a Tab Bar controller in my app’s main window; with three tabs:
The view in the first tab loads from another nib file (MeView.xib), which contains a navigation controller. The file’s owner has a class identify of ‘MeViewController’. The navigation controller contains a table view, with the delegate and data source set to ‘MeTableViewController’. It’s easier to visualise within Interface Builder:
The problem was that although the table view loaded fine, as soon as you tried to scroll it around the app blew up with an EXC_BAD_ACCESS (SIGBUS) error.
This had me stumped for a good half hour, until I stumbled across a cause thanks to Mr Google and a bit of poking around with the Leaks Instrument.
Basically, the problem was that as soon as the table was loaded, the delegate was being released – so as soon as I scrolled off the page, there was no cellForRowAtIndexPath method left to serve the table. Hence the explosion.
The solution is actually quite simple – making sure that the delegate *doesn’t* get released. The trick for this seems to be to add an IBOutlet declaration to the navigation controller’s class .h file, i.e MeViewController.h, and synthesize that in the corresponding .m
Then open MeView.xib in Interface Builder, and ctrl-drag from File’s Owner to the ‘Me View Table Controller’ object and set the meViewTableController outlet:
The resulting MeTableViewController connections:
This causes it to be retained, and prevents the explosion that happens if the table tries to access a delegate that isn’t there any more. There’s also the added benefit that I stop scaring the cats by sweating at Xcode…
Sitting around chatting with @erica_jane_mp at the Sheffield Geekup last week, we got talking about data visualisation – or rather what comes *after* visualisation.
Incoming rant: This was partly born out of one of my hobbyhorses – that we’ve done pretty much everything it’s possible to do with a screen and a keyboard by now. Don’t get me wrong, jQuery and HTML5 and so on are really exciting and cool tools – but they’re stuck in a desktop paradigm that hasn’t changed significantly in the last 30 years.
The elements to liberate us from this are starting to come together – we’ve got computing devices small enough that an entire fully-functional Unix machine can be compressed to the size of an iPhone. The battery will last for hours at a time. The screen is touch-sensitive, and uses intuitive gestures rather than abstract concepts like menus. And we’ve (almost) got ubiquitous connectivity with 3G and wireless.
So to just concentrate on every-more subtle refinements of the desktop metaphor seems – well, just like a wast of an opportunity, really. Rant over.
Back to visualisation, or what comes after.
Years ago, I spent some time working for what was then British Nuclear Fuels, at the Sellafield plant. One of the risks of working with fissile materials is that they can go critical if they’re allowed to concentrate in particular ways – and when that happens, vast amounts of radiation is released, and it’s generally a bad idea to be in the vicinity.
So all the buildings which handle fissile materials have criticality alarms, which will alert the occupants and allow them to Get The Hell Out Of There. You’d expect sirens and klaxons and flashing lights – but the main criticality alarm is completely different. It’s a background ‘tick’, which is constantly broadcast over the PA system in the building at about 1 ‘click’ every 2 seconds.
If there’s an incident – or the alarm system goes down for any reason, the tick stops.
The counter-intuitive part of this is that you’d think that it would be either incredibly annoying because it’s constantly present; or that you’d end up tuning it out and ignoring it, so wouldn’t notice an alarm in the first place. But in fact, the opposite is true. When the tick is interrupted for PA announcements, there can be a pause of up to 2 seconds before the alarm starts after the announcement finishes. And I can vividly remember people pausing and looking around, waiting for it to start again – because 2 seconds is a VERY long time to wait for something THAT important. You become aware of the absence almost subconsciously, and very quickly.
All of which got me wondering about how you could apply this to visualisation.
I sometimes use a piece of software called ChatterBlocker – it plays a series of noise tracks to block out ambient noise, sounds like running water, waves, conversation murmours and so on. It’s loud enough to cover distractions, but not so loud or intrusive that you can’t concentrate.
If the volume of individual tracks was hooked up to incoming data feeds, you’d have a sound source where the mix of sounds was an indication of the data trends. If the sound of rain increased, it could mean that a market was falling; or a gradual rise in conversation could be triggered by unread emails or DMs building up.
The point is that you don’t have to be fully-aware of what’s going on – it’s completely peripheral. No bouncing Dock icons or unread counts – leaving visual cues for the task in hand.
For that matter, I can’t see why other senses couldn’t work. A blast of cold air down the back of the neck when an email from your lands, or a chair that tilted slowly forward over the course of the day until it tipped you out just before you needed to head off to catch that train. And smell is incredibly evocative – a quick whiff of a significant other’s perfume/aftershave instead of a ring tone?
And then there’s haptic feedback – a task on your iPhone home screen that had to be pushed really hard to dismiss it, because it’s now become really urgent? The list is endless.
Anyway, this is something that can sit on my someday list for now. Maybe it should decay and start to whiff after a while as a reminder?




