Ro6gnol gazouillis en vrac

3Août/160

Trop d’open source tue l’open source (mais pas l’open-space)

Dans le cadre de ma veille technique j'ai découvert que AngularJS allait probablement (?) être remplacé par Aurélia.
En cherchant des infos sur Aurélia je suis tombé sur le billet de SAM&MAX "La communauté JS est actuellement une machine à créer de la dette technique".
Extrait : "L’installation est devenue un enfer. Entre les dépendances dépréciées, les libs incompatibles, les différents outils de build, et les options de config et les plugins, c’est une merde incommensurable. Plusieurs standards d’installeurs (et outils joints) se tirent la bourre : AMD, CommonJS et Harmony. Vous vous souvenez du temps ou on copiait juste jQuery dans le répertoire static ?"

J'ai été rassuré de voir que d'autres développeurs en avaient assez de devoir encore, et encore, et encore, et encore, et encore, et encore (ré)apprendre de nouvelles techniques, de nouveau outils ; tout ça pour faire des application dont la durée de vie est quasi insignifiante. Alors attention hein, il faut bien dire que toutes les nouveautés c'est bien, c'est plus "propre". Afficher "Bonjour monde" sans utiliser une fabrique de contrôleurs et l'injection de dépendances c'est sale ; beurk... mais on fatigue un peu quand même de réapprendre son métier chaque année pour un salaire inférieur à celui du plombier que qu'on courtise depuis des semaines.
Mais quand j'ai lu certains commentaires j'ai eu comme un gros coup de déprime : En gros il y en a qui sont super contents du bordel pour des raisons quasi politiques.
C'est drôle, mais j'ai quasiment pu catégoriser des typologies "anarchistes" (Il faut du bordel BORDEL).
La guerre est trop sérieuse pour être menée par des militaires dit-on ; le problème du développement c'est que la main d'oeuvre a 20 ans de moyenne d'âge, et que quand on a 20 ans on gobe tout ce qu'on voit du moment que ça à l'air "cool et rebelle".

Image de prévisualisation YouTube

On me signale que le tag wordpress censé jouer les videos youtube ne fonctionne pas partout ; Voici le lien youtube de cet extrait du film culte brazil : https://youtu.be/mu1iND6vtcE

Share Button
11Jan/160

Nom de fichier trop long : Bug windows

bug windowsIl peut arriver que vous vous trouviez avec un nom de fichier trop long et que windows vous empêche de le supprimer.

Evidemment vous essayez de le renommer, mais rien à faire.
Les nombreux sites et forums que vous parcourez ne vous donnent pas de bonne réponse.
Vous êtes arrivé au bon endroit ! ;o)

Ouvrez une fenêtre DOS.
(démarrer / exécuter / cmd )
Rendez-vous sous DOS dans le repértoire parent du fichier qui pose problème.
Tapez la commande 
subst j: .
Celle-ci signifie "Crée moi un lecteur virtuel à l'endroit ou je suis et appelle le J"
Retournez dans windows puis via l'explorateur de fichier retrouvez le lecteur J: et miracle ! Vous pouvez maintenant supprimer ou renommer les fichiers qui sont à l'intérieur.
Ensuite vous pouvez enlever le lecteur J: avec la commande sous DOS
subst /d j:

Merci au site http://superuser.com/questions/755298/how-to-delete-a-file-with-a-path-too-long-to-be-deleted

Share Button
19Déc/120

Trouver une ville avec un code postal via programmation

Trouver une ville avec un code postal ou trouver un code postal avec une ville ou un début de nom de ville avec php ou un autre langage n'est pas si facile car il faut disposer d'une base de données complète.
Voici un nouveau service : http://cp-ville.com/

Celui-ci propose de trouver, à partir d'un début de code postal, la série de villes qui correspond.
Il propose également de trouver, à partir d'un morceau de ville, le ou les codes postaux correspondant.

Mais http://cp-ville.com/ propose également aux développeurs ( php, java, asp ... ) d'interroger le service et de récupérer les informations au format Json.
Tout est expliqué sur le site.

Pratique et facile à utiliser.

service de recherche cp villes

Share Button
3Sep/120

