바이브 코딩이 아니라 바이브 코칭이다. LLM의 작업을 쉴 새 없이 살펴보며 이상한 짓 시도할 때마다 옆에서 코칭해 줘야 함…
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 1017 following · 727 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)
」に。
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
Claude Sonnet 3.7이 JavaScript 코딩은 잘 하는 것 같은데, TypeScript 코딩은 별로네…
@hongminhee洪 民憙 (Hong Minhee) 기억이 맞나 모르겠는데, Deno가 npm 모듈중에서 ESM + Only JS는 일찌감치 지원하지 않았나요? 이정도면 나름 최선을 다한건데...
@bglbgl gwyng 처음에는 C 확장 모듈 같은 건 지원 안 했던 걸로 기억합니다. 이제는 잘 지원하고요. 그리고 요즘에는 node_modules 디렉터리 만드는 모드까지도 있습니다. (일부 프레임워크들이 node_modules에 파일들이 있을 것을 가정하기 때문에…)
@hongminhee洪 民憙 (Hong Minhee) 저는 에전에 TS 스트립트 용으로 쓰려고 노력했었는데, 클라이언트 라이브러리가 돌아가는게 없어서 포기했었거든요. 그래서 바로 Bun으로 갈아타서 npm 패키지 썼었습니다. 저랑 비슷한 경로로 Deno 대신 Bun 쓰는 분들이 꽤 될거같아요.
@bglbgl gwyng 근데 이제 사실 Deno도 Bun만큼 Node.js 호환성을 지원하긴 해요. 하지만 이미 Bun에게 사용자를 많이 뺏기긴 했으니 소 잃고 외양간 고치기긴 했죠.
@hongminhee洪 民憙 (Hong Minhee) 오잉? 그냥 원본 마크다운 서식 존중해서 출력해 하면 말을 안듣나요?
@bglbgl gwyng 입력이 길면 출력이 중간에 잘려서 입력을 잘 나눠서 넣어줘야 하네요… 근데 그냥 줄바꿈 기준으로 나누면 코드 블록이나 리스트 중간에 잘리거나 해서 번역이 이상해져요…
LLM으로 번역 기능 만드는데 원본 서식을 그대로 유지하게 하는 게 정말 어려운 것 같다…
그냥 Markdown 파서로 AST 만든 다음에 최상위 노드 기준으로 분할하게 만드는 중… 어떻게 번역 기능 만드는데 쪼개기(chunking) 로직 구현하는 게 제일 오래 걸리냐…
바이브 코딩이 아니라 바이브 코칭이다. LLM의 작업을 쉴 새 없이 살펴보며 이상한 짓 시도할 때마다 옆에서 코칭해 줘야 함…
흑흑… 안돼! (Hackers' Pub은 Deno로 돌아가고 있습니다…)
개인적으로는 Node.js 호환성만 좇고 있는 최근의 Deno 업데이트가 (현실적으로 쓰기 편해지는 것은 맞지만) 조금 실망스럽긴 하다. 그냥 처음의 기조 그대로 밀어붙였다면… 뭐, 오히려 지금보다도 덜 쓰였겠지? 어려운 문제긴 하네…
흑흑… 안돼! (Hackers' Pub은 Deno로 돌아가고 있습니다…)
LLM으로 번역 기능 만드는데 원본 서식을 그대로 유지하게 하는 게 정말 어려운 것 같다…
Deno 2.3 is here:
🌱 deno compile with FFI & Node native add-ons
📦 Local npm packages
⭐ deno fmt CSS/HTML/SQL in tagged templates
🔭 OTel event recording & tracing in distributed services
and more —
Deno 왤케 락파일 레졸루션을 못하지...... 여태 멀리하며 살아왔는데 걍 앞으로도 멀리하는 게 좋을듯
Rust로 작성한 JPEG XL 디코더, jxl-oxide의 버전 0.12.0을 릴리스했습니다. https://github.com/tirr-c/jxl-oxide/releases/tag/0.12.0
CMYK 프로파일 등 복잡한 ICC 프로파일을 지원하기 위해 기존에 사용하던 Little CMS 2 (lcms2) 에 더해, Rust로 작성된 색 관리 시스템인 moxcms 지원을 추가한 것이 주요 변경사항입니다. CLI 툴의 기본 CMS는 아직 lcms2이지만 --cms moxcms 옵션으로 moxcms를 사용할 수 있습니다.
jxl-oxide WebAssembly 데모도 있습니다. https://jxl-oxide.tirr.dev/demo/index.html
와 드디어 오늘도 카피닌자 닉값했다
이 사이트가 아직도 살아있구나. 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.
함수형에선, 스트림 [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로 만들어도, 내가 필요한 정보는 사라지지 않는다는 뜻이다.
2.
무언가가 하나인데, 유심히 보면 하나가 아닌 경우, 이게 바로 모노이드다. mono는 하나를 뜻하고, ~oid는 "척"하는 걸 말한다. (예. 인간인 척 하는 휴머노이드) 하나인척 하는 게 모노이드다. 수학 책 앞 부분에서 이항 연산, 결합 법칙, 항등원이 있으면 모노이드라는 설명을 하는데, 그래서 모노이드가 뭐에 쓰는 물건인지는 한참 공부해야 알 게 된다.
(아래는 혼자만의 생각입니다.)
모노이드를 바라 보는 눈 중 하나로, "모든 대상을 이항 연산으로 표현"을 들 수 있다.
0을 포함한 자연수들 0,1,2,3,... 들은, + 이항 연산과, 이 연산의 항등원 0이 있으면, 모두 ○ + ○ 한 가지 모양으로 표현할 수 있게 된다.
0 -> 0+0
1 -> 0+1
2 -> 0+(1+1) = 1+1
...
모노이드 구조이기에, 어딘가에서 ○ + ○ 모양을 원한다면, 0,1,2,3,...을 모두 넣어 줄 수 있다.
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:
places.pub
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에 올라오는 글들의 주제 특성상 내용 경고 기능을 쓸 일이 거의 없다고 생각해서 아직 구현하지 않았습니다. 구현 우선 순위도 좀 낮습니다.







