Profile img

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at @hongminhee洪 民憙 (Hong Minhee) :nonbinary:.

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은: @hongminhee洪 民憙 (Hong Minhee) :nonbinary:.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「@hongminhee洪 民憙 (Hong Minhee) :nonbinary:」に。

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee

님들 고스트(아마 Pro?)로 블로깅하면 연합우주 연동되는 거 알고 있음? 고스트에서 포스트 퍼블리시할 때마다 연합우주에도 포스트 만들어주고 해당 연합우주 계정으로 다른 계정 포스팅에 댓글도 달아줄 수 있음… 어떻게 돌아가는지 참고 → https://hackers.pub/@jm@guji.jjme.me

4
4

길을 가다 "없는 것 빼고는 다 있다"는 문장을 보았다.

가능한 모든 품목의 집합을 UU로 둔다면, 가게가 실제로 보유한 재고는 SUS \subseteq U로 표현 할 수 있고, 없는 것의 집합은 USU \setminus S로 표현할 수 있다.

즉, "없는 것 빼고 다 있다"는 "전체(UU)에서 없는 것(USU \setminus S)을 제외하고 남은 모든 것은 있다"로 작성할 수 있고, 이는

xU(US)  :  xS\forall x \in U \setminus (U \setminus S) \; : \; x \in S

로 표현 할 수 있다.

하지만, 여집합(complement)의 여집합은 원래 집합이 되기 때문에

U(US)=SU \setminus (U \setminus S) = S

가 되고, 위 명제는 결국 xS  :  xS\forall x \in S \; : \; x \in S로 축약할 수 있고, 동어반복(tautology)이기 때문에 정보값은 없지만 항상 참으로 볼 수 있다.

2
1

Just opened an issue for a major new task for : building an smoke test suite.

To ensure Fedify-built servers federate correctly with the wider , we're planning to run automated E2E tests in against live instances of Mastodon, Misskey, and more. This is crucial for a framework's reliability.

You can see the full plan and discussion here:

https://github.com/fedify-dev/fedify/issues/481

1
4
0
1
0
1
1
1
2

근데 Hollo를 한 번 날 잡고 제대로 살펴보긴 해야 할 것 같다. 요즘 너무 자주 죽어서…

전반적인 설계는 Hackers' Pub과 유사한데 (물론 Hackers' Pub이 나중에 만든 거라 좀 더 낫긴 함), Hackers' Pub은 멀쩡한 반면 Hollo는 자주 죽는 게 이상하다.

알고 보니 쉽게 고칠 수 있는 문제였다. 일단 hollo.social 쪽 Caddyfile에서 헬스 체크를 업스트림의 NodeInfo 엔드포인트를 바라보게 해 뒀는데, Hollo의 NodeInfo 엔드포인트가 데이터가 많을 때 느려지는 문제가 있어 타임아웃이 나고 있었다. 그래서 Caddy 입장에서는 모든 업스트림 노드가 unhealthy하다고 여겨져서 서비스 전체가 503 Service Unavailable 오류를 내게 되었던 것.

NodeInfo 엔드포인트가 데이터가 많을 때 느린 문제는 SQL을 잘못 짜서 그런 거라 해당 문제를 고쳤고, 이제 모든 문제가 해결되었다.

5

youknowone replied to the below article:

abab, asc, 123, abc

@disjukr@hackers.pub

흔히 사용되는 JavaScript의 배열 정렬 방식인 `arr.sort((a, b) => a - b)`는 코드를 읽는 개발자에게 혼란을 줄 수 있습니다. 이 글에서는 이러한 정렬 코드를 볼 때마다 오름차순인지 내림차순인지 확인해야 하는 번거로움을 줄이기 위해, 더 명확한 함수 이름을 사용할 것을 제안합니다. `sortAsc(arr)`와 같이 오름차순을 의미하는 함수명도 좋지만, `sort123(arr)` 또는 `sortAbc(arr)`처럼 정렬 방향을 직관적으로 나타내는 이름을 사용하면 코드의 가독성을 더욱 향상시킬 수 있습니다. 이처럼 명확한 이름은 코드를 이해하는 데 필요한 인지적 노력을 줄여주어, 개발 생산성 향상에 기여할 수 있다는 점을 강조합니다.

