어제랑 오늘 오전은 주로 버그 수정만 했다.
- 비공개 게시물은 공유 못 하게 막음
- Markdown 렌더링에서 GitHub 스타일 콜아웃 버그 고침
- AUTHORIZED_FETCH 적용된 인스턴스로부터 노트 객체 요청 받았을 때 무조건 401 떨어지던 버그 수정 (Fedify까지 덩달아 수정…)
- 각주 링크 작동 안 하던 버그 고침
- 다른 사람 DM이 타임라인에 뜨던 버그 고침
- 파비콘 추가
@hongminhee@hackers.pub · 625 following · 410 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
어제랑 오늘 오전은 주로 버그 수정만 했다.
중국어 번역도 추가하고 싶긴 한데, 나의 중국어 실력이 아직은 역부족이다…
えーと…Hackers' Pubの上部のナビゲーションバーのデザインを改善する必要が有るけど、どの様に改善すれば良いのか分からない。
昨日と今朝は主にバグ修正だけだった。
AUTHORIZED_FETCH
が適用されたインスタンスからノートオブジェクトのリクエストを受けた時、無条件に401が出るバグ修正(Fedifyまでまとめて修正…)아, 생각해 보니 RSS도 추가해야겠다.
어제랑 오늘 오전은 주로 버그 수정만 했다.
@noellaboのえる whats your new handle?
@liaizonwakest ⁂ His handle on Hackers' Pub is
@noellaboのえる.
궁금해 하실 분들이 계실지 모르겠지만, Hackers' Pub은 아래의 기술로 만들어지고 있습니다.
2025년 3월 현재 Fresh 2.0은 정식 버전이 릴리스되지 않은 상태인데, 무시하고 불안정 버전을 그대로 쓰고 있습니다. Fresh 1.0 → 2.0에서 많은 게 바뀌기 때문에 굳이 Fresh 1.0을 쓰고 싶지 않았습니다. ↩︎
気になる方がいるか分かりませんが、Hackers' Pubは下記の技術で作られています。
2025年3月現在Fresh 2.0は正式版がリリースされていない状態ですが、無視して不安定なバージョンを使っています。Fresh 1.0→2.0で色々変わったので、あえてFresh 1.0を使いたくなかったです。 ↩︎
궁금해 하실 분들이 계실지 모르겠지만, Hackers' Pub은 아래의 기술로 만들어지고 있습니다.
2025년 3월 현재 Fresh 2.0은 정식 버전이 릴리스되지 않은 상태인데, 무시하고 불안정 버전을 그대로 쓰고 있습니다. Fresh 1.0 → 2.0에서 많은 게 바뀌기 때문에 굳이 Fresh 1.0을 쓰고 싶지 않았습니다. ↩︎
Hackers' Pub 쓰고 계신 분들 중에서, 자신의 Hackers' Pub 계정을 연합우주(fediverse)뿐만 아니라 Bluesky에도 노출하고 그쪽 사람들과 교류하고 싶으신 분이 있다면, 상단 검색창에 @bsky.brid.gy@bsky.brid.gy
을 검색하셔서 나오는 프로필을 팔로해 보세요. 그리고 1분 정도 뒤에 Bluesky에서 본인ID.hackers.pub.ap.brid.gy
로 검색하면 본인의 Hackers' Pub 계정이 Bluesky에서도 보이는 걸 확인하실 수 있을 겁니다.
블루스카이 여러분들 하위하위
Node.js滅びてくれ
使いにくすぎる
@hongminhee洪 民憙 (Hong Minhee) 두 번 시도해서 두 번 다 타임아웃 났었는데 지금 하니까 되네요 (..) 일시적인 딜레이였던 거 같습니다.
@linear 다행입니다!
앱 개발 일만 8년간 한 사람 오늘 드디어 웹 개발 시작한다 시작은 역시 hello world 부터라고 생각합니다 netlify 가입했고 세팅했고 index.html 잘 나오는 거 확인했으니까 오늘은 여기서 끝!
프로필 링크에 아무거나 막 넣을 수 있는 게 아닌 걸까? 네이버 블로그 URL 을 넣었더니 타임아웃이 난다(..)
@linear 어라, 그건 버그 같네요! 혹시 재시도 해보셔도 안 되나요?
hackers.pub 모바일 앱이 있으면 좋겠다 일단 iOS 개발자가 손을 들어봅니다 ㅋㅋ
@linear 그러게요, 모바일 앱을 하나 만들어야 할 것 같아요. 근데 아직 웹에서 모바일 뷰도 제대로 안 되어서… 그것부터 좀 잘 만들어 두려고요!
@linear 마크다운이 먹는다니 감격스러워 ㅠㅠ
hackers.pub 모바일 앱이 있으면 좋겠다 일단 iOS 개발자가 손을 들어봅니다 ㅋㅋ
Got an interesting question today about #Fedify's outgoing #queue design!
Some users noticed we create separate queue messages for each recipient inbox rather than queuing a single message and handling the splitting later. There's a good reason for this approach.
In the #fediverse, server response times vary dramatically—some respond quickly, others slowly, and some might be temporarily down. If we processed deliveries in a single task, the entire batch would be held up by the slowest server in the group.
By creating individual queue items for each recipient:
It's a classic trade-off: we generate more queue messages, but gain better resilience and user experience in return.
This is particularly important in federated networks where server behavior is unpredictable and outside our control. We'd rather optimize for making sure your posts reach their destinations as quickly as possible!
What other aspects of Fedify's design would you like to hear about? Let us know!
🧪 Experiment with Temporal in @firefoxnightly!
The New API has,
✅ Time Zone Support – Easy UTC conversions!
✅ Precise Calculations – Leap years, daylight savings
✅ Built-in Parsing & Formatting – No need for third-party libraries
Start exploring 👇
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal
@hongminhee洪 民憙 (Hong Minhee) さんに招待をいただきました。よろしくです。
@lionhairdino 그러지 않기를 빌겠습니다… 🙏
오 hackers pub 모바일 뷰 고쳐졌다
계정 이름에도 커스텀 에모지 표시되게 고쳤다.
아, 생각해 보니 RSS도 추가해야겠다.
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
음… Hackers' Pub의 상단 네비게이션 바 디자인을 개선해야 하는데, 어떻게 개선해야 할 지 모르겠다.
계정 이름에도 커스텀 에모지 표시되게 고쳤다.
プロフィールページにフィルターを追加した。ノートだけを見たり、共有した物だけを見たり、記事だけを見たりする事が出来る。
えーと…Hackers' Pubの上部のナビゲーションバーのデザインを改善する必要が有るけど、どの様に改善すれば良いのか分からない。
프로필 페이지에 필터를 추가했다. 노트만 보거나 공유한 것만 보거나 게시물만 볼 수 있다.
음… Hackers' Pub의 상단 네비게이션 바 디자인을 개선해야 하는데, 어떻게 개선해야 할 지 모르겠다.
フォローのお勧めのアルゴリズムを改善した。
https://github.com/dahlia/hackerspub/commit/27f91659687658cdc4490a1320c882ad70cc6766
プロフィールページにフィルターを追加した。ノートだけを見たり、共有した物だけを見たり、記事だけを見たりする事が出来る。
팔로 추천 알고리즘을 개선했다.
프로필 페이지에 필터를 추가했다. 노트만 보거나 공유한 것만 보거나 게시물만 볼 수 있다.
フォローとフォロワーリストを実装した。とりあえずは自分のリストだけを見る事が出来る。
フォローのお勧めのアルゴリズムを改善した。
https://github.com/dahlia/hackerspub/commit/27f91659687658cdc4490a1320c882ad70cc6766
팔로잉 및 팔로워 목록을 구현했다. 일단은 자기 자신의 목록만 볼 수 있다.
팔로 추천 알고리즘을 개선했다.
Hello, Hacker's pub!
これまで実装した機能:
フォローとフォロワーリストを実装した。とりあえずは自分のリストだけを見る事が出来る。
생각해 보니 알림이 없네… 알림도 만들어야지. 할 거 많다.
팔로잉 및 팔로워 목록을 구현했다. 일단은 자기 자신의 목록만 볼 수 있다.
Hacker's pub은 모바일에서 쓰기엔 제약이 많나... 아무래도 블로그가 메인이니
@markeb54맹꽁이 적어도 웹으로라도 모바일에서 쓸 수 있게 하는 게 목표이긴 합니다. 여유가 생기면 모바일 앱도 만들고 싶긴 해요…
Hello, world!
プロフィールページにOpen Graphの画像を追加した。
これまで実装した機能:
아 또 있다.
Note
) 수정 및 삭제 (Article
은 수정 가능한데 Note
는 아직 안 됨)생각해 보니 알림이 없네… 알림도 만들어야지. 할 거 많다.
My first post in Hackers' Pub!
저는 얼굴인식 카메라 앱 슈티를 개발하고 있습니다 iOS 버전 링크, 안드로이드 버전 링크
세션 타입 좋습니다 여러분
hello, world
앞으로 또 해야 할 것들… 뭐부터 해야 할까?
아 또 있다.
Note
) 수정 및 삭제 (Article
은 수정 가능한데 Note
는 아직 안 됨)팔로 추천 기능을 구현했다!
앞으로 또 해야 할 것들… 뭐부터 해야 할까?
ハクパブに初投稿です。どう使おうかはまだ模索中だけど、よろしく
처음 계정 만들고 나면 팔로를 아무도 안 해서 타임라인이 비어 있는 문제를 해결하기 위해, 팔로할 만한 계정 추천이 뜨도록 구현하고 있다.
팔로 추천 기능을 구현했다!
그냥 PostgreSQL의 ILIKE
연산자를 활용한 거긴 하지만, 나이브한 검색을 구현했다. 그리고 from:
이나 lang:
같은 연산자도 구현했다.
처음 계정 만들고 나면 팔로를 아무도 안 해서 타임라인이 비어 있는 문제를 해결하기 위해, 팔로할 만한 계정 추천이 뜨도록 구현하고 있다.
어설프게 나마 검색 기능 구현중…
그냥 PostgreSQL의 ILIKE
연산자를 활용한 거긴 하지만, 나이브한 검색을 구현했다. 그리고 from:
이나 lang:
같은 연산자도 구현했다.
별 거 아니지만, 로그인 안 한 상태에서 댓글 다는 방법을 안내하도록 해봤다.
어설프게 나마 검색 기능 구현중…