<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JeffProd | Blog</title>
    <link>https://fr.jeffprod.com/blog/</link>
    <description>Derniers articles publiés sur JeffProd.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fr</language>
    <lastBuildDate>Fri, 22 Oct 2021 01:38:39 +0200</lastBuildDate>
    
        <atom:link href="https://fr.jeffprod.com/blog/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Scraper des sites en interceptant les requêtes</title>
      <link>https://fr.jeffprod.com/blog/2021/scraper-des-sites-en-interceptant-les-requetes/</link>
      <pubDate>Fri, 22 Oct 2021 01:38:39 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2021/scraper-des-sites-en-interceptant-les-requetes/</guid>
      <description>&lt;p&gt;Le &amp;ldquo;Web scraping&amp;rdquo; est une technique pour extraire le contenu des sites internet dans le but d’archiver les données de manière structurée. Les données sont extraites directement depuis le code source. Le travail consiste à les rechercher dans une jungle de balises HTML.&lt;/p&gt;
&lt;p&gt;Il est pourtant bien plus simple de récupérer ces données dans un format structuré. Ceci est possible en interceptant les requêtes web entre votre navigateur et le site internet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cloner un PC et le démarrer dans une machine virtuelle</title>
      <link>https://fr.jeffprod.com/blog/2021/cloner-un-pc-et-le-demarrer-dans-une-machine-virtuelle/</link>
      <pubDate>Sun, 20 Jun 2021 09:36:58 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2021/cloner-un-pc-et-le-demarrer-dans-une-machine-virtuelle/</guid>
      <description>&lt;p&gt;Sauvegarder un ordinateur complet et le démarrer dans une machine virtuelle est réalisable en quelques commandes Linux.
Les outils sont libres et gratuits.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Aidez la science et recevez des crypto-bananes</title>
      <link>https://fr.jeffprod.com/blog/2021/aidez-la-science-et-recevez-des-crypto-bananes/</link>
      <pubDate>Sun, 28 Mar 2021 17:56:11 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2021/aidez-la-science-et-recevez-des-crypto-bananes/</guid>
      <description>&lt;p&gt;Et si au lieu de miner des cryptomonnaies nous participions à faire avancer la science ? Et pourquoi pas les deux ?
Voici comment procéder à des calculs scientifiques et recevoir en retour des crypto-bananes.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Les Web Workers en Javascript</title>
      <link>https://fr.jeffprod.com/blog/2021/les-web-workers-en-javascript/</link>
      <pubDate>Sun, 28 Feb 2021 12:00:44 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2021/les-web-workers-en-javascript/</guid>
      <description>&lt;p&gt;Le Javascript est exécuté dans un seul processus (&amp;ldquo;single threaded&amp;rdquo; en anglais). Lorsqu&amp;rsquo;on démarre un long traitement, l&amp;rsquo;interface utilisateur peut être ralentie voire figée.&lt;/p&gt;

&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/sigtrap.png&#34; alt=&#34;sigtrap&#34; width=&#34;417&#34; height=&#34;166&#34;&gt;
  
&lt;p&gt;Pour pallier à ce problème les &lt;a href=&#34;https://w3c.github.io/workers/&#34;&gt;Web Workers&lt;/a&gt; sont apparus.
Ils permettent d&amp;rsquo;exécuter un script en arrière plan, dans un autre processus.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Créez votre barre d&#39;état i3/sway en bash et python</title>
      <link>https://fr.jeffprod.com/blog/2020/creez-votre-barre-d-etat-i3-sway-en-bash-et-python/</link>
      <pubDate>Sun, 21 Jun 2020 11:19:31 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2020/creez-votre-barre-d-etat-i3-sway-en-bash-et-python/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://i3wm.org/&#34;&gt;i3&lt;/a&gt; est un gestionnaire de fenêtres sur Linux. Il gère les fenêtres par onglet, en pile, et en mosaïque (tiling).
L&amp;rsquo;avantage est que vous ne perdez plus de temps à organiser vos fenêtres avec la souris.
Avec &lt;code&gt;i3&lt;/code&gt; la disposition est automatique. Les fenêtres s&amp;rsquo;ouvrent en occupant l&amp;rsquo;espace disponible.
Par des raccourcis claviers personnalisables, on peut les déplacer, les afficher en plein écran, les agencer horizontalement ou verticalement.
Cela s&amp;rsquo;avère bien plus pratique et rapide que la souris.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Svelte JS : Configuration de VSCode et internationalisation</title>
      <link>https://fr.jeffprod.com/blog/2020/svelte-configuration-de-vscode-et-internationalisation/</link>
      <pubDate>Wed, 06 May 2020 10:04:05 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2020/svelte-configuration-de-vscode-et-internationalisation/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/svelte.png#floatright&#34; alt=&#34;svelte&#34; width=&#34;64&#34; height=&#34;64&#34;&gt;
  
&lt;p&gt;Svelte est un ensemble d&amp;rsquo;outils pour développer des applications Javascript (encore un nouveau framework JS). Il est un concurrent direct de React ou VueJS. Après l&amp;rsquo;avoir essayé, je confirme que ce projet est à suivre avec intérêt.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Trouvez de tête le jour de la semaine pour n&#39;importe quelle date</title>
      <link>https://fr.jeffprod.com/blog/2020/trouvez-de-tete-le-jour-de-la-semaine-pour-n-importe-quelle-date/</link>
      <pubDate>Wed, 01 Jan 2020 12:10:20 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2020/trouvez-de-tete-le-jour-de-la-semaine-pour-n-importe-quelle-date/</guid>
      <description>&lt;p&gt;Le 14 juillet tombe quel jour cette année ? Est-ce que mon anniversaire sera un dimanche ?
