<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2797154551240068544</id><updated>2012-01-20T14:05:26.257+01:00</updated><category term='mylife'/><category term='stage'/><category term='securite'/><category term='informatique'/><category term='gloire'/><category term='divers'/><category term='HG'/><category term='flex'/><category term='google'/><title type='text'>Défense de me faire travailler</title><subtitle type='html'>Un blog poubelle où je jette ce qui me passe par la tête ou sous la main</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-1369877613261929004</id><published>2011-08-31T19:45:00.005+02:00</published><updated>2012-01-16T17:16:36.486+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>Capitaine Spock et les tests unitaires</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Spock" target="_blank"&gt;&lt;img alt="Capitain Spock" src="http://upload.wikimedia.org/wikipedia/en/4/4c/SpockVulcan.jpg" style="float: right; height: 121px; margin-bottom: 5px; margin-left: 5px; margin-right: 5px; margin-top: 5px; width: 100px;" /&gt;&lt;/a&gt;Spock est framework open source de test qui permet de définir une spécification de test. L'approche est plus structurée que Junit. Je vous laisse découvrir :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un &lt;a href="http://www.wakaleo.com/blog/303-an-introduction-to-spock" target="_blank"&gt;article de présentation&lt;/a&gt; (en)&lt;/li&gt;&lt;li&gt;Une &lt;a href="http://www.aqris.com/display/DEV/2010/01/19/Testing+with+Spock" target="_blank"&gt;autre présentation&lt;/a&gt; (en)&lt;/li&gt;&lt;li&gt;Le &lt;a href="http://code.google.com/p/spock/" target="_blank"&gt;site du framework&lt;/a&gt; (en)&lt;/li&gt;&lt;li&gt;Une &lt;a href="http://code.google.com/p/spock/wiki/GettingStarted" target="_blank"&gt;explication sur comment l'intégrer&lt;/a&gt; dans un projet Maven/Gradle/Ant ou dans Eclipse (en)&lt;/li&gt;&lt;li&gt;Un &lt;a href="http://meetspock.appspot.com/" target="_blank"&gt;site pour tester Spock&lt;/a&gt; (en)&lt;/li&gt;&lt;li&gt;Le &lt;a href="http://upload.wikimedia.org/wikipedia/en/4/4c/SpockVulcan.jpg" target="_blank"&gt;véritable capitaine Spock&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Article rédigé pour la plateforme de capitalisation technique de &lt;a href="http://www.sword-group.com/" target="_blank"&gt;Sword&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-1369877613261929004?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1369877613261929004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1369877613261929004'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/08/capitaine-spock-et-les-tests-unitaires.html' title='Capitaine Spock et les tests unitaires'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-5058584270868654418</id><published>2011-07-11T13:12:00.001+02:00</published><updated>2012-01-16T17:46:05.327+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='securite'/><title type='text'>Authentification sur LDAP avec SpringSecurity</title><content type='html'>&lt;a href="http://static.springsource.org/spring-security/site/"&gt;Spring Security &lt;/a&gt;est un projet de &lt;a href="https://www.springsource.com/"&gt;Spring Source &lt;/a&gt;anciennement appelé &lt;a href="http://www.acegisecurity.org/"&gt;Acegi Security&lt;/a&gt;. Le framework a beaucoup évolué depuis en s'étoffant de nombreux connecteurs et en améliorant son intégration avec &lt;a href="http://www.springsource.org/about"&gt;Spring framework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Dans cet article, nous allons aborder la méthode d'authentification LDAP (Windows Active Directory, Open LDAP...) à travers Spring Security. Les détails de l'utilisation de l'autorisation (droit d'effectuer certaines opérations) ne seront pas évoqués ici, le sujet étant déjà &lt;a href="http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity.html"&gt;largement documenté&lt;/a&gt;. La référence du framework comprend tout un &lt;a href="http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ldap.html"&gt;chapitre dédié à l'interaction avec un LDAP&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Les annuaires LDAP&lt;/span&gt;&lt;/h1&gt;Un annuaire LDAP est un système de gestion des informations associées aux acteurs d'un SI (utilisateurs, machines, équipements électroniques...). Le principal rôle de l'annuaire est de stocker les informations des utilisateurs et de permettre grâce à des mécanismes simples de rechercher, tri et organiser l'information.&lt;br /&gt;Les annuaires LDAP proposent une organisation hiérarchique de l'information. Chaque élément est contenu dans les éléments parents (groupes, unités organisationnelles ou physiques...).&lt;br /&gt;La fonctionnalité qui nous intéresse est la possibilité d'authentifier les utilisateurs. L'annuaire LDAP possède le login de l'utilisateur et le password (hashé), il peut ainsi authentifier de manière sûre un utilisateur. Les annuaires ont aussi la possibilité d'enregistrer une liste de rôles attribués aux utilisateurs. Ces rôles permettent de différencier des profils d'utilisateurs pour les offrir des autorisations différentes.&lt;br /&gt;&lt;a href="http://fr.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol"&gt;LDAP &lt;/a&gt;n'est pas une implémentation d'annuaire, mais uniquement une norme respectée par de nombreux grands systèmes d'annuaires (Windows Active Directory, Open LDAP, &lt;a href="http://fr.wikipedia.org/wiki/Apache_Directory_Server" title="Apache Directory Server"&gt;Apache Directory Server&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.novell.com/products/edirectory/" rel="nofollow"&gt;Novell eDirectory&lt;/a&gt;,&amp;nbsp;&lt;a href="http://fr.wikipedia.org/wiki/IBM_Lotus_Domino" title="IBM Lotus Domino"&gt;IBM Lotus Domino&lt;/a&gt;...).&lt;br /&gt;Dernier point d'importance, LDAP dispose d'une règle de nommage permettant de gérer les organisations hiérarchiques. Par exemple, le&amp;nbsp;Distinguished Name&amp;nbsp;(DN)&amp;nbsp;&lt;span style="font-family: monospace, 'Courier New';"&gt;cn=Jean,ou=gens,dc=EXEMPLE,dc=FR&amp;nbsp;&lt;/span&gt;est composé des éléments suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CN (common name) = jean ⇒&amp;nbsp;Le nom de l'utilisateur&lt;/li&gt;&lt;li&gt;OU (Organisation Unit) = gens&amp;nbsp;⇒ Le groupe contenant les utilisateurs (ou=machines pour les PC par exemple...)&lt;/li&gt;&lt;li&gt;DC (Domain component)&amp;nbsp;dc=EXEMPLE,dc=FR&amp;nbsp;&amp;nbsp;⇒ exemple.fr, le domaine du ldap&lt;/li&gt;&lt;/ul&gt;Le DN d'un utilisateur permet de l'identifier de façon unique dans l'annuaire.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Le principe de l'authentification sur LDAP&lt;/span&gt;&lt;/h1&gt;Le processus d'authentification sur un LDAP s'appelle un &lt;a href="http://fr.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Bind_.28authentification.29"&gt;BIND&lt;/a&gt;. Il permet de fournir au système LDAP un DN d'utilisateur et un mot de passe (généralement chiffré).&lt;br /&gt;Avant de pouvoir faire un bind, il est nécessaire de récupérer le DN de l'utilisateur. Il n'est pas réaliste de demander à l'utilisateur son DN complet. La première étape est donc généralement une recherche dans l'annuaire sur un attribut (login de l'utilisateur) dans un répertoire de l'annuaire (les utilisateurs généralement).&lt;br /&gt;Une fois le bind réalisé, il est possible de demander des informations supplémentaires à l'annuaire comme par exemple les rôles de l'utilisateur (administrateur, membre d'une liste de diffusion...). Ces éléments pourront être réutilisés dans Spring Security pour automatiser l'attribution d'autorisations.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Exemple d'utilisation&lt;/span&gt;&lt;/h1&gt;L'exemple suivant montre comment intégrer l'authentification ldap dans un projet comprenant déjà une authentification simple (BDD par exemple) basée sur Spring Security.&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;L'AuthenticationManager de Spring Security&lt;/span&gt;&lt;/h2&gt;Ici on configure un authentication-manager grâce à un schéma xml spring security spécialisé. La balise authentication-manager crée automatiquement l'object authentication manager avec une configuration standard efficace. Les enfants de cette balise sont les différentes sources d'authentification utilisée :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L'authentification provider ldap (ldapAuthProvider)&lt;/li&gt;&lt;li&gt;Un autre authentification provider définissant un &lt;a href="http://en.wikipedia.org/wiki/Salt_(cryptography)"&gt;sel &lt;/a&gt;et un service spécialisé (proxyUserDetailsService2)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre&gt;&amp;lt;authentication-manager alias="authenticationManager"&amp;gt;&lt;br /&gt;   &lt;br /&gt;         &amp;lt;authentication-provider ref="ldapAuthProvider"&amp;gt;&lt;br /&gt;          &lt;br /&gt;         &amp;lt;authentication-provider user-service-ref="proxyUserDetailsService2"&amp;gt;&lt;br /&gt;               &amp;lt;password-encoder ref="passwordEncoder"&amp;gt;&lt;br /&gt;                     &amp;lt;salt-source ref="saltSource"&amp;gt;&lt;br /&gt;               &amp;lt;/salt-source&amp;gt;&amp;lt;/password-encoder&amp;gt;&lt;br /&gt;         &amp;lt;/authentication-provider&amp;gt;&lt;br /&gt;    &amp;lt;/authentication-provider&amp;gt;&lt;br /&gt;&amp;lt;/authentication-manager&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Le LDAP AuthenticationProvider&lt;/span&gt;&lt;/h2&gt;L'objet authenticationProvider est un service SpringSecurity prenant en en entrée un token (par exemple couple login/password) et répondant avec un utilisateur authentifié (ou null s'il n'existe pas). Dans notre cas, l'authentificationProvider à utiliser est créé avec la configuration xml suivante :&lt;br /&gt;&lt;pre&gt;&amp;lt;bean class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider" id="ldapAuthProvider"&amp;gt;&lt;br /&gt; &amp;lt;constructor-arg&amp;gt;&lt;br /&gt;  &amp;lt;bean class="org.springframework.security.ldap.authentication.BindAuthenticator"&amp;gt;&lt;br /&gt;   &amp;lt;constructor-arg ref="contextSource" /&amp;gt;&lt;br /&gt;   &amp;lt;property name="userSearch"&amp;gt;&lt;br /&gt;    &amp;lt;bean class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch"&amp;gt;&lt;br /&gt;     &amp;lt;constructor-arg value="OU=MonGroup"&amp;gt;&lt;br /&gt;     &amp;lt;constructor-arg value="(sAMAccountName={0})"&amp;gt;&lt;br /&gt;     &amp;lt;constructor-arg ref="contextSource"&amp;gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;   &amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;/constructor-arg&amp;gt;&lt;br /&gt; &amp;lt;constructor-arg&amp;gt;&lt;br /&gt;  &amp;lt;bean class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator"&amp;gt;&lt;br /&gt;   &amp;lt;constructor-arg ref="contextSource"&amp;gt;&lt;br /&gt;   &amp;lt;constructor-arg value="OU=Groups,OU=Mycompany,OU=CompanyUsers"&amp;gt;&lt;br /&gt;   &amp;lt;property name="rolePrefix" value="LDAP_ROLE_" /&amp;gt;&lt;br /&gt;  &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;/constructor-arg&amp;gt;&lt;br /&gt; &amp;lt;property name="userDetailsContextMapper"&amp;gt;&lt;br /&gt;  &amp;lt;bean class="com.company.AcmeContextMapper"&amp;gt;&lt;br /&gt;   &amp;lt;property name="AcmeSecurityProviderService" ref="acmeSecurityProviderService" /&amp;gt;&lt;br /&gt;  &amp;lt;/bean&amp;gt;&lt;br /&gt; &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;lt;bean class="org.springframework.security.ldap.DefaultSpringSecurityContextSource" id="contextSource"&amp;gt;&lt;br /&gt; &amp;lt;constructor-arg value="ldap://1.2.3.4:389/dc=exemple,dc=com" /&amp;gt;&lt;br /&gt; &amp;lt;property name="userDn" value="CN=browser,OU=testAccount,DC=exemple,DC=com" /&amp;gt;&lt;br /&gt; &amp;lt;property name="password" value="P@ssw0rd" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;Le premier bean définit le service d'authentification. Le premier argument (le bind authenticator) définit les paramètres de la recherche de l'utilisateur dans le LDAP (quel groupe cherche, quelle requête...).&lt;br /&gt;La seconde partie du bean (DefaultLdapAuthoritiesPopulator) définit la recherche des groupes LDAP pour les transformer en rôles Spring security.&lt;br /&gt;La dernière partie (userDetailsContextMapper) est une classe qui permet de convertir l'objet User retournée par le LDAP en un objet User de l'application pour l'enrichir, effectuer des modifications...&lt;br /&gt;Le second bean présente le contexte LDAP avec l'url de connexion et la définition d'un utilisateur permettant de lire les informations du LDAP.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;A retenir&lt;/span&gt;&lt;/h1&gt;La connexion LDAP est une authentification en deux étapes (recherche puis bind) qui permet d'authentifier l'utilisateur et de lui attribuer des rôles. Cette solution permet de mettre en oeuvre rapidement une authentification centralisée.&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Les informations utiles pour configurer une connexion LDAP&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;L'URL de connexion au LDAP&lt;/li&gt;&lt;li&gt;Un utilisateur ayant les droits pour browser les comptes LDAP :&lt;ul&gt;&lt;li&gt;son DN&lt;/li&gt;&lt;li&gt;son password&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;L'OU contenant les utilisateurs&lt;/li&gt;&lt;li&gt;La requêtes de recherche de l'utilisateur [sur un active directory&amp;nbsp;(sAMAccountName={0}) ]&lt;/li&gt;&lt;li&gt;Pour la transformation des groupes en rôles :&lt;ul&gt;&lt;li&gt;l'OU contenant les groupes&lt;/li&gt;&lt;li&gt;Un préfixe pour les rôles&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Article rédigé pour la plateforme de capitalisation technique de&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.sword-group.com/" style="font-style: italic;" target="_blank"&gt;Sword&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-5058584270868654418?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/5058584270868654418/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2011/07/authentification-sur-ldap-avec.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5058584270868654418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5058584270868654418'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/07/authentification-sur-ldap-avec.html' title='Authentification sur LDAP avec SpringSecurity'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-9042538298346239384</id><published>2011-06-15T13:08:00.002+02:00</published><updated>2012-01-16T17:14:56.142+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='HG'/><title type='text'>Hg Init</title><content type='html'>Un très bon guide pour commencer avec Mercurial :&amp;nbsp;&lt;a href="http://hginit.com/index.html"&gt;hginit.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-w6h9ypRmMUk/Tunjn2VvyAI/AAAAAAAAL4g/bo667Wd-ejI/s1600/SS-2011-12-15_13.09.25.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="128" src="http://3.bp.blogspot.com/-w6h9ypRmMUk/Tunjn2VvyAI/AAAAAAAAL4g/bo667Wd-ejI/s640/SS-2011-12-15_13.09.25.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Les chapitres du guide&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-9042538298346239384?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/9042538298346239384/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2011/06/hg-init.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/9042538298346239384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/9042538298346239384'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/06/hg-init.html' title='Hg Init'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-w6h9ypRmMUk/Tunjn2VvyAI/AAAAAAAAL4g/bo667Wd-ejI/s72-c/SS-2011-12-15_13.09.25.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-3122538052168241303</id><published>2011-04-22T13:18:00.002+02:00</published><updated>2012-01-20T14:03:59.112+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='securite'/><title type='text'>Sécurisation d'une application Flex/Granite DS sur SpringSecurity et Tide</title><content type='html'>Une application &lt;em&gt;Flex/Java&lt;/em&gt; peut utiliser &lt;a href="http://www.graniteds.org/confluence/pages/viewpage.action?pageId=229378"&gt;&lt;em&gt;Granite DS/Tide&lt;/em&gt;&lt;/a&gt; pour simplifier la communication entre les deux tiers de l'application. &lt;a href="http://static.springsource.org/spring-security/site/"&gt;&lt;em&gt;Spring Security&lt;/em&gt;&lt;/a&gt; permet la gestion de l'autorisation et de l'authentification. Dans cet article nous allons voir comment utiliser ces deux mécanismes (&lt;a href="http://en.wikipedia.org/wiki/Authentication#Authentication_vs._authorization"&gt;authentification et autorisation&lt;/a&gt;) dans &lt;em&gt;Flex &lt;/em&gt;comme si nous étions dans un code &lt;em&gt;Java&lt;/em&gt;.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Etablissement du lien entre &lt;em&gt;Flex &lt;/em&gt;et &lt;em&gt;Java &lt;/em&gt;par &lt;em&gt;Granite DS&lt;/em&gt;&lt;/span&gt;&lt;/h1&gt;La configuration de la communication entre &lt;em&gt;Flex &lt;/em&gt;et &lt;em&gt;Java &lt;/em&gt;est effectuée grâce à deux fichiers de configuration dans le projet Java :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;src/main/webapp/WEB-INF/flex/services-config.xml pour la configuration des canaux de communication entre &lt;em&gt;Flex &lt;/em&gt;et &lt;em&gt;Java&lt;/em&gt;, le lien avec &lt;em&gt;Spring&lt;/em&gt;;&lt;/li&gt;&lt;li&gt;src/main/webapp/WEB-INF/granite/granite-config.xml pour la configuration de &lt;em&gt;granite &lt;/em&gt;et le lien avec &lt;em&gt;Spring Security&lt;/em&gt;.&lt;/li&gt;&lt;/ul&gt;Les configurations (très standard) ont été simplifiées à l'extrême. En effet &lt;em&gt;Granite DS&lt;/em&gt; est très bien intégré avec l'écosystème &lt;em&gt;Spring&lt;/em&gt;.&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Déclaration d'un canal de communication (services-config.xml)&lt;/span&gt;&lt;/h2&gt;Dans le fichier services-config.xml. Nous allons demander la création d'un service de communication (granite-service) qui s'appuiera sur un canal de communication de type &lt;a href="http://en.wikipedia.org/wiki/Action_Message_Format"&gt;&lt;em&gt;AMF &lt;/em&gt;&lt;/a&gt;(protocole de communication binaire très efficace &lt;em&gt;d'Adobe&lt;/em&gt;) à une adresse précisée dans la configuration :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La création du service :&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&amp;lt;services&amp;gt;&lt;br /&gt;  &amp;lt;service class="flex.messaging.services.RemotingService" id="granite-service" messagetypes="flex.messaging.messages.RemotingMessage"&amp;gt;&lt;br /&gt;   &amp;lt;destination id="spring"&amp;gt;&lt;br /&gt;    &amp;lt;channels&amp;gt;&lt;br /&gt;     &amp;lt;channel ref="amf"&amp;gt;&lt;br /&gt;    &amp;lt;/channel&amp;gt;&amp;lt;/channels&amp;gt;&lt;br /&gt;    &amp;lt;properties&amp;gt;&lt;br /&gt;     &amp;lt;factory&amp;gt;tideSpringFactory&amp;lt;/factory&amp;gt;&lt;br /&gt;     &amp;lt;entitymanagerfactorybeanname&amp;gt;entityManagerFactory&amp;lt;/entitymanagerfactorybeanname&amp;gt;&lt;br /&gt;    &amp;lt;/properties&amp;gt;&lt;br /&gt;   &amp;lt;/destination&amp;gt;&lt;br /&gt;  &amp;lt;/service&amp;gt;&lt;br /&gt; &amp;lt;/services&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;La création du canal :&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&amp;lt;channels&amp;gt;&lt;br /&gt;  &amp;lt;channel-definition class="mx.messaging.channels.AMFChannel" id="amf"&amp;gt;&lt;br /&gt;   &amp;lt;endpoint class="flex.messaging.endpoints.AMFEndpoint" url="http://{server.name}:{server.port}/{context.root}/amf"&amp;gt;&lt;br /&gt;  &amp;lt;/endpoint&amp;gt;&amp;lt;/channel-definition&amp;gt;&lt;br /&gt; &amp;lt;/channels&amp;gt;&lt;br /&gt;&lt;/pre&gt;Enfin nous allons demander la création d'une factory permettant de créer les objets &lt;em&gt;Java &lt;/em&gt;à partir de leurs équivalent &lt;em&gt;Flex&lt;/em&gt;. Pour cela nous utilisons un adapteur vers &lt;em&gt;Spring&lt;/em&gt;.&lt;br /&gt;&lt;pre&gt;&amp;lt;factories&amp;gt;&lt;br /&gt;  &amp;lt;factory class="org.granite.tide.spring.SpringServiceFactory" id="tideSpringFactory"&amp;gt;&lt;br /&gt;  &amp;lt;/factory&amp;gt;&lt;br /&gt; &amp;lt;/factories&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Configuration de granite (granite-config.xml)&lt;/span&gt;&lt;/h2&gt;La configuration de granite est encore plus simple. Nous allons juste demander à granite de se configurer avec les &lt;a href="http://www.graniteds.org/confluence/display/DOC/2.+Spring+Services#2.SpringServices-AutomaticConfigurationofDestinations"&gt;annotations &lt;/a&gt;dans le code (@RemoteDestination...) et nous lui précisons que la sécurité est gérée par &lt;em&gt;Spring Security&lt;/em&gt; ; un adapteur spécifique existe.&lt;br /&gt;&lt;pre&gt;&amp;lt;granite-config scan="true"&amp;gt;&lt;br /&gt;    &amp;lt;security type="org.granite.spring.security.SpringSecurity3Service"&amp;gt;&lt;br /&gt;    &amp;lt;/security&amp;gt;&lt;br /&gt; &amp;lt;/granite-config&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Authentification en Flex&lt;/span&gt;&lt;/h1&gt;Encore une fois le travail est complètement pré-maché par &lt;em&gt;Granite DS&lt;/em&gt;. Pour gérer l'utilisateur de l'application &lt;em&gt;Flex&lt;/em&gt;, &lt;em&gt;granite &lt;/em&gt;met à disposition du programmeur un objet &lt;a href="http://www.graniteds.org/public/doc/2.2.1/doc/as3/api/index.html"&gt;&lt;em&gt;Identity &lt;/em&gt;&lt;/a&gt;qui permet d'accéder aux informations utiles (données de l'utilisateurs, droits...).&lt;br /&gt;Pour effectuer un login il suffit de faire :&lt;br /&gt;&lt;pre&gt;private var __identity:Identity = Identity.instance();&lt;br /&gt;    __identity.login(username, password, onSuccessfulLogin, onFaultLogin);&lt;br /&gt;&lt;/pre&gt;La méthode effectue exactement la même action que si un utilisateur remplissait un formulaire de login de &lt;em&gt;Spring Security&lt;/em&gt;. Les méthodes&amp;nbsp;&lt;em&gt;onSuccessfulLogin &lt;/em&gt;et&amp;nbsp;&lt;em&gt;onFaultLogin &lt;/em&gt;sont appelée en cas de réussite ou d'échec. Nous pouvons récupérer le nom d'utilisateur avec la méthode suivante :&lt;br /&gt;&lt;pre&gt;__identity.username&lt;/pre&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Autorisation en &lt;em&gt;Flex&lt;/em&gt;&lt;/span&gt;&lt;/h1&gt;Il existe 3 méthodes très utiles sur l'objet &lt;em&gt;Identity &lt;/em&gt;permettant de gérer l'autorisation :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ifAllGranted : Si l'utilisateur à toutes les autorisations demandées&lt;/li&gt;&lt;li&gt;ifAnyGranted : Si l'utilisateur a au moins l'une des autorisations demandées&lt;/li&gt;&lt;li&gt;ifNotGranted : Si l'utilisateur n'a pas l'autorisation demandée&lt;/li&gt;&lt;/ul&gt;Ces méthodes sont asynchrones mais &lt;em&gt;bindable&lt;/em&gt;, ce qui permet de les utiliser dans un script mxml :&lt;br /&gt;&lt;pre&gt;&amp;lt;mx:button click=&amp;quot;updateProduct()&amp;quot; enabled=&amp;quot;{dg.selectedItem}&amp;quot; id=&amp;quot;bUpdate&amp;quot; label=&amp;quot;Update&amp;quot; visible=&amp;quot;{identity.hasRole('admin')}&amp;quot;&amp;gt;&amp;lt;/mx:button&amp;gt;&lt;/pre&gt;&lt;br /&gt;Ainsi le bouton ne sera visible que pour les administrateurs.&lt;br /&gt;Les appels peuvent aussi être effectués avec un &lt;em&gt;respondeur &lt;/em&gt;pour prévoir le prévoir le coté asynchrone de l'appel.&lt;br /&gt;Il existe un cache d'autorisations qui peut être vidé manuellement.&lt;br /&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;En conclusion&lt;/span&gt;&lt;/h1&gt;L'utilisation de l'authentification/autorisation est extrêmement simple en &lt;em&gt;Flex&lt;/em&gt;, mais parfois un peu limité. Dès qu'un projet à des besoins plus complexes en terme d'autorisation (variabilité en fonction d'un contexte...) il sera nécessaire de s'appuyer sur ces briques de base pour développer un système plus souple.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Article rédigé pour la plateforme de capitalisation technique de&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.sword-group.com/" style="font-style: italic;" target="_blank"&gt;Sword&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-3122538052168241303?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3122538052168241303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3122538052168241303'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/04/securisation-dune-application.html' title='Sécurisation d&apos;une application Flex/Granite DS sur SpringSecurity et Tide'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-6313367647858588219</id><published>2011-04-22T13:17:00.001+02:00</published><updated>2012-01-16T17:51:06.818+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>SchemaCrawler pour extraire la structure d'une base de donnée</title><content type='html'>&lt;em&gt;&lt;a href="http://schemacrawler.sourceforge.net/"&gt;SchemaCrawler &lt;/a&gt;&lt;/em&gt;est un framework open-source de découverte de base de données sur jdbc. Il permet de récupérer facilement les métadonnées de la base étudiée. Le framework est aussi publié sous forme d'outil indépendant à utiliser en ligne de commande. Il permet par exemple &lt;a href="http://mindbuffer.wordpress.com/2010/10/14/schema-crawler/"&gt;d'extraire un fichier de description d'une base&lt;/a&gt;.&lt;br /&gt;&lt;em&gt;SchemaCrawler &lt;/em&gt;permet ainsi de récupérer les informations suivantes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Liste des &lt;a href="http://en.wikipedia.org/wiki/Database_catalog"&gt;catalogs&lt;/a&gt;&amp;nbsp;(rarement utilisés)&lt;/li&gt;&lt;li&gt;Liste des &lt;a href="http://en.wikipedia.org/wiki/Database_schema"&gt;schémas&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Liste des tables, vues, routines, triggers, contraintes...&lt;/li&gt;&lt;li&gt;Liste et détails des champs&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Une recherche en deux étapes&lt;/span&gt;&lt;/h1&gt;La récupération des métadonnées se fait en deux étapes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La définition des options de recherche&lt;/li&gt;&lt;li&gt;Le lancement de la recherche sur une &lt;em&gt;connection &lt;/em&gt;jdbc&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Les options de recherche&lt;/span&gt;&lt;/h2&gt;La définition des options de recherche est la phase la plus longue et complexe. Des options mal configurées engendrent des temps de réponse très long et une quantité d'informations inutiles et parasites importante. Il est nécessaire de filtrer tout ce que l'on ne souhaite pas récupérer.&lt;br /&gt;Pour filtrer les éléments à conserver, &lt;i&gt;SchemaCrawler&lt;/i&gt; met à disposition des objets InclusionRule qui prennent en paramètre une regExp à inclure et une regExp à exclure.&lt;br /&gt;Dans l'exemple suivant, nous définissons un objet option de &lt;em&gt;schemaCrawler &lt;/em&gt;permettant de ne récupérer aucune table, aucune vue, aucune procédure, aucun champ... Ainsi nous ne récupérons que la liste des schémas/catalogs de la base.&lt;br /&gt;&lt;pre&gt;// Création d'un objet option de SchemaCrawler&lt;br /&gt;    SchemaCrawlerOptions options = new SchemaCrawlerOptions();&lt;br /&gt;&lt;br /&gt;    // On n'autorise aucun type de tables (tables, vues...)&lt;br /&gt;    TableType[] types = {};&lt;br /&gt;    options.setTableTypes(types);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureInclusionRule(procedureInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les colonnes des procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureColumnInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureColumnInclusionRule(procedureColumnInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les tables(inclure rien, exclure tout)&lt;br /&gt;    InclusionRule tableInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setTableInclusionRule(tableInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On fixe le niveau de détail des métadonnées au minimum&lt;br /&gt;    options.setSchemaInfoLevel(SchemaInfoLevel.minimum());&lt;br /&gt;&lt;br /&gt;    // On exclue les procédure stockées&lt;br /&gt;    options.setShowStoredProcedures(false);&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Le lancement de la recherche&lt;/span&gt;&lt;/h2&gt;Le lancement de la recherche est la partie la plus simple. Il suffit de faire appel à la méthode&amp;nbsp;&lt;kbd&gt;SchemaCrawlerUtility.getDatabase&lt;/kbd&gt; et de passer en paramètre une connexion à la base de données valide (de type&amp;nbsp;&lt;kbd&gt;java.sql.Connection&lt;/kbd&gt;) et un objet &lt;em&gt;option &lt;/em&gt;de &lt;em&gt;schemaCrawler.&lt;/em&gt;&lt;br /&gt;&lt;pre&gt;Database crawlingDatabase = SchemaCrawlerUtility.getDatabase(databaseConnection, options);&lt;br /&gt;&lt;/pre&gt;Une fois l'objet &lt;em&gt;database &lt;/em&gt;de &lt;em&gt;SchemaCrawler &lt;/em&gt;récupéré, il est très simple de parcourir les métadonnées. Par exemple pour tracer la liste des schémas de la base de données :&lt;br /&gt;&lt;pre&gt;for (final Schema schema : crawlingDatabase.getSchemas()) {&lt;br /&gt;        log.info("Found database schema " + schema.getSchemaName() + " in catalog " + schema.getCatalogName());&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Différentes options intéressantes&lt;/span&gt;&lt;/h1&gt;Comme expliqué dans le chapitre précédent, la complexité d'utilisation de ce framework réside principalement dans la configuration de l'objet option permettant de spécifier correctement les informations à remonter pour réduire au maximum les temps de recherche en base (un scan complet de la base étant extrêmement long). Dans cette section, nous allons proposer deux exemples types de définition de l'objet option pour récupérer les schémas puis les tables et vues. Sur le même principe toutes les métadonnées de la base peuvent être récupérées.&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Récupération de la liste des schémas&lt;/span&gt;&lt;/h2&gt;Idem chapitre précédant :&lt;br /&gt;&lt;pre&gt;// Création d'un objet option de SchemaCrawler&lt;br /&gt;    SchemaCrawlerOptions options = new SchemaCrawlerOptions();&lt;br /&gt;&lt;br /&gt;    // On n'autorise aucun type de tables (tables, vues...)&lt;br /&gt;    TableType[] types = {};&lt;br /&gt;    options.setTableTypes(types);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureInclusionRule(procedureInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les colonnes des procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureColumnInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureColumnInclusionRule(procedureColumnInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les tables(inclure rien, exclure tout)&lt;br /&gt;    InclusionRule tableInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setTableInclusionRule(tableInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On fixe le niveau de détail des métadonnées au minimum&lt;br /&gt;    options.setSchemaInfoLevel(SchemaInfoLevel.minimum());&lt;br /&gt;&lt;br /&gt;    // On exclue les procédure stockées&lt;br /&gt;    options.setShowStoredProcedures(false);&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;&lt;span style="font-size: small;"&gt;Récupération de la liste des tables et vues&lt;/span&gt;&lt;/h2&gt;&lt;pre&gt;// Création d'un objet option de SchemaCrawler&lt;br /&gt;    SchemaCrawlerOptions options = new SchemaCrawlerOptions();&lt;br /&gt;&lt;br /&gt;    // On autorise les tables et les vues&lt;br /&gt;    TableType[] types = { TableType.table, TableType.view };&lt;br /&gt;    options.setTableTypes(types);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureInclusionRule(procedureInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue toutes les colonnes des procédures (inclure rien, exclure tout)&lt;br /&gt;    InclusionRule procedureColumnInclusionRule = new InclusionRule("", ".*");&lt;br /&gt;    options.setProcedureColumnInclusionRule(procedureColumnInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On exclue les procédure stockées&lt;br /&gt;    options.setShowStoredProcedures(false);&lt;br /&gt;&lt;br /&gt;    // On inclue toutes les tables mais on exclue les tables commençant par $ (pour éviter les tables système d'Oracle)&lt;br /&gt;    InclusionRule tableInclusionRule = new InclusionRule(".*", ".*[\\x24]+.*");&lt;br /&gt;    options.setTableInclusionRule(tableInclusionRule);&lt;br /&gt;&lt;br /&gt;    // On fixe le niveau de détail des métadonnées au minimum&lt;br /&gt;    options.setSchemaInfoLevel(SchemaInfoLevel.minimum());&lt;br /&gt;&lt;br /&gt;    // On spécifie le schéma que l'on souhaite crawler&lt;br /&gt;    InclusionRule schemaInclusionRule = new InclusionRule("MySchema", "");&lt;br /&gt;    options.setSchemaInclusionRule(schemaInclusionRule);&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;i&gt;Article rédigé pour la plateforme de capitalisation technique de&amp;nbsp;&lt;/i&gt;&lt;a href="http://www.sword-group.com/" target="_blank"&gt;Sword&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-6313367647858588219?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/6313367647858588219/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2011/04/schemacrawler-pour-extraire-la.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/6313367647858588219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/6313367647858588219'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/04/schemacrawler-pour-extraire-la.html' title='SchemaCrawler pour extraire la structure d&apos;une base de donnée'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-8761591473622577425</id><published>2011-03-10T13:30:00.001+01:00</published><updated>2011-03-10T13:31:18.816+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='securite'/><title type='text'>Personal Password Policy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KsWUtFo-G_0/TO-pjnugEOI/AAAAAAAAKFw/5MNytHw3O_U/s1600/password.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://4.bp.blogspot.com/_KsWUtFo-G_0/TO-pjnugEOI/AAAAAAAAKFw/5MNytHw3O_U/s320/password.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5543836095740907746" /&gt;&lt;/a&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Ça fait bien longtemps que je n'ai pas posté ici. Il faut croire que ce n'est plus vraiment ma priorité, mon boulot et ma vie personnelle proposant déjà plein de priorités. Néanmoins, j'ai plein de projets d'articles dans mes tiroirs (virtuels) et je vais commencer par un sujet que je viens d'appliquer : la gestion des password.&lt;/span&gt;&lt;/i&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Je ne vais pas faire dans cet article la liste de tous les outils qui se souviennent pour vous de vos passwords ; je n'aime pas ça, ça donne une impression de sécurité, mais si le logiciel à une faille ou si le password maître est divulgué tout le système s'écroule et vous n'avez plus aucune sécurité. De plus, il apporte son lot de complexité à partir du moment où l'on souhaite avoir une synchronisation entre différentes machines avec une sauvegarde en ligne...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Organisation hiérarchique des passwords&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;La réflexion que je vais  partager ici porte sur mon organisation hiérarchique des passwords. Les théories extrémistes voudraient que l'on utilise un password par service, avec une complexité importante dans la génération du password (du style 4Hx-v8[A$) et sans réutilisation. Ceux qui me connaissent savent que je ne pourrais jamais appliquer cette théorie à cause de ma mémoire de poisson rouge. La parade que j'ai trouvée est de segmenter les services par niveau de sécurité des données présentes. Chaque niveau utilise ainsi un même login/password. Je distingue ainsi quatre niveaux :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); font-size: 16px; -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/-WBT2hxqSHP8/TXd0WCtcM_I/AAAAAAAAKIA/VcWJtUOuC5Y/s320/Dessin1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5582058185182426098" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 313px; height: 320px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;b&gt;1_ Les services bancaires&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;Il s'agit ici de mon compte bancaire en ligne. Il est le seul à avoir un login et un password unique qui n'est réutilisé sur aucun service.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;i&gt;En cas de compromission&lt;/i&gt; : risque de vol sur mon compte en banque limité par la sécurité renforcée de ma banque (&lt;a href="http://fr.wikipedia.org/wiki/Authentification_forte#Exemple_de_solution_de_type_OTP"&gt;authentification forte&lt;/a&gt; mise en place par ma banque).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;b&gt;2_ Les services centraux de confiance&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;J'inclue dans ces services mon compte Google ainsi que mon compte dans l'Active Directory de l'entreprise. Les deux sont des services de confiance. Ces comptes peuvent théoriquement compromettre les comptes des niveaux inférieurs. En effet, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;de trop nombreux services envoient un récapitulatif d'inscription avec login/password. J'ai aussi des password enregistré dans mon navigateur, ce qui est une possible faille.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;i&gt;En cas de compromission&lt;/i&gt; : &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;inquiétante, mais peu probable. Elle &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;mettrait&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt; en danger tous les comptes de niveau 2 et 3. Elle nécessiterait une modification urgente de nombreux passwords.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;b&gt;3_ Les services périphériques&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;La majorité des services en ligne rentrent dans cette catégorie, j'ai suffisamment confiance en eux pour leur communiquer une identité réutilisée partout sur Internet. Ils sont suffisamment connus pour ne pas pratiquer de vols d'identité. Par contre, je n'ai pas suffisamment confiance dans leur politique de sécurité. Ils sont vulnérables à un vol massif de leur base de données utilisateurs (comme &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;cela&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt; s'est déjà vu sur de nombreux sites).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;i&gt;En cas de compromission&lt;/i&gt; : &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;modification de mon login/password sur tous les services de ce niveau pour éviter un possible vol d'identité.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;b&gt;4_ Les services anonymes&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;J'inclue dans cette catégorie tous les sites douteux ou je préfère rester anonymes (torrents, direct download, compte temporaires pour télécharger une application...). J'utilise généralement une adresse mail jetable (cf. &lt;/span&gt;&lt;a href="http://yopmail.com/" style="font-size: 14px; "&gt;yopmail.com&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;)  et un nom d'utilisateur différent. Aucun élément de cette identité n'est identique à mon identité réelle (nom, prénom, date de naissance...). &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;&lt;i&gt;En cas de compromission&lt;/i&gt; : a&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;ucune perte de sécurité sur les niveaux supérieurs&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Création des passwords&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;La modification d'un password sur de nombreux service n'étant pas aisée. Je réserve la modification régulière de mon password aux services de niveau 1 et 2. Les deux services de niveaux 2 sont basés sur des annuaires centraux. Ainsi la modification de mon password dans ces deux interfaces me permet d'accéder à de nombreux services (de mon entreprise et de google) avec un mot de passe changé régulièrement. Pour générer un nouveau password, il existe plusieurs possibilités :&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt;L'incrémentation : votre password de base est toto, vos mots de passe suivants sont toto1, toto2... -&gt; Très mauvaise sécurité ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;La modification : vous déformez le password initial : toto -&gt; titi -&gt; tata...  -&gt; sécurité moyenne ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;La génération aléatoire : vous utilisez un générateur de password aléatoire sur internet et l'apprenez par-coeur -&gt; Bonne sécurité ;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Mnémotechnique : Prenez une phrase que vous aimez, garder la secrète et construisez votre password en ne conservant que la première lettre/syllabe. Ainsi "Je suis beau et fort" devient jsbef ou Jesube&amp;amp;fo -&gt; Bonne sécurité.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Les questions secrètes&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Cette étape de l'inscription à un service est souvent la faille majeure du système. Pour ceux qui ne connaissent pas, l'utilisateur doit choisir une question est donner sa réponse (par exemple "votre couleur préférée" et "bleu").  Si l'utilisateur oublie son password, le site lui posera la question qu'il aura configurée et comparera sa réponse à la réponse enregistrée. Si les réponses concordent, un mail lui est envoyé avec un nouveau password. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Cette technologie est la cible de &lt;/span&gt;&lt;a href="http://fr.wikipedia.org/wiki/Social_engineering" style="font-size: 14px; "&gt;social engineering&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt; qui permet grâce à l'étude de l'environnement social de l'utilisateur de répondre correctement à la question enregistrée (généralement relative à la vie privée de l'utilisateur). Combinée à une compromission du compte de messagerie de l'utilisateur, il permet généralement de faire de gros dégâts.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Pour limiter les risques, il faut faire attention à ne pas utiliser de question secrète ou a utiliser une question secrète peu sensible au social engineering. Évitez donc toute donnée qui pourrait être publique ou connue d'autres personnes (date de naissance de vos parents, votre institutrice de maternel...) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;Dans la mesure du possible utilisez votre propre question secrète la plus ambiguë possible et la moins sensible à une recherche google.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 14px; "&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-8761591473622577425?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/8761591473622577425/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2011/03/personal-password-policy.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/8761591473622577425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/8761591473622577425'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2011/03/personal-password-policy.html' title='Personal Password Policy'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KsWUtFo-G_0/TO-pjnugEOI/AAAAAAAAKFw/5MNytHw3O_U/s72-c/password.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-9192270770014743169</id><published>2009-07-03T11:28:00.002+02:00</published><updated>2009-07-03T11:33:48.231+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><title type='text'>Contrat de travail signé !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sword-group.com/PublishingImages/logo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 154px; height: 50px;" src="http://www.sword-group.com/PublishingImages/logo.gif" alt="" border="0" /&gt;&lt;/a&gt;C'est enfin fait, une semaine après la fin de mon stage, je signe mon nouveau contrat de travail, un CDI chez &lt;a href="http://www.sword-group.com/"&gt;Sword &lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS : Merci &lt;a href="http://delirium.sanhly.com/"&gt;Sanh&lt;/a&gt; pour le contact !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-9192270770014743169?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/9192270770014743169/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2009/07/contrat-de-travail-signe.html#comment-form' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/9192270770014743169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/9192270770014743169'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2009/07/contrat-de-travail-signe.html' title='Contrat de travail signé !'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7622552918315387931</id><published>2009-05-29T13:11:00.003+02:00</published><updated>2010-07-02T09:58:54.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Wave, une nouvelle plateforme de communication pour le Web de demain</title><content type='html'>&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 256px; height: 256px;" src="http://sites.google.com/a/pressatgoogle.com/googlewave/_/rsrc/1243470959526/home/Google_Wave_logo.png" alt="" border="0" /&gt;&lt;br /&gt;Juste une petite news, pour vous faire partager mon enthousiasme pour Google Wave.&lt;br /&gt;&lt;br /&gt;Google Wave part du du constat que le système des mails a été créé il y a plus de 40 ans, avant internet tel qu'on le connait (réseaux sociaux, twitter, RSS, outils collaboratifs...). Ils proposent de remplacer le système de mail par un nouvel outils de communication et collaboration. C'est une sorte de boite à tout faire, jolie, simple et très pratique. Ça semble révolutionnaire...&lt;br /&gt;&lt;br /&gt;Quelques source pour ceux qui veulent se documenter :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://shar.es/X44y"&gt;l'article de TechCrunch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wave.google.com/"&gt;La présentation de Google (longue, mais intéressante&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;La sortie de wave est prévue pour fin 2009&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7622552918315387931?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7622552918315387931/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2009/05/google-wave-une-nouvelle-plateforme-de.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7622552918315387931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7622552918315387931'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2009/05/google-wave-une-nouvelle-plateforme-de.html' title='Google Wave, une nouvelle plateforme de communication pour le Web de demain'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-4382316926975301375</id><published>2009-05-25T13:57:00.002+02:00</published><updated>2009-05-25T14:00:42.010+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Présentation de Google App  Engine</title><content type='html'>&lt;img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTI*MzI1MTU4Njc2MSZwdD*xMjQzMjUyNjE1MDUxJnA9MTAxOTEmZD1zc19lbWJlZCZuPWJsb2dnZXImZz*yJnQ9Jm89MDUzMWQ1NDJkYTk5NDQyMTkzNzhjNDYyYTA4MGYxNDEmb2Y9MA==.gif" border="0" width="0" height="0" /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1321055"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/tcouery/google-app-engine-for-java?type=presentation" title="Google App Engine For Java"&gt;Google App Engine For Java&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=googleappengineforjava-blog-090421084412-phpapp01&amp;amp;stripped_title=google-app-engine-for-java"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=googleappengineforjava-blog-090421084412-phpapp01&amp;amp;stripped_title=google-app-engine-for-java" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;Une présentation de Google Apps Engine que j'ai bien aimé. J'ai une petite idée de projet qui me trotte dans la tête. A l'occasion je me lance sur le projet avec Google code / Google App et GWT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-4382316926975301375?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/4382316926975301375/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2009/05/google-app-engine-for-java-view-more.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4382316926975301375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4382316926975301375'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2009/05/google-app-engine-for-java-view-more.html' title='Présentation de Google App  Engine'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-3715871198766711639</id><published>2009-05-18T12:56:00.001+02:00</published><updated>2010-07-02T09:30:59.641+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>News du moment</title><content type='html'>&lt;span style="font-weight: bold; font-style: italic;"&gt;New Job&lt;/span&gt;&lt;br /&gt;Puisqu'Atos Worldline n'est plus dans une période de recrutements éffrénés, je me mets à la recherche d'un job pour faire suite à mon PFE, qui se terminera fin juin.&lt;br /&gt;J'ai déjà rencontré certains collaborateurs d'&lt;a href="http://www.expectra.fr/"&gt;Expectra&lt;/a&gt;, une agence de placement/interim. Le principe est simple : ils vendent de l'ingénieur aux entreprises qui ont la flemme de faire de la recherche de candidats. En leur laissant mon CV, je ne le fais que mieux circuler, ça m'ouvre des possibilités.&lt;br /&gt;Si certains veulent un contact sur Lyon, dites-le moi.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wolframalpha.com/"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Wolfram&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Une news est tombée ce matin sur Wolfram, un nouveau moteur de recherche assez en avance sur son temps. Ça semble vraiment innovant. Quelques exemples, qui marchent bien : &lt;a href="http://www.wolframalpha.com/input/?i=villeurbanne"&gt;Villeurbanne&lt;/a&gt;, &lt;a href="http://www.wolframalpha.com/input/?i=chartreuse"&gt;Chartreuse&lt;/a&gt;, &lt;a href="http://www.wolframalpha.com/input/?i=Insa+Lyon"&gt;Insa &lt;/a&gt;&lt;a href="http://www.wolframalpha.com/input/?i=Insa+Lyon"&gt;Lyon&lt;/a&gt;, moins bien : &lt;a href="http://www.wolframalpha.com/input/?i=Sarkozy"&gt;Sarkozy&lt;/a&gt;, voire par du tout : &lt;a href="http://www.wolframalpha.com/input/?i=Date+des+%C3%A9lections+europ%C3%A9ennes"&gt;Elections européennes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.lyonjug.org/"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Lyon JUG&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Je n'ai pas pu assister à la &lt;a href="http://www.lyonjug.org/bin/view/Main/20090421"&gt;première Lyon Java User&lt;/a&gt; Group qui était, d'après les compte-rendus, une réussite. Les sujets semblent intéressants. Si certains comptent aller à la&lt;a href="http://www.lyonjug.org/bin/view/Main/20090519"&gt; seconde (mardi 19 mai)&lt;/a&gt;, faites-moi signe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-3715871198766711639?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/3715871198766711639/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2009/05/news-du-moment.html#comment-form' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3715871198766711639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3715871198766711639'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2009/05/news-du-moment.html' title='News du moment'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-5516788514662091725</id><published>2009-04-29T10:51:00.005+02:00</published><updated>2009-04-29T10:59:45.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><title type='text'>Mariage</title><content type='html'>Pour ceux qui ne seraient pas encore au courant :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:300%"&gt;je vais me marier.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ça se déroulera en août 2010 en Ardèche.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://lh6.ggpht.com/_KsWUtFo-G_0/SfW6dPCsgXI/AAAAAAAAI2A/rk08K2Xqn1Q/s800/StephEtMax.jpg"/&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-5516788514662091725?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/5516788514662091725/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2009/04/mariage.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5516788514662091725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5516788514662091725'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2009/04/mariage.html' title='Mariage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_KsWUtFo-G_0/SfW6dPCsgXI/AAAAAAAAI2A/rk08K2Xqn1Q/s72-c/StephEtMax.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-2903764514949416022</id><published>2008-11-30T20:26:00.007+01:00</published><updated>2010-07-02T09:59:22.644+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Un PFE chez Atos</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" font-style: normal;font-size:16px;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/i&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.atosworldline.fr/images/system/logo_aw.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 175px; height: 85px;" src="http://www.atosworldline.fr/images/system/logo_aw.gif" alt="" border="0" /&gt;&lt;/a&gt;C'est bon, je n'ai plus qu'à faire signer la convention par tout le monde. J'ai décroché mon stage chez Atos. L'entretien à confirmé l'intérêt que j'avais pour l'entreprise. Je vais effectuer mon stage là-bas en alternance puis à plein temps. Mon sujet est : &lt;span style="font-style: italic;"&gt;&lt;b&gt;Module de suivi de projet collaboratif pour la forge&lt;/b&gt;&lt;/span&gt; (ie Ganesh). Ça semble intéressant, j'en saurais plus jeudi pour mon premier jour. Je vous tiens au courant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-2903764514949416022?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/2903764514949416022/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/11/news-de-la-semaine_30.html#comment-form' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2903764514949416022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2903764514949416022'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/11/news-de-la-semaine_30.html' title='Un PFE chez Atos'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-5791673420199773182</id><published>2008-09-21T18:00:00.001+02:00</published><updated>2010-07-02T09:33:37.315+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Fin du stage</title><content type='html'>Voila mon stage est terminé, après quatre mois de bons et loyaux services, je rends mon badge et ma carte café. Je quitte la navire en espérant avoir pu apporter un peu d'aide à cette équipe qui avait besoin de bras pour soutenir la cadence. J'en tirerais un souvenir moins mauvais que celui décrit précédemment, surement parce que c'est terminé et aussi parce que j'ai beaucoup discuté avec mes responsables hiérarchiques qui ont su m'écouter et me répondre. J'ai beaucoup appris sur le plan humain cette dernière semaine.&lt;br /&gt;J'ai maintenant deux mois de répit pour dormir en amphi et me reposer avant de recommencer un stage début décembre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-5791673420199773182?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/5791673420199773182/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/09/news-de-la-semaine_21.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5791673420199773182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/5791673420199773182'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/09/news-de-la-semaine_21.html' title='Fin du stage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-81277838846820204</id><published>2008-09-14T20:08:00.007+02:00</published><updated>2010-07-02T09:46:21.013+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Lettre de retour de stage</title><content type='html'>&lt;div style="text-align: justify;"&gt;Comme vous avez pu le voir, j'ai envoyé une lettre à tous mes supérieurs hiérarchiques que j'ai pu croiser au cours de ma recherche de stage ou mon arrivée dans l'entreprise. J'ai déjà eu des retours de mon chef, nous avon bien discuté. Nous sommes tombé d'accord sur un point, Atos ne sait pas encore faire des stage de 4eme année. Les équipes intègrent forcément les stagiaires comme s'il s'agissait de nouveaux employés. Ca fonctionne bien pour un 5eme année qui intégrera l'entreprise, mais un 4eme année cherche un projet à réaliser en 4 mois, pas 4 mois d'exploitation, de correction de bugs... Espérons qu'ils rectifient le tir pour l'année prochaine, ou qu'ils oublient de prendre des stagiaires 4IF.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-81277838846820204?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/81277838846820204/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/09/news-de-la-semaine_14.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/81277838846820204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/81277838846820204'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/09/news-de-la-semaine_14.html' title='Lettre de retour de stage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-6462624566795923841</id><published>2008-09-11T16:55:00.004+02:00</published><updated>2008-09-12T21:17:43.096+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Retour de stage</title><content type='html'>&lt;span style="font-size:85%;"&gt;Voici la &lt;span style="font-style: italic;"&gt;petite &lt;/span&gt;lettre que j'ai envoyée à mes responsables pour leur rendre compte du déroulement de mon stage. Bonne lecture.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Bonjour,&lt;br /&gt;&lt;br /&gt;Je finis mon stage chez Atos dans quelques jours. J'aimerais profiter de l'occasion pour vous faire un retour sur la façon dont j'ai vécu mon stage dans cette entreprise. Je vais bien évidemment me focaliser sur les points qui m'ont surpris. Je parlerai des tracas que j'ai eus avec ce stage et de mes déceptions. Si vous recevez ce mail, c'est que vous avez pris part dans mon recrutement ou dans le suivi de mon stage, vous êtes donc directement concernés.&lt;br /&gt;&lt;br /&gt;Mon premier contact avec Atos a eu lieu dans le camion de l’Atos Campus Tour, sur l’Insa. J'ai rencontré Pascal. Nous avons beaucoup parlé du déroulement et du contenu des stages, sans nous attarder sur un sujet particulier. Le point de vue de Pascal correspondait tout à fait au mien. Pour moi, un stage est une période de formation, d'apprentissage et d'amélioration. Le but principal est de faire évoluer le stagiaire. Ce dernier doit apprendre. L'entreprise est là pour assumer son devoir social de formation de ses futurs employés. Dans la majorité des cas, le travail du stagiaire n'est pas vain. Sa production, bien que moindre que celle d'un employé, n'est pas négligeable. Elle apporte donc de la richesse à l'entreprise et mérite donc salaire (généralement pas très élevé).&lt;br /&gt;J'ai trouvé que les stages d'Atos étaient intéressants parce qu'ils proposaient tous un véritable projet à mener du début jusqu'à la fin. L'opportunité de stage, à laquelle j'ai répondu, mentionne bien un stage de 6 mois qui comporte plusieurs missions (étude, veille technologique, conception, réalisation, documentation, formation) pour un seul et unique projet. Je me suis imaginé à la tête de mon projet, un projet de grande ampleur, pour occuper un stagiaire motivé pendant 6 mois. Cette conception du stage m'allait bien, je voulais découvrir le travail en SSII. J'ai choisit un sujet (que j'ai joint à ce mail) et j'ai déposé ma candidature.&lt;br /&gt;Quelques jours plus tard, je rencontre Jacky. Nous sommes le 31 octobre, le stage n'est encore que dans quelques mois, mais je suis enthousiasmé. Les personnes que je rencontre sont sympathiques. On me confirme que je travaillerai pour l'ANPE sur le projet choisi. Je précise que j’ai apprécié d’autres sujets et que donc, s'il le fallait, je pourrais changer de sujet si l'on conserve les caractéristiques techniques qui m'intéressent : le front-office et le Java principalement. Le discours sur les stages n'a pas changé, nos points de vue sont convergents, le courant passe bien, la discussion dure. Tout se passe bien lors de cet entretien.&lt;br /&gt;Quelques semaines plus tard encore, Sophie me recontacte pour me confirmer votre proposition de stage que j'accepte. Je demande alors à commencer mon stage un peu plus tôt, pendant les vacances de Pâques, pour l'interrompre quelques jours pour mes examens de fin d'année. Le but était de démarrer plus tôt, de finir à la même date, pour disposer ainsi de quelques jours de vacances pendant l’été. On me répond alors "Nous vous proposons un stage à temps plein de 4 mois afin de vous confier un véritable projet. Des absences pour partiel et vacances au cours de ce stage perturberons le bon déroulement de celui-ci". C'est dommage pour mes vacances, mais je comprends. J'ai un véritable projet, je dois assumer.&lt;br /&gt;&lt;br /&gt;Mi-mai, j'arrive au 107 boulevard Vivier Merle, il est 8h30. Patricia m'accueille, on me demande d'attendre. Quelques minutes plus tard, Éric arrive. Il m'explique que la personne qui devait m'accueillir est absente et qu'il va donc s'occuper de moi. Je trouve cela étrange, Stéphane, mon tuteur aurait du être présent. Il aurait pu envoyer un mail pour me prévenir. J’ai bien essayé de le contacter quelques jours avant le stage, mais je n’ai jamais eu de réponse à mon mail. Je fais le tour des bureaux. Je croise Stéphane qui m'explique que j'ai changé d'équipe et qu'il ne pourra pas s'occuper de moi. Je regrette de ne pas avoir été averti, c'est assez peu courtois, mais bon ce n'est pas important. Je continue la visite. Éric m'explique le fonctionnement de la BU, de l'équipe, de notre client : la CNAF. Je m'étonne encore une fois. Je vais réaliser une application pour l'ANPE dans une équipe qui s'occupe de la CNAF ? La réponse va vite arriver. Je suis en charge de la correction de bugs dans l'application de génération de statistiques de la CNAF. Ce n'est qu'un début, ca devrait durer une semaine puis je continuerais sur autre chose. J'explique que je m'attendais à avoir un seul projet. On m'explique que ce sera toujours sur l’application "statistiques DSP2" mais que les tâches seront différentes.&lt;br /&gt;Après seulement une heure dans l'entreprise, je peux faire un bilan : je n'ai pas été tenu au courant des modifications qui concernent mon stage, j'ai été changé d'équipe, j'ai changé de client, j'ai changé de sujet et personne ne m'attendait. Le pire n'est pas là. Je m'attendais à effectuer un projet de 4 mois dans le front-office en Java et j'ai récolté une myriade de mini-projets et de corrections de bugs à durée indéterminée sur une application en back-office en perl ! C'est à peu près l'inverse de ce que j'avais demandé. La seule chose qui reste c'est le travail en SSII. Je note au passage la totale désinvolture de l'équipe face à mon stage : je n'ai été tenu au courant de rien, ma convention de stage (signée par Atos) indique la mauvaise équipe, le mauvais tuteur, le mauvais sujet. Rien n'est correct à part le nom de l'entreprise. Je me sens piégé. Je n’ai plus le temps de chercher un autre stage puisque je dois effectuer un stage de 4 mois et que la période ouverte au stage est de 4 mois et une semaine. Je suis déçu de mon stage. Je me sens trompé. Ce stage commence mal.&lt;br /&gt;&lt;br /&gt;Dès le lendemain matin je vais trouver ma responsable, Claire. J’ai passé une partie de la journée précédente à demander des conseils à mon entourage et à mes professeurs sur la conduite que je devais adopter et sur les possibilités qui m’étaient ouvertes. Je décide d’en parler ouvertement avec Claire. Je lui expose ma situation, ma déception face à ce stage qui ne correspond pas à mes attentes. La réponse est en demi-teinte : je dois continuer mon projet actuel (les statistiques) mais ce n’est que temporaire. J’aurais une réponse définitive la semaine suivante. Étant pris au piège, j’accepte. Je travaille donc sur ce sujet qui ne m’intéresse pas et qui ne m’apprend rien sur les thèmes que je voulais aborder pendant mon stage.&lt;br /&gt;La semaine suivante arrive, Claire me confirme que je vais changer de sujet. Je travaillerais sur une application d’e-mailing. J’ai très peu de détail sur le sujet. Face à mes doutes, on m’assure que le projet durera jusqu’à la fin de mon stage. Je commence donc lentement à migrer sur ce nouveau projet. Il ne correspond toujours pas parfaitement à ce que je voulais faire, puisque c’est toujours du back-office, mais il a le mérite d’être en Java. La migration est lente, pendant de longues semaines, je vais encore passer du temps sur les statistiques, pour régénérer les données erronées, répondre au client…&lt;br /&gt;Je commence à m’approprier le sujet que l’on m’a trouvé. J’ai une tâche précise : remplacer un outil existant. Il me reste à trouver les informations nécessaires et à réaliser le nouvel outil.&lt;br /&gt;&lt;br /&gt;Commence alors une autre déconvenue : je me retrouve seul. L’équipe est surchargée de travail, certains employés démissionnent. Eric, mon tuteur, commence ses journées aux aurores et les termine tard dans la nuit. Avec ce rythme, il est difficile de trouver quelques minutes dans son emploi du temps pour lui poser des questions, lui présenter mon travail ou lui demander de l’aide. Je reste régulièrement bloqué quelques jours sur des problèmes par manque d’information. Eric n’est pas disponible, tous mes collègues sont débordés, je reste sans réponses. La conclusion est simple, mon tuteur (qui n’est pas celui d’origine) n’a pas le temps d’être tuteur. Il ne peut pas dégager le temps nécessaire à un stagiaire pour que son stage se déroule dans les meilleures conditions possibles.&lt;br /&gt;&lt;br /&gt;Ma recherche d’information dure longtemps. Je cherche des informations sur l’ACM, aussi connu sous le nom de Worldline Push. Beaucoup de personnes ont une petite part d’information, mais personne ne peut répondre à toutes mes questions, loin de là. On m’assure tout de même que l’ACM sera rapidement prêt pour la production. La recherche de la moindre information est une longue quête qui n’arrive pas toujours à bout. C’est l’une des choses qui m’a le plus étonné. Je pensais qu’une SSI aurait une gestion de l’information beaucoup plus pointue. Ici les informations sont souvent erronées, incomplètes ou obsolètes. C’est très déconcertant pour quelqu’un qui arrive dans l’entreprise. Je m’attendais à trouver une information claire et organisée. Je trouve une nébuleuse de wiki et de sites divers, les informations sont régulièrement dupliquées, il faut alors prier pour utiliser la version la moins obsolète.&lt;br /&gt;Dans mon cas, la documentation sur l’intranet était quasi-inexistante. Il m’a fallu interroger les personnes que l’on m’indiquait au fur et à mesure. Les informations arrivaient au compte-goutte. Ce n’est qu’au bout de deux mois de travail, lorsque le développement avait commencé, que j’ai appris par hasard une information capitale concernant l’ACM. J’ai appris l’existence d’une fonctionnalité que très peu de personnes connaissaient. Cette information a remis en cause la majorité de mon analyse. Tout le développement commencé était devenu inutile. J’ai recommencé le projet from scratch. C’était au début du mois d’août. Le planning du nouveau projet indiquait que je terminerai le projet deux semaines avant la fin de mon stage.&lt;br /&gt;Sans aucune considération pour mes souhaits, mon nouveau responsable, Yann, me demande de me replonger dans les statistiques pour en faire une cartographie, en parallèle de mon projet actuel. Tâche longue et ingrate puisqu’elle nécessite de relire le code écrit par d’autres personnes dans des langages que je ne maitrise pas bien. J’essaye d’expliquer que cette tâche ne m’intéresse pas et que je ne lui trouve aucun intérêt pédagogique. On m’explique que ce n’était pas une question : ma prochaine mission sera la cartographie, que je le veuille ou non. Encore une déception, visiblement mon équipe ne comprend pas que je ne suis pas salarié, mais stagiaire. Mon but est de me former, pas de faire le travail ingrat de l’équipe. Malgré moi, j’hérite de cette tâche que personne ne veux effectuer. Peu importe que cela me déplaise, de toute façon je partirai à la fin de mon stage. Mon temps n’a pas la même valeur que celui de mes collègues.&lt;br /&gt;&lt;br /&gt;Maintenant mon stage se termine. J’en fais un bilan très mitigé. J’ai acquis des connaissances dans certains domaines, j’ai travaillé avec quelques framework connus… mais j’en garde néanmoins le goût amer d’avoir assez mal vécu cette expérience. Je me suis senti piégé (par le changement de sujet), abandonné (sans personne pour m’aider), perdu (à cause de l’organisation de l’information) et exploité (puisque je n’ai pas d’influence sur le choix de mon travail).&lt;br /&gt;Ce stage ne correspond absolument pas à ce que j’imaginais avant d’arriver. J’en garderai un souvenir médiocre, une image d’entreprise à la responsabilité sociétale quasi-nulle. Je regrette d’avoir effectué mon stage chez Atos, mais je n’en tiens pas rigueur à mes collègues.&lt;br /&gt;&lt;br /&gt;Je ne pense pas être un cas totalement isolé. Tous les stagiaires que j’ai rencontrés ne se sont pas plaints, mais je n’ai pas forcément abordé le sujet. Ceux avec qui j’ai discuté ont aussi un bilan mitigé allant de moyen à vraiment désagréable (demandez à François qui devait initialement travailler sur Flex mais qui a créé des scripts perl pendant 3 mois).&lt;br /&gt;Je pense qu’il y a une réflexion à mener. Il me semble évident qu’il est totalement incorrect de tenir un discours face aux futurs stagiaires pour ensuite en changer dès qu’ils intègrent l’entreprise. Ce n’est pas comme cela que l’entreprise réussira à recruter l’armée de jeunes diplômés dont elle a besoin.&lt;br /&gt;Je ne suis pas là pour créer des ennuis (sinon c’est au conseil des prud’hommes que j’écrirais), mais j’essaye de partager mon expérience pour éviter que d’autres stagiaires n’aient à subir les mêmes déconvenues.&lt;br /&gt;&lt;br /&gt;Si vous souhaitez en discuter, pour m’éclairer sur des points que j’aurais mal perçus, je suis ouvert à toutes discussions.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-6462624566795923841?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/6462624566795923841/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/09/retour-se-stage.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/6462624566795923841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/6462624566795923841'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/09/retour-se-stage.html' title='Retour de stage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-1609946317014677987</id><published>2008-08-17T09:49:00.001+02:00</published><updated>2010-07-02T10:15:48.363+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>DropBox</title><content type='html'>&lt;a href="http://static.rememberthemilk.com/img/intl/fr/logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; "&gt;&lt;img src="http://static.rememberthemilk.com/img/intl/fr/logo.png" border="0" height="80" width="200" /&gt;&lt;/a&gt;J'ai découvert &lt;a href="http://www.getdropbox.com/"&gt;Dropbox&lt;/a&gt;, un site qui vous permet de stocker en ligne 2 Go de données perso accessible depuis n'importe où. Le petit plus de Dropbox sur ces concurrents, c'est l'intégration dans l'OS qui est parfaite puisque les données apparaissent dans un dossier de votre système dès l'installation d'un petit logiciel. J'ai des invitations pour ceux que ça intéresse (surtout qu'il existe des dossiers partagés).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-1609946317014677987?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/1609946317014677987/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/08/dropbox.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1609946317014677987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1609946317014677987'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/08/dropbox.html' title='DropBox'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-3470399835094901262</id><published>2008-08-14T14:02:00.002+02:00</published><updated>2008-08-14T14:08:46.207+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>La génération Y</title><content type='html'>&lt;a href="http://www.neteco.com/155574-generation-entreprise-tribune-carlos-diaz-bluekiwi.html?xtor=EPR-1"&gt;&lt;span style="font-size:180%;"&gt;"La génération Y bientôt dans votre entreprise"&lt;/span&gt;&lt;span style="font-size:130%;"&gt; - neteco.com (11/08/08)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Président Directeur Général de Bluekiwi, un éditeur européen de solutions collaboratives pour l'entreprise, Carlos Diaz propose cette tribune libre dans laquelle il évoque la nécessaire évolution du management et des outils informatiques afin de séduire une nouvelle génération de collaborateurs...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="float: right; padding-left: 6px; text-align: center;"&gt;&lt;a href="http://www.neteco.com/visualiser-1536438.html" title="Carlos DIAZ" target="_blank"&gt;&lt;img src="http://img.neteco.com/photo/00FA000001536438.jpg" alt="Carlos DIAZ" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.neteco.com/visualiser-1536438.html" title="Carlos DIAZ" target="_blank"&gt;&lt;span class="mini griser"&gt; Carlos Diaz&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ils sont jeunes, multitâches, connectés, voient l'entreprise autrement....et seront vos collègues dès demain. Vous en avez certainement entendu parler dans les journaux, sur Internet, peut être en avez vous déjà croisé dans les murs de votre entreprise. Il se peut fortement que vous en côtoyiez certains au quotidien : vos enfants. Eux, ce sont ceux qu'on surnomme la Génération Y, ou encore les Digital Natives.&lt;br /&gt;&lt;br /&gt;Ils sont nés après 1978, succèdent à la génération X qui a elle même pris la suite des Baby Boomers, et s'ils monopolisent l'attention des médias et des entreprises c'est en raison de traits de personnalité nouveaux qui bouleversent leur rapport à l'entreprise, au travail.&lt;br /&gt;&lt;br /&gt;Tout part du contexte dans lequel ils ont grandi. Nés de parents souvent surinvestis dans leur travail, les Digital Natives sont individualistes et débrouillards et n'ont pas l'intention de perdre leur vie à la gagner. Pragmatiques, seuls l'action et le résultat comptent et ils rejettent tout ce qu'ils jugent déconnectés de la réalité. Ils n'ont quasiment pas connu le monde d'avant Internet, ce qui constitue un outil à apprivoiser et une activité en tant que telle pour leurs ainés fait partie de leur vie, est un prolongement naturel de leur identité. La vie "réelle" et la vie "en ligne" se confondent donc pour une génération hyper connectée qui a tiré de cette expérience une prédilection pour le fonctionnement en réseaux, les échanges permanents, l'immédiateté du résultat. La Génération Y n'est pas sur Internet, elle en fait partie. Habitués à solliciter leurs contacts pour avoir de l'information ils ne font plus confiance à la "parole officielle", à la pensée « structurée » qu'elle soit celle de l'entreprise, du monde politique, religieux ou syndical. Dernier aspect, et non des moindres, habitués dès leur plus jeune âge à utiliser simultanément plusieurs médias, ils sont devenus véritablement multitâches et peuvent ainsi à la fois lire un document, participer à une discussion sur messagerie instantanée, discuter avec vous et écouter de la musique.&lt;br /&gt;&lt;br /&gt;Appliquée au monde de l'entreprise qu'ils commencent peu à peu à pénétrer, cette culture n'est pas sans inquiéter car elle ne ressemble en rien à celle que leurs ainés ont véhiculé. Le Y est un "surfeur" dans tous les sens du terme. Il surfe bien sur internet, sur les réseaux sociaux, passe d'information en information et de contact en contact. Il surfe aussi sur les projets, les idées : conséquence de son pragmatisme il n'a pas d'a priori et sait s'adapter en permanence au contexte, changer de stratégie. Le Y est impatient : il veut des résultats rapides, qu'il s'agisse des siens ou de ce qu'il attend des autres. Il va donc droit au but, veut communiquer de manière instantanée avec la bonne personne, avoir une réponse immédiate et ne s'embarrasse pas des procédures et des intermédiaires qui lui font perdre du temps. Le Y est également en apprentissage permanent. Habitué à un monde qui change vite et à baigner dans des flux d'information il trouve logique d'avoir accès à toute l'information sans aucun cloisonnement. Il accorde d'ailleurs une grande importance au fait de pouvoir apprendre en permanence de ces expériences terrain et se désengage rapidement lorsqu'il n'apprend plus rien. Il n'y a, pour eux, de travail sans développement personnel. De la même manière, vivant de manière connectée et très sensible à l'importance de savoir ce que font les autres afin d'évoluer dans un monde en réseau, ils demandent cette même visibilité dans l'entreprise où ils considèrent qu'on ne peut agir efficacement ensemble sans avoir une vision globale de qui sont les autres, de ce qu'ils font et sans pouvoir interagir directement avec qui ils jugent nécessaire. Dernier point, et non des moindres, l'équilibre entre le travail et la vie privée n'est pas négociable. Les Y sont demandeurs d'horaires flexibles, se sentent plus engagés par un objectif à atteindre que par la nécessité d'être physiquement présents au bureau, imaginent mal oublier leur vie personnelle en arrivant au bureau dès lors que leur travail peut rogner sur leur temps libre. Pour clore ce chapitre, pragmatisme et exemple parental aidant, ils ne croient ni aux promesses ni à l'emploi à vie. Le Y n'hésitera pas à quitter son emploi dès lors qu'il s'ennuie, n'apprend rien, ne se sent pas autonome, ressent un déficit de confiance, n'a pas l'impression de "vivre" au travail. Pour preuve l'étude citée dans la partie précédente. De toute manière le Y aura, avant de s'engager, vérifier la compatibilité de la culture d'entreprise avec ses propres attentes : il se sera renseigné, aura sollicité son réseau, fait un comparatif grâce aux informations trouvées sur Internet. Votre site d'entreprise ? Il l'aura a peine consulté car jugé peu fiable et manquant cruellement de transparence. Le Y n'est donc pas qu'un nouveau type de collaborateur, il est un nouveau type de candidat avec qui il faut inter(agir) différemment, avec transparence, bien en amont du processus de recrutement.&lt;br /&gt;&lt;br /&gt;Quelles conséquences pour l'entreprise qui voit arriver des flots sans cesse plus importants de Y sur le marché du travail ? Elle peut adopter deux attitudes.&lt;br /&gt;&lt;br /&gt;La première est de tout faire afin de faire rentrer ses nouvelles recrues dans le moule afin d'éviter tout choc des cultures. Choix court-termiste qui ne fait que repousser l'inéluctable. Tout d'abord parce qu'acculturation signifie souvent frustration, avec les conséquences qu'on peut imaginer. Ensuite parce que tout est question d'offre et de demande et que les lois de la démographie sont implacables : demain seuls les Y frapperont aux portes de l'entreprise pour remplacer le flot des Baby Boomers retraités. Enfin, et ceci explique cela, parce que la question n'est pas de se demander s‘ils imprimeront leur marque à l'entreprise mais quand et comment. L'histoire se répète et le passé nous donne une excellente vision de l'avenir : malgré les craintes, les a priori, les Baby Boomers ont transformé en profondeur les entreprises qui les ont accueillis. Ils ont été eux mêmes dubitatifs devant l'arrivée de la génération X mais l'histoire s'est répétée et ces derniers ont apporté avec eux les valeurs du monde dans lequel ils avaient grandi. C'est désormais le tour des Y.&lt;br /&gt;&lt;br /&gt;La seconde solution pour l'entreprise peut être de faciliter l'arrivée de cette génération afin, justement, de préparer l'avenir en douceur plutôt que vivre l'inéluctable de manière plus violente, plus tard. Ce qui ressemble à la voie de la sagesse pour une autre raison. Alors que la performance de l'entreprise va passer par davantage d'agilité, par l'adoption d'une culture du réseau, peut on raisonnablement se passer de cette génération formidable qui, empreinte de la culture adhoc se présente finalement comme du pain bénit devant les portes des DRH ? L'occasion pour l'entreprise de prendre les choses en main aujourd'hui plutôt qu'être sur la défensive ; de piloter aujourd'hui plutôt que d'être spectatrice passive de son évolution future.&lt;br /&gt;&lt;br /&gt;L'enjeu est donc clair : il s'agit de faciliter l'intégration de ces nouveaux profils, en se servant de leurs capacités comme d'un catalyseur mais tout en les cadrant afin d'éviter la dispersion et faire en sorte que leurs spécificités servent efficacement les objectifs de l'entreprise.&lt;br /&gt;&lt;br /&gt;Carlos Diaz&lt;br /&gt;PDG BlueKiwi&lt;br /&gt;www.bluekiwi-software.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-3470399835094901262?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/3470399835094901262/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/08/la-gnration-y.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3470399835094901262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/3470399835094901262'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/08/la-gnration-y.html' title='La génération Y'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-2220460074558419164</id><published>2008-08-08T11:27:00.008+02:00</published><updated>2010-07-02T09:49:11.320+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Deux mois de travail dans le vent</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Je travaille dans un grande entreprise informatique dont on taira le nom. Il n'est pas nécessaire de souligner outre-mesure les lacunes évidentes de l'organisation de l'information inhérentes aux sociétés de cette taille.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KsWUtFo-G_0/SKF6VX8HWbI/AAAAAAAAGoc/T4rj_smVY58/s1600-h/POISSON_AO.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_KsWUtFo-G_0/SKF6VX8HWbI/AAAAAAAAGoc/T4rj_smVY58/s200/POISSON_AO.jpg" alt="" id="BLOGGER_PHOTO_ID_5233598749603223986" border="0" /&gt;&lt;/a&gt;Jusqu'ici mon stage se passait plutôt bien à part quelques petits déboires de début de stage (voir un post précédent). Cette semaine j'ai appris que j'allais pouvoir mettre à la poubelle le projet sur lequel je travail depuis plus de deux mois à plein temps.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;L'histoire commence il y a deux mois donc, lorsque l'on me demande de réfléchir à un système automatisé de gestion de campagnes mail. Le projet dérive un peu, le sujet se transforme, revient au sujet d'origine. Je perds un temps considérable à puiser des informations auprès de notre client ainsi qu'au près de mes collègues qui ont développé des solutions exploitables.&lt;br /&gt;&lt;br /&gt;Après de longues semaines de préparation, mon projet est enfin validé, je commence le développement, le projet se passe pas trop mal, avance lentement puisqu'il me faut prendre en main de nombreux framework que je ne connais pas encore (Hibernate, Spring, Tapestry ainsi que le module Maven pour Eclipse).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KsWUtFo-G_0/SKF6leJLb7I/AAAAAAAAGok/MJlMuCk5Q24/s1600-h/trashcan.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_KsWUtFo-G_0/SKF6leJLb7I/AAAAAAAAGok/MJlMuCk5Q24/s200/trashcan.jpg" alt="" id="BLOGGER_PHOTO_ID_5233599026146537394" border="0" /&gt;&lt;/a&gt;Quelques semaines après le début du développement je commence à me renseigner sur une fonctionnalité centrale de mon projet. Encore une fois, je passe un temps considérable à appeler une dizaine de personnes et à envoyer des mails pour avoirs quelques informations inexploitables.&lt;br /&gt;&lt;br /&gt;Cette lente quête d'information continuera jusqu'à mi-juillet, où j'apprends que la fonctionnalité aurait déjà été développée pour un outils, celui que je vais utiliser. Je demande confirmation de cette information. Trois semaines et une dizaine de relance plus tard, la nouvelle est confirmée.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Cette fonctionnalité est centrale dans mon projet, c'est elle qui nécessitait que mon projet soit aussi conséquent. Le fait que cette fonctionnalité soit retirée rend mon projet vide, inconsistant... Je n'ai plus qu'à le mettre à la poubelle et à recommencer un petit projet minable.&lt;br /&gt;&lt;br /&gt;J'ai beau me dire, que tout n'est pas perdu puisque j'ai appris de nombreux choses en m'initiant à Maven, Hibernate... mais il me reste quand même l'impression que ces grosses entreprises sont aussi des usines à gâchis. Ça ne parait pas infaisable de créer des procédures de documentation standardisée et suffisamment homogène pour être réunie en un seul endroit (wiki ou autre).&lt;br /&gt;&lt;br /&gt;Il &lt;span style="font-style: italic;"&gt;suffirait &lt;/span&gt;que la direction force les équipes à écrire et organiser l'information selon des modèles prédéfinis. Les modèles existent, il ne manque plus que la volonté et le temps, mais plus on prend du retard plus la tâche sera difficile et moins il y a de documentation moins on a envie d'en faire.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-2220460074558419164?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/2220460074558419164/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/08/deux-mois-de-travail-dans-le-vent.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2220460074558419164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2220460074558419164'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/08/deux-mois-de-travail-dans-le-vent.html' title='Deux mois de travail dans le vent'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KsWUtFo-G_0/SKF6VX8HWbI/AAAAAAAAGoc/T4rj_smVY58/s72-c/POISSON_AO.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7041751112339630664</id><published>2008-05-23T13:26:00.006+02:00</published><updated>2008-09-12T10:33:45.504+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Petits tracas de début de stage</title><content type='html'>&lt;p&gt;&lt;i&gt;Je vais essayer de vous donner un rapide aperçu des premières semaines de mon stage. De mon arrivée chez Atos, de mes premiers tracas, de l'équipe, de mon travail...&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;b style="font-style: italic;"&gt;Mardi matin (le lundi 12 étant férié), 9h00, Atrium (le nom du bâtiment)&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7MDLlY8I/AAAAAAAAGos/yfFFtuknbV4/s1600-h/atrium.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7MDLlY8I/AAAAAAAAGos/yfFFtuknbV4/s200/atrium.jpg" alt="" id="BLOGGER_PHOTO_ID_5233599688923767746" border="0" /&gt;&lt;/a&gt;Je n'ai encore aucun moyen d'accéder au bâtiment, il faut un badge et j'en ai pas encore. J'accroche mon vélo dehors. Je rentre lorsqu'un futur collègue passe son badge. J'explique à la réceptionniste que je suis un nouveau stagiaire chez Atos. Elle me dit de monter au 6&lt;sup&gt;ème&lt;/sup&gt; étage. Je monte. De nouveau, je me retrouve devant une porte fermée qui nécessite un badge. Je sonne, on m'ouvre. Je me présente. On me demande d'attendre.Une dizaine de minutes plus tard, Éric passe me chercher et me ramène au 5&lt;sup&gt;ème&lt;/sup&gt; étage.&lt;/p&gt;&lt;p&gt;&lt;b style="font-style: italic;"&gt;Les présentations, le sujet&lt;/b&gt;&lt;br /&gt;En arrivant, Éric (mon tuteur) me présente à toutes les personnes présentes à cette étage. Je suis donc le nouveau stagiaire, comme une dizaine d'autres en ce moment. J'ai un ordinateur qui m'attend dans un bureau que je partage avec Éric , Vincent (un autre stagiaire) et Bastien. Éric me présente rapidement l'organisation de l'équipe, d'Atos... ainsi que le travail de l'équipe. On gère un SVI (&lt;i&gt;serveur vocal interactif&lt;/i&gt;) pour le compte de la CNAF (&lt;i&gt;la caf au niveau national&lt;/i&gt;). Je vais devoir m'occuper de la correction de bugs dans une applications de création de statistiques.&lt;/p&gt;&lt;p&gt;Comme moi vous l'avez remarqué, je devais travailler pour l'ANPE avec un tuteur qui s'appelait Stéphane. Soit mon tuteur a récemment changé de nom (ainsi que l'ANPE), soit il y a eu confusion. Je demande des explications. On me répond que les stages sont définis bien trop à l'avance, que l'on ne peut pas prévoir ce qu'il faudra faire. L'urgence du moment c'est la CNAF et ses statistiques (&lt;i&gt;j'aurais du écouter en cours de stats&lt;/i&gt;).&lt;/p&gt;&lt;p&gt;&lt;b style="font-style: italic;"&gt;Hop hop hop&lt;/b&gt;&lt;br /&gt;Je fais un peu la grimace, mais je me résigne à me mettre doucement au travail sur ce projet. Difficile de se mettre au travail quand tout est contre vous, en arrivant, je n'ai accès à rien : ni aux machines ni à mon propre poste de travail. Il me faut faire de nombreuses démarches pour pouvoir être admin de ma machine et pouvoir me connecter aux machines hébergeant les processus à débugger.&lt;/p&gt;&lt;p&gt;Dès les jours suivant, j'entreprends de contacter mes enseignants pour leur demander conseil. Mon nouveau sujet de stage ne m'intéresse nullement. Je me sens trompé, roulé dans la farine et sans possibilité de faire marche arrière puisqu'il est trop tard pour chercher un nouveau stage.&lt;/p&gt;&lt;p&gt;Je me décide enfin à discuter avec ma responsable d'équipe à qui je confie que mon assignation ne me satisfait pas. Je lui explique que je comptais avoir un stage constitué d'un gros projet de 4 mois intéressant et en adéquation avec ce que j'avais envie de découvrir. Elle me propose d'en reparler la semaine prochaine. J'attends...&lt;/p&gt;&lt;p&gt;&lt;b style="font-style: italic;"&gt;Un nouveau nouveau sujet&lt;/b&gt;&lt;br /&gt;C'est bon, je viens d'en avoir aujourd'hui la confirmation. Le travail que j'effectue est temporaire, je vais maintenant me concentrer sur mon nouveau sujet : la gestion des campagnes mails de la CNAF pour les déclarations de ressources 2008.Voici le sujet :&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Création d'un outil simple d'envoi de mail en masse pour le compte de la CNAF, et si validation, d'être généralisé à l'utilisation des comptes du département. La mission consiste à réaliser une première phase d'étude et de spécification. Cette partie doit donner des indications de choix de technologie et mettre à plat tous les éléments nécessaires à la réalisation.&lt;/p&gt; &lt;p&gt;La seconde partie consistera à réaliser l'application qui devra permettre un retour de statistiques d'exploitation ainsi qu'une gestion de l’échec des envois.&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;La crise est résolue. Je vous reparlerais de mon projet lorsqu'il avancera bien.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7041751112339630664?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7041751112339630664/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/05/petits-tracas-de-dbut-de-stage.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7041751112339630664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7041751112339630664'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/05/petits-tracas-de-dbut-de-stage.html' title='Petits tracas de début de stage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7MDLlY8I/AAAAAAAAGos/yfFFtuknbV4/s72-c/atrium.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7083487350012020224</id><published>2008-05-12T18:19:00.002+02:00</published><updated>2008-08-12T14:03:18.474+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Demain, mon stage chez Atos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7_T94ZkI/AAAAAAAAGo0/mzI7Sj0FtgU/s1600-h/logo_aw.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7_T94ZkI/AAAAAAAAGo0/mzI7Sj0FtgU/s200/logo_aw.gif" alt="" id="BLOGGER_PHOTO_ID_5233600569603024450" border="0" /&gt;&lt;/a&gt;Je commence mardi mon stage chez Atos WordLine à  Lyon (10 minutes de chez moi en vélo).L'entreprise est une filiale de Atos Origin, une SSII (société de service en informatique) qui a comme modèle économique d'accompagner des entreprises pour créer des services à valeur ajoutée et se rémunérer sur l'utilisation des services (modèle gagnant-gagnant). On travaille par exemple sur des serveurs vocaux d'entreprises et d'administration (ANPE par exemple). Lorsque les clients utilisent le serveur vocal ils paient des frais à FT qui les reverse à Atos Wordline qui en prélève une partie et les reverse à l'entreprise. Mon stage portera sur la rénovation d'un système d'envoi de fax, mail, pigeons voyageurs en nombre pour le compte de l'ANPE. J'en saurais plus mardi. Pour l'instant je sais juste que je suis payé 900€ brut/mois et que je fais 37h/sem avec donc des RTT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7083487350012020224?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7083487350012020224/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/05/deamin-mon-stage-chez-atos.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7083487350012020224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7083487350012020224'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/05/deamin-mon-stage-chez-atos.html' title='Demain, mon stage chez Atos'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KsWUtFo-G_0/SKF7_T94ZkI/AAAAAAAAGo0/mzI7Sj0FtgU/s72-c/logo_aw.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-8432756889020334392</id><published>2008-01-27T19:26:00.001+01:00</published><updated>2010-07-02T09:56:51.413+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><title type='text'>Mon futur stage 4IF</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.atosworldline.fr/images/system/logo_aw.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 180px;" src="http://www.atosworldline.fr/images/system/logo_aw.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.atosworldline.be/Be/img/atos_worldline_logo.gif"&gt;&lt;/a&gt;Atos Worldline est une filiale de Atos Origin. Je vais y effectuer mon stage de 4IF à partir de Mai et pour 4 mois, j'essayerais de vous tenir au courant de l'avancée de mon stage au fur et à mesure.&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;L’objectif de ce Projet de Fin d’Etude consiste à faire évoluer une application déjà en production pour le compte de l’ANPE en utilisant des technologies innovantes.&lt;span style=""&gt; &lt;/span&gt;Ceci nécessitera de mettre en place une démarche de gestion de projet complète pour concevoir, réaliser et mettre en production cette nouvelle application tout en gardant à l’esprit les bonnes pratiques d’exploitation&lt;/blockquote&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt; Ça devrait mêler gestion de projet et technologies d'avant-garde. Une bonne façon de se lancer dans de vrais projets avec la gestion qui va avec. Ça me fait aussi un pied dans une grande SSII pour pouvoir mieux apprécier l'ambiance SSII avant de devoir choisir un jour mon premier boulot.&lt;br /&gt;&lt;br /&gt;Mon premier contact avec l'entreprise s'est fait lors de l'Atos Campus Tour qui a vu un camion bardé de logo au poisson se garer sur devant le département informatique de l'Insa. J'y ai rencontré quelques employés d'Atos qui m'ont présenté leur métier et leur propositions de stage autour d'un buffet. Un cadre sympathique, des gens ouverts, des offres intéressantes, j'ai mordu à l'hameçon...&lt;br /&gt;&lt;br /&gt;Je suis ensuite venu passer un entretien avec une DRH et opérationnel (j'ai beaucoup leur terme, c'est super sympa pour les inopérationnels). L'entretien s'est très bien passé et a largement dépassé le temps impartit. On en est arrivé à parler de nombreuses choses, des qualités et défauts de mon interlocuteur...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-8432756889020334392?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/8432756889020334392/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/01/mon-futur-stage-4if.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/8432756889020334392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/8432756889020334392'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/01/mon-futur-stage-4if.html' title='Mon futur stage 4IF'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7114675591900679345</id><published>2008-01-20T13:22:00.002+01:00</published><updated>2010-07-02T10:03:58.308+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Android</title><content type='html'>&lt;span style="font-style: italic;font-size:85%;"&gt;Comme annoncé précédemment, je vais faire un petit post pour vous parler d'Android que je suis particulièrement ces temps-ci.&lt;/span&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.android.com/media/wallpaper/gif/android_logo.gif" alt="" border="0" /&gt;&lt;span style="font-size:100%;"&gt;On commence par une présentation. Android est un système d'exploitation (OS) pour téléphone portable basé sur Linux. C'est le même type de produit que Windows Mobile qui fait tourner les smartphones actuels. Bien que basé sur Linux, c'est un OS de prise en main très simple ; vous ne taperez jamais une ligne de commande sous Android, c'est un produit grand public.&lt;br /&gt;&lt;br /&gt;L'interface est très facilement modifiable, il faut donc s'attendre à le voir fleurir chez différentes marques avec des apparences très différentes. Les premières versions ressemblent à des copies de l'iphone (avec des designs épurés très à la mode). Chaque marque déploiera son style habituel pour habiller cet OS, mais les fonctionnalités resterons les mêmes une base simple et ouverte pour toutes les applications possibles. Google étant l'éditeur de cet OS, il a déjà sortit une ribambelle d'outils, c'est à dire des versions de ses services online spécialement retouché pour être lus sur un téléphone portable. Seront aussi proposé un client mail et calendrier (Gmail et GCalendar en offline).&lt;br /&gt;D'autres gadgets ont déjà été présentés, comme la géolocalisation et l'affichage sous googleMap...&lt;br /&gt;&lt;br /&gt;Les principaux avantages d'Android ne viennent pas des logiciels proposés par Google, qui n'ont rien de bien innovant, mais plutôt de la totale liberté qui est donnée au développeurs pour créer de nouvelles applications pour cette plateforme. On verra bientôt des centaines d'applications combler les lacunes des autres smartphones qui n'ont jamais toutes les fonctionnalités que l'on souhaite. Cette liberté vient de la licence  OpenSource d'Android et de la publication de la (maigre) documentation du système d'Android.&lt;br /&gt;&lt;br /&gt;On attend les premiers téléphones portables pour la mi-2008, mais on voit déjà fleurir des dizaines d'applications et de jeux, poussés par le challenge mis en place par google et doté de 10 millions pour récompenser les 50 meilleures applications.&lt;br /&gt;&lt;br /&gt;J'espère que les premiers portables sortiront bientôt pour que je puisse tester et vous faire part de mes premières impressions. En attendant, si vous voulez en savoir plus, vous pouvez visiter :&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://pointgphone.com/"&gt;pointgphone.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.androidfrance.com/"&gt;androidfrance.com&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://android-developers.blogspot.com/"&gt;&lt;span style="font-size:100%;"&gt;android developers blog&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(source image : &lt;a href="http://pointgphone.com/"&gt;pointgphone.com&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7114675591900679345?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7114675591900679345/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/01/android.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7114675591900679345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7114675591900679345'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/01/android.html' title='Android'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-4025447336230452715</id><published>2008-01-20T13:10:00.001+01:00</published><updated>2010-07-02T10:04:45.381+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gloire'/><title type='text'>Rapport de stage 3IF</title><content type='html'>La semaine dernière j'ai reçu la correction de mon rapport d'expérience que j'avais rendu fin septembre, ce qui a laissé 3 bon mois pour faire quelques traits pour indiquer qu'il avait lu, quelques bulles autour de certains mots clés, et quelques commentaires légers. En feuilletant le rapport, on se demande pourquoi on l'a fait s'il a été juste parcouru, mais en regardant la dernière page je découvre le commentaire de mon correcteur. Je vous le laisse découvrir, ça fait plaisir :&lt;br /&gt;&lt;blockquote&gt;"Rapport intéressant, bien écrit, "personnel". J'ai beaucoup apprécié sa lecture. C'est -typiquement- ce que l'on attend d'un ex 3IF. Très bien donc ! Bonne scolarité.&lt;br /&gt;Note A+"&lt;/blockquote&gt;Ça fait vraiment plaisir de voir que l'on a pas écrit ça pour rien et que quelqu'un l'a lu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-4025447336230452715?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/4025447336230452715/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/01/rapport-de-stage-3if.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4025447336230452715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4025447336230452715'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/01/rapport-de-stage-3if.html' title='Rapport de stage 3IF'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-4058281765189716832</id><published>2008-01-17T22:07:00.001+01:00</published><updated>2008-01-17T22:09:45.511+01:00</updated><title type='text'>Ca repars</title><content type='html'>Voila quelques posts qui viennent d'apparaitre. Ca fait du bien de voir que ca peut aller vite d'écrire de la merde, je vais essayer de garder le rythme jusqu'au stage (après c'est gagné, j'aurais du temps).&lt;br /&gt;J'en ai profité pour faire quelques modifications ajout de twitter, d'une section mon moi virtuel et mise à jour des blogs suivis.&lt;br /&gt;&lt;br /&gt;A bientôt&lt;br /&gt;&lt;br /&gt;Max&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-4058281765189716832?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/4058281765189716832/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/01/ca-repars.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4058281765189716832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4058281765189716832'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/01/ca-repars.html' title='Ca repars'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7767418686673244695</id><published>2008-01-17T21:05:00.001+01:00</published><updated>2010-07-02T10:05:14.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>Le revers de la gratuité</title><content type='html'>Un très bon article tiré d'Agoravox, disponible &lt;a href="http://www.agoravox.fr/article.php3?id_article=34509"&gt;ici&lt;/a&gt; (auteur : &lt;a href="http://ardepo.blogspot.com/"&gt;Martin Lucas&lt;/a&gt;):&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span class="sommaire_article_une_titre"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le revers de la gratuité&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;                    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;Ces dernières années ont été marquées par une expansion sans précédent du "gratuit". Journaux gratuits, sites gratuits, musique gratuite, voiture gratuite (financée par la pub), téléphonie gratuite (bientôt le "google phone"), il semble aujourd’hui possible de vivre au quotidien sans débourser un rond, et ce, grâce à la publicité!&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;a target="_new" href="http://www.agoravox.fr/IMG/sesterceTrajan_Decius_RIC_0115c.jpg"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a target="_new" href="http://www.agoravox.fr/IMG/sesterceTrajan_Decius_RIC_0115c.jpg"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a target="_new" href="http://www.agoravox.fr/IMG/sesterceTrajan_Decius_RIC_0115c.jpg"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;La publicité, une manne semble-t-il colossale et inépuisable (au niveau mondial, elle dépasse le budget de l’éducation avec 1 000 milliards de dollars annuels) au point que sa disparition probable des chaînes publiques provoque une réaction inattendue dans les rangs de la gauche "modérée" qui considère qu’il s’agit-là de "cadeaux aux amis". On l’aura compris, cette gauche-là a trouvé refuge du petit côté de la lorgnette.&lt;/span&gt;&lt;/a&gt;En parallèle, nous subissons comme une lame de fond l’augmentation régulière des prix à la consommation, augmentation que plus personne ne songe à nier (encore 2,6 % entre 2006 et 2007).Les salaires suivent-ils la même progression ? A lire &lt;a href="http://www.lefigaro.fr/economie/2007/11/29/04001-20071129ARTFIG00364-salaire-moyen-baisse-de-par-an-entre-et-.php"&gt;cet article&lt;/a&gt; du&lt;em&gt; Figaro,&lt;/em&gt; même si pour les salariés à temps plein il a effectivement augmenté, de 0,5 % par an (insuffisants pour rattraper la progression des prix), le revenu de tous les salariés, temps partiel compris, a bien baissé de 0,1 % par an entre 2000 et 2005.L’augmentation des prix serait due, selon le discours ambiant, à une augmentation du prix des matières premières. On ne saurait nier la pression venant des matières premières, mais on oublie souvent que celles-ci forment tout au plus 5 ou 10 % du prix de revient d’un produit manufacturé ou préparé. Le coût du travail, lui, n’a que peu augmenté en France en comparaison d’autres pays européens, si l’on regarde &lt;a href="http://gribeco.free.fr/article.php3?id_article=45"&gt;ce graphique&lt;/a&gt;.L’augmentation des prix ne trouve donc pas sa source dans le coût du travail, ni dans celui des matières premières. L’augmentation permanente des dividendes des actionnaires est un fait aquis, mais n’est qu’un facteur de &lt;a href="http://www.monde-diplomatique.fr/carnet/2007-03-14-Dividendes-en-hausse"&gt;la crise&lt;/a&gt;.&lt;/span&gt;                 &lt;p class="spip"&gt;&lt;span style="font-size:100%;"&gt;Et si la hausse des prix était tout simplement destinée à financer ces services dits gratuits dont l’offre grandit de jour en jour ?&lt;br /&gt;Nous serions alors les victimes d’un véritable hold-up quotidien, destiné à nous faire payer des services que nous n’avons même pas demandés. Que diriez-vous si une étiquette vous prévenait de la répartition du prix, entre budget publicitaire, main-d’oeuvre, matière première, dividendes ?&lt;br /&gt;Que diriez-vous de savoir quels sont les services que vous payez, par le biais d’un paquet de pâtes, d’une paire de chaussures ou d’une lessive, produits qui pèsent peut-être lourd dans votre budget, à vous, qui n’allez pas sur des sites de musique en ligne, qui ne vous informez pas sur les journaux gratuits, qui ne regardez pas la télé ?&lt;br /&gt;Comment appelleriez-vous une pratique qui consiste à vous vendre deux produits à la fois, alors que vous ne voulez qu’un seul des deux ?&lt;br /&gt;On appelle cela de la &lt;a href="http://fr.wikipedia.org/wiki/Vente_li%C3%A9e"&gt;vente liée&lt;/a&gt;, et c’est interdit par la loi.&lt;/span&gt;&lt;/p&gt;&lt;p class="spip"&gt;&lt;span style="font-size:100%;"&gt;Est-il possible actuellement d’intenter une action en justice contre un fabricant de chaussures ou de desserts industriels, au motif qu’on n’a pas demandé à payer la retransmission d’un match de foot sur TF1, pas plus qu’on n’a demandé à financer les tonnes de papier qui jonchent le sol des entrées de métro ?&lt;br /&gt;Voilà qui changerait singulièrement la donne, dans notre monde si "gratuit" !&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7767418686673244695?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7767418686673244695/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2008/01/le-revers-de-la-gratuit.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7767418686673244695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7767418686673244695'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2008/01/le-revers-de-la-gratuit.html' title='Le revers de la gratuité'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7118353664574938958</id><published>2007-09-25T11:26:00.000+02:00</published><updated>2007-09-25T11:31:10.168+02:00</updated><title type='text'>Offre office pour les étudiants</title><content type='html'>Une offre pour une license officielle de microsoft Office 2007 à seulement 52 TTC. à vie ou 18TTc pour 1an.&lt;br /&gt;A voir ici :   &lt;a href="http://www.officepourlesetudiants.fr/"&gt;http://www.officepourlesetudiants.fr/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Une bonne occasion de se mettre en conformité.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7118353664574938958?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7118353664574938958/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/09/offre-office-pour-les-tudiants.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7118353664574938958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7118353664574938958'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/09/offre-office-pour-les-tudiants.html' title='Offre office pour les étudiants'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-798361252983966458</id><published>2007-09-23T19:46:00.000+02:00</published><updated>2007-09-23T20:36:44.025+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>Fin de stage</title><content type='html'>C'est bon j'ai enfin terminé mon stage. Après presque 4 mois mon stage arrive à sa fin, j'ai rempli ma mission, vous pouvez voir le fruit de mon travail &lt;a href="http://88.191.70.30/cp/demo.jsp"&gt;ici&lt;/a&gt;, mais je doute que sans une explication on comprenne facilement le but de la chose.&lt;br /&gt;&lt;br /&gt;J'en profite pour vous donner mon &lt;a href="http://maxime.werlen.googlepages.com/Rapport_de_stage.pdf"&gt;rapport de stage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Je vais essayer de poster quelques documents techniques antidaté pour remplir un peu le blog...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-798361252983966458?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/798361252983966458/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/09/fin-de-stage.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/798361252983966458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/798361252983966458'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/09/fin-de-stage.html' title='Fin de stage'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-4895848291224068446</id><published>2007-09-23T16:58:00.000+02:00</published><updated>2007-09-23T17:04:15.083+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>Les fournisseurs d'accès au Web doivent aussi rendre des comptes</title><content type='html'>Avec les progrès technologiques et l'ouverture à la concurrence, les offres de service dans le domaine de l'accès à l'Internet à haut débit (ADSL) se multiplient. Mais que faire lorsque le prestataire est défaillant ? Après avoir épuisé tous les recours amiables, il n'y a parfois d'autre solution que d'aller en justice pour être indemnisé du préjudice.&lt;br /&gt;&lt;br /&gt;Utilisateur des services d'un fournisseur d'accès à l'Internet (FAI) depuis octobre 2003, Marc, notre lecteur, a demandé, en septembre 2004, le dégroupage total. Il a ainsi confié sa liaison à Internet, son courriel et sa ligne téléphonique à Free. Un mois plus tard, il se retrouvait privé de connexion au Web et de téléphone. Malgré ses demandes réitérées et ses multiples démarches, ceux-ci n'ont été rétablis qu'en janvier 2005.&lt;br /&gt;&lt;br /&gt;Marc a attaqué son fournisseur d'accès pour manquement à l'article L.121-20-3 du code de la consommation, qui impose au professionnel une obligation de résultat. Ce dernier a répondu que, dans le cadre d'une demande de dégroupage total, il n'était intervenu qu'en qualité de mandataire de Marc, et non en tant que fournisseur d'une prestation de service commandée par Internet.&lt;br /&gt;&lt;br /&gt;Alléguant que les difficultés rencontrées avaient pour origine un défaut d'installation de France Télécom, et faisant valoir qu'il n'avait aucune possibilité d'agir sur le réseau ni auprès des techniciens de France Télécom, le FAI a estimé que les déboires de son client relevaient d'un cas de force majeure et n'engageaient donc pas sa responsabilité contractuelle.&lt;br /&gt;&lt;br /&gt;Un tel dysfonctionnement n'est pas rare, les abonnés à l'ADSL sont nombreux à s'en plaindre. Le transport des paquets d'informations électroniques à des débits de plus en plus rapides est parfois difficile à installer, d'autant que les fournisseurs d'accès ne sont pas maîtres de la "boucle locale" (câble qui relie l'abonné au central téléphonique) gérée par France Télécom. En cas de panne, les deux sociétés ont du mal à coordonner leurs interventions. Les clients qui résilient leur abonnement à France Télécom en optant pour un dégroupage total ne sont plus prioritaires et peuvent être privés de téléphone pendant plusieurs semaines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INCIDENT PAS IMPRÉVISIBLE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Le jugement, rendu le 26 juin par le tribunal de grande instance de Paris (cinquième chambre, première section), a repoussé les arguments du fournisseur. En effet, la demande de Marc comportait à la fois un "formulaire de commande de dégroupage total" et un "mandat de dégroupage", confiant au FAI "la mission de solliciter auprès de France Télécom l'usage de sa boucle locale afin de lui fournir un nouveau service de télécommunication".&lt;br /&gt;&lt;br /&gt;Le contrat, conclu à distance, relevait donc de l'article L.121-20-3 du code de la consommation qui rend le professionnel "responsable de plein droit de la bonne exécution des obligations du contrat, que celles-ci soient à exécuter par lui-même ou par d'autres prestataires de services".&lt;br /&gt;&lt;br /&gt;Le tribunal a aussi relevé que l'incident technique survenu sur le réseau de France Télécom n'était pas imprévisible. Ce type de problème était suffisamment connu pour que le FAI ait tenté d'échapper à sa responsabilité en édictant, en 2004, des conditions générales de vente jugées partiellement abusives. La fréquence de tels incidents avait d'ailleurs conduit France Télécom à établir, dès le 12 décembre 2003, un document détaillant la répartition des responsabilités sur une ligne téléphonique.&lt;br /&gt;&lt;br /&gt;D'autre part, le FAI a tenté de soutenir que l'"inertie" de Marc était responsable de la durée de l'interruption du service, car il aurait tardé à faire vérifier son installation. Mais notre lecteur a pu prouver qu'il avait signalé immédiatement la panne, d'abord par télécopie, puis par lettre recommandée et mise en demeure dix jours plus tard, sans oublier seize courriels adressés depuis son lieu de travail, entre le 24 octobre 2004 et le 6 janvier 2005.&lt;br /&gt;&lt;br /&gt;Le FAI a donc été condamné à verser à Marc la somme de 4 511,10 euros : 89,97 euros pour le remboursement de trois mois d'abonnement sans service, 10 euros pour les appels à la ligne d'assistance téléphonique, 111,13 euros pour les communications sur un téléphone mobile d'emprunt, 1 300 euros pour préjudice moral (privation de téléphone pendant les fêtes de fin d'année et de l'utilisation d'Internet comme loisir) et 3 000 euros pour compenser le temps passé à résoudre ce litige. L'avocat lui a coûté 1 000 euros.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Michaëla Bobasch&lt;/span&gt;&lt;br /&gt;Article paru dans l'édition du 23.09.07.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;style type="text/css" media="all"&gt;@import url(http://medias.lemonde.fr/mmpub/css/blog.css);&lt;/style&gt;&lt;br /&gt;&lt;div class="bl-lien"&gt;&lt;a href="http://www.lemonde.fr/web/article/0,1-0@2-651865,36-958322,0.html" target="_blank"&gt;Les fournisseurs d'accès au Web doivent aussi rendre des comptes&lt;/a&gt;&lt;br /&gt;LE MONDE | 22.09.07&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;© &lt;a href="http://www.lemonde.fr/" target="_blank"&gt;&lt;img src="http://medias.lemonde.fr/mmpub/img/lgo/lemondefr_trpet.gif" alt="Le Monde.fr" title="Le Monde.fr" align="absmiddle" border="0" height="13" width="67" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-4895848291224068446?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/4895848291224068446/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/09/larticle-l121-20-3-du-code-de-la.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4895848291224068446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/4895848291224068446'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/09/larticle-l121-20-3-du-code-de-la.html' title='Les fournisseurs d&apos;accès au Web doivent aussi rendre des comptes'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7993684874815628863</id><published>2007-09-19T16:00:00.000+02:00</published><updated>2007-09-23T21:53:27.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Installation d'un serveur Glassfish + Apache + PHP + MySQL sur Windows</title><content type='html'>&lt;h2 class="western" lang="fr-FR"&gt;1.Jdk Java (jdk 6 update 2) [La base Java]&lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Installer le jdk (lancer l’exécutable), laisser la configuration standard.  &lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration  &lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Définir la variable d’environnement &lt;b&gt;JAVA_HOME&lt;/b&gt; qui pointe sur le répertoire d’installation du Jdk (généralement C:Program FilesJavajdk_6_2_0).  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redéfinir la variable d’environnement &lt;b&gt;PATH&lt;/b&gt;, pour qu’elle intègre les exécutables Java. (Généralement dans C:Program FilesJavajdk_6_2_0bin).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour accéder aux variables d’environnement, aller dans les propriétés système (clic droit sur le poste de travail / propriétés), aller dans l’onglet Paramètres systèmes avancés, puis cliquer sur variables d’environnement.&lt;/p&gt; &lt;h2 class="western" lang="fr-FR"&gt;2.Apache 2.2  [le serveur web qui reçoit les requêtes des clients]&lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Installer Apache 2.2 (si possible à la racine pour éviter des espaces dans les adresses) (lancer le msi)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Suivre les indications pour la configuration, en spécifiant que le serveur écoute sur le &lt;b&gt;port 80&lt;/b&gt; (port standard du web). Pensez à indiquer le nom du domain, du serveur  ainsi que l’adresse mail du webmaster.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Demander un démarrage en service pour que le serveur web soit démarré à chaque reboot.  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redéfinir la variable d’environnement &lt;b&gt;PATH&lt;/b&gt;, pour qu’elle intègre les exécutables (Généralement dans C:apachebin).&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le répertoire de configuration est trouve dans &lt;b&gt;Apacheconf&lt;/b&gt; et le principal fichier de configuration est &lt;b&gt;httpd.conf.&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le répertoire des documents web (site web et application légères) est &lt;b&gt;htdocs.&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Il faut bien lire ce fichier ainsi que les explications pour comprendre le paramétrage du serveur, mais aucune configuration n’est nécessaire pour le moment.&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Utile&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour démarrer le serveur (le service pour être exact), utilisez la commande suivante :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;NET START APACHE2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour l’éteindre :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;NET STOP APACHE2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 class="western" lang="fr-FR"&gt;3.PHP 5.2.3  [le serveur applicatif léger, pour PhpMyAdmin…]  &lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation  &lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Installer PHP5.2.3 (si possible à la racine pour éviter des espaces dans les adresses) (lancer le msi)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Suivre les indications pour la configuration, sélectionnez le module pour &lt;b&gt;Apache 2.2.x&lt;/b&gt; et demander l’installation de toutes les &lt;b&gt;extensions&lt;/b&gt; ainsi que de tous les composants optionnels. Vous devez aussi indique le répertoire de configuration d’Apache, c'est-à-dire le dossier &lt;b&gt;conf&lt;/b&gt; de votre installation du serveur Apache 2.2.0.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redéfinir la variable d’environnement &lt;b&gt;PATH&lt;/b&gt;, pour qu’elle intègre les exécutables.&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le principal fichier de configuration est PHP/&lt;b&gt;php.ini&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; On peut créer un fichier à partir d’un fichier type fourni par PHP en le modifiant ensuite.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Quel que soit le fichier que vous utilisez, vous devez &lt;b&gt;redéfinir les chemins d’accès aux fichiers&lt;/b&gt;. Recherchez la variable &lt;i&gt;extension_dir &lt;/i&gt;et modifiez sa valeur pour qu’elle pointe sur le répertoire ext de votre installation de PHP. Modifiez aussi les variables &lt;i&gt;upload_tmp_dir&lt;/i&gt; et &lt;i&gt;session.save_path&lt;/i&gt; pour qu’elles pointent sur des dossiers &lt;u&gt;existants.&lt;/u&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour que les fichiers PHP soient interprétés avant d’être servi par le serveur web Apache, il faut qu’Apache connaisse ce type de fichier et sache avec quel logiciel le traiter.  &lt;/p&gt;  &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour cela l’installation de PHP a rajouté les lignes suivantes dans le fichier de configuration d’Apache (httpd.conf) (en pensant à adapter le chemin d’accès). Vous n’avez donc plus qu’à vérifier que l’ajout a bien été effectué.&lt;/p&gt;    &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL&lt;br /&gt;PHPIniDir "C:\php\"&lt;br /&gt;LoadModule php5_module "C:\php\php5apache2_2.dll"&lt;br /&gt;#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Vous devez ensuite ajouter la reconnaissance du type mime dans &lt;b&gt;&lt;i&gt;mime.types&lt;/i&gt;&lt;/b&gt; (contenu dans le dossier conf d’Apache) :&lt;/p&gt;  &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;application/x-httpd-php  php php3 php4 php5&lt;br /&gt;application/x-httpd-php-source  phps&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour que les pages d’index en PHP soit prises en compte, il vous faut aussi modifier la liste des fichiers d’index d’Apache. Dans le fichier de configuration &lt;b&gt;httpd.conf&lt;/b&gt;, &lt;b&gt;modifiez&lt;/b&gt; les lignes suivantes (on en profite pour ajouter quelques autres pages qui nous servirons plus tard). Vous devez ajouter les éléments en gras, le reste ne doit pas être modifié.&lt;/p&gt;   &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;IfModule dir_module&amp;gt;&lt;br /&gt;DirectoryIndex index.html &lt;span style="font-size:100%;"&gt;&lt;span lang=""&gt;&lt;b&gt;index.shtml index.htm index.php index.php3 index.php4 index.jsp default.html&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Si certaines applications vous demandent d’ajouter des modules, vous devrez les ajouter en retirant le signe de commentaire (#) de la ligne de chargement du module, par exemple :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;#LoadModule autoindex_module modules/mod_autoindex.so&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour tester que tout marche bien, créez, à la racine du serveur (&lt;b&gt;Apache/htdocs/&lt;/b&gt;), un fichier &lt;b&gt;index.php &lt;/b&gt;qui contient :&lt;/p&gt;   &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;?php&lt;br /&gt;phpinfo();&lt;br /&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redémarrer le serveur Apache pour qu’il prenne en compte les modifications que vous venez d’effectuer, puis tenter de lire ce fichier en demandant la page suivante à votre navigateur internet (Firefox, Internet Explorer...) : &lt;span style="color:#0000ff;"&gt;&lt;u&gt;&lt;a href="http://localhost/"&gt;http://localhost/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Vous devriez normalement tomber sur une longue page dans les tons violets. Dans ce cas, vous savez que le fichier index.php a été considéré comme un fichier d’index et que le fichier PHP a été traité par le serveur applicatif PHP.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Si ce n’est pas le cas, reprenez ce manuel depuis le début pour voir ou vous avez décroché.&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Utile&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Ce serveur PHP ne tourne pas en continu, un exécutable est appelé par Apache si nécessaire, donc pas de nécessité de démarrer et d’éteindre le serveur PHP.  &lt;/p&gt; &lt;h2 class="western" lang="fr-FR"&gt;4.MySQL 5.0.45 [le serveur de bases de données]  &lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation  &lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Installer MySQL 5.0.45 (si possible à la racine pour éviter des espaces dans les adresses) (dézipper puis lancer l’exécutable).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Suivre les indications pour la configuration, mais mettre un &lt;b&gt;mot de passe&lt;/b&gt; pour l’utilisateur &lt;b&gt;root&lt;/b&gt;.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redéfinir la variable d’environnement &lt;b&gt;PATH&lt;/b&gt;, pour qu’elle intègre les exécutables.  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Décompressez PhpMyAdmin dans un dossier PhpMyAdmin à la racine du serveur web (Apache/htdocs/). Copiez le fichier &lt;i&gt;config.sample.inc.php&lt;/i&gt; et renommez le &lt;i&gt;config.inc.php&lt;/i&gt;. Ouvrez ce fichier et ajoutez un mot quelconque à la ligne suivante :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;$cfg[‘blowfish_secret’] = ‘&lt;b&gt;secret’&lt;/b&gt;; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="en-GB"&gt;&lt;br /&gt;&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le principal fichier de configuration de MySQL est &lt;b&gt;my.ini &lt;/b&gt; &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Un fichier de configuration est créé par l’installation, mais on peut aussi en créer un à partir d’un fichier type fourni par MySQL (my-medium.ini) en le modifiant ensuite.  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; On va configurer les bases de données grâce à l’interface graphique en allant sur &lt;b&gt;http://localhost/phpmyadmin/&lt;/b&gt;, loguez-vous.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour ajouter un utilisateur, cliquez sur privilèges, puis laissez-vous guider.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; S’il en existe supprimer toute base de test existante ainsi que tout utilisateur de test.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Evitez les utilisateurs sans mot de passe.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Restreignez l’accès au compte root au serveur (pas d’accès distant)&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Utile&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour démarrer le service MySQL, utilisez la commande suivante :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;NET START MySQL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour l’éteindre :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;NET STOP MySQL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 class="western" lang="fr-FR"&gt;5.Mise en place du site&lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Décompressez le contenu de PhpMyVisites2_2.zip dans un dossier PhpMyVisites à la racine du serveur web (Apache/htdocs/).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;Installez votre site à la racine du serveur web (Apache/htdocs/).&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Tout se passe dans PhpMyVisites, aller sur &lt;span style="color:#0000ff;"&gt;&lt;u&gt;&lt;a href="http://localhost/phpmyvisites/"&gt;http://localhost/phpmyvisites/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; pour le configurer. Il vous faudra créer une base de données &lt;b&gt;phpmv&lt;/b&gt; ainsi qu’un utilisateur &lt;b&gt;phpmv&lt;/b&gt; (vous pouvez choisir le mot de passe) tout cela grâce à PhpMyAdmin installé précédemment.  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; PhpMyVisites et le site doivent être sur le même serveur (sinon, il faut modifier les liens des logiciels vers PhpMyVisites). Il faudra ajouter la portion de code donnée par PhpMyVisites dans toutes les pages html comme indiqué par PhpMyVisites&lt;/p&gt;&lt;h2 class="western" lang="fr-FR"&gt;6.Sun Application Server Platform Edition 9.0.0.1 [le serveur applicatif]&lt;/h2&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour installer &lt;b&gt;JAP&lt;/b&gt; (Java Application Platform), lancer l’exécutable sjsas_pe-9_0_01-p01-windows.exe récupéré depuis le site de sun.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Installez-le à la racine pour éviter les problèmes d’espace dans les adresses.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le serveur doit écouter sur les ports &lt;b&gt;8080&lt;/b&gt; et &lt;b&gt;8181&lt;/b&gt; (ou 80 et 81 s’il est en stand-alone)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pensez à accepter la mise en Service pour que le serveur démarre automatiquement.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Redéfinir la variable d’environnement &lt;b&gt;PATH&lt;/b&gt;, pour qu’elle intègre les exécutables (surtout asadmin), même si l’installation vous a dit qu’elle l’avait fait.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Copier dans JAP/lib la librairie java d’accès à la base MySQL : &lt;b&gt;mysql-connector-java-5.0.6-bin.jar&lt;/b&gt;, &lt;b&gt;itext-2.0.4.jar &lt;/b&gt;(qui gère la création des PDF), ainsi que &lt;b&gt;jdom.jar&lt;/b&gt;&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Configuration&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; La configuration se fait grâce à l’écran d’administration intranet (accès à &lt;span style="color:#0000ff;"&gt;&lt;u&gt;&lt;a href="http://localhost:4848/"&gt;http://localhost:4848/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Un domaine a automatiquement été créé (il s’appelle généralement domain1), il est dans JAP/domains/domain1/ un dossier config permet de configurer à la main le serveur, mais on ne l’utilisera pas.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;b&gt;Asadmin&lt;/b&gt; est l’utilitaire en ligne de commande qui permet de gérer le serveur.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour récupérer les erreurs générées par le serveur applicatif, loguez-vous dans l’administration web et cliquez sur ‘View log files’ ou ‘Search Log Files’. Vous n’avez, à priori, aucune modification à faire à la configuration par défaut (à part celle demandée par ce manuel).&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Utile&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour démarrer le serveur, utilisez la ligne de commande suivante :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;asadmin start-domain&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour l’éteindre :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;asadmin stop-domain&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour connaitre l’état des domaines :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;&lt;span lang="fr-FR"&gt;asadmin list-domains&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Déploiement&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Dernière étape, la plus simple, le déploiement des applications sur le serveur applicatif :  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Démarrer le serveur applicatif, connectez vous sur l’interface d’administration intranet.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Cliquez sur Application/Web-Application, puis sur deploy… Choisissez l’archive war (web archive) correspondante à l’application à déployer, puis sur next.&lt;/p&gt; &lt;h2 class="western" lang="fr-FR"&gt;7.Mod_jk (Connecteur Apache -&amp;gt; Serveur applicatif)&lt;/h2&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Mod_jk permet de router les requêtes du serveur applicatif reçues par Apache vers le serveur applicatif : Le serveur applicatif écoute sur le port 8080 et pourtant on se connecte sur le port 80 (port par défaut d’internet). Apache écoute sur ce port 80. On doit lui préciser comment et quelle requêtes renvoyer.   &lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;i&gt;Une autre source : &lt;/i&gt;&lt;a title="http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html" href="http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html" id="q_ya"&gt;http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html&lt;/a&gt; &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Eteignez les serveurs Apache et JAP.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Copiez mod_jk.so disponible sur le site d’Apache dans le répertoire modules d’Apache (Apache/modules).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Demandez à Apache de charger le module, ajoutez les lignes suivantes à &lt;b&gt;httpd.conf&lt;/b&gt; (&lt;b&gt;en pensant à adapter le chemin d'accès&lt;/b&gt;) :&lt;/p&gt;             &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;# Chargement du module JK (adaptez le chemin d’acces)&lt;br /&gt;LoadModule jk_module C:/Apache/modules/mod_jk.so &lt;br /&gt;JkWorkersFile C:/Apache/conf/worker.properties&lt;br /&gt;# L’adresse des logs (avec ceux de Apache par exemple)&lt;br /&gt;JkLogFile C:/Apache/logs/mod_jk.log&lt;br /&gt;# Le niveau de log [debug/error/info]&lt;br /&gt;# Passez le temporairement en debug, si nécessaire&lt;br /&gt;JkLogLevel info&lt;br /&gt;# Le format de log&lt;br /&gt;JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "&lt;br /&gt;# JkOptions (ne pas modifier)&lt;br /&gt;JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories# JkRequestLogFormat (ne pas modifier)&lt;br /&gt;JkRequestLogFormat "%w %V %T"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; On va ensuite prévenir le serveur applicatif de l’utilisation de mod_jk.  &lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; On va commencer par lui donner les outils nécessaires à la communication. Copiez les 3 archives jar (commons-logging.jar, commons-modeler.jar, tomcat-ajp.jar)  vers le dossier lib de JAP.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; On va ensuite lui demander d’écoute ce connecteur, pour cela appeler la commande suivante :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;Asadmin start-domain&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; (pour démarrer le serveur)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8080&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;span lang="fr-FR"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman, serif;"&gt;Faites bien attention à ne pas faire de fautes de frappe, c’est bien enterprise et non entreprise !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Cette option va créer une option dans la machine virtuelle java qui exécute le serveur, elle va forcer le serveur applicatif à écouter le connecteur.&lt;/p&gt;  &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le serveur écoutait déjà sur le port 8080, ce qui pose un problème car deux processus ne peuvent pas écouter sur le même port (l’accepteur http et l’accepteur du connecteur). Nous devons donc en supprimez un (l’accepteur HTTP, ce qui évitera les demandes directes sur le serveur applicatif).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Pour supprimer cet écouteur, démarrer le serveur, connectez vous sur l’interface web d’administration, loguez-vous, cliquez sur configuration puis http-service, puis http listeners.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Sélectionnez les http-listener-1 et http-listener-2 sur les ports 8080 et 8181 (ssl) et supprimez-les.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Le serveur applicatif peut enfin écouter sans problème.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Eteignez le serveur applicatif. (&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;asadmin stop-domain&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;/p&gt;  &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Dernière étape de cette configuration, vous devez indiquer à Apache quelles requêtes renvoyer, à qui et comment. Pour cela, nous allons créer un fichier configurant des worker (les objets qui renvoient les requêtes). Créer un fichier &lt;b&gt;worker.properties&lt;/b&gt; dans le dossier Apache/conf/ (si le serveur applicatif est sur un serveur distant, modifiez la propriété host) :&lt;/p&gt;      &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;# Creation d’un worker pour le serveur applicatif&lt;br /&gt;&lt;span lang="en-GB"&gt;worker.list=&lt;/span&gt;workerJava&lt;br /&gt;# Donnons quelques propriété pour info&lt;br /&gt;worker.workerJava.type=ajp13&lt;br /&gt;&lt;span lang="en-GB"&gt;worker.workerJava.host=localhost&lt;br /&gt;worker.workerJava.port=8080&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Nous avons définit un worker qui connectera le serveur web avec le serveur applicatif (on a donc le comment et le où).&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Spécifions maintenant les règles de routage :&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Dans &lt;b&gt;httpd.conf&lt;/b&gt;, ajoutez les lignes suivantes :&lt;/p&gt;   &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-left: 0.39in; margin-bottom: 0.17in; line-height: 150%;" align="justify" lang=""&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;# On envoie les requêtes au serveur applicatif :&lt;br /&gt;# Pour test&lt;br /&gt;JkMount /test/* workerJava&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-bottom: 0in;" align="justify" lang="fr-FR"&gt; Normalement ici, tout devrait être fonctionnel. Pour le vérifier, démarrer le serveur (&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="en-GB"&gt;&lt;b&gt;&lt;span lang="fr-FR"&gt;asadmin start-domain&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;).&lt;/p&gt; &lt;div type="FOOTER"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7993684874815628863?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7993684874815628863/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/09/installation-du-serveur-1.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7993684874815628863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7993684874815628863'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/09/installation-du-serveur-1.html' title='Installation d&apos;un serveur Glassfish + Apache + PHP + MySQL sur Windows'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-1669949620357027004</id><published>2007-09-18T15:00:00.000+02:00</published><updated>2007-09-23T21:39:51.909+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Installation de Glassfish sur Ubuntu</title><content type='html'>&lt;h3 class="western" lang="fr-FR"&gt;Ressources nécessaires&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Pour l’installation, il est nécessaire d’avoir les repositories suivants dans le fichier /etc/apt/sources.list :&lt;/p&gt;           &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;#depots officiels&lt;br /&gt;deb http://archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse&lt;br /&gt;deb http://archive.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse&lt;br /&gt;deb http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse&lt;br /&gt;deb-src http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse&lt;br /&gt;&lt;br /&gt;#commercial&lt;br /&gt;deb http://archive.canonical.com/ feisty-commercial main&lt;br /&gt;&lt;br /&gt;#medibuntu&lt;br /&gt;# deb http://fr.packages.medibuntu.org/ feisty free non-free&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Après avoir ajouté les lignes précédentes, mettez à jour votre linux :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;apt-get upgrade&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Installez ensuite le jdk6 de Java :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;apt-get install sun-java6-jdk sun-java6-fonts sun-java6-source&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Vérifiez la bonne installation en tapant :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;Java –version&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Qui devrait vous répondre java version 1.6.xxx&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Téléchargement de Glassfish :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;Wget &lt;span style="color:#0000ff;"&gt;&lt;u&gt;&lt;a href="http://java.net/download/javaee5/promoted/Linux/glassfish-installer-v2-b58.jar"&gt;http://java.net/download/javaee5/promoted/Linux/glassfish-installer-v2-b58.jar&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 class="western" lang="fr-FR"&gt;Installation&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Lancez la commande suivante :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="fr-FR"&gt;java –jar –mx256M glassfish-installer-v2-b58.jar&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;On déplace l’installation vers un endroit plus approprié :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;mv glassfish /opt/glassfish&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="en-GB"&gt;On lance le setup :&lt;/p&gt;   &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;cd /opt/glassfish&lt;br /&gt;chmod 777 /opt/glassfish/lib/ant/bin/*&lt;br /&gt;/opt/glassfish/lib/ant/bin/ant –f setup.xml&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Installer les librairies nécessaires dans le répertoire /opt/glassfish/lib. Pour vous connecter à distance au serveur, vous pouvez utiliser FileZila. Les librairies sont :&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;mysql-connector-java-5.0.6-bin.jar&lt;/b&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;itext-2.0.4.jar&lt;/b&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;jdom.jar&lt;/b&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;commons-logging.jar&lt;/b&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;commons-modeler.jar&lt;/b&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="justify" lang="fr-FR"&gt;&lt;b&gt;tomcat-ajp.jar&lt;/b&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;Démarrez le serveur et modifiez le password admin (l’ancien password vous sera demandé, c’est adminadmin) :   &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;/opt/glassfish/bin/asadmin start-domain&lt;br /&gt;/opt/glassfish/bin/asadmin change-admin-password –user admin&lt;br /&gt;/opt/glassfish/bin/asadmin stop-domain&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Pour lancer glassfish comme un service copiez le fichier glassfish (de l’archive) vers le répertoire /etc/init.d/ et si nécessaire modifiez les chemins d’accès (si vous n’avez pas utilisé le même que ce lui de ce tutoriel). Il a été créé à partir du fichier /etc/init.d/skeleton. Pour l’installer utilisez la commande suivante :&lt;/p&gt; &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="fr-FR"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;update-rc.d glassfish defaults&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Glassfish est fonctionnel, pour l’utiliser voici les commandes essentielles :&lt;/p&gt;  &lt;p style="border: 1px solid rgb(0, 0, 0); padding: 0.01in 0.06in; margin-bottom: 0in;" lang="en-GB"&gt; &lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;/opt/glassfish/bin/asadmin start-domain&lt;br /&gt;/opt/glassfish/bin/asadmin stop-domain&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Pour le configurer, vous devez vous connecter à la machine sur le port 4848 avec un navigateur web.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;La gestion des ports écoutés se fait dans configuration -&amp;gt; http-service.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Pour installer le module sur le serveur, cliquez sur Web-Applications puis sur deploy. Indiquez l’adresse de l’archive war du module. Vous pouvez configurer le contexte d’exploitation (par défaut : /cp). Demandez une précompilation des jsp pour accélérer le temps de réponse des pages dynamiques&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in;" lang="fr-FR"&gt;Pour tester demandez la page &lt;span style="color:#0000ff;"&gt;&lt;u&gt;&lt;a href="http://adresseduserveur:8080/cp/"&gt;http://adresseduserveur:8080/cp/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-1669949620357027004?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/1669949620357027004/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/09/installation-de-glassfish-sur-ubuntu.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1669949620357027004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/1669949620357027004'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/09/installation-de-glassfish-sur-ubuntu.html' title='Installation de Glassfish sur Ubuntu'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-7884908138092749956</id><published>2007-08-21T11:44:00.000+02:00</published><updated>2007-08-22T15:03:46.737+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='informatique'/><title type='text'>Découverte initialisation Linux</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;Attention, ça parle d'informatique, si vous ça vous fait chier, ne lisez pas !&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;Petites découvertes de la journée :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sous les dernières versions du kernel Linux, le fichier inittab n'est plus utilisé vous pouvez faire toutes les modifications que vous voulez, tous les &lt;span style="font-style: italic;"&gt;init q &lt;/span&gt;que vous voulez, ça ne changera rien. Tout se configure dans /etc/default/ c'est pas plus compliqué et ça marche bien.&lt;/li&gt;&lt;li&gt;Ubuntu Feisty a un bug dans les fichier /etc/default/tty[1-6], il faut effacer tout le début de la ligne avant exec /sbin/getty 38400 tty1&lt;/li&gt;&lt;/ul&gt;Voilà, c'est tout pour les découvertes informatiques de la journée.&lt;br /&gt;Je me remets au boulot sur mon projet de stage. Au passage je vous montre mon magnifique serveur de test : un vieux linux qui traine dans une salle de réunion vide...&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/maxime.werlen/Inpact/photo#5101507665968053810"&gt;&lt;img src="http://lh3.google.com/maxime.werlen/RswyMXj1PjI/AAAAAAAAFco/v3U7Wx2jhbc/s400/100_9216.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-7884908138092749956?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/7884908138092749956/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/08/attention-parle-dinformatique-si-vous.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7884908138092749956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/7884908138092749956'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/08/attention-parle-dinformatique-si-vous.html' title='Découverte initialisation Linux'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2797154551240068544.post-2551878683689923023</id><published>2007-08-20T16:41:00.000+02:00</published><updated>2007-08-22T15:24:47.558+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mylife'/><category scheme='http://www.blogger.com/atom/ns#' term='divers'/><title type='text'>En route pour de nouvelle aventures</title><content type='html'>&lt;div style="text-align: justify;"&gt;  Je me lance enfin dans un 'vrai' blog, une poubelle littéraire ou atterrissent toutes les idées vagues, les débris de journal intime, les coups de coeurs et bien toutes les choses que l'on veut conserver sans savoir quoi en faire.&lt;br /&gt;&lt;/div&gt;  Le déclic est venu lorsque me famille a achetéle nom de domaine correspondant au nom de la famille, ce qui fait qu'assez rapidement ce site devrait être accessible depuis &lt;a href="http://blog.maxime.werlen.fr/"&gt;blog.maxime.werlen.fr&lt;/a&gt; et mon CV devrait être disponible sur &lt;a href="http://maxime.werlen.fr/"&gt;maxime.werlen.fr&lt;/a&gt;.&lt;br /&gt; Pour le titre ainsi que le logo je ne me suis pas vraiment foulé, j'ai fait un rapide tour d'horizon de mon bureau (je suis en stage en ce moment) et j'ai trouvé mon mug Gaston Lagaffe (vide, j'essaie de ne pas boire trop de café) qui titre "Défense de me faire travailler"; J'approuve, je publie !&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://picasaweb.google.com/maxime.werlen/Inpact/photo#5101514391886839442"&gt;&lt;img src="http://lh5.google.com/maxime.werlen/Rsw4T3j1PpI/AAAAAAAAFfI/u4YX5aRE91E/s400/100_9218.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;  Donc voila le top départ est donné, on peut maintenant parier sur la durée de vie ridicule du blog. A suivre...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2797154551240068544-2551878683689923023?l=mwerlen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mwerlen.blogspot.com/feeds/2551878683689923023/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://mwerlen.blogspot.com/2007/08/en-route-pour-de-nouvelle-aventures.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2551878683689923023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2797154551240068544/posts/default/2551878683689923023'/><link rel='alternate' type='text/html' href='http://mwerlen.blogspot.com/2007/08/en-route-pour-de-nouvelle-aventures.html' title='En route pour de nouvelle aventures'/><author><name>Max</name><uri>http://www.blogger.com/profile/17594275619036796174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_KsWUtFo-G_0/SgMYxiHNfVI/AAAAAAAAI3s/TAXxsQszLp0/S220/new_ID.png'/></author><thr:total>0</thr:total></entry></feed>
