Did Apple lose its advantage?

Readers of my blog for a while probably know already that I’ve been an Apple user over time. What is not obvious is that I have scaled down my (personal) Apple usage over the past two years, mostly because my habits, and partly because of Android and Linux getting better and better. One component is, though, that some of the advantages to be found when using Apple started to disappear for me.

I think that for me the start of the problems is to be found in the release of iOS 7. Beside the taste of not liking the new flashy UI, what I found is that it did not perform as well as previous releases. I think this is the same effect others have had. In particular the biggest problem with it for me had to do with the way I started using my iPad while in Ireland. Since I now have access to a high-speed connection, I started watching more content in streaming. In particular, thanks to my multiple trips to the USA over the past year, I got access to more video content on the iTunes store, so I wanted to watch some of the new TV series through it.

Turned out that for a few versions, and I mean a few months, iOS was keeping the streamed content in the cache, not accounting for it anywhere, and never cleaning it up. The result was that after streaming half a series, I would get errors telling me the iPad storage was full, but there was no way from the device itself to clear the cache. EIther you had to do a factory reset to drop off all the content of the device, or you had to use a Windows application to remove the cache files manually. Not very nice.

Another very interesting problem with the streaming the content: it can be slow. Not always but it can. One night I wanted to watch The LEGO Movie since I did not see it at the cinema. It’s not available on the Irish Netflix so I decided to rent it off iTunes. It took the iPad four hours to download it. It made no sense. And no, the connection was not hogged by something else, and running a SpeedTest from the tablet itself showed it had all the network capacity it needed.

The iPad is not, though, the only Apple device I own; I also bought an iPod Touch back in LA when my Classic died. even though I was not really happy with downgrading from 80G down to 64G. But it’s mostly okay, as my main use for the iPod is to listen to audiobooks and podcasts when I sleep — which recently I have been doing through Creative D80 Bluetooth speakers, which are honestly not great but at least don’t force me to wear earphones all night long.

I had no problem before switching the iPod from one computer to the next, as I moved from iMac to a Windows disk for my laptop. When I decided to just use iTunes on the one Windows desktop I keep around (mostly to play games), then a few things stopped working as intended. It might have been related to me dropping the iTunes Match subscription, but I’m not sure about that. But what happens is that only a single track for each of the albums was being copied on the iPod and nothing else.

I tried factory reset, cable and wireless sync, I tried deleting the iTunes data on my computer to force it to figure out the iPod is new, and the current situation I’m in is only partially working: the audiobooks have been synced, but without cover art and without the playlists — some of the audiobooks I have are part of a series, or are split in multiple files if I bought them before Audible started providing single-file downloads. This is of course not very good when the audio only lasts three hours, and then I start having nightmares.

It does not help that I can’t listen to my audiobooks with VLC for Android because it thinks that the chapter art is a video stream, and thus puts the stream to pause as soon as I turn off the screen. I should probably write a separate rant about the lack of proper audiobooks tools for Android. Audible has an app, but it does not allow you to sideload audiobooks (i.e. stuff I ripped from my original CDs, or that I bought on iTunes), nor it allows you to build a playlist of books, say for all the books in a series.

As I write this, I asked iTunes again to sync all the music to my iPod Touch as 128kbps AAC files (as otherwise it does not fit into the device); iTunes is now copying 624 files; I’m sure my collection contains more than 600 albums — and I would venture to say more than half I have in physical media. Mostly because no store allows me to buy metal in FLAC or ALAC. And before somebody suggests Jamendo or other similar services: yes, great, I actually bought lots of Jazz on Magnatune before it became a subscription service and I loved it, but that is not a replacement for mainstream content. Also, Magnatune has terrible security practices, don’t use it.

Sorry Apple, but given these small-but-not-so-small issues with your software recently, I’m not going to buy any more devices from you. If any of the two devices I have fails, I’ll just get someone to build a decent audiobook software for me one way or the other…

Blogging from a tablet

While I’ve got a tablet for a few months now, I never tried typing some longer test on it, something like, you got it, a blog post. I’m honestly quite sceptic about the usage of tablets for everything, especially for content production, but I see their usefulness for what concern content consumption, or for handling tasks with a properly designed workflow — heck, I only got this tablet to implement a tablet oriented interface for a customer of mine, and I got to admit, the end result is sweet.

Let’s start with the first admission: the tablet I’m writing on is an iPad. The choice wasn’t really mine, as I said before but at the end of the day it isn’t so bad. You have lots of compromises to take, but the same is true of my Android phone. Life’s hard.

I would never have used this device even for trying to write a blogpost until the new software release was in: the split keyboard is the first improvement toward making the tablet really usable for writing for more than a couple of lines, even though I find the division of left and right keys pretty arbitrary, in particular my left thumb keeps looking for ‘B’, ‘H’ and ‘Y’, which are all on the right side.

Nonetheless, the lack of real physical feedback makes it hard for me to type fast on this thing. The autocorrect thingie is passable, when writing in English, but it becomes unusable quite quickly in Italian. And this is by far not only a problem for Apple’s devices, as the only keyboard for Android I am able to use, and even that with quite a bit of trouble, is SwiftKey.

