NTSK
@ntek@hl.oyasumi.dev
なるほどHollo、他人to他人の絵文字リアクションが出るようになったんだ


@hongminhee@hollo.social · 1032 following · 1658 followers
An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in #TypeScript, #Haskell, #Rust, & #Python. They/them.
서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. #TypeScript, #Haskell, #Rust, #Python 等으로 自由 소프트웨어 만듦.
| Website | GitHub | Blog | Hackers' Pub |
|---|---|---|---|
@ntek@hl.oyasumi.dev
なるほどHollo、他人to他人の絵文字リアクションが出るようになったんだ

@hellel@xxx.cyberpirate.boats
오픈소스하자 얘들아

@hongminhee@hollo.social
Just read this 2015 piece by @qntm.org on why abolishing time zones is a terrible idea, and it's brilliant. Not because it argues against them, but because it just follows the logic through. By the end you've watched the proposal quietly collapse under its own weight.
@tesaguri@fedibird.com
既に世の中には文責者としての最低限の責務もろくに果たさずLLMの出力をそのまま公開したとしか思えないようなslopが氾濫しているから、読み手としては感覚的な「slop臭さ」による足切りもしていかないと処理が追いつかないしなあ。何につけてもslopの氾濫とかいうやつが引き起こした歪みが大きすぎる
@tesaguri@fedibird.com
自力で書いた文章では労力がかかる割にぎこちなく偏見や誤解を招き、LLMを通せばslop臭さから避けられ、自分の母語で書けば当然読まれないまたは読み手が使う機械翻訳ツールの誤訳によるミスコミュニケーションに煩わされることになるというの、どうすれば良いのだろうね。やっぱり印欧語話者に生まれなかったのが悪いのですかね。
正直この文章も、洪さんの今までの活動に対する信用があるからこそ読む気になれるけど、仮にその前提がなければ私も4段落目くらいでLLMっぽさを感じて警戒してしまうところだと思うし、私自身も非母語話者に不利な構造にある種加担しているところはある

@hongminhee@hollo.social · Reply to julian's post
@julian Yeah, that's why I'm still writing short words myself. My accent won't go anywhere!

@hongminhee@hollo.social · Reply to Damien de Lemeny's post
@ddelemeny That's a useful framing, and the article is worth reading. The concern about entropy collapse is real—I've seen it happen when native speakers run their own writing through a model and get something smoother but somehow emptier back.
My situation is a bit different, though. The high-entropy original is in Korean. The LLM's job is to carry that across, not to sand it down. Whether it succeeds is a fair question, but the direction of the process matters. I'm not polishing a draft into blandness; I'm trying to get something that exists in one language to exist in another without losing its shape.
Anyway, this has been a genuinely interesting exchange. Thank you for the link.

@hongminhee@hollo.social · Reply to Phantasm's post
@phnt Multilingual posting is something I've actually been thinking about and experimenting with already. I'm building a fediverse platform for software developers called Hackers' Pub, where I've been prototyping exactly this kind of feature. My other project, @hollo, is where I post from right now, and I'd like to bring something similar there eventually—the main obstacle is that most fediverse platforms don't properly render multilingual posts even when they receive them—the protocol already supports it via contentMap, but implementations like Mastodon tend to pick one language arbitrarily rather than presenting all of them.
Outside the fediverse, my blog already works this way: each post is written in multiple languages (Korean, Japanese, and English), not as translations filed separately but as the same post published in all three. It's a pattern I find natural given how I actually think and write across languages.
On Google Translate: I stopped using it for Korean–English a long time ago, for the same reasons you'd expect. These days I mostly use Kagi Translate, which is LLM-based and noticeably better for distant language pairs. The gap between that and older MT is stark enough that I think “machine translation” has started to mean two quite different things depending on which generation of tools you're talking about.

@hongminhee@hollo.social · Reply to julian's post
@julian I actually just addressed something close to this in a reply up the thread—might be worth a read!

