Devblog

Mes notes de développeur

Un utilitaire pour passer de Known vers Ghost

J'en ai parlé sur le post de mon blog perso mais c'est aussi un projet à part entière, donc, je tiens à en parler ici aussi, mais plus techniquement

Lire la suite

Je viens de libérer le code de bookmarklet.shikiryu.com

Mon application "read later by email", je l'utilise depuis 2010. Elle est pas bien connu mais je vois dans les logs qu'une demi-douzaine de personnes l'utilisent de temps en temps.

Et bien, je l'ai nettoyé, sécurisé un minimum (il reste un ticket à traiter) et mis en open-source. Vous pouvez...

Lire la suite

Un utilitaire pour passer de Tumblr vers Shaarli

Durant très longtemps (de février 2008 à décembre 2015 pour être exact), j'ai utilisé mon tumblr comme d'un gestionnaire de bookmark public.

Mais au bout d'un moment, il ne fonctionnait plus aussi bien et avec plus de 2000 liens, il devenait ingérable. Entre temps, j'ai installé un shaarli.

Lire la suite

Un script PHP permettant de faire des backup sur un mutualisé

J'ai commencé ce projet quand je n'avais qu'un mutualisé chez OVH (très bien d'ailleurs, pour le prix, mais il me fallait plus).

Il permet de faire une sauvegarde de fichiers, dossiers, base de données vers divers destinations via de nombreux protocoles via PHP

Lire la suite

Un « proxy » en PHP pour le téléchargement

Ma mission à la Banque de France se passe bien. J'ai quand même un soucis : il est interdit de télécharger des .exe, .msi ou des extensions Firefox (sigh)

Il est en plus non recommandé d'utiliser des clefs USB… Donc bon, j'ai « pondu » un script me permettant de passer outre.

Lire la suite

+ de 1000 générations de template html 5!

Et oui, ça y est ! Mon application de génération de template HTML5 a dépassé les 1 000 exécutions. Pour en savoir plus sur celle-ci, j'en avais déjà parlé sur le blog dans ce post.

Pour une application créée pour satisfaire un besoin personnel de rapidité, je trouve cela pas mal :)

N'hésite...

Lire la suite

ShikiryuRSS : Une classe de lecture et d'écriture de flux RSS

Me revoilà avec ma folie du XML avec une classe qui m'est intéressante puisqu'elle permet de lire et d'écrire des flux RSS.

Quel intérêt me direz-vous puisqu'il en existe environ 32 541 rien que pour le PHP ? ;)

Tout d'abord, elle peut faire les 2 (lire et écrire) et c'est là son atout. D'une...

Lire la suite

Un utilitaire pour passer de Tumblr vers Shaarli

Parce que j'aime faire mumuse avec XML, j'ai fait un parser PHP permettant de transformer un SVG en PNG (ou jpg d'ailleurs)

Il marche vraiment bien avec des formes simples mais la librairie GD est vraiment trop limitée pour en faire plus…

Et surtout, en CLI, on peut le faire en une commande. J...

Lire la suite

Les design patterns en PHP

Après avoir découvert le design pattern Factory sans le vouloir pour le projet Accueil et devant l'utilisation intensive d'autres DP dans un domaine professionnel (La raison du pauvre nombre d'articles ici en ce moment), je me suis mis à essayer de trouver des DP dans mes projets. Et il y en a pa...

Lire la suite

Raccourcisseur d'URL en open-source

Je viens de passer mon raccourcisseur d'url en license Creative Common by-nc-sa.

Le site fonctionne donc toujours mais ses sources sont téléchargeables via svn et le tout peut être installé sur n'importe quel serveur ayant PHP 5.x


Sur un autre point, j'ai trouvé un raccourci pour ce qu...

Lire la suite

SVGTOIMAGE - la classe pour convertir les SVG en png

J'en ai parlé précédemment, je suis en train de préparer tout ça. Toutefois, la classe est déjà disponible mais n'est pas encore compatible avec tous les SVG. Il y a des spécifications, personne n'a suivi les mêmes. Trop beau.

Bref, voici comme l'utiliser :

php$img = SVGTOIMAGE::parse($svg);

C...

Lire la suite

XMLSQL

C'est pour l'instant un projet en cours.

Les requêtes fonctionnent bien et sont du style :

$result = $DB->select()->from('articles')->where($articleID)->query();

Plutôt compréhensible non :) Le résultat du select sera un array, les autres (insert, update, delete) renvoient pour l'instant un...

Lire la suite

XMLDB

Depuis la création du projet Page d'accueil et sa particularité de no-MySQL, je me suis intéressé à la persistance via fichier et plus particulièrement au format que j'apprécie : le XML.

J'ai alors décidé de créer un simili-MySQL en XML.

Il a fallu tout d'abors determiné le format que celui...

Lire la suite

Fusionner 2 PDF avec Zend

  • You must have at least Zend Framework 1.11
  • You must clone page from the PDF you want to merge, else, your application will print an error (self explanatory one) found thanks to this slideshare which is very interesting for Zend_Pdf)
  • The static PDF must be a PDF

    Initializing the merged PD...

