Journal Le retour de pacman en beamer

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
28
mar.
2014

Salut à tous !

Il y a quelque temps déjà, j'avais présenté ici même une nouvelle façon d'afficher le compteur de slide en beamer, à l'aide d'une petit pacman dévorant avidement le nombre de page…

Tout y était : le pacman, les p'tits bonbons blancs, les plus gros… mais il manquait le fantôme, malheureux protagoniste oublié de l'histoire.

L'erreur est réparée, comme vous pouvez l'observer avec émotion sur cette présentation. Le paquet LaTeX à inclure est bien sûr dispo.

(…)

Journal En passant par le FOSDEM, avec mes sabots 🎵

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
5
fév.
2024

Demat'iNal,

De retour du FOSDEM, je me permets de partager avec toi quelques notes techniques et découvertes glanées au fil des conférences.

SemVer in Rust [track rust]

Chouette présentation sur le semantic versionning. J'ai apprécié le temps passé à décrire les « différences d'appréciation » entre le SemVer strict et celui de Rust. Par exemple SemVer spécifie qu'une version majeur à zéro autorise de casser les APIs, mais la coloration Rust ne le permet pas.

Le but (…)

Journal Pythran - 0.9.0 - kozhamzer

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
24
7
nov.
2018

Petite mise en bouche en alexandrin pour annoncer une nouvelle version de Pythran, compilateur pour le Python scientifique.

L'automne arrive, avec son lot de feuilles mortes
Pythran jamais ne dérive, il fallait qu'il sorte
Pas de grande nouveauté, juste le nécessaire
Tout est vectorisé, vraiment il faut le faire !

Le logiciel est comme toujours disponible sur pypi, anaconda et Github.

Comme annoncé dans les vers ci-dessus, la grande nouveauté vient du passage de boost.simd à xsimd (…)

Journal Retour d'expérience sur l'empaquetage d'une bibliothèque native pour Python

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
26
mai
2019

Jonbour, Nal !

Je vais t'écrire au sujet de l'empaquetage d'une bibliothèque native pour Python, à travers un bref retour d'expérience un tant soit peu motivé, avec des choix pas évidents dedans et un petit vernis technologique pour attirer le chaland. Tu es ferré ? C'est parti.

