Profile img

박준규

@curry@hackers.pub · 304 following · 156 followers

darcs hub
hub.darcs.net/vincent
Hackage
hackage.haskell.org/user/JoonkyuPark
0

@hongminhee洪 民憙 (Hong Minhee) @bglbgl gwyng 지나가다 관심 있는 주제가 보여 의견을 드려보아요. 사실 전문가가 전문성을 발휘하는 데에는 암묵지가 많아도 문제가 없는데, 전문성을 남에게 설명하거나 교육해야 할 때에는 어려움을 크게 높이는 요소가 됩니다. 그래서 홍님이 말씀하신 암묵지를 이끌어내는 전문가들은 인지 작업 분석(CTA) 같은 기법을 사용하기도 하는데요. bgl 님이 멘토링을 하고 계신다는 걸 보면 이미 어떤 식으로든 교육을 위해 암묵지를 많은 부분 명시지화 하셨을 것 같기도 해요. 물론 홍님 말대로 암묵지는 암묵지인 것일 수도 있겠지만요. 😅

3

박준규 shared the below article:

나만의 연합우주 마이크로블로그 만들기

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

이 튜토리얼은 Fedify를 사용하여 ActivityPub 프로토콜을 구현하는 마이크로블로그를 만드는 과정을 안내합니다. Fedify는 연합 서버 앱 개발의 복잡성을 줄이고, 개발자가 비즈니스 로직에 집중할 수 있도록 돕는 TypeScript 라이브러리입니다. 튜토리얼에서는 Node.js, npm, Hono 등의 개발 환경을 설정하고, SQLite 데이터베이스를 구축하여 계정 생성, 프로필 페이지, 액터 구현, 암호 키 관리, 팔로우 기능, 게시물 작성 및 타임라인 구현 등 마이크로블로그의 핵심 기능을 단계별로 구현합니다. 특히 ActivityPub.Academy 서버를 활용하여 실제 연합우주 환경에서의 연동을 테스트하고, Mastodon과의 호환성을 확인합니다. 마지막으로, 보안 및 기능 개선을 위한 추가 과제를 제시하며, 독자가 프로젝트를 확장할 수 있도록 안내합니다. 이 튜토리얼을 통해 독자는 Fedify를 활용하여 ActivityPub 기반의 분산 소셜 네트워크 서비스를 구축하는 기본적인 이해를 얻을 수 있습니다.

Read more →
6

OX 테스트 당신은 책중독자인가?

박준규 @curry@hackers.pub

이 글은 톰 라비의 《어느 책중독자의 고백》을 인용하여 독자가 스스로를 "책중독자"로 진단해볼 수 있는 간단한 OX 테스트를 제공합니다. 모르고 같은 책을 두 번 산 적이 있는지, 표지 디자인만 보고 책을 구매한 적이 있는지 등 10가지 질문을 통해 독자 스스로가 책에 대한 애정을 어느 정도 가지고 있는지 되돌아보게 합니다. 이 테스트는 가벼운 마음으로 자신의 독서 습관을 재미있게 평가해보고, 책에 대한 애정을 다시 한번 확인하는 계기를 마련해줍니다.

Read more →
5
3
3

박준규 shared the below article:

How to pass the invisible

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

This post explores the enduring challenge in software programming of how to pass invisible contextual information, such as loggers or request contexts, through applications without cumbersome explicit parameter passing. It examines various approaches throughout history, including dynamic scoping, aspect-oriented programming (AOP), context variables, monads, and effect systems. Each method offers a unique solution, from the simplicity of dynamic scoping in early Lisp to the modularity of AOP and the type-safe encoding of effects in modern functional programming. The post highlights the trade-offs of each approach, such as the unpredictability of dynamic scoping or the complexity of monad transformers. It also touches on how context variables are used in modern asynchronous and parallel programming, as well as in UI frameworks like React. The author concludes by noting that the art of passing the invisible is an eternal theme in software programming, and this post provides valuable insights into the evolution and future directions of this critical aspect of software architecture.

Read more →
11
1
0
9
6

뭔가를 잘 설명하는 방법에 대해 생각해봤는데. 일단 내가 어떤 내용을 말하고 싶은 욕구를 참아내야다. 어떤 재치있는 비유를 꼭 써야겠다거나, 아니면 '통찰'을 전달하고 싶다거나.

대신 상대방의 무지에 공감해야한다. 그 무지란게, 많은 경우 진짜 멍청해서 그런게 아니라, 대충 얼개는 파악하고 있음에도 뜬금없는 부분에서 뜬금없는 오해를 하고 있어서 완전한 이해를 막는다거나 하는 경우가 많다. 그래서 그 귀여운 멍청을 함께 디버깅해야한다. 요게 지식뿐만 아니라 공감능력이 필요한 부분.

6