Read more →
7
3

XiNiHa replied to the below article:

abab, asc, 123, abc

@disjukr@hackers.pub

흔히 사용되는 JavaScript의 배열 정렬 방식인 `arr.sort((a, b) => a - b)`는 코드를 읽는 개발자에게 혼란을 줄 수 있습니다. 이 글에서는 이러한 정렬 코드를 볼 때마다 오름차순인지 내림차순인지 확인해야 하는 번거로움을 줄이기 위해, 더 명확한 함수 이름을 사용할 것을 제안합니다. `sortAsc(arr)`와 같이 오름차순을 의미하는 함수명도 좋지만, `sort123(arr)` 또는 `sortAbc(arr)`처럼 정렬 방향을 직관적으로 나타내는 이름을 사용하면 코드의 가독성을 더욱 향상시킬 수 있습니다. 이처럼 명확한 이름은 코드를 이해하는 데 필요한 인지적 노력을 줄여주어, 개발 생산성 향상에 기여할 수 있다는 점을 강조합니다.

Read more →
7
1
2

洪 民憙 (Hong Minhee) shared the below article:

abab, asc, 123, abc

@disjukr@hackers.pub

흔히 사용되는 JavaScript의 배열 정렬 방식인 `arr.sort((a, b) => a - b)`는 코드를 읽는 개발자에게 혼란을 줄 수 있습니다. 이 글에서는 이러한 정렬 코드를 볼 때마다 오름차순인지 내림차순인지 확인해야 하는 번거로움을 줄이기 위해, 더 명확한 함수 이름을 사용할 것을 제안합니다. `sortAsc(arr)`와 같이 오름차순을 의미하는 함수명도 좋지만, `sort123(arr)` 또는 `sortAbc(arr)`처럼 정렬 방향을 직관적으로 나타내는 이름을 사용하면 코드의 가독성을 더욱 향상시킬 수 있습니다. 이처럼 명확한 이름은 코드를 이해하는 데 필요한 인지적 노력을 줄여주어, 개발 생산성 향상에 기여할 수 있다는 점을 강조합니다.

Read more →
7
2

클로드 코드 쓰고있으니 더 나은 VCS에 대한 욕심이 커진다. 나는 클로드가 브랜치를 더 자주 쪼개서, 원하는 시점으로의 롤백이 더 편해졌으면 좋겠다.

하나 생각나는 아이디어는 브랜치 명을 hierachial하게 만들어서 가령 fix-bug-1/refactor-class-foo/fix-function-bar 이런식으로, 무슨 일하는지의 맥락을 브랜치명에 나타내는 것이다. 그리고 a/b 브랜치는 a 브랜치의 자식이어야 한다는 제약도 강제한다.

2
1
2

@kakkokari_gtyih(仮) 様々な機械翻訳サービスを使ってみましたが、Google翻訳やPapagoのような従来の機械翻訳サービスより、DeepLやKagi翻訳のようなLLMベースの翻訳サービスのほうが品質がずっと良かったです。個人的には、Kagi翻訳が無料なうえに最も品質が良いので使っています。(韓国語↔日本語基準)

1

