아, 그리고 패치 전달할 때 저장소를 명시하지 않았는데 대충 알아서 해주더라!

박준규
@curry@hackers.pub · 182 following · 104 followers
darcs hub
- hub.darcs.net/vincent
Hackage
- hackage.haskell.org/user/JoonkyuPark
darcs show dependencies
라고 입력하면 다음과 같이 Graphviz DOT 코드를 출력해준다!
(해커즈 퍼브에서는 graphviz를 지원합니다!)
darcs pull
또는 darcs push
로 서로 다른 저장소의 패치를 전달하려고 하는데 단일 패치 해시를 지정했는데 darcs가 자꾸 다른 패치를 가져오려고 했다.
‘버그인가⋯ 못쓰겠네⋯ 이래서 사람들이 안 쓰는 건가?’
그런데 ChatGPT에게 물어보니 패치간 의존성이 있기 때문에 그 패치를 먼저 가져오려고 하는 것일 수 있다고 한다. darcs는 어떻게 패치간 의존성을 파악할 수 있는 거지? darcs 의심한 내가 나빠.
아, 그리고 패치 전달할 때 저장소를 명시하지 않았는데 대충 알아서 해주더라!
darcs pull
또는 darcs push
로 서로 다른 저장소의 패치를 전달하려고 하는데 단일 패치 해시를 지정했는데 darcs가 자꾸 다른 패치를 가져오려고 했다.
‘버그인가⋯ 못쓰겠네⋯ 이래서 사람들이 안 쓰는 건가?’
그런데 ChatGPT에게 물어보니 패치간 의존성이 있기 때문에 그 패치를 먼저 가져오려고 하는 것일 수 있다고 한다. darcs는 어떻게 패치간 의존성을 파악할 수 있는 거지? darcs 의심한 내가 나빠.
darcs pull
을 처음으로 해봤다. git에서처럼 뭔가 merge commit을 따로 해야되는 줄 알았는데 패치 자체가 커밋 로그에 바로 기록되더라.
@lionhairdino
@fwangdo 오랜만이네요 반갑습니다
@kodingwarriorJaeyeol Lee 일단 차단 구현하면서 관련 로직도 점검하도록 하겠습니다!
@hongminhee洪 民憙 (Hong Minhee)
@kodingwarriorJaeyeol Lee
버그가 아니라 기능입니다!(아님)
여기에서는 트위터보다 조금 더 편하게 글을 써보려고 합니다. 해커스펍 가입해놓고 글 하나 안 올렸었네요.
메타적인 얘기지만, 저는 오늘 “Kubernetes는 적정 기술인가?”라는 떡밥이 Hackers' Pub 내부적으로 발생했다는 사실이 아주 기쁩니다. 여태까지는 Hackers' Pub 자체에 대한 떡밥이거나, GeekNews나 X에서 넘어온 떡밥이었거든요.
@hongminhee洪 民憙 (Hong Minhee) 그 시작이 바로 이 글이군요. 감사합니다. 우죽 님!
@saschanazKAGAMI🏳️🌈🏳️⚧️ 그게 제일 바람직하다는 것에 저도 동의해요. 다만 현실적으로는 아무래도 DB라든지 MQ라든지 이것저것 같이 띄워야 하다 보니, 서비스 운영을 하려다 보면 그런 전체 형상 관리를 위한 추상화 계층이 있기는 있어야 하는 것 같아요. 물론 도커 컴포즈를 안 쓰고 앤서블로 그런 모든 것을 관리할 수도 있고, 아예 닉스나 닉스오에스를 써서 더 아름답게 할 수도 있겠습니다만... 도커 컴포즈 정도면 타협 가능한 것으로...
@xtjuxtapose
@saschanazKAGAMI🏳️🌈🏳️⚧️ 외쳐요,
nix run
!
에모지 반응 기능이 배포되었습니다. 당분간 버그가 좀 있을 수도 있지만 양해 바랍니다. 전 이제 차단을 구현하러 가겠습니다…
@hongminhee洪 民憙 (Hong Minhee) pub
- ‘좋아요’와 에모지는 다른 거라고 생각했는데 우리인생 계정으로 로그인한 팬피에서 누른 ‘좋아요’가 해커즈 퍼브에서도 보이네요.
- 반면에 팬피에서는 해커즈 퍼브에서 눌린 ‘좋아요’가 안 보입니다.
같은 것과 같지 않은 것에 대해서 짤막한 글을 써 보았습니다. 오랜만에 국어로 쓰는 글이라 잘 읽힐지 모르겠네요.
@ailrunAilrun (UTC-5/-4) 재밌게 잘 읽었습니다. 걱정하신 것과 다르게 저에게는 쓰신 글이 술술(?) 잘 읽혔어요. 이제 다음 글은 Dependent Haskell인가요!
@curry박준규 그렇군요. 저는 기본적으로 "조용히 공개"를 항상 사용할 것 같은데, 기본으로 설정하는 방법이 있으면 좋겠네요.
@ailrunAilrun (UTC-5/-4)
@hongminhee洪 民憙 (Hong Minhee) 말씀하신 그대로 이루어질 것입니다!
@ailrunAilrun (UTC-5/-4) 저도 궁금해서 질문을 했었습니다!
@ailrunAilrun (UTC-5/-4) 저도 제대로 이해했는지 모르겠지만 이런 게 아닐까 합니다.
기능이 여럿 있는데, 그 상세를 잘 모르겠는 것이 많군요. 이를테면 "공개"와 "조용히 공개"의 차이점이 제게는 직관적이지 않네요. 무슨 차이인지 아시는 분이 있다면 알려주시면 감사하겠습니다.
@ailrunAilrun (UTC-5/-4) 저도 궁금해서 질문을 했었습니다!
줄리 모로누키(Julie Moronuki) 님이 원래 언어학을 전공하셔서 그런지 글을 참 잘 쓰시는 것 같고 그 필력으로 하스켈 책을 세 권이나 써주셔서 너무 감사하다. 새로운 콘텐츠를 만들어 주시기를 고대하고 있는데 최근 어떻게 지내시는지 너무 궁금하다.
ChatGPT는 Moronuki가 일본식 성씨일 가능성을 제기했다.
그렇지 않아도 그의 블로그를 보니, 그가 일본에 방문해서 영어를 가르쳤던 경험이, 프로그래밍을 전혀 몰랐던 그로 하여금 하스켈을 대중에게 가르치는 사명을 일깨워준 계기가 된 것 같다.
만약 일본식 성씨가 맞다면 아마도 諸貫라고 쓰는 것 같다.
@ailrunAilrun (UTC-5/-4) 어서오세요. 반갑고 반갑습니다~
@lionhairdino
@ailrunAilrun (UTC-5/-4) 헉, 너무나 반가운 분이 오셨네요!
줄리 모로누키(Julie Moronuki) 님이 원래 언어학을 전공하셔서 그런지 글을 참 잘 쓰시는 것 같고 그 필력으로 하스켈 책을 세 권이나 써주셔서 너무 감사하다. 새로운 콘텐츠를 만들어 주시기를 고대하고 있는데 최근 어떻게 지내시는지 너무 궁금하다.
ChatGPT는 Moronuki가 일본식 성씨일 가능성을 제기했다.
그렇지 않아도 그의 블로그를 보니, 그가 일본에 방문해서 영어를 가르쳤던 경험이, 프로그래밍을 전혀 몰랐던 그로 하여금 하스켈을 대중에게 가르치는 사명을 일깨워준 계기가 된 것 같다.
만약 일본식 성씨가 맞다면 아마도 諸貫라고 쓰는 것 같다.
@arkjunJuntai Park
@xtjuxtapose 혹시 두 분 다 요즘 연합우주에서 세계적으로 화제(?)인 “Fediverse Chick Nicole”한테 DM을 받으셨나요…
@hongminhee洪 民憙 (Hong Minhee)
@arkjunJuntai Park
@xtjuxtapose 앗! 저도 4월 3일에 그분에게 DM을 받았습니다! 유명하신 분인가요?
패키지 저장소를 만지작거리다가 TUF(The Update Framework)라는 개념을 알게 되었다. https://gruuuuu.github.io/security/tuf/
회사에서 쓴 코드를 공개 저장소에 올릴 수는 없어서 hackage-server를 직접 돌려보기로 했다. 빌드할 때 의존성 맞추기가 어려울 것 같아서 속는 셈 치고 Nix를 써봤는데⋯ 한 번에 서버가 에러 없이 실행됐다. 이제 사내에서 하스켈 패키지 관리를 할 수 있다!(그런데 아무도 안 씀⋯)
어라, 그런데 명령줄에서 cabal upload
로 공개 저장소가 아니라 사설(?) 저장소에 업로드하려면 어떻게 해야 하지?
회사에서 쓴 코드를 공개 저장소에 올릴 수는 없어서 hackage-server를 직접 돌려보기로 했다. 빌드할 때 의존성 맞추기가 어려울 것 같아서 속는 셈 치고 Nix를 써봤는데⋯ 한 번에 서버가 에러 없이 실행됐다. 이제 사내에서 하스켈 패키지 관리를 할 수 있다!(그런데 아무도 안 씀⋯)
간혹 "이모지"가 아니라 "에모지"라고 쓰는 이유에 대한 질문을 받습니다. 여기다 써 두면 앞으로 링크만 던지면 되겠지?
요약: 에모지라서 에모지라고 씁니다.
"이모지"라는 표기는 아마도 "emoji"가 "emotion"이나 "emoticon"과 관련이 있다고 생각해서 나오는 것으로 보이는데요. "emoji"와 "emoticon"은 가짜동족어(false cognate)입니다. "emoji"는 일본어 絵文字(에모지)를 영어에서 그대로 받아들여 쓰고 있는 것입니다. 심지어 구성원리도 에모+지가 아니고 에+모지(絵+文字)입니다. "emotion"과 유사해 보이는 것은 순전히 우연일 뿐, 계통적으로 전혀 아무 상관이 없습니다. "이모티콘"과 "이미지"의 합성어가 아닙니다. (그랬으면 "-ji"가 아니라 "-ge"였겠죠.)
그리고 그렇기 때문에 에모지를 에모지로 표기할 실익이 생깁니다. :)
, ¯\_(ツ)_/¯
, ^_^
등은 이모티콘입니다. 반면 😂는 명확히 에모지입니다.
프로그래머에게 이건 정말 중요한 구분입니다. "이모티콘을 잘 표현하는 시스템"과 "에모지를 잘 표현하는 시스템"은 전혀 다른 과제이기 때문입니다. 에모지는 "그림 문자"라는 원래 뜻 그대로, 어떤 문자 집합(예를 들어 유니코드)에서 그림 문자가 "따로 있는" 것입니다. 내부 표현이야 어떻든, 적어도 최종 렌더링에서는 별도의 글리프가 할당되는 것이 에모지입니다. "무엇이 에모지이고 무엇이 에모지가 아닌가"는 상대적으로 명확합니다(문자 집합에 규정되어 있으니까).
반면 이모티콘은 "무엇이 이모티콘인가?"부터 불명확합니다. 우선 대부분의 이모티콘은 이모티콘이 아닌 문자를 조합하여 이모티콘이 만들어지는 형식입니다. 예를 들어 쌍점(:
)이나 닫는 괄호()
)는 그 자체로는 이모티콘이 아니지만 합쳐 놓으면 :)
이모티콘이 됩니다. 하지만 조합에 새로운 의미를 부여했다고 해서 다 이모티콘이라고 부르지도 않습니다. -_-
같은 것은 대다수가 이모티콘으로 인정하지만, ->
같은 것은 이모티콘이라고 부르지 않는 경향이 있습니다.
-
문자와 >
문자에는 화살표라는 의미가 없기 때문에, ->
조합과 화살표의 시각적 유사성에 기대어 화살표라는 새로운 의미로 "오용"한 것은 이모티콘의 구성 원리에 해당합니다. 하지만 화살표는 인간의 특정한 정서(emotion)에 대응하지 않으므로 이모티콘이라고는 잘 부르지 않습니다. 그렇다고 얼굴 표정을 나타내야만 이모티콘인가 하면 그렇지도 않습니다. orz
같은 것은 이모티콘으로 간주하는 경향이 있어 보입니다. 오징어를 나타내는 <:=
는 이모티콘인가? 이모티콘이 맞다면, 왜 ->
는 이모티콘이 아니고 <:=
는 이모티콘인가? 알 수 없습니다. ㅋㅋ
과 ㅠㅠ
는 둘 다 정서를 나타내는데, ㅠㅠ
만이 아이콘적 성질을 가지므로 이모티콘이고 ㅋ
는 이모티콘이 아닌가? 알 수 없습니다. 만약 ㅋ
만 이모티콘이 아니라고 한다면, ㅋ큐ㅠ
에서 큐
는 이모티콘인가 아닌가?? 알 수 없습니다. 이 알 수 없음은 이모티콘의 생래적 성질입니다. 어쩔 수 없죠.
패키지 저장소에 내가 만든 패키지를 업로드해보니까 다음과 같이 코딩말고도 할 게 꽤 많다.
- 저장소 계정 만들고 권한 승인 받기[1]
- 라이브러리 코드에 주석 적기
- 라이선스 정하기
- 소스 코드 저장소 정하기
- 커밋 메시지 적기
- 체인지로그 적기
- 테스트 코드 적기
- 버전 관리하기[^4]
LLM 덕분에 영어로 적어야 하는 문서 대부분은 어렵지 않게 할 수 있었다. LLM 때문에 바보 된다는 말도 많지만 영어 때문에 주저 했던 작업을 쉽게 시작할 수 있었다는 점에서 확실히 진입 장벽은 낮아졌다.
앞으로 더 해볼 일은 특정 배포판에 패키지를 배포하는 일이다. 해키지에서 지원하는 배포판은 다음과 같다.
- Arch
- Debian
- Fedora
- FreeBSD
- LTS
- LTSHaskell
- NixOS
- Stackage
- openSUSE
도전 과제로 위에 적은 모든 배포판에 내가 만든 패키지 배포해보는 것도 재밌겠다. LTS, LTSHaskell은 뭔가 했는데, 스태키지(Stackage)에 패키지 업로드하는 방법을 안내한 문서를 보니까 스태키지의 저장소 종류인 것 같다.
한편 해커즈 퍼브의 홍민희 님도 헤비(?) 하스켈 패키지 업로더이신데 예를 들어 seonbi도 사실 하스켈 패키지이다.
해키지 업로더 계정이 필요하신 분은 나와 홍민희 님을 멘션하면 이미 두 명의 승인은 따 놓은 당상이다.
해키지에서는 가입 후 기존 해키지 업로더 2명의 승인이 필요하다. ↩︎
@lionhairdino 근데, 이미 고쳤습니다. ANSI 구문 강조 테스트:
┌ Welcome to VitePress!
│
◇ Where should VitePress initialize the config?
│ ./docs
│
◇ Site title:
│ My Awesome Project
│
◇ Site description:
│ A VitePress Site
│
◆ Theme:
│ ● Default Theme (Out of the box, good-looking docs)
│ ○ Default Theme + Customization
│ ○ Custom Theme
└
@hongminhee洪 民憙 (Hong Minhee)
@lionhairdino 오늘도 빛의 속도로 개발하시는군요! ‘빛의 개발자’라고 부르겠습니다. 갑자기 궁금해졌는데 일본에서는 소프트웨어 개발자를 뭐라고 부르나요? 開発者라고 하려나요? 만약 맞다면 당신은 光の開発者!(아무말)
@akastoot악하 저는 Mac mini M4 가장 기본 깡통 모델을 홈 서버로 쓰고 있는데 대체로 만족중입니다.
@hongminhee洪 民憙 (Hong Minhee)
@akastoot악하 홈 서버의 아이피 주소가 바뀌면 어떻게 하시나요? DDNS 같은 게 있나요?
생일 선물 받았다!
@bin_bash_shell이수호 와! 생일 축하드립니다. 선물이 멋지네요. 간단한 제품 사용 후기를 들을 수 있을까요? 필기감이라든지⋯
@curry박준규 언어 설정에 “타임라인에서 내가 모르는 언어로 된 콘텐츠 숨기기”라는 옵션이 생겼답니다. ㅋㅋㅋ
@hongminhee洪 民憙 (Hong Minhee) 아⋯ 이 커밋 보고 언어 설정과 관련이 있을 것 같아서 설정을 보다가 그 옵션을 보긴 했는데 ‘이게 원래 없었나?’라고 생각했습니다. 다른 서비스에서는 못본 기능 같은데 꽤 유용할 것 같습니다! 한편 요즘 타임라인에 일본어가 자주 올라오긴 했는데 안 보고 싶다는 생각보다는 번역해서 보고 싶다고 생각했어요. 팬피의 일본어 번역 품질은 별로더라고요.
@curry박준규 보고 오셔도 됩니다. ㅋㅋㅋ
@hongminhee洪 民憙 (Hong Minhee) 하하! 봐도 모르겠네요⋯
오늘은 시간이 없어서 큰 작업은 못 하고, 그냥 아주 소소한 업데이트 하나 했습니다. 과연 뭐가 바뀌었을까요? (참고로 UI로도 드러나는 변화입니다.)
@hongminhee洪 民憙 (Hong Minhee) 커밋 로그 보고 와도 되나요?
앞으로 Hackers' Pub에서는 國漢英文混用으로 글을 올려볼까?
@arkjunJuntai Park 국한영문혼용은 어떻게 쓰신 건가요?
닉스(Nix)를 써보려고 Nix Pills라는 글을 읽기 시작했다. 화면에 Hello, world!
를 출력하는 패키지 hello
를 닉스로 설치하는 방법이 나오더라.
nix-env -i hello
저런 하찮은 프로그램이 패키지로 존재하는지 처음 알았다.
혹시 해키지에도 저런 게 있는지 검색을 해봤는데 있더라.[1] 2010년에 Simon Marlow가 업로드했다. 그런데 특이한 점이 이 패키지의 소스 코드 저장소 주소가 darcs.haskell.org라는 것이다. darcs를 호스팅하는 곳은 hub.darcs.net만 있는 줄 알았는데 haskell.org에도 있었구나⋯ 그런데 이 사이트 UI도 아예 없고 그냥 디렉터리 리스팅이 나오는데 hub.darcs.net으로 이전하시면 안 되려나.
타임라인에 Gumroads가 있길래 오랜만에 들어가봤습니다. 이곳은 전에 유명한 하스켈 책을 팔던 곳인데 지금은 없네요. 대신 @bglbgl gwyng 님이 좋아하실만한 걸 찾았습니다.
https://abuseofnotation.github.io/category-theory-illustrated/
해키지(Hackage)[1]에 패키지를 업로드하면 자동으로 빌드, 문서 생성, 테스트가 진행된다. 그런데 이게 시간이 좀 걸린다.(체감상 10분 정도) 이 과정이 자동으로 완료되기 전에 참지 못하고 수동으로 문서를 업로드하면 자동으로 진행되던 것들이 모두 중단된다. https://github.com/haskell/hackage-server/issues/1376
하스켈 패키지 저장소 ↩︎
@kodingwarriorJaeyeol Lee
@quadr최치선 아마 지금 로그인이나 초대장 보내는 API 같은 건 없을테니 먼저 로그인부터 구현하고 그 다음에 초대장 보내는 요청을 코드로 날리면 될 것 같아요.
오늘이 첫 번째 서울하스켈숲 워크샵이었을텐데 어땠을지 너무 궁금하다. 어디 후기 안 올라오려나⋯
RE: https://hackers.pub/@curry/0195d0ee-d8d2-7711-b550-b54cc1b5d599
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 저도 C/C++만 하다가, 취직해서 Python/C# 등등 메모리 관리 알아서 해주는 언어의 편리함을 제대로 느꼈거든요. 그런 다음에 Rust 나왔을때 다시 메모리 관리하려고 하니까 너무 불편하고 이런걸 꼭 해야하나 싶었습니다. 요즘은 하스켈로 space leak 와장창 내면서 살고 있습니다ㅋㅋ
@bglbgl gwyng
@hongminhee洪 民憙 (Hong Minhee)
ResourceT
로 메모리 누수에서 해방되세요!(잘 모름)
엥? 팬피가 죽었네⋯
@curry박준규 커헉;; 엄청나네요
@kodingwarriorJaeyeol Lee 이분들 책이 쉽고 재밌어요! 이 책은 더 쉽고 재밌습니다.
https://leanpub.com/finding-success-in-haskell
아, 자야 되는데⋯
@curry박준규 와 저거 무슨 내용 다루는 책인가요
몇 년 전에 취미로 프로그래밍 책 제본을 했다. 인터넷에서 업체에 PDF 파일을 전달하면 제본해서 택배로 받았다. 그렇게 읽지도 않는 책은 쌓여만 갔다. 결국 몇 달 전에 하스켈 학교 모르는 분에게 한 권만 나눔하고 모두 버렸다.
그런데 프로그래밍 책은 펼쳐 놓고 노트북을 켜서 실습할 때가 많기 때문에 잘 펴져야 한다. 떡제본은 펼침성이 나빠서 불만이었고 여러 제본 방식을 알아보다가 바인더 형식을 써보기로 했다. 적당한 업체를 찾아서 첫 주문을 했는데 오늘 도착했다. 원래 표지 디자인을 직접 해서 업체에 PDF를 전달해야 하는데 하는 법도 모르고 시간도 없어서
“그냥 대충 알아서 해주세요.”
했는데⋯
너무 이쁘게 잘 뽑아 주셨다. 책등 문구 디자인도 알아서 센스 있게 해주셨는데 너무 마음에 든다. 과연 이 책은 끝까지 읽을 수 있을까!
아니 그런데 Ghost integration쪽 계정 팔로하니까 첫 포스트에 @hongminhee洪 民憙 (Hong Minhee) 님이 언급되어 있어서 놀랐네요….
@jjme정진명
@hongminhee洪 民憙 (Hong Minhee) 저는 고스트가 페디파이에 자금 지원을 하게 된 이 이야기를 참 좋아합니다.
https://writings.hongminhee.org/2024/07/ghost-funds-fedify/
해키지에 패키지 올렸는데 왜 빌드가 안 돌지?
오늘은 Rust를 현업에서 쓰고 있고 또 좋아하는 고교 동창에게 Haskell을 영업했다.
@hongminhee洪 民憙 (Hong Minhee) 고교 동창분의 반응은 어땠나요?
회사에서 거의 10년 동안 운영한 서버를 교체 중이다. 고생 많으셨습니다. 서버님⋯ 새로 오신 서버님에게는 돼지 머리랑 막걸리 준비는 못했지만 절이라도 올려야겠다.
@kodingwarriorJaeyeol Lee
@quadr최치선 구글 앱스 스크립트를 이용해보세요!(라고 ChatGPT가⋯)
@kodingwarriorJaeyeol Lee 생각보다 사람들은 메일확인을 잘 안하는것 같아요. 제 주변에 읽지않은 메일 0으로 유지하는 사람을 본적이 거의 없네요..
@quadr최치선
@kodingwarriorJaeyeol Lee 구글폼에 메일을 제출하면 즉시 초대장이 가도록 한다면 어떨까요?
해커스 펍에 조와용 버튼이 원래 없었던가
@aiooAhn Kiwook 안녕하세요! 어떻게 구현할지 고민 중이라고 합니다.