Lire la suite

Raccourci d'URL sans base de donnée

Grâce à XMLSQL (qui évolue), j'ai réalisé un raccourcisseur d'URL (URL shortener) sans base de donnée MySQL ou autre.

Cela m'a permit de voir que cette classe est vraiment flexible et utile en étant étendue (C'est une première dans ce cas). Mais, surtout, ça m'a permis d'approfondir mes comp...

Lire la suite

Mon générateur de template HTML5

En voyant SwitchToHTML5 et le fait que j'utilise déjà mon propre template customisé (mix entre blueprint, boilerplate et quelques addons persos), j'ai décidé de créer mon propre générateur de template.

Pour cela, il a fallu étudier comment gérer les fichiers Zip en PHP, comment le générer a...

Lire la suite

Statistiques de l'Hadopi

Je ne pouvais pas passer à côté du XML de statistiques de l'Hadopi proposé par Numerama - Hadopi-data.

J'en ai fait des courbes ou des barres, bref, des graphiques via les Google Charts.

Le resultat se trouve ici.

Lire la suite

Hébergement PHP gratuit.

Je ne vais pas vraiment cracher sur les hébergeurs gratuits (mais un peu quand même), ils sont utiles.

Par exemple, grâce à free et son offre PHP / MySQL gratuit, j'ai pu commencer à programmer facilement. C'est pratique, c'est rapide à mettre en place mais...

Oui, les hébergeurs gratuits...

Lire la suite

Mise en ligne des sources de l'appliCompte

Au début de l'année (donc, oui, il y a presque 1 an...), j'ai rapidement fait une application permettant de gérer un compte commun virtuel.

Il faut remplir l'appli avec :

  • ce qui est dépensé
  • combien est dépensé
  • par qui est-ce dépensé
  • quel jour est-ce dépensé

En gros, en 5 secondes, c'est...

Lire la suite

Une classe PHP pour transformer les SVG en images

En ayant trouvé le bug de conversion entre Raphael JS et canvg, le projet Experimental Cut se trouvait dans une impasse... Il ne fonctionnait totalement en javascript que sur chrome et opéra.

J'ai donc décidé de faire une classe PHP de conversion grâce à la librairie plutôt limitée GD.

La 1ère ...

Lire la suite

Read Later by Email BookmarkletGenerator

Icône du bookmarklet Ce projet m'est venu à l'esprit après 2 ans d'utilisation intensive de tumblr.

J'utilise surtout son bookmarklet qui est très très utile mais :

  1. On est dépendant du serveur de tumblr (il lui arrive d'être en rade, même si c'est rare)
  2. L'article/photo/citation qu'on y met se retrouve tout de...

Lire la suite

XMLDB est mort, vive XMLSQL !

Après mon long parcours avec XMLDB (une similation d'une base MySQL en XML) dont vous pouvez voir les spécifications sur sa page de wiki, j'ai trouvé que la syntaxe des requêtes pour obtenir les données ou les insérer étaient très lourdes.

Je me suis donc inspiré de la syntaxe des différents O...

Lire la suite

L'évolution de la page d'accueil

Par la suite, j'ai voulu rendre ce projet évolutif et modulaire.
En effet, déjà, à la base, tout àtait mélangé (dans le code, dans la fenêtre du navigateur). J'ai donc fais évoluer le projet et vous pouvez le suivre sur [le wiki
associé](https://www.xp-dev.com/wiki/95860/Homepage) !
)

Lire la suite

La naissance de la page d'accueil

Suivant le principe de page d'intro de ChromeOS et le concours de la page d'accueil de Firefox, j'ai décidé de créer une page d'accueil de navigateur.

J'ai donc ajouté des fonctionnalités telles que les "post-it", la météo ou l'horloge. Ces modules sont desactivables, déplaçables (pour la pl...

Lire la suite