7/2/10

irb and console rails vim powered


 

Utiliser vim avec l'irb ou la console Rails, ça vous tente ?

Pourquoi n'est-ce pas natif ? c'est tellement pratique voire indispensable qu'on est en droit de se poser la question :)


Installer 'interactive_editor'

gem install interactive_editor

 

Modifier son .irbrc

On ajoute un p'tit require à son .irbrc :

require 'rubygems' # si ligne absente de votre .irbrc
require 'interactive_editor'

et... c'est tout ! On peut enfin travailler confortablement avec l'irb ou une console Rails. Magique, je dis... :)

 

6/26/10

vim and screen 256 colors - MacOS X Snow Leopard


Nature du problème

Je souhaite utiliser des thèmes 256 couleurs avec Vim et plus spécifiquement le thème railscasts que j'utilisais sous Linux (thème d'origine TextMate utilisé par Ryan Bates pour ses screencasts). Vim et iTerm sont capables d'utiliser des thèmes 256 couleurs. Concernant iTerm, il suffit de choisir 'xterm-256color' dans la section 'Terminal Profiles'. Quant à Vim, il suffit d'ajouter set t_Co=256 à son .vimrc.

Attention, le Terminal livré avec Leopard ne supporte toujours pas un mode 256 couleurs. De toute façon, vous avez tout à gagner à passer à iTerm si ce n'est pas déjà fait (full screen, profiles à gogo suivant l'activité, etc...)

Le réel problème vient de la version de screen livrée avec Leopard qui ne supporte pas le mode 256 couleurs. Evidemment, comme j'utilise à outrance 'screen', c'est plus qu'ennuyeux de se retrouver avec un Vim en mode dégradé (surtout lorsqu'on épluche du code Rails à gogo comme c'est mon cas depuis plus d'une semaine). J'ai donc craqué et pris le temps de recompiler 'screen' avec le support du mode 256 couleurs.


Choix des sources

A défaut de faire correctement son boulot pour les utilitaires et logiciels en ligne de commande, Apple propose, sans doute pour se faire pardonner, des pages sur les logiciels Open Source utilisés pour le Mac. Je suis donc parti des sources de 'screen' pour Mac OS X version 10.6.4.

Je récupère également les sources du 'screen' correspondant à la version '10.6.2' car il manque 3 patches à la version '10.6.4' pour qu'on puisse le compiler correctement en ligne de commande. Les autres patches sont inutiles car les fichiers précédemment concernés ont déjà été modifiés (ils sont __APPLE__ powered ^^).


Lignes de commande en mode Canal+

J'ai choisi d'utiliser des commandes qui paraitront un peu 'cryptées' pour la plupart. Compiler un programme n'a rien de passionnant, alors autant apporter un peu de fun 'bash' pour le faire. Il suffit de copier les lignes qui suivent en respectant l'ordre et sans rien taper de plus entre chaque commande pour que ça se passe parfaitement (copier-coller roxe des mamans ours). Une ligne est fortement exagérée (celle du 'cd') et j'avoue que je ne l'aurais jamais tapée si ce n'était pour l'exemple et par nostalgie (cette ligne me rappelle la belle époque du Obfuscated Perl Contest).


Compilation et installation de 'screen'

cd
mkdir -p src/tarball && cd !#:2:h
wget http://www.opensource.apple.com/tarballs/screen/screen-19.tar.gz -O tarball/!#:^:t
wget !*:gs/9/6
tar xvzf !$:gs/6/9
mkdir !$:t:r:r/patches
tar xvzf !w:$ -C !$ --strip-components=2 *.diff
cd !mk:$:h/!#:$:h:gs/-19/
patch -p0 < ../patches/Makefile.in.diff
patch -p0 < ../patches/config.h.in.diff
patch -p0 < ../patches/configure.diff
./configure --enable-locale --enable-telnet --enable-colors256 --enable-rxvt_osc --prefix=/usr/local --disable-dependency-tracing
make
sudo make install

Modification du .screenrc

Il suffit d'ajouter ces lignes à son .screenrc (comme indiqué dans l'en-tête de railscasts.vim)

