mai 16

Memo perso :
regexp pour matcher tous les liens d’une page.

$regex = "/<\s*[a|area]\s+.*href\s*=\s*[\"|']([^#]*)[\"|']/isU";
preg_match_all($regex, $html, $links);

J’ai choisi de ne pas inclure les ancres ([^#]*)

\\ tags: , , , ,

mai 05

Je me suis mis à rails depuis quelques semaines et pour être franc, je galère pas mal sur la syntax ruby.
L’utilisation du framework rails demande très peu d’écriture de code ruby complexe mais quand ca arrive… je lutte :)

Vous connaissez surement le site php.net et sa syntaxe particulière qui vous permet de trouver de la doc rapidement ?

ex: php.net/myFunction => vous redirige vers la doc de la fonction myFunction.

En PHP on peut très difficilement se passer de doc puisque la coutume veut que les haystack et les needle changent parfois de place ;) .

J’ai découvert récemment railsforphp.com qui vous donne la correspondance php <=> rails de pas mal de commandes

http://railsforphp.com/myFunction permet d’afficher la page qui va vous montrer comment faire en ruby pour avoir l’équivalent de myFunction en php.

Comme bien souvent un screenshot (cliquable) est plus parlant:


capture de railsforphp.com

\\ tags: , , , , ,

mai 04

Voici un outil très bien conçu et absolument indispensable quand vous avez pas mal de regex à écrire , il permet, via une interface simple et pratique de tester votre regex dans différents langages tel que PHP, perl, Python et Javascript.
Ça permet réellement de gagner du temps.

Voici le fonctionnement :

  • Vous choisissez le langage dans lequel votre regexp sera utilisé.
  • Vous entrez le texte à comparer ou reconnaitre.
  • Vous choisissez vos options
  • Vous entrez votre regexp.

Lors de la saisie du regexp:

  • Les correspondances dans votre texte “source” sont mises en surbrillances
  • La ligne de code, prête à être copiée dans le langage choisi, s’affiche.
  • Le résultat de l’opération effectuée par cette même ligne de code s’affiche.

Voici une petite capture (cliquable):


capture de regex.larsolavtorvik.com

Bon, c’est plus simple d’aller voir par vous même en fait :
regex.larsolavtorvik.com

\\ tags: , , , , , , , ,

avr 22

Voici un petit script de surveillance des logs apache dont je me sert pour vérifier de ne pas me faire leacher :

#!/bin/bash

HIT_MAX=100;
LOG_PATH="/var/log/apache2";

for i in `sed -e  's/^\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\s.*$/\1/' \
  $LOG_PATH/*.log | grep -v '[::alpha::]'  | sort -u`
  do
    HIT=`grep  $i $LOG_PATH/*.log | wc -l`
    if [ $HIT -gt $HIT_MAX ]; then
      echo "$HIT times  ; $i" ;
    fi
done;

