Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 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

그 동안에는 Mastodon 등 다른 연합우주 인스턴스에서 앙케트를 만들면 Hackers' Pub에서는 앙케트의 선택지가 보이지도 않고 참여할 수도 없었는데요, 이제 Hackers' Pub에서도 앙케트(poll)에 참여할 수 있게 되었습니다. 다만, 아직 Hackers' Pub에서 새 앙케트를 만드는 기능은 구현되지 않았습니다. 새 앙케트를 만드는 기능은 필요하다는 의견이 많으면 구현하도록 하겠습니다. 언제나 같은 패턴이지만, UI 만드는 게 힘들어서요. 😅

3
5

사소한 업데이트지만… 기존에는 다른 연합우주 인스턴스로부터 비디오가 첨부된 단문이 왔을 때 비디오는 아예 누락되었는데, 이제는 비디오의 섬네일이 보이고 누르면 비디오가 재생되도록 만들었습니다. 다만, 여전히 Hackers' Pub에서 비디오를 첨부하는 기능은 구현되지 않았습니다. (우선 순위가 낮아서 언제 구현될 지 저도 모르겠네요.)



RE: https://hollo.social/@hongminhee/01963809-041e-7b26-a242-a8e1cc4b0afc

3
2
0
1

요즘 바이브 코딩을 계속 시도해 보고 있는데, 국제화 등의 작업에서는 아주 만족스러운 반면, 다소 복잡한 과업에서는… 너무 헤매거나, 너무 오래 걸리는 것 같다. 결국 답답해서 직접 코딩하게 되는 것의 반복.

아, 일단 여태까지는 Claude Sonnet 3.7을 주로 쓰긴 했다. Gemini 2.5 Pro도 써 보긴 해야 하는데…

2

그나저나 작년 12월에 MVP로 목표했던 기능 중에 하나가 패스키였는데… 이것으로 처음 생각했던 MVP는 달성한 것 같다.

6

지금까지 Hackers' Pub은 반드시 이메일을 통해 로그인 링크를 수신하는 식으로만 로그인이 가능했는데, 사실은 많이 번거로웠죠?

이를 해결하기 위해 Hackers' Pub에 패스키 기능을 추가했습니다. 패스키 추가는 설정패스키 페이지에서 할 수 있으며, 패스키가 등록된 기기 및 브라우저에서는 로그인 페이지에서 자동적으로 패스키를 사용할 것인지 묻는 창이 뜨게 됩니다.

Hackers' Pub의 패스키 설정 페이지. 위쪽에는 패스키 등록을 위한 폼이, 아래쪽에는 등록된 패스키를 나열한 표가 보인다.Hackers' Pub의 로그인 페이지. 우측 상단에 패스키를 사용하여 로그인할 것인지 묻는 창이 보인다.
9
0
3
0
4

다른 연합우주 서버로부터 앙케트 조사를 담은 Create(Question) 액티비티가 자주 들어오고 있는데, Hackers' Pub에서도 적어도 앙케트 조사를 열 수는 없어도 참여할 수는 있게 해야 하나 고민하고 있다. 그런데 이것도 결국 UI가 귀찮은 문제인데…

3
14
0
0

Hackers' Pub은 검색에서 몇 가지 기본적인 문법들을 지원하고 있습니다. 문서화되지 않았기 때문에 한 번 정리해 봅니다.