Il existe une méthode simple pour calculer mentalement le jour de la semaine pour une date donnée.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Automatisation de tâches dans un OS virtualisé</title>
      <link>https://fr.jeffprod.com/blog/2019/automatisation-de-taches-dans-un-os-virtualise/</link>
      <pubDate>Thu, 05 Dec 2019 11:06:16 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/automatisation-de-taches-dans-un-os-virtualise/</guid>
      <description>&lt;p&gt;Ou comment effectuer des actions dans une machine virtuelle sans quitter le terminal&amp;hellip;&lt;/p&gt;
&lt;p&gt;Depuis Linux, je cherchais le moyen d&amp;rsquo;automatiser la compilation d&amp;rsquo;un logiciel sur Windows, et sans utiliser &lt;a href=&#34;https://www.winehq.org/&#34;&gt;Wine&lt;/a&gt; qui n&amp;rsquo;a rien d&amp;rsquo;officiel.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.virtualbox.org/&#34;&gt;VirtualBox&lt;/a&gt; est un logiciel de virtualisation multi-plateformes. Il est livré avec &lt;a href=&#34;https://www.virtualbox.org/manual/ch08.html&#34;&gt;VBoxManage&lt;/a&gt;, un outil en ligne de commande qui permet de manipuler et gérer les machines virtuelles.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sauvegardes chiffrées dans le cloud</title>
      <link>https://fr.jeffprod.com/blog/2019/sauvegardes-chiffrees-dans-le-cloud/</link>
      <pubDate>Sat, 30 Nov 2019 15:23:28 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/sauvegardes-chiffrees-dans-le-cloud/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/logo-restic.png#floatright&#34; alt=&#34;Restic&#34; width=&#34;80&#34; height=&#34;80&#34;&gt;
  
&lt;p&gt;La sauvegarde des données est essentielle pour pallier à un problème matériel (panne, destruction&amp;hellip;) ou logiciel (rançongiciel&amp;hellip;).
Voici une solution sécurisée utilisant &lt;a href=&#34;https://restic.net/&#34;&gt;Restic&lt;/a&gt; et le &lt;a href=&#34;https://en.wikipedia.org/wiki/Object_storage&#34;&gt;stockage d&amp;rsquo;objets&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gérez vos mots de passe avec des logiciels libres</title>
      <link>https://fr.jeffprod.com/blog/2019/gerez-vos-mots-de-passe-avec-des-logiciels-libres/</link>
      <pubDate>Sun, 13 Oct 2019 19:57:40 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/gerez-vos-mots-de-passe-avec-des-logiciels-libres/</guid>
      <description>&lt;p&gt;Il existe plusieurs applications pour la gestion des mots de passe. Nombreuses sont gratuites mais commerciales.&lt;/p&gt;
&lt;p&gt;Peut-on confier ses mots de passe et numéros de cartes bancaires à des entreprises commerciales ? Vous êtes seul juge. Mais sachez que &amp;ldquo;Si c&amp;rsquo;est gratuit c&amp;rsquo;est vous le produit&amp;rdquo;. Et les sociétés sont souvent la cible de hackers. Les fuites de données sont fréquentes.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>De Ubuntu à Arch Linux</title>
      <link>https://fr.jeffprod.com/blog/2019/de-ubuntu-a-arch-linux/</link>
      <pubDate>Fri, 13 Sep 2019 09:11:10 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/de-ubuntu-a-arch-linux/</guid>
      <description>&lt;p&gt;Ubuntu s&amp;rsquo;est imposé comme l&amp;rsquo;une des distributions Linux de référence et je l&amp;rsquo;utilise depuis plusieurs années.
Arch Linux est très minimaliste et légère, à telle point qu&amp;rsquo;elle ne possède ni interface graphique ni installateur par défaut !
Je me devais donc d&amp;rsquo;essayer&amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Les PWA et TWA</title>
      <link>https://fr.jeffprod.com/blog/2019/les-pwa-et-twa/</link>
      <pubDate>Mon, 10 Jun 2019 00:11:04 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/les-pwa-et-twa/</guid>
      <description>&lt;p&gt;PWA, TWA, APK ? Le développement d&amp;rsquo;applications pour mobile évolue. Il existe aujourd&amp;rsquo;hui plusieurs façons de développer une application.&lt;/p&gt;
&lt;h3 id=&#34;application-native-apk&#34;&gt;Application native (APK)&lt;/h3&gt;
&lt;p&gt;L&amp;rsquo;APK (Android Package Kit) est un format de fichier natif pour le système Android.
Il est développé en Java (ou Kotlin). L&amp;rsquo;application compilée au format APK peut être soumise à un Play store pour être diffusée.&lt;/p&gt;
&lt;p&gt;Le logiciel de référence pour développer une application Android est &lt;a href=&#34;https://developer.android.com/studio&#34;&gt;Android studio&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cela présente un inconvénient : un coût de développement non négligeable pour porter l&amp;rsquo;application sur différents systèmes (Swift, Objective-C pour iOS, Java/Kotlin pour Android).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Web scraping avec Electron</title>
      <link>https://fr.jeffprod.com/blog/2019/web-scraping-avec-electron/</link>
      <pubDate>Sat, 09 Mar 2019 08:12:35 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2019/web-scraping-avec-electron/</guid>
      <description>&lt;p&gt;Le &amp;ldquo;Web sraping&amp;rdquo; est une technique pour extraire le contenu des sites internet dans le but d&amp;rsquo;archiver les données de manière structurée. Attention toutefois à respecter les conditions d&amp;rsquo;utilisation du site web concerné.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://fr.jeffprod.com/blog/2017/developpement-d-applications-multiplateforme-avec-electron/&#34;&gt;Electron&lt;/a&gt; est un framework pour créer des applications natives Windows/Mac/Linux avec les technologies du web (Javascript, HTML, CSS). Il inclut le navigateur &lt;a href=&#34;https://www.chromium.org/&#34;&gt;Chromium&lt;/a&gt;, entièrement configurable et manipulable.&lt;/p&gt;
