The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Development’ Category

0x00 – Introduction to Windows Kernel Exploitation //

Posted by jpluimers on 2025/05/27

On my reading list (plus read/watch the links it mentions): [Wayback/Archive] 0x00 – Introduction to Windows Kernel Exploitation // by [Wayback/Archive] wetw0rk (@wetw0rk_bot) / X ([Wayback/Archive] wetw0rk.github.io).

Hopefully by now, more episodes have been published.

Links from this one, including archived versions split in the same sections as the above article:



Via [WaybackSave/Archive] Alex Plaskett on X: “0x00 – Introduction to Windows Kernel Exploitation by @wetw0rk_bot …”.

--jeroen

Posted in Development, Infosec (Information Security), Red team, Security, Software Development | Tagged: | Leave a Comment »

Naming things isn’t hard: if it contains a number, include the unit in the name (your timeout might not be in nanoseconds)

Posted by jpluimers on 2025/05/27

This case, it was C# accessing a SQL back-end, but the responses to the Tweet how so many more examples not even related to software development.

Remember that plane crashing because they overloaded while they thought the fuel load numbers were in Imperial pounds where in fact they were in metric kilograms?

That’s why naming things that contain numbers should contain the unit in their name!

Related blog post: Watch “Felienne Hermans: How patterns in variable names can make code easier to read” on YouTube

Tweet: [Wayback/Archive] Nick Craver on Twitter: “Troubleshooting a hanging test suite and godDAMMIT. “In seconds”. Integer timeouts should be a felony offense punishable by an indeterminate amount of seconds/milliseconds/hours/fortnights/whatever the judge chooses.”

var csb = new SqlConnectionStringBuilder(TestConfig.Current. SQLServerConnectionString){ ConnectTimeout = 2000 }; int SqlConnectionStringBuilder.ConnectTimeout { get; set; } Gets or sets the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. Returns: The value of the SqlConnectionStringBuilder, ConnectTimeout property, or 15 seconds if no value has been supplied.

var csb = new SqlConnectionStringBuilder(TestConfig.Current. SQLServerConnectionString) { ConnectTimeout = 2000 }; int SqlConnectionStringBuilder.ConnectTimeout { get; set; } Gets or sets the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. Returns: The value of the SqlConnectionStringBuilder, ConnectTimeout property, or 15 seconds if no value has been supplied.

Read the rest of this entry »

Posted in .NET, Agile, C#, Code Quality, Conference Topics, Conferences, Database Development, Development, Event, Software Development, SQL, SQL Server, Systems Architecture | Leave a Comment »

Electronic Basics by GreatScott! – YouTube

Posted by jpluimers on 2025/05/22

[Wayback/Archive] Electronic Basics by GreatScott! – YouTube

