Articles

Ouvrir un .nib compilé avec Interface Builder

Écrit le 05/04/2010   conseils   interface builder   mac os x   xcode  

Il vous arrivera peut-être dans votre vie de vouloir vous payer le luxe de regarder un peu, pour des raisons strictement pédagogiques, le contenu des fichiers d'interface d'applications commerciales. Ces packages NIB (car ce sont des packages, qui contiennent des fichiers NIB, mais on ouvre les packages) sont une petite mine d'informations qui peuvent vous éclairer sur la manière de faire telle ou telle chose dans une application, la chose en question étant présente dans une application que vous reluquez comme un sale gros bébé voyeur. Lorsque vous tentez d'extraire un NIB d'une application publiée (prenons Finder.app pour l'exemple, et plus précisément son NIB /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj/PreferencesWindow.nib), et que vous l'ouvrez avec Interface Builder, soudainement votre cœur s'arrête puisque le message suivant se présente à vos yeux emplis de larmes :

Capture_dcran_2010-04-05_11
Ce message peut se traduire en ces termes : tutéféniké. C'est bien votre journée, tiens ! C'était bien le MOMENT de se faire AVOIR comme ça ! Prêt à exploser dans une rage violente et meurtrière, vous prenez le premier insecte venu et vous lui infligez votre regard Scarface, en espérant qu'il ne meure pas de peur tout de suite pour que vous puissiez lâcher complètement votre organe vocal contre le malheureux qui n'a rien fait. Stop, laissez ce lépidoptère à Timon et Pumbaa et lisez plutôt la suite.

Il existe un moyen de récupérer certaines informations...

Lire l'article en entier

Utiliser Xcode pour programmer multiplateforme

Écrit le 10/03/2010   conseils   mac os x   svn   xcode  

Avec un titre pareil, vous devez certainement vous attendre à un baratin qui vous prend pour un(e) nigaud(e) : déjà que vous êtes sur un Mac, pouah, truc de bébé, en plus vous voulez programmer pour devenir un(e) grand(e) qui, et on doit penser que vous savez pas télécharger et installer Xcode même si Xcode c'est pour les gros bébés qui savent pas programmer autrement qu'avec des boutons bleus brillants et des feux tricolores (truc de bébé).

Si vous pensiez cela, vous êtes aussi loin de la vérité que je suis loin de chez moi (notez que ça dépend de la date à laquelle vous me lisez, et je vous conseille de vous dépêcher). J'écris cette petite page pour rapporter un peu mon expérience de Xcode dans un projet qui n'utilise (presque) pas Cocoa, et pour vous montrer comment utiliser Xcode pour vos travaux de développement "ordinaires".

Une histoire dont vous n'êtes pas le héros

Je pense que Xcode a pas mal d'avantages, et je parie que vous en connaissez déjà quelques-uns. L'éditeur est joli, pratique (complétion automatique sympa, code folding...) et intégré à tout le reste (les erreurs sont signalées, par exemple), l'application est légère (alors que mon Netbeans, il est bien sympa mais je crois que j'ai pas dû désactiver l'option qui transforme ma machine en 486) et permet de travailler sur plusieurs projets sans s'arracher les cheveux, ça réagit comme un programme Mac, c'est super génial, tout ça.
Dans le cadre d'un des cours de...

Lire l'article en entier

Renouez avec les CLI récalcitrantes

Écrit le 18/02/2010   conseils   terminal   unix  

