Linotype: Le film
Après un bref aperçu créé l’année dernière (que j’avais partagé sur le défunt Google Reader), voici la bande-annonce complète du film “Linotype”, dédié aux machines d’imprimeries du même nom.
La mécanique est fascinante.
Après un bref aperçu créé l’année dernière (que j’avais partagé sur le défunt Google Reader), voici la bande-annonce complète du film “Linotype”, dédié aux machines d’imprimeries du même nom.
La mécanique est fascinante.
Comme j’en avais assez d’envoyer des mails contenant des liens morts, j’ai écrit un petit utilitaire pour résoudre ce problème.
Il installe un élément “Vérifier les liens” dans le menu “Services” de Mac OS X.
Lorsqu’un texte est sélectionné dans Mail (ou dans n’importe quelle application Cocoa), l’élément “Vérifier les liens” va extraire les liens contenus dans le texte, vérifier qu’ils sont accessibles, et afficher le résultat du test.
Pour l’instant, ça ne fonctionne qu’avec les liens qui sont seuls sur une ligne de texte. Mais c’est déjà ça. Si ça peut vous être utile…
Transmis via Solidarités-Jeunesses, un message qui me tient à cœur :
Par quelque biais qu’on pose la question, la conclusion s’impose: l’éducation populaire ne peut échapper à sa vocation profonde: la subversion. le mot peut faire peur.
On le voit la loi Sapin annonce l’arrivée du privé dans le loisir et la culture: si un maire est obligé (ou a le droit) de soumettre l’attribution d’un équipement d’éducation populaire à un appel d’offre, ou un marché concernant le loisir, ou les vacances, ou le théâtre… comme pour n’importe quel marché public, on ne voit pas ce qui empêcher le privé de se mettre sur les rangs et de dire: je fais mieux et moins cher! La seule réponse à ce défi est dans ce qui fait depuis toujours la légitimité de l’éducation populaire et de l’associatif: la faculté à subvertir. Cela, le secteur marchand ne le fera jamais. (…)
Mais qu’entendons par “subversion”? Seraient-ce les restes du Grand Soir? Non, bien sûr. Cela peut aussi s’appeler citoyenneté, ou politisation ou tout simplement…idéal. Après des décennies où le terrain de la politisation fut occupé par des groupes extrémistes, il peut être utile de rappeler qu’on peut être politisé sans vouloir pendre tous les bourgeois.
L’auteur rappelle alors la déclaration de Villeurbane, rédigée en 1968 par les patrons du théâtre public d’alors avec cette définition de la “subversion” :
“Tout effort d’ordre culturel ne pourra plus que nous apparaître vain aussi longtemps qu’il ne se proposera pas expressément d’être une entreprise de politisation: c’est-à-dire d’inventer sans relâche, à l’intention du non-public, des occasions de se politiser, de se choisir librement, par delà le sentiment d’impuissance et d’absurdité que ne cesse de susciter en lui un système social où les hommes ne sont pratiquement jamais en mesure d’inventer leur propre humanité.” (…)
Tant il est vrai qu’à la fin, la seule question est bien d’humaniser la société.
Jacques Bertin, in Politis, Le retour de l’utopie, hors série, février-mars 2000
This post is the first of a
series dedicated to iOS development.They address to a rather technical
audience, and present aspect or issues encountered when developing
applications on Apple’s devices.
The first post deals with a frequent issue when implementing Apple’s In-App Purchases (IAP). It happens frequently that IAP transactions suddenly stop working, without any visible reason. There can be two steps of failure:
Here’s how to deal with it.
We won’t bother with obvious issues here (like prices not declared on iTunes Connect, wrong product identifiers, invalid test users): the interesting case is the one were everything used to work perfectly, but suddenly errors pop out from nowhere.
The first problem manifests when prices are not retrieved anymore from iTunes Connect. The SKProductsRequest fails with a generic error, although you’re sure your product identifiers and App ID are correct.
It seems that iTunes Connect services are very picky about the clean state of a request. A lot of authentication checks are performed, to be sure that the request is legit. If not, the request fails with a non-descriptive generic error.
So you need to convince iTunes Connect that your app is legit. How to do?
A good idea is to ensure that only a single development Provisioning Profile exists for the application. If your device contains several different Provisioning Profiles that match your application, chances are that iTunes Connect will reject your requests.
To ensure this, the easiest steps are to:
Removing the Provisioning Profiles is done in Settings / General / Profiles (see the screenshot below).
But why deleting the application? Because it contains an embedded Provisioning Profile, that can interfer with the profiles on the device. Plus the StoreKit seems to store some state in the application bundle (like the last logged AppleID for this app), and we want to clear these informations to get a fresh state.
This should do the trick, and your prices requests should work again. If they doesn’t, try any step you can think to make your app look legit: deconnect your device from the test account (Settings / Store), reboot the device, reset the settings… And don’t forget first to ensure you don’t miss something obvious (like no network, invalid product identifiers or mismatched App ID).
Now here is the case when your prices request works, but when you want to test the actual purchase of an item, the SKPaymentTransaction fails with a rather generic “Cannot connect to the iTunes Store” error. It used to work before, so what happened?
The first cause of troubles can be the iTunes Store Sandbox misbehaving. The Sandbox is not the iTunes Connect component with the best uptime: it frequently happens that some requests are dropped, or that the Sandbox fails to validate any request at all.
How can you be sure? Go have a look in the relevant section of the Apple Developers Forums (you need to be a registered Apple Developer for this). Usually, if the Sandbox is down, a lot of developers will be reporting the issue in a thread.
If the Sandbox seems up, it may be that your test user has expired. Apple recently started to invalidate test users after a specific number of transactions. In the best case, you get a message informing you that the user expired — in the worst case, just a generic error.
You may try to re-activate the test user, but it doesn’t always work. The shorter path is to create a new batch of test users, and use them one after another: we one expires, just switch to the next.
Generally speaking, testing with a freshly created test user is one of the best things you can do: it often works, and saves a lot of frustration when transactions refuse to work.
If prices requests fail, try to:
If transaction requests fail:

L’application ePresse est sortie ce matin !
Il s’agit d’un kiosque numérique, qui rassemble neuf titres de presse française dans une seule application iPhone et iPad. On y trouve pour l’instant les éditions quotidiennes de Libération, du Figaro, du Parisien et Aujourd’hui en France, de L’Équipe et des Échos, mais aussi les éditions hebdomadaires du Nouvel Observateur, du Point et de L’Express. Une présentation plus complète est disponible sur iGeneration.
Cette sortie marque pour moi la fin de plusieurs mois de développement et de peaufinage, pour pouvoir au final présenter quelque chose de qualité. Il y a des raccourcis et des imprécisions, bien sûr : c’est une 1.0. Mais n’hésitez pas à me dire ce que vous en pensez !