At the time of writing these were some 60 videos each 5-15 minutes long in reversed order (#1 at the bottom, #61 at the top).

This means it is about 10 hours of watching time well worth it.

--jeroen

Posted in Development, Electronics Development, Hardware Development | Tagged: | Leave a Comment »

Online .NET source code browsers for both .NET Framework and .NET Core

Posted by jpluimers on 2025/05/22

I used these .NET Source Browsers quite few times over the last decade, first for the .NET Framework and later for .NET Core (now called .NET, sometimes .NET Runtime) as well, but forgot to blog about them, so now that I discovered there is one for the Roslyn Compiler Platform as well, let’s list them all:

It was introduced as [Wayback/Archive] referencesource-beta.microsoft.com by [Wayback/Archive] A new look for .NET Reference Source – .NET Blog which explains how to use it for browsing (on-line and off-line), Visual Studio integration, debugging, and more. In about a month however it got out of beta and became the primary as it functioned so well (you can verify this while browsing through the 2014 Wayback links).

All are powered by [Wayback/Archive] KirillOsenkov/SourceBrowser:

Read the rest of this entry »

Posted in .NET, .NET 4.8, .NET Core, .NET Framework, C#, Development, Software Development | Leave a Comment »

GitHub – LaurieWired/Malimite: iOS and macOS Decompiler

Posted by jpluimers on 2025/05/21

Will likely need this one day: [Wayback/Archive] GitHub – LaurieWired/Malimite: iOS and macOS Decompiler

--jeroen

Posted in Development, iOS Development, ObjectiveC, Software Development, Swift | Leave a Comment »

Podcast with @mattgodbolt of godbolt.org fame, on among other things becoming a verb, 6502s, exploring compilers, and application binary interfaces.

Posted by jpluimers on 2025/05/21

From a while ago: [Wayback/Archive] Kristian Köhntopp on Twitter: “embedded.fm/episodes/334 Embedded.fm  with @mattgodbolt of godbolt.org  fame, on among other things becoming a verb, 6502s, exploring compilers, and application binary interfaces.”

Read the rest of this entry »

Posted in .NET, C#, C++, Development, FreePascal, Pascal, Software Development | Leave a Comment »

Debugging Win32 binaries in Ghidra via Wine

Posted by jpluimers on 2025/05/20

For my link archive: [Wayback/Archive] Debugging Win32 binaries in Ghidra via Wine

[Wayback/Archive] Ghidra is a cross-platform reverse-engineering and binary analysis tool, with recent versions including support for dynamic analysis. I want to try using it as a replacement for IDA Pro in reverse-engineering of Win32 binaries, but hit bugs related to address space detection when running gdbserver with Wine ([Wayback/Archive] ghidra#4534).

This post contains custom GDB commands that allow Ghidra to query the Linux process ID and memory maps of a Win32 target process running in 32-bit Wine on a 64-bit Linux host.

Via [Wayback/Archive] Ptrace Security GmbH on Twitter: “Debugging Win32 binaries in Ghidra via Wine #Pentesting #Debugging #CyberSecurity #Infosec”.

--jeroen

Posted in Debugging, Development, Software Development, Windows Development | Tagged: , , , | Leave a Comment »

Exceptions and DLL in Delphi – Stack Overflow

Posted by jpluimers on 2025/05/20

Every once in a while I discover an answer I have not yet put on my blog, especially as related answer are always interesting.

This is one that didn’t make it until now: [Wayback/Archive] Exceptions and DLL in Delphi – Stack Overflow (thanks [Wayback/Archive] jpfollenius, [Wayback/Archive] Deltics and [Wayback/Archive] Lars Truijens)

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development, Undocumented Delphi, Windows Development | Leave a Comment »

Yes, you can globally block JavaScript and enablpe per-site, but you block Bookmarklets too

Posted by jpluimers on 2025/05/16

Trying to trim down excessive CPU usage of my web browsers, and lessen the risk of intrusion, I experimented with globally disabling JavaScript and only enabling it on sites where it adds value to me.

That is possible (see below), but immediately showed a big side effect: Bookmarklets will not work on sites that have JavaScript disabled.

Disabling JavaScript globally only allows Bookmarklets on sites where you have enabled JavaScript. Not the situation I hoped for (:

I’ll try it for a while though.

Read the rest of this entry »

Posted in Bookmarklet, Chrome, Chrome, Development, Firefox, Google, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

My first computer, which I bought way after my first programming contest

Posted by jpluimers on 2025/05/15

1988: my first computer

Earlier this year, I found back the ad on the right of the first computer it bought including monitor: at JWC Computers in The Hague¹ where after the the warranty period was over I found out the 16 Mhz 286 processor was a 12 Mhz configured with zero wait state. Luckily I could exchange the VGA card which wasn’t really compatible with a more compatible one.

The machine really boosted my software career and made me start my own company in august 1989 at age 20.

The start of the career however was about a year after attending this programming contest:

Using the computers at university, I showed off some more Turbo Pascal things I created (including a graphical mouse cursor in text-mode²) right after the CP/M and CP/M-86 support was dropped in favour of DOS at the end of the combined Turbo Pascal CP/M and DOS versions. Hello Turbo Pascal 4 with units³, .EXE support, new IDE and new-style manuals, Turbo Pascal 5.0 with integrated debugger, Turbo Pascal 5.5 with objects, Turbo Pascal 6.0 with Turbo Vision and MDI, and Turbo Pascal version 7.0 with DPMI and Windows support (the last two in Borland Pascal; and Windows support also separately available in the OWL based Turbo Pascal for Windows 1.0 and 1.5) sharing the same DLL and DOS Extender support system, syntax highlighting.

1986: my first and only programming contest

I found back JWC computers a few days after finding back my first ever computer programming contest in 1986 [Wayback/Archive] Jeroen Wiert Pluimers: “@bert_hubert @ionica Jullie …” – Mastodon

Bij Micro Masters Holland in 1986 ging het dus al om de UI en niet om de inhoud (:
In educatieve software bleek toen al nauwelijks brood te verdienen.
Misschien als ik toen @WGAvanDijk gekend had…

Followed by [Wayback/Archive] Jeroen Wiert Pluimers: “@bert_hubert @ionica @WGAvanDi…” – Mastodon

Oh kijk: het andere interview van Nico Baaijens (Paul van der Bijl van het vorige interview teruggevonden op Twitter: @paulvdb)

Wat wist ik toen al veel en weinig tegelijk.

Dat is niet heel veel veranderd (:

That contest was a result of The calculators that got me into programming (via: calculators : Algorithms for the masses – julian m bucknall).

I was quite good at Turbo Pascal programming, which landed my first freelance gigs and led me – after FORTRAN and x86 assembly language side-steps – to Delphi, C# and many scripting languages on many platforms. Of course DOS, Windows and OS/2, but also VAX/VMS, BSD (including MacOS, SunOS and the migration of the latter from BSD to SVR4), HP UX, AS/400, AIX, and of course Linux including embedded varieties of some.

There is remarkably little information about Micro Masters Holland via Google Search, but other searches have more results. From those, my conclusion is that the contest ran at least 3 times. Below some articles grouped by the years it ran.

Micro Masters Holland 1984

Micro Masters Holland 1985

Micro Masters Holland 1986

Micro Masters Holland 1987

Micro Masters Holland generic

Interviews with me about Micro Masters Holland

The full article by Paul van der Bijl from [Wayback/Archive] Leidse Courant | 21 mei 1986 | pagina 13 – Historische Kranten, Erfgoed Leiden en Omstreken

Did you spot the image behind the lamp. Yup: Karateka – a game I loved and still do. Thanks Jordan Mechner for creating that!

The full article by Nico Baaijens (also interviewing Jos de Klerk who now works at Settels Savenije) from [Wayback/Archive] Algemeen Dagblad » 17 mei 1986 – Art. 227 | Delpher

The insert on the top right is about addiction. Even back then I thought that wording was too strong: it is an addiction when things run out of hand. Looking back, it never really did. The time spent programming was a combination of passion and avoiding my mom. Only much – at age 50 – I found out the cause for that: she had been narcissistic since her youth and kept pushing me beyond my limits to compensate for the shortcomings of my mentally retarded brother. That was the real problem and combined with my autism and skills the reason I ended up in IT: a kind of mental safe space.

--jeroen


Footnotes

¹ [Wayback/Archive] Jeroen Wiert Pluimers: “… Thuis dus niet aan de orde: mijn eerste PC was een bij elkaar verdiende 286 van JWC op de LvM in Den Haag. Dat waren afzetters, dan die 16 Mhz was een 12 Mhz op zero wait-state. De advertentie net terggevonden op aan de p…” – Mastodon

JWC computers advertisement picture from:

Way more of their ads: [Wayback/Archive] Resultaten | Delpher: jwc computers

A tiny bit of history on them in the replies of a blog post describing a very similar store: [Wayback/Archive] Weans, Den Haag – blafhert

Weans & sunshine zijn een en de zelfde, op een gegeven moment (bijna tegen het einde) kwam er nog een filiaal & kantoor bij in de Pasadena in den haag. Dit was de “groothandel” hier kochten bedrijven zoals DES en King computers (wie kent die nog) hun spullen.

Owja Weans staat idd voor we are not stupid.

Die ene Marc, heeft in een veel later stadium in onze organisatie gewerkt, dat was bij EURO P.C. met vestingen op de segbroeklaan en 2 in de fahranheitstraat,het klopt wel dat ook dit een vestiging was van Sunshine N.V.
Onze holding is begonnen met computerverkoop in 1983 !!!, onder de naam EPC ,JWC computers , Necom en RE-Paco. met 5 vestigingen in den haag en 1 in Rotterdam, spectaculaur was onze vestiging in de weimarstraat te den haag waar een omzet
op zaterdag gerealiseerd werd van 1 MLN, het einde van deze vestiging is geweest een overtreding van BUMA er werden namelijk firenzo DOS bij een systeem geleverd welke uitstluitend geleverd mocht worden bij FIRENZO systemen.

Dat weans geen belasting betaalde is niet juist het bedrijf is ten onder gegaan door het opstarten van een memory fabriek in nederland en zoedoende alleen grondstoffen te hoeven importeren om zodoende de anti dumpheffing te ontlopen, die in die tijd 60% was, wij kregen een navordering van 150 MLN voor in ogen van overheid ontdoken invoerrecht, uit eindelijk heb ik de bete afgekocht voor 32 mln.

Ik blijf de verhalen van Jan hier boven hilarisch vinden. 90% een leugen. Heb er bijna 3 jaar gewerkt tot aan het bezoek van de FIOD. Bleek bij het GAK dat er voor het personeel nooit iets was afgedragen, terwijl wij dachten van wel. Jan was een briljant zakenman, kon iedereen oplichten waar je bij zat, draaide vele BTW carrousels en verdiende zich scheel. Maar ieder woord uit zijn mond was meestal onzin om zijn handel te verkopen.
Toch kijk ik met veel plezier terug op de tijd dat ik daar gewerkt heb.

² It was cool to see a similar solution mentioned at [Wayback/Archive] mouse – Graphics Cursor in Assembly – Stack Overflow.

³ A unit like modules concept was already in the beta version of the never Borland released Turbo Modula-2 later released as

Images

Queries

Posted in About, Development, Pascal, Personal, Software Development, Turbo Pascal | Leave a Comment »