attrcolor b ".I"
termcapinfo xterm-color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defbce "on"
term screen-256color-bce
xterm-color doit correspondre à la réponse de echo $TERM

Utiliser son nouveau 'screen'

Je ne préfère pas toucher à l'installation d'Apple car je n'ai pas envie qu'une prochaine mise à jour vienne me compliquer la vie ^^. Pour utiliser des programmes recompilés (et donc, déjà existants sur le système), j'opte généralement pour l'utilisation de mon ~/bin. Il n'existe pas par défaut, il faut donc le créer si vous ne l'avez pas déjà fait.

mkdir ~/bin

Depuis son ~/bin, on fait simplement un lien vers son 'screen'.

ln -s /usr/local/bin/screen-4.0.3 screen

Si ce n'est pas déjà fait, on ajoute enfin son ~/bin à son PATH (dans son .bashrc ou son .bash_profile) en s'assurant qu'il sera bien le premier à être interrogé.

if [ -d ~/bin ]; then
    export PATH=~/bin:$PATH
fi

which screen doit vous dire que le système utilisera bien le screen nouvellement installé.

That's all.

5/28/10

Installer PyQt 64bits - MacOS X Snow Leopard


Récupérer et compiler les sources de Qt

wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz
tar xvzf qt-everywhere-opensource-src-4.6.2.tar.gz
cd qt-everywhere-opensource-src-4.6.2
./configure -arch x86_64
make
sudo make install

A partir du make, on peut aller prendre un café, promener le chien, faire son ménage et faire ses courses. Prévoyez environ 3h30 de compilation... (pour un iCore5).

Récupérer et compiler SIP

wget http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.10.2.tar.gz
tar xvzf sip-4.10.2.tar.gz
cd sip-4.10.2
python configure.py
make
sudo make install

Récupérer et compiler PyQt

wget http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-mac-gpl-4.7.3.tar.gz
cd PyQt-mac-gpl-4.7.3
python configure.py -q /usr/local/Trolltech/Qt-4.6.2/bin/qmake
make
sudo make install

C'est tout, on a une jolie version de PyQt 64b qui roxe des mamans ours.

$ python -c 'import PyQt4; print PyQt4'
<module 'PyQt4' from '/Library/Python/2.6/site-packages/PyQt4/__init__.py'>

Compiling Vim 7.2 - Mac Snow Leopard


Afin d'éviter des commentaires inutiles, je connais l'existence de MacVim mais je ne veux pas l'utiliser pour différentes raisons.

Pourquoi compiler une autre version de Vim ?

Par défaut, la version de Vim livrée avec Snow Leopard ne supporte pas l'interpréteur ruby et python. Je ne comprends pas pourquoi Monsieur Apple ne compile pas ces options pour Vim alors qu'il livre par défaut une version de Ruby et Python. C'est plutôt incohérent.

Je me fais ici un bloc-notes (comme souvent) qui pourra servir à d'autres.

Récupérer les tarballs de Vim 7.2

On récupère tous les tarballs pour disposer d'une version francisée et également pour pouvoir appliquer les patches sur les sources :

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz

Déployer les sources de Vim 7.2

bzip2 -dc vim-7.2.tar.bz2 | tar xvf -
tar xvzf vim-7.2-extra.tar.gz
tar xvzf vim-7.2-lang.tar.gz

Appliquer les patches

Les patches pour Vim 7.2 se récupèrent sur ftp://ftp.vim.org/pub/vim/patches/7.2/.

mkdir vim72-patch && cd !$
wget ftp://ftp.vim.org/pub/vim/patches/7.2/*

On applique un patch en tapant patch -p0 < ../vim72-patch/7.2.001 (en étant dans le répertoire vim72 bien évidemment). Comme il y a, à ce jour, plus de 400 patches, il est vivement conseillé de se faire un script pour ne pas y passer trop de temps. Pour information, la version de Vim livrée avec Snow Leopard ne comporte que les 108 premiers patches. J'ai personnellement appliqué tous les patches car il y a quand même quelques patches plus que nécessaires après le 108.

