Slight Pause

(Yes, as if I had published any post in the last three months, in the first place…)

If you’re looking for software development treatises or Apple nerdery, I’m afraid I haven’t been able to focus on writing on these matters recently. I do have posts in the pipeline, but I don’t know when I will manage to publish them.

Meanwhile, the action is happening elsewhere.

IP Move

This blog has just changed its IP address (and theme, as I was at it), though the change may still be propagating in DNS. If you are reading this, you are at the new address; please tell me if you find anything broken.

April’s Fools 2015

As you probably guessed, the post I made Wednesday was an April’s fools… well, the kind of April’s fools I do here, of course: just because this was for fun does not mean this was no deeper message to that post (now translated to English for your understanding).

In case you missed it, for April the first (besides posting that post) I translated to French my greatest hits (as listed there) and a few other minor posts, replaced all others with a message in French claiming the post in question was being translated, replaced the comicroll with an equivalent one listing French online comics, and translated to French all post titles and all elements of the blog interface: “React”, search, dates, etc. up to the blog title: “Le Programmeur Itinérant” (it stayed that way a bit longer than the initially planned 1-2 days because of unforeseen technical issues, my apologies for the trouble). Thus reminding you, in case my name did not make it clear enough, that even though I publish in English my first language is actually French.

The problem of availability of information, especially technical one, in more than one human language has always interested me, for reasons of inclusiveness among others. It remains a very hard problem (I did get a good laugh at the results of Google translate back to English when applied to my French posts), and so initiatives such as this are very welcome (they translated my “A few things iOS developers…” for instance, but I can’t find the link at the moment).

Lastly, there have been a few influences that led me to do this for April the first, but I want to thank in particular Stéphane Bortzmeyer, who manages to maintain a very technical blog in French; whenever I needed the French translation of a technical term I could typically just look in his blog to see what he uses (or to confirm there was no point in trying, e.g. for “smartphone”, which has no real French translation). Much respect to him for this.

Je Suis Charlie

Today, in France, freedom of expression was attacked. For through their odious act today, the perpetrators did not merely target Charlie Hebdo. They targeted Siné Hebdo. They targeted Le Canard Enchaîné. They targeted Le Monde. They targeted TF1. They targeted RTL. They targeted Maitre Eolas. They targeted Cyprien. They targeted the press, the radio, the television, the blogs and all of Internet. They targeted the whole of the media, the freedom of expression of us all and through it, our Republic.

And we will not back down.

This evening, I am on the place de la République, because as a Frenchman, as a blogger, as a person, I benefit from freedom of expression and I will stand by it. And even if I did not, in fact, buy or read Charlie Hebdo, today #JeSuisCharlie, and this site is blacked out.

And we also will not take any shortcut. Today our enemy is not Islam, or Muslims, or Arabs, or any religious, ethnic, national or other group. Today our enemy is terrorism.

We will not “remember” Charlie Hebdo, because rest assured that Charlie Hebdo will live. But we will remember Cabu, Charb, Wolinsky, Bernard Maris, and the others I am less familiar with (sorry) or who were not mentioned on the radio. Today my deepest condolences go to their families.

image

Our Republic is looking extra significant tonight.

Let me put something while you’re waiting…

A short note to let you know that I am currently working on a copiously researched post about the big new thing of the iPhone 5S processor: 64-bit ARM, as well as related updates to keep “Introduction to NEON on iPhone” and of course “A few things iOS developers ought to know about the ARM architecture” up-to-date. I already have a lot of interesting info about that aspect of the iPhone 5S, either from experimenting on it or found online, and while searching I happened to stumble upon this post, which is so true and exactly what I’ve been practicing for so long that I wish I would have thought of posting this myself, so I’m sharing it with you here.

In fact, rather than compile then disassemble as in that post, I go one step further and compile to assembly (either use clang -S, or use the view assembly feature of Xcode:)

screenshot of part of the Xcode window, with the menu item for the view assembler feature highlighted