&lt;p&gt;Pouvait-on rêver mieux pour développer une application portable avec interface graphique pour scraper un site particulier ?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Limiter le nombre de requêtes vers une API</title>
      <link>https://fr.jeffprod.com/blog/2018/limiter-le-nombre-de-requetes-vers-une-api/</link>
      <pubDate>Sat, 22 Dec 2018 14:25:59 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/limiter-le-nombre-de-requetes-vers-une-api/</guid>
      <description>&lt;p&gt;Vous avez développé une API publique et vous voulez éviter les abus ? Il est possible de limiter l&amp;rsquo;accès à un nombre de requêtes déterminé selon une période donnée. Par exemple, si un utilisateur envoie deux demandes successives alors que vous n&amp;rsquo;autorisez qu&amp;rsquo;une requête toutes les 5 secondes, il obtiendra la réponse suivante :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Limite atteinte, veuillez réessayer dans 4 secondes.&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Créer une application Android avec Cordova et VueJS</title>
      <link>https://fr.jeffprod.com/blog/2018/creer-une-application-android-avec-cordova-et-vuejs/</link>
      <pubDate>Mon, 17 Dec 2018 15:36:19 +0100</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/creer-une-application-android-avec-cordova-et-vuejs/</guid>
      <description>&lt;p&gt;Nous avons vu qu&amp;rsquo;il est possible de &lt;a href=&#34;https://fr.jeffprod.com/blog/2017/developpement-d-applications-multiplateforme-avec-electron/&#34;&gt;développer des applications de bureau&lt;/a&gt; avec les technologies du web (Javascript/HTML/CSS). De même, je vous propose de créer une application Android, de l&amp;rsquo;installation des briques logicielles, jusqu&amp;rsquo;à la publication sur le &lt;a href=&#34;https://play.google.com/store&#34;&gt;Play Store&lt;/a&gt;. Nous utiliserons &lt;a href=&#34;https://vuejs.org/&#34;&gt;VueJS&lt;/a&gt; pour coder l&amp;rsquo;interface et &lt;a href=&#34;https://cordova.apache.org/&#34;&gt;Cordova&lt;/a&gt; pour empaqueter l&amp;rsquo;application.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Un moteur de recherche interne pour votre site Hugo</title>
      <link>https://fr.jeffprod.com/blog/2018/un-moteur-de-recherche-interne-pour-votre-site-hugo/</link>
      <pubDate>Wed, 05 Sep 2018 07:36:39 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/un-moteur-de-recherche-interne-pour-votre-site-hugo/</guid>
      <description>&lt;p&gt;Nous avons vu comment créer un site web avec &lt;a href=&#34;https://fr.jeffprod.com/blog/2018/creez-un-blog-en-deux-minutes-avec-hugo/&#34;&gt;HUGO&lt;/a&gt;,
voyons maintenant comment ajouter un moteur de recherche interne.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;objectif est de le réaliser :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sans installer des dépendances Javascript sur votre ordinateur&lt;/li&gt;
&lt;li&gt;sans indexer des &amp;ldquo;mots vides&amp;rdquo; (ou stop words), c&amp;rsquo;est-à-dire les mots inutiles comme &amp;ldquo;et, ou, nous, comment&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;indexer des mots uniques pour chaque page (sans doublons)&lt;/li&gt;
&lt;li&gt;vos prochains articles seront référencés automatiquement sans aucune maintenance.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Créez un blog en deux minutes avec HUGO</title>
      <link>https://fr.jeffprod.com/blog/2018/creez-un-blog-en-deux-minutes-avec-hugo/</link>
      <pubDate>Sat, 11 Aug 2018 11:14:47 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/creez-un-blog-en-deux-minutes-avec-hugo/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/gohugo.png#floatright&#34; alt=&#34;gohugo&#34; width=&#34;200&#34; height=&#34;54&#34;&gt;
  
&lt;p&gt;Pour créer un site web il existe plusieurs logiciels comme &lt;a href=&#34;https://fr.wordpress.org/&#34;&gt;WordPress&lt;/a&gt; ou &lt;a href=&#34;https://www.drupal.fr/&#34;&gt;Drupal&lt;/a&gt; (appelés CMS ou système de gestion de contenu). Ils fonctionnent en général avec le langage PHP et une base de données MySQL.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Partager un périphérique USB sur le réseau</title>
      <link>https://fr.jeffprod.com/blog/2018/partager-un-peripherique-usb-sur-le-reseau/</link>
      <pubDate>Tue, 17 Jul 2018 14:02:00 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/partager-un-peripherique-usb-sur-le-reseau/</guid>
      <description>&lt;p&gt;Linux permet d&amp;rsquo;utiliser un périphérique USB connecté à une machine distante comme s&amp;rsquo;il était connecté directement sur votre ordinateur.
