というかpublic betaになってもActivity Streamsオブジェクトの`id`に`preferredUsername`を含めるスタイルなのか……

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 346 following · 233 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
洪 民憙 (Hong Minhee) shared the below article:
The social web beta is here

Building ActivityPub @index@activitypub.ghost.org
Today we're opening a public beta for our social web integration in Ghost. For the first time, any site on Ghost(Pro) can now try out ActivityPub.
For those of you who have been subscribed to this newsletter for the past year or so, thanks for your patience! It hasn't been easy to get this far, but we're excited to hear what you think as you become one of our very first explorers to launch into the Fediverse.

To help you get started, we've put together a detailed guide explaining how this new feature works, and what you can expect from using it in its current state.
Take a quick read through everything here, as an introduction:

Once you're ready to take ActivityPub for a test drive yourself, open Ghost Admin and head over to Settings → Labs and enable the beta.

We're looking forward to chatting with you!
For personal reasons, I no longer feel safe working on Linux GPU drivers or the Linux graphics ecosystem. I've paused work on Apple GPU drivers indefinitely.
I can't share any more information at this time, so please don't ask for more details. Thank you.
Claude Code, 소프트웨어 번역에도 아주 편리하다. 번역 항목을 추가하게 되면 내가 잘 모르는 언어의 번역 파일을 어떻게 해야 하나 언제나 고민이었는데 (여태까지는 자동 번역기를 쥐어짜서 어떻게든 채워 넣었다), 이제는 내가 아는 언어의 번역 파일에만 항목을 추가한 다음에 Claude Code에게 내가 모르는 언어의 번역 파일에도 누락된 항목을 채워달라고 부탁만 하면 된다. 단, 이게 잘 동작하려면 번역 파일에 용어 사전(glossary)가 어느 정도 구축되어 있고 기존 번역에서도 용어가 일관성 있게 쓰여 있어야 한다.
Hackers' Pub에서도 중국어 번역을 그런 식으로 채워서 커밋해 보았다.
Claude Code、ソフトウェア翻訳にも非常に便利だ。翻訳項目を追加する際、自分がよく知らない言語の翻訳ファイルをどうすればいいのかといつも悩んでいた(これまでは自動翻訳機を絞り出してなんとか埋め込んでいた)。今では自分が知っている言語の翻訳ファイルに項目を追加した後、Claude Codeに自分が知らない言語の翻訳ファイルにも欠けている項目を埋めてもらうようお願いするだけでいい。ただし、これがうまく動作するためには、翻訳ファイルに用語辞典(glossary)がある程度構築されていて、既存の翻訳でも用語が一貫性を持って使われている必要がある。
Hackers' Pubでも中国語翻訳をそのような方法で埋めてコミットしてみた。
Claude Code, 소프트웨어 번역에도 아주 편리하다. 번역 항목을 추가하게 되면 내가 잘 모르는 언어의 번역 파일을 어떻게 해야 하나 언제나 고민이었는데 (여태까지는 자동 번역기를 쥐어짜서 어떻게든 채워 넣었다), 이제는 내가 아는 언어의 번역 파일에만 항목을 추가한 다음에 Claude Code에게 내가 모르는 언어의 번역 파일에도 누락된 항목을 채워달라고 부탁만 하면 된다. 단, 이게 잘 동작하려면 번역 파일에 용어 사전(glossary)가 어느 정도 구축되어 있고 기존 번역에서도 용어가 일관성 있게 쓰여 있어야 한다.
Hackers' Pub에서도 중국어 번역을 그런 식으로 채워서 커밋해 보았다.
JS로 짜여진, join이 되는 reactive한 로컬 DB가 필요한데요. RxDB, SignalDB는 join이 안 돼서 탈락입니다. join을 안하면 되지 않냐 할수 있는데 어떤 특이한 로직 때문에 꼭 필요합니다. 지금은 직접 sqlite 호출하는 누더기 코드로 돌아가고 있는데요.
그 코드를 리팩토링해서 제대로 된걸 만들까 말까 고민중인데, 사실 잘만들어진게 있으면 그걸 쓰고 싶습니다. 제 요구사항을 만족하는 라이브러리가 있을까요?
@bglbgl gwyng 제가 과문해서 모르는 걸 수도 있겠지만, 아마 없을 것 같아요… 🤔
JS로 짜여진, join이 되는 reactive한 로컬 DB가 필요한데요. RxDB, SignalDB는 join이 안 돼서 탈락입니다. join을 안하면 되지 않냐 할수 있는데 어떤 특이한 로직 때문에 꼭 필요합니다. 지금은 직접 sqlite 호출하는 누더기 코드로 돌아가고 있는데요.
그 코드를 리팩토링해서 제대로 된걸 만들까 말까 고민중인데, 사실 잘만들어진게 있으면 그걸 쓰고 싶습니다. 제 요구사항을 만족하는 라이브러리가 있을까요?
Qiita にも投稿しておきました。 https://qiita.com/rkJun/items/26c94b118d6826feda88#fn-3
@arkjunJuntai Park 最近ではQiita以外にもZennというサービスも盛り上がっています。勿論、Hackers' Pubも盛り上がっていますが!
洪 民憙 (Hong Minhee) shared the below article:
WindowsをMacのように - MacのCMD + バッククォートキーのショートカットをWindowsで使用する方法

