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
0

평소 DOT을 자주 사용하는데 기능을 추가해주셔서 감사합니다. 저는 DOT을 1)네트워크 구성도를 그리거나 2)패키지나 클래스 의존 관계를 표현하거나 3)족보를 그릴 때(?!) 등 다양하게 사용하고 있습니다. 한편 DOT 하면 저는 바르토즈 아저씨가 쓴 카테고리 책[1]의 표지 그림이 생각납니다. 함수 합성 그림인데 공교롭게 하스켈에서 함수 합성 연산자 이름도 dot이네요.

G a a b b a->b c c a->c b->c
  1. 《Category Theory for Programmers》 ↩︎

0
0
0

vim is one of those programs I love but would never suggest that anyone use it

but every so often I wonder -- who might want to switch to using vim in 2025? my sense is that vim (and especially neovim) actually are still acquiring lots of new users but I don't have a good sense for what "kind" of person is choosing to start using them today

(as usual not looking for reasons people started using vim 20 or 30 years ago)

0
0

사실 알고보니 이것도, 저것도 모나드였다... 하는 예시는 많은데 Category의 예시는 뭐가 있을까? 그럼 설명이 훨씬 편해질텐데 말이다.

좀 인위적이지만 쉬운 예시를 하나 만들어보자면, 어떤 함수의 실행에 비용을 부여하는 것이다.

data Costful a b = Costful (a -> IO b) Int

f :: Costful Int String
g :: Costful String Bool

요런 정의를 생각해볼때 f . gfg의 동작은 합성하고, 비용은 +한 것이 될것이다.

instance Category where
 Costful f c1 . Costful g c2 = Costful (f . g) (c1 + c2)

요렇게 말이다. 이때 f . g의 비용은 함수를 실행하기 전에도 알수있다.

반면 그냥 f, g를 모나딕한 함수로 정의하고 f >=> g 이런식으로 합성했을땐, 함수를 실제로 실행하기 전에는 비용을 알수 없다. >=> 또는 >>=의 정의를 생각해보면 쉽게 알수 있다. Category 인스턴스는 정적인 정보를 추가로 가지고 있는 함수, 또는 함수보다 표현력이 약한데 비스무리한거(그래서 정적인 정보가 더많은) 것을 다룰때 유용하다.

0

We have been public about not using Go as the bootstrap language. We started with a compiler in C for a number of reasons, mostly for ease of bootstrapping but also to avoid making a compiler-optimized language instead of a general purpose one. Once the language was designed, we ported the code to Go for ease of maintenance and development.

Well here is a variant of that pattern: the TypeScript compiler is also being ported to Go: youtube.com/watch?v=pNlq-EVld7

The video is worth watching for the reasons why. Turns out a general purpose language is indeed a good compiler language.

0
0
0
0

최근에 오랫동안 쓰던 키보드가 망가져서 큰 맘 먹고 프리플로우 Archon M1 PRO MAX를 질렀는데, 요즘 키보드는 다 WebHID 가지고 웹 드라이버로 설정하는 것 같다. 자바스크립트니까 뜯기 쉽겠거니 싶어서 살펴 봤는데 커스텀 HID 레포트를 보낼 수 있는 기능을 사용해서 명령들을 나열해 놓았고, 개중에는 롬을 통으로 날리는 것도 가감없이 노출되어 있길래 음 역시 WebHID 같은 건 웹에 넣을 기능이 못된다는 결론을 내렸다. 가볍게 함수 목록만 요약해서 https://gist.github.com/lifthrasiir/c79c90ecf697b1e6dc73e83f32984499에 올렸다.

0

최근에 오랫동안 쓰던 키보드가 망가져서 큰 맘 먹고 프리플로우 Archon M1 PRO MAX를 질렀는데, 요즘 키보드는 다 WebHID 가지고 웹 드라이버로 설정하는 것 같다. 자바스크립트니까 뜯기 쉽겠거니 싶어서 살펴 봤는데 커스텀 HID 레포트를 보낼 수 있는 기능을 사용해서 명령들을 나열해 놓았고, 개중에는 롬을 통으로 날리는 것도 가감없이 노출되어 있길래 음 역시 WebHID 같은 건 웹에 넣을 기능이 못된다는 결론을 내렸다. 가볍게 함수 목록만 요약해서 https://gist.github.com/lifthrasiir/c79c90ecf697b1e6dc73e83f32984499에 올렸다.

