$hikiryu->devblog(); : Le blog du développeur curieux

par    - 28/01/2011 | 0 commentaire(s) |

Memopal? fonctionne un peu comme DropBox? (que j'utilise beaucoup !). Je commence juste à le tester et reviendrai dessus plus tard pour faire un comparatif.

En attendant, vous pouvez gagner 500Mo supplémentaire au 3G0 de base pour les comptes gratuits en allant ici : http://apps.memopal.com/r/?UThRYwI2B2EAPQcy !






par    - 19/01/2011 | 0 commentaire(s) |

HTML5 Powered with CSS3 / Styling, and<br/>Semantics




HTML5 possède son propre logo !


Ma première impression fut bonne, même si le logo me rappelait un mélange de bouclier et de superman.
Bouclier ? Pour se défendre contre qui ?
Superman ? Pour se battre contre quel méchant
Mais le plus impressionant, c'est les icônes. Ils ne veulent, en
soi, rien dire. HTML5 Icons



Javascript-Garden? ou comment bien comprendre le Javascript. [Expliqué][3] et [designé][4] par des passionnés,
cette page est amenée à évoluer et est destinée à être une référence (avec
toujours le Mozilla Developper Center? (MDC))








par    - 17/01/2011 | 0 commentaire(s) |

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 allait prendre en essayant de prendre en compte d'éventuels ajouts de fonctionnalité. Je suis arrivé à cette étape après de nombreux
essais.

Le format XML est :



 
 


 false
   
 950
 42
 
 
 true

Paris
 605
 648
   
 
 
 
 
 false
 
   80
 10
 Times New
Roman, serif
 20px

%A %d %B %Y - %H:%M:%S

#000
 
 


et l'équivalent PHP est :

$node = array(

array('name'=>'item'), 
 array('attribute'=>'id'), 

array('childs'=>'xx')
 );

Pour télécharger la classe et voir la documentation, c'est sur le wiki de XMLDB


par    - 17/01/2011 | 0 commentaire(s) |

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 booléen. J'hésite à changer (pour l'instant, je n'ai pas besoin d'autre chose mais il faut penser aux futurs usages).

La class est en cours de test sur mon site de code, le blog d'un proche et... ce blog !


par    - 17/01/2011 | 0 commentaire(s) |

- 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 PDF
 $pdf2show = new Zend_Pdf();
 // $pdfContent
is the generated one
 $pdf1 = Zend_Pdf::parse($pdfContent, 1); 
 //
cloning the page (a must do)
 $template = clone $pdf1->pages[0]; 
 //
Creating the first page of the merged PDF with the previous content
 $page1 =
new Zend_Pdf_Page($template); 
 // Adding this page to the final PDF

$pdf2show->pages[] = $page1; 
 // Loading the statif PDF
 $pdf2 =
Zend_Pdf::load('urlToYourPDF.pdf'); 
 // cloning the page (a must do)

$template2 = clone $pdf2->pages[0]; 
 // Creating the second page of the
merged PDF with the previous content
 $page2 = new
Zend_Pdf_Page($template2);
 // Adding this page to the final PDF 

$pdf2show->pages[] = $page2; 
 sendToWebBrowser('title',
$pdf2show->render());
sendToWebBrowser is a function sending the PDF content to browser with the title as... title.

*$pdf2show->render()* produces the merged PDF content as a
string.


par    - 17/01/2011 | 0 commentaire(s) |

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 :

$img = SVGTOIMAGE::parse($svg);
Ceci parse une chaîne de xml SVG, utile en cas de svg généré dynamiquement.

$img = SVGTOIMAGE::load($svgfile);
Ceci parse un fichier svg (ex : '/svg/example.svg')

$img->setX(0);
 $img->setY(0);

$img->setWidth(210);
 $img->setHeight(200);
On peut vouloir n'enregistrer en image qu'une partie de l'image SVG. C'est ici qu'il faut utiliser ces fonctions qui détermine l'origine de l'image final depuis le SVG ainsi que sa taille. Par défaut, le point d'origine et la taille sont ceux du SVG.

$img->setShowDesc();
Par défaut, la description du SVG n'est pas affichée dans l'image finale. En utilisant cette commande, elle est affichée en bas à droite.

$img->toImage('jpg', '/image/image.jpg');
Enfin, cette commande génère l'image. Le premier argument détermine le format de sortie : 'jpg', 'gif' ou, par défaut, 'png'. Le second est le chemin dans lequel vous voulez enregistrer le fichier ainsi que le nom de ce dernier. S'il n'est pas indiqué, le fichier est généré et envoyé à l'écran mais pas enregistré sur le
serveur.