Le compilateur Pythran est principalement distribué à travers PyPI. La majorité des dépendances sont des dépendances bien empaquetées sous PyPI (par exemple les paquet networkx ou numpy, mais il y a (…)

Journal pythran 0.9.12 - heskenn

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
14
juil.
2021

Demat' iNal,

je ne suis plus aussi diligent dans mes annonces de sortie de Pythran, mais j'ai quelques anecdotes à raconter pour la version 0.9.12 sortie hier, donc je me lance.

Petit rappel : Pythran est un compilateur pour noyaux de calcul scientifique écrit en Python. Il transforme ces derniers en code natif ne faisant appel à l'interpréteur qu'aux frontières avec le code interprété (pour la conversion entre objets Python et objet natifs), et peut générer du code vectoriel et/ou (…)

Journal pythran rampe

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
16
juil.
2012

Le titre « pythran est en marche » me paraissait bizarre pour un outil qui a trait aux serpents…

Dans ma folie bienheureuse, et faisant fi des avis pessimistes, j'ai tenté de passer un code résolvant le problème des Nreines dans la moulinette pythran. Après de nombreux hacks optimisations, les résultats tombent:

  • python: 1.34s
  • pypy: 0.56s
  • nuitka: 1.34s
  • shedskin: 0.61s
  • pythran: 0.32s

\o/ le bébé s'en sort bien.

Pour être honnête il faut bien avouer que pythran ne supportant pas encore (…)

Journal Mémorisation partielle de fonction constexpr

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
23
25
sept.
2018

Demat'inal,

Dans la lignée des expériences C++ que j'essaie de partager ici, je vous soumets ce bout de code qui m'a bien amusé :

template<class F, class T, T... Vs>
struct memoized {
    auto operator()(T v) const
    {
        static constexpr frozen::map<T, decltype(F{}(v)), sizeof...(Vs)> cached = {{Vs, F{}(Vs)}...};
        auto where = cached.
(…)

Journal CPPP

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
22
13
juin
2019

Demat' iNal,

Ce samedi 15 juin aura lieu à Paris la conférence CPPP. Cette conférence s'adresse à tous ceux qui malgré ce dernier journal ont conservé une tendre affection (ou un syndrome de Stockholm) pour le langage C++.

On notera la présence de plusieurs orateurs anglophones ayant fait des présentations à succès à CppCon:

(…)

Journal Pixel Art et C++14

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
22
3
avr.
2018

Petit délire illustrant l'usage de constexpr et de la biliothèsque frozen.

Première étape : faire un dessin en pixel art, par exemple:

  constexpr unsigned char bytes[] = "   ###              ###   "
                                    "  ##### ########## #####  "
                                    " #######          ####### "
                                    " ####                #### "
                                    " ###                  ### "
                                    "  #                    #  "
                                    "  #                    #  "
                                    " #    ###        ###    # "
                                    " #   #####      #####   # "
                                    " #  #### #      # ####  # "
                                    " #
(…)

Journal Pythreries - Perl ou Python?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
22
6
jan.
2019

Demat' iNal

Au hasard d'un nouveau projet autour de l'analyse du langage Python, j'ai découvert quelques détails du langage Python que l'on peut résumer en cette simple ligne:

def _(*,_=...): [...]

outre l'aspect très perlesque de cette ligne, elle illustre plusieurs détails cocasses :

  1. Il est possible de réutiliser le nom de la fonction dans un de ces arguments, et c'est l'argument qui a la priorité

  2. C'était la première fois que je (…)

Journal Écrire pour mieux finir

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
21
20
mar.
2019

Demat'iNal,

Il y a un peu moins de trois ans, je commençais à coucher sur le clavier (oui parce que coucher sur le papier, ça me fait bizarre) le résultats de mes pérégrinations autour du compilateur pythran sur pythran-stories.

Et hier, alors que je postais un article sur l'analyse de use-def chains pour Python à l'aide du paquet beniget, un sentiment de complétude a surgi inopinément, à la manière d'un pokemon sauvage surgissant des fourrés. Et chose curieuse (…)

Journal Alignement chaotic neutre

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
10
juil.
2021

Demat' iNal,

J'ai récemment eu l'ineffable [1] plaisir de corriger un bug dans LLVM qui m'a causé quelques mauvaises soirées. Afin que l'histoire devienne légende et que la légende fasse mythe, je me décide à vous en raconter quelques détails amusants.

Considérons le bout de code suivant :

#include <string>
#include <boost/align/aligned_allocator.hpp> 

constexpr std::size_t align = 32;
template<class T>
using aligned_allocator = boost::alignment::aligned_allocator<T, align>;

using aligned_string = std::basic_string<char, std::char_traits<char>, aligned_allocator<char>>;

aligned_string make_string(int num) {
    return aligned_string(num, '\0');

}

#include <iostream>
(…)

Journal Pythran - 0.8.7

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
20
17
sept.
2018

Demat'i-nal,

La mouture 0.8.7, tendrement nommée skol-loarn de Pythran, est de sortie. Rappelons que Pythran est un compilateur dédié au calcul scientifique pour Python. Il s'installe avec pip ou conda et nécessite juste un compilateur C++ qui parle le dialecte c++11 sur l'hôte. Car oui, Pythran fait partie de cette ignoble lignée des transpileurs…

Quelques liens utiles :

Journal Toujours plus proche du Python avec C++

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
20
22
déc.
2020

Demat'iNal,

Le langage Python offre une sacré flexibilité dans la gestion des arguments: arguments positionnels, nommés, passage par mot-clef, c'est un peu la foire à la saucisse des paramètres.

J'aime particulièrement le passage d'arguments nommés, ça documente bien le site d'appel, et la syntaxe Python est assez flexible. Mais peut-on en faire autant avec C++ ? Tu te doutes bien que oui, sinon l'intérêt de ce journal serait limité :-)

La syntaxe supportée :

auto res = my_function_call(pos0
(…)

Journal PyConfr2017 - Boudu !

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
20
26
sept.
2017

PyconFr, tu viens pour les talks et tu te retrouves à apprendre plein de trucs en discutant avec les uns et les autres. Et puis entre les anciens étudiants, les core devs Python ou Mercurial, il y avait du beau monde et plein de trucs à apprendre. Hop aperçu non exhaustif des deux sujets qui m'ont marqués (ce qui n'enlève évidement aucun intérêt aux autres sujets).

Mais avant ça merci à Quarkslab pour m'avoir permi d'aller à cette conf, et (…)