I’ve seen three people this week get locked out of their gmail accounts “to keep [their] systems healthy” or for “unusual activity”. Google have been doing a good job recently of tackling accounts used for spam, but all of these cases were just regular people locked out for no reason, for hours or days.
In the last week Google announced Google Reader would be no more after June. Like they closed down Wave. And Picnik And Buzz. And they’re completely within their right to do so. Google are an advertising company, and public company, and their goal is to make money. By selling ads. In their own words,
“We generate revenue primarily by delivering relevant, cost-effective online advertising.”
They’ve come up with some quite amazing ideas, products and services for an ad company, but I think it’s quite important to remember that. Especially if you’ve come to rely on their services.
I don’t imagine that Google will close Gmail down any time soon. Why would they: they’re constantly serving you focussed ads while you use it, and that makes them money. When there is a problem with the service though, what do you do? And what do you do if you’ve come to rely on something, like Reader, goes away? You can’t get a refund if you never paid.
Call me old-fashioned, but if you’ve paid for a service, like the olden days, you’re in a better position. Of course, your paid-for service could also close or be disrupted. In these cases though, as a customer, you have rights that have been enshrined in law (at least they have in this country). By paying you enter into a contract, and therefore you get to demand certain level of service and have a channel open for if or when you need it.
And then there’s the ads. Call me old-fashioned, again, but I think that advertising has become one of the worst things about modern life, and targeted advertising has only made it worse.
The internet, being online, digital life: whatever you call it, it’s here to stay. And for many of us it is no longer a separate part of of our lives, it’s just another aspect. Before the internet, we didn’t get, or expect, all our services for free, nor did we tolerate constant targeted advertising, and having our personal communications trawled through by international companies. Why now? Isn’t it time we made the internet grow up? We don’t have to throw it out to get back to old-fashioned customer service.
I’ve been informed (by @bigpumpkin, thanks!) that the Gmail you get with Apps For Business is ad-free. I should have realised this since we actually use it at work (though I rarely use the web interface). This is of course the solution I was suggesting: you pay for the service instead of having it ad-supported. How about a personal-tier version of this then, Google?
Last year one project became the poster child for the crowdsourced funding site, and that project was Pebble. They shot to fame when they overshot their funding goal by $10,000,000. The result was they had to rethink their business plan, their whole manufacturing process, and their timescales, in order to try and satisfy the demands of all their backers.
While the delays were hard to swallow as we all waited patiently to live in the future, last Friday mine finally arrived at my doorstep from Singapore. Was I excited? Very. Did I feel bad that it arrived before my manager’s, the guy who convinced me to back the project (a few days after him)? Not really. I was too busy unboxing and, given as I am to the zeitgeist, posting the unboxing to Vine.I’d already installed the Pebble app on my phone in anticipation when I got my shipping email. There are already some great reviews of the Pebble, so I’m going to focus on my first full day wearing it and what that was like.
The first thing I liked about the watch was, stop me if this seems a little obvious, being able to tell the time by looking at my wrist. I haven’t worn one for three years when the strap on my Diesel knock-off from Malaysia broke. Yes, I’m so lazy that I went three years looking at my wrist and being a little disappointed. Actually, when Siri was first released I had high hopes that that would be my new way of finding out the time: pressing the button on my headphones and saying ”what’s the time?”. Nice idea, but there’s something wrong with having to not only vocalise that question (and not to another human being), but then waiting for that audio data to be uploaded to a server, interpreted, sent back to the phone and then read back to me. Just as I was about to mend my watch, Pebble came along and I decided I could probably wait a little longer. So: teling the time, awesome. The “text watch” theme gives the time in a lovely two or three word form such as “two forty”. The only downside is it’s americanised, and so you occasionally get things like “five after three” instead of “five past three”. If and when I get my hands on the SDK I might take that into my own hands.
Ok, so I’m sitting on the train and my wrist vibrates. A text message from a friend about the evening’s plans: I glance at my wrist and I can read the whole thing, without getting my phone out. I know this sounds like a small gain, but let’s just consider how fiddly it is to get your phone out of your pocket while sitting on a train. Not convinced? Well, I find it quite fiddly! Ok, so it’s not really overcoming of phone extraction that I liked so much. It’s the fact that this workflow felt much more natural, and I felt like I’d been less disturbed by not having to check my phone but simple being fed the one piece of information I needed right there and then. It’s really an issue of human self control, but now that our phones have become our main communication and entertainment devices there is a real draw to continue to interact with it after the original reason for checking it in the first place.
So I spent the rest of the day wandering around Shoreditch, occasionally getting messages from Facebook, texts, and the odd Twitter @-reply and genuinely enjoying not having to get my phone out but being able to screen these notifications from my wrist. Clearly I’m easy to please. I use my phone as my radio while at home, playing through a bluetooth speaker. While I’m out and about I pause and play music with the button on my headphones, so the ability to do it from the watch isn’t so useful. At home, however, this is actually really handy if the phone and speaker is in another room.
So that’s about it. But is “it” enough? For me, the Pebble does three things that are useful. Just three. But that’s three really useful things, and two more than a regular watch. And that makes me a happy pebbler.
Looking for the tl;dr? The picture sums up my view of the pebble.
In an excellent and largely misunderstood article, Matt Baxter-Reynolds recently pointed out the real-life, day-to-day issues with using the Microsoft Surface Pro on the move. By starting with the form-factor of the moment, a tablet, and then adding a kickstand and keyboard, Microsoft inadvertently threw away 30 years of iterative portable computing design. The result is a device with a 10″ screen and a footprint larger than a 13″ Macbook Pro (and indeed larger than any other ultrabook or MacBook Air). The same as a 15″ MacBook Pro, in fact. Not only is the footprint larger, it’s less stable, since you have a hinge with no hold between the keyboard and screen, and then a half-centimetre bit of plastic to hold the screen up instead.
Google’s recently announced Chromebook Pixel is competing in the same space as the Surface Pro, and by virtue of price bracket, that also means the same space as the MacBook Air. It runs ChromeOS, so everything you do is cloud / browser-based. I’m not going to debate the pros and cons of this model now: suffice to say there are people out there who love this thin-client setup (it’s not new, it’s just it’s time is finally coming), and are within reach of wifi for enough hours a day for this to work for them.
What the Chromebook brings to the table is a touchscreen (just), it’s incredibly portable and has all the advantages of an actual laptop in design. Well, I say all: from a physical point of view it has the same advantages. It’s a clamshell, and so you can sit there tapping away on a real keyboard with it perched on your knee.
Where Google have thought differently of course is by making the Pixel a thin client. For me though, that means they have throw away all the reasons I still use a MacBook Air as my portable machine and haven’t gone to an iPad. When I’m out and about, I still want to do the kinds of computing tasks just not possible on an iPad yet. I want to code in objective c and Java, compile apps, run them on a simulator or a device. I want to write Python scripts. I want to open Ableton Live and work on a DJ mix or new tune. I want to open Photoshop and edit a PSD, then save a PNG and add it to an app or website or a mix I’m uploading to SoundCloud.
I admit, the kind of things I do with my MacBook Air are niche. Not everyone writes apps or dance music. Why not I have no idea, but that’s another story. But these reasons keep me on a traditional laptop, at least for now. Microsoft and Google should be praised for thinking outside of the box. So far though, these alternative offerings both throw away the best bits of what they are trying to replace, yet cost the same. The iPad doesn’t try to do what a laptop does. It does a subset of what a laptop can do, some of those things it does better, and of course it costs around a half to a third of the price. The Surface (RT) does something similar. Similarly, the lower end Chromebooks do a subset of what a laptop can do, and cost around a quarter of the price.
There’s a weird trend in the media to think that compromise is a bad thing. It isn’t: compromise is the key to good design. The iPad, and to some extent the Surface RT and the low-end chromebooks: these are the great examples of compromise in design. Compromise is designed right-in. It’s a feature. You get something that is great at a subset of tasks.
The problem that the Surface Pro and Google’s Pixel have: they pretend there is no compromise, but in fact they have the the worst kind: unexpected compromises.
I find a lot of apps need a form-like view at some point, and after looking around and not finding one we like, we made our own. Presenting RAFormView, released under the MIT licence.
On a recent iOS project, we had an issue with relationships between managed objects disappearing at the moment the document saved itself. The problem, it turned out, was that we were holding onto an object after immediately after creating it, and then later on setting up relationships between it and some other new objects. The ID of the object changed at the moment the document saved, and so the relationship no longer held. I found the crux of the issue by way of an excellent suggestion from Steve Tibbett’s blog, which gives some great tips on troubleshooting UIManagedDocument’s autosaving.
The solution we came up with was to call:
+ (BOOL)obtainPermanentIDsForObjects:(NSArray *)objects error:(NSError **)error]
on the managed object context after creating each object, to ensure that its ID didn’t change later (when saved). I first solved this with a subclass of NSEntityDescription with the following overload:
+ (id)insertNewObjectForEntityForName:(NSString *)entityName
inManagedObjectContext:(NSManagedObjectContext *)context
{
id object = [super insertNewObjectForEntityForName:entityName inManagedObjectContext:context];
NSError *error;
if (![context obtainPermanentIDsForObjects:[NSArray arrayWithObject:object] error:&error]) {
NSLog(@"Permanent ID not given");
}
if (error) {
NSLog(@"%@", error);
}
return object;
}@implementation NSEntityDescription (PermanentID)
+ (id)insertNewPermanentObjectForEntityForName:(NSString *)entityName
inManagedObjectContext:(NSManagedObjectContext *)context
{
id object = [self insertNewObjectForEntityForName:entityName inManagedObjectContext:context];
NSError *error;
if (![context obtainPermanentIDsForObjects:[NSArray arrayWithObject:object] error:&error]) {
NSLog(@"Permanent ID not given");
}
if (error) {
NSLog(@"%@", error);
}
return object;
}
A few week’s ago I heard about a new meet-up being organised around Metro: I rarely come across Microsoft technologies that excite me nowadays but this one has piqued my interest. For the uninitiated, Metro is Microsoft’s new vision for the Post-PC (not their words…) world, and this vision brings the worlds of mobile and desktop much closer than before, hence my curiosity. During the evening we would hear from both seasoned Microsoft developer and writer Matthew Baxtor-Reynolds, and an evangelist from Microsoft themselves. I went along – feeling weirdly like I was a spy infiltrating enemy lines – and here’s what I took away from the night.
Primarily aimed at .Net developers looking for an introduction to the new world of Metro, the evening was a great way to find out exactly what Metro is and is not, and what Microsoft and Microsoft developers think its role is. Spoiler: these two sometimes disagree.
Metro is not a new operating system. It is just – albeit a big ‘just’ – a design aesthetic. You’re no doubt familiar with it already, even if you don’t realise: it’s what Windows Phone 7 uses. Metro is bold colours, square corners, active tiles, san-serif fonts and naturally-flowing text. It’s actually really nice.
So if Metro is just a design, what’s so new? What’s the exciting OS, the new APIs that will soon span mobile and desktop? That will be WinRT, and WinRT lives inside Windows 8. WinRT is the new Win32. What seemed very clear is that WinRT is the new paradigm that will come to replace Win32, in the same way that Win32 replaced MS-DOS., as Windows 95 replaced Windows 3.1. That’s what the developers say, anyway. What I found quite amusing is you will absolutely not here that from Microsoft proper. This is understandable in some respects of course, in 1994 they wouldn’t have announced discontinued support for their incumbent system. Microsoft is a company that on the whole likes to have it’s old cake while baking a new one. When it suits them, anyway.
The impression I got from the Microsoft evangelist who spoke at the event was that Microsoft have a clear and bold view of how we should use devices. And it’s kind of the opposite clear and bold view of that other large tech company who make operating systems and devices. (Not Google, the other one.) The message I heard was this: one Windows device has many uses. And Windows may have many faces, but it’s always Windows. You’re on the sofa with your slate (his word, not mine) surfing with the kids or consuming some content (whatever that means). Then, you remember you’ve got an email to write and a spreadsheet to work on, so you pop to your desk and plug in keyboard, mouse, printer and monitor. Away you go, spreadsheeting to your heart’s content, the same device repurposed for another task. One device has many purposes. But there is only one Windows, even if it looks different for each task.
Apple, by contrast, have a different message, which I interpret as this: pick the device that is right for the task. A phone, a tablet, a notebook; choose what is appropriate and use that. The specific device isn’t so important, what’s important is that whatever device you pick up your data is always there. In Apple’s world, you are your data, and that data will be available to you whatever you pick up or sit down in front of. It’s a little like the thin-client that Sun so successfully (ahem) pushed for in the nineties, only the computing power is now in the device, it’s just the data that isn’t.
Two different visions. And it’s great that there are choices. I was once discussing dancehall with a ska DJ, and he didn’t really like it at all. “It would be really boring if we all liked the same stuff, though” he said to me. Very true. Which means it’s fine for me to have a strong opinion on which of these plans I think will work. For me, it’s crazy to think that the device should be the thing moving around, not the data. Why? Because the device is a thing, and data isn’t.
I really enjoyed the meet-up, and for me there were two take-home lessons. First: Metro is actually a really exciting new vision for Windows, and those targeting Windows Phone 8 should be in for a treat as the APIs available will be approaching those available on the Windows desktop: so they’re richer than before, and migration to or from the desktop will be easier . Second: the message from Microsoft about what to do in this new Metro future is a confusing one, with no clear direction for current Windows developers. I heard it as: “Go for Metro, but also don’t, depending on what your application is and what your market is”. Maybe this is just the unfortunate legacy of the enterprise market that Microsoft are stuck with: no matter how great there new vision is, they just can’t quite afford to jump toward it with both feet.