Thoughts on the iPad

Sooo, for once I’m going to blog about current news 🙂

Like almost every geek out there, I’ve been rather disappointed by the iPad. However, as many others have said, the iPhone had already revolutionized the way we think of computer user interface. It was obvious that it couldn’t have been a MacOS tablet. They had to adapt MacOS X to a tablet with multi-touch interface, and that is… iPhone OS.

This comment from a reddit thread sums it up quite nicely : “Why isn’t it a COMPUTER? We wanted a fucking tablet computer, not an oversized iphone – Because they’re not selling to you”. Yeah, this isn’t a geek tool. Although I have a feeling that, just like with the iPhone, many geeks will want one too.

Now it seems one of the main gripes against it is the lack of Flash. I really don’t understand why. As a chat on the topic with other friends proved to me this morning, Flash has two main uses nowadays : video, and games. Videos are on iTunes. YouTube is a native app. Other video sites already have iPhone (or more generically “mobile”) versions, like Dailymotion. And as for games… well that’s the first 3rd-party product which were shown during the presentation. And it would make sense that those people writing those fun little Flash games would be more than happy to sell them on the App Store.

Regarding Flash being used as a UI on website, now how are you going to translate that to the iPad’s UI ? The whole thing is designed to be used with your fingers as pointing devices, scrolling, etc… and by visiting a web site, you’d find yourself stuck with a UI made for a mouse&keyboard interface. How convenient.

And yes, of course, there’s the obvious reason that Apple (Jobs) is a control freak and doesn’t want anyone else to interfere with the Experience they provide to the user, that Flash is a resource hog, etc… I personally won’t miss it.

What I do miss, though, is multitasking, and it would have been really cool to have a video camera in there. And for the whole thing to be a tad more open regarding app installation, but that calls for the same answer as above : Apple’s not selling this to me. I might get one eventually (will wait for v2), but I won’t use it as a computer.

Edit : Two posts which I found seeing beyond the feature list check :
This one by Fraser Speirs (btw, thanks for your FlickrExport Aperture plugin 😉 ), and the other by John Gruber.

Quick thoughts on the MIDEM

