P
Paul O'Leary McCann
dampfkraft.com · Personal blog · on HN since 2016
Paul O'Leary McCann, a developer in Japan, writes about Japanese text processing, Unicode quirks, and Japanese games and life there.
What HN saysHN commenters recommend his postal CSV parsing write-up and his piece on Unicode ghost characters, and cite them in related threads.
17HN people shared it
7linked it in comments
44stories submitted
2.1Kstory points
3 months agolast shared
2016people per year2026
Most-shared posts
- 1A Spectre is Haunting Unicode10 people · 950 points · first shared 2018 · 180 comments on HN
- 2Parsing the Infamous Japanese Postal CSV3 people · 170 points · first shared 2020 · 40 comments on HN
- 3Japanese Play-by-Postcard RPGs: Net Games (2017)3 people · 103 points · first shared 2019 · 33 comments on HN
- 4A Spectre is Haunting Unicode (2018)3 people · 22 points · first shared 2018 · 1 comments on HN
- 5Gamer Janken, or How to Pick a First Player2 people · 35 points · first shared 2020 · 17 comments on HN
- 6How I got my Japanese permanent residency1 people · 198 points · first shared 2020 · 178 comments on HN
- 7Kanji Club: Search Kanji by Parts with Instant Feedback1 people · 97 points · first shared 2021 · 47 comments on HN
- 8A Field Guide to Japanese Mojibake1 people · 72 points · first shared 2021 · 5 comments on HN
- 9How to Make a User with a Numeric Username in Linux (2014)1 people · 68 points · first shared 2019 · 11 comments on HN
- 10What Color Is Khaki, Anyway?1 people · 65 points · first shared 2019 · 41 comments on HN
- 11A Short History of Romaji1 people · 62 points · first shared 2020 · 45 comments on HN
- 12How to tokenize Japanese in Python1 people · 59 points · first shared 2020 · 20 comments on HN
- 13Why Is Money in Asia Circles?1 people · 50 points · first shared 2019 · 8 comments on HN
- 14Cutlet: A Japanese to Romaji Converter in Python1 people · 42 points · first shared 2020 · 46 comments on HN
- 15Tokyo’s Lion Cafe in Audio Magazine1 people · 35 points · first shared 2020 · 5 comments on HN
What HN people wrote when they linked it
unscaled · 2025-01-11
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…
lyall · 2025-05-29
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
colinchartier · 2023-08-25
Reminds me of the ghost Unicode character saga: https://www.dampfkraft.com/ghost-characters.html
shadowgovt · 2022-09-19
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
alexpotato · 2022-07-14
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.
polm23 · 2021-05-21
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.htm…
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.
hardmaru · 2018-11-01
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