I wrote my last post on fpdf2
18 months ago.
We released 7 more versions of fpdf2
since then!
This article will present some of the major features introduced since v2.7.3 to v2.8.1 of fpdf2
:
click on the buttons below to reveal the various changes brought …
"Qu’est-ce qu’un beau code ?" Voilà une question qui obsède un rien Xavier de La Porte. Mais peut-être a-t-il trouvé la réponse dans une thèse sur l’esthétique du code rédigé par un étudiant nommé Pierre Depaz. Vous le saurez à la fin de ce podcast.
This is one of the things I genuinely appreciate about Hacker News. Most fields have a problem with ‘ghost knowledge’, hard-won practical understanding that is mostly passed on verbally between practitioners and not written down anywhere public. At least in programming some chunk of it makes it into forum posts. It’s normally hidden in the depths of big threads, but that’s better than nothing.
My first job was a trial by fire, to this day, that codebase remains the worst and the best codebase I ever had the pleasure of working in.
[...] I hope I can share with you some of its most fun and scary stories.I mean a database table called calendar. What did it contain? A manually filled-out calendar.
When asking our resident shaman (who went by the name Munch), he informed me that when the calendar runs out we can't login to the system.
😱
This article aims to describe a tricky situation that can often occur when using Promise.all()
,
and a simple solution to this problem.
The context
The MDN page for Promise.all()
provides the following description of this function:
The
Promise.all()
static method takes an iterable of promises as input …
A very short blog post to share some minimal code snippets on how to quickly and easily setup Gitlab CI pipelines to run static code analysis tools on C++ code and Jenkins pipelines (or any Groovy code).
Transmodel is the basis for defining exchange standards that enable the sharing and provision of accurate and interoperable public transport information across organisation- and system-boundaries.
Pylint is a great static code analyser for Python code. I have been using it for several years, in various projects, and it's simple to use yet very powerful.
I even contributed to Pylint by submitting a new rule a few years ago : implicit-str-concat.
For an introduction to Pylint, you …
open-source non-profit search engine for shadow libraries, like Sci-Hub, Library Genesis, and Z-Library
🔍 Moteur de recherche des bibliothèques clandestines : livres, journaux, BD, magazines. ⭐️ Bibliothèque Z-Library, Bibliothèque Genesis, Sci-Hub. ⚙️ Entièrement résilient grâce à un code et à des données open source. ❤️ Faites passer le mot : tout le monde est le bienvenu ici !
Technical write-up on how they setup this: https://annas-blog.org/how-to-run-a-shadow-library.html
Let’s start with our tech stack. It is deliberately boring. We use Flask, MariaDB, and ElasticSearch. That is literally it. Search is largely a solved problem, and we don’t intend to reinvent it.
Source: @sebsauvage
Another set articles covers the code in more depths:
- https://cybergeeks.tech/a-technical-analysis-of-pegasus-for-android-part-1/
- https://cybergeeks.tech/a-technical-analysis-of-pegasus-for-android-part-2/
- https://cybergeeks.tech/a-technical-analysis-of-pegasus-for-android-part-3/
Source: @ebsauvage
I wrote my latest post on fpdf2
almost a year ago.
As we just released a new version, v2.7,
this is the time to mention some recent additions to this library! 😊
This article will present some of the major features introduced between v2.5.3 & v2.7.3 of …
The other day, while working on fpdf2,
I used @dataclass
,
a nice decorator that came in the standard library with Python 3.7,
to quickly define a class
that mostly stored data.
Then a question came to my mind: is the __slots__
memory optimization compatible with …
This describes tools and techniques that can identify memory leaks in Long running Python programs:
- Is it a Leak?
- Sources of Leaks
- A Bit About (C)Python Memory Management
- Reference Counts
- Garbage Collection
- The Big Picture
- CPython’s Object Allocator (pymalloc)
Here is a visualisation of memory allocators from top to bottom (from the Python source Objects/obmalloc.c):
_____ ______ ______ ________
[ int ] [ dict ] [ list ] ... [ string ] Python core |
+3 | <----- Object-specific memory -----> | <-- Non-object memory --> |
_______________________________ | |
[ Python's object allocator ] | |
+2 | ####### Object memory ####### | <------ Internal buffers ------> |
______________________________________________________________ |
[ Python's raw memory allocator (PyMem_ API) ] |
+1 | <----- Python memory (under PyMem manager's control) ------> | |
__________________________________________________________________
[ Underlying general-purpose allocator (ex: C library malloc) ]
0 | <------ Virtual memory allocated for the python process -------> |
=========================================================================
_______________________________________________________________________
[ OS-specific Virtual Memory Manager (VMM) ]
-1 | <--- Kernel dynamic storage allocation & management (page-based) ---> |
__________________________________ __________________________________
[ ] [ ]
-2 | <-- Physical memory: ROM/RAM --> | | <-- Secondary storage (swap) --> |
This repository list a maximum of tech conferences's date and CFP in order to help conferences organizers, speakers & attendees
Très sympathique jeu de piste en 15 étapes, à destinations de développeurs.
Peut se résoudre en moins de 30min.
Following last week animated PDF adventure, I have been reading a series of one page dungeons... And yesterday I had the opportunity to play the best one in my opinion: The Sky-Blind Spire by Michael Prescott.
It has everythng I love on one page: a maze to explore, mysteries to …
Last week, while translating John Harper's micro-TTRPG World of Dungeons: Turbo Breakers, I discovered the wonderful world of one page dungeons, starting with Michael Prescott splendid production at trilemma.com and also the yearly One Page Dungeon Context.
While crawling through the OPDC 2021 entries, I discovered a great map …
Join us in sending a token of appreciation to your favorite open source developers and projects.
Here’s how:
- Choose a card
- Log in with GitHub
- Choose recipient
- Send your card
Any gif that claims to be showing
60fps
is simply untrue due to the fact that no web browser out there right now supports displaying gifs higher than50fps
. If you try to set your frame rate any higher than what the browser supports (or if you set the frame delay to zero) then most browsers will default to a playback of10fps
(over 5 times slower than you probably intended).
FROM: https://sebsauvage.net/links/?ZYOVJA
À savoir : les navigateurs ne supportent pas les GIF animés à plus de 50 images par seconde (50 fps).