par    - 17/01/2011 | 0 commentaire(s) |

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étences de redirection via htaccess

RewriteEngine On
RewriteBase /r
RewriteCond %{REQUEST_FILENAME} !index.php$
RewriteCond %{REQUEST_FILENAME}!404.html$
RewriteCond %{REQUEST_FILENAME} !redir.php(.*)$
RewriteCond %{REQUEST_FILENAME} !/$
RewriteRule ^(.{asterix})$ redir.php?name=$1 {crochet}L,R{crochet}
Permet de rediriger tous les fichiers différents de cette liste de RewriteCond vers redir.php.

Trop utile pour un service de raccourcisseur d'url. L'astuce revient à utiliser les conditions de redirection et le symbole "!" qui veut dire "non" ou "différent de".

Le reste n'est que du PHP.

On peut télécharger ça par svn ou utiliser sur nu.x10.bz !

Mise à jour : J'ai rajouté un bookmarklet qui permet de rajouter des raccourcis plus facilement et rapidement.


par    - 17/01/2011 | 0 commentaire(s) |

Je ne le savais pas mais on peut faire des formes triangulaires en CSS sans images, sans balises supplémentaires. La méthode ?

.css-arrow-multicolor {
  
border-color: red green blue orange;
border-style:solid; 
border-width:20px;
width:0;
height:0;
}
Les couleurs peuvent être remplacées par des transparents pour faire un unique triangle. La taille de la bordure peut changer pour faire des triangles à angle aigu et le changement de style donne des résultats... étonnants.

cf : http://www.dinnermint.org/blog/css/creating-triangles-in-css/ via http://cssglobe.com/post/9435/pure-css3-post-tags


par    - 14/01/2011 | 0 commentaire(s) |

PromoteJs
Parce que javascript est utilisé partout, par tout le monde, madame Michu comprise.
Parce que tellement de dév pensent que jQuery, c'est mieux que
javascript.
Parce que Google est rempli de liens pourris vers des scripts mal
fait alors qu'il y a des sources sûres non liées !

Promouvons JS !


par    - 11/01/2011 | 0 commentaire(s) |

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 avec des fichiers, des strings générés dynamiquement et des dossiers.

Pour résumé, c'est très facile. Essayez, vous verrez ;)

Le resultat n'est pas encore très beau ni designé mais il est en ligne ici.


par    - 10/01/2011 | 0 commentaire(s) |

Stats par FAI
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.


par    - 06/01/2011 | 0 commentaire(s) |

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, il y a des mais.

Au bout d'un moment, quand on veut développer sérieusement, ça ne suffit plus. Après le FTP pourri de free (il faut dire ce qui est wink), je viens de tomber sur un hébergeur américain aux services déplorables (ou alors n'ai-je pas eu de chance ?) :
http://x10hosting.com/ où est hébergé mon raccourcisseur d'url : http://nu.x10.bz/

J'ai donc créé un compte. Jusque là, tout va bien mais ça se gâte peu après.

Eneffet, aucun renseignement par la suite. La FAQ est limitée, le support vide, le forum mal foutu. Pour trouver l'adresse du FTP, c'est la galère, moi je dis "vive google" parfois. (Indice, le FTP c'est ftp.urldetonsite)

Une fois ce problème réglé, j'upload tout, ça fonctionne mieux que le FTP de free ! Bon, ensuite, test, le site fonctionne à merveille, tout va bien vite, c'est cool.

Arrive le lendemain où je trouve un beau

The page you are looking for is
temporarily unavailable. Please try
again later

Wait? What? Why?
Bon, pas grave, il parait que leur support est au top, j'envoie
un ticket. Réponse 6-7h après (sans notification bien sûr, c'est à toi de revenir de temps en temps...) : en gros, "Le serveur va bien, le site fonctionne". Le lendemain matin, je regarde, effectivement, ça fonctionne, c'est lent mais ça fonctionne. Mais, l'après-midi, re-belote. J'ai l'impression que la version gratuite de cette hébergeur n'est pas très puissante et arrive vite sur les rotules à certaines heures. Bref, même pour un projet perso, ça ne vaut pas le coup.

C'est décidé, je ne passe plus par du gratuit (à moins d'avoir été testé et approuvé pendant 1 mois minimum par moi même par des tests d'endurance et de vitesse).
Pour l'instant, shikiryu.com est hébérgé chez OVH mais en mutualisé (à ~18€ l'année, nom de domaine inclu, c'est pas la mort), c'est mieux mais c'est pas encore top.

Prochaine étape le vrai serveur.