문법 설명 예시
" 키워드 " 따옴표 안에 들어간 문자열을 띄어쓰기를 포함하여 찾습니다.
대소문자는 구분하지 않습니다.
(따옴표 안에 따옴표를 넣으려면 \"와 같이 이스케이프.)
"Hackers' Pub"
from: 핸들 해당 사용자가 쓴 콘텐츠만 추립니다. from:hongminhee
from:hongminhee@hollo.social
lang: ISO 639-1 해당 언어로 쓰여진 콘텐츠만 추립니다. lang:ko
# 태그 해당 태그가 달린 콘텐츠만 추립니다.
대소문자는 구분하지 않습니다.
#Fedify
조건 조건 띄어쓰기 양 옆의 조건을 모두 만족하는 콘텐츠만 추립니다(논리곱). "Hackers' Pub" lang:ko
조건 OR 조건 OR 연산자 양 옆의 조건 중 하나라도 만족하는 콘텐츠를 추립니다(논리합). 해커즈퍼브 OR "Hackers' Pub" lang:ko
( 조건 ) 괄호 안의 연산자들을 먼저 결합합니다. (해커즈퍼브 OR 해커즈펍 OR 해커스펍) lang:ko

구체적인 동작 방식은 Hackers' Pub 소스 코드를 보시면 더 자세히 알 수 있습니다.

4
3

드디어 @xtjuxtapose 님이 기다리시던 차단 기능이 구현되었습니다. 차단할 사용자의 프로필 페이지에 가서 팔로·언팔로 버튼 오른쪽에 보이는 말줄임표 아이콘에 마우스 커서를 갖다 대면 (모바일에서는 터치하면) 상세 메뉴가 나오는데, 그 안에 팔로워 삭제 버튼과 차단 버튼이 생겼습니다.

ActivityPub 프로토콜 수준에서는 차단은 Block 액티비티를 차단한 액터에게 보내며, 차단을 해제할 경우 Undo(Block) 액티비티를 보냅니다. 그러나, 그 액티비티를 받은 인스턴스의 구현이 차단한 사용자의 콘텐츠를 볼 수 없도록 막지 않을 수도 있습니다…만, 실질적으로는 모든 구현이 막고 있습니다. 아, 당연하지만 차단은 자동적으로 상호 언팔로를 수행합니다. 차단을 해제하더라도 풀렸던 팔로 관계는 자동적으로 회복되지 않습니다.

언팔로 버튼 오른쪽에 말줄임표 모양의 아이콘이 보이며, 그 아래 드롭다운 메뉴가 보인다. 드롭다운 메뉴에는 팔로워 삭제 버튼과 차단 버튼이 보인다.
12

Hackers' Pub에 차단 구현하면서 지금 만들고 있는 코드인데… fromAccountToTarget/fromTargetToAccount 말고 좀 더 짧으면서 좋은 이름이 없을까? 🤔

export type RelationshipState =
  | "block"
  | "follow"
  | "request"
  | "none";

export interface Relationship {
  account: Account & { actor: Actor };
  target: Actor;
  fromAccountToTarget: RelationshipState;
  fromTargetToAccount: RelationshipState;
}
2
3

차단 기능의 밑작업으로… 차단 당하는 기능을 만들었습니다. Hackers' Pub 사용자 여러분은 이제 연합우주 내 다른 인스턴스의 사용자로부터 차단 당할 수 있습니다. ActivityPub의 Block 액티비티 및 Undo(Block) 액티비티를 수신하고 처리할 수 있게 되었다는 뜻입니다. 하지만 아직 차단을 하는 건 안 됩니다. 오늘은 일단 여기까지 하기로 하고… 차단 기능은 아마 내일이나 완성될 것 같군요.

5
3

Hackers' Pub에 차단 기능을 만들다 보니 일단 모델 쪽에서 팔로워 삭제 기능이 필요하다는 것을 깨달았다. 즉시 하던 작업 다 git stash하고 팔로워 삭제 먼저 만드는 중… (하지만 UI로 노출하는 건 나중에 할 생각.)

4

Hackers' Pub에 차단 기능을 만들고 있는데, A가 B를 차단했을 때 A가 B의 콘텐츠를 볼 수 있어야 한다고 생각하시나요? 물론 타임라인 등에서는 기본적으로 다 가려지겠지만, B가 올린 콘텐츠의 퍼머링크를 굳이 찾아서 들어갔을 때 말이죠. 아, 당연히 B 입장에서는 A의 콘텐츠는 전혀 볼 수 없고요. (A가 공개로 올린 콘텐츠를 B가 로그인하지 않은 채 볼 수야 있겠지만…)

1

생각해 보니 에모지 반응 찍을 때 게시물이 Mastodon에서 작성된 경우에는 선택지를 없애는 게 나으려나…? Like 액티비티로 표현되는 ❤️ 이외에는 모두 Mastodon이 받아들이지 않는 EmojiReact 액티비티로 표현되기 때문에, 게시물 작성자가 어차피 에모지 반응을 볼 수 없으므로…

1
3
6

PostgreSQL 내장 전문 검색의 가장 큰 문제는 성능이 아니라, 색인을 만들거나 검색할 때 대상 언어를 지정해야 한다는 것. 당연히 언어가 섞여 있으면 제대로 동작 안 하고, 색인하려는 내용이 어떤 언어로 작성되었는지 모를 때도 곤란하다.

1

技術者向けSNS「Hackers' Pub」の招待枠を持っています。ActivityPubに対応し多言語サポートもある、エンジニアや技術に興味がある方のためのコミュニティです。参加希望の方はDMやコメントでメールアドレスをお知らせください。招待状をお送りします。

#HackersPub #テック #プログラミング



RE: https://hackers.pub/@hongminhee/0195faee-783f-7d33-ad90-88c497655ab9

3
0
0

GeekNews의 〈소프트웨어 엔지니어로 산다는 건 미친 짓이야〉 주제에 @youknowone 님께서 쓰신 좋은 댓글:

소프트웨어 개발이 어려운 일이라는 사람들은 본인이 그 일을 하는 이유가 뭘까요? 고되고 힘든 일이지만 보람있는 일이라서 하시나요? 이 업계에서 그런 분들은 그리 많지는 않았던 것 같습니다. 남들이 못하는 것 같으니까 어렵다고 주장하는거지, 실상은 그게 본인한테 가장 쉬운 일이니까 하시는 것 아닌가요? 남들이 좀 띄워준다고 자화자찬하면서 나만 특별한 양 여기면서 눈을 가리지 말고 주위를 봐야합니다. 이공계에서 어떤 분야가 방구석에서 인터넷 좀 보고 독학한다고 (잘 하면) 몇달만에 현업에 투입할 수 있는 전문가가 됩니까?

(…중략…)

물론 남들이 가지지 못한 훌륭한 손재주를 가진 사람은 존중받아 마땅하지만, 약간의 손재주를 연마했다고 해서 소싯적 배워둔 손재주로 평생 먹고 살면 좋을텐데 왜 그럴수 없을까, 나는 이런 훌륭한 손재주를 가졌는데 다른 사람들처럼 힘들게 일하지 않아야 하는 것 아닐까, 나는 남들은 쉽게 하지 못하는 대단한 재능을 가진 것이 아닐까 등등의 특별한 나에 심취하는건 교만에 가까운 일이 아닐까 합니다.

8
0
0
0

메타적인 얘기지만, 저는 오늘 “Kubernetes는 적정 기술인가?”라는 떡밥이 Hackers' Pub 내부적으로 발생했다는 사실이 아주 기쁩니다. 여태까지는 Hackers' Pub 자체에 대한 떡밥이거나, GeekNews나 X에서 넘어온 떡밥이었거든요.

12

PostgreSQL에서는 GENERATED ALWAYS AS 절을 통해 생성된 칼럼을 지원하는데, 이게 간단한 사칙연산이나 문자열 연결 정도는 쉽게 가능하지만, 이 안에서 서브쿼리를 쓸 수 없기 때문에 조금만 복잡한 계산도 할 수가 없다. 나 같은 경우에는 {"foo": 1, "bar": 2, "baz": 3}과 같은 jsonb 값이 있을 때 이로부터 6과 같은 합산을 해야 하는 상황인데, sum() 같은 집계 함수를 쓸 수 없기 때문에 원하는 동작을 만들어 내지 못한다… 최후의 카드로 커스텀 함수 정의해서 쓰는 방법이 있긴 한데… 음…

1
6

Hackers' Pub의 에모지 반응 기능은 Mastodon의 좋아요, Misskey 계열, Pleroma 계열, kmyblue 및 Fedibird의 에모지 반응 기능과 호환됩니다. 기술적으로는 기본 에모지인 ❤️는 Like 액티비티로 표현되며 그 외 나머지 에모지는 EmojiReact 액티비티로 표현됩니다. Mastodon, kmyblue, Fedibird의 좋아요는 ❤️ 에모지 반응으로 변환됩니다 (Misskey의 동작과 유사). 또한, Misskey 계열과 달리 한 사람이 한 콘텐츠에 여러 에모지 반응을 남길 수도 있습니다 (Pleroma 계열의 동작과 유사). Hackers' Pub 사용자가 남길 수 있는 에모지 반응은 ❤️, 🎉, 😂, 😲, 🤔, 😢, 👀 이렇게 7종이며, 그 외의 에모지 및 커스텀 에모지는 보낼 수는 없고 받는 것만 됩니다.

12
14
2
0

공개 범위에 관한 질문이 자주 올라와서 한 번 정리를 해봤습니다.

공개 범위 공개 조용히 공개 팔로워만 언급된 사용자만
연합 타임라인[1] 보임 안 보임 안 보임 안 보임
모든 팔로워들의 타임라인 보임 보임 보임 안 보임
언급된 사용자들의 타임라인 보임 보임 보임 보임
퍼머링크를 통한 미인증된 접근 보임 보임 안 보임 안 보임
작성자의 프로필 페이지 보임 보임 안 보임 안 보임

  1. Hackers' Pub의 연합 타임라인은 로그인하지 않은 채로 첫 페이지(“연합우주” 탭)를 보면 나옵니다. ↩︎

0
0
0

주말에 했던 〈국한문혼용체에서 Hollo까지〉의 발표에서 대강:

  1. 연합우주에서도 국한문혼용체로 글을 쓰는데 사람들이 읽기 쉽게 한글 독음을 <ruby> 태그로 달고 싶다!
  2. Mastodon에 패치를 할 수는 있지만 업스트림에 받아들여질 리가 없으니 패치된 Mastodon 서버를 직접 운영할 수 밖에 없다.
  3. 혼자 쓰자고 Mastodon 서버를 운영하려니 비용이 크다. 가벼운 ActivityPub 서버 구현을 만들어야겠다.
  4. ActivityPub 서버 구현을 바닥부터 하자니 할 일이 너무 많다. ActivityPub 프레임워크를 만들어야겠다. → Fedify
  5. Fedify를 만들었으니 일인 사용자용 ActivityPub 서버를 구현하자. → Hollo
  6. Hollo를 만들었으니 Seonbi를 연동하자.
  7. Seonbi를 연동하여 한자어에 한글 독음이 <ruby>로 달게 했으나 Mastodon과 Misskey에서 <ruby> 태그를 지원 안 한다.
  8. Mastodon 쪽에 이슈를 만들고 연합우주에서 홍보하여 결국 패치됨. Mastodon에서도 <ruby> 지원!
  9. Misskey 쪽에 패치를 보내서 결국 Misskey에서도 <ruby> 지원!
  10. 행복한 국한문혼용 생활.

이상과 같은 이야기를 했더니, “야크 셰이빙이 엄청나다”라는 의견을 들었다.



RE: https://hackers.pub/@hongminhee/019603e0-33ef-700f-90f4-153c8c995135

0
0
0
0
0

연합우주 계정의 이전에 관한 규격인 FEP-7628를 구현하고 있습니다. 아직 Hackers' Pub 계정을 다른 계정으로 이전하거나, 다른 계정을 Hackers' Pub 계정으로 이전하는 기능은 구현되지 않았지만, 그 밑작업으로서 FEP-7628을 이미 구현한 Mastodon, Misskey, Pleroma 등의 계정끼리 서로 이전한 것을 반영하는 기능은 구현되었습니다. 예를 들어, 제 옛날 계정 중 하나인 @hongminhee洪 民憙 (Hong Minhee) 계정을 보면 첨부한 캡처 화면처럼 계정의 이전 안내가 표시되게 됩니다.

Hackers' Pub에서 더이상 사용되지 않는 계정의 프로필 화면. 새로운 계정으로 이전되었다는 메시지가 상단에 표시되고, 옛 계정의 프로필 사진은 흑백으로 보인다.
0
0

하지만 이식성을 위해서 짧은 옵션을 사용해야만 할 때도 있다. BSD 계열의 커맨드 구현들은 보통 긴 옵션을 아예 제공 안 하기 때문에… 😭

0
0
0
1

正體中文翻譯現已可用!

我們很高興地宣布,Hackers' Pub 現在支援正體中文(zh-TW)!這意味著我們的介面將更加親近使用正體中文的軟體工程師和技術愛好者。

關於 Hackers' Pub

Hackers' Pub 是一個專為軟體工程師共同分享知識和經驗的平台。我們不僅是一個社區,還是一個啟用了 ActivityPub 的社交網路,讓您可以在聯邦宇宙(fediverse)中關注您喜愛的開發者,並在您的訂閱流中獲取他們的最新貼文。

我們的特色:

  • 開放的技術交流:自由分享您的知識、經驗和見解
  • 多語言支援:現在包括正體中文在內的多種語言
  • 聯邦互連:通過 ActivityPub 協議與其他平台(如 Mastodon)互通
  • 程式碼分享:支援 Markdown 和程式碼語法高亮
  • 包容性社區:遵循我們的行為準則,確保所有人都受到尊重

如何切換到正體中文

要將介面切換到正體中文,請按照以下步驟操作:

  1. 登入您的 Hackers' Pub 帳戶
  2. 前往「Settings」頁面
  3. 選擇「Language settings」標籤
  4. 在左側「Languages to select:」列表中找到並點擊「Chinese (Taiwan) 中文(台灣)」
  5. 該選項會移至右側的「Selected languages:」列表
  6. 如果您希望將正體中文設為主要介面語言,可以使用箭頭按鈕將其移至已選擇語言列表的最上方
  7. 點擊頁面底部的「Save」按鈕保存設定

我們也提供了正體中文版的 Markdown 指南,幫助您以最佳方式格式化您的貼文和文章。

加入 Hackers' Pub

Hackers' Pub 目前採用邀請制。如果您希望加入我們的社區,可以通過直接發送私人訊息(DM)給我來請求邀請碼。我們非常歡迎正體中文使用者的加入!

幫助我們改進

這是我們首次推出正體中文介面,可能仍有需要改進的地方。如果您發現任何翻譯錯誤或有改進建議,請透過以下方式聯繫我們:

感謝您成為 Hackers' Pub 社區的一員,讓我們一起建立一個更加包容、多元的技術交流平台!


附言:如果您對其他語言的翻譯感興趣,請查看我們的翻譯貢獻指南(英文)。

0

개인적으로 Misskey에서 유감인 점이 여러 가지 있는데,[1] 그 중 하나가 ActivityPub 수준에서 언어 태그를 안 한다는 것. 그래서 해당 게시물이 어떤 언어로 쓰였는지에 따라 필터링을 구현하고 싶어도 쉽게 할 수가 없다.


  1. 물론 그만큼 Mastodon에도 유감인 점이 많다. ↩︎

0