Le module natif se nomme USB/IP.
Le but est de partager un appareil (dongle, webcam, imprimante, scanner&amp;hellip;).
Il existe des solutions logicielles et matérielles payantes&amp;hellip; c&amp;rsquo;est pourtant simple et gratuit.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Le hachage perceptuel (perceptual hashing)</title>
      <link>https://fr.jeffprod.com/blog/2018/le-hachage-perceptuel/</link>
      <pubDate>Mon, 16 Jul 2018 10:02:00 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/le-hachage-perceptuel/</guid>
      <description>&lt;p&gt;En informatique, une signature numérique peut être créée pour chaque fichier.
A la moindre modification de l&amp;rsquo;original, l&amp;rsquo;empreinte générée sera totalement différente.
L&amp;rsquo;intérêt est de vérifier si le document a été altéré.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Un bot Discord pour créer des favicons</title>
      <link>https://fr.jeffprod.com/blog/2018/un-bot-discord-pour-creer-des-favicons/</link>
      <pubDate>Sun, 01 Jul 2018 14:24:00 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/un-bot-discord-pour-creer-des-favicons/</guid>
      <description>&lt;p&gt;Une &amp;ldquo;favicon&amp;rdquo; est l&amp;rsquo;icône d&amp;rsquo;un site web dans votre navigateur. Pour un webmaster, il n&amp;rsquo;est pas toujours
facile de créer ce fichier. Heureusement il existe un BOT Discord pour cela. Voici comment procéder.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Frameworks Javascript : Par où commencer ?</title>
      <link>https://fr.jeffprod.com/blog/2018/frameworks-javascript-par-ou-commencer/</link>
      <pubDate>Sat, 23 Jun 2018 13:45:00 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/frameworks-javascript-par-ou-commencer/</guid>
      <description>&lt;p&gt;Avec le JavaScript à papa dans les années 1990, on pouvait afficher des flocons de neige à noël sur sa page web.
Aujourd&amp;rsquo;hui ce langage a considérablement évolué. Il est utilisé pour créer des applications smartphone, des applications de bureau, des serveurs web&amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Décompiler une application Electron</title>
      <link>https://fr.jeffprod.com/blog/2018/decompiler-une-application-electron/</link>
      <pubDate>Sun, 11 Mar 2018 11:46:00 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/decompiler-une-application-electron/</guid>
      <description>&lt;p&gt;Ou comment retrouver le code source d&amp;rsquo;un logiciel créé avec le framework &lt;a href=&#34;https://electronjs.org/&#34;&gt;Electron&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Trading bot de crypto-monnaies</title>
      <link>https://fr.jeffprod.com/blog/2018/trading-bot-de-crypto-monnaies/</link>
      <pubDate>Tue, 27 Feb 2018 13:20:31 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2018/trading-bot-de-crypto-monnaies/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/cryptocurrency.png#floatright&#34; alt=&#34;cryptocurrency&#34; width=&#34;200&#34; height=&#34;120&#34;&gt;
  
&lt;p&gt;Vous l&amp;rsquo;avez remarqué, le cours des monnaies virtuelles ressemble à des montagnes russes. En effet, le prix est fixé uniquement sur l&amp;rsquo;offre et la demande.
Pour en tirer profit, il y a deux possibilités : conserver la monnaie d&amp;rsquo;un projet auquel on croit sur le long terme, ou en tradant.
Dans ce cas, il est possible d&amp;rsquo;automatiser certaines tâches d&amp;rsquo;achat/vente.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Développement d&#39;applications multiplateforme avec Electron</title>
      <link>https://fr.jeffprod.com/blog/2017/developpement-d-applications-multiplateforme-avec-electron/</link>
      <pubDate>Sat, 11 Nov 2017 10:20:15 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2017/developpement-d-applications-multiplateforme-avec-electron/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/electron.png#floatright&#34; alt=&#34;electron&#34; width=&#34;80&#34; height=&#34;80&#34;&gt;
  
&lt;p&gt;Créer une application pour ordinateur de bureau avec interface graphique est possible avec python/tkinter, Java/JavaFX, C++/Qt&amp;hellip;
Mais avec ces solutions, l&amp;rsquo;utilisateur final doit installer Python, Java, et éventuellement C++ redistribuable.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Créer un BOT Telegram</title>
      <link>https://fr.jeffprod.com/blog/2017/creer-un-bot-telegram/</link>
      <pubDate>Sat, 29 Apr 2017 15:02:41 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2017/creer-un-bot-telegram/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/telegram.png#floatright&#34; alt=&#34;Telegram&#34; width=&#34;80&#34; height=&#34;80&#34;&gt;
  
&lt;p&gt;&lt;a href=&#34;https://telegram.org/&#34;&gt;Telegram&lt;/a&gt; est une application de messagerie instantanée.
Outre les conversations avec vos amis, vous avez la possibilité de créer des BOTS.
Ces programmes, avec lesquels vous pouvez dialoguer, peuvent rendre de nombreux services :&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Créer des conteneurs chiffrés sous Linux</title>
      <link>https://fr.jeffprod.com/blog/2017/creer-des-conteneurs-chiffres-sous-linux/</link>
      <pubDate>Thu, 30 Mar 2017 18:46:35 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2017/creer-des-conteneurs-chiffres-sous-linux/</guid>
      <description>&lt;p&gt;Avant il y avait TrueCrypt, puis VeraCrypt, AxCrypt aussi, et compagnie.
