Sweetohm

Michel Casabianca


Ingénieur Logiciel Sénior : Développement, Architecture et Conduite de Projet

Michel Casabianca 110 cours Saint Louis Bat B App 44 33300 Bordeaux 06.86.99.63.89 casa@sweetohm.net http://sweetohm.net https://github.com/c4s4 http://linkedin.com/in/casabianca Technologie Maîtrisées Langages Informatiques : Java, Python, Go, Ruby, Shell, PHP, C et C++, Lua, Lisp ainsi que quelques langues mortes (Pascal, Assembleur X86, Basic, LSE, HP41). Pile Java : Spring, Hibernate, Maven, Tomcat et principaux frameworks web Java. Technologies Web : JavaScript (JQuery), Servlets, JSP (JSTL), Django, Flask, Ruby on Rails, Sinatra, Web Services (XML-RPC et Soap), Rest.

Senior Sofware Ingeneer: Software development, Architecture and Project Management

Michel Casabianca 110 cours Saint Louis Bat B App 44 33300 Bordeaux France +336.86.99.63.89 casa@sweetohm.net http://sweetohm.net https://github.com/c4s4 http://linkedin.com/in/casabianca Mastered Technologies Programming Languages: Java, Python, Go, Ruby, Shell, PHP, C et C++, Lua, Lisp and some dead languages (Pascal, Assembler X86, Basic, LSE, HP41). Java Stack: Spring, Hibernate, Maven, Tomcat and main Java web frameworks. Web Technologies: JavaScript (JQuery), Servlets, JSP (JSTL), Django, Flask, Ruby on Rails, Sinatra, Web Services (XML-RPC et Soap), Rest.

Modèle de Facture

Ayant produit ma première facture, j’ai dû me pencher sur sa réalisation avec Open Office (depuis que je suis repassé sous Linux, je ne peux plus utiliser Numbers). J’ai donc mis à jour mon modèle de facture pour Open Office.

FireFTP

Je viens d’installer une machine sous Stretch, la prochaine version de la distribution Linux Debian, en testing actuellement. J’ai été très déçu lorsque j’ai voulu installer FileZilla : il n’est pas encore disponible ! J’ai donc cherché une alternative, et j’ai trouvé FireFTP.

Swift Open Source

Swift est maintenant Open Source et on peut trouver des binaires pour Linux sur le site Swift.org. J’attendais avec impatiente de pouvoir tester une version Linux depuis l’annonce du passage de Swift en Open Source.

Démo Safari Books Online

J’ai été invité par O’Reilly à une démo de leur service de bibliothèque en ligne Safari Books Online. Cette démo est disponible en vidéo à l’adresse suivante: https://www.safaribooksonline.com/public/product-demo-20151118/.

List Comprehension vs Streams Java

Voici le code en Python pour construire une liste des IDs de factures dont le titre contient Training, triée par ordre décroissant de montant :

invoice_ids = [i.id for i in
               sorted(invoices, key=lambda i: i.amount, reverse=True)
               if "Training" in i.title]

Grâce aux streams, on peut maintenant le faire en Java 8 avec le code suivant :

List<Integer> invoiceIds =
            invoices.stream()
            .filter(inv -> inv.getTitle().contains("Training"))
            .sorted(Comparator.comparingDouble(Invoice::getAmount).reversed())
            .map(Invoice::getId)
            .collect(Collectors.toList());

Non, ce n’est pas une blague, c’est une feature !

Les sources de ces exemples sont disponibles ici en téléchargement.

Template Slides

Sur Github: https://github.com/c4s4/slides

Ce projet est un template de slides. Il utilise Remark JS et permet donc de générer des slides HTML à partir d’un texte au format Markdown.

Template de slides en Markdown

J’ai préparé pas mal de slides ces derniers temps (pour mon talk à BDX.io et pour une formation Java que je prépare en ce moment). J’ai choisi Remark JS après avoir testé tous les formats de slides que peut générer pandoc, mais aucun ne m’a satisfait.

J’ai donc décidé de réaliser un template de projet pour gagner du temps lors de la préparation de mes prochains slides. J’ai mis ce template à disposition sur Github : https://github.com/c4s4/slides. On peut y lire un bref tutoriel pour écrire ses slides et y télécharger le projet.

Enjoy!

Pythenv

Sur Github: https://github.com/c4s4/pythenv

Pythenv exécute un script Python dans un environnement virtuel temporaire, créé à la volée dans le répertoire /tmp, puis détruit après usage.