Indeed, sometimes I don’t merely need to figure out the instructions for a particular task, but also the assembler directives for it, for instance in order to generate the proper relocation when referencing a global variable, or sometimes simply to know what my ARM64 assembly files need to start with in order to work…

A highly recommended technique. Don’t leave home without it:

ARM Processors: How do I do <x> in assembler?

Parody week

Well, I hoped you enjoyed parody week last week on this blog. After the parody of the Old New Thing I posted Monday as an April’s fool, I admit I got a little carried away and posted a parody of Hypercritical Tuesday, a parody of Coding Horror Wednesday, and concluded with a fake parody of Fake Steve Thursday.

So of course these posts last week were not entirely serious. But… Let’s see, for instance, Did Apple just cargo cult the iPhone platform?; clearly, I would not use a cargo cult metaphor for the iOS platform, even with precautions, outside of a parodic context: “cargo cult” is a very specific and grave accusation that just does not apply to the iOS platform. But just because this was a not-really-serious, parodic post, does not mean it was only for laughs and entertainment: if you are not coming away from that post thinking there was a deeper message to it, then I have not done my job properly (hey, what’s this bold text doing here? Oh God Jeff is contaminating me). I think that good satire makes you laugh, then makes you think, and I hope I was up to that standard.

As always, thank you for reading Wandering Coder.

PSA: Subscribe to your own RSS feed

I like RSS. A lot. It allows me to efficiently follow the activity of a lot of blogs that do not necessarily update predictably (I mean, I’m guilty as charged here). So when things break down, in particular in silent or non-obvious ways, it is all the more grating. To avoid causing this for your readers, please follow the RSS feed of your own blog; it does not have to be much, you could do it for free with the built-in feature of Firefox, just do it.

Case in point: at some point Steven Frank was talking about the <canvas> tag (in a post since gone in one of his blog reboots). It showed up fine on the website, but for some reason I cannot fathom the angle brackets did not end up as being escaped in the XML feed, and NetNewsWire dutifully interpreted it as an actual canvas. With no closing tag, which means none of the text after the “tag” showed up in NetNewswire, so as far as I could tell the blog post just straight up ended there (before the tag) in a mysterious fashion. I fortunately thought that that didn’t look like Mr Frank’s usual style and investigated, but I might never have noticed anything wrong.

You might say it was because of a bug at some point in the feed generation, but this is not the point. I mean, this is the web, in permanent beta, of course bugs are going to happen. The point is that apparently the author never noticed it and fixed it, so he couldn’t possibly have been following his own feed; had he been doing so he would have noticed, and would have fixed it in any number of ways.

Another case is when the feed URL for Wil Shipley’s blog changed. He did not announce it anywhere, and I did not notice it until I went to his site at work and saw a post I had not seen before (and which had been posted earlier than that week). Had he been following his own feed, he would have noticed at some point when posting that the post never showed up in his reader, and would have remembered to notify his RSS subscribers in some way.

So kids, don’t be the lame guy: follow your own RSS feed. Otherwise, you’re publishing something you are not testing, and I think we recently talked about how bad that was. The more you know…

Meta-Patents

My apologies for the extended radio silence prior to Patents; it took me a lot of time to properly articulate my reasoning, as it is no simple matter, and in particular it took me time to properly show in which ways software differs from other engineering domain and why it matters for patents. The blog post I ended up writing is admittedly a bit “too long, didn’t read”, but given the often simplistic discourse occurring these days around software patents, I wanted to start back from the basics so it necessarily got a bit long.

In other news, as promised I updated my existing posts, namely here Introduction to NEON on iPhone and A few things iOS developers ought to know about the ARM architecture, to account for ARMv7s. However an equivalent of Benefits (and drawback) to compiling your iOS app for ARMv7 for ARMv7s will have to wait, as I do not have an ARMv7s device I can call mine, so I have no idea how performance improves in practice when targeting ARMv7s. In the meantime I advise measuring the improvements in the specific case of your apps to see whether it is worth it, I cannot provide any general advice yet.