Today new apmodel features:

  • User can add and override (required inheritance the class) own model to loader (core models is can't override, show warning)
  • apmodel supports to preload json-ld schema from local (example, schema.org, activitystreams 2.0)
5

컴포넌트 새로 만들다가 써야할 함수를 급하게 날림으로 짜고 남겨뒀던게 기억나서 에이전트한테 테스트 짜달라고 했더니,

주석으로 테스트 대상 코드에 문제 있다고 줄줄이 적어놔서 뭐냐니까 svelte lune mode를 못 알아먹은 거였다. 미덥잖아서 다른 에이전트에 리뷰 던지니까 이번엔 deprecated 된 놈*으로 바꿔야 한다며 … 아주 그냥 쌍으로 환각 파티를 벌이는구만

나도 모르게 감정 이입을 했는지 deprecated 명시한 문서를 던져주니까 한 놈은 수긍하고 한 놈은 끝까지 우긴다 🤣

SvelteKit 2.12: $app/stores deprecated $app/store/page$app/state/page

1
1

洪 民憙 (Hong Minhee) shared the below article:

컴퓨터공학에서 사용하는 회귀(Regression, 回歸) 라는 용어에 대해

JakeSeo @jakeseo@hackers.pub

이 글은 컴퓨터 공학에서 '회귀(Regression)'라는 용어가 사용되는 두 가지 주요 맥락, 즉 머신러닝과 소프트웨어 테스팅에서의 의미를 명확히 구분하여 설명합니다. 머신러닝에서는 변수 간의 관계를 모델링하여 값을 예측하는 기법을 의미하며, 그 기원과 함께 집값 예측 예시를 들어 이해를 돕습니다. 반면 소프트웨어 테스팅에서는 과거의 버그가 재발하는 현상을 검증하는 과정을 지칭하며, 개발이 '뒤로 회귀했다'는 표현으로 설명합니다. 이 글을 통해 독자는 회귀라는 용어가 가진 다의성을 이해하고, 각 분야에서 어떻게 활용되는지 명확히 파악할 수 있습니다.

Read more →
4
3

굉장히 오랜만에 들어와서 쓰는 근황입니다.

  • TIS-100의 모든 레벨을 클리어했습니다. 다음 목표는 아마 Opus Magnum 아니면 A=B가 될 것 같습니다.
  • 올해 여름부터 지금까지 7문제를 백준에 출제했습니다. 여기의 맨 아래에서 보실 수 있습니다. 개인적으로 가장 재밌었던 문제는 SWAP-C Sort인데 그만큼 어렵습니다.
  • 웹 기반으로 뭔가 만들 게 생겨서 프레임워크를 알아보다가 Solid를 써보기로 결정했습니다. 웹 UI는 Flowbite, 그래픽 요소는 Konva를 쓰게 될 것 같습니다.
  • 그런데 이쪽을 첫삽을 뜨기도 전에 갑자기 굉장히 어려운 퍼즐틱한 문제 하나의 풀이가 완성되어서(....) 논문(?!)을 하나 쓰기 시작했습니다. 이런 거 받아주는 저널 어디 없을까요(????)
3
1

오는 11() 8() 光云大學校(광운대학교)에서 開催(개최)되는 FOSS for All 컨퍼런스 2025에서 제가 〈야크 셰이빙: 새로운 오픈 소스의 原動力(원동력)〉이라는 主題(주제)基調演說(기조연설)을 하게 되었습니다!

올해 처음 열리는 FOSS for All 컨퍼런스는 “Free and Open Source Software for All”이라는 슬로건 아래, 모두를 ()한 오픈 소스 컨퍼런스를 目標(목표)로 하는 非營利(비영리) 오픈 소스 커뮤니티 컨퍼런스입니다.

파란色 背景의 FOSS for All 컨퍼런스 2025 發表者 카드. 右側 아래에는 發表者 洪民憙의 寫眞이 있고, 中央의 흰色 말風船 안에는 「Keynote」라는 文句와 함께 發表 題目 〈야크 셰이빙: 새로운 오픈 소스의 原動力〉이 쓰여 있다.
15
0
0
2

근데 Hollo를 한 번 날 잡고 제대로 살펴보긴 해야 할 것 같다. 요즘 너무 자주 죽어서…

전반적인 설계는 Hackers' Pub과 유사한데 (물론 Hackers' Pub이 나중에 만든 거라 좀 더 낫긴 함), Hackers' Pub은 멀쩡한 반면 Hollo는 자주 죽는 게 이상하다.

6

洪 民憙 (Hong Minhee) shared the below article:

2025년 연말, 중소기업 개발자 채용에 대한 단상

Juntai Park @arkjun@hackers.pub

회사의 면접 과정에 참여하면서 신입 개발자 채용의 어려움을 실감하게 되었다는 내용입니다. 지원자들의 높은 경쟁률과 뛰어난 스펙, 열정적인 준비에 감탄하면서도, 채용 인원의 제한으로 인해 안타까움을 느낍니다. 만약 자신이 지금 신입 구직자라면 합격하기 어려울 것이라는 생각과 함께, 20대든 40대든 모두가 버티고 배우며 나아가야 할 시기임을 강조합니다. 40대 중반 개발자의 주관적인 관점이지만, 현재 개발자 채용 시장의 현실을 엿볼 수 있는 글입니다.