Mais le plus simple est d&amp;rsquo;utiliser ce qu&amp;rsquo;offre nativement le noyau Linux.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Résoudre un Rubik&#39;s pocket cube avec Neo4j</title>
      <link>https://fr.jeffprod.com/blog/2017/resoudre-un-rubik-pocket-cube-avec-neo4j/</link>
      <pubDate>Fri, 17 Mar 2017 19:14:01 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2017/resoudre-un-rubik-pocket-cube-avec-neo4j/</guid>
      <description>&lt;p&gt;Un pocket cube peut avoir &lt;a href=&#34;https://fr.wikipedia.org/wiki/Pocket_Cube&#34;&gt;3 674 160&lt;/a&gt; positions différentes.
Pour une base de données NoSQL, ce nombre n&amp;rsquo;est même pas impressionnant.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://neo4j.com/&#34;&gt;Neo4j&lt;/a&gt; est une base de données de graphe NoSQL.
Dans cet outil on pourrait modéliser les cubes, et les relier entre eux via les mouvements.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Commande &#39;rm&#39; : ne supprimez plus vos fichiers définitivement</title>
      <link>https://fr.jeffprod.com/blog/2017/commande-rm-ne-supprimez-plus-vos-fichiers-definitivement/</link>
      <pubDate>Mon, 27 Feb 2017 10:47:53 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2017/commande-rm-ne-supprimez-plus-vos-fichiers-definitivement/</guid>
      <description>&lt;p&gt;Vous est-il arrivé de perdre un fichier par erreur après l&amp;rsquo;avoir supprimé via un &lt;code&gt;rm&lt;/code&gt; ?&lt;/p&gt;
&lt;p&gt;Pour éviter que cela ne se reproduise, le plus simple est de substituer l&amp;rsquo;action de cette commande dans le but de placer le fichier dans la corbeille.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Chiffrer un fichier sous Linux</title>
      <link>https://fr.jeffprod.com/blog/2016/chiffrer-un-fichier-sous-linux/</link>
      <pubDate>Wed, 23 Nov 2016 12:26:39 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2016/chiffrer-un-fichier-sous-linux/</guid>
      <description>&lt;p&gt;Pour transporter des fichiers confidentiels sur une clé USB, inutile d&amp;rsquo;installer un logiciel dédié comme VeraCrypt.
Il suffit d&amp;rsquo;un ordinateur sous Linux.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Analyse visuelle de réseaux sociaux</title>
      <link>https://fr.jeffprod.com/blog/2016/analyse-visuelle-de-reseaux-sociaux/</link>
      <pubDate>Sun, 19 Jun 2016 16:05:07 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2016/analyse-visuelle-de-reseaux-sociaux/</guid>
      <description>&lt;p&gt;Les API de Twitter permettent de récupérer les abonnés et les abonnements d&amp;rsquo;un compte.
Lorsqu&amp;rsquo;on a téléchargé les listes de plusieurs comptes, comment les mettre en relation ?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Créez une interface graphique Qt pour vos scripts Python</title>
      <link>https://fr.jeffprod.com/blog/2016/creez-une-interface-graphique-qt-pour-vos-scripts-python/</link>
      <pubDate>Wed, 30 Mar 2016 21:40:18 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2016/creez-une-interface-graphique-qt-pour-vos-scripts-python/</guid>
      <description>&lt;p&gt;Un script Python en ligne de commande c&amp;rsquo;est bien, mais la majorité des utilisateurs préfèrent utiliser une belle fenêtre avec des cases à cocher et des boutons.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Surveillez vos abonnés Twitter avec un Raspberry Pi</title>
      <link>https://fr.jeffprod.com/blog/2016/surveillez-vos-abonnes-twitter-avec-un-raspberry-pi/</link>
      <pubDate>Sun, 06 Mar 2016 17:22:00 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2016/surveillez-vos-abonnes-twitter-avec-un-raspberry-pi/</guid>
      <description>&lt;p&gt;Twitter vous informe quand vous avez un nouvel abonné, mais pas lorsque l&amp;rsquo;un d&amp;rsquo;entre eux se désabonne.
Pour le savoir, vous pouvez utiliser un service en ligne comme &lt;a href=&#34;https://manageflitter.com&#34;&gt;ManageFlitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mais si vous ne souhaitez pas partager vos informations avec un site tiers, pourquoi ne pas coder
un script sur Raspberry Pi à cet effet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Chiffrer une base SQLite</title>
      <link>https://fr.jeffprod.com/blog/2015/chiffrer-une-base-sqlite/</link>
      <pubDate>Tue, 29 Dec 2015 18:50:39 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/chiffrer-une-base-sqlite/</guid>
      <description>&lt;p&gt;Si vous conservez des données dans une base SQLite, vous voudrez certainement en interdire l&amp;rsquo;accès si elle se retrouve dans la nature ou hors cadre de votre application.&lt;/p&gt;
&lt;p&gt;Dans cet article nous allons créer une base de données chiffrée, en ligne de commande.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>LAMP sous Docker</title>
      <link>https://fr.jeffprod.com/blog/2015/lamp-sous-docker/</link>
      <pubDate>Wed, 23 Sep 2015 20:57:27 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/lamp-sous-docker/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/docker.png#floatright&#34; alt=&#34;Docker&#34; width=&#34;291&#34; height=&#34;70&#34;&gt;
  