Préparer un fichier avec ses options de compilation

Créer son fichier avec ses options de compilation est amha le moyen le plus efficace pour modifier ses options et/ou appliquer ses options sur une prochaine version de Vim (on met juste le fichier de côté pour une utilisation ultérieure). Voici le contenu de mon fichier vim_comp_options :

export CONF_OPT_X="--without-x"
export CONF_OPT_GUI="--disable-gui"
export CONF_OPT_PYTHON="--enable-pythoninterp"
export CONF_OPT_RUBY="--enable-rubyinterp"
export CONF_OPT_CSCOPE="--enable-cscope"
export CONF_OPT_MULTIBYTE="--enable-multibyte"
export CONF_OPT_COMPBY="--with-compiledby='Bruno Carrere'"

Il suffit de sourcer le fichier depuis le term utilisé pour configurer et compiler Vim en tapant :

source path_vers_fichier/vim_comp_options
Vous pouvez contrôler que les options de configurations sont bien prises en compte en tapant env|grep CONF.

Configuration et compilation de Vim

cd vim72/src
make config
make
sudo make install

Pour ceux qui ne veulent pas appliquer les patches

Dans ce cas, on rencontre pas mal de soucis et il faut procéder à des aménagements au niveau des options de compilation.

On commence classiquement :

cd vim72/src
make config

On édite ensuite le /vim72/src/auto/config.mk comme suit :

DEFS            = -DHAVE_CONFIG_H -D_FORTIFY_SOURCE=0
CFLAGS          = -g -Os -pipe -mdynamic-no-pic
LDFLAGS         = -L. -arch x86_64  -L/usr/local/lib
puis on procède normalement pour la fin :
make
sudo make install

Je ne conseille vraiment pas cette méthode mais je la renseigne quand même car j'ai vu sur le net pas mal de personnes ayant des soucis avec la compilation de Vim dès lors qu'on n'applique pas les patches et qu'on se cantonne à une base 7.2 (et non 7.2.438 en appliquant tous les patches).

Vim PoWa !

5/18/10

Mettre à jour le JDK Java sur Debian Lenny



C'est une vidéo en live, je n'ai pas réalisé de montage. Du coup, comme il s'agit d'une vieille machine de test, je suis désolé pour le passage concernant la construction du paquet qui est un peu long. :/ J'espère juste que votre machine est plus rapide que mon vieux bousin :)

Si vous avez déjà installé la version Java fournie par la distribution (cf 1. & 2.), vous pouvez directement vous rendre au point 3.


1. Modifier son sources.list

Avant de commencer, il faut d'abord s'assurer qu'on a accès aux dépôts complémentaires (les paquets Java sont dans non-free et java-package est dans contrib). Modifiez votre /etc/apt/sources.list en conséquence.

deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
On update ses sources :
# apt-get update


2. Installer le JDK 6 Debian

Pour maintenir Java, on va s'appuyer sur certains fichiers fournis par l'installation standard de la Debian. Dans un premier temps, on va donc installer le JDK 6 Java classiquement. A ce jour, c'est l'update 12 qui sera installée via le dépôt non-free.

# apt-get install sun-java6-{jdk,plugin}
# update-java-alternatives -s java-6-sun
Pour contrôle :
$ java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

On vérifie que c'est fonctionnel en se rendant sur java.com.


3. Générer et installer le dernier JDK

a. On récupère le dernier JDK chez Sun (Oracle). Rien de particulier à ce niveau, il suffit de se laisser guider.

b. On installe ensuite le paquet java-package

# apt-get install java-package

