Journal le défi du challenge : qu'affiche ce code

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
1
déc.
2024

Demat'iNal

c'est l'époque des sondages on dirait… alors, d'après toi, qu'affiche l'exécution de ce code Python :

e = 1
try:
    raise NotImplementedError
except NotImplementedError as e:
    pass
print(type(e))
  1. <class 'int'>
  2. SyntaxError
  3. <class 'NotImplementedError'>
  4. NameError

Journal Formation à Lyon : Compilateurs pour le Python Scientifique

Posté par  (site web personnel) . Licence CC By‑SA.
14
25
oct.
2017

Cher journal,

Du 7 au 9 novembre (2017 hein) aura lieu à Lyon une formation ouverte à tous sur le Python scientifique, ou plus exactement sur l'accélération de code scientifiques écrits en Python à travers trois compilateurs : Cython, Numba et Pythran. Trois compilos, trois approches, vive la diversité ! Et avec en bonus un petit aperçu sur l'évaluation de performances dans le cas de codes hybrides Python/natif.

Il y a certes un biais tout franchouillard à présenter Pythran (…)

Journal pythran prépare sa mue

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
30
août
2012

SSS Ss SsSS SSs s [un serpent qui vous salue en morse, c'est pas banal!]

Comme tout animal à sang froid, Pythran a profité de l'été pour s'allonger sur un rocher et emmagasiner de la chaleur. Quand un humain s'adonne à cette activité, ce n'est pas très progressif, mais là ça a plutôt bien marché.

Petit résumé.

Tests Unitaires

Pythran repose sur unittest pour les tests unitaires. Un test consiste en
1. Une fonction écrite en python ;
2. des paramètres (…)

Journal Automatiser les tests multi-plateforme avec Sivart

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
13
18
fév.
2015

Abat-jour' nal (variante médiocre sur un thème connu)

Lors de mes développements en C/C++, j'ai parfois besoin de tester la portabilité du code que j'écris, entre différentes architectures, ou quand j'ai des dépendances sur différentes versions d'ubuntu/Debian/*BSD. Et pourquoi pas OSX.

Alors d'habitude je teste sur ma machine, puis je lance une VM from scratch, je teste à la main, et c'est lourd et long, donc je ne le fais pas souvent/pas méthodiquement. J'utilise aussi travis-ci mais pour le multi-plateforme (…)

Journal Quel pov' type

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
13
21
mar.
2024

Demat'iNal

Il m'arrive de soumettre des patch à des projets Python utilisant cette délicate innovation qu'est le système de typage pour Python. Si si, tu sais ces trucs à base de mypy qui cherchent à améliorer le monde en le rendant plus rigide.

Regardez donc cette beauté :

try:
    from yaml import CSafeLoader as SafeLoader
except ImportError:
    from yaml import SafeLoader

qui essaie d'utiliser la version native (et plus rapide) qui peut ne pas être présent sur le (…)

Journal Python et valeurs par défaut des paramètres

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

Bonjooour les zamis [ bienvenue au pays trop mignon ]

Au cours de mes pérégrination pythranesques, j'ai découvert une fleur du langage python, que je m'empresse de partager.

D'après vous, qu'affiche la séquence suivante ?

def foo(a=list()): return a
foo().append(1)
foo().append(2)
print foo()

Et hop une manière détournée (et hideuse, elle n'a donc pas à sa place au pays trop mignon) d'avoir (…)

Journal SIGUSR1, SIGUSR2,..., SIGUSR_N ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
12
10
mai
2023

Demati'Nal,

À la lecture de signal(7), on se rend compte que deux signaux sont réservés pour les signaux utilisateurs SIGUSR1 et SIGUSR2. Deux, c'est peu. Je vous propose donc cette technique qu'on baptisera le signal knocking par analogie au Port_knocking

#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int signalvalue = 0;

void sigusr1handler(int signum);
void sigusr2handler(int signum);

void sigusr1handler(int signum) {
  ++signalvalue;
}
void sigusr2handler
(…)

Journal C++ Hell/Heaven et les concepts

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

Salut à tous,

C++20 apporte les concepts, mais par pure nostalgie, regardons comment émuler ça en C++11

#include <utility>

#define REQUIRES(x) class _ = decltype(x)

template<class T,
         REQUIRES(((std::declval<T>()==0), T(1), std::declval<T>() * (std::declval<T>() -1)))>
T fact(T const& n) {
    return n == 0
(…)

Journal Toujours plus de fun avec C

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
10
27
mar.
2020

Demat' iNal,

En regardant cette vidéo: https://www.youtube.com/watch?v=lkgszkPnV8g, j'ai découvert une de ces petites perles qui viennent rompre la monotonie d'un quotidien où l'on dérive constamment.

int(riguant);

Ce code C compile. C'est d'ailleurs aussi un code C++, qui compile également.

Mais pourquoi donc ?

Journal Python à trou : trouve ton environnement

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
8
17
fév.
2025

Demat'iNal

petit jeu : trouve une valeur de a pour laquelle la séquence suivante soit valide (au sens où elle s’exécute sans exception) :

>>> class a(*{++a},a=a--a): {}

Par exemple :

>>> a = 1
>>> class a(*{++a},a=a--a): {}
  File "<stdin>", line 1, in <module>
TypeError: int() takes at most
(…)

Journal Le bon sens et le C++

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

Demat' iNal.

On a l'impression, parfois, que dans un code compilé, pour savoir si une fonction (locale) est utilisée, il suffit de la supprimer, recompiler et si on obtient une erreur, elle était utilisée. Question de bon sens ! D'ailleurs c'est le cas en C [*]

Bien entendu, c'est faux, comme le montre le code C++ suivant:

#include <cstdio>

#ifndef REMOVE
static void foo(int x) {
    puts("foo(int)");
}
#endif

static void foo(float
(…)

Journal Carnet de route - taume 0

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

Notes et découvertes faites lors de mes voyages informatiques

Vérifier si deux énoncés parmi N (N >= 2) sont vrais, en Python

sum(map(bool, l)) > 1

Je n'ai pas trouvé de one-liner satisfaisant qui s'arrête dès que la condition est vérifiée :-/

Spécialiser une fonction C(11) pour un type donné

Pour vérifier qu'on n'a pas un niveau de pointeur en trop :

void dump_ptr(void* ptr) { printf("%p",
(…)