&lt;p&gt;LAMP, qu&amp;rsquo;on ne présente plus, c&amp;rsquo;est Linux Apache MySQL et PHP. Tout un environnement logiciel pour faire fonctionner un site internet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Comment traduire un site internet ?</title>
      <link>https://fr.jeffprod.com/blog/2015/comment-traduire-un-site-internet/</link>
      <pubDate>Tue, 15 Sep 2015 17:21:03 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/comment-traduire-un-site-internet/</guid>
      <description>&lt;p&gt;Traduire un site, ou un logiciel, est un travail fastidieux. Heureusement, un programme existe pour vous aider, il s&amp;rsquo;appelle &lt;code&gt;gettext&lt;/code&gt;.
Il n&amp;rsquo;est pas nouveau, c&amp;rsquo;est même un dinosaure. Mais comprendre son fonctionnement et le mettre en place peut être un peu déroutant au début.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Séparez le PHP du HTML</title>
      <link>https://fr.jeffprod.com/blog/2015/separez-le-php-du-html/</link>
      <pubDate>Tue, 01 Sep 2015 22:33:48 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/separez-le-php-du-html/</guid>
      <description>&lt;p&gt;Pour développer un site web on peut inclure du PHP directement dans le HTML.
On se retrouve alors à maintenir du code tel que celui-ci :&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Server Sent Events</title>
      <link>https://fr.jeffprod.com/blog/2015/server-sent-events/</link>
      <pubDate>Sat, 06 Jun 2015 17:08:33 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/server-sent-events/</guid>
      <description>&lt;p&gt;Sur votre site web, lorsque vous avez un long traitement à effectuer côté serveur, il peut s&amp;rsquo;avérer utile d&amp;rsquo;afficher l&amp;rsquo;état d&amp;rsquo;avancement en temps réel sur une page web.
Il existe une API HTTP nommée &lt;code&gt;Server-Sent-Events&lt;/code&gt; (SSE). Elle permet de recevoir des notifications push depuis le serveur.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Les bases d&#39;un jeu Android en 2D</title>
      <link>https://fr.jeffprod.com/blog/2015/les-bases-d-un-jeu-android-en-2d/</link>
      <pubDate>Tue, 07 Apr 2015 21:42:00 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/les-bases-d-un-jeu-android-en-2d/</guid>
      <description>&lt;p&gt;Nous allons disséquer un jeu vidéo et créer les bases d&amp;rsquo;une application Android en 2D.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Un script PHP pour détecter les erreurs 404</title>
      <link>https://fr.jeffprod.com/blog/2015/un-script-php-pour-detecter-les-erreurs-404/</link>
      <pubDate>Thu, 19 Mar 2015 16:43:05 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/un-script-php-pour-detecter-les-erreurs-404/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/robot.png#floatright&#34; alt=&#34;robot&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;
  
&lt;p&gt;Une &amp;ldquo;erreur 404&amp;rdquo; sur un site internet est le cauchemar de tout webmaster. Les pages web sont créées, déplacées, supprimées&amp;hellip; Et tomber sur un lien brisé n&amp;rsquo;est agréable ni pour vos visiteurs ni pour votre référencement dans les moteurs de recherche.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Un chronomètre en Java</title>
      <link>https://fr.jeffprod.com/blog/2015/un-chronometre-en-java/</link>
      <pubDate>Sat, 07 Mar 2015 19:53:03 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/un-chronometre-en-java/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/timer.png#floatright&#34; alt=&#34;robot&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;
  
&lt;p&gt;En programmation, il peut être utile de connaître le temps d&amp;rsquo;exécution d&amp;rsquo;une portion de code. Je vous propose une simple classe Java qui simule un chronomètre.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Algorithmie : générateur de mots-mêlés</title>
      <link>https://fr.jeffprod.com/blog/2015/algorithmie-generateur-de-mots-meles/</link>
      <pubDate>Mon, 23 Feb 2015 22:25:02 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/algorithmie-generateur-de-mots-meles/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/motsmeles.png#floatright&#34; alt=&#34;Mots-mélés&#34; width=&#34;153&#34; height=&#34;185&#34;&gt;
  
&lt;p&gt;Un jeu de mots mêlés, ou &amp;ldquo;word search&amp;rdquo; en anglais, consiste à trouver des mots déterminés dans une grille remplie de lettres.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Les réseaux VPN</title>
      <link>https://fr.jeffprod.com/blog/2015/les-reseaux-vpn/</link>
      <pubDate>Sat, 07 Feb 2015 16:03:49 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/les-reseaux-vpn/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/vpn.png#floatright&#34; alt=&#34;usb over ip&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;
  
&lt;p&gt;VPN signifie &amp;ldquo;Virtual Private Network&amp;rdquo; : réseau privé virtuel sur internet à travers un tunnel sécurisé (ou pas, mais dans ce cas cela n&amp;rsquo;a aucun intérêt).
Les ordinateurs connectés au VPN sont ainsi sur le même réseau local (virtuel). La connexion entre les ordinateurs est de type client / serveur et gérée par un logiciel VPN.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Utilisation d&#39;une base SQLite sous Android</title>
      <link>https://fr.jeffprod.com/blog/2015/utilisation-d-une-base-sqlite-sous-android/</link>
      <pubDate>Sun, 25 Jan 2015 16:02:51 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/utilisation-d-une-base-sqlite-sous-android/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/android-sqlite.png#floatright&#34; alt=&#34;android-sqlite&#34; width=&#34;100&#34; height=&#34;116&#34;&gt;
  