Le développement informatique : que c’est dur !! ( suite )

http://amyreneeleiker.com/2012/05/02/dotcom-evolved-the-future-of-the-internet/

Veille techno tranquille aujourd'hui avec CSS3.
Doit pas être bien méchant, ben oui, c'est que la suite de CSS2 non ?
Sauf que ma petite souris m'amène vers une vidéo youtube d'une heure sur les nouveautés HTML5/CSS3 ( http://www.youtube.com/watch?v=wsnvP3Drs8c ) et l'affaire se complexifie quand j'apprends que javascript va être multi-tâche, que les web sockets et les bases de données locales ouvrent le champs immense du cloud "server less" ( ne cherchez pas, l'expression est de moi : ho ho, après vérification sur Google c'est pas si ridicule que ça ... ), que mes journées à travailler sur Bootstrap Twitter n'auront servies à rien puisque Css3 va proposer une grille ( grid ) et que j'ai bien fait de ne pas lire le livre que j'avais acheté sur Silverlight, parceque oui, c'est bien fini.
Microsoft va continuer à le faire vivoter 10 ans maximum et après, aux oubliettes !

N’empêche, ces techdays en vidéo sont très bien foutues.
Du coup, je tombe dans le piège de la veille techno qui n'en finit plus et je met de coté pèle-mèle, après avoir cherché  "TechDays 2012":
[TechDays 2012] Les nouveautés de Visual Studio 11 ( impossible de passer à coté )
[TechDays 2012] Patterns et bonnes pratiques autour de JavaScript ( impossible de passer à coté )
[TechDays 2012] Patterns et anti-patterns d'architecture ( surement indigeste, mais comment l'éviter ? )
[TechDays 2012] PHP : écrire et déployer des applications maintenables !
Concevoir des interfaces utilisateur efficaces et vendeuses

soit plus de 5 heure de vidéos alors que je n'ai pas encore investi sur ma recherche initiale (Css3).

Qui a dit Oooops ?

Share Button
30Août/120

Le développement informatique : que c’est dur !!

J'ai un peu de temps devant moi, et je vais en profiter pour monter en compétences sur certains sujets.
Je me suis fait une petite liste des choses que je devrais étudier et ça y est, je vais pouvoir dresser mes priorités.

Dans ma liste on peut trouver
CSS3 / HTML5 ( y serait temps hein ! )
JSON ( ben non, jamais utilisé, on ne se moque pas )
TWIG
Design Pattern en PHP5
Doctrine
Google Analytics nouvelle version ( idem pour adSense )
YML
Outils de debug JS sous Chrome et Firefox ( ben non, jamais utilisé, on ne se moque pas )
et bien sur le gros morceau : Symfony2

En recherchant un outil de gestion de base de données vu sur l'incontournable la ferme du web ( oui, il y a aussi un peu de boulot coté SGBD, sinon l'outil est SqlYog )  je suis tombé par hasard sur un article qui parlait de Saas et Compass.
Et hop, même pas commencé à creuser ma veille techno que j'en reprends une couche.
L'article parle d'un ouvrage qui aborde toutes les bonnes pratiques en matière de CSS pour obtenir des CSS maintenables.
Ca à l'air très très intéressant, et je pense que je vais l'acheter.
Mais comme ça me rajoute encore une couche de choses à apprendre, et que je sais que de toute façon je n'aurai jamais le temps de m'y pencher sérieusement, je me venge en passant le site de l'auteur à la validation du W3C.
Bingo ; il y a 2 erreurs.
Ça lui apprendra à me donner du boulot ;o) !!

Share Button
Taggé comme: Aucun commentaire
3Juil/122

DRUPAL 7 : Comment accéder à l’identification alors qu’on a enlevé le formulaire de login

Énervant ce formulaire de login présent par défaut sous Drupal.

Heureusement, on peut le faire sauter facilement avec le backoffice via
Structure __ User login __ <none>

Sauf que.... après, comment peut-on s'identifier en tant qu'administrateur pour administrer la bête puisqu'on a enlevé le formulaire user|login ?

