août 13th, 2009 by Nicolas
Débutant en .NET ?
Déjà un peu de bagage ?
Expert ?
ABAKAAN recrute tous profils, n’hésitez pas à vous faire connaître via le site http://www.abakaan.fr sans oublier de préciser d’où vous tenez l’info, ce serait gentil 
Posted in .net, réseau, taf having 757 comments »
juin 8th, 2009 by Nicolas
Aujourd’hui, deux petites vidéos.
La première, une idée originale de deux jolies demoiselles (enfin, jolies… je suppose vu qu’on ne voit pas leurs têtes). Voir une chorégraphie assez originale sur le morceau harder, faster, stronger du groupe Daft Punk.
La seconde est une scène tout simplement géniale qui s’est déroulée dans la gare d’Anvers, en Belgique. Quand 200 danseurs se pointent au fur et à mesure pour chorégraphier un morceau d’une comédie musicale datant de 1965, c’est quelque chose ! A ne pas rater !
Posted in Non classé having 459 comments »
avril 7th, 2009 by Nicolas
Il était une fois, dans une société lointaine, une jeune développeur nommé Nicolas.
Il officiait en tant que consultant en technologies .NET
Il arrive un matin, tout content car il est parvenu à résoudre son problème technique qui le pesait depuis deux jours. Sentant qu’il va passer une bonne journée, il s’en va faire part de la bonne nouvelle à son patron puisque c’est lui-même qui lui a fait remarquer le dysfonctionnement, deux jours auparavant.
Il entre donc dans le bureau, échange quelques banalités et emmène la conversation vers la fameuse résolution de bug lorsque soudaine, sans crier gare et d’un coup, d’un seul, son patron le coupe net avec un “c’est ton problème, pas le mien, moi je veux que ça marche”.
Peu importe donc que le bug ait été piétiné, ratiboisé puis salement planqué sous un tapis persan ou bien poli, lissé jusqu’à éradication complète de façon nette, précise et chirurgicale… du moment que ça marche !
Avec un si faible niveau d’exigence, faut pas s’étonner que :
- Nombre de logiciels développés en interne ne sont finalement pas vraiment adaptés aux besoins de l’entreprise
- Des bugs fassent leur apparition au bout de quelques mois, sans crier gare
En tant que développeur, on ne fait pas que de la geekerie dans notre coin en manipulant des lignes de code et des réflexions saugrenues nées du croisement entre le cerveau d’un orang-outan et d’un écureuil fou. On s’occupe de votre productivité et de votre confort futurs.
Posted in dev, taf having 1086 comments »
mars 24th, 2009 by Nicolas

