Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    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.

    Visit blogRSSHN submissions
    ProgrammingCulture & Society
    What HN says

    HN commenters recommend his postal CSV parsing write-up and his piece on Unicode ghost characters, and cite them in related threads.

    Stats for nerds
    17HN people shared it
    44linked in comments
    2.1Kstory points
    May 2025last shared
    2018people per year2025

    Top posts on HN

    1. 1
      A Spectre is Haunting Unicode
      10 people · 950 points · first shared 2018 · 180 comments on HN
    2. 2
      How I got my Japanese permanent residency
      1 person · 198 points · first shared 2020 · 178 comments on HN
    3. 3
      Parsing the Infamous Japanese Postal CSV
      3 people · 170 points · first shared 2020 · 40 comments on HN
    4. 4
      Japanese Play-by-Postcard RPGs: Net Games (2017)
      3 people · 103 points · first shared 2019 · 33 comments on HN
    5. 5
      Kanji Club: Search Kanji by Parts with Instant Feedback
      1 person · 97 points · first shared 2021 · 47 comments on HN
    6. 6
      A Field Guide to Japanese Mojibake
      1 person · 72 points · first shared 2021 · 5 comments on HN
    7. 7
      How to Make a User with a Numeric Username in Linux (2014)
      1 person · 68 points · first shared 2019 · 11 comments on HN
    8. 8
      What Color Is Khaki, Anyway?
      1 person · 65 points · first shared 2019 · 41 comments on HN
    9. 9
      A Short History of Romaji
      1 person · 62 points · first shared 2020 · 45 comments on HN
    10. 10
      How to tokenize Japanese in Python
      1 person · 59 points · first shared 2020 · 20 comments on HN

    What HN people wrote when they linked it

    • unscaledJan 2025

      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…

    • shadowgovtSep 2022

      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

    • polm23May 2021

      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.

    • alexpotatoJul 2022

      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.

    • hardmaruNov 2018

      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

    • lyallMay 2025

      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

    Related

    Patrick McKenziekalzumeus.com1.1k people

    Don't Call Yourself a Programmer

    Patrick McKenzie
    Personal · last shared 2026
    Paul Grahampaulgraham.com5.1k people

    Do Things that Don't Scale

    Paul Graham
    Personal · last shared 2026
    Paul Chiusanopchiusano.github.io86 people

    The internet has made defensive writers of us all

    Paul Chiusano
    Personal · last shared 2025
    Chris Learyblog.cdleary.com17 people

    Understanding JIT spray

    Chris Leary
    Personal · last shared 2017
    Paul Irishpaulirish.com127 people

    * { box-sizing: border-box } FTW

    Paul Irish
    Personal · last shared 2025
    James Hagueprog21.dadgum.com472 people

    Things That Turbo Pascal is Smaller Than

    James Hague
    Personal · last shared 2026
    patorjkpatorjk.com72 people

    Code theft: Asciimo: Where have I seen this before?

    patorjk
    Personal · last shared 2026
    Peter-Paul Kochquirksmode.org266 people

    Web vs. native: let’s concede defeat

    Peter-Paul Koch
    Personal · last shared 2026