NewDocumentPlugIn for Mac

NewDocumentPlugIn IconSome times ago, using Leopard, I got tired of having to open an application, create a new file, select where I want it to go, and close the application — just to create a damn new file. I mean, can’t we just have a “New document” contextual menu, just as in Windows, Gnome, KDE, or any decent environment ? Mac users say that eventually, the need for it disappears — just as the need to have “folders first” in the Finder goes off with time and practice. Well, I must agree I can live without “folder first”. But a “New document” menu is a requirement for me.

I didn’t find anything on the Web : forum members are quicker to answer “that’s the way OS X is made, get used to it” than suggesting a solution. I wasn’t aware of NuFile at this time, and I wanted to learn how to create a plugin with CoreFoundation. So I made it myself.

NewDocumentPlugIn adds a “New document” contextual menu to the Finder. You can thus create easily new documents without opening the associated application. It is meant to be simple yet customizable : you can easily add your own templates, just drop an empty file of the wanted type in the “Templates” folder of the plugin. And it is localized in English and French: you can add localizations for the contextual menu labels and for the document names if wanted.

Filename highlighting
exampleThe neat feature that I didn’t see anywhere else is filename highlighting : when you create a new document, the document name is highlighted, in order to customize the name without superfluous keystroke (ensure that AppleScript GUI Scripting is enabled for this).

On the technical side, the plugin is written in C, using the CoreFoundation API — and some bits of Carbon for file manipulation. I could have integrated Cocoa code in there (easier to write and to maintain), but keeping it C-only reduce overheight. Guaranteed without memory leaks. Oh, and it uses AppleScript and GUI Scripting for the “filename highlighting” feature : there is some nice code to execute an AppleScript file from a Carbon program.

The plugin is hosted on Google Code and is Open-Source (MIT Licence). Please read it, recompile it, fork it, whatever you want.

Download NewDocumentPlugin (Mac OS 10.4 to 10.5, 700 Ko)
See the project page on GoogleCode

L'association LIRE recherche des volontaires !

Si certains d’entre vous ont suivi le blog que j’ai tenu pendant mon volontariat au Togo, vous vous souvenez sans doute de l’association LIRE, avec laquelle j’ai beaucoup travaillé, et qui vise à promouvoir la lecture au Togo. Avec cette association de professeurs togolais, nous avions mis en place toute sorte d’activité pour inciter les collégiens à la lecture : les emmener dans les bibliothèques de Kpalimé, organiser des recherches documentaires et des concours, apporter les livres de la bibliothèque ambulante dans les collèges trop éloignés de la ville…

En sept mois, nous avons eu le temps de faire beaucoup de choses, et de nous rendre compte que le projet est motivant, sérieux, tient la route, et surtout donne des résultats concrets : les élèves, progressivement, prennent l’habitude de lire — et croyez moi, il y en a besoin.

Pour continuer toutes ces activités, nous nous sommes dit, en quittant le Togo, que ces gens là auraient bien besoin d’autres volontaires, qui pourraient leur donner un coup de main. On en a beaucoup discuté avec les gens sur place, qui sont très demandeurs — et surtout motivés pour s’impliquer vraiment dans l’accueil de volontaires étrangers.

Bref, vous qui cherchez un projet de volontariat en Afrique, nous avons quelque chose pour vous ! Des gens sympathiques, un hébergement dans des familles, une belle occasion de découvrir l’Afrique et le Togo et de donner un coup de main. Et c’est supervisé par nous, volontaires qui en revenons tout juste, qui avons aidé à monter le projet là bas — enfin qui savons comment se passent les choses là bas.

Si vous n’êtes pas vraiment dans l’optique de partir en Afrique, là, comme ça (je sais, ça arrive), vous pouvez tout de même soutenir les activités de l’association LIRE, notamment dans le cadre du projet de parrainage-lecture : vous achetez quelques livres pour jeunes enfants (entre 3 et 8 ans) dans une libraire, et nous les transmettons à des volontaires européens au Togo qui les liront aux enfants de leur famille d’accueil. Nous avons déjà expérimenté ce projet dans notre famille-hôte, et c’est vraiment fantastique : là-bas, personne ne songe à faire la lecture aux enfants — et pourtant ils adorent ça, en redemandent, se mettent à faire semblant de lire eux-même… Ce contact avec les livres qui se développe très jeune leur manque vraiment, parce que ce n’est pas dans les habitudes des parents ; alors en plus de la joie immédiate des enfants lorsqu’on leur fait la lecture, c’est un bel investissement pour l’avenir.

