박준규

@curry@hackers.pub · 271 following · 131 followers

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

해커스펍 계정은 쓰기 전용으로, 우리인생은 읽기전용으로 사용하고 있다. 또는 기술 관련 콘텐츠는 해커스펍에 올리고 일상은 우리인생에 올리려고 한다.

클라이언트는 팬피를 쓰고 있는데 해커스펍은 마스토돈 API 구현이 안 되어 있어서 팬피에는 우리인생 계정을 연동했다.

그런데 팬피에서 재밌게 글을 읽다 보면 무심코 팬피에서(우리인생 계정으로) 해커스펍 글에 댓글을 달아서 뭔가 곤란하다⋯

그리고 해커스펍에 오신 분들은 거의 다 팔로우를 하고 있는데 동시에 우리인생에서도 팔로우를 해야해서(팬피에서 읽어야 하니까) 불편하다.

0

소프트웨어 개발자들이 자주 틀리는 외래어 표기법.

영어 틀린 표기 올바른 표기
app 어플
application 플리케이션 플리케이션
directory 디렉 디렉
front-end 트엔드 트엔드
message
method
release 릴리 릴리
repository 포지 포지

또 있을까요?

0
0

소프트웨어 개발자들이 자주 틀리는 외래어 표기법.

영어 틀린 표기 올바른 표기
app 어플
application 플리케이션 플리케이션
directory 디렉 디렉
front-end 트엔드 트엔드
message
method
release 릴리 릴리
repository 포지 포지

또 있을까요?

0

네이버에서 이런 걸 왜 만들었을까?

Tamgu는 Prolog에서 영감을 받은 술어 엔진과 Haskell 언어에서 영감을 받은 기능적 기능을 갖춘 명령형 언어입니다. 이 세 가지 프로그래밍 스타일을 자유롭게 혼합할 수 있습니다.

https://github.com/naver/tamgu/tree/master

0
0
0
0

해커스펍 계정을 만들었습니다. 권유와 초청 주신 분들 감사합니다.

저는 게임 기획자로 일하고 있습니다만, 요즘 몇년은 js/react로 제품에 들어갈 코드를 짜는 일이 많습니다. 최근에는 https://guji.jjme.me/ 에서 블로그를 쓰는 데 많은 에너지를 쓰고 있습니다.

0
0
0

박준규 replied to the below article:

거꾸로 상태 모나드로 강화 학습 하기 (1/2)

bgl gwyng @bgl@hackers.pub

이 글은 하스켈로 강화 학습을 구현하며 겪는 기술적인 고민과 해결 과정을 다룹니다. 저자는 Hasktorch 라이브러리를 사용하여 스네이크 게임을 강화 학습으로 훈련시키는 과정을 소개하며, 데이터 없이 에이전트를 학습시키는 강화 학습의 장점을 강조합니다. 특히, 에이전트와 환경을 정의하고, 보상 함수를 설계하여 뱀이 먹이를 먹도록 유도하는 방법을 설명합니다. 글에서는 즉각적인 보상과 누적 보상의 차이를 지적하며, 감쇠율을 적용하여 미래의 보상을 현재의 선택에 반영하는 방법을 제시합니다. 또한, 순수 함수로 환경을 정의하는 것의 한계를 언급하며, 환경이 에이전트를 실행할 수 있는 모나드여야 함을 강조합니다. 저자는 이 경험을 통해 얻은 인사이트를 공유하며, 강화 학습 코드를 더 효율적으로 작성하는 방법에 대한 고민을 제시합니다. 다음 글에서는 상태 모나드를 사용하여 이러한 문제점을 해결하는 방법을 소개할 예정이며, 독자들에게 모나드에 대한 사전 학습을 권장합니다.

Read more →
1
0
0
0

해키지(Hackage)[1]에 업로드한 패키지에 하독(Haddock)[2] 문서가 보이지 않을 때 다음과 같이 하면 된다.

먼저 다음 명령어로 하독 문서를 빌드한다.

cabal haddock --haddock-for-hackage

빌드된 압축 파일을 다음 명령어에 인자로 넣어 해키지에 업로드한다.

cabal upload --documentation --publish

이렇게 하면 이미 업로드된 패키지를 버전 변경(bump up)할 필요 없이 패키지에 누락된 하독 문서만 따로 업로드할 수 있다.


  1. 하스켈 패키지 저장소 ↩︎

  2. 하스켈 코드에 적은 주석 기반으로 HTML 문서를 만들어 주는 도구 ↩︎