c. Avant de pouvoir générer le paquet contenant la mise à jour, on va corriger un fichier qui pose soucis sur Lenny car il ne prend pas en compte plus de 9 update pour Java 6 (c'est balot :/).

# vi +48 /usr/share/java-package/sun-j2sdk.sh
et modifier la ligne comme suit :
"jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED
Modification de la ligne 49 :
j2se_version=1.6.0+update${archive_name:6:2}${revision}
Suivant votre architecture, vous serez amenés à modifier les lignes 91-92 (pour amd64) ou 96-97 (pour x64).

d. On passe maintenant en mode utilisateur et on génère la paquet à partir des sources du téléchargement

$ fakeroot make-jpkg /chemin_vers_jdk_sun/jdk-6u20-linux-i586.bin

e. On repasse en root et on installe le paquet généré

# dpkg -i sun-j2sdk1.6_1.6.0+update20_i386.deb


4. Finaliser l'installation

Malheureusement, le paquet généré à l'aide de java-package ne permet pas d'utiliser tel quel update-java-alternatives. Il faut donc procéder à quelques aménagements.

a. On link notre nouveau JDK dans /usr/lib/jvm

# cd /usr/lib/jvm
# ln -s /usr/lib/j2sdk1.6-sun j2sdk1.6-sun

b. update-java-alternatives a besoin de son fichier .jinfo. Comme il n'est pas généré automatiquement par l'installation de notre paquet 'maison', on va le créer en s'appuyant sur celui qui existe pour java-6-sun

# cat .java-6-sun.jinfo|sed -e 's/java-6-sun[0-9\.-]*/j2sdk1.6-sun/'|sed -e 's/java-6-sun/j2sdk1.6-sun/'|sed -e 's/63/65/' > .j2sdk1.6-sun.jinfo

c. update-java-alternatives positionne l'alternative mais ne la crée pas. On doit donc préalablement créer les alternatives. Cela peut être très fastidieux compte tenu du nombre d'alternatives à créer pour Java. Il est finalement plus rapide et confortable d'utiliser un script créé pour l'occasion :

#!/bin/sh
# install-alternatives-for-java-package.sh
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# modifier jdiralias pour les futures version de Java (1.7 ?)
jdiralias=j2sdk1.6-sun
######################

priority=65
basedir=/usr/lib/$jdiralias
basediralias=/usr/lib/jvm/$jdiralias
jre_tools='ControlPanel java java_vm javaws jcontrol keytool pack200 policytool rmid rmiregistry unpack200 orbd servertool tnameserv'
jdk_tools='HtmlConverter appletviewer apt extcheck idlj jar jarsigner java-rmi.cgi javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc'
browser_dirs='xulrunner-addons firefox iceape iceweasel mozilla midbrowser xulrunner'
PLUGIN=libnpjp2.so
PLUGINPTH=/usr/lib/jvm/$jdiralias/jre/lib/i386/$PLUGIN

for i in $jre_tools; do
    update-alternatives \
        --install \
        /usr/bin/$i \
        $i \
        $basediralias/jre/bin/$i \
        $priority 
done

for i in $jdk_tools; do
    update-alternatives \
        --install \
        /usr/bin/$i \
        $i \
        $basediralias/bin/$i \
        $priority 
done

for browser_dir in $browser_dirs; do
    if [ $browser_dir = xulrunner-addons ]; then
        browser=xulrunner-1.9
    else
        browser=$browser_dir
    fi
    update-alternatives --quiet --install \
        /usr/lib/$browser_dir/plugins/libjavaplugin.so \
        $browser-javaplugin.so \
        $PLUGINPTH \
        $priority
done

    update-alternatives \
        --install \
        /usr/bin/jexec \
        jexec \
        $basediralias/jre/lib/jexec \
        $priority 

exit 0

d. On lance le scipt qui va créer les alternatives à notre place :

# ./install-alternatives-for-java-package.sh

e. Finalement, on utilise update-java-alternatives pour mettre à jour les alternatives avec notre nouveau JDK :

# update-java-alternatives -s j2sdk1.6-sun
$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

Tout cela peut paraître un peu long pour une mise à jour mais il n'en est rien (la vidéo le démontre puisqu'il faut moins de 10mn pour tout installer). De plus, pour les prochaines mises à jour, on pourra s'arrêter au 3. (tout le 4. devenant inutile tant qu'on ne passe pas à un Java 7 :p).

En résumé, des efforts minimes pour tenir à jour proprement son JDK "à la Debian".

5/12/10

Jouer à World of Warcraft sous Debian Lenny


