Hackers' Pub에 리액션 기능 만들고 있는데, 선택 가능한 에모지 세트를 이 정도로 대충 정해봤습니다. 더하거나 뺄 게 있을까요? 그리고 5 종류인 게 많다고 보시나요 적다고 보시나요?

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 581 following · 385 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
일단 이 정도로 가기로 했습니다.
@curry박준규
@hongminhee洪 民憙 (Hong Minhee)
@akastoot악하 저는 좀 이상한 방법을 쓰는데요, 집 공유기가 ipTIME 이어서 ipTIME의 DDNS 서비스로 도메인을 얻은 뒤, Cloudflare의 DNS에 이 도메인을 CNAME으로 물려놨습니다. 이상하게도 집 IP가 바뀌지 않는지라 정상 동작하는지 여부는 확인을 못 해봤네요.
@sftblwCh.
@curry박준규
@akastoot악하 저도 예전에는 비슷하게 구성했던 것 같네요. ㅎㅎㅎ
오늘의 삽질 기록
- 한동안 Spring Boot (Java) 기반의 프로젝트만 하다가 최근 NestJS + Prisma ORM (Node) 기반으로 프로젝트를 막 시작했음.
- 윈도 (WSL), Mac을 같이 사용하다 보니 윈도만 세팅해놓고, 오늘 Mac에 세팅을 시도함.
- 소스 내려 받고
npx prisma generate
+npm run start
하는데 서버가 작동하지 않음. 사내 DB서버 접속이 안됨. npx prisma db pull
를 시도함. 역시나 사내 DB서버 접속이 안됨.
❯ npx prisma db pull
Prisma schema loaded from prisma/schema.prisma
Environment variables loaded from .env
Datasource "db": PostgreSQL database "postgres", schema ... at "192.168.1...:5432"
✖ Introspecting based on datasource defined in prisma/schema.prisma
Error: P1001
Can't reach database server at "192.168.1...:5432"
같은 대역 (192.168.1.) 이 접속이 안될 리가 없는데 하면서 ping
, nc -zv 192.168.1... 5432
모두 확인함. 당연히 접속 잘됨.
알고 보니 별것 아니었으나, 원인을 찾기 어려워서 시간을 조금 허비했다.
MacOS 에서는 (iPhone 이나 다른 기기도 마찬가지겠지만) 앱마다 로컬 네트워크 접근에 대한 허가를 해주어야 하고, 이게 거부가 된 상태에서는 로컬 네트워크에 접근을 하지 못한다. 어째서인지 모르겠으나, 내 iTerm2 앱에서도 이게 꺼져 있었다.
결론 : 그냥 Mac 의 iTerm2 앱에서 로컬 네트워크 접속 권한이 꺼진 상태였다.
Apple 메뉴 > 시스템 설정을 선택한 다음, 사이드바에서 개인정보 보호 및 보안을 클릭하십시오. (아래로 스크롤해야 할 수 있습니다.) 로컬 네트워크를 클릭하십시오. 목록의 각 앱에 대해 로컬 네트워크에 접근하는 기능을 켜거나 끄십시오.
https://support.apple.com/ko-kr/guide/mac-help/mchla4f49138/mac
@arkjunJuntai Park 아마 맨 처음 쓸 때 물어보는 창이 떴을 것 같은데, 실수로 허용 안 하는 쪽을 선택하셨을 수도…?
디지털 접근성에 관심 있는 분들이 계시려나...
구린 영어 실력에 LLM을 빌어서 일단은 혼자 하고 있지만...
예전처럼 평가 중심이 아닌 구현 방법 중심의 글을 좀 생산하고 싶다고...
일단 계획은 이런데... 같이 할 사람 있으면 좋겠다고 생각합니다아아...
@hongminhee洪 民憙 (Hong Minhee)
@kodingwarriorJaeyeol Lee 기본값의 웃는 표정 😊 우는 표정 😢은 어떨까요.
@arkjunJuntai Park
@kodingwarriorJaeyeol Lee 우는 표정은 별 고민 없이 넣었어요. 웃는 표정은… 😊로 할 지 😂로 할 지 고민 좀 해보겠습니다.
In addition to Date
, which has millisecond precision, I hope that Drizzle ORM also supports Temporal.Instant
, which has nanosecond precision. 😢
@hongminhee洪 民憙 (Hong Minhee) 앗. 많이 사용하는 편인데, 그렇게 비춰질 수도 있겠군요. 🤔
@arkjunJuntai Park 저도 그렇게는 생각해 본 적 없는데,
@kodingwarriorJaeyeol Lee 님 말씀으로는 Facebook에서 그렇게 쓰이는 문화가 있다고 합니다.
@hongminhee洪 民憙 (Hong Minhee) 리액션에 웃는 표현과 우는 표현은 있었으면 좋겠다는 개인적인 작은 바램은 있습니다. 😂
@arkjunJuntai Park 😂가 비웃는 표정 같다는 의견도 있어서 좀 고민이긴 합니다.
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) 버그질라의 경우 이렇게 되어 있는데 저기서 😭의 부재를 많이 느꼈습니다
@saschanazKAGAMI🏳️🌈🏳️⚧️ 오… 의견 감사합니다!
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 유료인가요? 설치형인가요?
@akastoot악하
@curry박준규 무료입니다! 설치형…? 설치형이라고 해야 하려나요?
cloudflared
를 설치해야 합니다.
Hackers' Pub에 리액션 기능 만들고 있는데, 선택 가능한 에모지 세트를 이 정도로 대충 정해봤습니다. 더하거나 뺄 게 있을까요? 그리고 5 종류인 게 많다고 보시나요 적다고 보시나요?
@hongminhee洪 民憙 (Hong Minhee)
@lionhairdino 오늘도 빛의 속도로 개발하시는군요! ‘빛의 개발자’라고 부르겠습니다. 갑자기 궁금해졌는데 일본에서는 소프트웨어 개발자를 뭐라고 부르나요? 開発者라고 하려나요? 만약 맞다면 당신은 光の開発者!(아무말)
@curry박준규
@lionhairdino 개발자라고도 많이 하는데 SE라고도 많이
하는 것 같더라고요.
@lionhairdino 네, 이슈로 만들어 주시면 더 감사할 것 같아요!
@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
└
연합우주 계정의 이전에 관한 규격인 FEP-7628를 구현하고 있습니다. 아직 Hackers' Pub 계정을 다른 계정으로 이전하거나, 다른 계정을 Hackers' Pub 계정으로 이전하는 기능은 구현되지 않았지만, 그 밑작업으로서 FEP-7628을 이미 구현한 Mastodon, Misskey, Pleroma 등의 계정끼리 서로 이전한 것을 반영하는 기능은 구현되었습니다. 예를 들어, 제 옛날 계정 중 하나인 @hongminhee洪 民憙 (Hong Minhee) 계정을 보면 첨부한 캡처 화면처럼 계정의 이전 안내가 표시되게 됩니다.
@hongminhee洪 民憙 (Hong Minhee) 문득, 바쁘게 개발하시는데, 서비스 성패에 직결되는 요소는 아니니 후순위로 미뤄두는 게 맞겠습니다. 이런 리포트는 다른 것에 살짝 묻혀있도록 소스 리포를 이용하도록 하겠습니다.
@lionhairdino 네, 이슈로 만들어 주시면 더 감사할 것 같아요!
@hongminhee洪 民憙 (Hong Minhee)
@akastoot악하 홈 서버의 아이피 주소가 바뀌면 어떻게 하시나요? DDNS 같은 게 있나요?
@curry박준규
@akastoot악하 Cloudflare Tunnel을 쓰고 있어요!
@hongminhee洪 民憙 (Hong Minhee) 네. 어차피 직장 못 구해서 한달 이상 집에 혼자 있을테니까요... 그동안 홈서버라도 가지고 놀려구요..
@akastoot악하 저는 Mac mini M4 가장 기본 깡통 모델을 홈 서버로 쓰고 있는데 대체로 만족중입니다.
@hongminhee洪 民憙 (Hong Minhee) 엇, 어제까지만 해도 마크다운 코드블록 ANSI가 먹었는데요. 오늘 색을 일부 수정하니, 미리보기, 퍼블리싱된 글 모두 ANSI 지원이 사라졌습니다. 관련 라이브러리 업데이트나, 영향주는 뭔가가 있었나 봅니다. 꼭 필요한 건 아닌데, 됐던 게 안되게 바뀌어 리포트합니다.
@lionhairdino 아… 어제 구문 강조 라이브러리인 Shiki의 버전을 올렸는데, 그것과 관련이 있을 것 같네요. 한 번 확인해 보도록 하겠습니다. ANSI 지원이라고 하면 이것 말씀이시겠죠?
생일 선물 받았다!
@bin_bash_shell이수호 오 생신 축하드립니다!
@hongminhee洪 民憙 (Hong Minhee) 하하! 봐도 모르겠네요⋯
@curry박준규 언어 설정에 “타임라인에서 내가 모르는 언어로 된 콘텐츠 숨기기”라는 옵션이 생겼답니다. ㅋㅋㅋ
@lionhairdino 틀렸습니다!
@hongminhee洪 民憙 (Hong Minhee) 커밋 로그 보고 와도 되나요?
@curry박준규 보고 오셔도 됩니다. ㅋㅋㅋ
오늘은 시간이 없어서 큰 작업은 못 하고, 그냥 아주 소소한 업데이트 하나 했습니다. 과연 뭐가 바뀌었을까요? (참고로 UI로도 드러나는 변화입니다.)
슬슬 탈출 준비를 하면서 서버를 알아보는데, N100 미니 PC도 종류가 많고 제조사마다 가격이 천차만별이네... 그냥 비싼거 살까
@akastoot악하 홈 서버 생각하고 계신 건가요?
하지만 이식성을 위해서 짧은 옵션을 사용해야만 할 때도 있다. BSD 계열의 커맨드 구현들은 보통 긴 옵션을 아예 제공 안 하기 때문에… 😭
당장 macOS에 내장된 커맨드들만 해도 그렇다.
하지만 이식성을 위해서 짧은 옵션을 사용해야만 할 때도 있다. BSD 계열의 커맨드 구현들은 보통 긴 옵션을 아예 제공 안 하기 때문에… 😭
보통은 Ruby 코드를 작성할때 irb 같은 대화형 인터페이스를 사용하는 것이 일반적이지만, Bash 스크립트와 섞어서 사용할때 one-liner 스크립트를 작성하면 더욱 빛을 발휘합니다. 여기서 one-liner 스크립트란 한줄짜리로 실행하는 스크립트라고 이해하면 됩니다. ruby one-liner 스크립트로 작성할때는 다음과 같이 시작합니다.
$ ruby -e "<expression>"
여기서 -e
옵션은 one-liner 스크립트의 필수요소인데, 파라미터로 넘겨준 한줄짜리 Ruby 코드를 evaluation해주는 역할을 합니다. 여러분이 **파이프 연산자**에 대한 개념을 이해하고 있다면, 이런 트릭도 사용할 수 있습니다.
$ echo "5" | ruby -e "gets.to_i.times |t| \{ puts 'hello world' \}"
# =>
# hello world
# hello world
# hello world
# hello world
# hello world
표준라이브러리를 사용하고 싶을때는 -r
옵션을 사용할 수도 있습니다. 이 옵션은 ruby에서 require
를 의미하는데, 식을 평가하기전에 require
문을 미리 선언하고 들어가는 것이라 이해하면 됩니다.
예를 들면, 이런 것도 가능합니다 .
$ echo "9" | ruby -rmath -e "puts Math.sqrt(gets.to_i)"
# => 3.0
위의 스크립트는 아래와 동일합니다.
$ echo "9" | ruby -e "require 'math'; puts Math.sqrt(gets.to_i)"
# => 3.0
이런 원리를 이용하면, JSON/XML/CSV/YAML 등의 포맷으로 출력되는 데이터를 어렵지 않게 처리할 수 있습니다. one-liner 스크립트를 작성하는 방법에 대해 자세히 알아가고 싶다면, https://learnbyexample.github.io/learn_ruby_oneliners/one-liner-introduction.html 여기를 참고해주시면 좋을 것 같습니다.
이에 관해서, 25분-30분 정도 분량의 글을 정리해서 올릴 것 같은데 커밍쑨.....
CLI 도구를 조합해서 커맨드 작성할때, (일회성이라면 모르겠지만) 자주 사용하는 스크립트라면 짧은 옵션보다 긴 옵션을 사용하는 것이 좋습니다. 풀 네임으로 커맨드라인 명령어를 작성하는 것이 어떻게 보면 문서화의 역할도 하기 때문입니다. 다른 프로그램에서 시스템 콜을 호출해서 사용하는 유즈케이스라면 더더욱 가독성을 높이는 효과가 있습니다.
어떤 CLI 도구는 man 커맨드로 문서를 봤을때 양이 어마어마하고 어렵게 느껴질 수 있습니다. 하지만, 위에서 언급한 것처럼 full name으로 작성한 스니펫들을 모아놓으면 그렇게 어렵지도 않고 각 도구의 역할을 명확하게 이해할 수 있고, 결과적으로는 장기적인 기억으로 남을 수 있습니다. git, curl, aws-cli, jq, gh 어떤 CLI 도구이던간에 모든 옵션을 하나하나 기억하려고 할 필요도 없습니다. 필요하면 그때그때 full name으로 명시된 옵션으로 스크립트를 짜놓고 모아두면 됩니다.
https://matklad.github.io/2025/03/21/use-long-options-in-scripts.html
https://newsletter.posthog.com/p/50-things-weve-learned-about-building
PostHog가 성공적인 제품을 만들면서 깨달은 50가지 교훈 (뉴스레터에서 지금까지 발행해놓은 것들 오마카세처럼 모아놓음)
그 중에서 마음에 드는 것들을 몇개 뽑아보자면...
- 신뢰는 투명성에서 온다. Build in Public 같은 것이 도움이 될 수 있음
- 시장에 내놓지 않으면 검증 조차 할 수 없음. 일단 시장에 내놓고 반응을 살펴볼 것
- 개밥먹기를 통해서 고객에게 전달되기 전에 문제점을 빠르게 인식하고 개선할 수 있는 흐름을 만들 것
洪 民憙 (Hong Minhee) shared the below article:
mkDerivation 인자로 함수를 넘기는 이유