@hongminhee@hollo.social · Reply to Damien de Lemeny's post
@ddelemeny @silverpill I relate to the immersion argument, and I think it's part of why I avoided machine translation for so long—not out of principle, but because the output wasn't worth learning from. Older MT between Korean and English produced something closer to a word-by-word skeleton than actual language. You couldn't look at it and think: oh, that's how a native speaker would put it. It was more like a scaffold you had to tear down before building anything.
LLMs are different enough that I've had to revise that instinct. The output is often genuinely idiomatic, and when I read a phrase that lands exactly right, there's a recognition that functions a lot like learning—the same feeling as encountering a sentence in a book and thinking: I'll remember that. I do find myself absorbing expressions that way, probably more than I would have expected.
That said, I think your point holds at the edges. For shorter writing I still work without assistance, partly for practical reasons and partly because I notice the difference when I don't. So I suspect I'm arriving at something similar to what you're describing, just from the other direction—using the tool for longer texts while trying to keep the muscle from atrophying entirely on shorter ones.
The dynamic you mention with German and Korean is interesting too. Korean was my concern about English; I imagine the lack of immersion shapes the experience in ways that are hard to compensate for with tools alone.

@hongminhee@hollo.social · Reply to Damien de Lemeny's post
@ddelemeny @silverpill I relate to the immersion argument, and I think it's part of why I avoided machine translation for so long—not out of principle, but because the output wasn't worth learning from. Older MT between Korean and English produced something closer to a word-by-word skeleton than actual language. You couldn't look at it and think: oh, that's how a native speaker would put it. It was more like a scaffold you had to tear down before building anything.
LLMs are different enough that I've had to revise that instinct. The output is often genuinely idiomatic, and when I read a phrase that lands exactly right, there's a recognition that functions a lot like learning—the same feeling as encountering a sentence in a book and thinking: I'll remember that. I do find myself absorbing expressions that way, probably more than I would have expected.
That said, I think your point holds at the edges. For shorter writing I still work without assistance, partly for practical reasons and partly because I notice the difference when I don't. So I suspect I'm arriving at something similar to what you're describing, just from the other direction—using the tool for longer texts while trying to keep the muscle from atrophying entirely on shorter ones.
The dynamic you mention with German and Korean is interesting too. Korean was my concern about English; I imagine the lack of immersion shapes the experience in ways that are hard to compensate for with tools alone.

@hongminhee@hollo.social · Reply to julian's post
@julian Thank you for saying this. The ActivityPub development community being Euro-America-centric isn't just a cultural observation. It shapes what gets built, what use cases are considered, and whose needs are treated as edge cases. Language is a big part of that, and I'm glad the point landed.
And yes, apparently the chardet post found its audience. I was not expecting that particular piece to take off, but I'll take it!
@julian@activitypub.space · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post
@hongminhee@hollo.social I think your post makes me think more critically about the use of LLMs for translation services. It is easy for me to judge from a position of privilege because I am a native English speaker, and I do not realize the access I am given simply because of it.
While reading your post it also made me think about the sacrifices you made to contribute to this community. There are precious few people in the Asia-Pacific region who regularly contribute to AP development, and a large part of that is the language barrier.
If LLM-translation makes the AP development community less euro-america-centric, then I am all for it. Cultural differences we can work through, but language barriers are harder to bypass!
Aside, congratulations for making it onto Hacker News front page 

@hongminhee@hollo.social · Reply to Damien de Lemeny's post
@ddelemeny @silverpill The confidence comes from an asymmetry I suspect many non-native speakers will recognize: I can read English much better than I can write it.
When I write in English on my own, I often know, as I'm writing, that something is off—that the sentence doesn't carry the weight I intended, or that the nuance I wanted is somewhere between the words I've chosen. I just don't always know how to fix it. When I write in Korean first and then work with an LLM, I can read the result and check it against what I meant. Sometimes I'll see a phrase and think: yes, exactly that, I didn't know how to get there myself. That moment of recognition is the verification step.
So I'm not trusting the machine blindly. I'm using my reading ability—which is reasonably good—to audit an output that my writing ability couldn't have produced alone. It's an imperfect process, but it's not as unmoored as handing a text to a system and walking away.
Your point about polyglot authors is well taken. The tool works better when the person using it can actually evaluate what it produces. I'd agree that's a meaningful distinction.