Le résultat est plutôt bluffant compte tenu de la carte graphique :

$ lspci|grep nVidia
01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)
et du processeur :
model name : Intel(R) Pentium(R) D CPU 3.00GHz
On joue à WoW avec une fluidité et une qualité graphique difficilement soupçonnables compte tenu du matériel. Même si la vidéo peut laisser penser que c'est parfois saccadé, il n'en est rien, tout est d'une fluidité remarquable (l'encodage se fait avec 15 img/s ce qui provoque quelques désagréments visuels). On peut bien évidemment jouer en plein écran avec le même confort, WoW a juste été fenêtré le temps de la vidéo.

5/11/10

Chrome, Iceweasel et Flash - 05/10


Je suis obligé de passer quelques jours sur un autre système qu'OS X en attendant avec impatience l'arrivée de mon nouveau MacBook Pro. Ne pouvant toujours pas calmer mon urticaire à la vue d'un windows, je remonte rapidement une Debian Lenny Desktop (Ubuntu aussi me file des boutons, désolé, je suis Debian et Mac addict).

Certaines choses ne me manquaient absolument pas ces 2 dernières années au niveau du desktop. En autres, les galères avec cette technologie douteuse qu'est 'flash'. Vivement qu'HTML5 remplace tout ce qui ressemble de près ou de loin à du flash.

Je voulais simplement écouter de la musique sur Deezer avec Chrome et là... patatra... navigateur quasi gelé allant jusqu'au reboot de la session X. Burp ! J'apt-get donc un iceweasel et là, carrément pas de flash comme il se doit sur un système libre (sors de ce corps vieux barbu !).

J'ai donc repris mes vieilles habitudes de 'linuxien goret'.

Tout d'abord, j'ai téléchargé la version du flashplayer en tarball. Ensuite, il suffit de créer un répertoire dans /usr/lib pour y déposer le contenu du tarball.

# mkdir /usr/lib/flashplayer && cd !$
# tar xvzf path_vers_tarball/install_flash_player_10_linux.tar.gz

Iceweasel


On linke simplement la lib du flashplayer d'Adobe à Iceweasel
# cd /usr/lib/iceweasel/plugins
# ln -s /usr/lib/flashplayer/libflashplayer.so libflashplayer.so
C'est tout. Après avoir redémarré Iceweasel, about:plugins (dans la barre d'adresse du navigateur) doit annoncer que flash est installé (2 lignes : Shockwave Flash et FutureSplash Player)

Google Chrome