Pour résumer, ce script envoi simplement une liste d’ip trouvé >HIT_MAX dans LOG_PATH/*.log comme suit:

153 times ; 80.154.37.173
150 times ; 81.251.61.124

\\ tags: ,

avr 21

Pour avoir vu pas mal de pratiques différentes sur l’utilisation de librairies externes dans un projet, voici un memo sur l’utilisation de repository externes : svn externals

Les svn externals permettent d’utiliser un repository de composants externes à votre projet et d’en utiliser le versionning. Vous pouvez choisir de mettre à jour ou non ce composant externe quand bon vous semble. Vous maitrisez ainsi l’évolution de vos composants indépendamment ou non du versionning de votre projet.

Comme pour tout projet versionné, vous pouvez figer (svn tag) votre application et les composants externes à une release.

Vous souhaitez par exemple ajouter MyPlugin dans votre projet :

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT"

ou

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT" AllPlugins/

Voici ce que ca donne, par exemple, avec le composants simple_captcha pour Ruby:

svn propset svn:externals "simple_captcha svn://rubyforge.org/var/svn/expressica/plugins/simple_captcha"

Vous pouvez vérifier la création de ce lien avec un

svn status

et devriez voir la lettre X devant le répertoire crée (ici, MyPlugin). Faite ensuite un

svn up

pour aller chercher les fichiers de ce composant externe dans le repository:

Fetching external item into 'MyPlugin'
External at revision X.
\\ tags: , , ,

avr 08

Parce qu’il me faut toujours 2 heures pour le retrouver, cette fois je le note :)

find . -type f -regex ".*\ .*" \
                -exec bash -c 'echo "$1";mv "$1" "${1// /-}"' '{}' '{}'  \;

Ceci vous permet de trouver et de renommer un fichier avec un espace.
Ici on remplace l’espace par un tiret.

\\ tags: , , , , , , ,

mar 07

Quoique en même temps quand on ose dire qu’on fait du spamdexing en collaboration avec google … n’est-ce pas dicodunet ?

\\ tags: ,

fév 28

Allons voir ce nouveau site au design plus que pas mal : www.myphotos.fr

Le test du %

le fait d’inserer % dans le moteur de recherche produite, en général, une requête du genre :

select … from … where … and … = ‘%’ // ce qui est toujours vrai puisque % est un wilcard en mysql.

Voyons voir le resultat :

Cool : la liste des membres et de toutes les photos :)

Ceci est dangereux pour plusieurs raisons :

  • Page très lourde à générer et à transporter donc : problème de charge serveur et lenteur coté client.
  • on a la liste des membres, on peut très facilement aller chercher toutes les photos de tous les membres pour se faire une photothèque perso.
  • quand vous aurez 10 000 membres et 500 000 photos (voir beaucoup moins) le serveur sera incapable de générer cette page.

Pas d’info ??? et pourquoi ca ?

Continue reading »

\\ tags: , , ,

fév 24
for i in `find -iname *.zip `; do unzip -o $i -d `dirname $i`; done;
\\ tags:

jan 28

Parfois pour des besoins divers je suis “obligé” d’utiliser windows. J’ai pas réussi à me faire à gimp, j’utilise donc photoshop.

Pour intégrer quelques pages HTML, j’ai du choisir un éditeur de texte => VIM pour windows mais horribbbbbleeee : par défaut le fond est blanc et la police est …étrange (tahoma bold je crois).

Voila donc ce qu’il faut mettre dans le vimrc pour retrouver un vim lisible :

" Pour retrouver la bonne font qui va bien
set guifont=Courier_New:h10:cANSI:
" un fond noir et des couleurs lisibles
colors koehler

ahhh ca va mieux :) enfin un vrai vim sous windows.

\\ tags: , , ,

jan 27

Tout est dans le titre.

Un site blacklisté ne peux plus utiliser google analytics… c’est un peu bas non ?

\\ tags: , ,

jan 18

En ce moment je travaille sur http://www.odowa.com/ qui est un agrégateur des flux rss que je trouve intéressants. Odowa.com contient également un moteur de recherche de flux RSS.

Les données contenus dans le moteur sont des billets provenants d’environ 7000 flux rss. Pour chaque flux.

Le crawler :

  • récupère l’url du billet après les éventuelles redirections (la vrai url, pas celles des feedburners)
  • détecte le contenu du post grâce au détourage automatique (pas de pub, de menu, de commentaires…),
  • detecte la langue utilisé dans le billet (fr/en/es/de pour l’instant)
  • va chercher le favicon

Bref, tout cela totalise environ 700 000 posts au jour d’aujourd’hui.

J’avais donc dans l’idée d’afficher en temps réel (ou presque) le nombre de posts dans la base sur le site, exactement comme fait le site yakaz.com que voici :

2 140 367 petites annonces… pas mal .Curieux de savoir quelle solution technique ils utilisent je regarde un peu le code source et la … c’est le drame… voyez vous même la fonction LiveCount() que l’on trouve dans le fichier http://www.yakaz.fr/js/home.js?v=20071206 :

    var refreshFrequency = 1000;
number_to_display = Math.round(number_current);
document.getElementById('live-count').innerHTML = i18_num(number_to_display);
document.getElementById('live-count').style.background = 'none';
number_current += frequency * 2 * Math.random();
number_current += frequency * 2 * Math.random();

Et oui c’est bien un random…
Continue reading »

\\ tags: , ,

jan 01

Si pendant que vous compilez php, vous obtenez cette erreur:

configure: error: xml2-config not found.

Alors que vous avez bien installé libxml2 et libxml2-dev, ne vous acharnez pas à reinstaller libxml2 ou libxml2-dev.

Il suffit “simplement” d’installer libxml++2.6-dev (sous ubuntu) …

\\ tags: , , ,

déc 01

J’ai souvent entendu des prestataires expliquer au client que la migration d’un nouveau site peut être longue à cause du temps de propagation DNS, petite explication:

Les serveurs DNS (domain name serveur) ou serveurs de noms sont (en gros) des bases de données où sont stockées les binômes adresseIp/nom de domaine, cela afin de retrouver l’ip quand on à le domaine et inversement. Quand vous tappez un nom de domaine dans votre navigateur, un serveur DNS est interrogé (ou un cache dns) pour savoir sur quelle machine (adresse ip) il faut taper.

Il existe surement des milliers de serveurs DNS dans le monde, et ceux-ci fonctionne en mode asynchrone.
Lorsque vous modifiez les DNS d’un nom de domaine, la modification n’est bien entendu pas prise en compte directement sur tous les serveurs DNS, le laps de temps qui défini chaque rafraichissement de ces données DNS est le TTL (time to live) du DNS.
Il est fortement conseillé de baisser ce TTL lorsque vous effectuez une migration mais attention, il ne fait pas le faire à la dernière minutes.
Si votre TTL est de 24 heures (valeur moyenne) cela veut dire qu’au pire des cas, vos modifications peuvent être prisent en compte 24h après.
N’oubliez pas aussi que votre machine (windows, linux ou mac) possèdent leurs propres cache DNS.

Ceci étant, afin de contourner tout cela de manière provisoire je vous propose d’utiliser le mod_proxy d’apache afin de faire des migrations en prod en un clin d’oeil et parfaitement contrôlées.

Ingrédients:

- Apache2 (ca doit fonctionner avec apache 1.3.x)

- mod_proxy (sous debian, sudo a2enmod proxy, puis un reload d’apache)

Recette:

Le but ici est de remplacer le contenu d’un site par un nouveau contenu, tout deux sur des urls différents sans que l’utilisateur ne s’aperçoit de rien.

Vous avez votre ancien site qui va bientôt prendre sa retraite : www.monsite.com

Vous avez votre nouveau site dont l’url sera au final www.monsite.com mais que vous également avez rendu accessible sur une autre url (alias) parce que c’est mieux pour ce qu’on veut faire ex: monsite.maboite.org

Après s’être assuré que le mod_proxy est activé (voir ingrédients) il vous suffit d’ajouter ceci dans votre conf apache (ex /etc/apache2/sites-enabled/monsite.com) :


  ServerName www.monsite.com
  ProxyPass / http://monsite.maboite.org/
  ProxyPassReverse / http://monsite.maboite.org/

    Order deny,allow
    Deny from all
    Allow from all
  

Après un reload d’apache, l’url www.monsite.com devrais afficher le même contenu que monsite.maboite.org.
Voila, bon appétit.

\\ tags: , , ,

nov 30

Petit memo perso, transformation d’une phrase en url (avec accents puisque maintenant google et les dernières navigateurs acceptent).

function urlize($string){
  $find   = array(
    '/([\[\(].*[\]\)])/'  # bracket and co
    ,'/[\s]/'              # space and multispace
    ,'/[…,!?.;:“’”\’"&+]/'      # blacklisted chars
    ,'/[-]+/'              # multi -
    ,'/(^-)/'              # - as begin
    ,'/-$/'                # - as end
  );
  $repl   = array('','-','-','-','','');
  return  preg_replace($find, $repl, $string);
}

Comme souvent, j’ai surement oublié deux ou trois caractères à bannir donc à compléter suivant les utilisations.

\\ tags: , , , ,

oct 05

Pour créer mes cartes de visites temporaires je me suis souvenu de Vistaprint, une société qui me spam depuis pas mal de temps.
On peut apparemment se faire des cartes de visites en ligne en ne payant que les frais de port.
Effectivement, on peut.  Par contre les modèles sont pas terrible, je choisi les plus simple et les moins moches.
Je rentre mes coordonnées le nom de ma future boite, mon numéro de téléphone, mais pas l’adresse.
J’ai pas envi de mettre mon adresse perso parce que ça fait pas vraiment pro.
Je rajoute “domiciliation d’entreprise” dans ma todo list.

Attention pendant la commande chez Vistaprint, ils ont tendance à vous ajouter des options payantes.
donc 9 euros les 250 cartes de visites blanches sans logo ni marque Vistaprint, mois je dis c’est pas mal.

\\ tags: ,

oct 05

J’ai discuté avec un futur client qui à crée environ 30 sociétés et qui en possède encore en vingtaine. Il m’a dit:
“c’est très simple de créer une société”

Je veux bien le croire mais la…j’ai besoin d’info, direction Google.

LE site à prendre à son chevet (quoi vous avez encore des livres à votre chevet ?) est celui de l’APCE. Tout le monde vous le dirait c’est une “mine d’informations”

Je me dis que demander un dossier de création d’entreprise me permettra d’avoir une liste des éléments à fournir (j’aime bien la manière procédurale)
Ce dossier est à retirer à la chambre du commerce et de l’industrie (http://www.cci.fr/), vous pouvez aussi demander par téléphone à ce que l’on vous l’envoi.
Sauf que … pour avoir ce dossier il faut connaitre le statut de l’entreprise et ça je sais pas encore… ok je vous rappelle plus tard.

Un petit tour sur le net pour bien comprendre les statuts.
Vous trouverez ici plus d’info sur les statuts d’entreprises
Bon, j’ai choisi: Je veux créer une entreprise tout seul, dont la compta est indépendante de ma compta perso.
Je veux également que mes futures clients me voient comme une entreprise et non un mec qui bosse dans son garage.
=> EURL
Je suis sûr que pleins de choses m’échappent mais étant donné que c’est le statut choisi par la plupart de mes concurrents (SARL ou EURL) il peut pas être mauvais :)

Un coup de fil au CCI et hop, je devrais recevoir mon dossier de création d’entreprise par courrier dans quelques jours.

\\ tags: , , , ,

oct 04

Enfin !!
Le rendez vous APEC était bien.
Mon consultant est un ex recruteur d’un cabinet de recrutement et ça se voit. Très pro, très posé mais aussi très direct.
Après les questions d’usage je lui dit que je ne recherche pas de travail pour l’instant parce que je veux créer ma boite, voici sa réaction:

“Je ne suis pas tenu de vous aider parce que notre boulot et de vous aider à trouver du boulot, mais je vais quand même vous aider.”  Cool :)
Pendant une bonne demi heure, il me prévient de l’impact familiale qu’a la création d’entreprise, que quand on a une femme et deux enfants comme moi ça bouleverse un peu tout.
Promis je travaillerais pas plus de 8 heures par jour :)  (je crois que je rêve).
Fin de l’entretien, j’ai des devoirs pour la prochaine fois.
On échange nos cartes de visites,  je donne une carte de mon ancien boulot, y’a toujours mon numéro de portable ça peut servir non ?
Et la je me fait engueuler :) Bon ok, ça fait pas très pro.
Prochain rendez vous dans un mois.

\\ tags:

oct 01

Déçu.
J’attendais beaucoup de cette demi journée de formation et en fait je suis très déçu.
En fait cela consiste à remplir un dossier avec pas mal de question sur l’activité de la société mais ce n’est pas le pire.
Nous sommes 8 personnes, 5 sont là pour apprendre à faire leurs CV, et 2 pour apprendre à faire des lettres de motivation.

Donc la formation création d’entreprise… bin je la fait tout seul dans mon coin en remplissant le dossier…
C’est tout, c’était ça la demi journée de formation…merci l’ANPE :)

Normalement j’en ai fini avec l’ANPE puisque maintenant je suis à l’APEC… j’éspère que l’APEC est mieux…

\\ tags: , ,

sept 27

Après quelques discussions sur mon futur emploi, il me donne le code ROME qui va me permettre de rechercher des offres a l’ANPE, nous regardons ensemble : pas d’offres (en même c’est pas grave, je ne cherche pas).
Je lui parle de mon envi d’entreprendre et il me propose un atelier création d’entreprises d’une demi journée à l’ANPE
Pas mal ça, je vais enfin avoir des infos sur cet univers sombre et obscure qu’est la création d’entreprise !!!

Au passage il me parle de L’APEC (http://www.apec.fr/) qui est un organisme de recherche et d’accompagnements pour l’emploi spécialisé pour les cadres. Ça tombe bien je suis cadre et donc j’ai cotisé à l’APEC (c’est écrit sur mes fiches de paies).
En gros, si je veux l’APEC peut remplacer l’ANPE dans mon accompagnement à l’emploi.
Pourquoi pas si ils sont spécialisés cadres.
Prochain rendez vous dans 3 jours à la demi journée de formation à la création d’entreprise.

\\ tags: , ,

sept 24

Pour mon premier rendez-vous aux assedics, j’avais bien sûr emporter mon package de jeune chômeur, derniers contrats de travail, derniers bulletins de salaires … enfin toute ma vie professionnelle depuis 1 an.

Je prend un numéro (comme à la boucherie) et j’attends dans la salle d’attente ou une vidéo passe en boucle.
Elle dure 7 minutes et 40 secondes.. oui oui j’ai eu le temps de chronométrer puisque ma conseillère était en retard.
Cette vidéo est une espèce de propagande qui prône les joies du travail dans laquelle plein de gens avec le sourire vous accueil dans des bureau super chaleureux. Promis je ne me laisserais pas avoir !

Mon numéro est appelé…enfin.

Bonjour madame, bonjour monsieur, on discute, on remplit les papiers.
J’essai de lui expliquer gentillement que je ne suis pas sûr de rechercher du travail, que éventuellement j’aimerais monter mon entreprise
“Vous verrez cela avec l’ANPE”
Nous continuons l’entretien, quand vient la question : compétences informatiques… là je me dit “chouette, mon domaine”. Dans ma tête je me posais des questions du genre “memcache…c’est une compétence ça ?, hum disons oui … coder sous Vi, ça compte double ?”
Sauf que le questionnaire à tourné court :

Assédic : “Word ?”
Moi: “euu..oui”.

Assédic : “Excel ?”
Moi: “euu..oui”.

Assédic : “Base de données ?”
Moi: “Laquelle ? oracle ? mysql ? postgres ?…”

Assédic : “Euu non non base de données”
Moi: “euu..oui”.

Assédic : “Merci, on va fixer un rendez vous avec l’ANPE pour vous trouver un emploi en fonction de vos compétences.”

Depuis l’age de 10 ans je me coltine des bouqins des man et autres pour me faire entendre que mes compétences informatique sont Word et Excel…. ca commence bien.
Bref, l’entretien se termine, en retard (merci madame d’avoir empiété sur votre pause déjeuné pour me servir).

Rendez vous à L’ANPE quelques jours plus tard.

\\ tags:

sept 23

Enfin, je me suis décidé à me lancer et à créer mon entreprise.
Voici donc le premier post, j’espère trouver le temps d’alimenter ce blog.

L'inventeur de l'hydrogommage.

Voici les nouveaux sites qui parlent de l'hydrogommage: hydrogommage.org, procédé breveté qui permet de nettoyer en douceur toutes surfaces grâce à une faible pression et un fort débit d'eau. Sur ce site, vous trouverez des informations concernant le brevet de l'hydrogommage.

Pour ce qui est de la technique de l'hydrogommage, vous pouvez vous rendre sur hydrogommage.net et vous saurez tous sur l'hydrogommage.

Vous cherchez un plombier pour une fuite ou des travaux de plomberie ?

Voici un nouveau site, un plombier.com rempli d'informations sur les plombier qui vous permet d'en savoir un peu plus sur les devis de plombier ou sur les différents types de factures.

Vous y trouverez aussi plein d'informtion sur les formations pour devenir plombier.