lionhairdino @lionhairdino@hackers.pub
NixOS.kr 디스코드에 올렸는데, 다른 분들의 의견을 들어보려고 해커스펍에도 올립니다. 닉스 경험이 많지 않은 사람의 글이니, 정확하지 않을 수 있습니다. 틀린 곳이 있으면 바로 알려주세요.
※ 닉스를 처음 접하는 분들이나, 닉스로 실용적인 업무를 하시는데 문제가 없는 분들한테는 적당한 글은 아닙니다. 서두에 읽으면 도움이 될만한 분들을 추려서 알려 드리려고 하니, 의외로 필요한 분들이 없겠습니다. 실무자들은 이렇게까지 파고들며 알 필요 없고, 닉스 개발자들이야 당연히 아는 내용일테고, 입문자 분들도 역시 이런 내용으로 어렵다는 인식을 갖고 시작할 필요는 없으니까요. 그럼 남은 건 하나네요. mkDerivation 동작을 이미 아는 분들의 킬링 타임용이 되겠습니다.
외국어를 익힐 때, 문법없이 실전과 부딪히며 배우는 방법이 더 좋기는 한데, 가끔은 문법을 따로 보기 전엔 넘기 힘든 것들이 있습니다. 닉스란 외국어를 익히는데도 실제 설정 파일을 많이 보는 것이 우선이지만, 가끔 "문법"을 짚고 넘어가면 도움이 되는 것들이 있습니다.
닉스 알약 (제목이 재밌네요. 알약) 글을 보면 mkDerivation
이 속성 집합을 받아, 거기에 stdenv 등 기본적인 것을 추가한 속성 집합을 만들어 derivaition
함수에 넘기는 간단한 래핑 함수임을 직관적으로 잘 설명하고 있습니다.
그런데, 실제 사용 예시들을 만나면, mkDerivation
에 속성 집합을 넘기지 않고, attr: {...} 형태의 함수를 넘기는 경우를 더 자주 만납니다. 그래서, 왜 그러는지 실제 구현 코드를 보고 이유를 찾아 봤습니다.
mkDerivation =
fnOrAttrs:
if builtins.isFunction fnOrAttrs then
makeDerivationExtensible fnOrAttrs
else
makeDerivationExtensibleConst fnOrAttrs;
mkDerivation
의 정의를 보면 인자로 함수를 받았느냐 아니냐에 따른 동작을 분기합니다. 단순히, stdenv에서 가져온 속성들을 추가한다면, 함수를 인자로 받지 않아도 속성 집합을 병합해주는 //
의 동작만 있어도 충분합니다.
{ a = 1; } // { b = stdenv.XXX; }
하지만, 함수로 받는 이유를 찾으면, 코드가 단순하지 않습니다. 아래는 함수를 받을 때 동작하는 실제 구현 일부를 가져 왔습니다.
makeDerivationExtensible =
rattrs:
let
args = rattrs (args // { inherit finalPackage overrideAttrs; });
...
전체를 보기 전에 일단 args
에서부터 머리가 좀 복잡해집니다. args
가 args
를 재귀 참조하고 있습니다. 보통 rattrs
매개 변수로는 아래와 같은 함수들이 들어 옵니다.
stdenv.mkDerivation (finalAttrs: {
pname = "timed";
version = "3.6.23";
...
tag = finalAttrs.version;
}
(와, 해커스펍은 코드 블록에 ANSI가 먹습니다! 지원하는 곳들이 드문데요.)
코드를 바로 분석하기 전에, 닉스의 재귀 동작을 먼저 보면 좋습니다.
재귀 생각 스트레칭
nix-repl> let r = {a = 1; b = a;}; in r error: undefined variable 'a'
위 동작은 오류지만, 아래처럼
rec
를 넣어주면 가능합니다.nix-repl> let r = rec {a = 1; b = a;}; in r { a = 1; b = 1; }
※
rec
동작은 Lazy 언어의fix
로 재귀를 구현하는 동작입니다. ※ 참고 Fix 함수
rec
를 써서 속성 안에 정의 중인 속성에 접근할 수 있습니다. 그런데, 아래 같이 속성을r.a
로 접근하면,rec
없이도 가능해집니다.nix-repl> let r = {a = 1; b = r.a;}; in r { a = 1; b = 1; }
닉스 언어의 Lazy한 특성 때문에 가능합니다.
이제, 원래 문제와 비슷한 모양으로 넘어가 보겠습니다. 아래같은 형태로 바로 자기 자신에 재귀적으로 접근하면 무한 재귀 에러가 나지만,
nix-repl> let x = x + 1; in x
error: infinite recursion encountered
아래처럼 람다 함수에 인자로 넘기면 얘기가 달라집니다.
nix-repl> let args = (attr: {c = 1; b = attr.a + attr.c + 1;}) (args // { a = 1; }); in args
{ b = 3; c = 1; }
여기서 속성b
의 정의 동작이 중요합니다. 위 내용을 nix-instantiate
로 평가하면,
nix-instantiate --eval -E 'let args = (attr: {c = 1; b = attr.a + attr.c + 1;}) (args // { a = 1; }); in args'
{ b = <CODE>; c = 1; }
--eval
옵션은 WHNF까지만 평가합니다. <CODE>
는 하스켈 문서에서 나오는 <thunk>
와 같은, 평가가 아직 이루어지지 않은 상태를 뜻합니다. ※ Nix Evaluation Performance
b
는 아직 평가가 되지 않았으니, 에러가 나지 않고, b
가 필요한 순간에는 attr.a
가 뭔지 알 수 있는 때가 됩니다.
attr:
{ c = 1;
b = attr.a + attr.c + 1;
}
속성 b
는 아직 알 수 없는, 미래의 attr에 있는 a를 받아 써먹고,
원래는 rec
없이 접근하지 못했던, c
에도 attr.c로 접근이 가능합니다. (attr.c
은 현재 정의하고 있는 속성셋의 c
가 아니라, 매개 변수 attr
로 들어온 속성셋의 c
입니다.)
원래 문제로 다시 설명하면, mkDerivation
에 넘기고 있는, 사용자 함수 finalAttrs: { ... }
에서,
닉스 시스템이 넣어주는 stdenv 값 같은 것들과 사용자 함수내의 속성들을 섞어서 속성 정의를 할 수 있다는 얘기입니다. 아래처럼 말입니다.
tag = finalAttrs.version;
뭐하러, 이런 복잡한 개념을 쓰는가 하면, 단순히 속성 추가가 아니라, 기존 속성이 앞으로 추가 될 속성을 기반으로 정의되어야 할 때는 이렇게 해야만 합니다. 함수형 언어에선 자주 보이는, 미래값을 가져다 쓰는 재귀 패턴인데, 저는 아직 그리 익숙하진 않습니다.
@hongminhee洪 民憙 (Hong Minhee) 아항 그렇군요. 근데 제가 대화양을 컨텍스트 윈도에 잘 대응을 못시키겠네요. 정말 다른 모델은 컨텍스트 윈도가 이미 꽉찼을만큼 대화가 긴건 아니었다고 생각햇는데요. 이것도 토큰수를 직접 세보기 전엔 모르겠네요.
@bglbgl gwyng 아, 에이전트 코딩을 생각했는데 그냥 대화만 할 때는 또 다르겠네요.
프론트엔드 개발자분들 위주로 페디버스로 영입을 많이 해보고 싶다. 포트폴리오로 개발할만한 것이 지천에 널려있는데...!!
- 인스타그램 클론코딩 : PixelFed 클라이언트 개발에 적용하기
- 트위터 클론코딩 : 마스토돈 클라이언트 개발할때 적용하기
- 나만의 블로그 만들기 : 이건.... 해커스펍이 그 역할을 하겠지...?
Hackers' Pub이 검색엔진에도 잘 노출되게 할겸, 짤막짤막하게 Vim에 대한 정보글을 트위터에 남겼던걸 여기도 남겨야겠다.
해커스펍에서 리액션 다음으로 지원되는기능은 블락일까 아니면 해시태그일까
Gemini Pro 2.5 엄청 똑똑하다... 기존 모델들은 대화가 길어지고 내용이 깊어지면 그냥 뻔한소리를 반복하기 시작하던데, 얘는 계속 생각해서 아이디어를 살려준다.
@bglbgl gwyng 아무래도 Gemini 시리즈가 컨텍스트 윈도가 길어서 그런 것도 큰 것 같아요. 다른 모델은 중간에 compaction을 해야 하니까 아무래도 대화가 길어지면 손실이 있고 말이죠.
Gemini Pro 2.5 엄청 똑똑하다... 기존 모델들은 대화가 길어지고 내용이 깊어지면 그냥 뻔한소리를 반복하기 시작하던데, 얘는 계속 생각해서 아이디어를 살려준다.
Body Doubling(모각코, 모각작)이 ADHD인이 작업을 끝내는데 도움이 된다는 내용
앞으로 Hackers' Pub에서는 國漢英文混用으로 글을 올려볼까?
昨晩、俺が寝てる間にアメリカにいる誰かが俺の blockchain.com アカウントにログインしようとして、実際に成功しやがった。しかも、2段階認証(2FA)まで解除されてたんだ。カスタマーサポートにはすぐに状況を連絡して、とりあえずパスワードだけは変更しておいた。どうしてこんなことになったのか一つずつ確認したかったけど、週末だし家族との時間を優先したかったから、深追いは後回しにした。
残高はゼロだったから金銭的な被害はなかったけど、自分の2FA(OTP)が突破されたのは初めてのことだし、原因はきっちり突き止めるつもりだ。
原因は全然分からないまま、結局退会することにした。メールのデバイス認証をしないと進めない仕様で、俺のGmailには侵入の証跡なんて全く無いのに、2段階認証まで無効にした。まおかげさまで、Googleにログインしてる端末の履歴と、1Passwordのアクセス履歴も全部チェック済み。(写真のあの時間、当たり前だけど俺はぐっすり寝てたよ。)
なんとも後味の悪い話だな。
공유를 누르기엔 같은 글이 반복적으로 큐레이팅 될까 봐 조심스럽고, 글이 마음에 들어 반응을 안하자니 근질 거리는, 다른 서비스를 쓰던 습관이 남아 있네요. 해커스펍에 리액션 버튼이 있긴 있어야 할 것 같습니다.
@lionhairdino 로드맵에는 들어 있습니다… 조금만 기다려 주세요!
공유를 누르기엔 같은 글이 반복적으로 큐레이팅 될까 봐 조심스럽고, 글이 마음에 들어 반응을 안하자니 근질 거리는, 다른 서비스를 쓰던 습관이 남아 있네요. 해커스펍에 리액션 버튼이 있긴 있어야 할 것 같습니다.
@hongminhee洪 民憙 (Hong Minhee) 발표자료를 이제서야 봤네요. 지나온 오픈소스 여정을 잘 보았습니다. 모든 것이 결국 Hackers' Pub 으로까지 이어진 느낌이네요. 앞으로 또 어떤 길을 걸으실지도 기대되고, 응원도 하고 싶습니다.
자, 이제 Hackers' Pub 에 국한문혼용기능을 넣을 차례입니다(?) 😂
@arkjunJuntai Park 감사합니다. ㅎㅎㅎ 안 그래도 만우절에 국한문혼용체 조선어(
ko-Kore
)를 추가할까 하다가 생각보다 할 게 많아서 포기했었네요. 🙄
러스트에서 SIMD 코드 짜기 너무 고통스럽다 어떻게 좀 해달라... Rust 2024에선 unsafe_op_in_unsafe_fn
때문에 더 고통스러워졌다...
닉스(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으로 이전하시면 안 되려나.
Pixelfedの脆弱性(CVE-2025-30741)の解説、Accept前にfollowingに加えちゃってるのが仕様違反だというような言い方だけど、もしかして投稿が見えちゃうこと自体はAPと直接衝突しないのかな。 https://fokus.cool/2025/03/25/pixelfed-vulnerability.html
BotKit을 이용해 국내외 기술 블로그의 아티클을 업로드하는 'Tech Blog Bot'을 만들었다. 1시간에 한 번씩 구독중인 블로그들의 새 아티클을 확인해 큐에 넣고, 1분에 하나씩 큐의 아티클을 업로드한다. BotKit의 유려함에 첫 번째로 놀랐고, 테스트로 돌려본 봇이 스팸짓을 하는 걸 보면서 두 번째로 놀랐다. https://techblogbot.parksb.xyz/
트위터 봇 만들 때는 스팸짓 좀 해도 어차피 팔로워가 없으면 다른 사람 피드를 가득 채울 일이 없으니 부담도 없었다. 그런데 여기에서는 봇을 조금 잘못 돌리면 연합 타임라인이 순식간에 봇의 스팸글로 가득 차 버린다. 트위터 서버에 비해 영세한 이 서버에 부담을 주지 않아야 한다는 생각도 들고... 아무쪼록 조심해야 할 것 같다.
BotKit을 이용해 국내외 기술 블로그의 아티클을 업로드하는 'Tech Blog Bot'을 만들었다. 1시간에 한 번씩 구독중인 블로그들의 새 아티클을 확인해 큐에 넣고, 1분에 하나씩 큐의 아티클을 업로드한다. BotKit의 유려함에 첫 번째로 놀랐고, 테스트로 돌려본 봇이 스팸짓을 하는 걸 보면서 두 번째로 놀랐다. https://techblogbot.parksb.xyz/
그러고보니 문득 생각이 난 건데 해커스.펍이 #hollo (@hollo@hollo.socialHollo
)와 마찬가지로
@hongminhee@hollo.social洪 民憙 (Hong Minhee) 님이 Fedify(
@fedify@hollo.socialFedify: an ActivityPub server framework) 기반으로 만든 자체 ActivityPub 소프트웨어라는 걸 알게 된 건 꽤 됐지만 그렇게 규모가 제법 되는 서비스가 저 분 소유의 홈서버에서 돌아가고 있다는 사실을 알게 된 건 얼마 전의 일이다.
Hackers’ Pub、気が付いたらいろいろとUIが変わっている
久々にログインしにきました