&lt;p&gt;SQLite est un moteur de base de données relationnel gratuit. Il est facilement portable car le moteur et les données sont contenus dans un même fichier. C&amp;rsquo;est donc un excellent choix pour le stockage de données dans un smartphone.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Android : Afficher des données sous forme de tableau</title>
      <link>https://fr.jeffprod.com/blog/2015/android-afficher-des-donnees-sous-forme-de-tableau/</link>
      <pubDate>Sat, 03 Jan 2015 16:45:25 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2015/android-afficher-des-donnees-sous-forme-de-tableau/</guid>
      <description>&lt;p&gt;Dans une application Android, il existe (à ma connaissance) deux options pour afficher des données sous forme de tableau.&lt;/p&gt;
&lt;p&gt;La première solution utilise les objets &lt;code&gt;ListView&lt;/code&gt; et &lt;code&gt;SimpleCursorAdapter&lt;/code&gt;.&lt;br&gt;
La deuxième cré des &lt;code&gt;TextView&lt;/code&gt; à la volée dans un &lt;code&gt;TableLayout&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Créez un blog avec Jekyll</title>
      <link>https://fr.jeffprod.com/blog/2014/creez-un-blog-avec-jekyll/</link>
      <pubDate>Thu, 11 Dec 2014 23:24:33 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/creez-un-blog-avec-jekyll/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/logo-jekyll.png#floatright&#34; alt=&#34;Jekyll&#34; width=&#34;300&#34; height=&#34;133&#34;&gt;
  
&lt;p&gt;&lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt; est un outil de création de site internet.
Il permet de générer des pages HTML à partir de votre contenu rédigé dans de simples fichiers textes.&lt;/p&gt;
&lt;p&gt;Finis les sites en &lt;a href=&#34;https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu&#34;&gt;CMS&lt;/a&gt; avec du PHP/MySQL :
Pourquoi créer des pages dynamiques en interrogeant une base de données quand il suffit de créer directement la page finale ?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Installez le nouveau Captcha de Google sur votre site en PHP</title>
      <link>https://fr.jeffprod.com/blog/2014/installez-le-nouveau-captcha-de-google-sur-votre-site-en-php/</link>
      <pubDate>Fri, 05 Dec 2014 00:38:30 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/installez-le-nouveau-captcha-de-google-sur-votre-site-en-php/</guid>
      <description>&lt;p&gt;CAPTCHA est un service gratuit qui permet de protéger les sites web contre le spam. Il est utilisé dans les formulaires pour éviter les soumissions automatisées par des robots malveillants. Il s&amp;rsquo;agit en général de recopier un mot déformé dans une image :&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Le test du singe</title>
      <link>https://fr.jeffprod.com/blog/2014/le-test-du-singe/</link>
      <pubDate>Fri, 10 Oct 2014 23:43:42 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/le-test-du-singe/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/singe.png#floatright&#34; alt=&#34;singe&#34; width=&#34;225&#34; height=&#34;157&#34;&gt;
  
&lt;p&gt;En informatique, après la phase de développement d&amp;rsquo;un logiciel, arrive la phase de test.&lt;/p&gt;
&lt;p&gt;Avez-vous prévu tous les cas d&amp;rsquo;erreur ? Que se passera-t-il si un utilisateur saisit du texte dans votre programme alors que vous attendiez un nombre ?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Raccourcir et personnaliser des URL</title>
      <link>https://fr.jeffprod.com/blog/2014/raccourcir-et-personnaliser-des-url/</link>
      <pubDate>Sat, 04 Oct 2014 21:33:56 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/raccourcir-et-personnaliser-des-url/</guid>
      <description>&lt;p&gt;Pour mémoire, une URL (Uniform Resource Locator) est tout simplement l&amp;rsquo;adresse d&amp;rsquo;une page internet. Exemple :&lt;br&gt;
&lt;a href=&#34;https://fr.jeffprod.com/blog/2014/comment-programmer-un-jeu-dechecs&#34;&gt;https://fr.jeffprod.com/blog/2014/comment-programmer-un-jeu-dechecs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On peut réduire cette adresse en ceci :&lt;br&gt;
&lt;a href=&#34;https://bit.ly/2wByZJx&#34;&gt;https://bit.ly/2wByZJx&lt;/a&gt;&lt;br&gt;
Elle vous conduira sur la même page.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Comment programmer un jeu d&#39;échecs ?</title>
      <link>https://fr.jeffprod.com/blog/2014/comment-programmer-un-jeu-dechecs/</link>
      <pubDate>Mon, 22 Sep 2014 20:50:07 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/comment-programmer-un-jeu-dechecs/</guid>
      <description>&lt;p&gt;Vous souhaitez relever le défi d&amp;rsquo;écrire un jeu d&amp;rsquo;échecs ?
