Author Archive
Posted by jpluimers on 2025/04/23
A while ago, I needed to investigate reboot events on some Windows 10 systems. I wanted to use the console instead of the eventvwr GUI Event Viewer.
There is a tool for that called wevtutil which – like eventvwr – uses XPath query parameters and produces XML output.
Postprocessing XML can be a thing, but since .NET has great XML support, you can use PowerShell for that (which for me often is way easier than going the XSLT route, for instance because Windows lacks built-in console XSLT tooling).
Based on the help and the below links, my query command then on these machines turned out to be this: Read the rest of this entry »
Posted in Batch-Files, CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development, XML, XML/XSD, XPath, XSLT | Leave a Comment »
Posted by jpluimers on 2025/04/22
Waar velen al over waarschuwden gebeurt ook in het Nederlandstalige gebied: AI-gegenereerde web-pagina’s komen hoog in de zoekresultaten en vervuilen daarmee Large Language Models van nieuwe AI-tools.
Voorbeelden die ik tegenkwam:
Ze zijn echt heel makkelijk te ontkrachten, ondanks dat de tekst er heel mooi en netjes uitziet: de inhoud klopt gewoon, en juist dat de tekst er zo mooi en netjes uitziet maakte het voor mij verdacht.
De eerste site is het oude domain van [Wayback/Archive] Baarnse Onafhankelijke Partij wat al heel snel na het opheffen van die partij (zie Baarnse Onafhankelijke Partij – Wikipedia) werd overgenomen.
De domains behoren beide tot SEO sites.
Queries die zowel laten zien hoe hoog sommige pagina’s komen als hoe eenvoudig hun inhoud te ontkrachten is:
--jeroen
Posted in AI and ML; Artificial Intelligence & Machine Learning, Development, LLM, Software Development | Leave a Comment »
Posted by jpluimers on 2025/04/22
From a long time ago, but the (impressive!) leaderboard still has the same order (the Rust implementation did get faster!).
[Wayback/Archive] Towards Inserting One Billion Rows in SQLite Under A Minute – blag
Recently, I ran into a situation where I needed a test database with lots of rows and needed it fast. So I did what any programmer would do: wrote a Python script to generate the DB. Unfortunately, it was slow. Really slow. So I did what any programmer would do: went down the rabbit hole of learning more about SQLite, Python, and eventually Rust… in my quest to get a 1B row database under a minute. This blog post is a summary of this fun and educational exercise.
Repository at [Wayback/Archive] avinassh/fast-sqlite3-inserts: Some bunch of test scripts to generate a SQLite DB with 1B rows in fastest possible way
Leaderboard
(for 100M insertions)
| Variant |
Time |
| Rust |
23 seconds |
| PyPy |
126 seconds |
| CPython |
210 seconds |
Via: [Wayback/Archive] Shawn Wildermuth #000000 { lives: matter; } 🇺🇦 on Twitter: “Towards Inserting One Billion Rows in SQLite Under A Minute””
--jeroen
Read the rest of this entry »
Posted in Database Development, Development, SQLite | Tagged: 000000 | Leave a Comment »
Posted by jpluimers on 2025/04/21
Use this guide only as a last resort: [Wayback/Archive] BMW E61 Trunk Leak – Sunroof Drain Failure – 2004-2010 5 Series Wagon.
Try first to remove any debris from the drains from the panoramic sunroof/moonroof side or remove the valve with grommet at the lowest end. Some YouTube video’s explain how to do that.
It looks like a sunroof often has front drain holes clogged and a panoramaroof often the back drain holes; where it leaks depends how your car is tilted while parked.
You might want to move the electronics that are in the well under the spare wheel to the left hand side of the trunk.
Furthermore, the electric cabling on the E61 that runs underneath the hinges of the trunk and trunk window mechanisms tend to break over time causing all kinds of electrical issues.
A list related to those first:
Read the rest of this entry »
Posted in cars, E61 530xd touring, LifeHacker, Power User | Leave a Comment »
Posted by jpluimers on 2025/04/18
I wonder how well [Wayback/Archive] H3/H2 Net Card – ODROID is supported by pfSense. It is an M.2 based PCIe network card that adds 4 ethernet ports of 2.5 gigabit each to an ODROID H2 or H3 series (so you have 6 ports total), ideal for some hefty router.
Pictures (from the above link) of the board, cases and mainboard below.
But first: Realtek NICs is not vendor supported on FreeBSD (which pfSense and OPNsense are based on).
Read the rest of this entry »
Posted in *nix, BSD, Ethernet, FreeBSD, Hardware, Network-and-equipment, pfSense, Power User, routers | Tagged: homelab, serverbuilds | Leave a Comment »
Posted by jpluimers on 2025/04/16
Just in case I ever think “oh, I might try want to go the Variadic function arguments way in Delphi” again, I must remember “maybe not a good idea” and re-read these posts:
- [Wayback/Archive] Variadic function – Wikipedia which in C is implemented with in [Wayback/Archive]
varargs.h – Wikipedia (now in [Wayback/Archive] stdarg.h – Wikipedia) with the identifiers va_list, va_start, va_arg, and va_end.
- [Wayback/Archive] Delphi “array of const” to “varargs” – Stack Overflow with great insights from former Delphi compiler developer [Wayback/Archive] Barry Kelly.
- [Wayback/Archive] E2591 Only
cdecl functions may use varargs (Delphi) – RAD Studio (I already knew this, but it is good to have that bit linked here as well)
- [Wayback/Archive] gmp-wrapper-for-delphi/gmp_lib.pas at master · EricGrange/gmp-wrapper-for-delphi · GitHub with an example how
varargs support got introduced in Delphi 6: for external cdecl functions.
- [Wayback/Archive] Rudy’s Delphi Corner – Pitfalls of converting (still *the* reference article on translating C/C++ headers to Delphi) has this on
varargs:
Fortunately, since Delphi 6, you can declare external functions like wsprintf using the varargs directive.
- [Wayback/Archive] How to create a Delphi variadic method similar to Write/Writeln without requiring brackets for arguments? – Algorithms, Data Structures and Class Design – Delphi-PRAXiS [en] has a nice 64-bit Delphi example using the undocumented Delphi identifiers
TVarArgList, VarArgStart, VarArgGetValue, and VarArgEnd.
Note that this example, despite the description indicates it is, it is actually not varargs by array of const (which requires using TVarRec as under the hood it is an open array of TVarRec): [Wayback/Archive] How to create functions that can accept variable number of parameters such as Format().
Then some Free Pascal links, which is different from, but also similar to Delphi:
Queries:
--jeroen
Posted in .NET, C, C#, Delphi, Development, FreePascal, Pascal, Software Development | Leave a Comment »