Il faut connaitre l'astuce suivante :
Dans l'url principale du site, rajouter à la fin  ?q=user
Par exemple : http://monsitedrupal?q=user

Ça peut dépanner ...

Share Button
6Oct/111

Veille techno web 2

Découvert aujourd'hui quelques sites à bookmarker pour étudier dans une deuxième vie.
La deuxième vie étant celle qui nous permettra de rergarder sérieusement toutes les choses qu'on a pas le temps d'étudier.
Ce qui me gène c'est que j'ai l'impression qu'il faudrait ... une troisième vie 😉

Commençont par une application que j'attendais depuis longtemps : http://www.chive-project.com/ qui a vocation a remplacer ce bon vieux PhpMyAdmin.

Ensuite allons faire un tour du coté de http://www.sencha.com/ qui maintient l'excellent librairie ExtJs et qui propose de nombreux outils pour le développement web.

Un coup d'oeil sur une "petite" librairie graphique en javascript qui surpend par sa puissance ( intégrée par Sencha ) : http://raphaeljs.com/

Bon à savoir ; le script http://blog.mobileesp.com/ peut nous permettre de savoir si la demande vient d'une tablette ou d'un mobile particulier.

Pour finir, http://elrte.org/fr/ devrait remplacer les éditeurs comme tinyMCE ou fckEditor en utilisant toute la puissance de JQueryUI

Share Button
4Oct/112

Comment échanger 2 noeuds en Javascript

Peut-être ai-je mal cherché, mais je n'ai pas trouvé comment échanger 2 noeuds en Javascript.
Même avec "swap nodes" pour étendre ma recherche sur des sites anglais, rien d'évident.
Aussi je me suis lancé pour faire cette fonction javascript.
Jusqu'au jour ou un commentaire dira : "Si tu avais regardé dans la librairie 'machin' il y a déja la fonction 'trucmuche' alors pourquoi réinventer la roue banane !".:-)

Voici le source HTML qui sert de base de test.
Il y a trois div. Le premier div et le troisième contiennent d'autre noeuds, pour montrer que la fonction déplace réellement le noeud, et donc avec tous ses enfants si nécessaire.

Principe de fonctionnement :
  Faire une copie ( clone ) des noeuds à échanger
  Modifier leur id pour les injecter au bon endroit sans conflit d'id.
  Supprimer les originaux.
  Remettre les id des originaux dans les copies

Voici le code javascript :

<script>
function swapNode(element1, element2)
{
 if(typeof element1=="string"){element1=document.getElementById(element1);};
 if(typeof element2=="string"){element2=document.getElementById(element2);};
 if(!element1 || !element2){return null;};

 var clone1=element1.cloneNode(true); var clone2=element2.cloneNode(true);

   old_id1= element1.id;
   old_id2= element2.id;

 var parent1=element1.parentNode;  var parent2=element1.parentNode;
 
 parent1.insertBefore(clone2,element1);
 parent2.insertBefore(clone1,element2);
 parent1.removeChild(element1); parent2.removeChild(element2);

   element1.id = old_id1;
   element2.id = old_id2;
}

</script>

Share Button
23Sep/110

Viva l’Open-data !

llustration CC FlickR opensourceway via http://www.co-lab.fr/tag/open-data/

Les administrations utilisent des données collectées et les gèrent grâce aux impôts.
Ces données ne sont pas accessibles au 'grand public' ; et pourtant c'est bien avec l'argent public que cet 'or gris' prospère.
Alors ne serait-il pas juste que ces données soit accessibles ?
L'idée commence petit à petit à faire son chemin.
Au dela du simple bon sens, des enjeux liés à la transparence et à la démocratie sont liées au concept de l'Open-Data.
L'administration tient à son opacité historique, mais les lignes commencent à bouger.
Quelques villes mettent à disposition leurs base de données.
Soit en téléchargement soit via une API ( par exemple pour connaitre les stations Vélib à Paris ).
Pour en savoir plus, rendez-vous sur http://fr.wikipedia.org/wiki/Open_data et http://www.europecreative.eu/2011/09/01/la-france-va-bientot-entrer-dans-lere-de-lopen-data/