오늘 올라온 그알싫 리명박근혜스쿨 댓글공작 3편 말미에 NED(National Endowment for Democracy, 전미 민주주의 기금)이 극우단체로 유입되었을 가능성 이야기가 나옵니다. 아마 99% 맞을겁니다. 왜냐하면 제가 예전에 국민의힘, 당시엔 자유한국당이었죠. 지역 조직에서 미국 정부가 운영하는 인권, 민주주의 등등의 지원 사업에 당원을 동원해서 신청을 넣고, 자금을 받아온다는 실무자의 거의 확실한 증언을 입수한 적이 있기 때문입니다 -_-

1
0

Hackers' Pub에 로그인한 상태에서의 타임라인 구성을 조금 바꿔봤습니다. 기존의 “연합우주” 탭을 “피드”라고 수정했고, “연합우주” 탭과 “Hackers' Pub” 탭은 기본적으로 로그아웃했을 때의 “연합우주” 및 “Hackers' Pub” 탭과 동일한 타임라인이 표시되게 했습니다. 아직 팔로를 많이 하지 않은 분들에게는 “연합우주” 및 “Hackers' Pub” 타입라인이 새로운 콘텐츠를 발견하기 좋은 공간이 될 겁니다.

11
1
5

회사 근처 알라딘에 가서 다음과 같이 책 두 권을 샀습니다.

  • 로버트 A. 하인라인, 안정희, 《달은 무자비한 밤의 여왕》
  • 앤디 위어, 남명성, 《아르테미스》
5

그리고 하스켈 클라이언트 예제 코드에 해커즈 퍼브 주소를 은근히 적어 넣었다!(깨알 광고)

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Data.Default
import Web.Finger.Client

query :: Query
query = def { qryTarget = resource }
  where
    resource = ResAccount (Account "curry" "hackers.pub")

main :: IO ()
main = do
  manager <- newManager
  result <- webfinger manager query
  print result
10
5
2
3
1
2

이것은 첫 번째 포스트가 아닙니다.

거짓말입니다. 사실 첫 번째 포스트입니다. 마크다운을 지원하네요.

포스트 언어 설정이 되네요.

설정에 AI 요약 설정이 있던데 그 관련일지, 단순히 같은 언어를 쓰는 사람들끼리 서로 노출시키기 쉽게 하기 위해서인지는 아직 잘 모르겠지만 쓰다 보면 알게 되겠죠.

평소 프로필 설정을 잘 안 하는 편인데

  • 여기선 인원이 많지 않아 서로 알아봐야 할 필요성이 더 높아서
  • 웬만하면 해두는 게 좋겠군요.
  • 뭐라고 쓸지 고민해봐야겠군요. 쓸 말이 많지야 않겠지만...

의외로 수식까지 지원하네요.

eiπ=1e^{i\pi} = -1

iddtψ=Hψi\hbar \frac{d}{dt} \left\vert \psi \right\rangle = H \left\vert \psi \right\rangle

5
0
9
2
3
4
0
5

  • 중국어를 전공했습니다.
  • 전역하자마자(금요일 전역, 월요일 출근) 강원도에서 제약 영업을 1년 4개월 정도 했습니다.
  • 컴퓨터 학원을 1년 정도 다니면서 정보보안 스터디를 했습니다.
    • 이때 Python, C, Java순으로 프로그래밍을 처음 접했습니다.
  • 정보보안 관제 회사에서 고객사에 파견 나가 악성코드 대응 업무를 4년 정도 했습니다.
    • 이때 개발자가 되고 싶어서 C++ 코리아 스터디에 몇 번 참석했는데 여기서 운명의 ‘모나드’라는 단어를 처음 접하고 하스켈 공부를 시작했습니다.
  • 기업에서 정보보안 담당자 7년 차로 일하고 있습니다.
    • 코딩은 취미로 하거나 혼자만 하는 소소한 업무 자동화에 활용하고 있습니다.
  • 풀타임 개발자와 오픈소스 메인테이너의 삶을 동경하고 있습니다.
  • 주로 Windows에서 Putty로(80x24, Consolas) 리눅스 서버에 붙어서 Vim을 사용합니다. Visual Studio Code를 잠깐 써봤는데 다시 Putty로 돌아왔습니다.
  • 집에서는 몇 년 전 중고로 산 MacBook Air M1을 사용하고 있습니다.
  • 회사에서는 몇 년 전 중고로 산 HHKB를 씁니다.
  • 30대 후반, 기혼, 자녀는 셋(둘째와 셋째는 쌍둥이) 있습니다. 경기도에 살고 있습니다.
  • 하스켈은 특별히 애정하기 때문에 Haskell이라 적지 않고 하스켈이라 적었습니다.(는 사실 아니고 다 쓰고 나서 뒤늦게 깨달음)
  • 자녀의 성별은 모두 여성입니다.(딸부자)
