Author Archive
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 »
Posted by jpluimers on 2025/04/16
From a few years back when Lightning debugging cables were either expensive, hard or not to get at all: [Wayback/Archive] DEF CON 30 – stacksmashing – The Hitchhacker’s Guide to iPhone Lightning and JTAG Hacking – YouTube.
Basically it is a Raspberry Pi Zero with adapted firmware connected to half a lightning extension cable.
A textual description (I wish it was linked from the above video) is at [Wayback/Archive] stacksmashing – The hitchhacker’s guide to iPhone Lightning & JTAG hacking – DEF CON Forums, which in turn refers to:
Read the rest of this entry »
Posted in Development, Hardware Development, iOS, iPhone, Power User, Red team, Security | Tagged: checkm8 | Leave a Comment »
Posted by jpluimers on 2025/04/15
Empirically, these are show the same behaviour where “command 2″and “command 3″are documented, but still present a lot as the only solution in blog posts and help sites:
git config commands
command 1: list |
command 2: --list |
command 3: -l |
what config is shown |
git config list --local |
git config --list --local |
git config -l --local |
--local config for current repository |
git config list --global |
git config --list --global |
git config -l --global |
--global config for the current user |
git config list --system |
git config --list --system |
git config -l --system |
--system config for all users |
git config list |
git config --list |
git config -l |
all 3 levels of config combined, for convenience
without telling which configuration setting is on which level |
Based on [Wayback/Archive] git config: list all variables and their default values – Stack Overflow (thanks [Wayback/Archive] Matteo Meil): Read the rest of this entry »
Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management, Versioning | Leave a Comment »