0
0

애플리케이션 개발 측면에서 본 Drizzle ORM 대 Kysely 비교
------------------------------
# Drizzle ORM vs Kysely 비교 요약

## Drizzle ORM의 장점

- *스키마 정의의 직관성* : 선언적 방식의 스키마 정의가 가능하며, 이로부터 자동으로
CREATE TABLE SQL 생성이 가능.
- *자동화된 마이그레이션* : 스키마 변경사항을 자동으로 감지하여 SQL 마이그레이션 파일 생성이 가능.
-
직관…
------------------------------
https://news.hada.io/topic?id=19805&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0
0

요즘 며칠 openai agent sdk 살펴보면서 끼적끼적 해보고 있는데 python의 asyncio 는 왜 이렇게 복잡하고 거지 같지? 라는 느낌을 확 받네. 웬간한 라이브러리들은 요즘 async/await 기반으로 되어 있는데 streamlit 에서 그걸 쓰려고 하면 asyncio 오류가 막 나고... 그걸 안정적으로 처리하는 방법이 뭔가 확립이 되어 있지 않아서 각자 나는 이게 좋았다 그런데 나는 그렇게 해도 이런 오류가 나서 이게 좋다... 이게 뭔지 참...

0

요즘 며칠 openai agent sdk 살펴보면서 끼적끼적 해보고 있는데 python의 asyncio 는 왜 이렇게 복잡하고 거지 같지? 라는 느낌을 확 받네. 웬간한 라이브러리들은 요즘 async/await 기반으로 되어 있는데 streamlit 에서 그걸 쓰려고 하면 asyncio 오류가 막 나고... 그걸 안정적으로 처리하는 방법이 뭔가 확립이 되어 있지 않아서 각자 나는 이게 좋았다 그런데 나는 그렇게 해도 이런 오류가 나서 이게 좋다... 이게 뭔지 참...

0

하스켈 패키지 검색 엔진이자 웹 서비스인 후글(Hoogle)은 서비스에 종종 문제가 생기곤 합니다. 그럴 때는 다음과 같은 대체 서비스를 이용해보세요!

한편 후글을 로컬에 설치해서 사용하는 것도 가능합니다. 잦은 서비스 문제에 질렸다면 로컬에 후글을 설치해보세요!

그리고 만약 당신이 부자라면⋯ 하스켈 재단에 기부해주세요⋯

0
0

apmodel v0.3.1が利用可能になりました!

これは、いくつかの問題のために削除された0.3.0を置き換えるものです。

Activity.accept()でそのアクティビティに対してのAcceptアクティビティを生成できるようになり、Activity.reject()でそのアクティビティに対してのRejectアクティビティを生成できるようになりました。

https://github.com/AmaseCocoa/apmodel/releases/tag/0.31

https://pypi.org/project/apmodel/0.3.1/

0
0
0
0
0
0
0
0

쉘스크립트처럼 oci 컨테이너들을 조합하는 언어가 있으면 좋겠다. 컨테이너는 샌드박싱된 파일시스템을 입력으로 받아 출력으로 쓰고, 그런 컨테이너들을 (| pipe operator로 stdin/stdout을 잇듯이) 조합하는 것이다. 그리고 이때 각 컨테이너가 필요로하는 입력 파일/디렉토리들에 대해 일종의 타입 체크를 해서 no such file or directory가 뜨는것을 막아줄수 있을것이다.

사실 yaml등으로 작성하는 CI/CD 설정 파일들이 비슷한 기능을 하고있는데, 이걸 좀더 멀쩡한 언어로, 로컬에서도 쓸수있으면 좋겠다.

0
0

<오픈 소스 소프트웨어 아키텍처>를 읽었다.

<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 시리즈의 오픈소스 소프트웨어 버전을 기대했지만, 아티클 모음집에 가까웠다. 각 챕터의 저자가 모두 다르다보니 내용이 체계적이지 않았고, 그 깊이도 일과적이지 않았다. 사실 나는 "왜"가 궁금한건데 대체로 "어떻게"에 초점이 맞춰져 있는 느낌.

