<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yriase &#187; Google</title>
	<atom:link href="http://www.yriase.fr/tag/google/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yriase.fr</link>
	<description>Actu, Développement, Tutoriaux, Geek ...</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:33:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Plugin pour Prestashop : Google Advanced Sitemap</title>
		<link>http://www.yriase.fr/876-plugin-pour-prestashop-google-advanced-sitemap.html</link>
		<comments>http://www.yriase.fr/876-plugin-pour-prestashop-google-advanced-sitemap.html#comments</comments>
		<pubDate>Thu, 17 Feb 2011 12:25:40 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=876</guid>
		<description><![CDATA[EDIT 23/11 : Pas de nouveaux articles depuis un moment, le temps libre me manque, toutefois j&#8217;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&#8217;une manière plus [...]]]></description>
			<content:encoded><![CDATA[<div class="post-pic"><img src="http://www.yriase.fr/wp-content/uploads/2011/01/prestashop.png" alt="" title="Prestashop" width="670" height="100" class="alignnone size-full wp-image-877" /></div>
<p><strong>EDIT 23/11 : </strong> Pas de nouveaux articles depuis un moment, le temps libre me manque, toutefois j&#8217;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&#8217;une manière plus stable que mon module ce qui le rend obsolète.<br />
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&#8217;autres fonctionnalités.<br />
Merci à tous pour vos retours et suggestions.</p>
<p><strong>EDIT 17/02 : </strong>Mise à jour du module : ajout du ping des moteurs Bing et Yahoo. </p>
<p>Ayant travaillé récemment sur la solution e-commerce Prestashop, proposé par la société éponyme, j&#8217;ai cherché à mettre en place le classique fichier <em>sitemap</em>.</p>
<p>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&#8230;<br />
Mais bizarrement, ce module appelé <em>Google Sitemap</em> ne gère pas les images, pourtant partie intégrante d&#8217;une boutique en ligne.</p>
<p>Qu&#8217;à cela ne tienne, j&#8217;ai modifié le module afin d&#8217;ajouter : </p>
<ul>
<li>le support des balises &lt;image:image&gt;</li>
<li>quelques statistiques en plus lors de la génération du fichier</li>
<li>la possibilité de pinger Google directement</li>
</ul>
<p>et ainsi est né <em>Google Advanced Sitemap</em> !</p>
<p>L&#8217;archive zip du module est téléchargeable via le lien ci-dessous. Il est bien évidemment distribué sous la licence GPL.</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Je le mettrai peut-être à jour avec quelques fonctionnalités en plus d&#8217;ici quelques temps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/876-plugin-pour-prestashop-google-advanced-sitemap.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Utiliser Google Font API pour ajouter des polices à ses pages Web</title>
		<link>http://www.yriase.fr/834-utiliser-google-font-api-pour-ajouter-des-polices-a-ses-pages-web.html</link>
		<comments>http://www.yriase.fr/834-utiliser-google-font-api-pour-ajouter-des-polices-a-ses-pages-web.html#comments</comments>
		<pubDate>Mon, 02 Aug 2010 10:25:06 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=834</guid>
		<description><![CDATA[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&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">Parmis les nombreuses API disponibles dans ses Code Labs, Google a mis en place une API particulièrement intéressante : Google Font API !</span></p>
<p><span style="font-size: small;">Cette dernière nous permet très simplement d&#8217;inclure une ou plusieurs polices hébergées sur les serveurs de Google via un simple fichier CSS.</span></p>
<p><span style="font-size: small;">Un petit exemple pour illustrer le tout, dans la balise head : </span></p>
<p><span style="font-size: small;"> </span></p>
<pre class="brush: php"><span style="font-size: small;">&lt;link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css' /&gt;</span></pre>
<p><span style="font-size: small;">Et plus loin dans le corps de la page : </span></p>
<p><span style="font-size: small;"> </span></p>
<pre class="brush: php"><span style="font-size: small;">&lt;span style="font-family: 'Lobster', arial, serif; font-size: 16px;"&gt;Hello World !&lt;/span&gt;</span></pre>
<p><span style="font-size: small;">Ce qui donne le résultat suivant : </span></p>
<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css' />
<span style="font-family: 'Lobster', arial, serif; font-size: 16px;">Hello World</span></p>
<p><span style="font-size: small;">Tout de même bien pratique cette API ! Vous pouvez consulter la liste des polices disponibles sur <a title="WebFonts Google Font API" href="http://code.google.com/webfonts" target="_blank">cette page</a>.</span></p>
<p><span style="font-size: small;">Sachez qu&#8217;il est aussi possible d&#8217;utiliser un script Javascript co-développé par Google et <a href="http://typekit.com/">TypeKit</a> : WebFont Loader.</span></p>
<p><span style="font-size: small;"><span style="font-size: x-small;"><span>Rien de bien compliqué ici non plus, si ce n&#8217;est que vous pouvez mieux contrôler le chargement des polices via WebFont Loader :</span></span></span></p>
<p><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-size: 10px;"><br />
</span></span></span></p>
<pre class="brush: jscript">      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);
      })();
</pre>
<p>Vous pouvez ensuite définir vos styles comme ceci :</p>
<pre class="brush: css">&lt;style&gt;
      .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
      }
&lt;/style&gt;
</pre>
<p>L&#8217;avantage de WebFont Loader est qu&#8217;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&#8217;importe quel fournisseur via un loader dit &laquo;&nbsp;custom&nbsp;&raquo; :</p>
<pre class="brush: jscript">WebFontConfig = {
  custom: { families: ['OneFont', 'AnotherFont'],
    urls: [ 'http://www.yriase.fr/mystylesheet1.css',
      'http://www.weblike.me/stylesheet2.css' ] }
};
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/834-utiliser-google-font-api-pour-ajouter-des-polices-a-ses-pages-web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auditer son site web avec skipfish</title>
		<link>http://www.yriase.fr/720-auditer-son-site-web-avec-skipfish.html</link>
		<comments>http://www.yriase.fr/720-auditer-son-site-web-avec-skipfish.html#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:03:12 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[securité]]></category>
		<category><![CDATA[skipfish]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=720</guid>
		<description><![CDATA[La sécurité est une des principales préoccupations des entreprises concernant leurs données. La sécurité passe par la protection des données, la capacité à se protéger contre les attaques, les intrusions etc… De nombreuses applications payantes existent et permettent d’auditer des sites web comme Nikto ou Nessus. Ces logiciels sont puissants mais skipfish possède un avantage [...]]]></description>
			<content:encoded><![CDATA[<div class="post-pic">
<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="skipfish" border="0" alt="skipfish" src="http://www.yriase.fr/wp-content/uploads/2010/04/skipfish.jpg" width="670" height="100" /></div>
<p>La sécurité est une des principales préoccupations des entreprises concernant leurs données. La sécurité passe par la protection des données, la capacité à se protéger contre les attaques, les intrusions etc…</p>
<p>De nombreuses applications payantes existent et permettent d’auditer des sites web comme <a href="http://cirt.net/nikto2" target="_blank">Nikto</a> ou <a href="http://www.nessus.org/nessus/" target="_blank">Nessus</a>. Ces logiciels sont puissants mais <strong><a href="http://code.google.com/p/skipfish/">skipfish</a></strong> possède un avantage sur ses concurrents : </p>
<p align="center"><em>“Il est rapide et consomme très peu de ressources !”</em></p>
<p align="left">En effet la documentation annonce plus de 500 requêtes par secondes sur Internet, 2000 via un LAN et 7000 en local, tout ceci avec un processeur apparemment modeste. Tout ceci grâce à une bonne gestion du protocole HTTP 1.1, aux appels réseaux asynchrones et enfin grâce l&#8217;implémentation en C du logiciel.</p>
<p>On peut lui passer un bon nombre d&#8217;options comme refuser les cookies, ne pas scanner tel sous-domaine, le nombre maximum de connexions TCP etc&#8230;<br />
Skipfish génère ensuite un fichier HTML très simple et agréable à utiliser. On repère ainsi facilement les erreurs, qui sont d&#8217;ailleurs plutôt bien détaillées.
</p>
<p>
Concernant le logiciel lui-même, il est développé par Michal Zalewski, un développeur polonais pour le compte de Google, et il est disponible sous license <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>
</p>
<p>
Pour l&#8217;installer, il suffit de récupérer <a href="http://skipfish.googlecode.com/files/skipfish-1.29b.tgz">l&#8217;achive tarball</a> puis ensuite :
</p>
<pre class="brush: bash">
tar -xzf skipfish-1.29b.tgz
// On compile
make
// Si vous obtenez des erreurs c'est probablement qu'il vous manque des paquets
sudo apt-get install libidn11 libidn11-dev libssl0.9.8 libssl-dev zlib1g zlin1g-dev

// Si l'installation se déroule bien vous obtenez ce message
See dictionaries/README-FIRST to pick a dictionary for the tool.

Having problems with your scans? Be sure to visit:

http://code.google.com/p/skipfish/wiki/KnownIssues
</pre>
<p>Une fois ceci fait, vous pouvez examiner la doc et surtout l&#8217;aide pour les différentes options.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/720-auditer-son-site-web-avec-skipfish.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Programmer un envoi de SMS avec le Zend Framework et Google Agenda</title>
		<link>http://www.yriase.fr/642-programmer-un-envoi-de-sms-avec-le-zend-framework-et-google-agenda.html</link>
		<comments>http://www.yriase.fr/642-programmer-un-envoi-de-sms-avec-le-zend-framework-et-google-agenda.html#comments</comments>
		<pubDate>Mon, 22 Mar 2010 15:05:29 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=642</guid>
		<description><![CDATA[Si vous développez déjà avec le Zend Framework vous devez connaître ou avoir entendu parler de Zend_Gdata. C&#8217;est, comme son nom l&#8217;indique, un ensemble de classes qui permettent l&#8217;accès aux services en ligne de Google (Google Data API). On a ainsi accès à : Google Spreadsheets Google Documents Youtube Picasa Google Calendar &#8230; Aujourd&#8217;hui je [...]]]></description>
			<content:encoded><![CDATA[<div class="post-pic"><img class="aligncenter size-full wp-image-643" title="google_agenda" alt="Google Agenda" src="http://www.yriase.fr/wp-content/uploads/2010/03/google_agenda.jpg" width="670" height="100" /></div>
<p>Si vous développez déjà avec le Zend Framework vous devez connaître ou avoir entendu parler de Zend_Gdata. C&#8217;est, comme son nom l&#8217;indique, un ensemble de classes qui permettent l&#8217;accès aux services en ligne de Google (Google Data API). On a ainsi accès à :</p>
<ul>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.spreadsheets.html">Google Spreadsheets</a> </li>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.docs.html">Google Documents</a> </li>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.youtube.html">Youtube</a> </li>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.photos.html">Picasa</a> </li>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.calendar.html">Google Calendar</a> </li>
<li>&#8230; </li>
</ul>
<p>Aujourd&#8217;hui je vais expliquer comment se servir de Zend_Gdata pour communiquer avec Google Agenda. Si vous en connaissez le fonctionnement, vous savez qu&#8217;on peut définir des rappels pour les rendez-vous de trois façons : Email, Pop-up ou SMS.<br />
<br />C&#8217;est au SMS que nous nous intéresseront, en effet, utiliser Google Agenda pour l&#8217;envoi de SMS ne vous coutera pas un centime !</p>
<h4>Pré-requis</h4>
<p>Vous devez avant tout disposer de :</p>
<ul>
<li>Un compte Google </li>
<li>Un agenda activé dans Google Agenda </li>
<li>Un numéro de portable associé au compte Google Agenda et vérifié </li>
<li>La dernière version du Zend Framework disponible <a href="http://framework.zend.com/download/latest">ici</a> </li>
<li>Un serveur HTTP avec le support de PHP (peut-être pas besoin de le préciser mais on ne sait jamais :p ) </li>
</ul>
<h4>Mise en situation (enfin essai ^^)</h4>
<p>C’est bien joli d’écrire ce tutoriel mais sans un exemple pratique il peut être difficile d’en voir l’intérêt.<br />
<br />Imaginez que vous développez pour une entreprise qui installe et gère le fonctionnement de panneaux solaires (vous pouvez remplacer panneaux solaires par chaudières, fenêtres, voire même par l’adoption de poissons rouges birmans, si si ça marche aussi !).</p>
<p>Imaginez maintenant que vos clients aient la possibilité via une interface web de créer des “tickets”, ou “alertes” comme vous le sentez, dès lors qu’ils rencontrent un problème auquel ils ne peuvent faire face seuls !<br />
<br />C’est alors que par malheur, vous n’êtes pas joignable au bureau et le client n’a pas votre numéro de portable (si si c’est possible) ! Drâme ! Horreur ! Comment faire ?</p>
<p>Et bien tout simplement en créant un évènement sur votre Google Agenda avec l’option “reminder by SMS” !</p>
<h4>Formulaire</h4>
<p>Vous créez donc un formulaire pour que vos clients puissent expliquer en quelques lignes ce qui se passe avec en bonus une liste pour choisir la priorité du ticket.</p>
<pre class="brush: php">
class Default_Form_Ticket extends Zend_Form
{
    public function __construct($sitesList, $options = null)
    {
        parent::__construct($options);
        $this->setName('ticket_form');
        $this->setAction('/tickets/new')
     	->setMethod('post');
     	$this->setDecorators(array(
	    'FormElements',
	    array('HtmlTag', array('tag' => 'table')),
	    'Form',
		));

        $title = new Zend_Form_Element_Text('title');
        $title->setLabel('Sujet : ')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->setAttrib('size', '50')
        ->addValidator('NotEmpty');
        $title->setDecorators(array(
	    'ViewHelper',
	    'Errors',
	    array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element-input')),
	    array('Label', array('tag' => 'td'), array('tag' => 'td', 'placement' => 'prepend')),
	    array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
		));

        $priority = new Zend_Form_Element_Select('priority');
        $priority->setLabel('Priorité : ')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');
        $priority->addMultiOptions(array('Basse'=>'Basse', 'Normale'=>'Normale', 'Haute'=>'Haute', 'Urgente'=>'Urgente'));
        $priority->setDecorators(array(
	    'ViewHelper',
	    'Errors',
	    array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element-input')),
	    array('Label', array('tag' => 'td'), array('tag' => 'td', 'placement' => 'prepend')),
	    array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
		));

        $message = new Zend_Form_Element_Textarea('message');
        $message->setLabel('Message : ')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->setAttrib('cols', '50')->setAttrib('rows', '15')
        ->addValidator('NotEmpty');
        $message->setDecorators(array(
	    'ViewHelper',
	    'Errors',
	    array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element-input')),
	    array('Label', array('tag' => 'td'), array('tag' => 'td', 'placement' => 'prepend')),
	    array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
		));

        $submit = new Zend_Form_Element_Submit('Soumettre');
        $submit->setAttrib('id', 'submitbutton');
        $submit->setValue('Soumettre');
        $submit->setDecorators(array(
	    'ViewHelper',
	    array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element-submit')),
	    array(array('label' => 'HtmlTag'), array('tag' => 'td', 'placement' => 'prepend')),
	    array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
		));

        $this->addElements(array($title, $priority, $message, $submit));
    }
}
</pre>
<p>Ensuite dans le contrôlleur on instancie le formulaire et on l&#8217;ajoute à la vue et dans le même temps on met en place le code pour la création de l&#8217;évènement.</p>
<pre class="brush: php">
    public function newAction() {
        $form = new Default_Form_Ticket($sitesList);

        if($this->_request->isPost() &#038;&#038; $form->isValid($_POST)) {
            try {
	    /*
		Vous pouvez enregistrer le ticket dans une base de données.
		Nous nous contenterons simplement de l'ajout de l'évènement.
	    */

            $title = 'New Ticket - '.$this->view->user->mail.' - ' . $_POST['title'];
            $message = $_POST['message'];

            $this->createAgendaEvent($title, $message);

            $this->_redirect('/tickets');
            } catch(Exception $e) {
                $this->view->error = 'Une erreur est survenue pendant la création du ticket.';
            }

        }
        $form->populate($_POST);
        $this->view->form = $form;
    }
</pre>
<p>Il ne nous reste plus qu&#8217;à implémenter la fonction <em>createAgendaEvent</em>. Un petit détail toutefois avant de commencer, le reminder se déclenche au minimum 5 min avant le début de l&#8217;évènement. Nous créerons donc un évènement à H+6min.</p>
<pre class="brush: php">
    public function createAgendaEvent($title, $message) {
	// On charge toutes les classes qui vont nous servir
        Zend_Loader::loadClass("Zend_Gdata");
        Zend_Loader::loadClass("Zend_Gdata_ClientLogin");
        Zend_Loader::loadClass("Zend_Gdata_Calendar");
        // On récupère le nom du service
        $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;

        // On s'authentifie
        $client = Zend_Gdata_ClientLogin::getHttpClient('IDENTIFIANT_COMPTE_GOOGLE', 'PASSWORD_COMPTE_GOOGLE', $service);

        // On crée un nouvel objet Calendar
        $calendar = new Zend_Gdata_Calendar($client);

        // On lui ajoute un évènement
        $event = $calendar->newEventEntry();

        // On met en place le reminder
        $reminder = $calendar->newReminder();
        $reminder->method = "sms";
        $reminder->minutes = "5";

        // Date de début à H+6min
        $startDate     = date("Y-m-d");
        $startTime     = date("H:i", time() + 6*60);
        // Date de fin à H+7min
        $endDate     = date("Y-m-d");
        $endTime     = date("H:i", time() + 7*60);
        // Offset GMT+01 pour Paris
        $tzOffset     = "+01";

        // On assigne tout ça au calendrier
        $when = $calendar->newWhen();
        $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
        $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
        $when->reminders = array($reminder);
        $event->when = array($when);

        // Enfin on ajoute le titre et le message
        $event->title = $calendar->newTitle($title);
        $event->content = $calendar->newContent($message);

        // Et on envoit le tout à Google Calendar
        $newEvent = $calendar->insertEvent($event, "http://www.google.com/calendar/feeds/IDENTIFIANT_COMPTE_GOOGLE/private/full");
    }
</pre>
<p>Et là, comme par magie vous recevrez une minute plus tard (oui H+6min &#8211; 5min = 1min !) un gentil SMS de Google avec le titre de l&#8217;évènement.<br />
Si c&#8217;est pas beau ça <img src='http://www.yriase.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>J&#8217;espère que ce tutoriel vous aura plu et/ou servi, je continue avec d&#8217;autres articles sur le Zend Framework très bientôt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/642-programmer-un-envoi-de-sms-avec-le-zend-framework-et-google-agenda.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Le nouveau design de Google !</title>
		<link>http://www.yriase.fr/421-le-nouveau-design-de-google.html</link>
		<comments>http://www.yriase.fr/421-le-nouveau-design-de-google.html#comments</comments>
		<pubDate>Thu, 26 Nov 2009 11:28:41 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Brèves]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=421</guid>
		<description><![CDATA[Confirmation que Google travaille activement à mettre en place un nouveau design pour sa page d&#8217;accueil, il est possible de l&#8217;activer grâce à un simple cookie. Tout d&#8217;abord se rendre sur Google.com. Ensuite copier-coller le code javascript suivant dans la barre d&#8217;adresse de votre navigateur et validez. javascript:void(document.cookie="PREF=ID=20b6e4c2f44943bb: U=4bf292d46faad806:TM=1249677602: LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com"); Rafraîchissez la page de [...]]]></description>
			<content:encoded><![CDATA[<p>Confirmation que Google travaille activement à mettre en place un nouveau design pour sa page d&#8217;accueil, il est possible de l&#8217;activer grâce à un simple cookie.</p>
<p>Tout d&#8217;abord se rendre sur <a title="Google.com" href="http://www.google.com/ncr">Google.com</a>.</p>
<p>Ensuite copier-coller le code javascript suivant dans la barre d&#8217;adresse de votre navigateur et validez.</p>
<pre class="brush: js">
javascript:void(document.cookie="PREF=ID=20b6e4c2f44943bb:
U=4bf292d46faad806:TM=1249677602:
LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com");
</pre>
<p>Rafraîchissez la page de Google.com, repassez sur la version anglaise si vous êtes en français par défaut et &#8216;admirez&#8217; le résultat.</p>
<p>Les nouveaux logos : </p>
<p>Google<br />
<img alt="" src="http://www.google.com/images/srpr/logo1w.png" title="Google" class="alignnone" /></p>
<p>GMail<br />
<img alt="" src="http://mail.google.com/mail/help/images/logo2.gif" title="GMail" class="alignnone" width="143" height="59" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/421-le-nouveau-design-de-google.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome OS : la présentation</title>
		<link>http://www.yriase.fr/371-chrome-os-la-presentation-en-video.html</link>
		<comments>http://www.yriase.fr/371-chrome-os-la-presentation-en-video.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 19:18:40 +0000</pubDate>
		<dc:creator>
<img alt="" src="http://0.gravatar.com/avatar/8d419a54322fb4b031f344a82a2f58ea?s=12&amp;d=identicon&amp;r=G" class="avatar avatar-12 photo" height="12" width="12" style=" border: 1px solid; border-color: #000000;"/>
seiyar81</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.yriase.fr/?p=371</guid>
		<description><![CDATA[Google a rendu public le code source de Chromium OS, système d&#8217;exploitation open-source destiné à devenir Chrome OS. Le code source est disponible au téléchargement ici : Code Source ou via un dépôt Git. Tout est expliqué sur le blog de Google : Blog Enfin un article résume la sortie de l&#8217;OS : Article Au [...]]]></description>
			<content:encoded><![CDATA[<p>Google a rendu public le code source de Chromium OS, système d&#8217;exploitation open-source destiné à devenir Chrome OS.</p>
<p>Le code source est disponible au téléchargement ici : <strong><a href="http://build.chromium.org/buildbot/archives/chromiumos-0.4.22.8.tar.gz">Code Source</a></strong><br />
ou via un dépôt Git.</p>
<p>Tout est expliqué sur le blog de Google : <strong><a href="http://www.chromium.org/chromium-os/building-chromium-os/getting-the-chromium-os-source-code">Blog</a></strong></p>
<p>Enfin un article résume la sortie de l&#8217;OS : <strong><a href="http://googleblog.blogspot.com/2009/11/releasing-chromium-os-open-source.html?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed:+blogspot/MKuf+(Official+Google+Blog)">Article</a></strong></p>
<p>Au premières nouvelles donc et en vrac : </p>
<p>- Les disques durs seraient écartés au profit d&#8217;autre(s) type(s) de stockage : in the cloud, mémoire flash ? On ne sait pas encore pour l&#8217;instant.</p>
<p>- Toutes les applications sont des applications en ligne, tout se passe donc via la navigateur, aucune application de bureau</p>
<p>- Conséquence directe de ceci et pour des raisons de sécurité évidentes, Chrome OS ne fera pas confiance par défaut aux applications</p>
<p>- A chaque redémarrage, Chrome OS vérifiera l&#8217;intégrité de son code, et s&#8217;il a été compromis par un virus ou autre il sera à même de se réparer tout seul.</p>
<p>- Lorsque l&#8217;utilisateur voudra se connecter, Chrome OS va tenter de récupérer le compte Google associé, sinon il cherchera un compte local et à chaque connexion réussie en ligne, les identifiants seront mis en cache.</p>
<p>- Les plugins du navigateur auront un processus dédié.</p>
<p>- Mises à jour automatiques sans intervention de l&#8217;utilisateur, via HTTPS et signés par le serveur de mises à jours.</p>
<p>Et plein de choses très intéressantes et qui nous laissent présager que Chrome OS sera un système d&#8217;exploitation très intéressant !</p>
<p>Pour plus de lecture, plusieurs documents sont en ligne pour expliquer le fonctionnement de l&#8217;OS : <a href="http://sites.google.com/a/chromium.org/dev/chromium-os">Chromium OS</a>.</p>
<p>Et pour les plus anglophone une petite vidéo de 3 minutes présentant Chrome OS :</p>
<p>Le lien direct : <a href="http://www.youtube.com/watch?v=0QRO3gKj3qw">http://www.youtube.com/watch?v=0QRO3gKj3qw</a></p>
<div style="width : 580px; float : left; margin : 0 0 10px 50px; clear : both;">
<object width="580" height="360"><param name="movie" value="http://www.youtube.com/v/0QRO3gKj3qw&#038;hl=fr_FR&#038;fs=1&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0QRO3gKj3qw&#038;hl=fr_FR&#038;fs=1&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="360"></embed></object>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yriase.fr/371-chrome-os-la-presentation-en-video.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