Même principe sauf qu'on va remplacer la lib utilisée par défaut par celle qu'on a récupérée (en lui donnant évidemment le nom de la lib d'origine utilisée par Chrome).
# cd /opt/google/chrome
# mv libgcflashplayer.so libgcflashplayer.so.orig
# ln -s /usr/lib/flashplayer/libflashplayer.so libgcflashplayer.so

Comme on dit, "chez moi ça marche". Si vous avez une autre solution, n'hésitez pas à lâcher votre commentaire.

5/10/10

Installer compiz-fusion sur Debian Lenny - 05/10


Une commande qui commence par # est exécutée en tant que root
Une commande qui commence par $ est exécutée avec votre compte utilisateur.

Nvidia


Tout d'abord, pour ceux qui ont une carte Nvidia, voici la marche à suivre pour respecter le Debian-Way.

Ajouter les dépôts pour 'contrib' et 'non-free' dans son /etc/apt/sources.list :
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
suivi d'un :
# apt-get update
Installer le nécessaire pour compiler le module
# apt-get install build-essential nvidia-kernel-common module-assistant mesa-utils
et générer le module par :
# module-assistant auto-install nvidia
Si certains paquets manquent, ils devraient être installés.

Charger le module :
# modprobe nvidia
Ajouter dans son /etc/X11/xorg.conf (faites auparavant une copie de votre xorg.conf, on ne sait jamais ;) la section Module
Section "Module"
  Load "glx"
EndSection
puis fermer la session.

Ouvrir une session et depuis un Term, lancer la commande :
$ glxinfo|more
Une ligne de la sortie devrait indiquer :
direct rendering: Yes
(dans la foulée, on peut aussi essayer glxgears)

Compiz


Installer les paquets nécessaires :
# apt-get install compiz
puis modifier son fichier xorg.conf.

Ajouter à la section Device les lignes suivantes :
Driver "nvidia"
Option "AddARGBGLXVisuals" "True" 
Option "AllowGLXWithComposite" "True"
Ajouter à la section Screen :
DefaultDepth  24
Créer une section Extensions :
Section "Extensions" 
  Option "Composite" "Enable" 
EndSection
Pour inscrire compiz en tant que Window Manager par défaut :
$ echo "export WINDOW_MANAGER=/usr/bin/compiz" >> ~/.gnomerc

cet article a été écrit avec le rustre gnome-blog-poster pour tester.

4/23/10

Premature end of script headers


Configuration :

Une méthode POST ne fonctionnait pas et l'erreur Apache était "Premature end of script headers". Erreur totalement inexplicable, à s'arracher les cheveux. La documentation d'Apache sur cette erreur est d'ailleurs plus que laconique.

Après des tests interminables, j'ai finalement upgradé Passenger vers la version 2.2.11 et tout est rentré dans l'ordre sans pour autant que je ne comprenne vraiment d'où venait cette erreur.

En ce moment, j'ai un talent fou pour perdre du temps avec ce que j'appellerais “des conneries” :/ Grand gagnant au tirage au sort des bugs en tous genres.

4/8/10

Le cache de pages avec Sinatra


Le cache de pages avec Sinatra est extrêmement simple avec le gem sinatra-cache.

require 'sinatra/base'
require 'sinatra/cache'

class MyClass < Sinatra::Base
 
  set :root, 'full_path_vers_mon_app'
  register(Sinatra::Cache)
  set :cache_enabled, true
  set :cache_output_dir, 'full_path_vers_mon_cache'

... / ...

end
Si on utilise Passenger, le minimum fonctionnel pour le fichier de conf est :
RewriteEngine On
RewriteRule ^([^.]+)$ /mon_cache/$1.html [QSA]
Pour purger une page en cache cache_expire('/path_vers/ma_page').

4/7/10

Bundler : un must-have du développeur ruby


gem Bundler  gem vraiment beaucoup !

Ryan Bates le présente dans un de ses screencasts dans le cadre de Rails 3 mais c'est tout aussi pratique (sinon plus) lorsqu'on développe un petit projet sans Rails.

DataMapper master branch is now compatible with both active_support and extlib


DataMapper master branch is now compatible with both active_support and extlib


humm... humm... à condition d'avoir une version 1.8.7 de Ruby. Je ne sais plus où j'avais lu que la compatibilité avait été testée avec une version 1.8.6 de Ruby mais chez moi, ça ne marche pas :/

J'ai donc du upgrader la version de Ruby de 1.8.6 (patch 287) à 1.8.7 (patch 173) sur un serveur pour que cette news devienne une réalité car, sans cela, extlib (0.9.4) et activesupport (2.3.5) ne faisaient vraiment pas bon ménage (sur un serveur Debian Etch qui commence par dater, il est vrai :p).

Si ça peut éviter à quelqu'un d'autre de chercher quelques longues minutes... ^^

3/26/10

Modifier __MyCompanyName__ dans Xcode


Par défaut, Xcode récupère correctement le nom de l'utilisateur mais renseigne __MyCompanyName__ pour le nom de l'entreprise.

//
//  CooptAppDelegate.m
//  Coopt
//
//  Created by Bruno Carrere on 26/03/10.
//  Copyright __MyCompanyName__ 2010. All rights reserved.
//

Pour modifier __MyCompanyName__, il faut passer par le Terminal et entrer :

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions  '{"ORGANIZATIONNAME" = "LE_NOM_DE_MON_ENTREPRISE";}'

(en remplaçant évidemment LE_NOM_DE_MON_ENTREPRISE par celui qui convient dans votre cas.)

Si quelqu'un dispose d'une solution graphique pour modifier cette variable, qu'il n'hésite pas à se manifester ^^