적어도 모든 챕터가 아키텍처를 한 눈에 조망할 수 있는 다이어그램을 우선 제시하고, 탑 다운으로 디테일에 다가가는 형식을 취했다면 더 효과적이지 않았을까 싶다. 그런 점에서 버클리DB와 센드메일 챕터는 인상적이었다.

실제 소프트웨어의 아키텍처를 분석한다는 컨셉이 너무 좋은 접근이고, 대학 수업에서도 다루면 좋겠다는 생각이 들 정도라서 구성에 더욱 아쉬움이 남는다.

0
0
0
0
0
0
2
0
0
0

React Native 의 빌드는 생각보다 가볍지 않다.

  • M3 맥북에어 8기가램에서도 빌드하고
  • iOS 시뮬레이터 띄어서 테스트 다 끝낼 수 있지만,
  • 중간중간의 버벅임이 상당하다.
  • Flutter 할 때도 이정도까진 아니었음

결론) 그렇게 회사에 M4 맥미니 24기가램을 품의서 올린 얘기[1]

후기) 지급받은 담당자 말에 따르면, 이제 매우 원활하게 돌아간다고 한다.


  1. 이글은 제가 스레드에 2/13 올린 글을 약간 수정하여 다시 올립니다. 스레드 원문 ↩︎

0
0
0
0
0

apsig 0.5.0 released (破壊的な変更あり)

デフォルトだと検証の結果は失敗時に
None、成功時はkeyIdを返すようになりました (verify関数にraise_on_fail引数をTrueにして渡すと失敗時にエラーを吐くようにもできます)

あとはSignatureヘッダーの解析だけ使うこともできるようになりました (Draft版HTTP署名のみ。)

一応古い
draftVerifierの方は廃止されてるものの互換性維持のために0.4.0時点と同じ値を返すようになってます (ただ1.0で削除するので使うべきではありません)

https://github.com/AmaseCocoa/apsig/releases/tag/0.5.0
https://pypi.org/project/apsig/0.5.0/

0
0
0

bgl gwyng replied to the below article:

Hackers' Pub에서 DOT 언어(Graphviz)로 다이어그램 그리기

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

Hackers' Pub에 숨겨진 유용한 기능, 바로 Graphviz DOT 언어 지원에 대해 알아봅니다. 이 기능을 사용하면 복잡한 다이어그램을 간단하게 Markdown 코드 블록 안에 DOT 언어로 기술하여 표현할 수 있습니다. 특히 `graphviz` 언어 태그를 사용하여 ActivityStreams 데이터 전송 과정을 시각적으로 나타낼 수 있습니다. 서버 간의 상호작용을 명확하게 보여주는 다이어그램을 통해, 독자는 Mastodon과 Hackers' Pub 서버 간의 데이터 흐름을 쉽게 이해할 수 있습니다. 이 기능은 긴 게시글뿐만 아니라 짧은 글에서도 유용하게 활용될 수 있으며, 기술적인 내용을 시각적으로 표현하고자 하는 사용자에게 큰 도움이 될 것입니다.

Read more →
2
1

나는 모나드를 설명하기가 어려운게 그냥 대부분의 언어에서 (HKT의 부재로) Monad를 정의를 못해서라고 생각한다. Haskell에 대한 경험이 없는 친구들한테 모나드를 설명하면 잘 알아듣는다. 근데 끝나고 그게 그럼 클래스냐 디자인 패턴이냐 이런 질문이 이어진다. 자기가 쓰고있는 언어에서 어떻게 쓸수있는지를 묻는셈인데, 여기서 '굳이 따지면 디자인패턴 같은거다' 라고하면 실망하는게 느껴졌다.

같은 이유로, Haskell 사용자에게 카테고리 이론의 유용함을 설명하고싶다면 Category 인스턴스의 활용부터 시작하는게 맞다고 생각한다.

0
0
0
0
0
0

Hello there

This is my first public post. Can I see the markdown from my another fediverse account? Cuz I can't see my previous post from my vivaldi.social's account even after I followed this accout.

def test():
  print("hello world!")
0