Sigh, I’m afraid I won’t be able to make use of the small time fragments that my work life is unfortunately full of lately to complete the posts I keep in mind and that I wish to write.

My first impressions with Safari Books Online

I have never hidden that I’m a fan of the so-called authored content: I still prefer a well-edited guide to a blog post or a Wiki entry, evne though I’m the first to write blog entries to document issues and common problems, mostly out of lack of time and, honestly, laziness.

Given this, when I’m planning to work on a new technology or technique, I used to roam to O’Reilly’s website and buy myself some e-books to read on the subject. More than once, this saved me from having to spend hours and hours googling for up-to-date content on the topic. At least once, this let me complete overnight a task I was failing to complete, after two weeks — it had to do with flex and bison and most of the guides out there seemed to relate to their “grandparents” lex and yacc; the solution was much easier to implement once I read flex & bison by John Levine since it provided me with the actual, up-to-date syntax.

Two months ago, I reviewed how much I spent during 2011 in O’Reilly ebooks and … I was quite upset: over €200 in less than six months, with most of the books being one-time reference or something quite near. So I finally decided to bit the bullet and I bought a yearly subscription to the Safari Books Online Library service. Thanks to the fact that I’m basically always connected to some network, and even more important, I’m always connected when I’m working on some new technique, having a whole lot of books, not limited by either my choices or publisher, makes it cheaper in the books — and hopefully my accountant can record the expenses down in my freelancer’s balance.

You might already guess that, since I’ve not been keeping up with writing blog posts lately, I was quite busy with my work stuff (to which I had to add some personal stuff, some very good, some very bad), so I gave the service a run for its money with some of the projects I’ve been following. I have to say that the selection of books is quite good indeed, even though sometimes it is difficult to find an updated book, simply because nothing new is written on the topic, causing the old stuff to be obsoleted early, when the technology is moving fast, which is the case for most of the Free Software-related writings — a different story applies to stuff like Microsoft SQLServer, even though that one also changed quite a bit between one version and the other lately, but that’s enough for another story.

There are three main interfaces to the Library that I tried: the standard website, the mobile one and the iPad-specific application. As far as I can tell, there is no Android application yet, which makes me somewhat lucky for having an iPad instead of an Android-based tablet — and for those wondering, it was part of a project for a customer that needs to run on it, thus why I bought it in the first place.

The main website is somewhat usable; on the other hand it can create a bit of confusion especially for what concerns the difference between searching and filtering down the search, but at least it provides a quick way to find about anything you need. The mobile interface is definitely more limited, and especially on a space-constrained screen such as the HTC Desire HD’s (my newest phone) it isn’t exactly making me happy to search for something.

The iPad application, instead, seems to have been designed to be much more immediate than the mobile website… if it hadn’t its share of painful bugs and mis-features. For instance, if you’re looking for something particular in the table of contents, you’re out of luck, as it doesn’t get you to the right place in the book for the selected entry, but rather to the nearest “section”, i.e., at the HTML file that includes the entry you selected. But what bugs me the most is that, even though the service uses HTTP and is generally lightweight, the application refuses to connect if you’re Internet-bound via 3G network, only working via WiFi.

Overall, the service looks convenient to me, but I’ll reserve to say something more once a few months have passed. In the mean time I’ll be hoping that an Android application will be released, and that the iPad one will start supporting 3G connections, to make the whole experience more.. natural.

AirPrint in Gentoo

I’m interrupting the series of posts about gold to post about something I was working on as part of a different job. More about gold will resume next week.

For one of my customers, I’m developing a private web application that would probably make most Free Software enthusiasts – not just the advocates – cringe. It is developed in ASP.NET, with a SQLServer backend, and is targeted at iPad users. While in general this looks like a bad combination for a Free Software developer, paid work is paid work, and even working on Windows has its upsides, namely learning about alternative approaches and the good and bad things about them, to make your software better — to be honest I’m not sure I dislike ASP.NET more than I disliked Hobo last year.

Putting the iPad to good use is also easy: I’m reading even those O’Reilly books that were previously cumbersome to read, PDFs like CJKV Information Processing which I bought last year and never went around to read, because of not being available in ePub format.

Let me say that, as a toy, the iPad is far from bad: Apple’s hands-on approach can be criticized, but the results for a naïve, jaded user are almost near perfection. On the other hand, I don’t think I’d trade my Milestone for an iPhone any time soon, even with all its troubles — the most bothersome issue is due to my CyanogenMod installation where the “hold call” button is pressed by my cheek while talking; it seems like I’m not alone and I’m now trying the method reported there to see if it helps.

While they really seem to have an app for everything, and their not-really-multitasking approach appears to work better than what I’m used to on Android, it is rough on the edges for the meddlers: I can’t install additional certificates (I can on Android); I can’t use an email address different than the GMail login (I can on Android); it doesn’t sync contacts on Google Contacts on the fly (Android does), and so on a few more “minor” things that I just love, in my Android.