Au dela des administrations, toutes les associations de type loi 1901 ou les entités qui fonctionnent avec l'argent public devraient mettrent à disposition leurs données.
Par exemple, la Féderation Française de Tennis garde jalousement beaucoup d'informations qui pourraient être utilisées avec profit pour créer des statistiques intéressantes.
Du coup elle offre des outils informatique d'un autre age pour la gestion des clubs alors qu'il existe une foultitude de développeurs passionnés qui prendraient leurs pieds pour proposer des applications sympathiques.

Pour le principe, j'ai eu envie d'utiliser ces données 'ouvertes'.
En allant sur le le site http://opendata.paris.fr/opendata/jsp/site/Portal.jsp j'ai récupéré la liste des prénoms attribués au enfants nés à Paris entre 2004 et 2010.
Il y a longtemps que je vais trainer sur le site http://www.lafermeduweb.net/ pour y admirer les ressources 'web2' en me promettant d'en utiliser un jours quelques unes.
Et l'idée à germé : Pourquoi ne pas essayer de faire un site uniquement en assemblant des ressources ?
Je suis allé cherché un template HTML5, quelques scripts pour agrémenter le client et il ne restait plus qu'à faire quelques requêtes SQL.

J'avais estimé le temps de développement à 2 jours mais il m'a fallu un jour de plus pour la création de la base de données.
En effet, les données sont fournies sous la forme de fichiers CSV et il a fallu faire quelques moulinettes en PHP pour alimenter une base MySql avec le moteur InnoDB
Pour ceux qui sont intéressés je fourni la base ici : prenoms-db

Le site est visible sur http://prenoms-paris.ro6gnol.com/ 
Il y aurait beaucoup de chose à faire dessus, mais l'idée était juste de faire quelque chose rapidement en assemblant des morceaux.
Et VIVA L'OPEN DATA !!

Share Button
15Sep/110

HTML5 : introduction à l’objet localStorage

L'objet localStorage permet d’enregistrer des données sur le poste client ( comme les cookies ) et le stockage est géré par le navigateur.
Mais localStorage permet d’enregistrer beaucoup plus d’informations que les cookies ( minimum de 5 mega-octets ).

A quoi ça sert ?
La question qui peut faire mal 😉
Aujourd'hui on peut trouver beaucoup d'exemples qui n'ont qu'une valeur de démonstration ( Celle présentée dans cet article en est la parfaite illustration ).
Mais il est encore trop tôt pour trouver de réelles applications pratiques.
Pourtant localstorage sera très pratique dans certains cas d'utilisation.
...
Dans un "mode borne" ( appelé souvent "kiosque" ) , en cas de coupure internet temporaire, il est important que l'utilisateur puisse encore consulter un écran avec des données.
Prenons le cas d'un joueur de tennis qui est au club-house et qui souhaite savoir si le terrain sera disponible dans 30 minutes.
Il consulte le PC du club-house qui est en mode borne mais déconnecté depuis 15mn, et qui fonctionne donc en mode dégradé avec les données en cache.
Autre exemple qui devrait se généraliser rapidement, pour assurer la persistance des informations entrées dans les formulaires de saisie sans traitement par du code spécifique coté serveur !
Ou encore, un système d'inscription sur plusieurs pages sans repasser par le serveur !

Il existe aussi un autre objet, sessionStorage ,qui offre les même fonctionnalités mais dont le stockage disparait avec la fermeture du navigateur ( comme les sessions ).

L’utilisation est très intuitive, il s’agit du mécanisme CLEF  ->  VALEUR
localStorage.setItem('uneClef', 'uneValeur');
var uneVariable = localStorage.getItem('uneClef');
On peut utiliser une syntaxe plus courte, familière aux développeurs PHP
localStorage['uneClef'] = uneValeur;
var uneVariable = localStorage['uneClef'];

Le nettoyage de la base locale peut se faire par l'utilisateur en supprimant simplement le cache du navigateur.
Il ne faut donc pas compter sur cette fonction pour enregistrer des données de façon pérenne.

Voici une video explicative et en fin d'article le code de l'exemple à télécharger.
Image de prévisualisation YouTube

Et voici le code source --> Code source de la démo à télécharger

Share Button