Yriase le retour … du futur !

Posté par seiyar81 le 14 janvier 2012 | Laisser un commentaire (0)

Cela fait maintenant presque un an que je n’ai rien posté sur Yriase !
La faute à beaucoup de choses, tout d’abord à la fin de mes études. Stage de 6 mois, rapport, mémoire, déménagement, puis suite à tout ça la rentrée dans la vie active !

Maintenant que le rythme est pris je compte bien me relancer dans la rédaction d’articles et tutoriels pour Yriase en plus de continuer les développements des projets laissés en pause il y a plusieurs mois.

 

Logo QtBlogger

QtBlogger par exemple n’a pas avancé depuis un moment alors qu’il est pourtant dans un stade plutôt avancé de réalisation, les principales tâches étant la correction de bugs, la création de plugins, la traduction du logiciel et la création des scripts de génération du projet sous Windows et Linux dans un premier temps.

 

A très bientôt donc pour de nouvelles aventures !

Catégorie: Yriase | Laisser un commentaire (0)

Plugin pour Prestashop : Google Advanced Sitemap

Posté par seiyar81 le 17 février 2011 | Laisser un commentaire (26)

EDIT 23/11 : Pas de nouveaux articles depuis un moment, le temps libre me manque, toutefois j’ai reçu beaucoup de demandes concernant des mises à jour où des évolutions pour le module. Il faut savoir que le module de base de Prestashop 1.4 (Google Sitemap) intègre de base le support des images, d’une manière plus stable que mon module ce qui le rend obsolète.
Si je trouve un jour le temps, je le mettrai peut-être à jour pour la version 1.4 avec le ping des autres moteurs et sûrement d’autres fonctionnalités.
Merci à tous pour vos retours et suggestions.

EDIT 17/02 : Mise à jour du module : ajout du ping des moteurs Bing et Yahoo.

Ayant travaillé récemment sur la solution e-commerce Prestashop, proposé par la société éponyme, j’ai cherché à mettre en place le classique fichier sitemap.

Il existe un module, intégré de base à la solution qui permet de générer un fichier avec tous les liens du sites : produits, catégories, CMS etc…
Mais bizarrement, ce module appelé Google Sitemap ne gère pas les images, pourtant partie intégrante d’une boutique en ligne.

Qu’à cela ne tienne, j’ai modifié le module afin d’ajouter :

  • le support des balises <image:image>
  • quelques statistiques en plus lors de la génération du fichier
  • la possibilité de pinger Google directement

et ainsi est né Google Advanced Sitemap !

L’archive zip du module est téléchargeable via le lien ci-dessous. Il est bien évidemment distribué sous la licence GPL.

  Google Advanced Sitemap (14,6 KiB, 727 hits)

Je le mettrai peut-être à jour avec quelques fonctionnalités en plus d’ici quelques temps.

Catégorie: Développement Web, Internet, PHP | Laisser un commentaire (26)

Giganews persiste et signe : 900 jours de rétention annoncés

Posté par seiyar81 le 24 janvier 2011 | Laisser un commentaire (0)
Giganews Usenet Newsgroup

Giganews Usenet récidive une fois de plus en affichant aujourd’hui un taux de rétention historique de 900 jours !
Grâce à un système de clusters ingénieux et performant, les articles vieux de 900 jours sont traités exactement de la même façon que les articles récents.

Actuellement, le système Usenet grandit de quasiment 9 Téraoctets par jour. Mais cela ne semble pas faire peur au numéro un mondial des fournisseurs d’accès Usenet qui annonce vouloir aller encore plus loin dans la rétention des articles.

Avec un taux de 700 jours atteint en Juillet de l’année passée, 800 en Octobre et 900 en Janvier 2011, rendez-vous en Avril pour les 1000 jours ?

On ne peut que l’espérer, mais Giganews Usenet poursuit dans sa lancée et compte bien rester au top de l’innovation et confirmer ainsi son statut de leader du monde Usenet.

Catégorie: Geek, Internet | Laisser un commentaire (0)

QtBlogger : avancement du projet

Posté par seiyar81 le 21 décembre 2010 | Laisser un commentaire (0)

Logo QtBlogger

Quelques petites nouvelles sur l’avancement du développement de QtBlogger, qui me prend beaucoup de temps comme on peut facilement l’imaginer.