But there is also one thing that the iPad can do and my Android can’t: printing. Of course it should be easy to do, especially given that Linux’s printing system is the same CUPS used by Apple – and actually, developed, given they bought the original developers! – but that’s not really the way they decided to do it. In a very environment unfriendly way, Apple decided that you can’t just use any printer with their iPad, you need to buy a new one, as they will not provide the AirPrint interface with older models.

You can guess that people already found out how to avoid that. I had saved a long time ago a post by Eric Sandeen on the topic, which later points to a GitHub project with a script that generates a service file for Avahi, which can then be used to advertise the printer properly.

But even with this it is far from being straightforward to deal with it. First problem I found is that the script needs the cups Python extension; this is not provided by net-print/cups[python] as I first expected – I since updated the USE flags’ description in the metadata.xml file: the interpreter flags are used for cups’s own CGI scripting support, which is definitely non-obvious – but rather by the dev-python/pycups package.

The next problem is that, because of technical limitations on the size of TXT records used in mDNS discovery – if you didn’t look up post and projects I have listed above, the AirPrint protocol is actually just the usual IPP as provided by cups, wrapped through mDNS with a custom record for exposing the printer’s features – some of the printer’s options are not exposed. One of those that is ignored is duplexing, but since my only real reason to print from the iPad is printing invoices, which I always print duplex – don’t get me started on why I should be printing invoices – I wanted to expose it. Luckily the generated Avahi service file is easy to fiddle with.

Next up, actually trying to print. Unfortunately there is one thing that could be a bit difficult to guess: CUPS validates the Host header passed (IPP is based on HTTP/1.1). By default, if you don’t fiddle with its configuration, what it looks for is the same hostname as set in the system, but what gets sent by the iPad is what it has found through mDNS/Avahi, which is the base host name followed by the .local domain. In my case that meant CUPS was expecting deepspace9.home.flameeyes.eu and it got deepspace9.local. Since the CUPS configuration is heavily inspired by Apache, just adding ServerName and ServerAlias should be enough… but it’s worth noting that when accessing CUPS through a browser, especially with SSL enabled, it will send the port number as well, so you should alias both hostname and hostname:631.

The takeaway of this all? Well, sometimes proprietary software solutions are not any better than Free Software — not that there is a good way to handle that for us as well, but it still shows its fragile support even using the same server software as the protocol’s creator.

So, wasn’t HTML5 supposed to make me Flash-free?

Just like Multimedia Mike, I have been quite sceptic regarding seeing HTML5 as a saviour of the open web. Not only because I dislike Ogg to a passion after having tried to parse it myself without the help of libogg (don’t get me started), but because I can pragmatically expect a huge number of problems related to serve multiple video files variant depending on browser and operating system. Lacking common ground, it’s generally a bad situation.

But I have been hoping that Google’s commitment to support HTML5 video, especially in Youtube, would have given me a mostly Flash-free environment; unfortunately that doesn’t seem to be the case. There is a post on the Youtube API blog from last month that tries to explain users why they are still required to use Flash. On the other hand, it has the sour taste that reminds me of Microsoft’s boasting about Windows Genuine Advantage. I guess that notes such as these:

Without content protection, we would not be able to offer videos like this .

to land me on a page that says at the top “This rental is currently unavailable in your country.” without any further notice, and without a warning that Your Mileage May Vary, makes it very likely to have a mixed feeling about a post like that.

Now, from that same post, I got the feeling that for now Google is not planning on supporting embedded Youtube using HTML5, and relied entirely on Flash for that:

Flash Player’s ability to combine application code and resources into a secure, efficient package has been instrumental in allowing YouTube videos to be embedded in other web sites. Web site owners need to ensure that embedded content is not able to access private user information on the containing page, and we need to ensure that our video player logic travels with the video (for features like captions, annotations, and advertising). While HTML5 adds sandboxing and message-passing functionality, Flash is the only mechanism most web sites allow for embedded content from other sites.

Very unfortunate, given that a number of website, including one of a friend of mine actually use Youtube to embed some videos; even my blog has a post using it. It’s still a shame, because it’s a loss, for Google, of the iPad users.. or is it, at all? I have played around a minute with an iPad at the local Mediaworld (Mediamarkt) last week. And I looked at my friend’s website with it. The videos load perfectly using HTML5 I guess, given that it does not support Flash at all.

So what’s the trick? Does Google provide HTML5-enabled embedded videos when it detects the iPhoneOS/iOS Safari identification in the user-agent? Is it Safari instead to translate the Youtube links into HTML5-compatible links? In the former case, why does it not do that when it detects Chrome/Chromium as well? In the latter, why can’t there be an extension to do the same for Chrome/Chromium?

Once again, my point is that you cannot simply characterize Apple and Google as being absolutely evil and absolutely good; there is no “pureness” in our modern world as it is, and I don’t think that trying to strive for that is going to work at all… extremes are not suited for the human nature, even extreme purity.