Arrivée de la source de cette image dans les flux RSS à droite.
Humour (noir ou pas) et allusions politiques inside.
Posted in Non classé having 955 comments »
// ²
mars 13th, 2009 by Nicolas
Un petit truc rigolo, en passant.
Normal mais rigolo.
En .net, quand on commente une méthode qui avait été commentée au préalable avec le bloc xml généré automatiquement par visual studio (avec une suite de trois apostrophes en vb ou trois / en C#), eh bien, lesdits commentaires sont soulignés comme s’il y avait des erreurs (oui oui, des erreurs dans des commentaires). Bon, c’est normal puisque ces commentaires là sont spéciaux et doivent forcément être attachés à des méthodes, propriétés ou classes.
Conclusion, si tu veux commenter une méthode ou une propriété, tu dois aussi commenter les commentaires. Ca c’est de l’objet ! Tu encapsules même les commentaires 
Posted in .net, dev having 511 comments »
février 27th, 2009 by Nicolas
Qui l’eût cru ? Je commence avec un compliment à propos d’ASP.NET
Je commence à peine à coder la page d’accueil du site Web de mon projet courant et pour le formulaire de connexion, je me demande tout naturellement comment éviter les injections SQL en asp. Je consulte donc la documentation Microsoft et tombe sur la première étape: la sécurisation des entrées utilisateurs.
Jusque là, oui, rien de neuf sous le soleil.
En revanche, c’est à ce moment que je découvre le RegularExpressionValidator, balise asp permettant une validation par regex, à chaud, de la valeur entrée dans un textbox.
Exemple:
1
2
3
4
5
6
7
| <%
<asp:TextBox id="login" runat="server"/><br />
<asp:RegularExpressionValidator id="regexpLogin" runat="server"
ErrorMessage="Incorrect login format"
ControlToValidate="login"
ValidationExpression="^[a-z]+$i" />
%> |
Ce champ ne sera validé que si son contenu respecte l’expression régulière ‘ValidationExpression’. Dans le cas contraire, le message ‘ErrorMessage’ sera affiché dans une balise span.
Sympa, j’aime bien. D’un point de vue design pattern, c’est relativement contestable puisqu’un contrôleur se trouve dans la même page que la vue mais niveau pratique, c’est indiscutable 
Posted in .net, aspx, dev, efrei, sql having 489 comments »
février 26th, 2009 by Nicolas
Ah que coucou,
Pour ma première mission en tant que consultant/développeur chez Abakaan, je travaille dans les bureaux de la section internationale du grand groupe SOCOTEC et suis chargé de mener deux missions.
- La première est une sorte de site Web collaboratif permettant à SOCOTEC et à son client courant de partager des documents et de suivre les évolutions des demandes/offres entre eux. Etant donné qu’un contrat étalé sur trois ans est sur le point d’être signé, ils auront bien besoin d’une plateforme de suivi.
- La deuxième est la deuxième version d’un site web permettant l’échange puis la validation de documents avec (principalement) le Moyen Orient.
Tout ce joli travail sera fait avec le couple magnifique et si sexy qu’est ASP.NET et VB.NET. Eh oui, alors que les quelques billets que j’ai pu écrire il-y-a quelques mois traitaient de Linux et de PHP, ce coup-ci, je me retrouve de l’autre côté de la barrière. Du tout Linux, je passe au tout-Microsoft. Soyons fous
Certes, j’aurais largement préféré coder le code-behind en C# plutôt qu’en Very Bad mais bon, on choisit pas toujours tout. Ceci dit, j’ai pu repérer ici ou là quelques détails sympathiques que je posterai sûrement un jour ou l’autre.
Posted in taf having 525 comments »
août 9th, 2008 by Nicolas
Il s’agit d’une API permettant un débug plus précis que les messages d’erreurs habituels de PHP. Les messages d’erreur sont sensiblement les mêmes mais avec un complément d’informations arrive avec sous forme de tableau.
Par exemple: J’appelle une méthode statiquement mais sans avoir précisé le mot clé “static” dans sa définition.
Voici le résultat de cette erreur
On voit donc l’emplacement mémoire, le temps consommé avant d’arriver à cette erreur; la liste des classes/méthodes traversées avant d’arriver à cette erreur et le fichier où est survenue cette erreur.
Assez sympa non ? En plus, l’installation est on ne peut plus simple. C’est un module disponible dans les dépôts PECL donc sous nunux:
Le package s’installe, bla bla bla.
Une fois ceci fait, il suffit d’aller modifier le php.ini et lui dire d’utiliser xdebug. Pour ce faire, ya juste à ajouter extension=xdebug.so à la suite des autres extensions déclarées dans le php.ini
un ptit reload du serveur et c’est parti 
Posted in linux, outils, php having 484 comments »
août 7th, 2008 by Nicolas
Bonsoâr,
Une petite astuce utile pour développer en PHP est de lui dire d’afficher vraiment TOUTES les erreurs de code qu’il trouve. Par défaut, il n’affiche que les “fatal error” et “warnings”. C’est aussi bien de lui dire d’afficher les “notifications”. Souvent, elles arrivent lorsqu’on utilise des variables non déclarées dans un premier temps. Pour ça, il suffit de modifier le fichier php.ini.
Sous nunux:
--{nicolas}-------------------------{nicolas@oogieboogie}--
`--> cd /etc/php5/apache2/
--{apache2}-------------------------{nicolas@oogieboogie}--
`--> ls
conf.d php.ini php.ini.ucf-old
--{apache2}-------------------------{nicolas@oogieboogie}--
`--> emacs php.ini &
Ensuite, vers la fin du fichier, il faut lui dire d’afficher tous les niveaux d’erreurs. Les différents niveaux sont décrits dans la section “Error handling and loggin” vers 1/4 du fichier. Pour afficher toutes les erreurs, à la fin de la section, ajoute la ligne:
error_reporting = E_ALL | E_STRICT
et c’est torché. Ya plus qu’à relancer le serveur.
--{apache2}-------------------------{nicolas@oogieboogie}--
`--> sudo /etc/init.d/apache2 restart
* Restarting web server apache2 [ OK ]
Voili voilou
Posted in dev, linux, php, shell having 441 comments »
août 6th, 2008 by Nicolas
J’ai récemment eu l’envie de refaire mon prompt dans mon shell linux. En fait, j’utilise yakuake, un petit outil qui permet d’avoir un terminal qui apparaît lors d’une pression sur une touche personnalisée. Il apparaît et disparaît depuis le haut de l’écran et descend jusqu’à une hauteur prédéfinie. C’est d’autant plus pratique que l’on peut le spliter et donc avoir plus d’un terminal sur la fenêtre. Petit défaut cependant: il ne marche correctement que sous KDE et les autres alternatives pour gnome (tilda & guake) ne m’ont pas satisfait mais ce n’est que mon opinion.
Donc, le prompt en lui même, voilà à quoi il ressemble maintenant (dans yakuake):

En gros:
–{dossier_courant}———————————-{user@host}–
`–>
Ce qui permet d’avoir toutes les informations intéressantes (le dossier courant, sous quel user et sur quelle machine on est connecté) tout en ayant un prompt court. On peut donc taper de longues commandes ou ayant une longue sortie sans que ça aille toujours à la ligne. Bref, j’avoue, c’est aussi et surtout pour m’essayer au script shell que j’ai pondu ça.
Voilà le script:
1
2
| # fichier .bashrc
PS1="\033[37m\]\`~/.reloadps1.sh\`" |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| # fichier .reloadps1.sh
#!/bin/bash
reloadPS1()
{
PS1="--"
if [ "$3" = "root" ]; then
PS1=$PS1"{\033[38m\]$2\033[37m\]}"
else # else, in cyan
PS1=$PS1"{\033[36m\]$2\033[37m\]}"
fi
# 4{ or }
# 1 @
# 2 first -
# 2 last -
# = 9
for (( i = 0 ; i < $1-${#2}-${#3}-${#4}-9 ; i++ ))
do
PS1=$PS1"-"
done
# -------------
PS1=$PS1"\033[0m\]"
# end the grey color
# if user is root, the curent directory is tagged in red
if [ "$3" = "root" ]; then
PS1=$PS1"{\033[38m\]$3@$4\033[0m\]}"
else # else, in cyan
PS1=$PS1"{\033[36m\]$3@$4\033[0m\]}"
fi
# ------------{curent_dir}
PS1=$PS1"\033[37m\]--\033[0m\]"
# ------------{curent_dir}--
PS1=$PS1"\n\`-->"
# ------------{curent_dir}--
# \`-->
echo "${PS1}"
}
# determines the number of columns. $COLUMNS is unreachable here
nbCols=`stty -a | grep columns | sed "s/^.*columns[ =]*\([0-9]*[^;]\).*/\1/"`
# returns the host name
hostName=`hostname`
# returns the curent directory without the path to
dir=`basename $PWD`
# function call with parameters
myPrompt="`reloadPS1 ${nbCols} $dir $USER ${hostName}`"
echo -e ${myPrompt}|>" " |
Inconvénients:
- Si tu es dans un dossier contenant un espace, il n’affiche que la partie du nom précédent l’espace
- Il ne passe pas nickel sous tous les terminaux. Sous la konsole et xterm, pas de soucis mais sous gnome-terminal, il ne passe pas en raison des caractères \033 qu’il interprète mal :-/
Posted in dev, linux, shell having 567 comments »