
洪 民憙 (Hong Minhee)
@hongminhee@hollo.social
韓国では現在、午前中に決定された尹錫悦大統領の罷免により、お祭りムードとなっています。
@hongminhee@hollo.social · 860 following · 1030 followers
An intersectionalist, feminist, and socialist guy 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 |
---|---|---|---|
@hongminhee@hollo.social
韓国では現在、午前中に決定された尹錫悦大統領の罷免により、お祭りムードとなっています。
@ianthetechie@fosstodon.org
Korean Mastodon is fuckin' hilarious right now btw. I'd repost but only like 3 of my followers would get it, so I won't 😂
@hongminhee@hollo.social
이제 정말 봄이다.
@saschanaz@sekai.social
열한시 이십이분 주문 피청구인 대통령 윤석열을 파면한다
마칩니다
@DemigirlA@planet.moe
@hongminhee@hollo.social
「罷免한다!」
@xt@hackers.pub
この「ハッカーズ・パブ」(Hackers' Pub)は、ハッカーたちが集まるネット上の場所であって、各自ブログも出来て、レスも出来て、掲示板みたいにも使えて、ユーザーの望みであればFediverseなる世界中の 変人 みんなのネットワークとも繋がりうる、言わばハッカーたちのための新しいツイッターみたいなサイトらしい。
ツイッターより優れた部分は何かというと、技術的に何時間も喋れそうだが、私が注目するのは、まずここの創立者および主任開発者である洪 民憙 (Hong Minhee)先生はイーロンなどよりかはずっとましな方で、頼れる方だということ。ユーザーの自由に関する彼の哲学、このサイトの設計思想などは信用できる。多分。なにしろ彼は今やFLOSS(Free/Libre/Open-Source Software)の開発を専業としておられるのだ。
なお、例えひょんな事で洪さんがイーロン並みに暴走する、由々しき事態でも、ここはツイッターみたいにはならないということ。この「ハッカーズ・パブ」はソースコードに限らず、プロトコルや作動原理も全部FLOSSなので。まあ洪さんの暴走なんてないでしょうけどね。
エンジニアとして生きてきた分、こういうサービスを運営する側の負担を大体把握しているので、自分ではやらないと思うし、ここが盛り上がったところで (盛り上げたところで) 自分の人生に役立つかというと、そうも言えない。が、「みんながTwitterとかFacebookとかInstagramなどを使っている」今の状態と比べれば、ハッカーズ・パブがもっと使われる未来の方が好ましいことに違いはない。そう考えると、洪さんの努力に感謝せざるをえない。
で、パブに日本語圏のユーザーをもっと招くのが創立者の方針というかご希望らしく、衝動的に参加してみる。これから機会あれば、日本語でも面白い話をここに残すのを目指してみる。自分日本語全然下手ですが。よろしく。
@hongminhee@hackers.pub
【拡散希望】
Hackers' Pub(ハッカーズ・パブ)は現在開発中の、ソフトウェアエンジニアと技術愛好家の為のActivityPub対応ソーシャルネットワークです。現在は韓国語中心のコミュニティが形成されていますが、日本のエンジニアの方々にも参加していただきたいと考えています。
Hackers' Pubは短文の投稿[1]と長文の記事[2]の両方をサポートしています。日常的な会話や簡単な質問は短文投稿で、詳細な技術解説やチュートリアルなどは長文記事で表現できます。QiitaやZennのような技術ブログ機能と、MastodonやMisskeyのようなタイムライン機能を兼ね備えた一つのプラットフォームで、両方の利点を享受できます。何よりもActivityPubプロトコルに対応している為、Mastodon、Misskey、Akkoma等と連携可能です。(このアカウントもHackers' Pubから投稿しています!)
技術的な特徴として、拡張Markdownによるテーブル、脚注、警告ボックス、ダイアグラム、数式などの多様な記法をサポートし、構文ハイライト、行ハイライト、差分表示などの強力なコードブロック機能も備えています。また、様々な言語での投稿が可能で、将来的には自動翻訳機能も予定しています。
Hackers' PubはAGPL-3.0ライセンスの下で開発されているオープンソースプロジェクトです。コードの貢献や機能提案も歓迎しています。
現在はまだ開発段階のため招待制となっています。Hackers' Pubに興味がある方は、DMや返信でメールアドレスをお知らせいただければ、招待状をお送りします。技術コミュニティの一員として、ぜひご参加をお待ちしております。よろしくお願いいたします。
@julian@community.nodebb.org · Reply to julian's post
The remaining questions here are:
preferredUsername
is meant to be unique to the instance (in which case having multiple id
s point to an identical preferredUsername
would be a violation), and@xt@hackers.pub · Reply to 洪 民憙 (Hong Minhee)'s post
@hongminhee Twitterはイーロンされててもうだめだ、ActivityPub対応のアカウントが欲しい → この「ハッカーズ・パブ」がよさそうだな → 会員登録がない → 管理者に申し込み → 管理者にメッセージを送るには、ActivityPub対応のアカウントが必要
😂
@xt@hackers.pub
ふと疑問。ここ、招待制なので、興味を示す日本語圏のハッカーさんがいても、合流できないのでは…?
すると、一般登録はまだ早いとしても、登録申し込みフォームとかが必要なのか?
創立者さんには別の計画がおられるだろうか
@hongminhee@hollo.social
お一人様モードと…不要な機能が隠される以外に、運用コストが削減される実質的な効果は有るのだろうか?🤔
@cocoa_vrc@misskey.io
@hongminhee@hollo.social
知らなかったけど、Keynoteは振り仮名入力に対応している。凄いな!
@moonbitlang@mastodon.social
Markdown files with a `*.mbt.md` suffix now support MoonBit LSP, bringing a next-gen doc writing experience—complete with language services🛠️ and test integration✅ right inside markdown code blocks. #MoonBitTips
⬇️Download: https://aka.moonbitlang.com/vsm
@schwarzewald@misskey.systems
Holloとかかな>お一人様インスタンス
https://docs.hollo.social/ja/
@hongminhee@hackers.pub
Hackers' Pubは現在、韓国語中心のコミュニティが形成されていますが、日本語のコミュニティも拡大することを希望しています。Hackers' Pubは、まるでQiitaやZennの様なソフトウェア開発者の為のブログプラットフォームであると同時に、MisskeyやMastodonの様なマイクロブログプラットフォームでもあり、何よりもActivityPubをサポートしているので、Mastodonや Misskey等とも交流が出来ます。(このアカウントもHackers' Pubのアカウントです!)
Hackers' Pubに興味の有る方は、私にDMでメールアドレスをお知らせいただければ、招待状を送らせていただきます。 是非、ご参加をお待ちしております。宜しくお願いします。
@hongminhee@hackers.pub
명령줄 인터페이스(CLI)는 컴퓨터와 상호작용하는 가장 오래된 방식 중 하나다. 그리고 이 인터페이스를 지배하는 것은 셸 언어다. 그런데 흥미로운 점은 셸 언어가 일반적인 프로그래밍 언어들과는 상당히 다른 설계 철학을 따른다는 것이다. 한 마디로 요약하자면, 셸 언어는 때로 “추함”을 받아들여야 한다.
Bash나 zsh와 같은 전통적인 셸을 보자. grep -r "error" /var/log | wc -l
와 같은 명령은 암호처럼 보일 수 있지만, 타이핑하는 데 몇 초밖에 걸리지 않는다. 이러한 간결함은 우연히 생긴 것이 아니다. 셸 환경에서는 사용자가 빠르게 입력하고, 결과를 확인하고, 다시 명령을 수정하는 반복적인 워크플로우가 일반적이다. 여기서 핵심은 “대화형” 경험이다.
PowerShell은 마이크로소프트가 셸의 개념을 재정의하려 한 야심찬 시도였다. 객체 지향적 파이프라인, 일관된 동사–명사 구문, 그리고 자세한 매개변수 이름 등은 모두 코드의 가독성과 유지보수성을 높이기 위한 설계였다.
그러나 다음 명령을 비교해보자:
Bash:
find . -name "*.log" -mtime -7 \
| xargs grep "error" \
| sort \
| uniq -c
PowerShell:
Get-ChildItem -Path . -Filter *.log `
| Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)} `
| ForEach-Object {Select-String -Path $_.FullName -Pattern "error"} `
| Sort-Object `
| Group-Object `
| Select-Object Name,Count
PowerShell의 명령은 더 명확하고 자기 설명적이지만, 대화형 셸에서 빠르게 실험하고 반복하기에는 너무 장황하다. PowerShell 설계자들은 “추함”을 견디지 못하고 너무 많은 “다림질”을 해버린 것이다.
흥미롭게도 최근의 Nushell 같은 현대적인 셸은 이 교훈을 받아들이고 있다. 구조화된 데이터 처리와 같은 PowerShell의 장점을 가져오면서도, 대화형 사용에 필요한 간결함을 유지하려 노력한다.
셸 언어의 진정한 성공은 “아름다운 코드”와 “효율적인 상호작용” 사이의 균형에 달려 있다. 이는 때로 완벽한 문법이나 일관성보다는 실용적인 “추함”을 수용해야 함을 의미한다.
프로그래밍 언어의 세계에서는 우아함과 일관성이 미덕이다. 그러나 셸의 세계에서는 타이핑 효율성, 속도, 그리고 대화형 적합성이 우선시된다. 이것이 바로 셸 언어가 때로 “추함”을 요구받는 이유다. PowerShell의 제한적인 성공은 이 기본적인 진실을 간과한 데서 비롯된 것일지도 모른다.
그리고 어쩌면 이것은 소프트웨어 설계 전반에 걸친 더 깊은 교훈을 담고 있다: 모든 도구는 그 사용 맥락에 맞게 설계되어야 한다는 것이다. 셸 언어에서는 그 맥락이 바로 키보드와 사용자 사이의 빠른 대화다.
@kodingwarrior@silicon.moe
해커스펍 성장하는걸 구경하는 재미가 있어서 슥뽕슥뽕하게 됨
@hongminhee@hollo.social · Reply to 염산하's post
@ysh @kodingwarrior Ghost의 ActivityPub 연동 자체는 제가 만든 게 아니지만, 거기서 제가 만든 Fedify를 쓰고 있습니다!
@hongminhee@hollo.social · Reply to 박준규's post
@curry 헉… 천만다행이네요
@objectif@mitir.social
마인어에는 지진을 뜻하는 고유어가 없다...?
마인어는 사용인구로 따지면 오스트로네시아어족의 맹주라 할 수 있는 큰손이다. 오늘날 말레이시아와 인도네시아를 비롯한 지역에서 쓰이며, 총 화자는 2억 5천만 명이 넘을 것으로 추산되니, 한국어는 명함도 내밀 수 없는 규모다. 언어학계는 마인어의 조상이 PAn(Proto-Austronesian language, 오스트로네시아조어)이라는 것을 거의 확신하고 있다.
PAn 은 수천 년 전 타이완섬에 살던 사람들이 썼을 것으로 추정되는 언어다. 이 사람들은 거대한 타이완섬에 살다가, 어째 답답했는지 아니면 거기 계속 살다가는 먼 미래에 정체자를 배워야 하는 운명을 예감한 것인지, 바다로 뛰쳐나갔다. 이들은 유유히 배를 타고 대양을 누비며 세계 곳곳에 정착한 것으로 추정된다.
전근대에 원양 항해라니 죽음을 자초하는 행위 아닌가? 게다가 타이완섬 앞으로 나가면 약속의 열대저기압 지옥태풍존이잖아? 그런데 PAn 으로부터 분화한 언어들, 오스트로네시아어족의 분포 범위를 보면 무시무시하다. 동으로는 태평양 건너 남미에서, 서로는 인도양 건너 아프리카 대륙 앞 마다가스카르에 이른다! 유럽인들이 "Age of Discovery" 운운하기보다 수천 년 전에, 나침반도 육분의도 없던 시절에, 지구에서 가장 큰 바다를 건너 다닌 비결? 현대의 학자들은 이런저런 짐작만 할 뿐이다. 이들의 항해술은 주로 문자가 아니라 구술로 전승되었기 때문이다.
그런데 아무튼 기원이 타이완섬이고, 타이완섬은 환태평양 지진대의 영향권에 있으므로, PAn 에도 "지진"을 뜻하는 어근이 있는 것은 거의 확실시된다. 현재 언어학계의 다수설은 linuʀ 이다. 여기서 많은 파생형이 발생하였는데 예를 들어 linog 만 봐도 수우우많은 오스트로네시아계 언어들이 이 말을 "지진"으로 쓰고 있음을 알 수 있다.
하지만 마인어에는 이 "linuʀ"에서 파생한, "지진"을 뜻하는 고유어가 전혀 보이지 않는다. 어떻게 된 것일까? 당장 지리적으로나 언어계통적으로나 마인어와 인접한 자바어에도 linuʀ 에서 왔음이 분명해 보이는 ꦭꦶꦤ꧀ꦝꦸ (lindhu) 가 있는데, 마인어에서는 뜬금없이 gempa bumi 라는 표현을 쓴다. 알고 보면 이것은 산스크리트어(?!) भूमिकम्प (bhūmikampa) 에서 온 것이다.
마인어의 조상인 고대 말레이어에 산스크리트어 차용 단어가 많은 것은 사실이다. 하지만 아무리 그래도 "지진"은 인간 생활에 직결되는 중요한 단어이고, 바로 근처의 다른 모든 오스트로네시아어족 정착지에서 모두 "linuʀ" 파생형을 쓰고 있는데, 왜 고대 말레이어는 "지진"의 고유어를 버리고 산스크리트어를 썼을까?
흥미로운 가설은, 하필 마인어가 분화 형성된 지역만 지진대를 멋지게 비켜 가면서, 지진이 너무 오랫동안 없었기 때문에 (!) 고유어가 사멸했다는 것이다.
마인어는 오늘날에는 말레이시아와 인도네시아 전역에서 널리 쓰이지만, 옛날에는 말레이 반도와 말레이 제도에서 주로 쓰는 언어였고, 그보다 더 아주 먼 옛날에는 보르네오 섬의 서부에서 쓰인 것으로 추정된다. 실제로 ArcGIS 의 동남아시아 지진 지도를 보면, 이 지역들만 절묘하게 지진대에서 벗어나는 것을 볼 수 있다...!
@everclear@hollo.ingyeo.net
#hollo 에서도 한 포스팅에 많은 이미지 첨부된 것 잘 보이는 것 같네요..
@arkjun@hackers.pub
Hackers' Pub 행동 강령을 관통하는 큰 키워드가, 존중과 배려라고 느꼈고, 그래서 더욱 Hackers' Pub 을 응원하고 있는데, 오랜 시간이 흘러도 추구하는 가치에 흔들림이 없으면 좋겠고, 여기에 더해 긍정적이고 밝은 에너지가 가득한 공간이 되기를 소망한다.
한가지만 더 첨언하자면, 개발자의 소소한 일상 얘기들도 많이 공유되었으면 좋겠다. (우선 나부터도 해야겠지만)
@arkjun@hackers.pub
Hackers' Pub 行動規範を拝見し、その根底にあるキーワードは「尊重」と「思いやり」だと強く感じた。だからこそ、僕はHackers' Pubを心から応援している。時間が経っても、その価値観がブレずに、前向きで明るいエネルギーがあふれる場所であってほしい。
それと、もうひとつだけ言うと、開発者のちょっとした日常の話とかも、もっと共有されるといいなって思う。(まずは自分から始めなきゃだけどね)
@hongminhee@hackers.pub
사실 Hackers' Pub은 저희 집 홈 서버인 Mac mini M4 깡통 모델에서 돌아가고 있을 뿐만 아니라, 배포도 compose.yaml 파일의 image:
필드를 매번 손으로 고친 뒤 docker compose up -d
를 치는 전근대적인 방식으로 이뤄지고 있습니다… 뭔가 자동화를 하고 싶긴 한데 귀찮은 마음이 커서 아직까지 이대로 살고 있네요.
@hongminhee@hollo.social
@wapj@hackers.pub
오.. 해커스펍 가입함
@geeknews_bot@sns.lemondouble.com
코드와 한글 [Code and Hangul]
------------------------------
# 전북대학교 이상로 교수의 연구 아카이브: 한글 코드와 기술 표준화의 기록
이상로 교수가 운영했던 웹사이트는 2000년대 초반 한국의 문자 처리 기술과 코드 변환 연구를 체계적으로 정리함으로, 한글 정보화와 국제 표준화 과정에서 중요한 역할을 했습니다. 이 사이트는 당시 컴퓨터 과학 분야의 학문적 연구와…
------------------------------
https://news.hada.io/topic?id=20085&utm_source=googlechat&utm_medium=bot&utm_campaign=3141
@hongminhee@hackers.pub
안녕하세요! 오늘은 제가 개발한 deno-task-hooks 패키지를 소개해 드리려고 합니다. 이 도구는 Deno 태스크를 Git 훅으로 사용할 수 있게 해주는 간단하면서도 유용한 패키지입니다.
Git을 사용하는 개발 팀에서는 코드 품질 유지를 위해 커밋이나 푸시 전에 린트, 테스트 등의 검증 작업을 실행하는 것이 일반적입니다. 이러한 작업은 Git 훅을 통해 자동화할 수 있지만, 기존 방식에는 몇 가지 문제가 있었습니다:
deno-task-hooks는 이러한 문제를 해결하기 위해 Deno의 태스크 러너를 활용합니다. Deno 태스크는 deno.json 파일에 정의되어 버전 관리가 가능하므로, 팀 전체가 동일한 Git 훅을 쉽게 공유할 수 있습니다.
deno-task-hooks의 작동 방식은 간단합니다:
hooks:install
태스크를 실행하면, 정의된 태스크들이 자동으로 .git/hooks/ 디렉토리에 설치됩니다.먼저 deno.json 파일에 hooks:install
태스크를 추가합니다:
{
"tasks": {
"hooks:install": "deno run --allow-read=deno.json,.git/hooks/ --allow-write=.git/hooks/ jsr:@hongminhee/deno-task-hooks"
}
}
Git 훅은 hooks:
접두사 다음에 훅 이름(케밥 케이스)을 붙여 정의합니다. 예를 들어, pre-commit
훅을 정의하려면:
{
"tasks": {
"hooks:pre-commit": "deno check *.ts && deno lint"
}
}
다음 명령어를 실행하여 정의된 훅을 설치합니다:
deno task hooks:install
이제 Git 커밋을 실행할 때마다 pre-commit
훅이 자동으로 실행되어 TypeScript 파일을 검사하고 린트 검사를 수행합니다.
deno-task-hooks는 다음과 같은 모든 Git 훅 타입을 지원합니다:
applypatch-msg
commit-msg
fsmonitor-watchman
post-update
pre-applypatch
pre-commit
pre-merge-commit
pre-push
pre-rebase
pre-receive
prepare-commit-msg
push-to-checkout
sendemail-validate
update
deno-task-hooks를 사용하면 다음과 같은 이점이 있습니다:
deno-task-hooks는 작은 패키지이지만, Git과 Deno를 함께 사용하는 팀의 개발 경험을 크게 향상시킬 수 있습니다. 코드 품질 유지와 개발 워크플로우 자동화를 위해 한번 사용해 보세요!
패키지는 JSR에서 다운로드할 수 있으며, GitHub에서 소스 코드를 확인할 수 있습니다.
피드백과 기여는 언제나 환영합니다! 😊
@hongminhee@hollo.social
FYI Fedify implements FEP-8fcf, so you can just pass the syncCollection: true
option to turn on followers collection synchronization if you use Fedify!
@dansup@mastodon.social
Pixelfed will be implementing FEP-8fcf: Followers collection synchronization across servers
https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md