Read more →
2
0

@kanghyojun강효준 일단 종단 타입 안전성(end-to-end type safety)가 지켜지는 거랑 프런트엔드 쪽에서 골치아픈 캐시 무효화 등을 대부분의 경우에 신경 안 써도 되게 해주는 게 큰 것 같아요. 아, 그리고 Relay랑 같이 쓰고 있는데 뷰의 데이터 의존성이 같은 파일 내에 위치하는 것도 중요한 것 같고요!

1
3
0
2
4

아무래도 대 LLM 시대에 스키마 지향적인 삶을 살아야한다고 생각이 듦과 동시에 원래 사용하던 protobuf 외에도 trpc와 graphql 모두 검토를 진행중. 백엔드, 프론트엔드간 필드 마이그레이션 문제는 결국 다 필연적으로 마주치게되는 것 같고 어떤식으로 해결하거나 감내할것인지 결정하는게 중요할것 같다.

2

아무래도 대 LLM 시대에 스키마 지향적인 삶을 살아야한다고 생각이 듦과 동시에 원래 사용하던 protobuf 외에도 trpc와 graphql 모두 검토를 진행중. 백엔드, 프론트엔드간 필드 마이그레이션 문제는 결국 다 필연적으로 마주치게되는 것 같고 어떤식으로 해결하거나 감내할것인지 결정하는게 중요할것 같다.

2
3
4

프로젝트 시작전에, tRPC의 도입을 고민하다가, 학습비용과 프로젝트 기간에 대한 압박이 있어서 일단은 쓰지 않고 진행하고 있는데, Client와 Backend에서 타입일치를 위해서, 동일한 모델 선언이 반복적으로 일어나다 보니 (한쪽의 모델을 참조해서 쓸 수 있게 반쯤 자동화되어 있기는 하지만) 다음에는 (tRPC가 아니라도, 타입불일치를 막을 수 있는 어떤 장치나 무언가를) 도입해야겠다는 생각이 든다.

3

Interesting poll results! I didn't expect Attoparsec to go toe-to-toe with Megaparsec.

So I did some digging into based programming language projects on Github, and here's what I found (lexer and parser mentioned separately, if different):

- Purescript: handwritten + Happy
- Elm: handwritten
- Agda: Alex + Happy
- Dex: Megaparsec
- Carp: Parsec
- Dhall: Megaparsec
- Grace: Megaparsec + Earley
- Plutus: Megaparsec
- Grin: Megaparsec
- Futhark: Alex + Happy
- Granule / Gerty: Alex + Happy
- Kaleidoscope: Parsec
- Egison: Megaparsec
- Amulet: Alex + Happy
- Paskell: Parsec
- Facet: Handwritten + Parsec
- Eclair: Megaparsec
- Olifant: Megaparsec
- Shellcheck: Parsec
- Nixfmt: Megaparsec

It seems like Megaparsec is the clear winner when it comes to parsing programming languages in Haskell. However, if I focus on projects that parse file formats and network protocols, Attoparsec is the most popular one.

1
4

작은 SI 중소기업의 신입,주니어 개발자 채용공고에 왜 이렇게 지원자가 많은가 (약 600명이 넘는 지원자가 몰렸다.) 채용시장이 많이 안좋은가 의문을 갖고 있었는데, 문득 (혹시나) 회사의 복지정책 중 하나인 간식무제한제공때문이 아닐까 하는 생각이 들었다. (일단은 인하우스 개발인 점도 한몫하겠지만)

3
0

I making next-version of apmodel, that uses pydantic for better validation and better loader.

Currently, this feature is either not implemented or not fully implemented:

  • export to json is not avaliable

Additionally, some models have not been migrated to pydantic, so they cannot be used properly.

If you interested this, can read this branch: https://github.com/fedi-libs/apmodel/tree/pydantic