N’hésitez pas à parler de cette association autour de vous — franchement, c’est un beau projet, et je vais travailler dessus encore un certain temps.

Association LIRE — Promotion de la lecture au Togo

Présentation de ma pomme

Qui suis-je ?

Je suis Pierre de La Morinerie, un passionné d’informatique et de tout un tas d’autres choses. Je travaille en ce moment chez miLibris, où je m’occupe de développement de liseuses numériques sur les appareils iOS. Je suis un peu touche-à-tout, et adore expérimenter de nouvelles technologies.

Que sais-je ?

Du côté logiciel, après avoir fait mes premières armes avec RapidQ (souvenirs souvenirs), j’ai expérimenté le C++ et le Java, avant de découvrir C#, avec lequel j’ai pas mal travaillé, et qui reste mon langage de prédilection. Après mon retour sur Mac, tout en continuant à développer en .NET (merci les machines virtuelles), j’ai commencé à faire quelques bricoles en Python et en LISP ; j’ai également passé un certain temps à tester les fonctionnalités de Cocoa (et à apprendre l’Objective-C, qui est vraiment un chouette langage). En ce moment, je m’intéresse à Flex, et développe un logiciel d’apprentissage des langues anciennes avec une combinaison Flex/AIR.

Côté Web, j’ai fourbi mes armes avec les technologies standard : HTML, CSS, PHP, MySQL. J’ai passé beaucoup de temps à explorer les Frameworks PHP, puis à développer le mien — mais c’était avant de découvrir CakePHP, qui est une vraie merveille. J’ai aussi développé quelques bricoles en Javascript, en utilisant Prototype et script.aculo.us pour faire de jolies choses en AJAX. Enfin j’ai eu l’occasion de développer une grosse application en ASP.NET — mais c’est une technologie qui ne m’a décidément pas convaincu. Alors que Cappuccino, ça c’est quelque chose…

Qu’ai-je réalisé ?

Dans les grandes lignes : des formations, quelques gros projets, et quelques petits utilitaires.

En ce qui concerne les formations, j’ai donné pendant deux ans des cours internes pour les étudiants de la Junior Entreprise de l’ISEP. J’ai formé une centaine d’étudiants à PHP et à C#, en leur apprenant les bases et les éléments nécessaires pour qu’ils puissent aller plus loin seuls. J’ai également réalisé une introduction à la technologie Silverlight (qui, pour archive, a été filmée).

Dans les gros projets, il y a eu :

Et du côté des petits utilitaires, dont je ne suis pas moins fier :

J’ai aussi contribué sporadiquement à quelques projets Open-Source, en envoyant des patchs pour CakePHP, Adium, Wp-Sentry

Et aussi…

Comme il n’y a pas que l’informatique dans la vie, voici ce à quoi j’ai pu également participer :

That’s all folks !

Enfin, c’est tout pour ce que je mets ici — il y a tout le reste, évidemment… Mais c’est déjà pas mal.

UML Fever

En ce moment, je baigne dans les frameworks. J’ai commencé depuis quelques semaines à coder Antigone (souvenez-vous, je vous en avais déjà parlé) ; le projet devenant trop complexe, j’ai finalement dû partir à la recherche d’un framework, et de bonnes techniques d’architecture logicielle. D’où grande piscine plein de design patterns, de découplage et de diagrammes.

Bref, je souffre de fièvre UML. Les cas graves, quand, en somnolant avant de s’endormir, on se surprend à comater : « non, je ne dois pas invoquer directement sleep(), il faut que je passe par mon contrôleur, où est-ce que j’ai mis mon contrôleur, bon sang… Ah, voilà, controller.sleep(), c’est mieux… »

UML Fever
diagram

C’est dur. Quand tout cela sera passé, je songerais à vous parler de Mate, et du délicieux accent argentin de la développeuse qui fait les screencasts. En attendant, renseignez vous : il paraît que la fièvre UML pandémise parmi les développeurs. Méfiance.

Musique

Bon, aujourd’hui, c’est officiel : j’achète des morceaux sur iTunes. Maintenant que les DRM à la noix ont (enfin !) disparus, ça commence à se tenir.

Et puis Graeme Allwright et Pierre Perret sont toujours vivants, quand même, et on peut espérer que leurs contrats stipulent que tout ne va pas dans la poche des majors, même pour des chansons vieilles de 30 ou 40 ans. Alors ça se fait d’acheter, plutôt que d’utiliser le bien pratique discutable Real Downloader ou l’indétectable légal contestable Freezer pour pomper les trucs depuis Deezer.

(En même temps, si même la SACEM dit qu’on peut…)