// Recrutement

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 :-D

Posted in .net, réseau, taf having 757 comments »

// Aujourd’hui, c’est chorégraphie

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 »

// La frustration du développeur

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 »

// 1000 times

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 :D

Posted in .net, dev having 511 comments »

// [aspx] !sql injections

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 »

// (ASP + VB).NET

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 »

// xdebug

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:

sudo pecl install xdebug

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 »

// débrider PHP

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 »

// prompt personnalisé

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):
nouveau prompt 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:

  1. Si tu es dans un dossier contenant un espace, il n’affiche que la partie du nom précédent l’espace
  2. 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 »

About /* No Comment … */

Ivan: la peine de mort, c'est légal ?
Linkmauve: Bah oui, si tu fais un chmod +x sur le prisonnier, t'as le droit de l'exécuter
BashFR.org - Une quote toute seule