So the MIDEM 2010 is closing today. I attended as a press photographer, mostly did concerts (some great stuff), but also a couple of press conferences. Anyway :

  • the industry is definitely moving towards other non-repressive solutions and alternative models to keep the business afloat. To quote Ted Cohen : “We’re decisively moving from music as a product to music as a service … this isn’t my opinion, this is fact.”. Good for them. As a sign of this, two or three (not sure) Rock Band booths, plus many talks and deals with video games companies. Spotify and Deezer were also very present.
  • Politicians however are still lagging behind, still stuck in the same way only beginning to look at the possibilities of legal offers as a way to effectively fight against illegal sharing. The press conference I attended on the matter was rather pathetic in its lack of vision. Only the SPEDIDAM (warning, annoying website with auto-maximize windows and Flash all over, yuck), french organisation of authors to collect royalties like the SACEM, has a refreshingly sane view on the matter.
  • The music industry is Apple’s turf. iPhones and macbooks (unibodies) were outnumbering blackberries and PCs 5 to 1 (rough estimation). To give an idea : the MIDEM iPhone app was downloaded more than 4000 times. There were 7000 attendees at the MIDEM this year.
  • The conference relied heavily on Twitter as a “life line” for news, buzz, and communication between attendees. In that regard Twitter really has become a de facto instant communication platform standard which events can very easily get working : just agree on a keyword to use (#midem in that case) and off you go.
  • Videogames (Rock Band, Guitar Hero…) had quite a bit of presence. According to this blog post from Le Monde journalists (in French, sorry), listening sessions organised by videogame producers to look for music to go with their games had a lot of success

That’s all for now.

(edit Feb 12th : added bit about videogames)

EdenX – a quick demo

Now that basic (very basic) editing, recording and playback are in, I can show a quick demo of EdenX (that OS X would-be Rosegarden clone I’ve been working on). At this stage there’s really not much point in demonstrating it, given how little it does and how bad it looks (I’ve been throwing the UI together as it went). But it’s ripe for a Linux/Qt/C++ – OSX/Cocoa/ObjectiveC comparison, which is the underlining topic of this post. As such, OS X coders can stop reading. Linux coders, you might find the following interesting.

In the screencast I create two tracks, start two MIDI sources – one being MidiKeys, the other being a quickly hacked MIDI Sources and events generator (MSEG) which I wrote because I needed to test recording from several sources. Once these two programs are running, I create two additional sources from the MSEG, set one track to record from MidiKeys and the other from one of the created sources. I then start recording, send some events from the MSEG and then MidiKeys, stop recording, and do a play back at 120 bpm and then 250 bpm. Finally I save and reload the document.

In case your browser doesn’t support the video tag, you can download the mp4 here.

(nb: yes, the audio’s only on one side, thanks to a crude mini-jack cable 🙂 )

Now keep in mind that even though I’ve been working on this for more than a year now, on average I’ve probably been spending about a couple of hours per week on it. As you can see by looking at the code, there’s really not much in it – around 1kloc. Although I’m now linking to two (well, one and a half – PYMIDI and the MIDI message parsing classes of SnoizeMIDI) Open Source MIDI frameworks which do help quite a bit.

But there are a few features which I’d like to highlight :

First, the track editor. As you can see from the demo, it can add, delete and edit events (yes, these buttons work, even though I don’t exercise them 🙂 ). It also automatically updates when a new track is selected in the track list, and when new events are recorded. And yet, the whole code for this is roughly 30 lines long. Everything else is defined in the Interface Builder.

Second, there’s no code to define the document’s data structure, nor is there any for document persistence (save/load). It’s all done through Core Data : .

Also, here’s an example of how you fetch document elements. The :recordingTracks method returns all tracks which have a selected input source and ‘recording’ toggled on.

More generally, thanks to Key-Value Coding and Key-Value Observing, there’s practically no code anywhere to keep a widget up to date with the data it’s showing. For instance, the bpm slider is simply set to “point to” the “tempo” attribute of the document’s composition with the Interface Builder, and that’s it. Totally mundane for any seasoned OSX developer, outlandish for me as a former Linux coder.

Also, there’s no code for memory management because I’ve enabled Garbage Collection.

As a conclusion, I started EdenX as much to have a bit of fun with Cocoa (a feeling I had long lost with Linux) as to prove a point, which is that Cocoa is substantially better as a development environment than anything there is on Linux, even KDE/Qt. And there it is, there’s simply no way anyone could achieve this tiny bit of code in any reasonable amount of time on Linux, with the same amount of features, under the same constraints (i.e. a few hours per week at most). I don’t even want to think at how much code would be involved, plus the MIDI configuration hassle.

It is often said the grass always looks greener on the other side of the fence. It looked like it when I was on the Linux side. Well, having roamed on the OSX/Cocoa/Objective C side for a while now, I can tell it wasn’t an impression : the grass is indeed a whole fucking lot greener.

Recording!

Another tweet, another milestone : edenx recorded its first notes on sept. 24th. Notes sent by a quickly hacked MIDI client which sole purpose is to create virtual MIDI sources at will, and send NoteOn/NoteOff events on them. This was done thanks to Pete Yandell’s PYMIDI framework with the messages parsing classes from Kurt Revis’ SnoizeMIDI added in, which saved me a lot of time.

Even creating the MIDI source client was a breeze. I haven’t yet updated the svn repository, I need to fix a small array controller issue first.

Thoughts on the 5D mark II

Two weeks ago I did my first concert with my new 5D markII (Lenny Kravitz, no less). I’m quite happy with the results. In fact I’ve never, ever brought so many good shots from a concert. By “good” I mean “exploitable” : low noise, correct exposition and focus. A quick statistical check on a few of my previous concerts yields an average ratio of 30% of keepers/taken. In this concert, the ratio was 54%.

I’ll spare the praise on its high-ISO performance. Everything you’ve already read is true, yes you can shoot at 3200 and get something exploitable. Noise becomes noticeable at 800, under that it’s irrelevant. But the other huge improvement compared to the 40D is a working auto-ISO mode. This allowed me to take shots at 100 ISO. In concert. I’d never have thought that possible, but I have a bunch of perfectly sharp shots taken at well below 800, which is usually the lowest setting I use in concert (sometimes 400 when there’s really a lot of light). The other good part of this mode is that, well, it varies ISO. Which means I have both noiseless, clear shots and fairly grainy ones when it kicked into 3200, and this lets me vary the mood at post processing. From

Lenny Kravitz in Nice

to

Lenny Kravitz in Nice

In conclusion : can’t wait for the next concert 🙂

Sound !

It’s already a tweet but worthy of a blog post : a few minutes ago, edenx, my “proof of concept” OSX version of Rosegarden, has just made its first noise. Played its first 3 audible notes (for posterity, those are in chromatic progression starting at middle C).

Some quick facts : the UI is a bare bones “Tracker” : a track list and an event list, with a ‘Play’ button (will post screenshots and possibly a screencast later). It can save and load documents, and has undo/redo. In total, about 900 lines of code, out of which you can remove about 100 lines for a scrollview synchronizer which I’ve copied from an Apple dev document. It’s hard to estimate how long I’ve spent time on this so far. Initial setup of the svn repository was done in mid-may last year. I resumed work on this in late february I think, with a first commit on march 1st. I estimate I’ve spent an average of 10 hours a week on this since then. That’s including browsing the Apple dev docs to look for info on stuff not covered by Aaron Hillegass’ excellent Cocoa Programming for Mac OS X posting on the cocoa-devel mailing list and bugging my friend Florent for help.

These facts are all very pointless by themselves, you need to compare them to how long it took Chris, Rich and me to get RG to make its first sound back then (although we also had a notation editor at this stage too – a pretty hefty piece of work).

One thing about gmail addresses…

For a while now I’ve been regularly recieving emails on my gmail address which are mistakenly sent to me. Not spam, actual email (and sometimes pretty important too), just sent to the wrong address. I generally make the effort to reply to the sender so that he would know about his mistake, because otherwise there’s no way he’d guess.

And it also seems that many people think ‘g.laurent@gmail.com’ belongs to them. Nope, gmail ignores any dots in the username.

The point of this post is trivial : beyond the obvious online/offline debate (I dislike webapps though I agree they have their use in some cases), here’s another thing you should consider about moving all your email to a gmail/hotmail/ address : it will make you lose an important distinctive part of your email address, that is its domain name. Within a large email host, you run a much greater chance to have a name clash than within your own ISP. There already are a few ‘glaurent’ on Orange or free.fr (two of the largest french ISP providers), but on gmail there’s a whole lot, and each is bound to get private email that doesn’t belong to him if he didn’t make his address distinctive enough (I’m pretty sure there’s a ‘glaurent.gmail@gmail.com’ – that one probably gets the cake).

That’s another reason to get your own domain name, too :-).

Michael Berkowitz and the X-ray skull

Almost a decade ago now, back in a time where vanity pages on geocities where hip and Facebook or flickr weren’t even a neuron firing in their designer’s minds, I put up a bunch of “silly” pictures on my homepage as a mockery of this trend to put useless personal stuff on homepages (some trend, uh ?). These pics are digitized X rays. The irony is that, what was meant as a joke ridiculing the uselessness of most homepages turned out to be actually useful to some. Over the years, I received quite a few usage request on these X rays, mostly on the skull one. Most were for educational uses, a couple where even for art. And judging by my site logs, many are referencing the images from their own pages.

And just today, I received an email from Michael Berkowitz, a retired teacher who had asked me for permission to use the skull image in his science transparencies back in May 2006. Today he’s asking me the same thing but for CD ROMs. For one thing, I really appreciate that he would make the effort to reach me again about it, even more given the use he makes of it. But also I’m very glad that this joke ended up being one of those cool things about the Net, that you have no idea how useful whatever you make available will really be.