News for hackers. Stuff that matters.

maenbalja

Re:中文 Literacy Speedrun II: Character Cyclotron on Friday April 17, 2026 @12:41PM (#47807842)
haha nice to meet you here too, thanks for enjoying it!
Re:中文 Literacy Speedrun II: Character Cyclotron on Friday April 17, 2026 @08:17AM (#47805096)
I liked the 10% @@@ example, demonstrated their point pretty well.

Also for anyone who speaks or is currently learning Chinese... I've been working on a multiplayer CJK word game that shares a similar efficient brute force style of learning to the author's approach (although presented via gameplay instead of tooling). Every turn you get a random character and must type in a word that contains the char in ANY position. If you like fast paced word games it might be up your alley: https://danobang.com/?game_lang=cmn

No signup is required! You can jump right into a match with friends or a CPU: https://danobang.com/

You can think of Danobang[0] like a more flexible version of shiritori (a popular word chain game from Japan with similar variants existing in Korea and China). Each turn players are given a random character prompt and must type a word that includes it in ANY position.

Examples:

- Chinese (simplified): If prompt is "爱", then possible answers could be "可爱", "爱好", "恋爱", etc

- Japanese: If prompt is "ゆき" then possible answers could be "ゆきだるま", "こゆき", "はつゆき", etc

- Korean: If prompt is "사" then possible answers could be "사랑", "회사", "이사하다", etc

When joining a match you must choose both the language and "prompt type" you want to play with. Korean has hangul, choseong (initial consonant), and hanja. Japanese has kana and kanji. Chinese has hanzi simplified and hanzi traditional. For CJK prompt types players can submit words with either phonetic input (hangul, kana, pinyin, jyutping) or CJK input via an IME.

There's also an "alphabet bonus" mechanic where if you collect all phonetic characters for the respective language you're playing in (hangul jamos, kana, pinyin initials, jyutping initials) you earn an extra life. I've found this helps makes games feel more dynamic.

Many configurable settings are available in custom rooms to further cater your experience (timer length, prompt difficulty, prompt rotation behaviour, etc). I've also added preset difficulties for popular language proficiency tests (namely JLPT and HSK) which language learner players have seemed to enjoy.

As for the why... I originally built Danobang to practice Korean with my family in a more playful manner (I'm Korean-Canadian with questionable fluency), but I became curious if the mechanics could work with a logographic writing system like Chinese and sought out to try. I spent a lot of time learning Japanese and kanji specifically which helped build my mental model of how CJK characters work in each language. Namely the core concept of phonetic reading text (furigana, pinyin, jyutping, hangul) vs CJK meaning text (kanji, hanzi, hanja) was instrumental for implementing CJK game modes in a modular fashion.

I would say the biggest challenges of this project were (in no particular order) multiplayer infra, figuring out the right CJK abstractions, learning a new language, and design.

Any feedback at all is appreciated! The site is still a work in progress and the dictionaries[1] are far from being "complete" so there'll likely be a few rough edges here and there.

[0] The name "Danobang" has Korean origins with the sound "dano" meaning "word" in Korean (단어). The "bang" part is meant to be onomatopoeia, but also happens to mean "room" in Korean.

[1] Shoutout to krdict, stdict, JMDict, CC-CEDICT, and CC-Canto for helping populate the initial dictionary. You can check out the "about" page for direct links: https://danobang.com/about

Ask HN: Anyone seeing GitHub action timeouts?

My Github actions started failing today because the "Set up job" step that downloads action libraries was timing out.When I tried directly installing the library via curl from both my local machine and my vps, the download times were both very slow (relative to before). The internet speed on these machines are otherwise fine so I'm not sure what's going on. curl -L...

( Read More... | 1 comment | on HN )

Ask HN: How to disable Android keyboard word prediction on websites?

I'm making a word game site and I noticed on Android keyboards that word predictions/suggestions appear on top of the keyboard despite me setting `autoCorrect` and other related input props to "off" (which seems to work for ios).``` <input type="text" autoComplete="off" autoCapitalize="off" autoCorrect="off" spellCheck={false} /> ```I'd prefer not creating a custom javascript...

( Read More... | no comments | 2 points | on HN )
Alright I'm sold haha. You basically described the emotions I imagined I would've experienced if I transitioned to Better Auth. Just needed to hear it from someone else. Cheers!
Thanks for sharing, you've successfully tipped the Better Auth scales for me... Might be too early to tell, but would you say you prefer Lucia or Better Auth at this point? I really like Lucia because of how little magic there is and how I can understand/control everything related to auth. But I wonder if it loses its luster as a project grows.
I'm very tempted to make the leap from Lucia to Better Auth for a greenfield project, but the thought of jumping yet again from one auth solution to another is making me hesitate. If there are any satisfied (or unsatisfied) devs who have attempted the Lucia -> Better Auth transition, I'd love to hear your thoughts on this!
Re:Cursor pro is now free for students on Thursday May 08, 2025 @08:50PM (#43932806)
Pretty amazing deal imo, would highly recommend anyone still in school to nab this when they can
Re:How to Harden GitHub Actions: The Unofficial Guide on Thursday May 08, 2025 @08:31PM (#43932712)
Hm that's good to know, thanks for the link. I'm just using the runner for private solo projects atm so I think my setup will do for now. But I definitely didn't consider the implications of using it on a private project with other contributors yikes.
Re:How to Harden GitHub Actions: The Unofficial Guide on Thursday May 08, 2025 @02:31PM (#43929611)
Timely article... I recently learned about self-hosted runners and set one up on a Hetzner instance. Pretty smooth experience overall. If your action contains any SSH commands and you'd like to avoid setting up a firewall with 5000+ rules[0], I would recommend self-hosting a runner to help secure your target server's SSH port.

[0] https://api.github.com/meta