J’ai choisi de rendre le programme le plus modulable possible, ainsi on peut très facilement créer des plugins pour :
- le plus intéressant : les plates-formes de blogging ! via une API commune il est très simple d’ajouter une interface vers la plate-forme de son choix, pour l’instant existent des plugins pour WordPress (extensible via une extension qui ajoute des fonctionnalités notamment la gestion des médias, des plugins, des tags et des liens et plus encore à venir ;) ), les API MetaWeblog et Blogger 1.0, et enfin un plugin pour Blogger en cours de développement.

- des plugins « classiques » qui ajoutent des fonctionnalités à QtBlogger, pour l’instant 2 plugins existent : Clicky (visualiser ses stats) et DbManager (un gestionnaire de base de données)

- des plugins pour l’éditeur d’image intégré, pour ajouter des manipulations d’images par exemple

- des plugins pour la recherche d’image intégrée, un plugin correspond à un moteur de recherche, pour l’instant : Google Images, Bing Images, Picasa, Flickr et d’autres à venir

Le développement du plugin pour Blogger est en cours et j’attaquerai bientôt le développement des plugins pour LiveJournal et TypePad.

Je dois en même temps mettre en place un site pour présenter QtBlogger et ajouter les différents plugins à télécharger, des news etc…

Sachez aussi que je prévois d’intégrer un outil de mise à jour automatique pour les plugins et le logiciel lui-même.

Catégorie: Qt, Wordpress, Yriase | Laisser un commentaire (0)

Créer un calendrier dynamique en Javascript avec FullCalendar

Posté par seiyar81 le 24 octobre 2010 | Laisser un commentaire (0)

Comme on le sait jQuery possède un nombre de plugins tout simplement énorme ! Il y a certes du tri à faire et certains plugins tente de réinventer la roue, en vain…

FullCalendar ne fait pas partie de ceux-là. Vous avez besoin d’ajouter un calendrier permettant une gestion des évènements, un affichage par jour/semaine/mois, et thèmable ? Alors il vous faut FullCalendar !

Le plugin offre plusieurs vues pour afficher les évènements : par jour, semaine, mois avec des versions type agenda ou basique.
Un de ces autres points forts c’est d’être compatible avec jQuery UI et il s’adapte ainsi à votre thème tout seul, plutôt pratique.
Une extension lui permet même de récupérer les évènements de votre Google Calendar !

Voyons voir un peu comment le mettre en place :

	$(document).ready(function() {

		var date = new Date();
		var d = date.getDate();
		var m = date.getMonth();
		var y = date.getFullYear();

		$('#calendar').fullCalendar({
			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'month,agendaWeek,agendaDay'
			},
			theme: true,
			editable: true,
			events: [
				{
					id: 1
					title: 'Aller sur Yriase.fr',
					start: new Date(y, m, 28),
					end: new Date(y, m, 29),
					url: 'http://www.yriase.fr/',
					allDay: true
				},
				{
					id: 2
					title: 'Nourrir le chat !',
					start: new Date(y, m, 28, 8, 0),
					end: new Date(y, m, 29, 8, 15),
					allDay: false
				}
			]
		});

	});

Ce bout de code plutôt simple, inialise votre Calendrier avec 2 évènements et l’adaptation au thème jQuery UI. Le proriété editable indique que les évènements ne peuvent être déplacés (peut être remplacée par la propriété editable de chanque évènement).

Comme vous pouvez le constater les évènements sont en réalité des objets JSON, auxquels on peut donc ajouter des proriétés.
Ainsi on peut par exemple ajouter une propriété type qui pourrait nous permettre de filtrer les évènements par type.
Ce qui serait encore mieux serait de pouvoir ajouter un bouton ou ensemble de boutons pour filtrer, qui soient intégrés au calendrier.
Ca tombe bien, j’avais prévu d’expliquer comme faire !

Le but de la manoeuvre est simple, ajouter des boutons au calendrier simplement en modifiant les valeurs dans la déclaration de la propriété header. Par exemple :

			header: {
				left: 'prev,next today',
				center: 'title',
				right: 'all,mandatory,not_mandatory month,agendaWeek,agendaDay'
			}

On ajoute ici trois boutons donc all,mandatory, not_mandatory pour afficher/cacher les évènements obligatoires ou pas. Pas très original mais c’est bon pour l’exemple !

Maintenant il va nous falloir modifier un petit peu le fichier fullcalendar.js.
Aux alentours de la ligne 80, la déclaration de la propriété buttonText.
Ajouter au tableau les lignes :
all: ‘All’,
mandatory: ‘Mandatory’,
not_mandatory: ‘Not Mandatory’,