Vous connaissez probablement ce problème. Oh oui, vous le connaissez ! Vous utilisez parfois un émulateur de terminal (comme xterm, *term, gnome-terminal, Konsole ou Terminal.app) et vous savez mettre à profit les petits raccourcis du shell, comme la flèche vers le haut pour naviguer dans l'historique, Ctrl+R pour chercher dans cet historique, les touches Début (ou Ctrl+A), Fin (ou Ctrl+e), flèche gauche et flèche droite pour vous déplacer dans la commande actuelle...
Vous savez aussi que sans ces touches le fait de taper dans une CLI (Command Line Interface) est une vraie baguette dans le cul. Et certains programmes ne se gênent pas pour vous le rappeler. Oui, beaucoup de programmes ont la fâcheuse tendance à ne pas proposer tous ces petits raccourcis sympathiques. Lorsque l'entrée standard est lue, par exemple, elle l'est de manière brute, donc adieu les raccourcis d'amour. Pour vous en convaincre, je vous invite à essayer juste l'entrée standard toute simple :
$ cat
pouet
pouet
ah ouais
ah ouais
^[[D^[[A^[[B^[[Cok   
 ok
^[^[^[^[
pourquoi ça marche pas ctrl+c????????
pourquoi ça marche pas ctrl+c????????
arrête de répéter ce que je dis
arrête de répéter ce que je dis
je suis un idiot
je suis un idiot
raaaah mais arrête !
raaaah mais arrête !
Alors, ça vous casse les bonbons ou quoi ? Si vous avez déjà fermé violemment votre émulateur de terminal, je vous rappelle que vous pouviez utiliser Ctrl+D pour fermer l'entrée standard. Voilà

Lire l'article en entier

Stocker automatiquement une jointure dans une table

Écrit le 18/02/2010   conseils   oracle   sgbd   sql  

Une fois n'est pas coutume, j'attire votre attention sur un petit truc tordu à destination des gens qui ont le malheur de toucher à Oracle.

Imaginez-vous avec deux tables R et S dont vous voulez stocker la jointure sur la condition R.aR = S.aS dans une table. Soit, faites-le avec un soupçon de... ceci ?
CREATE TABLE jointurez AS
        SELECT * FROM R, S
        WHERE R.a = S.b;
Il se trouve qu'il existe des cas dans lesquels vous adoreriez que ça marche, mais là où ça ne marche pas. Le cas typique, c'est quand la table R contient un champ de nom pouet, que S contient lui aussi ce champ, mais que vous ne faites pas la jointure sur ces champs ! Dans ce cas, si la sélection à elle seule marche bien, la table ne se créera jamais car le SGBD ne peut pas aplanir les résultats dans une table : il échoue avec l'erreur "y'a deux champs qu'ont l'même nom, ventrebleu" (erreur ORA-666).
Le problème est que si vous pouvez renommer les attributs du même nom de manière à ce qu'il n'y ait pas de conflit, vous ne pouvez sûrement pas le faire de manière automatique (dans un script, dans une application, dans un rêve que vous ne contrôlez pas directement...).
La solution malpropre est de créer une vue intermédiaire qui accueillera le résultat de la jointure, puis de créer la table qu'on voulait comme une sélection d'autant de colonnes que vous voulez de la vue intermédiaire. Ensuite vous pouvez dire au revoir à votre vue.
CREATE OR REPLACE...

Lire l'article en entier

Cacher son adresse mail avec Tinyurl

Écrit le 27/12/2009   conseils   mail   tinyurl  

Cette nuit, lorsque j'étais en train de fixer l'apparence style Louis-XIV sur ce nouveau site au lieu de dormir paisiblement, je me suis attardé sur le lien Contact que vous voyez en haut à gauche. En effet, mon site de départ, fait de mes mains avec CakePHP et tout fonctionnel qu'il était, proposait un lien de contact que je pensais réaliser à l'aide d'un formulaire pour éviter les spam. Évidemment, avec Posterous, c'est possible d'intégrer un formulaire de contact en bidouillant le thème et en faisant pointer le formulaire vers une application logée sur un serveur, mais est-ce bien raisonnable de proposer ce type de contact froid digne d'un site de compagnie aérienne (je dis ça parce que j'ai dû en contacter une récemment) alors qu'on s'apprête à vanter les mérites du système Posterous ? Bien sûr que non.

Et voici la solution pour proposer son adresse mail aux lecteurs en se mettant un peu à l'abri du spam, et en ne condamnant pas les lecteurs à devoir réécrire mon adresse mail parce que je l'affiche comme ceci : adresseAT_ENLEVEZ_CE_AT_CEST_AU_MOINS_CA_QUE_LES_SPAMMEURS_NAURONT_PASserveur.com. Par ailleurs, envoyer un mail étant gratuit, je doute de l'efficacité de cette méthode : un robot collecteur d'adresses pour le spam peut très bien tester toutes les expressions régulières qu'il veut sur les adresses potentielles qu'il trouve, ça ne coûte pas plus cher d'envoyer un mail à une adresse inexistante quand on fait du spam. Alors je ne vais pas vous...

Lire l'article en entier

Synchroniser ses agendas Google avec iCal

Écrit le 04/11/2009   agenda   conseils   google   ical   mac os x  

Ce n'est pas pour reprendre ce qui a dû être abordé sur le web des milliers de fois, mais pour ajouter quelques précisions sur la gestion des agendas que j'écris cet article. En effet, avec Snow Leopard, il est maintenant simple d'ajouter son agenda Google dans iCal, puisque ce dernier fait tout tout seul. Il est même possible de synchroniser le reste des agendas suivis sur Google Agenda en tant que délégués, mais c'est précisément là que le bât blesse. Ces calendriers délégués sont bien jolis, mais par delà le problème de leur nom il existe une chose bien plus ennuyeuse : il est impossible de les utiliser dans d'autres programmes qui utilisent les données d'iCal. Et ça, c'est pas du joli ! Heureusement, il y a une méthode pas trop complexe (pas de SSH, promis) pour les faire reconnaître en tant que calendriers de plein droit.

Synchroniser un agenda

Mais déjà, voyons comment ajouter son agenda Google principal à iCal. La procédure est simple et très rapide avec Snow Leopard.

Media_httpoinnamewpco_kgbmg


Voilà.

Lancez iCal puis dirigez-vous dans les préférences. Vous vous dites qu'il y a peut-être un gros bouton "Synchroniser mon calendrier avec Google" dans le panneau Général, hé bien c'est perdu ! Par contre vous pouvez aller dans le panneau Comptes, qui sert à paramétrer des comptes CalDAV. C'est précisément le protocole qu'iCal utilise pour faire le petit boulot qu'on lui demande de faire. Cliquez sur le petit bouton + pour ajouter un nouveau compte CalDAV...

Lire l'article en entier

Utiliser Gmail à travers SSH

Écrit le 02/11/2009   conseils   gmail   launchd   mac os x   snow leopard   ssh   terminal  

L'objet de cet article est de prolonger celui sur l'utilisation de Gmail avec Fluid. Vous allez certainement vous dire que j'ai un problème avec Gmail parce que je n'arrête pas d'en parler, mais c'est juste parce que c'est mon fournisseur de mails, j'y peux rien ! Toujours en quête de manières efficaces d'utiliser ma boîte mail, je vous avais donc présenté la manière d'utiliser le webmail de façon un peu plus conviviale que directement dans le navigateur, et ce grâce à l'émergence des SSB. Or cette solution, bien que pratique par plusieurs aspects (surtout que le webmail de Gmail est super bien branlé), n'égale toujours pas l'utilisation d'un vrai client mail. On n'est pas tous dans la vague du cloud computing, et c'est pourquoi une alternative existe dans la méthode du tunnelling SSH. Je tiens à remercier kik pour avoir relu cet article et pour m'avoir aidé à corriger certains gros défauts de jeunesse pouvant avoir un impact sur votre sécurité. Remerciez-le !

Les raisons de la colère

Après quelques semaines d'utilisation de cette méthode SSB, j'ai pu constater qu'elle était vraiment casse-bonbons, et ce pour plusieurs raisons :

  • c'est lent de se connecter, d'initialiser Gmail, même hors-ligne
  • le badge, et c'est inhérent à la méthode employée, ne s'affiche que lorsqu'on est sur la boîte de réception
  • toujours pas de drag-and-drop (bien que ce problème puisse être résolu sous Prism ou Firefox avec une petite extension bien placée)
  • une...

Lire l'article en entier

oin? oin.

29186 oins since near 2010.

dubtrip

Fathaya Sound Syndicate

c.oin.name (en construction)

Chez Olivier El Mekki

Mon profil sur Posterous

oin, a join creation icons by fixicon — background by crazy-alice — powered by posterous

Ce site personnel est un fourre-tout qui peut servir de journal personnel, de répertoire de musique, de portfolio, de carnet de notes, de recueil de pensées diverses sur des sujets variés. Les auteurs dévoilent une partie de leur personne et de leurs recherches, afin qu’en retour ils puissent y trouver l’avis d’autres personnes. Les informations que vous trouverez ici sont données sans aucune garantie. Par ailleurs, ouvrir ce site annule la garantie. La musique qui se trouve sur ce site (et non pas celle qui est liée) est sous licence Creative Commons Music Sharing. L’administrateur du site se réserve le droit de vilipender quiconque sur ses terres et de retirer toute participation extérieure qui lui ferait perdre patience.