0
0
0

@hongminhee洪 民憙 (Hong Minhee) 서울하스켈숲 1회 워크샵 참가 신청서 링크가 공개되었습니다. 다만 대상이 ‘하스켈을 잘 모르는 사람’이네요⋯

서울하스켈숲 1회 워크샵 참가 신청서

안녕하세요. 🌲서울하스켈숲🌲 김은민(https://github.com/eunmin)입니다. 서울하스켈숲은 서울숲 근처를 기반으로 하스켈 프로그래밍 언어를 함께 알리고 즐기기 위한 모임이 되려고 합니다. 하지만 아직 혼자입니다. 사람을 모으기 위해 먼저 4월은 하스켈을 배울 수 있는 워크샵을 열어보려고 합니다. 워크샵 후에 하스켈과 모인 사람들이 재밌는 모임이 될 것 같다고 생각이 되면 본격적인 모임을 만들 수도 있을 것 같아요. 워크샵은 다음과 같이 진행합니다. 서울하스켈숲은 liftIO와 함께합니다. :) 0. 내용 하스켈을 모르시는 분들에게 하스켈 기초 함께 따라하며 배우는 워크샵 1. 회차 및 시간 1회 4/3 (목) 저녁 7시~9시 2회 4/7 (월) 저녁 7시~9시 3회 4/10 (목) 저녁 7시~9시 4회 4/14 (월) 저녁 7시~9시 5회 4/17 (목) 저녁 7시~9시 6회 4/21 (월) 저녁 7시~9시 7회 4/24 (목) 저녁 7시~9시 8회 4/28 (월) 저녁 7시~9시 간식은 있지만 식사는 하고 오셔야 함 2. 장소 뚝섬역 도보 3분 이내 (구체적인 장소는 참석 확정 때 알려드림) 3. 비용 2만 원 (모아서 간단한 간식비로 쓸 예정) 참석 확정되면 계좌를 알려드림 4. 대상 다른 프로그래밍을 한 개 이상 할 수 있는 사람, 하스켈을 잘 모르는 사람 5. 인원 및 선발 전체 12명 먼저 신청했다고 참석이 확정되는 것이 아닙니다. 성별, 연령대등이 치우치지 않게 구성(자연스럽게 여성 개발자 우대)하려고 합니다. 따라서 신청서를 보고 참가 인원을 구성해서 확정 여부를 알려드리겠습니다. 참석 확정 여부는 늦어도 4월 1일에는 문자로 알려드리겠습니다. 6. 준비물 실습이 필요하니 개인 노트북을 가져오세요. 7. 개인정보 처리방침 아래 수집한 개인정보(이름, 성별, 연령대, 휴대폰번호, 소속, 하고 싶은 말, 소셜링크)는 워크샵 기간 동안 워크샵을 위해서 저(김은민)만 사용하고 워크샵이 끝나는 2025년 4월 28일 이후에 폐기(구글에서 삭제)합니다. 안전을 위해 개인정보를 구글에서만 보고 파일로 다운로드하거나 다른 곳에 복사해서 관리하지 않을 것입니다. 문제가 생기면 김은민(telepopsound@gmail.com)이 책임지겠습니다.

docs.google.com · Google Docs

0
0
0

전체 사용자 초대 족보에서 원한다면 자신의 계정을 가리는 옵션을 추가하면 좋겠다는 @saschanazKAGAMI🏳️‍🌈🏳️‍⚧️ 님의 의견에 따라, 내 계정 족보에서 숨기기 버튼을 만들었습니다. 자신의 계정을 족보에서 숨기면 목록에 항목은 보이지만 이름이나 프로필 사진, 핸들은 가려지게 됩니다.



RE: https://sekai.social/notes/a5u6zpmnn3tf06pr

Hackers' Pub의 전체 사용자 초대 족보 페이지. “내 계정 족보에서 숨기기” 버튼이 보인다. 족보에서 어떤 계정은 “숨겨진 계정”으로 표시되고 있다.

이번에는 Grok에게 커밋 메시지[1] 작성을 부탁하다가 Changelog 작성하는 문서[2] 안내를 받았다.


  1. 그동안 내가 ‘메세지’라고 적었는데 홍민희 님의 글[3]을 보고 고쳤다. ↩︎

  2. https://keepachangelog.com/ko/1.0.0/ ↩︎

  3. https://hackers.pub/@hongminhee/0195d2c5-294d-7f92-b33e-db40eec4793a ↩︎

0
0

darcs tag[1]의 도움말을 읽다가 《Producing Open Source Software》[2]라는 책을 알게 되었습니다. 혹시 이 책의 한글 번역서가 있나요? 《오픈 소스로 미래를 연마하라》(인사이트, 2019)가 약간 비슷한 내용을 다루는 것 같긴 합니다.


  1. https://gist.github.com/nattybear/6beaa578a08b0272e22c6154a606b02f ↩︎

  2. https://producingoss.com/ ↩︎

0

@curry박준규 공유해주셔서 감사합니다! 적독가는 제가 책을 잘 안사서 하핫 ReBundle은 눈여겨 보고 있습니다~ 저는 읽고 싶은 책을 발견하면 북플에다가 등록해놓기는 합니다. 꾸역 꾸역 쓰고는 있는데 소셜 기능이 참 아쉬워요.

0

@curry박준규 저는 Facebook을 안 써서 안타깝게도 댓글은 못 쓰지만… 서울숲 근처라면 튜링의 사과도 괜찮지 않을까 싶네요! 참고로 튜링의 사과는 공식 Mastodon 계정(@TuringAppleDev튜링의 사과)도 있습니다.

그나저나, 저도 참가하고 싶은데 Facebook 안 쓰는 사람도 참가 가능한가요?

0
0

crontab은 원하는대로 동작하지 않을 때가 많고 왜 안 되는지 이유를 알기도 어려웠는데 ChatGPT에게 물어 보니 source ~/.profile 넣고 해보라길래 그렇게 했더니 잘 된다.

0
0
0

얼굴인식 사진공유 카메라앱 슈티를 함께 만들 분을 찾습니다. 앱은 출시되어 있어 써보실수 있습니다. 이번달 내로 페디버스 연동을 끝내면 제가 생각한 MVP는 완성입니다. 앞으로도 개발해야할 부분들이 많고, 개중에 기술적으로 흥미로운 문제들도 다수 있습니다.

지금 2025년 상반기 투자유치를 목표로 팀 빌딩을 하고 있습니다. 관심 있으신 분, 또는 잘 모르겠지만 이야기를 나눠보고 싶은 분도 bgl@gwyng.com으로 편하게 연락주세요.

0
0

@hongminhee洪 民憙 (Hong Minhee) @parksbSimon Park 저는 액티비티펍이 이메일과 닮았다고 생각하는데 이메일에는 “전역 뷰”에 해당하는 게 없는 것 같네요. 다만 한 사용자가 여러 이메일 계정을 썬더버드 같은 이메일 클라이언트 하나로 볼 수 있는데 연합우주에도 이런 개념을 적용할 수 있을지 궁금합니다. 이미 “팔로우”가 어딘가 POP3 기능을 하는 것 같기도 하고요.

0

@hongminhee洪 民憙 (Hong Minhee) @parksbSimon Park 저는 액티비티펍이 이메일과 닮았다고 생각하는데 이메일에는 “전역 뷰”에 해당하는 게 없는 것 같네요. 다만 한 사용자가 여러 이메일 계정을 썬더버드 같은 이메일 클라이언트 하나로 볼 수 있는데 연합우주에도 이런 개념을 적용할 수 있을지 궁금합니다. 이미 “팔로우”가 어딘가 POP3 기능을 하는 것 같기도 하고요.

0

그동안(10+년;;) git이 엄청 잘만든 물건 같지는 않다고 생각하며 대충 쓰고있었는데, 요즘 branch 개념 자체가 근본적인 실수란 생각이 들기 시작했다. branch 대신에 변경의 시작과 끝, 양 끝점을 가지는 interval을 쓰는게 맞는거 같다(카테고리 이론의 작은 교훈: primitive는 양 끝점을 가지는게 좋다).

git을 쓰면 히스토리 길어진다고 squash merge 등을 하는데, (나도 하지만) 사실 기껏 만들어놓은 히스토리를 뭉개버리는 말도 안되는 동작이다. 만약 interval을 쓴다면 히스토리는 그대로 남기고 UI 단에서 fold/unfold 등을 해줄수 있을 것이다.

Darcs 등이 interval에 기초하는데, 지금은 일이 너무 바빠서 시도할 여유가 없다. 한번 숨고를 시간이 주어지면 멀쩡한 VCS를 탐색하는 시간을 가질것이다.

@bglbgl gwyng 저는 Darcs를 하스켈에 대한 빠심(?) 하나로 최근 써보고 있습니다. 마침 기여하고 싶은 패키지[1]의 저장소도 hub.darcs.net이기도 했고요.

Darcs 쓰면서 편한 점은 이미 추적(?)을 결정한 파일은 변경 사항을 커밋할 때 다시 add 하지 않아도 되고 바로 커밋[2]할 수 있다는 것입니다.

또 하나 편한 점은 파일에 여러 변경 사항이 혼재되어 있을 때 커밋을 나눠서 할 수 있다는 것입니다. 이건 제가 글재주가 부족해서 말로 설명하기 어려운데, 여러 변경 사항에 대해서 커밋을 시도할 경우 대화형으로 커밋 여부를 물어보는데 이때 원하는 변경 사항만 골라서 커밋을 하면 됩니다.

GHC[3]의 저장소가 현재는 GitLab이지만 과거에는 Darcs였었죠. 성능 이슈 때문에 이전했다고 하는데 지금은 문제가 해결됐는지 궁금하네요.


  1. https://hackage.haskell.org/package/webfinger-client ↩︎

  2. Darcs에서는 커밋에 해당하는 명령어가 레코드(record)이다. ↩︎

  3. 하스켈 컴파일러 ↩︎

0
0

높은 목표를 가진 개발자라도 결국엔 아주 사소한 동기로 움직이는거 같다.

나같은 경우엔, 완벽한 프로그래밍 언어를 만드는 것이 목표인데(가능한지는 차치하고), 완벽하다는건 나말고 다른 누군가가 같은 문제 의식을 가진다면 똑같이 그곳에 다다를 거란걸 의미한다. 그 프로그래밍 언어의 설계에서 내 마음대로 결정할수 있는 부분은 없을 것이다. 설계에서 최적의 선택지만을 택해야 완벽할테니까 말이다. 그때가선 그 선택들이 너무 자명해서, 내겐 처음부터 선택의 여지가 없었다고 느낄것이다.

그럼에도 내가 결정할 수 있을 부분이 있기는한데, 그 언어의 이름에 뜬금없이 우리집 강아지 이름을 붙인다던가 하는 것이다. 이게 그 사소한 동기다.

0
0
0
0
0
0

집에서 회사에 있는 WSL에 SSH로 접근하려고 삽질을 좀 했는데 결론만 적는다. 우선 구성은 다음 그림과 같다.

G macOS macOS Windows Windows macOS->Windows VPN WSL WSL Windows->WSL

이때 다음과 같이 하면 macOS에서 WSL에 SSH로 접근이 가능하다.

  • Windows에 SSH 서버 필요 없음
  • Windows에 netsh interface portproxy 명령어로 포트 프록시 이용
  • WSL에서 sshd_config 파일에 GatewayPorts yes 설정 필요

그리고 macOS의 Visual Studio Code에서 Remote - SSH 플러그인을 이용하면 macOS에서 쾌적하게(?) 회사 WSL에 접근해서 코딩할 수 있다.

문제가 생겼는데 이렇게 하면 다음과 같이 하독(haddock)으로 만든 라이브러리 문서를 볼 때 WSL에서 브라우저를 열 수 없다.

cabal haddock --open

이럴 때는 다음과 같은 옵션을 이용해서 문서 배포용 압축 파일을 만들고 그것을 macOS 로컬로 다운 받아 열면 된다.

cabal haddock --for-hackage

그나저나 하독이 만들어주는 문서 페이지 너무 깔끔하고 좋다.

0
0

집에서 회사에 있는 WSL에 SSH로 접근하려고 삽질을 좀 했는데 결론만 적는다. 우선 구성은 다음 그림과 같다.

G macOS macOS Windows Windows macOS->Windows VPN WSL WSL Windows->WSL

이때 다음과 같이 하면 macOS에서 WSL에 SSH로 접근이 가능하다.

  • Windows에 SSH 서버 필요 없음
  • Windows에 netsh interface portproxy 명령어로 포트 프록시 이용
  • WSL에서 sshd_config 파일에 GatewayPorts yes 설정 필요

그리고 macOS의 Visual Studio Code에서 Remote - SSH 플러그인을 이용하면 macOS에서 쾌적하게(?) 회사 WSL에 접근해서 코딩할 수 있다.

0
0