Ensuite vers la ligne 710 cherchez :

              if (publicMethods[buttonName]) {
			buttonClick = publicMethods[buttonName];
	      }
	       else if (views[buttonName]) {
			buttonClick = function() {
			  button.removeClass(tm + '-state-hover');
			  changeView(buttonName)
			};
	     }

et ajoutez après :

else {
      buttonClick = function() {
	button.removeClass(tm + '-state-hover');
        button.addClass(tm + '-state-active');
        if(button.hasClass('fc-button-all')) {
              $('.fc-button-mandatory').removeClass(tm + '-state-active');
              $('.fc-button-not_mandatory').removeClass(tm + '-state-active');
        } else if (button.hasClass('fc-button-mandatory')) {
              $('.fc-button-all').removeClass(tm + '-state-active');
              $('.fc-button-not_mandatory').removeClass(tm + '-state-active');
        } else if (button.hasClass('fc-button-not_mandatory')) {
              $('.fc-button-all').removeClass(tm + '-state-active');
              $('.fc-button-mandatory').removeClass(tm + '-state-active');
        }
      };
 }

Cette partie s’occupe de marquer comme actif le bouton cliqué.
Enfin juste après se trouve cette partie :

if (icon) {
	button = $("
"); } else if (text) { ...

Mettez dans le corps du else if(text) :

if(buttonName == 'all')
  button = $("


");
else
  button = $("


");

Maintenant il ne vous reste plus qu’a mettre en place les fonctions pour filtrer les évènements selon leur type.
Mais ça ce sera pour une autre fois !

Catégorie: Développement Web, Javascript | Laisser un commentaire (0)

Giganews atteint 800 jours de rétention

Posté par seiyar81 le 17 octobre 2010 | Laisser un commentaire (0)
Giganews Usenet Newsgroup

Giganews Usenet vient d’officialiser son passage à 800 jours de rétention binaire assurée ! D’abord le premier à atteindre 1 an de rétention puis 2 aujourd’hui la limite des 800 jours vient d’être atteinte et ce n’est pas fini !

En effet Giganews Usenet compte bien continuer sur sa lancée et proposer à ses clients bien plus que 800 jours, avec comme objectif de toujours garder au minimum 99% de complétion.

A noter également que de nouvelles fonctionnalités ont été ajoutées à VyprVPN, le sevice de VPN offert avec l’abonnement Diamond de Giganews Usenet.
On peut maintenant se connecter au VPN via L2TP, OpenVPN et PPTP !

De plus il est possible de rajouter pour 5$/mois une option ajoutant un pare-feu NAT.
Ce pare-feu protège votre connexion VPN en rejetant par exemple les paquets envoyés par des personnes mal intentionnées.
A essayer d’urgence donc ! Plus de détail sur le blog de Golden Frog.

Catégorie: Brèves, Geek, Internet | Laisser un commentaire (0)

QtBlogger : quelques nouvelles

Posté par seiyar81 le 15 octobre 2010 | Laisser un commentaire (0)

Logo QtBlogger

Pas de news depuis un moment, essentiellement à cause du temps que prend le développement de QtBlogger et aussi mon activité professionnelle.
La moindre des choses est donc de donner des news de l’avancement du projet !

Plusieurs fonctionnalités sont maintenant pleinement opérationnelles :

  • Gestions des articles et des pages
  • Gestion des commentaires (par articles ou bien tous)
  • Gestion des mots-clefs/catégories
  • Gestion des médias : partie très importante de QtBlogger
    • l’éditeur d’image possède un système de plugin pour lui ajouter des fonctionnalités
    • filtrages des médias par mots-clefs
  • Gestion des paramètres : tous les paramètres du blog peuvent être gérés via QtBlogger

Voilà pour une liste succinte des fonctionnalités présentes, les principales à venir sont :

  • Gestion des plugins du blog : activation/désactivation, mises à jour, et prise en charge des options
  • Suggestion d’image pendant la rédaction des articles/pages
  • Gestion des liens, des templates, des widgets et enfin un éditeur pour modifier les fichiers (coloration syntaxique etc)

Maintenant on retourne travailler avant de revenir donner d’autres nouvelles !

Catégorie: Qt, Wordpress, Yriase | Laisser un commentaire (0)

QtBlogger : Gérer son blog à distance

Posté par seiyar81 le 1 septembre 2010 | Laisser un commentaire (0)

La fin de l’été signifie pour beaucoup de monde la fin des vacances, la reprise du travail (souvent pénible) ou bien des études, le retour à nos bonnes vieilles habitudes et au train-train quotidien.

Pour d’autres (comme moi ^^) cela signifie qu’il reste encore un peu de temps avant la reprise des études pour se consacrer à nos projets personnels.

Ainsi, depuis quelques temps déjà en développement, j’annonce officiellement le logiciel QtBlogger !

Logo QtBlogger

Comme son nom l’indique, le logiciel a pour but de vous aider dans la gestion de votre blog avec plusieurs modules comme la gestion des articles et des pages, des tags et des catégories, mais aussi des médias (avec des possibilités de retouche d’image) des plugins etc.

Le logiciel utilisera l’API XML-RPC de WordPress et possèdera des fonctionnalités avancées. Couplé à un plugin WordPress ajoutant les fonctions permettant de gérer, entre autres, les médias, les possibilités sont immenses.

Côté technique, le logiciel est développé avec la version 4.7 de Qt et la librairie Qxt.

J’espère pouvoir donner d’autres nouvelles sur l’avancement du développement d’ici très bientôt.

PS : cet article a été rédigé avec une première version du logiciel !

EDIT : Plus d’informations seront mises en ligne sur la page du logiciel disponible ici ou sur la page du projet chez Sourceforge.

Catégorie: Qt, Wordpress, Yriase | Laisser un commentaire (0)

Utiliser Google Font API pour ajouter des polices à ses pages Web

Posté par seiyar81 le 2 août 2010 | Laisser un commentaire (0)

Parmis les nombreuses API disponibles dans ses Code Labs, Google a mis en place une API particulièrement intéressante : Google Font API !

Cette dernière nous permet très simplement d’inclure une ou plusieurs polices hébergées sur les serveurs de Google via un simple fichier CSS.

Un petit exemple pour illustrer le tout, dans la balise head :

<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css' />

Et plus loin dans le corps de la page :

<span style="font-family: 'Lobster', arial, serif; font-size: 16px;">Hello World !</span>

Ce qui donne le résultat suivant :

Hello World

Tout de même bien pratique cette API ! Vous pouvez consulter la liste des polices disponibles sur cette page.

Sachez qu’il est aussi possible d’utiliser un script Javascript co-développé par Google et TypeKit : WebFont Loader.

Rien de bien compliqué ici non plus, si ce n’est que vous pouvez mieux contrôler le chargement des polices via WebFont Loader :


      WebFontConfig = {
        google: { families: [ 'Lobster', 'Nobile' ] }
      };
      (function() {
        var wf = document.createElement('script');
        wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
            '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
        wf.type = 'text/javascript';
        wf.async = 'true';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(wf, s);
      })();

Vous pouvez ensuite définir vos styles comme ceci :

<style>
      .wf-inactive p {
        font-family: serif
      }
      .wf-active p {
        font-family: 'Lobster', serif
      }
      .wf-inactive h1 {
        font-family: serif;
        font-size: 18px
      }
      .wf-active h1 {
        font-family: 'Nobile', serif;
        font-size: 18px
      }
</style>

L’avantage de WebFont Loader est qu’il supporte le chargement de polices via plusieurs fournisseurs. Ainsi vous pouvez charger des polices provenant des serveurs de Google mais aussi de TypeKit, Ascender, et même de n’importe quel fournisseur via un loader dit « custom » :

WebFontConfig = {
  custom: { families: ['OneFont', 'AnotherFont'],
    urls: [ 'http://www.yriase.fr/mystylesheet1.css',
      'http://www.weblike.me/stylesheet2.css' ] }
};
Catégorie: Développement Web, Javascript | Laisser un commentaire (0)

Zend Framework : Une feuille de style par action

Posté par seiyar81 le 19 juillet 2010 | Laisser un commentaire (1)

Je partage une petite astuce qui m’est venue en développant aujourd’hui. Quand on travaille sur des applications plutôt importantes, on peut être amené à vouloir segmenter le CSS.

En effet un seul gros fichier avec toutes les classes dedans, c’est pas beau et c’est beaucoup plus difficile à maintenir que plusieurs fichiers, chacun contenant les classes et styles utilisées dans la vue.

Pour ajouter automatiquement une feuille de style correspondante à une action,  rien de plus simple, il suffit de placer le code suivant dans le(s) contrôlleur(s) souhaités :

  public function init()
  {
    $this->view->headLink()->appendStylesheet('/css/'.$this->getRequest()->getActionName().'.css');
  }

Ainsi, l’action index aura son fichier index.css et ainsi de suite !

Catégorie: Développement Web, PHP, Zend Framework | Laisser un commentaire (1)