이 사이트가 아직도 살아있구나. http://www.soen.kr/ (구 winapi dot co dot kr)
알고리즘 공부하시는 분과 이야기 나누다가 생각나서 오랜만에 들어가봤는데 여전한 모습이었다. 정올 공부할 때나 윈도 프로그램 개발할 때 자주 들락거리던 사이트인데 반가운 마음...
@hongminhee@hackers.pub · 1014 following · 723 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은:
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify、Hollo、BotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「
@hongminhee洪 民憙 (Hong Minhee)
」に。
이 사이트가 아직도 살아있구나. http://www.soen.kr/ (구 winapi dot co dot kr)
알고리즘 공부하시는 분과 이야기 나누다가 생각나서 오랜만에 들어가봤는데 여전한 모습이었다. 정올 공부할 때나 윈도 프로그램 개발할 때 자주 들락거리던 사이트인데 반가운 마음...
.github/copilot-instructions.md, .cursorrules, .windsurfrules, CLAUDE.md… 이것 말고도 많이 있을텐데, 어차피 들어가야 하는 내용은 다 거기서 거기. 지금은 한 파일에 적고 심볼릭 링크로 같은 곳을 바라보게 하고 있지만, .editorconfig처럼 그냥 어떤 식으로든 표준화가 되었으면 좋겠다.
내가 표준을 만든다면 .vibe.md 정도로 하겠다.
.github/copilot-instructions.md, .cursorrules, .windsurfrules, CLAUDE.md… 이것 말고도 많이 있을텐데, 어차피 들어가야 하는 내용은 다 거기서 거기. 지금은 한 파일에 적고 심볼릭 링크로 같은 곳을 바라보게 하고 있지만, .editorconfig처럼 그냥 어떤 식으로든 표준화가 되었으면 좋겠다.
많은 프로그래머가 아이디어를 시각화하기 위해 화이트보드나 종이에 손으로 필기를 한다. 기존에도 AI가 사용자의 필기를 기반으로 코드를 작성해주는 연구는 있었지만, 필기와 코드가 분리되어 있다는 한계를 벗어나지 못했다. Code Shaping은 단순히 스케치를 코드로 변환하는 툴이 아니라, 필기와 코드 편집이라는 두 워크플로우를 통합하는 툴. 사용자가 코드 위에 자유롭게 필기함으로써 코드를 편집할 수 있다. 코드를 한줄씩 작성하는 것이 아니라, 2차원 평면을 탐색하며 코드를 편집하기 때문에 피험자들이 선형적으로 인식했던 코드 작성을 공간적으로 감각하게 되었다고. https://programs.sigchi.org/chi/2025/program/content/189580
@hongminhee洪 民憙 (Hong Minhee) 오 해커스펍 가로 뷰포트 오버플로우를 끼치는 모든 컴포넌트가 전면 수정되었나 보네요. 스크롤 경험이 쾌적해져서 무척이나 편합니다!
@iamuhunMu-Hun 네,
@perlmint 님과
@morealLee Dogeon 님이 최근에 관련 기여를 많이 해주셨습니다!
해커스펍은 나에게 있어서 훌륭한 교과서..... (열심히 코드 뜯어보면서 뭔가를 만들고 있다는 뜻ㅎ)
이건 좀 억울할 게 부사장도 열심히 해명을 하지만 디스크 레벨(at rest) 암호화 얘기도 아니고 통신 레벨(in transit) 암호화 얘기도 아니고 DB ID랑 암호로 쿼리했을 때 돌아오는 데이터가 암호화되지 않았다고 잘못이라고 하는 것이다. "이중 암호화" 하라는 건데, 일반적인 공격 모델에서 해커는 보통 서버 코드와 변수를 볼 수 있으므로 의미없는 행위다*. 청문회 중 이준석은 어느 순간부터 자신있게 해시를 암호화라고 말하기 시작해서 더욱 혼란스럽게 만드는데, 조금이라도 프로토콜이나 암호학 지식이 있다면 이런 말 못한다.
RE: https://bsky.app/profile/did:plc:wxbkg2wk54g6s2nmb7jd5p74/post/3lnzo7xk7ec2y
洪 民憙 (Hong Minhee) shared the below article:
lionhairdino @lionhairdino@hackers.pub
함수형에선, 스트림 [1,2,3]에
(+1)을 map해서 [2,3,4]를 만들고,
(+2)를 map해서 [3,4,5]를 만드는 작업을,
(+2) ∘ (+1)를 [1,2,3]에 map하는 걸로 표현할 수 있어야 한다.
(+1), (+2), ((+2) ∘ (+1)) 함수들은 모두 Int -> Int 함수를 원하는 곳에 넣어 줄 수 있는 함수들이다.
위와 같이, 완벽하게 정보를 유지하진 않지만, 같은 "류"의 작업을 두 번 하는 것을, 한 번 작업하는 것으로 표현할 수 있는 경우도 있다. 예를 들어,
첫 번째 작업으로, "hello"를 로그로 남기고,
두 번째 작업으로, " world"를 로그로 남기는데,
이를 한 번의 작업으로, "hello world"를 로그로 남기는 작업으로 표현할 수 있다.
여기는 로그를 남기는 횟수 정보는 필요 없고, 최종 로그만 필요하다는 인위적 정보 선택이 들어가 있다. 이 인위적 선택(여기선 로그 문자열을 합치는 것)을 수긍해야만 가능하다.
로그를 남기는 작업을 m이라 부를 때, m a를 받는 곳에 m (m a)를 넘길 방법이 생긴다는 뜻이다. 달리 말하면, m (m a)로 표현되는 작업을 인위적인 절차를 거쳐 m a로 만들어도, 내가 필요한 정보는 사라지지 않는다는 뜻이다.
무언가가 하나인데, 유심히 보면 하나가 아닌 경우, 이게 바로 모노이드다. mono는 하나를 뜻하고, ~oid는 "척"하는 걸 말한다. (예. 인간인 척 하는 휴머노이드) 하나인척 하는 게 모노이드다. 수학 책 앞 부분에서 이항 연산, 결합 법칙, 항등원이 있으면 모노이드라는 설명을 하는데, 그래서 모노이드가 뭐에 쓰는 물건인지는 한참 공부해야 알 게 된다.
(아래는 혼자만의 생각입니다.)
모노이드를 바라 보는 눈 중 하나로, "모든 대상을 이항 연산으로 표현"을 들 수 있다.
0을 포함한 자연수들 0,1,2,3,... 들은, + 이항 연산과, 이 연산의 항등원 0이 있으면, 모두 ○ + ○ 한 가지 모양으로 표현할 수 있게 된다.
0 -> 0+0
1 -> 0+1
2 -> 0+(1+1) = 1+1
...
모노이드 구조이기에, 어딘가에서 ○ + ○ 모양을 원한다면, 0,1,2,3,...을 모두 넣어 줄 수 있다.
"어딘가에서 m a를 원한다면, m a, m (m a), m (m (m a)), ...를 모두 넣어 줄 수 있다."를 위와 비교하며 보자.
위에서 얘기한 인위적 선택 작업을 join으로 표현하면,
m (m a) --join--> m a
m (m (m a)) --join--> m (m a) --join--> m a
...
m 반복 작업을 모두 ○ --join--> ○ 모양으로 표현할 수 있을 것만 같다. 그런데, 딱 하나는 표현하지 못한다. join은 m이 두 개 있는 걸, 하나로 만드는 작업이라, m하나를 ○ --join--> ○로 표현하지 못한다. m을 join이 들어간 모양으로 표현하려면, 자연수, + 에서 처럼 0에 대응하는 것이 필요하다. m하나를, m 두 개로 만들되, 최종 결과에 영향을 미치지 않는 pure라는 작업을 만든다. 위 로그 작업을 예로 들면, 로그로 빈문자 ""을 추가하는 작업을 pure로 만든다. 그러면 이제야 비로소, 모든 반복된 m 을 join으로 표현할 수 있게 된다
m a --pure--> m (m a) --join--> m a
m (m a) --join--> m a
m (m (m a)) --join--> m (m a) --join--> m a
...
이제, join절차가 항상 있는 m a를 원하는 곳에 m a도 m (m (m a))도 넣어 줄 수 있게 되었다.
"hello"와 " world"를 남기던 두 개의 작업 합쳐, "hello world"를 남기는 하나의 작업으로 표현할 수 있게 되었다.
※ 지금 눈에 명확히 보이진 않지만, m 둘을 합성하는 연산을 .이라 하면, .만으론 모노이드 이항 연산 역할을 못하지만, join의 도움을 받고, id 만으론 항등원 역할을 못하지만, pure의 도움을 받아 모노이드 구조를 이룬다.
당연히 모든 내용이 담겨 있진 않고, 모나드를 무엇의 모노이드로 보는 내용을 비수학적으로 풀어 봤다. 모노이드는 모두를 하나의 모양으로 표현 할 수 있다는 걸, 보증해주는 거대한 개념이지만, 업자인 나에겐 "그렇게 해도 된다"는 정도의 느낌만 있다. (결합 법칙이 빠졌는데, 나중에 코드를 모듈화 하는 것과 연관지어 보면, 명확한 대응을 알 수 있다.)
모나드는, 조금 다르게 생긴 것을, 당장 필요한 요소만 잘 관리한다면 "같은 걸로 치자"를 멋지게(,어렵게) 형식화한 이론이다.
사족.
저와 대화를 나눠본 분들은 아시겠지만, 제가 비전공자라 용어 선택이나 개념 정의가 매우 인포멀해서 인상을 찌푸리는 경우도 자주 만듭니다. PL 전공자분들처럼 깊숙히 이론을 파고 싶은 게 아니라, 현실에 적용할 수 있을 만큼의 눈만 가지고 싶습니다. 현실을 모델링할 때, "인위적 정보 선택"을 해서 필요한 정보를 남길 수 있는 경우를 알아채는 눈을 길러야 되는데, bind 또는 flatmap, return 또는 pure가 있는 구조가 모나드라고만 배우면, 이런 눈을 가지는데 매우 오래 걸리는 것 같습니다.
비전공 업자분이 보셨다면, 얻어 가시는 아이디어가 있었으면 좋겠고, 전공자분이 보셨다면, 인포멀한 부분에 너무 인상 찌푸리지 마시고, 틀린 개념이 있다면, 부드럽게 조언을 해주시면 좋겠습니다.
※ 모나드 용어는 mono와 triad에 온 게 아닐까 의심한다는 설이 있습니다.(검색해 보면 근거는 미약해 보입니다.) 모나드는 join, return 그리고 위에서 명시적 언급은 안했지만, 펑터의 fmap, 이렇게 세 개 triad의 도움을 받아 모노이드로 만들 수 있는 구조입니다.
※ "정교한" 내용이 아님을 강조하고 선입견이 생기지 않기 위해, 일부러 제목을 달지 않고, 반말(혼잣말)투로 썼습니다.
제목은
순서 입니다.
링크 넣으니 오류 나서 ㅠㅠ 무인정보단말기 UI 플랫폼에서 검색해 주세요.
@resistanHyunjin Cho 혹시 어떤 오류가 났는지 기억하시나요?
웹 앱들이 카메라, 위치 등 권한을 어떤 방식으로 요청하고 있는지, 사용자가 이에 어떻게 반응하는지에 관한 연구. 많은 웹 사이트가 사용자에게 아무런 맥락없이 권한을 요청한다. 기본적으로 사용자에게 권한이 왜 필요한지 설명하면 허용률이 높아졌고, 긍정적인 톤으로 권한을 요청하면 허용률이 18% 증가한다. 텍스트만 보여주기 보다는 UI 요소가 있을 때 허용률이 더 높았는데, 오버레이(+41%) 또는 전체화면(+33%)으로 권한을 요청하면 허용률이 늘지만 사용자의 불만족도 높아졌다. https://programs.sigchi.org/chi/2025/program/content/188217
@kodingwarriorJaeyeol Lee
@hongminhee洪 民憙 (Hong Minhee) @ysh염산하 전자책으로는 구매할 수 있는 것 같아요 (인사이트, 알라딘). 그리고 인사이트 전자책(PDF)은 DRM-FREE (인사이트 블로그) 라서 개인적으로 좀 마음 편히 구매합니다
@ysh염산하 넹. 원서는 아예 오픈이에욥
@kodingwarriorJaeyeol Lee @ysh염산하 번역서도 있나요?
@hongminhee洪 民憙 (Hong Minhee) 드라이버 레벨에서도 처리하는 로직이 있는데 Drizzle은 드라이버 agnostic하게 처리하려고 빌트인 로직을 비활성화하기도 하더라구요
@xiniha 오오, 다행히 드라이버를 안 타는군요! 어서 머지되었으면…!
@kodingwarriorJaeyeol Lee 근데 그사이 하스켈의 JS 컴파일도 많이 개선되어서, 그냥 하스켈로 하는것도 괜찮다고 생각합니다. PureScript의 특장점이 따로 어떤게 있는지는 잘 모릅니다.
@bglbgl gwyng
@kodingwarriorJaeyeol Lee PureScript의 특장점…인지는 모르겠는데 특징이라면 row polymorphism 지원과 strict evaluation이라는 점이 떠오르네요.
@xiniha 제가 잘 몰라서 그러는데, PostgreSQL에서의 타입을 JavaScript 타입으로 매핑하는 게 Postgres.js 같은 드라이버의 몫이 아니라 Drizzle ORM이 직접 하는 식인 건가요?
K오픈소스라… TS에서 map이나 groupBy 같은 함수들을 체이닝해주는 라이브러리가 있는데 맛도리라서 놀랐고 한국 기업에서 만든 라이브러리라서 더 놀랐던
@hongminhee洪 民憙 (Hong Minhee) Hollo를 사용하려고 합니다. 오라클 클라우드의 S3 호환 오브젝트 스토리지도 Hollo가 지원하나요?
@curry박준규 네, 별 문제 없다면 쓸 수 있을 겁니다.
대충 만든 Open Graph 이미지 생성기도 좀 제대로 다시 짜야 하는데… 지금은 너무 울퉁불퉁함.
@xtjuxtapose 아마 신고 기능 먼저 구현할 것 같아요.
@xtjuxtapose 좀 더 생각해 봤는데, 댓글 막는 기능이 구현이 아주 어렵진 않을 것 같아서, 일단 지금 하고 있는 작업 마치면 그 다음에 착수하도록 하겠습니다.
@xtjuxtapose 그건 우선 순위가 좀 낮을 것 같습니다… 죄송합니다… 🥲
@xtjuxtapose 아마 신고 기능 먼저 구현할 것 같아요.
@hongminhee洪 民憙 (Hong Minhee) 댓글 막는 기능은 언제 들어올까요
@xtjuxtapose 그건 우선 순위가 좀 낮을 것 같습니다… 죄송합니다… 🥲
Hackers' Pub에 다국어 콘텐츠 기능 추가하는 중… 일단 맨 처음에는 기계 번역 먼저 넣고, 나중에 수동 번역 기능도 넣으려고 합니다.
Drizzle ORM이 어서 Temporal.Instant를 지원했으면 좋겠다. 그 전에 드라이버가 먼저 지원해야 하려나? PostgreSQL의 timestamp with time zone 타입이 나노초 정밀도인데 Date는 밀리초 정밀도라 값이 손실되고 있다.
@hongminhee洪 民憙 (Hong Minhee) 안 그래도 깎아보던 중입니다 😂
@hongminhee洪 民憙 (Hong Minhee) 안 그래도 깎아보던 중입니다 😂
@xiniha 오오…!!
@hongminhee洪 民憙 (Hong Minhee) 네, 그렇긴 한데 graphviz를 직접 적으면 팬피에서는 이미지 표시가 안 되더라고요!
@curry박준규 아, Mastodon에서 <svg> 태그를 지워버리니까 그렇겠네요. (Hollo에서는 Phanpy를 써도 도표가 표시됩니다!)
저는 소셜 서비스의 핵심이 ‘좋아요(Like)’라고 생각합니다. 저는 제가 페이스북에서 처음으로 ‘좋아요’를 많이 받아서 너무 신났던 감정을 잊을 수 없습니다. 그리고 저는 지금도 ‘좋아요’의 노예⋯(사람들은 그런 너를 관종이라고 부른단다.)
@curry박준규 좋아요가 없어서 하트 찍어드렸습니다.
그나저나, 도표는 이미지로 첨부하지 않더라도 Hackers' Pub 자체 기능으로도 그릴 수 있어요!
@hongminhee洪 民憙 (Hong Minhee) 안 그래도 Evan Prodromou 님이 쓴 책을 읽다가 든 생각을 적은 것인데 신기하네요!
@curry박준규 오, 그 책을 읽고 계셨군요! 전 아직 읽어 본 적 없는데, 조만간 저도 읽으려고요…!
We're pleased to announce that #Fedify has been included in the Nivenly Fediverse Security Fund program!
The
@nivenlyThe Nivenly Foundation Foundation has launched a security bounty fund to support contributors who identify and help fix #security vulnerabilities in popular #fediverse software. Both Fedify and @holloHollo
are among the selected projects that meet their responsible security disclosure requirements.
This program will run from April–September 2025, with bounties of $250–$500 USD for high and critical security vulnerabilities.
We're honored to be recognized alongside other established fediverse projects like Mastodon, Misskey, and Lemmy. This further encourages our commitment to maintaining strong security practices.
If you're interested in contributing to Fedify's security, please follow our responsible disclosure process outlined in our SECURITY.md file.
Learn more about the program:
https://nivenly.org/blog/2025/04/01/nivenly-fediverse-security-fund/
@curry박준규 어쩐지 모든 것을 다 구현하는 프로젝트인 Friendica에서는 구현했을 것 같아서 테스트해 보니, 실제로 구현하고 있네요. 제가 아래 인용한 글이 Friendica에서 위치 공유해서 쓴 글인데, ActivityPub 프로토콜에서는 아래와 같이 표현되고 있습니다:
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"ostatus": "http://ostatus.org#",
"vcard": "http://www.w3.org/2006/vcard/ns#",
"dfrn": "http://purl.org/macgirvin/dfrn/1.0/",
"diaspora": "https://diasporafoundation.org/ns/",
"litepub": "http://litepub.social/ns#",
"toot": "http://joinmastodon.org/ns#",
"featured": {
"@id": "toot:featured",
"@type": "@id"
},
"schema": "http://schema.org#",
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"Hashtag": "as:Hashtag",
"quoteUrl": "as:quoteUrl",
"conversation": "ostatus:conversation",
"directMessage": "litepub:directMessage",
"discoverable": "toot:discoverable",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value"
}
],
"id": "https://venera.social/objects/85a863ed-6368-115b-fd7f-671987855891",
"type": "Article",
"inReplyTo": null,
"diaspora:guid": "85a863ed-6368-115b-fd7f-671987855891",
"published": "2025-04-29T23:08:45Z",
"url": "https://venera.social/display/85a863ed-6368-115b-fd7f-671987855891",
"attributedTo": "https://venera.social/profile/hongminhee",
"sensitive": false,
"conversation": "https://venera.social/objects/85a863ed-6368-115b-fd7f-671987855891#context",
"name": "Setting my location",
"content": "This post purposes to test what if I set my location in a post.",
"contentMap": {
"en": "This post purposes to test what if I set my location in a post."
},
"source": {
"content": "This post purposes to test what if I set my location in a post.",
"mediaType": "text/bbcode"
},
"attachment": [],
"tag": [],
"location": {
"type": "Place",
"name": "Seoul, South Korea",
"latitude": "37.5666791",
"longitude": "126.9782914"
},
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://venera.social/followers/hongminhee"
]
}
RE: https://venera.social/display/85a863ed-6368-115b-fd7f-671987855891
@curry박준규 아, 그리고 오늘 마침 이런 게 떴네요.
洪 民憙 (Hong Minhee) shared the below article:
Evan Prodromou @evanprodromou@socialwebfoundation.org
I'm making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network. Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with […]
Read more →액티비티 퍼브에 Place 타입이 아마도 트위터나 페이스북에서 글을 쓸 때 현재 위치를 남기는 용도인 것 같은데 장소에도 Like를 하면 재밌을 것 같은데 생각해보니 페이스북에 이미 있는 것 같다.
@curry박준규 어쩐지 모든 것을 다 구현하는 프로젝트인 Friendica에서는 구현했을 것 같아서 테스트해 보니, 실제로 구현하고 있네요. 제가 아래 인용한 글이 Friendica에서 위치 공유해서 쓴 글인데, ActivityPub 프로토콜에서는 아래와 같이 표현되고 있습니다:
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"ostatus": "http://ostatus.org#",
"vcard": "http://www.w3.org/2006/vcard/ns#",
"dfrn": "http://purl.org/macgirvin/dfrn/1.0/",
"diaspora": "https://diasporafoundation.org/ns/",
"litepub": "http://litepub.social/ns#",
"toot": "http://joinmastodon.org/ns#",
"featured": {
"@id": "toot:featured",
"@type": "@id"
},
"schema": "http://schema.org#",
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"Hashtag": "as:Hashtag",
"quoteUrl": "as:quoteUrl",
"conversation": "ostatus:conversation",
"directMessage": "litepub:directMessage",
"discoverable": "toot:discoverable",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value"
}
],
"id": "https://venera.social/objects/85a863ed-6368-115b-fd7f-671987855891",
"type": "Article",
"inReplyTo": null,
"diaspora:guid": "85a863ed-6368-115b-fd7f-671987855891",
"published": "2025-04-29T23:08:45Z",
"url": "https://venera.social/display/85a863ed-6368-115b-fd7f-671987855891",
"attributedTo": "https://venera.social/profile/hongminhee",
"sensitive": false,
"conversation": "https://venera.social/objects/85a863ed-6368-115b-fd7f-671987855891#context",
"name": "Setting my location",
"content": "This post purposes to test what if I set my location in a post.",
"contentMap": {
"en": "This post purposes to test what if I set my location in a post."
},
"source": {
"content": "This post purposes to test what if I set my location in a post.",
"mediaType": "text/bbcode"
},
"attachment": [],
"tag": [],
"location": {
"type": "Place",
"name": "Seoul, South Korea",
"latitude": "37.5666791",
"longitude": "126.9782914"
},
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://venera.social/followers/hongminhee"
]
}
RE: https://venera.social/display/85a863ed-6368-115b-fd7f-671987855891
Drizzle ORM이 어서 Temporal.Instant를 지원했으면 좋겠다. 그 전에 드라이버가 먼저 지원해야 하려나? PostgreSQL의 timestamp with time zone 타입이 나노초 정밀도인데 Date는 밀리초 정밀도라 값이 손실되고 있다.
Programming languages should have a tree traversal primitive https://lobste.rs/s/ctopbt #programming
https://blog.tylerglaiel.com/p/programming-languages-should-have
어디 RFC 문서 의존 관계 정리된 거 없나요?
@curry박준규 혹시 말씀하신 의존 관계라는 것이 참조라는 것과는 좀 다른 걸까요? 같은거라면 요런 기능도 있는 것 같아요
어떤 싸움이 났을 때 만약 블루스카이나 X였다면 당사자들과 어울리는 맞팔들이나 조금 신경쓰지 않았을까 싶습니다. 알고리즘이 없기에 한 사건이 다른 유저들에게 일파만파 퍼지는 게 더 쉽고, 게시물의 플로우는 역설적이게도 중앙 집중형처럼 퍼지는 것 같아요. 탈중앙화 SNS인데도 불구하고, 게시판이나 포럼처럼 말입니다.
그냥 그렇다고요. 그냥 문득 떠오른 생각인데, 본 계정에 올리면 아까 한국어권 연합우주에서 일어난 것으로 보이는 어느 싸움(보지를 못해서 싸움인지, 사이버 불링인지, 아니면 아무것도 아닌지는 모르겠습니다. 그런데 뭔 일이 있었던 것 같기는 합니다.)에 신경 쓰고 싶지 않은 분들을 방해할까봐 여기에 써봅니다.
그나저나 Hackers' Pub에는 내용 경고 기능이 없는 것 같네요...?
@markeb54맹꽁이 네, Hackers' Pub에 올라오는 글들의 주제 특성상 내용 경고 기능을 쓸 일이 거의 없다고 생각해서 아직 구현하지 않았습니다. 구현 우선 순위도 좀 낮습니다.
어디 RFC 문서 의존 관계 정리된 거 없나요?
@curry박준규 그러게요. 생각해 보니 그런 게 없는 게 이상하네요. 하나 만들어 보셔도…!?
어디 RFC 문서 의존 관계 정리된 거 없나요?
UI 개발을 어렵게 만드는 가장 큰 요인은 테스트 아닐까... 비즈니스 로직이나 상태에 대한 유닛 테스트는 UI 차원에서 커버리지가 너무 낮다. E2E 테스트는 사이클이 너무 크고, 스냅샷 테스트는 시각적인 차이까지 캐치하지는 못한다.
https://github.com/denoland/fresh/pull/2253 아니 지금 보니까 작년초에 올라온 PR이었잖아...?
@perlmint 근데 Hackers' Pub은 Fresh 2.0 알파 버전을 쓰고 있어서 어떻게 될 지 모르겠네요…
@youknowone 님 어서 오세요!
10만년 만에 오픈소스 기여해봄. 러스트로 UI 개발해본건 처음인데 언어보단 UI가 더 까다로웠다 https://github.com/faiface/par-lang/pull/42
왼쪽 나 오릉쪽 홍
각자 조용히 할 일 중인데
거기서 거기임
웃겨
새 키보드는 ABKO KN03BT TKL로 정했다!
새 키보드를 산 지 며칠이나 됐다고, 오늘 또 키보드와 스위치를 샀다. 새 키보드는 FL·ESPORTS OG87, 새 스위치는 LEOBOG 세이야축.
링크 첨부때문에 가로 스크롤이 생겼었는데 언제 시라졌데요.
@lionhairdino 오늘 정오에 적용되었습니다.
뒤늦은 서울숲하스켈 조교 후기: 왠지 모르겠는데, 다들 운동을 열심히 하시는지 몸이 굉장히 좋으셨다. 건강한 신체에 건강한 정신이 깃든다를 실천하고 계신 분들이었다.
...는 농담이고(근데 사실입니다), 커리큘럼이 내가 상상하던 방향이랑은 꽤 달라서 흥미로웠다.
마지막 회차에 하스켈로 웹서버를 띄우는 것을 목표로 진행중이었는데, 이를 위해 Monad Transformer(Monad는 진즉에 해치우고), Tagless Final, Lens를 모두 소개한 상태였다. 근데 저 개념들이 '왜 하스켈에선 이거 안 돼요? 왤케 불편해요?' 같은 질문을 회피하지 않으려면 꼭 가르쳐야 하는 부분들이긴 하다. 가령, 'Monad만 배우면 이제 하스켈에서 명령형 코딩 할수 있다'라는 이야기가 이론상은 맞는데, Monad Transformer나 Algebraic Effect 같은거 안쓰면 웹사이트등 실제로 쓸모있는 프로그램을 사실상 짤수가 없다. 그래서 가르치긴 해야한다.
문제는 저걸 다 가르치려면 상당히 빡셀테니, 나는 만약에 내가 하스켈 부트캠프를 한다면 일단은 저런걸 회피하고 하스켈의 멋진 부분에 집중하는 커리큘럼을 짜야겠다고 그동안 생각했었다. 근데 또 이건 어찌보면 기만이기도 하다. 그런데 서울숲하스켈에서는 어찌저찌 다들 따라오도록 구성을 잘하신것 같다 하스켈을 이질적인(긍정적으로든 부정적으로든) 프로그래밍 언어로 소개하는게 아니라, 언젠가 본인의 작업에 활용할 언어의 후보로 올리게끔 하려면 저런 내용들을 다 다뤘어야 할것이다.
암튼 그동안 수고많으셨습니다. @eunmin은민
이번 변경으로 홈 화면에 추가로 해커즈펍을 설치하면 android, iOS 양쪽 모두, 단독 앱인 것 같은 느낌으로 쓸 수 있게됩니다. 다만, 이메일의 로그인 링크가 설치 된 쪽으로는 안열리는 문제가 있으니 미리 로그인 된 상태에서 설치를 하셔야 곤란하지 않습니다.
@hongminhee洪 民憙 (Hong Minhee) 약간 딴 얘긴데, 저는 들여쓰기가 그냥 안좋은 문법요소 같습니다. 코드의 복붙을 unreliable하게 만들어버려서요. 반대로 space sensitive한 문법은 괜찮다고 생각합니다. 복붙시 문제가 생겨도 스페이스 한번 치면 해결되니까요. 들여쓰기 대신에 {} 쌍을 쓰게 만들되, 에디터에서 보여줄때 어떻게 알아서 예쁘게 보여주는게 낫다고 생각해요.
@bglbgl gwyng 동감합니다.