3

  • 중국어를 전공했습니다.
  • 전역하자마자(금요일 전역, 월요일 출근) 강원도에서 제약 영업을 1년 4개월 정도 했습니다.
  • 컴퓨터 학원을 1년 정도 다니면서 정보보안 스터디를 했습니다.
    • 이때 Python, C, Java순으로 프로그래밍을 처음 접했습니다.
  • 정보보안 관제 회사에서 고객사에 파견 나가 악성코드 대응 업무를 4년 정도 했습니다.
    • 이때 개발자가 되고 싶어서 C++ 코리아 스터디에 몇 번 참석했는데 여기서 운명의 ‘모나드’라는 단어를 처음 접하고 하스켈 공부를 시작했습니다.
  • 기업에서 정보보안 담당자 7년 차로 일하고 있습니다.
    • 코딩은 취미로 하거나 혼자만 하는 소소한 업무 자동화에 활용하고 있습니다.
  • 풀타임 개발자와 오픈소스 메인테이너의 삶을 동경하고 있습니다.
  • 주로 Windows에서 Putty로(80x24, Consolas) 리눅스 서버에 붙어서 Vim을 사용합니다. Visual Studio Code를 잠깐 써봤는데 다시 Putty로 돌아왔습니다.
  • 집에서는 몇 년 전 중고로 산 MacBook Air M1을 사용하고 있습니다.
  • 회사에서는 몇 년 전 중고로 산 HHKB를 씁니다.
  • 30대 후반, 기혼, 자녀는 셋(둘째와 셋째는 쌍둥이) 있습니다. 경기도에 살고 있습니다.
16

해커즈 퍼브에 사람이 많아져서 더 이상 일일히 모든 사람을 내 홀로(Hollo) 계정에서 팔로우 할 수 없게 됐다. 마침 레일웨이 구독 비용도 생각보다 많이 나와서 구독을 해지했다. 최소 비용 5 달러는 이미 결제했기 때문에 6월 22일까지는 계정을 유지할 수 있을 것 같은데 그 전에 백업을 잊지 않고 해야겠다.(글이 많진 않지만 그냥 없애기는 아쉽다.) 서비스 종료된 인스턴스의 핸들을 멘션하면 무슨 일이 벌어질까? 발신자 인스턴스에만 글이 남게 되는 걸까?

2

프로그래밍 입문… 저는 AUTOEXEC.BAT을 수정하면서 코딩 비슷한 걸 시작한 것 같아요. 주로 아버지가 짜 둔 MS-DOS 배치 파일을 고치면서 놀았었고, 나중에는 90년대 말에 개인 홈페이지 붐이 오면서 HTML을 다루기도 했습니다. 게시판을 붙이고 싶어서 Perl을 조금 배웠고, 금방 PHP로 넘어가서 제대로 된 프로그래밍을 시작하게 됐네요. (“제대로 된”이라고 하는 이유는 그 전까지는 반복문을 다루지 못했기 때문에.) 그 뒤로 중학생이 된 뒤로는 JavaScript를 배웠고, 고등학생 때는 C/C++와 Python, Ruby 같은 걸 배웠던 것 같습니다.

1

평소에 함수형 언어 매니아들이 주장하는만큼 이펙트를 엄격하게 구분하는게 중요하다곤 생각안했는데, local first 앱을 만들다가 네트워크 요청을 포함한 IO와 그렇지 않은 IO를 구분해야하는 이유를 찾았다. 앱의 초기화 로직에 네트워크 요청이 숨어있으면 API 서버 장애시 앱이 아예 안켜지는 문제가 있다. 방금 이거랑 관련된 버그 찾느라 시간을 많이 썼다.

2
8
2

‘그냥 tryAny 쓰면 예외는 다 잡을 수 있는 거 아닌가? 왜 ResourceT를 써야 하지?’라고 생각했는데 찾아보니 tryAny로는 비동기 예외를 잡을 수 없다고 한다.

writeGreetingSafeAttempt :: IO ()
writeGreetingSafeAttempt = do
  dir <- getDataDir
  h <- IO.openFile (dir </> "greeting.txt") WriteMode
  _ <- tryAny do
    IO.hPutStrLn h "hello"
    IO.hPutStrLn h "world"
  IO.hClose h
4
4
4
5

액티비티퍼브에 Place가 있어서 사람들이 위치 공유도 하고 장소에 ‘좋아요’도 누르듯이 Book도 있으면 재밌겠다. 사람들이 좋아하는 책에 ‘좋아요’도 누르고 서로 연결도 시켜주고!

액티비티퍼브에 Place가 있어서 사람들이 위치 공유도 하고 장소에 ‘좋아요’도 누르듯이 Book도 있으면 재밌겠다. 사람들이 좋아하는 책에 ‘좋아요’도 누르고 서로 연결도 시켜주고!

6