I knew open source meme generators would exist, but I never searched for them before. Here is a small table with generator and repository columns:
Archive for the ‘Python’ Category
Open source meme generators on GitHub
Posted by jpluimers on 2026/08/20
Posted in *nix, *nix-tools, ash/dash, bash, bash, Batch-Files, Bookmarklet, CSS, Development, HTML, JavaScript/ECMAScript, Makefile, Power User, Python, Scripting, sh, Sh Shell, Software Development, Web Browsers, Web Development | Leave a Comment »
Automating archival of web pages in Ghostarchive
Posted by jpluimers on 2026/08/13
Some notes because of Some links on the Archive Today controversy and steps I need to take on this blog: some more notes and links to automate archival into the Ghostarchive:
- Ghostarchive seems to need a POST request instead of a GET request to archive pages
- A POST request is harder to start from a script than a GET request
- There are some tools that automate an embedded Chrome browser to accomplish archiving
- There seems to be no user script or plugin yet
Related:
- [Wayback/Archive] About Ghostarchive, a website archive
- Help:Archiving a source – Wikipedia
- Wikipedia:List of web archives on Wikipedia – Wikipedia
- [Wayback/Archive] Ghostarchive – Archiveteam
- [Wayback/Archive] I used to solely depend on Wayback machine to automate archiving pages. Now, I a… | Hacker News
- [Wayback/Archive] [Userscript] archive web pages to waybackmachine, archive.ph, and ghostarchive.org : qutebrowser
[Wayback/Archive] gist:9a02bc50e75e7239f6f0c8f04fe4cfb1 · GitHub – Python script to archive a web page in the Internet Archive Wayback Machine, Archive Today, Ghost Archive; requires Python, ChromeDriver and Chrome or Chromium
- [Wayback/Archive] [Userscript] archive web pages to waybackmachine, archive.ph, and ghostarchive.org : qutebrowser
- [Wayback/Archive] GitHub – wabarc/ghostarchive: A command-line tool and Go package for wayback web pages to Ghostarchive
- [Wayback/Archive] GitHub – wabarc/wayback: An archiving tool with an IM-style interface that prioritizes privacy and accessibility, integrated with various archival services including Internet Archive, archive.today, Ghostarchive, IPFS, Telegraph, and file systems.
My earlier blog posts mentioning Ghostarchive:
- Extracting URLs from the Wayback Machine – Home
- Deleted Tweet Finder (already uring me to check out how to trigger archival on Ghostarchival in an automated way)
- a
- Some links on the Archive Today controversy and steps I need to take on this blog (mentioned here at the top of the post as well)
Via: [Wayback/Wayback] Ghostarchive does a decent job for the same sites in my experience: https://ghos… | Hacker News
Query: [Wayback/Archive] automate ghostarchive at DuckDuckGo
--jeroen
Posted in CSS, Development, HTML, JavaScript/ECMAScript, Python, Scripting, Software Development, Web Development | Leave a Comment »
GitHub – yoeo/guesslang: Detect the programming language of a source code
Posted by jpluimers on 2026/07/29
I wanted to detect the programming language of some code I wasn’t sure what it was written in.
A quick search found [Wayback/Archive] GitHub – yoeo/guesslang: Detect the programming language of a source code
Apps powered by Guesslang
Microsoft Visual Studio Code, automatic language detection
That was cool, as I always have vscode installed.
Query: [Wayback/Archive] detect programming language of source code at DuckDuckGo
--jeroen
Posted in Development, Python, Scripting, Software Development | Leave a Comment »
A bit of perl trickery (or why you don’t should just execute any code you find on-line)
Posted by jpluimers on 2026/07/09
[Wayback/Archive] A bit of perl trickery shows a great example why you should only code you understand.
It explains the innards of a classic trap luring people into execute some obfuscated code, in this case Perl based.
Which makes it yet another testament to not blindly download and execute stuff from the internet.
So be aware when you see obfuscated scripts and things luring you into:
iex ((New-Object System.Net.WebClient).DownloadString(piped through PowerShell.curlpiped through bash, Perl, Python or other scripting languages
Be even more alert when these require elevated access (like running under sudo).
Via: [Wayback/Archive] Leo Bicknell on Twitter: “@jpluimers @IanColdwater Executes “rm -rf /”. This is ancient Perl monks way of teaching people not to run programs they don’t understand as root. … But hey, these days people “curl -o – url | bash”. It’s surprising that isn’t exploited more.”
Which was response to me asking what the below code did that was fully misunderstood by ChatGPT (which is Large Language Model based on a large corpus of natural language, not a small corpus of evil red-team programming language code snippets) to a series of Tweets by Ian Coldwater.
Posted in *nix, *nix-tools, ash/dash, bash, bash, CommandLine, Development, Perl, Power User, PowerShell, PowerShell, Python, RegEx, Scripting, sh, Software Development | Leave a Comment »
microsoft/pyright: Static Type Checker for Python
Posted by jpluimers on 2026/07/07
I will likely need this one day: [Wayback/Archive] microsoft/pyright: Static Type Checker for Python
Via:
- [Wayback/Archive] Julia Evans on Twitter: “I wish there was something like pyright for Javascript — I love how pyright will tell me about type errors even if I don’t add *any* type annotations in my code at all
github.com/microsoft/pyright(I assume you can’t make pyright-for-JS because Typescript is a different language)” - [Wayback/Archive] Julia Evans on Twitter: “Also I think the reason pyright works so well even if I don’t add type annotations is that a lot of the Python library code I’m depending on actually does have type annotations, so it can use those”
--jeroen
Posted in Agile, Code Quality, Development, Python, Scripting, Software Development | Leave a Comment »
MeshCore – Off grid mesh radio communications system
Posted by jpluimers on 2026/06/02
In a world where it becomes increasingly important to think and act on situations where for various communication via traditional means is not that easy any more, then LoRa (Long Range) wireless networks have been steadily gaining ground: they use open frequencies and for some of these networks, their repeater structure is largely ran by communities of volunteers.
Both communities and devices have evolved so far that its not just for early adopters any more: mere mortals can use it too.
In the LoRa area, MeshCore looks to have become the successor of Meshtastic: [Wayback/Archive] MeshCore – Off grid mesh radio communications system.
The core difference between these two LoRa networks is explained in the Wikipedia article on MeshCore:
MeshCore is often compared with other LoRa-based mesh networking systems such as Meshtastic. While Meshtastic primarily relies on broadcast-style message flooding, MeshCore emphasizes structured routing roles and store-and-forward mechanisms, resulting in different scalability and energy-consumption characteristics.
Communication over the MeshCore network reminds me a lot of three things, in this chronological order:
- BITNET Relay (which predates IRC by about 3 years)
- Fidonet, of which I was part for years, see for instance Moar FidoNet memories.
- BlackBerry devices and even Nokia Communicator
- The Things Network based sensor networks
I think about everything of MeshCore is open source; mostly hosted in the hierarchy at [Wayback/Archive] MeshCore · GitHub.
MeshCore is fairly young which means it will have growth pains, and some hardware pains (like a node being limited to about 500 messages/hour because of physical bandwidth limitations – smaller cells work better than the FidoNet hub/spoke model – see the Dutch section below) but it also cool to see it evolving.
This blog post is going to be long, as a lot of MeshCore information is spread around the interwebz, so there is a lot to link to.
Posted in Development, Hardware, IoT Internet of Things, LoRa - Long Range wireless communications network, Network-and-equipment, Power User, Python, Scripting, Software Development, Solar Power | Tagged: 2, amstelland, analyser, bollenstreek, bot, burgernet, hamradio, kennemerland, leiden, meshcore, nl, noodkanaal, pingbot, test | Leave a Comment »
Some notes on the The Internet Archive command-line interface (CLI) and Python API tools
Posted by jpluimers on 2026/05/20
Few people realise that in addition to uploading through the Internet Archive web user interface at [Wayback/Archive] Upload to Internet Archive, you can also upload through the command-line.
Fewer people know using the CLI is more reliable, as the web UI often has trouble with recovery from upload interruptions (but it is better than the Wayback Machine archiver which seems to have no recovery options at all).
Jason Scott responded to a really rude comment of an uploader, but the Internet Archive does not really advocate the CLI uploader much. I added a comment, but doubt that has changed: it regrettably is an organisation that has a track record of being quite reluctant to publicly show improvement.
The whole thread is at [Wayback/Archive] Post by @textfiles.com — Bluesky: Regarding large-size uploads, especially over, let’s say, 750mb to the Internet Archive, I highly suggest the ia command-line client, which has a separate pathway not dealing with weird browser oddities and behavior.… and archived for posterity.
TL;DR
- you can batch upload to the base Internet Archive
- you cannot batch upload to the Wayback Machine of the internet archive
First, a list on how you can find the CLI tooling the normal way:
Posted in Development, Python, Scripting, Software Development | Leave a Comment »
Online tools to test JSONPath Queries (plus a small list of Amazon top level domains)
Posted by jpluimers on 2026/04/15
I wanted to parse some JSON being sent back during an XMLHttpRequest (what a wrongly named call is that!) of which I grabbed the content using the web development tools of my Chromium based browser.
Input
I got this list of amazon top level domain names from research I did for my blog post Download your Kindle books soon, because Amazon will block them after February 25, 2025 . The source is [Wayback/Archive] Amazon operating domains by country. · GitHub [Wayback/Archive] in the file amazon-domains.json:
{
"us": "https://www.amazon.com",
"uk": "https://www.amazon.co.uk",
"ca": "https://www.amazon.ca",
"de": "https://www.amazon.de",
"es": "https://www.amazon.es",
"fr": "https://www.amazon.fr",
"it": "https://www.amazon.it",
"jp": "https://www.amazon.co.jp",
"in": "https://www.amazon.in",
"cn": "https://www.amazon.cn",
"sg": "https://www.amazon.com.sg",
"mx": "https://www.amazon.com.mx",
"ae": "https://www.amazon.ae",
"br": "https://www.amazon.com.br",
"nl": "https://www.amazon.nl",
"au": "https://www.amazon.com.au",
"tr": "https://www.amazon.com.tr",
"sa": "https://www.amazon.sa",
"se": "https://www.amazon.se",
"pl": "https://www.amazon.pl"
}
The list is far from complete, so tomorrow I will post some more sources in Some pages that have lists of Amazon toplevel domains.
The queries and results show you that the original JSONPath (2007) and its RFC 9535 definition (2024, just 2 years ago) do not support getting the key names of the above list the ~ part in the first query below fails, and only the second query works.
This means that finding the right tooling is important.
Example
Posted in Conference Topics, Conferences, Delphi, Development, Event, JavaScript/ECMAScript, JSON, JSONPath, PHP, Python, Scripting, Software Development, TypeScript, Web Development | Tagged: 2852 | Leave a Comment »
Some links on non-official Ring API libraries and tools
Posted by jpluimers on 2026/03/26
There is no official Ring API. But there are libraries and tools around that can talk to a Ring ecosystem, mostly written in JavaScript or Python.
Some links I found:
Posted in *nix, *nix-tools, cURL, Development, Hardware, IoT Internet of Things, JavaScript/ECMAScript, Network-and-equipment, Power User, Python, Ring Doorbell/Chime (Amazon), Scripting, Software Development | Leave a Comment »
nvaccess/nvda: NVDA, the free and open source Screen Reader for Microsoft Windows
Posted by jpluimers on 2026/03/25
On my research list: [Wayback/Archive] nvaccess/nvda: NVDA, the free and open source Screen Reader for Microsoft Windows
A bit more background is in NonVisual Desktop Access – Wikipedia
NonVisual Desktop Access (NVDA) is a free and open-source, portable screen reader for Microsoft Windows. The project was started by Michael Curran in 2006.
NVDA is programmed in Python. It currently works exclusively with accessibility APIs such as UI Automation, Microsoft Active Accessibility, IAccessible2 and the Java Access Bridge, rather than using specialized video drivers to “intercept” and interpret visual information. It is licensed under the GNU General Public License version 2.
It opens a ton of possibilities to use during software development for instance for automation or GUI testing.
It is an open source alternative for JAWS (screen reader) – Wikipedia.
Via this remark in [Wayback/Archive] Angrynerds 086 – Gone in 37 minutes – YouTube (around the 29:30 and 30:30 time marks)
#08 Windows11 gaat 32bit systemen kapotslopen. Dat is niet leuk voor bepaalde toegankelijksopties.
–jeroen
Posted in C++, Development, Python, Scripting, Software Development, Testing | Leave a Comment »





