한국의 함수형 프로그래밍 컨퍼런스 LiftIO 2025가 슬슬 열린다고 한다.
- liftIO 2025 연사 신청 링크: (https://forms.gle/RsmowMdtNxH1Pchc6)
- 컨퍼런스 신청 링크(https://event-us.kr/liftioconf/event/114005)
@curry@hackers.pub · 313 following · 166 followers
한국의 함수형 프로그래밍 컨퍼런스 LiftIO 2025가 슬슬 열린다고 한다.
하스켈에서 레코드 타입을 json으로 인코딩할 때 타입이 Maybe
인 필드의 값이 Nothing
이면 그 타입의 값은 null
로 변환된다.(deriving Generic
했다면)
이때 null
이 아니라 해당 필드 자체를 포함하지 않게 하려면 다음과 같이 하면 된다.
{-# LANGUAGE TemplateHaskell #-}
import Data.Aeson.TH
data Foo = ...
deriveJSON defaultOptions { omitNothingFields = True } ''Foo
위와 같이 deriveJSON
했다면 기존에 선언했던 아래 구문은 지워야 한다.
instance FromJSON Foo
instnace ToJSON Foo
지인이 오타를 제보해주셨는데 수정이 안 되네…
instnace -> instance
하스켈에서 레코드 타입을 json으로 인코딩할 때 타입이 Maybe
인 필드의 값이 Nothing
이면 그 타입의 값은 null
로 변환된다.(deriving Generic
했다면)
이때 null
이 아니라 해당 필드 자체를 포함하지 않게 하려면 다음과 같이 하면 된다.
{-# LANGUAGE TemplateHaskell #-}
import Data.Aeson.TH
data Foo = ...
deriveJSON defaultOptions { omitNothingFields = True } ''Foo
위와 같이 deriveJSON
했다면 기존에 선언했던 아래 구문은 지워야 한다.
instance FromJSON Foo
instnace ToJSON Foo
@hongminhee洪 民憙 (Hong Minhee) 역시 hollo는 갓 소프트웨어
@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior)
@hongminhee洪 民憙 (Hong Minhee)
아니, 여기서는 하스켈로 만든 Seonbi를 찬양해야…
하스켈에서 Either a b
의 ToJSON
인스턴스 구현이 약간 애매하다.
json 객체의 키 값으로 "Left"
나 "Right"
를 넣는 것 같다. 그런 방식으로 사용하는 사람은 거의 없을 것 같은데... 아무튼 그래서 newtype
은 쓰지 않고 인스턴스를 오버라이딩 하고 싶은데 대충 찾아보면 인터넷이나 LLM의 첫번째 대답은 OverlappingInstances
확장을 쓰라고 안내하는데 이건 deprecated 됐다. 대신 다음과 같은 프라그마(pragma)를 쓰면 된다.
OVERLAPPING
OVERLAPPABLE
OVERLAPS
프라그마는 확장과 다른데 확장은 확장을 적은 파일 전체에 적용되지만 프라그마는 해당 인스턴스에만 적용된다.
다음과 같이 사용한다.
instance {-# OVERLAPPING #-} ToJSON a => ToJSON (Either Foo a) where
toJSON = ...
이렇게 하면 고아[1]를 만들었다며 컴파일러가 내 인성을 비난하겠지만 Either a b
를 통째로 오버라이딩 한 것도 아니고 별로 문제가 될 것 같진 않다.
하스켈에서 타입이나 클래스가 정의된 모듈이 아닌 곳에 인스턴스를 선언할 때 그 인스턴스를 Orphan(고아) 인스턴스라고 한다. ↩︎
早晩間 블로그 글로 仔細히 풀겠지만, Fedify 프로젝트가 STF로부터 投資를 받게 되어, 제가 앞으로 約 一年 동안 Fedify 프로젝트에만 專念할 수 있게 되었습니다.
I'll write a detailed blog post soon, but I'm thrilled to share that Fedify has received investment from the Sovereign Tech Fund, which means I'll be able to focus exclusively on the Fedify project for the next year or so.
早晩間 블로그 글로 仔細히 풀겠지만, Fedify 프로젝트가 STF로부터 投資를 받게 되어, 제가 앞으로 約 一年 동안 Fedify 프로젝트에만 專念할 수 있게 되었습니다.
남들에게 알려주면 굉장히 재미있어할만한 코딩지식이 있을까?
@2chanhaeng이찬행 흔히 탭 완성이라고 하는 걸 구현하는 겁니다!
@hongminhee洪 民憙 (Hong Minhee)
@2chanhaeng이찬행 그걸 배워서 어딘가에 구현하시려고 하는 거군요!
IP/Port: 221.144.15.168:5900
Hostname: N/A
Client Name: HMI-8ed5
Location: Yeonggwang, Jeollanam-do, KR 🇰🇷
ASN: AS4766 Korea Telecom
VNC Password: 111111
ID: 13061028
Added to DB: 05/06/2025, 10:35:16 AM (UTC)
Last seen: 05/06/2025, 06:10:42 AM (UTC)
https://computernewb.com/vncresolver/browse#id/13061028
@vncresolver 한국 또 나왔네! 이건 현재 접속 안 됨.
기후위기로 지표가 살기 불가능해져서 모두 실내/벙커 내에서 생활하는 상황 등
모두 태양을 보지 않고 인공적인 빛으로 살게 되는 세상이 되면
지구의 모든 조명을 동기화하면 타임존을 하나로 통일해도 되지 않을까?
@pbzweihander쯔방
안녕하세요! 재밌는 상상이네요! 그때를 대비해서 우리 모두 아마추어 무선 자격증을 땁시다!
실은 아직도 Bash를 쓰고 있습니다…
@hongminhee洪 民憙 (Hong Minhee) macOS에서도 일부러 Bash를 쓰시는 건가요?
zsh
쓰지도 않고 써 본 적도 없는데 zsh
에서 완성(completion) 함수 어떻게 만드는지 배우고 있음…
@hongminhee洪 民憙 (Hong Minhee) 어디서 뭘 배우고 계세요!ㅎㅎ
나중에 대국민담화로 전국민의 주민등록정보가 화재로 파괴되었다 어쩌구 이러는거 아니겠지
@z9mb1wwj Haskell
@arkjunJuntai Park 이번에는 국토교통부로 이송되었습니다.
본 민원은 국도77호선 관련 내용으로, 민원처리법 제16조(민원문서의 이송)에 따라 순천국토관리사무소로 이송합니다.
귀하께서 요청하신 둔병대교 VMS 운용 프로그램 사용자 접속 제한에 대해서는 최초 VMS 설치 시 운용하여 비밀번호가 노출됐던 프로그램은 삭제하고 내부 운용 프로그램 사용을 통해 관리자만 접근 할 수 있도록 조치하였음을 알려드립니다.
와, 진짜 이제 접속 안 됩니다! 국토교통부 공무원 여러분 고생하셨습니다.
@arkjunJuntai Park 이번에는 국토교통부로 이송되었습니다.
본 민원은 국도77호선 관련 내용으로, 민원처리법 제16조(민원문서의 이송)에 따라 순천국토관리사무소로 이송합니다.
귀하께서 요청하신 둔병대교 VMS 운용 프로그램 사용자 접속 제한에 대해서는 최초 VMS 설치 시 운용하여 비밀번호가 노출됐던 프로그램은 삭제하고 내부 운용 프로그램 사용을 통해 관리자만 접근 할 수 있도록 조치하였음을 알려드립니다.
와, 진짜 이제 접속 안 됩니다! 국토교통부 공무원 여러분 고생하셨습니다.
lens
라이브러리의 타입들은optics
(광학기구)라고 불립니다. 여기에는Prism
,Lens
,Iso
,Traversal
,Fold
,Getter
,Setter
같은 것들이 포함됩니다. 이 이름들 중 일부는 빛의 굴절에 대한 말장난에서 비롯되었습니다. 예를 들어, 렌즈(lens)는 망원경이 풍경의 작은 일부를 시야 가득히 채워 보이게 해주는 것이고, 프리즘(prism)은 흰빛을 분리하여 그 구성 색들을 드러내 줍니다. 어느 정도는 은유가 담겨 있지만, 이런 이름들은 깨달음을 주기보다는 귀여운 쪽에 가깝습니다. 따라서 이름 자체에 너무 깊이 집중하는 것은 권하지 않습니다.
— 《Finding Success (and Failure) in Haskell》, 158쪽
하스켈백합
방금 따님이 폰으로 유튜브 쇼츠 넘기며 보는데
그 앞에서 마눌님이 개똥벌레 노래를 부르니
잠시후 개똥벌레 노래 부르는 쇼츠가 나옴 ㅋ
구글이 듣고 있다..
@draco드라코 안녕하세요. 저도 가끔 그런 섬뜩함(?)을 느끼곤 합니다.
@lionhairdino 엥, 저런 뉴스레터가 있군요?
@hongminhee洪 民憙 (Hong Minhee)
@lionhairdino 엥, 동의 안 구하고 게시해도 되는 걸까요? 원본 링크를 걸긴 했네요. 그러고 보니 저도 동의 안 구하고 트위터에 민희 님 글 올리고 그랬네요.
@arkjunJuntai Park 한국도로교통공단으로 민원을 넣었는데 전라남도 여수시로 민원이 이송되었네요.
@arkjunJuntai Park 이번에는 국토교통부로 이송되었습니다.
본 민원은 국도77호선 관련 내용으로, 민원처리법 제16조(민원문서의 이송)에 따라 순천국토관리사무소로 이송합니다.
http://logitext.mit.edu/main
재미있는 웹 앱 중 하나. 논건 대수(Sequent Calculus)를 사용해 1차 논리("모든 대상에 대해"나 "어떤 대상이 있어"를 서술할 수 있는 논리)의 명제를 상호작용을 통해 증명해 볼 수 있다.
예를 들어 A /\ B -> A
(A
그리고 B
이면 A
이다)를 증명하려면
->
를 눌러 명제 안의 "이면"을 증명에서 쓸 수 있는 가정(|-
의 왼쪽에 있는 것)으로 바꾼다.A /\B
를 눌러 "그리고"의 양 측에 해당하는 가정 A
와 B
각각을 얻는다.A
를 눌러 가정을 사용하는 것으로 증명을 끝낸다.보다 입문자에게 친절한 설명은 http://logitext.mit.edu/tutorial 에서 읽어볼 수 있다.
무려 폰트도 바꿀수 잇슴 ㅋㅋㅋㅋㅋ
나는 매킨토시로 일기쓰는 사람이다 무섭지
@arkjunJuntai Park 국민신문고에 민원 신청했습니다.
@arkjunJuntai Park 한국도로교통공단으로 민원을 넣었는데 전라남도 여수시로 민원이 이송되었네요.
@curry박준규 뭔가 무시무시한 것을 본 느낌이네요. 게다가 비밀번호
1234
로 공개접근이 가능하다니, 충격과 공포네요.😰
@arkjunJuntai Park 국민신문고에 민원 신청했습니다.
보안관제 서비스 알아보니 정말 최소 옵션으로 하면 월 8만원까지 해줄 수 있다는데...
이게 고민스러운게 비싼 것 같아도, 요새 개인서버 운영자도 해킹당하면 변호사 선임 고려해야하는데 이게 기본 300만원 깨진단말이지
그런거 생각하면 저렴한거 아닌가 생각이 들기도...
@gnh1201어둠사자 어떤 서비스를 관제하려고 하시나요?
???: 도로 전광판 중학생한테 다 털렸죠ㅋㅋㅋ
@lifi리피
안녕하세요. 진짜 이럴까봐 걱정입니다. 딱 그 그림 나오기 좋은 상황인데...
이거 위험하지 않나... 관리 주체가 어딜까? 경찰이 하나?
실제 매출 상관 없이, 문의오는 잠재 고객의 해외 비중이 높을 경우
한국무역협회 등 해외통상 분야와 관련이 있는 협회에 가입하는게 좋을까?
@gnh1201어둠사자 잘 모르겠으니까 일단 가입해보고 판단하면 좋을 것 같습니다.
박준규 @curry@hackers.pub
하스켈에서 레코드 타입을 다루는 다양한 관용구를 소개하는 글입니다. 레코드 생성 시 `NamedFieldPuns`나 `RecordWildCards` 확장 기능을 활용하여 코드를 간결하게 만들 수 있으며, 레코드 필드에 접근할 때는 접근자 함수, 패턴 매칭, 또는 `RecordDotSyntax` 확장을 사용할 수 있습니다. 일부 패키지에서는 레코드 생성자를 숨기고 스마트 생성자를 제공하여 API를 제어하기도 합니다. 저자는 스마트 생성자보다는 레코드 생성자를 직접 내보내는 방식을 선호하며, 이는 하스켈 입문자들의 진입 장벽을 낮추고 코드 기여를 활성화하는 데 도움이 된다고 주장합니다. 장기적으로는 언어 차원에서 기본값을 가지는 필드를 지원하여 레코드 타입 정의를 더욱 유연하게 만들 수 있을 것이라는 전망을 제시하며, 이 글은 하스켈 패키지 작성자와 사용자 모두에게 유용한 정보를 제공합니다.
Read more →너무 이른 시점에 일반화를 걱정하는 것은 위험할 수 있습니다. 자신이 코드를 작성하든 다른 사람의 코드를 이해하려 하든, 우리는 이 책에서 취한 접근 방식을 따를 것을 권장합니다. 즉, 일반적인 것부터 시작하지 말고 구체적인 예시부터 시작하세요. 그런 다음 그들이 어떤 측면을 공유하는지 관찰하세요. 학습자로서 이러한 순서는 더 쉬운 구체적인 예시를 토대로 더 어려운 추상적 개념을 이해할 기회를 더 많이 제공합니다. 저자로서 이러한 순서는 더 추상적인 발상이 타당성을 갖고 목적을 지닐 수 있도록 도와줍니다.
— 《Finding Success (and Failure) in Haskell》, 149쪽
오픈소스 서밋 코리아 세션 리스트 공개됐네요
박준규 @curry@hackers.pub
이 글은 하스켈 코드의 가독성을 높이기 위한 실용적인 팁을 제시합니다. 저자는 하스켈 입문자들이 흔히 겪는 어려움을 해결하고, 코드를 더 쉽게 이해할 수 있도록 6가지 규칙을 제안합니다. 핵심은 달러 기호($) 사용을 자제하고, 연산자는 결합 가능한 것만 사용하며, do 표기법을 적극적으로 활용하는 것입니다. 또한, 렌즈 라이브러리 사용을 미루고, where와 let을 사용하여 코드를 구조화하며, 포인트 프리 스타일을 적절히 사용하는 것이 중요하다고 강조합니다. 이러한 규칙들을 따르면 하스켈 코드가 더욱 명확해지고, 함수형 프로그래밍에 익숙하지 않은 개발자들도 쉽게 이해할 수 있게 됩니다. 이 글은 하스켈의 진입 장벽을 낮추고, 더 많은 사람들이 이 언어를 배우고 활용할 수 있도록 돕는 데 기여합니다.
Read more →연구자로서, 또한 한 명의 개발자로서 현 세대에 항상 궁금한 것은 AI가 얼마나 도움이 되느냐이다.
Haskell, OCaml은 말할 것도 없고, JavaScript, Python도 AI와 써 본 경험으로는 그들이 큰 도움이 되느냐는 질문에 자신있게 "그렇다"고 하기 힘든 경험만 해봤기 때문이다.
내가 코드의 형식에 대한 집착이 너무 심한 것이 원인일 수는 있겠으나... AI가 준 결과를 여기 바꾸고 저기 바꾸다보면 결국 내가 쓴 처음부터 코드가 된다.
얼핏 드는 생각으로는 거의 "타입도 없고 문서화도 잘 안되어 있는 환경에서는 사람들이 기능을 이해하기 어려우니 AI를 쓰겠다..."싶다가도, "그러면 내가 잘 아는 분야에 대해서 왜 AI를 써야하지?"하는 생각도 떨치기 힘든 상황이 자주 찾아온다.
결과적으로 나는 AI를 사용하려는 시도를 (적어도 일시적으로는) 멈추었다.
박준규 shared the below article:
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 글은 저자가 LLM(Large Language Model)을 활용하여 코딩하는 방법에 대한 개인적인 경험과 팁을 공유합니다. LLM 코딩 에이전트 사용 시 맥락 제공의 중요성을 강조하며, Claude Code 모델을 선호하는 이유와 그 장단점을 설명합니다. 세부적인 지시를 위해 GitHub 이슈를 활용하고, 설계는 사람이, 구현은 LLM이 담당하는 역할 분담을 제안합니다. 또한, 프로젝트 지침을 담은 *AGENTS\.md* 파일의 중요성과 Context7을 활용한 문서 제공 방법을 소개합니다. 계획 모드를 통해 LLM이 스스로 피드백 루프를 돌도록 유도하고, 필요한 경우 손 코딩을 병행하여 코딩의 재미를 유지하는 전략을 제시합니다. 이 글은 LLM을 단순한 도구가 아닌 협력적인 동료로 활용하여 개발 효율성을 높이는 방법을 모색하는 개발자들에게 유용한 인사이트를 제공합니다.
Read more →그래서 KT는 LTE 주파수 확보 문제를 해소하기 위해 펨토셀을 울며 겨자먹기로 보급하게 됩니다. 미창부와 KT, SKT, 삼전 모두가 엮인 총체적 난국이었죠. 이 과정에서 시간이 지나 펨토셀이 일반화되고 알리에서도 물건을 파는 시대가 왔습니다 -_-; 그러면서 이번 사건이 터진겁니다. 당분간은 정말로 이거 해소할 방안이 없어 보이니, 꾸준히 모니터링 하면서 이상한 소액결제을 꾸준히 모니터링 하는 수 밖에 없어보입니다. 추측인데 eSIM, 듀얼 SIM이 되는 기기가 빈 SIM 공간이 있으면 취약하니, 어떻게든 채우라 하네요.
@curry박준규 어 어렵자나요!!!!
@thx감상어
그, 그렇지 않습니다! 크흠… 제가 속성 과외 해드립니댜. ㅎㅎ
이 번 하스켈 밋업이 뉴욕에서 열리는데, 북아메리카 하스켈 해커톤으로 이 쪽에서는 처음 여나 봅니다. 이름이 아메리핵AmeriHac 이랍니다.
@lionhairdino 제인 스트리트 뉴욕 사옥에서 진행한다고 합니다. 승헌 님이 가실 것 같다고 하네요.
@curry박준규 그 그게 무엇이지요???
근데 리눅스 다루는 게 재밌고
간단한 코딩이랑 서버 다루는 게 재밌으면
어디로 입문하면 좋은 것이지?
역시 코딩에 입문해야 할 것 같은데
으엥 프로그래밍 언어 너무 어려워어
@thx감상어
하스켈 한번 드셔보셔요.