@hongminhee@hollo.social
I've been thinking about adding federation health monitoring to #Fedify—not as a separate data store or custom API, but by extending the existing #OpenTelemetry integration. The idea is to expose delivery outcomes, signature verification failures, and per-remote-host error rates as OpenTelemetry metrics alongside the spans Fedify already emits. If you already have a Prometheus or Grafana setup, you'd get federation observability basically for free. Circuit breaker behavior (temporarily skipping a remote server that's been consistently unreachable) could surface as OpenTelemetry events, keeping everything in the same trace context rather than scattered across separate logs.
Does this sound useful to you? I'm curious whether people building on Fedify—or running federated servers in general—would actually reach for this, and what kinds of things you'd most want to observe. Happy to hear any thoughts.

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post
To be precise, it's not English as a language that I hate, but English as a form of power.

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post
From back when I used to flip through a thick dictionary, taking a minute for each sentence, to now, when I use an LLM to write in English, people don't realize that I'm personally speaking to them in English for their sake. Honestly, I just want to speak in Korean. I hate English.

@hongminhee@hollo.social · Reply to silverpill's post
@silverpill Yes, I used an LLM to help write it. I wrote my thoughts in Korean first, then had it translated. That's kind of the whole point I was making.
I'm not a native English speaker. When I write long-form English on my own, it's slow and the result is often not what I actually meant. Using a tool to bridge that gap doesn't make the thoughts less mine. It makes them more accurately mine, not less. A non-native speaker hiring a copy editor wouldn't get this reaction.
I'll grant you that “the non-slop version of you” stings a little. But I'd rather be legible and called slop than be authentic and misread.

@hongminhee@hollo.social · Reply to ⏚ Antoine Chambert-Loir's post
@antoinechambertloir I appreciate the spirit of what you're describing, and the fediverse's approach to translation is genuinely one of its nicer features.
I'd just gently push back on one assumption: that the automatic translation available to both of us is roughly equivalent. French–English and Korean–English are not the same problem for these systems. The linguistic distance is much greater, the training data has historically been thinner, and the results have reflected that gap for a long time. It's only fairly recently that Korean–English machine translation has become reliable enough to carry a real conversation without significant loss.
So when you write in French and I write in Korean, we're not quite sharing the responsibility equally—at least not yet. Though I do think we're getting closer, which is perhaps the most honest thing I can say about where I stand on all of this.

@kunev@blewsky.social
https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
The norms that open source communities built over decades did not wait for court approval. People chose the GPL when the law offered them no guarantee of its enforcement, because it expressed the values of the communities they wanted to belong to. Those values do not expire when the law changes.

@hongminhee@hollo.social · Reply to ⏚ Antoine Chambert-Loir's post
@antoinechambertloir The distinction you're drawing is a useful one, and I largely agree with it. When translation is imposed on you with no alternative, the responsibility for its faithfulness lies with whoever imposed it.
But it makes me ask: which category does my situation fall into?
I'm writing this reply in English. Not because I chose English as my preferred language of expression, but because if I wrote it in Korean, it would either be ignored or filtered through whatever tool my interlocutor happens to have on hand—and any resulting misreading would be treated as my problem. So I write in English, carefully, to preempt that. Is that a voluntary choice? Formally, yes. Practically, it sits much closer to the “imposed” end of your spectrum than it might appear.
The contract model works cleanly when both parties have genuinely equivalent alternatives. When one party's only real options are “use this tool” or “don’t participate,” the contract framing starts to obscure more than it reveals.
@evanprodromou@socialwebfoundation.org
As part of my book “ActivityPub: Programming for the Social Web“, I created a coding example to show how to program for the ActivityPub API. ap is a command-line client, written in Python, for doing basic tasks with ActivityPub.
For example, you can log into a server using this command:
ap login yourname@yourserver.exampleOnce you’re logged in, you can follow someone:
ap follow other@different.exampleOr, you could post some content:
ap create note --public "Hello, World"This isn’t enough to have a real social networking experience, but I think it’s pretty useful for testing an ActivityPub API server, or automating some repetitive tasks.
I should note quickly here that not all ActivityPub servers support the ActivityPub API. It’s an under-utilized part of the ActivityPub standard. In particular, Mastodon, Threads, Flipboard, and other services don’t support the API. There’s a pretty good list of servers and clients that do support the API in this Codeberg issue.
Suffice it to say, unless you’re actively working with one of those platforms, or you are writing your own, you’re not going to get much use out of ap. It will probably give you an error message like “No OAuth endpoints found” if it can’t use the service.
I’ve never packaged ap for distribution; it was always supposed to be example code. But given the recent interest in the ActivityPub API, including the work going on in the ActivityPub API task force, I decided to get it into shape for installation by developers working on other apps. My friend Matthias Pfefferle of Automattic asked me about it when we were at FOSDEM this year, and I was embarrassed to see how difficult it was for him to use.
So, I’ve made two big upgrades to the package. The first was actually making it a package, and distributing it! I upgraded the package management framework to uv, which seems like a good bet for now, and pushing the application to PyPI, the Python Package Index. It’s visible at https://pypi.org/project/activitypub-cli/ now. (Note: different package name from the command name! The PyPI “ap” package name was taken a while ago.)
You can now install the application in one shot with this command on a computer that has Python on it:
pipx install activitypub-cliYou can test that the application installed correctly in your path by running the version command:
ap versionThat should show the same version as is currently on the pypi.org page for the project.
The second change was implementing the current OAuth 2.0 profile best practices. I’ve upgraded the login flow so it tries a lot of different options for identifying itself to the server: CIMD, FEP d8c2, and Dynamic Client Registration. It tries to do them in preferential order; it uses permanent, global client identifiers before dynamic ones.
I’m especially interested in testing this command-line client against other servers. If you’re developing an ActivityPub API server, please install the ap command and try it out against your (development!) server. Report a bug if it doesn’t work well, or send me a DM at @evanprodromou if it works OK. Given time, I think ap can be a useful first smoke test for ActivityPub API implementations.

@hongminhee@hollo.social · Reply to Peter Brett's post
@krans That's a real and legitimate grievance, but it's a different argument from the one we were having.
Your employer using LLM translation to cut costs on documentation for a massive Korean customer (while having the resources to do it properly) is a decision made by someone with power, to save money, at the expense of Korean users. That's worth being angry about.
But I'm an individual trying to participate in a public conversation. I can't hire a personal interpreter every time I want to respond to a post. The choice I actually face is: use available tools, or stay silent. Those aren't the same situation, and the same tool can mean very different things depending on who's holding it and why.
If anything, your example reinforces the point. The problem isn't the tool, but it's who gets to decide when it's “good enough.”

@hongminhee@hollo.social · Reply to Peter Brett's post
@krans The analogy is structurally interesting, but I think it breaks down at a crucial point.
With tax credits, the argument is that the subsidy lets employers off the hook—pressure that would otherwise force wages up gets absorbed by the state instead. The discomfort falls on capital, or at least that's the intent. But when you apply the same logic to language access, the discomfort doesn't fall on the Anglophone center. It falls on the people who were already excluded. The implicit suggestion becomes: non-English speakers should communicate less fluently, so that English speakers are eventually pressured into… what, exactly? Learning Korean? There's no mechanism there.
The deeper problem is that “lowering the bar for communication in English” is not the same thing as accepting English hegemony as permanent. I use these tools to participate in a conversation that would otherwise exclude me. That's not capitulation—it's the same logic as using a wheelchair ramp. You don't refuse the ramp because its existence lets architects keep building stairs.
The structural critique of hegemony is real and I share it. But it shouldn't cash out as advice to the marginalized to make themselves less legible. That's a cost I'm not willing to ask people to pay on behalf of a structural shift that may never come.

@hongminhee@hollo.social
I'm writing this in English.
Not because English is my first language—it isn't. I'm writing this in English because if I wrote it in Korean, the people I'm addressing would run it through an outdated translator, misread it, and respond to something I never said. The responsibility for that mistranslation would fall on me. It always does.
This is the thing Eugen Rochko's post misses, despite its good intentions.
@Gargron argues that LLMs are no substitute for human translators, and that people who think otherwise don't actually rely on translation. He's right about some of this. A machine-translated novel is not the same as one rendered by a skilled human translator. But the argument rests on a premise that only makes sense from a certain position: that translation is primarily about quality, about the aesthetic experience of reading literature in another language.
For many of us, translation is first about access.
The professional translation market doesn't scale to cover everything. It never has. What gets translated—and into which languages—follows the logic of cultural hegemony. Works from dominant Western languages flow outward, translated into everything. Works from East Asian languages trickle in, selectively, slowly, on someone else's schedule. The asymmetry isn't incidental; it's structural.
@Gargron notes, fairly, that machine translation existed decades before LLMs. But this is only half the story, and which half matters depends entirely on which languages you're talking about. European language pairs were reasonably serviceable with older tools. Korean–English, Japanese–English, Chinese–English? Genuinely usable translation for these pairs arrived with the LLM era. Treating “machine translation” as a monolithic technology with a uniform history erases the experience of everyone whose language sits far from the Indo-European center.
There's also something uncomfortable in the framing of the button-press thought experiment: “I would erase LLMs even if it took machine translation with it.” For someone whose language has always been peripheral, that button looks very different. It's not an abstract philosophical position; it's a statement about whose access to information is expendable.
I want to be clear: none of this is an argument that LLMs are good, or that the harms @Gargron describes aren't real. They are. But a critique of AI doesn't become more universal by ignoring whose languages have always been on the margins. If anything, a serious critique of AI's political economy should be more attentive to those asymmetries, not less.
The fact that I'm writing this in English, carefully, so it won't be misread—that's not incidental to my argument. That is my argument.
@Gargron@mastodon.social
Machine translations are often brought up as a gotcha whenever I criticize LLMs. It's worth pointing out two things: Machine translations existed decades before LLMs, and yes, machine translations are useful. However: I would never in my life read a machine translated book. Understanding what a social media post is talking about in rough terms? Sure. Literature? Absolutely not. Hell, have you ever seen machine translated subtitles? It's absolute garbage.

@hongminhee@hollo.social
韓國語 母語 話者로서 정말 하고 싶은 말이 많아지게 하는 글이네… 只今 東京 旅行中이라 글을 쓸 수가 없는데, 있다가 角 잡고 제대로 反駁 글을 써 봐야 할 듯.
@Gargron@mastodon.social
Machine translations are often brought up as a gotcha whenever I criticize LLMs. It's worth pointing out two things: Machine translations existed decades before LLMs, and yes, machine translations are useful. However: I would never in my life read a machine translated book. Understanding what a social media post is talking about in rough terms? Sure. Literature? Absolutely not. Hell, have you ever seen machine translated subtitles? It's absolute garbage.
@julian@fietkau.social · Reply to Julian Fietkau's post
(Disclosure: Using the name and logo of Encyclia – symbolically, since Encyclia is not a legal entity – I have an active monthly donation to @fedify on OpenCollective. However, I do not believe that this is getting me any preferential treatment, and in my observation the Fedify project treats all contributors and downstream implementers with equal respect.)
@julian@fietkau.social
Seems as good a day as any to thank @hongminhee and team for the exemplary work on @fedify. Following Fedify's big 2.0 release, my two largest interoperability pain points in @encyclia can be fixed. 🙂
https://github.com/fedify-dev/fedify/issues/473 means that people using @gotosocial will finally be able to follow @encyclia accounts soon (whenever I finish the upgrade).
https://github.com/fedify-dev/fedify/issues/472 will let me (and others) handle more account resolution edge cases and reduce failure mode traffic after Fedify 2.1 is out.
@jevans@climatejustice.social
this piece by @hongminhee is excellent. #copyleft
https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
@tesaguri@fedibird.com
それはそれとしてThisIsMissEm大先生がグラントを得られたことは良い話である。同氏が長いこと資金難そうだったのは気掛かりだったし
@alefunguju@mastodon.social
> When legality is used as a substitute for a value judgment, the question that actually matters gets buried in the footnotes of a law it has already outgrown.
https://writings.hongminhee.org/2026/03/legal-vs-legitimate/