Juntai Park @arkjun@hackers.pub
長い間、メインの開発環境としてMacを使っていましたが、Windowsを再びメインで使い始めて1年が経ちました。
いくつかのデメリットはあるものの、Windows 11+WSL(Ubuntu)環境での開発も悪くありません。もちろん、CMDキーがないことや、Ctrlキーを使ったコピー&ペーストが不便な点は否めません。
しかし、MacにはないWindowsのメリットが気に入っており、逆にWindowsにはないMacのメリットも魅力的です。
またいつかMacを再びメインにして、Windowsをサブにする日も来るでしょう。メイン環境は状況によって柔軟に変えていけるものと考えています[1]。
前置きが長くなりましたが、僕がMacでよく使うショートカットキー、CMD + `(バッククオート) は、同じアプリ内のウィンドウを切り替える機能を持っています。例えばChromeブラウザを2つ開いている場合、このショートカットを押すとChromeのウィンドウ間を切り替えられます。 Macで一番よく使っていたショートカットで、Windowsでも似たような機能をするショートカットを一生懸命検索しましたが見つかりませんでした。
そこで、AutoHotkey[2] を使って簡単なスクリプトを作成して使用しています。
完璧に動作するわけではなく、個人的には「そこそこ満足できる」レベルの動作ですが、
- Macに慣れているがWindowsも使っている誰かの役に立つように
- Hackers' Pubの活性化(?)を願って
このAutoHotkeyのスクリプトコードを共有します。
; Alt + `キーを押したときに実行されるコード
; MacOSのCMD + `(バッククオート)キーと同じ機能(同一アプリ内のウィンドウ切り替え)をWindowsで実現
!`::
{
focusedWindow := WinExist("A")
if !focusedWindow
return
focusedPID := WinGetPID(focusedWindow)
focusedPName := WinGetProcessName(focusedWindow)
focusedClass := WinGetClass(focusedWindow)
focusedTitle := WinGetTitle(focusedWindow)
; Get all windows of the same class and process
windows := []
for window in WinGetList()
{
if (WinGetPID(window) = focusedPID && WinGetTitle(window) != focusedTitle)
{
windows.Push(window)
}
}
if (windows.Length > 1)
{
WinActivate(windows[2])
} else if (windows.Length = 1) {
WinActivate(windows[1])
}
}
実行方法は上記のコードを任意のahk拡張子のファイルとして保存し、AutoHotkeyで実行するだけです。また、AutoHotkeyを使えばこのスクリプトを実行ファイル(exe)としてコンパイルすることもできます。
追記)以前、GitHub Gistにも共有しています。
お読みいただきありがとうございました。
実は、最近1年間は主にWindowsを使用していましたが、その間に時々Macをメインで使うこともありました。 ↩︎
AutoHotkey(オートホットキー): 独自のプログラミング言語(マクロ言語)を用いてコンピュータを制御することができる。「AutoHotkey」という名称から想像できるように、当初はキーボードのホットキー(ショートカットキー)をカスタマイズすることを目的として開発されたが、ユーザーの要望を取り入れる形で開発が進むにつれスクリプト言語と分類されるほどに膨大な機能が実装され、コミュニティも大きなものとなっている。出典: ウィキペディア (https://ja.wikipedia.org/wiki/AutoHotkey) ↩︎
Hackers' Pub에 rel=me
속성으로 본인 링크인지 확인하는 로직은 처음부터 만들어 놨는데, UI에서만 표시가 안 되고 있는 중… 안 그래도 지금 프로필의 링크 목록이 조금만 많아져도 난잡해 보이는데, 좀 정리도 할 겸 인증 마크도 추가해야겠다.
@hongminhee洪 民憙 (Hong Minhee)
@annyeong안녕
다른 얘기지만 스레드에 hackers.pub 링크를 걸어두었는데, 양방향 연결로 뜨길래 뭘까 했습니다만, 그 이유가 있었군요. 😅
@arkjunJuntai Park
@annyeong안녕 오, Threads 쪽에서도
rel=me
속성을 주나보네요.
洪 民憙 (Hong Minhee) replied to the below article:
Hacker's Pub
daisuke @dai@hackers.pub
分散されながらも(いわゆるFediverseのフィードを)一元化するビューが欲しかった(矛盾してるかな?)。
とにかくタイムラインのタブはこのように4つ。指定した言語以外のポストは薄く表示される(私は en-US
, zh-CN
, ja-JP
, ko-KR
にしてます)。
私が欲しかった切り替え可能な4タブ構成のビューアーです。
GhostのFediverse Betaアカウントはリクエスト制なのかな?
@index@activitypub.ghost.org
@daidaisuke GhostのActivityPub機能は一昨日からパブリックベータとして公開されました。
洪 民憙 (Hong Minhee) shared the below article:
Hacker's Pub
daisuke @dai@hackers.pub
分散されながらも(いわゆるFediverseのフィードを)一元化するビューが欲しかった(矛盾してるかな?)。
とにかくタイムラインのタブはこのように4つ。指定した言語以外のポストは薄く表示される(私は en-US
, zh-CN
, ja-JP
, ko-KR
にしてます)。
私が欲しかった切り替え可能な4タブ構成のビューアーです。
GhostのFediverse Betaアカウントはリクエスト制なのかな?
@index@activitypub.ghost.org
洪 民憙 (Hong Minhee) replied to the below article:
seven39
daisuke @dai@hackers.pub
アメリカ東部時刻の19:39-22:39までの3時間しかオープンしないSNS。あと日本時間30分ちょいでクローズ。この制限で改めて気づくことがいくつもあるよ。
https://www.seven39.com/profile/dai
@daidaisuke 面白いコンセプトのSNSですね!😲
洪 民憙 (Hong Minhee) shared the below article:
seven39
daisuke @dai@hackers.pub
アメリカ東部時刻の19:39-22:39までの3時間しかオープンしないSNS。あと日本時間30分ちょいでクローズ。この制限で改めて気づくことがいくつもあるよ。
https://www.seven39.com/profile/dai
이番에 @lqezHyunwoo Park 님의 《우리의 코드를 찾아서》에 出演하여 #페디버스, #ActivityPub, #Fedify, #Hollo 等에 關해 이야기를 나눴습니다. Fedify와 Hollo의 開發 祕話 같은 게 궁금하시다면 한 番 보셔도 재밌을지도 모르겠습니다. ㅎㅎㅎ
今回、@lqezHyunwoo Park さんの『我々のコードを求めて』というYouTubeに出演させていただき、#フェディバース、#ActivityPub、#Fedify、#Hollo 等についてお話させていただきました。日本語字幕が用意されていますので、FedifyやHolloの開発秘話などが気になる方はぜひご覧ください!
@annyeong안녕 양쪽에서 서로 링크되어 있어서 그런 것 같아요. Hackers' Pub 프로필에 링크 추가하면
a[rel=me]
로 렌더링이 되거든요.
@annyeong안녕 어라, 근데 지금 보니까 Hackers' Pub 쪽에서는 따로 링크를 안 거셨군요? 그럼 왜 인증이 되는 걸까요…? 🤔
오 뭐 안 했는데 자동으로 이런게 되네요
@annyeong안녕 양쪽에서 서로 링크되어 있어서 그런 것 같아요. Hackers' Pub 프로필에 링크 추가하면
a[rel=me]
로 렌더링이 되거든요.
为软件开发者提供的基于 ActivityPub 的社交网络 Hackers' Pub 现已新增中文支持。但请注意,Hackers' Pub 目前仍处于封闭测试阶段,需要我的邀请才能使用。如果您是中文用户,并且有兴趣尝试 Hackers' Pub,请通过私信向我发送您的电子邮件地址。我会将您的电子邮件地址添加到允许列表,并通知您。
https://hackers.pub/@hongminhee/0195aa14-4653-7553-b605-97c19021c6eb
感谢 @dwnDWN | 社会你福哥版 的贡献,Hackers' Pub 现已添加中文翻译!
此外,我们还新增了语言设置功能,允许您选择多个偏好的语言。此设置目前仅用于推荐关注,但未来将应用于自动翻译和算法时间线等功能。
@dwnDWN | 社会你福哥版 様のおかげで、Hackers' Pubに中国語翻訳が追加されました!
また、言語設定が追加され、ご自身が好む複数の言語を選択できるようになりました。この設定は、今のところフォローのおすすめにのみ使用されていますが、今後、自動翻訳やアルゴリズムタイムラインなどで役立つ予定です。
@dwnDWN | 社会你福哥版 님 덕분애 Hackers' Pub에 중국어 번역이 추가되었습니다!
또한, 언어 설정이 추가되어, 자신이 선호하는 복수의 언어를 선택할 수 있게 되었습니다. 이 설정은 당장은 팔로 추천에만 쓰이고 있지만, 앞으로 자동 번역이나 알고리즘 타임라인 등에 요긴하게 쓰일 예정입니다.
感谢 @dwnDWN | 社会你福哥版 的贡献,Hackers' Pub 现已添加中文翻译!
此外,我们还新增了语言设置功能,允许您选择多个偏好的语言。此设置目前仅用于推荐关注,但未来将应用于自动翻译和算法时间线等功能。
@dwnDWN | 社会你福哥版 님 덕분애 Hackers' Pub에 중국어 번역이 추가되었습니다!
또한, 언어 설정이 추가되어, 자신이 선호하는 복수의 언어를 선택할 수 있게 되었습니다. 이 설정은 당장은 팔로 추천에만 쓰이고 있지만, 앞으로 자동 번역이나 알고리즘 타임라인 등에 요긴하게 쓰일 예정입니다.
Emacs + org 하나씩 자동화해서 쓰는 맛이 있네
요즘 새로운 거 배우면 SPC n r n <주제 이름> ENT n
해서 노트 만들고, 글이나 책 읽을 거 있으면 Zotero에 넣어두었다가 M-x cite ENT <글 제목> ENT
해서 읽으면서 기록하면 훨씬 알차게 읽는 듯
오 뭐 안 했는데 자동으로 이런게 되네요
영어권 웹을 보다보면 autism이 한국어에서의 '자폐'보다 부정적인 늬앙스가 훨씬 덜하단 느낌을 받는다. STEM 너드들이 본인이 autistic하다고 하는 경우를 종종 보는데, 자조적인 느낌이 좀 있지만 완전 딥다크한거 같진않고, 이분법적이기보단 스펙트럼으로 보는거 같다.
@bglbgl gwyng 해외에서도 젊은 세대로 갈수록 신경다양성에 대한 이해도가 높고, 한국도 해외보다 늦다 뿐이지 비슷한 것 같아요. 아마 한국도 몇 년 지나면 인식이 많이 나아질 것 같습니다.
@hongminhee洪 民憙 (Hong Minhee)
@arkjunJuntai Park 이유는 모르겠는데 개멋있네요ㄷㄷ
영어권 웹을 보다보면 autism이 한국어에서의 '자폐'보다 부정적인 늬앙스가 훨씬 덜하단 느낌을 받는다. STEM 너드들이 본인이 autistic하다고 하는 경우를 종종 보는데, 자조적인 느낌이 좀 있지만 완전 딥다크한거 같진않고, 이분법적이기보단 스펙트럼으로 보는거 같다.
@hongminhee洪 民憙 (Hong Minhee) 일단 저 선비(?) 가 궁금해진 1인입니다. 😅
@arkjunJuntai Park 사실상 저만 쓰는 소프트웨어입니다. 😂
Temporalが正式リリースになってもしばらくはDateが生き残るんじゃないかと思ってる
@hongminhee洪 民憙 (Hong Minhee) 원래 컴파일이 빠른 게 MoonBit의 장점이었는데 LLVM 코드젠 거치면 느려지는 거 아닐까 싶기도 하네요 😅
@xiniha 아, 그러게요. 하지만 GHC의 느린 빌드로 단련된 제게는 문제가 되지 않을 것 같기도 한데요. ㅋㅋㅋㅋ
Announcing the LLVM backend for MoonBit, hitting 8x faster performance than Java in FFT benchmarks and enabling out-of-the-box debugging!🐰✨ #MoonBit #LLVM
https://www.moonbitlang.com/blog/llvm-backend
음, 정말로 Seonbi를 MoonBit으로 다시 짜 볼까…?
일단 Hackers' Pub부터 개발하자… ㅎㅎㅎ
@moonbitlangMoonBit now supports LLVM backend, offering better performance and debugging capabilities!
음, 정말로 Seonbi를 MoonBit으로 다시 짜 볼까…?
@moonbitlangMoonBit now supports LLVM backend, offering better performance and debugging capabilities!
”Code is not the most valuable artifact. Your understanding of the codebase is.” https://www.seangoedecke.com/vibe-coding/
이番에 @lqezHyunwoo Park 님의 《우리의 코드를 찾아서》에 出演하여 #페디버스, #ActivityPub, #Fedify, #Hollo 等에 關해 이야기를 나눴습니다. Fedify와 Hollo의 開發 祕話 같은 게 궁금하시다면 한 番 보셔도 재밌을지도 모르겠습니다. ㅎㅎㅎ
@hongminhee洪 民憙 (Hong Minhee) 글이 슬슬 쌓이다 보니 북마크 기능 (트위터의 북마크나, 스레드의 저장기능) 도 있으면 좋겠다 싶습니다.
(물론 우선도는 낮지만요. 😅) 북마크 보다는 사실 좋아요 기능이 더 있었으면 싶기는 합니다.
@arkjunJuntai Park 물론 둘 다 로드맵에 있습니다! 좋아요 기능은… Misskey나 Pleroma 등의 구현에서는 (Slack이나 Discord와 비슷한) 에모지 리액션 기능이 있어서, 그것과 좋아요가 기능적으로 겹치기 때문에 어떻게 풀어낼지 고민하고 있네요.
https://snix.dev/ 저는 Rust를 못해서 기여를 못하지만 유망한 프로젝트라고 생각합니다. Rust 고수분들이 관심가져주시면 좋겠네요.
@hongminhee洪 民憙 (Hong Minhee) VSCode 대신 Zed도 한번 시도해보시죠!
@xiniha 아, Zed도 종종 쓰고 있긴 합니다. 아직 Deno 확장이 VS Code에서만큼 잘 돌지 않아서 여전히 메인은 VS Code로 쓰고 있네요.
웨이터, Vitest. 온 더 락으로.
사람들이 잘 모르는 Markdown 명세 하나. CommonMark, 즉 표준 Markdown에서 URL은 자동으로 링크되지 않는다. 대부분의 Markdown 구현체들이 이를 옵션으로 지원하고, Markdown을 지원하는 웹사이트들이 이 옵션을 켜놓고 있기 때문에 모르는 사람들이 많다. CommonMark에서 URL이나 메일 주소를 링크하려면 <
와 >
로 주소를 감싸야 한다.
이를 잘 이용하면 URL의 앞 뒤에 띄어쓰기를 하지 않고도 링크를 걸 수 있다는 장점도 된다.
@arkjunJuntai Park AutoHotKey 스크립트는 자체 언어인가 보네요? 처음 보는 문법!
@hongminhee洪 民憙 (Hong Minhee) 단축키나 매크로를 주 용도로 하다 보니, 아무래도 그쪽에 최적화되어 있네요. 😅
맥에서 가장 비슷한 앱은 HammerSpoon 정도이지 싶습니다.
Hackers' Pub에 RSS 기능을 추가했습니다. 정확히는 RFC 4287, 일명 Atom 명세를 구현했습니다. RSS 디스커버리도 구현했기 때문에, Hackers' Pub 사용자의 프로필 페이지 링크를 RSS 앱에 추가하면 구독이 가능합니다. 확실한(?) 피드 링크를 알고 싶으시면 프로필 링크 뒤에 /feed.xml을 붙이시면 됩니다. 예를 들어, 제 피드 링크는 https://hackers.pub/@hongminhee/feed.xml입니다.
洪 民憙 (Hong Minhee) shared the below article:
윈도를 맥처럼 - 맥의 CMD + 백틱키 단축키를 윈도에서 쓰기 (사용중 앱간 윈도우 전환)

Juntai Park @arkjun@hackers.pub
맥을 오랫동안 메인 개발머신으로 사용하다가 윈도를 다시 메인으로 사용한 지 1년째.
여러가지 단점에도 불구하고, 윈도11 + WSL (우분투) 환경에서의 개발이 나쁘지만은 않습니다. 물론 CMD 키도 없고, Ctrl 키를 이용한 복사 붙여넣기는 불편합니다만.
그럼에도 맥에 없는 윈도의 장점들이 맘에 들고, 윈도에 없는 맥의 장점들 또한 맘에 듭니다.
물론, 언젠가 또 맥을 다시 메인으로, 윈도를 서브로 쓰는 날도 오겠지요. 메인은 때로 상황에 따라 교체할 수 있음을 유연하게 생각해 두는 편입니다.[1]
사설이 길었는데, 제가 맥에서 자주 쓰는 단축키인 CMD + `(억음 악센트/백틱) 키 는, 사용 중인 앱의 전환을 시켜주는데, 가령 크롬 브라우저 창을 두 개 열었다면 단축키 사용시에 크롬 브라우저 창 간 전환을 시켜 줍니다.
맥에서 가장 많이 사용하는 단축키여서, 윈도에서 비슷한 역할을 하는 단축키를 열심히 구글링하여 찾아 보았으나 찾을 수 없었습니다.
그래서 AutoHotkey[2] 를 이용해 간단한 스크립트를 만들어서 사용하고 있습니다.
사실 완벽하게 동작하지는 않고, 개인적으로 쓰기에 적당히 만족하는 수준에서만 동작하는 코드라, 공유하기에 부끄럽기도 하고 코드도 초 간단합니다만,
- 누군가 맥에 익숙하지만 윈도도 쓰는 사용자에게 도움이 되는 마음과,
- Hackers’ Pub 의 부흥(?) 을 기원하면서.
해당 AutoHotKey 스크립트 코드를 공유합니다.
; Alt + 백틱 키를 눌렀을 때 실행되는 코드
; MacOS 의 CMD + ` (Backtick) 키로 동일 프로그램내 창전환을 윈도에서 구현.
!`::
{
focusedWindow := WinExist("A")
if !focusedWindow
return
focusedPID := WinGetPID(focusedWindow)
focusedPName := WinGetProcessName(focusedWindow)
focusedClass := WinGetClass(focusedWindow)
focusedTitle := WinGetTitle(focusedWindow)
; Get all windows of the same class and process
windows := []
for window in WinGetList()
{
if (WinGetPID(window) = focusedPID && WinGetTitle(window) != focusedTitle)
{
windows.Push(window)
}
}
if (windows.Length > 1)
{
WinActivate(windows[2])
} else if (windows.Length = 1) {
WinActivate(windows[1])
}
}
실행 방법은 위의 코드를 임의의 ahk 확장자를 가진 파일로 작성하여 AutoHotKey 로 실행시키면 끝입니다. AutoHotkey 를 통해 해당 스크립트를 실행파일 (exe) 로 컴파일 할 수도 있습니다.
덧) 과거에 이미 GitHub Gist 쪽에 공유해 놓기는 했습니다.
읽어주셔서 감사합니다.
사실 최근 윈도를 메인으로 쓰는 1년 동안, 중간에 간간히 맥을 메인으로 쓰기도 했습니다. ↩︎
오토핫키(AutoHotkey)는 윈도우에서 키보드 단축키 설정, 간단한 매크로 제작, 자동화 등을 목적으로 하는 무료 오픈 소스 기반의 스크립트 언어이다. 간단한 프로그램 제작에 특화된 직관적인 문법을 갖추고 있으며 마우스와 키보드 제어, 화면에서 이미지 검색, 윈도우 창 조작, 간단한 GUI 제작 등 언어의 목적에 맞는 기능이 내장되어 있다. 출처 : 나무위키 (https://namu.wiki/w/AutoHotkey) ↩︎
洪 民憙 (Hong Minhee) replied to the below article:
윈도를 맥처럼 - 맥의 CMD + 백틱키 단축키를 윈도에서 쓰기 (사용중 앱간 윈도우 전환)

Juntai Park @arkjun@hackers.pub
맥을 오랫동안 메인 개발머신으로 사용하다가 윈도를 다시 메인으로 사용한 지 1년째.
여러가지 단점에도 불구하고, 윈도11 + WSL (우분투) 환경에서의 개발이 나쁘지만은 않습니다. 물론 CMD 키도 없고, Ctrl 키를 이용한 복사 붙여넣기는 불편합니다만.
그럼에도 맥에 없는 윈도의 장점들이 맘에 들고, 윈도에 없는 맥의 장점들 또한 맘에 듭니다.
물론, 언젠가 또 맥을 다시 메인으로, 윈도를 서브로 쓰는 날도 오겠지요. 메인은 때로 상황에 따라 교체할 수 있음을 유연하게 생각해 두는 편입니다.[1]
사설이 길었는데, 제가 맥에서 자주 쓰는 단축키인 CMD + `(억음 악센트/백틱) 키 는, 사용 중인 앱의 전환을 시켜주는데, 가령 크롬 브라우저 창을 두 개 열었다면 단축키 사용시에 크롬 브라우저 창 간 전환을 시켜 줍니다.
맥에서 가장 많이 사용하는 단축키여서, 윈도에서 비슷한 역할을 하는 단축키를 열심히 구글링하여 찾아 보았으나 찾을 수 없었습니다.
그래서 AutoHotkey[2] 를 이용해 간단한 스크립트를 만들어서 사용하고 있습니다.
사실 완벽하게 동작하지는 않고, 개인적으로 쓰기에 적당히 만족하는 수준에서만 동작하는 코드라, 공유하기에 부끄럽기도 하고 코드도 초 간단합니다만,
- 누군가 맥에 익숙하지만 윈도도 쓰는 사용자에게 도움이 되는 마음과,
- Hackers’ Pub 의 부흥(?) 을 기원하면서.
해당 AutoHotKey 스크립트 코드를 공유합니다.
; Alt + 백틱 키를 눌렀을 때 실행되는 코드
; MacOS 의 CMD + ` (Backtick) 키로 동일 프로그램내 창전환을 윈도에서 구현.
!`::
{
focusedWindow := WinExist("A")
if !focusedWindow
return
focusedPID := WinGetPID(focusedWindow)
focusedPName := WinGetProcessName(focusedWindow)
focusedClass := WinGetClass(focusedWindow)
focusedTitle := WinGetTitle(focusedWindow)
; Get all windows of the same class and process
windows := []
for window in WinGetList()
{
if (WinGetPID(window) = focusedPID && WinGetTitle(window) != focusedTitle)
{
windows.Push(window)
}
}
if (windows.Length > 1)
{
WinActivate(windows[2])
} else if (windows.Length = 1) {
WinActivate(windows[1])
}
}
실행 방법은 위의 코드를 임의의 ahk 확장자를 가진 파일로 작성하여 AutoHotKey 로 실행시키면 끝입니다. AutoHotkey 를 통해 해당 스크립트를 실행파일 (exe) 로 컴파일 할 수도 있습니다.
덧) 과거에 이미 GitHub Gist 쪽에 공유해 놓기는 했습니다.
읽어주셔서 감사합니다.
사실 최근 윈도를 메인으로 쓰는 1년 동안, 중간에 간간히 맥을 메인으로 쓰기도 했습니다. ↩︎
오토핫키(AutoHotkey)는 윈도우에서 키보드 단축키 설정, 간단한 매크로 제작, 자동화 등을 목적으로 하는 무료 오픈 소스 기반의 스크립트 언어이다. 간단한 프로그램 제작에 특화된 직관적인 문법을 갖추고 있으며 마우스와 키보드 제어, 화면에서 이미지 검색, 윈도우 창 조작, 간단한 GUI 제작 등 언어의 목적에 맞는 기능이 내장되어 있다. 출처 : 나무위키 (https://namu.wiki/w/AutoHotkey) ↩︎
@arkjunJuntai Park AutoHotKey 스크립트는 자체 언어인가 보네요? 처음 보는 문법!
바둑에 '묘수 3번두면 바둑은 진다'라는 말이 있는데, 프로그래밍에 비슷한 말이 있을까요
@bglbgl gwyng Donald Knuth의 이 격언이 생각나네요:
프로그래머들은 자신의 프로그램에서 중요하지 않은 부분의 속도에 대해 생각하거나 걱정하는 데 엄청난 시간을 낭비합니다. 이러한 효율성 추구는 디버깅과 유지보수를 고려할 때 오히려 큰 부정적 영향을 미칩니다. 우리는 작은 효율성에 대해, 즉 약 97%의 경우에는 잊어버려야 합니다. 조기 최적화는 모든 악의 근원입니다. 하지만 그 중요한 3%의 기회는 놓치지 말아야 합니다.
바둑에 '묘수 3번두면 바둑은 진다'라는 말이 있는데, 프로그래밍에 비슷한 말이 있을까요
🚀 Deno v2.2.4 is released:
- Built-in OpenTelemetry support for span context propagators (tracecontext, baggage)
- Built-in OTel tracing for node:http.request
- LSP now starts the TypeScript server lazily
other improvements in the release notes:
https://github.com/denoland/deno/releases/tag/v2.2.4
@hongminhee洪 民憙 (Hong Minhee) 저도 Either Monad 패턴 접한 이후로 다른 언어에서 throw-catch 할 때마다 불안해요 ㅋㅋ...
@nyeongAn Nyeong (安寧) 차라리 Java의 checked exceptions가 더 좋게 느껴져요.
어렸을 때는 Smalltalk나 Lisp 같은 언어에 마음을 많이 빼앗겼는데 (아마도 당시 쿨한 언어였던 Python이나 Ruby의 영향…) Haskell을 접한 뒤로는 언어 취향이 아주 많이 바뀐 것 같다. 일단 동적 타입 언어를… 싫어하는 정도까진 아니지만, 쓰면서 불안함을 느끼게 됐다.