Paul O'Leary McCann, a developer in Japan, writes about Japanese text processing, Unicode quirks, and Japanese games and life there.
HN commenters recommend his postal CSV parsing write-up and his piece on Unicode ghost characters, and cite them in related threads.
FreePascal/Delphi and VB6 are entirely different beasts. For one, FreePascal and Delphi are still under development. Delphi had the following language features added since 1998 (this is just a small selection):
Extension methods/properties ("class helpers"), generics, enum types, for..in loops, static methods, closures, smart pointers, value types ("records"[1]), attributes, variables can be declared anywhere (removing Pascal's limitation), type inference, multiline strings.
Besides all of this, modern Delphi can compile code for Windows, Linux and Mac, as well as Android and iOS. It seems like there's even a cross-platform library for writing apps that can run on both Mobile and Desktop called FireMonkey.
VB6, on the other hand, is a language frozen in time. It never supported any other platform than 32-bit Windows[2]. It only really works on the new Microsoft Surface Laptops thanks to emulation, but I can also run Nintendo 8-bit games on a Surface Pro 11 using an emulator — that doesn't say much.
Unicode support is also a mess. VB6 always used Unicode internally, but this was implementing during the UCS-2 heyday (so you need hacks to use Emoji for instance). Worse yet, is that VB6 was never really designed to run natively on Windows NT, so it's mostly using using the XxxYyyA family of APIs instead of the XxxYyyW family of APIs. This means that you can only display text in a non-English writing if your system's ANSI codpeage is set to that language (in the past you had…
There's a career path to get there. It involves becoming someone who cares deeply about the ways and means of digitizing data stored in analog media. Drill down deep enough, and you'll find yourself in a fascinating world of coding an error.
There are things like the "ghost characters," which are codepoints in Japanese that map to characters that were basically transcription errors when the team was putting together a full set of Kanji. Some characters with an extra horizontal line snuck into the set; they were likely caused by a transcription error because the character got split onto two pieces of paper by lines of text being copy-pasted into a records book, and the shadow cast by the thin extra layer of paper was misinterpreted as another stroke.
https://www.dampfkraft.com/ghost-characters.html
PyPI will not host large models, those have to be hosted externally. I had to deal with that before and wrote about that here.
https://www.dampfkraft.com/code/distributing-large-files-with-pypi.html
As another reply mentioned, the main things PyPI hosts are compiled extension libs. Sometimes these result in giant 300MB binary files, but more often what happens is you have many versions of a ~20MB file due to the combinations of OS, Python version, and API version.
This article reminds me of the Unicode Japanese "Ghost" characters: https://www.dampfkraft.com/ghost-characters.html
Long story short:
Someone entered some characters erroneously in the Unicode spec and now those characters are there FOREVER.
There was also a nice discussion about Ghost Kanji a few months back:
https://news.ycombinator.com/item?id=17637375
A spectre is haunting unicode:
https://www.dampfkraft.com/ghost-characters.html
Good opportunity to repost this gem: "Parsing the Infamous Japanese Postal CSV" https://www.dampfkraft.com/posuto.html
HN discussion: https://news.ycombinator.com/item?id=25023673