Ou simplement comprendre comment un ordinateur peut jouer correctement ?
Je vous propose d&amp;rsquo;étudier le code source du programme écrit pour l&amp;rsquo;occasion :&lt;br&gt;
&lt;strong&gt;&amp;ldquo;Jepychess&amp;rdquo;&lt;/strong&gt; qui signifie à peu de chose près &lt;strong&gt;&amp;ldquo;JeffProd Simple Python Chess Program&amp;rdquo;&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sauvegardez vos données avec RSync</title>
      <link>https://fr.jeffprod.com/blog/2014/sauvegardez-vos-donnees-avec-rsync/</link>
      <pubDate>Mon, 25 Aug 2014 19:45:16 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/sauvegardez-vos-donnees-avec-rsync/</guid>
      <description>&lt;p&gt;Il est impératif de sauvegarder vos données sur un périphérique externe. En effet, vous n&amp;rsquo;êtes jamais à l&amp;rsquo;abri d&amp;rsquo;une panne, d&amp;rsquo;un vol, ou d&amp;rsquo;une suppression malencontreuse de documents.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Enregistrement audio et vidéo d&#39;un écran Android</title>
      <link>https://fr.jeffprod.com/blog/2014/enregistrement-audio-et-video-dun-ecran-android/</link>
      <pubDate>Wed, 18 Jun 2014 10:07:46 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/enregistrement-audio-et-video-dun-ecran-android/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/enregistrement-audio-et-video-ecran-android.jpg#floatright&#34; alt=&#34;enregistrement-audio-et-video-ecran-android&#34; width=&#34;100&#34; height=&#34;85&#34;&gt;
  
&lt;p&gt;Comment capturer une vidéo de l&amp;rsquo;écran de votre smartphone gratuitement, sans le &amp;ldquo;rooter&amp;rdquo;, et avec un outil fourni par Google ?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Programmation : tirage au sort sans redondance</title>
      <link>https://fr.jeffprod.com/blog/2014/programmation-tirage-au-sort-sans-redondance/</link>
      <pubDate>Mon, 12 May 2014 20:14:56 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/programmation-tirage-au-sort-sans-redondance/</guid>
      <description>&lt;p&gt;Au cours d&amp;rsquo;un développement, on peut être amené à tirer au sort des données.&lt;br&gt;
Voici une fonction Java pour tirer au sort un nombre compris entre min et max :&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>JPCalendar : un calendrier en PHP</title>
      <link>https://fr.jeffprod.com/blog/2014/jpcalendar-un-calendrier-en-php/</link>
      <pubDate>Sat, 22 Mar 2014 20:04:48 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/jpcalendar-un-calendrier-en-php/</guid>
      <description>&lt;p&gt;JeffProd-Calendar est une classe PHP pour afficher un calendrier mensuel ou annuel sur votre site.&lt;br&gt;
Il est possible d&amp;rsquo;ajouter des évènements et définir leur couleur.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Développez en local avec Git</title>
      <link>https://fr.jeffprod.com/blog/2014/developpez-en-local-avec-git/</link>
      <pubDate>Fri, 07 Mar 2014 20:47:22 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/developpez-en-local-avec-git/</guid>
      <description>&lt;img class=&#34;py-2&#34; src=&#34;https://fr.jeffprod.com/img/blog/article-git.png#floatright&#34; alt=&#34;Git&#34; width=&#34;150&#34; height=&#34;67&#34;&gt;
  
&lt;p&gt;Pour le développement d&amp;rsquo;applications, on utilise un logiciel de gestion de versions. Il permet le travail collaboratif et la conservation de l&amp;rsquo;historique de chaque fichier. Le plus ancien est &lt;a href=&#34;https://fr.wikipedia.org/wiki/Concurrent_versions_system&#34;&gt;CVS&lt;/a&gt;. Son remplaçant est &lt;a href=&#34;https://fr.wikipedia.org/wiki/Apache_Subversion&#34;&gt;Subversion (SVN)&lt;/a&gt;. Il existe aussi &lt;a href=&#34;https://fr.wikipedia.org/wiki/Git&#34;&gt;Git&lt;/a&gt; dont le développement a débuté en 2005 par un certain Linus Torvalds.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mon premier Semi-Marathon</title>
      <link>https://fr.jeffprod.com/blog/2014/mon-premier-semi-marathon/</link>
      <pubDate>Sun, 02 Mar 2014 19:06:01 +0000</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/mon-premier-semi-marathon/</guid>
      <description>&lt;p&gt;Ou comment j&amp;rsquo;ai perdu 5 kg en 5 mois pour courir 21.1 km ! Je ne parlerai pas des kilos pris aux ski grâce aux fondues savoyardes&amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Redimensionner des images par lot</title>
      <link>https://fr.jeffprod.com/blog/2014/redimensionner-des-images-par-lot/</link>
      <pubDate>Wed, 26 Feb 2014 23:06:59 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/redimensionner-des-images-par-lot/</guid>
      <description>&lt;p&gt;Sous Linux, l&amp;rsquo;utilitaire &lt;a href=&#34;https://www.imagemagick.org/script/convert.php&#34;&gt;ImageMagick&lt;/a&gt; permet de retailler des images en ligne de commande.&lt;br&gt;
S&amp;rsquo;il n&amp;rsquo;est pas installé sur votre ordinateur, tapez :&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>JPForm : classe PHP pour les formulaires HTML</title>
      <link>https://fr.jeffprod.com/blog/2014/jpform-classe-php-pour-les-formulaires-html/</link>
      <pubDate>Sat, 15 Feb 2014 23:02:58 +0200</pubDate>
      
      <guid>https://fr.jeffprod.com/blog/2014/jpform-classe-php-pour-les-formulaires-html/</guid>
      <description>&lt;p&gt;JPForm est une classe PHP pour vous simplifier la vie avec les formulaires HTML.
Si vous codez vous-même votre site internet sans utiliser de CMS, alors ce code pourra vous être utile.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
