Profile img

bgl gwyng

@bgl@hackers.pub · 99 following · 124 followers

GitHub
@bglgwyng

데이터에서 인과 관계를 아예 찾을 수 없냐면, 그렇지는 않습니다. 그 과정이 생각보다 조금 더 단계가 많을 뿐입니다. 인과 분석에 있어서, 인과 구조가 단순히 ‘뭐가 바뀌면 뭐가 바뀐다‘ 이상으로 다양하고, 어떤 식으로 다양할 수 있는지를 이해해야 인과 관계를 가정하고 조건적 사고를 진행할 수 있을 것입니다. 이를 고려하지 않고 너무 인과관계를 단순하게 보다보니 잘못된 내용을 호도하거나 아예 배제하는 경우가 종종 눈에 띄어 아쉽습니다. 관련하여 인과 관계 구조를 구분하고 각각의 분석법을 훑어볼 수 있게 정리해 보았습니다. https://cojette.github.io/posts/structureofcausation/

0
0
0

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

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

cabal haddock --haddock-for-hackage

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

cabal upload --documentation --publish

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


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

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

0
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

@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

아마도 2006년이었던 것 같다. 처음 가본 대안언어축제에서 정말 충격적인 체험을 했었다. 당시는 Python이 대안 언어였던 시절… Io도 배우고 J도 배우고 Haskell도 배우고. 고등학생 때였는데, 동아리 사람들을 모두 데려가서 어른들에게 예쁨 받았던 기억도 있다. 행사가 어디서 후원을 받았었는지 기억은 안 나지만, 후원을 아주 크게 받았던 것만 기억이 난다.



RE: https://hackers.pub/@kodingwarrior/0195d560-1a2e-73db-847f-cd71b4d18653

0

bgl gwyng shared the below article:

복잡한 코드를 단순하게 줄여나갈 수록 발생하는 버그의 빈도나 심각도가 점진적으로 올라가는 경향이 있다고 느낀다

@disjukr@hackers.pub

이 기술 블로그 포스팅에서는 코드 복잡도와 버그 심각도 사이의 미묘한 관계를 탐구합니다. 저자는 복잡도를 높이는 방향으로 문제를 해결할 때, 버그 빈도와 심각도를 점진적으로 줄일 수 있지만 최적의 해결책에 도달하지 못할 수 있다는 점을 지적합니다. 반대로, 복잡도를 낮추는 방향으로 접근하면 문제 해결에 드는 비용을 예측하기 어렵다는 어려움이 있습니다. 특히, 회사에서 코드 복잡도를 줄이는 대신 높이는 방향으로 문제 해결을 요구받는 상황에서 엔지니어로서의 자아와 현실 사이의 괴리를 느끼는 저자의 고충이 드러납니다. 개인 시간을 투자하여 더 나은 해결책을 찾아도, 이를 회사에 도입하는 데 많은 설득 비용이 소요된다는 점을 강조하며, 회사 내에서 자아실현을 포기해야 하는지에 대한 고민을 토로합니다. 이 글은 기술적 효율성과 조직적 요구 사이의 균형을 찾는 데 어려움을 겪는 개발자들에게 깊은 공감을 불러일으킬 수 있습니다.

Read more →
0
0

개인적으로 Hackers' Pub 행동 강령에서 내세우고 싶은 곳이 있다면 이 부분이예요:

구조적 차별과 불평등에 대한 우리의 입장

우리는 현실 세계의 구조적 불평등이 온라인 공간에도 그대로 반영되고 있다는 현실을 직시합니다. Hackers' Pub은:

  • 성차별, 인종차별, 장애인 차별 등 우리 사회에 만연한 구조적 차별이 존재한다는 현실을 인식하고, 이러한 차별에 반대합니다.
  • “모든 사람을 동등하게 대우한다”는 명목 하에 이러한 구조적 불평등을 무시하거나 부정하지 않습니다.
  • 사회적 약자와 소수자에 대한 적극적인 포용 정책이 진정한 평등을 향한 필수적인 과정임을 확신합니다.
  • 차별과 혐오에 대항하는 발언과, 차별과 혐오 자체를 동일선 상에 두지 않습니다.
  • 우리는 이러한 구조적 차별이 결코 정당화될 수 없으며 반드시 극복되어야 할 과제임을 분명히 합니다.
0

bgl gwyng shared the below article:

Browser-Native Translation and Language Detection APIs Coming Soon

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

Just reviewed the W3C draft for the Translator and Language Detector APIs. This is genuinely exciting development for web developers.

The proposal would add native browser support for:

  • Text translation between languages
  • Language detection of arbitrary text
  • Both with streaming capabilities

No more relying on third-party translation services or embedding external APIs for basic language operations. All processing happens locally in the browser.

The API design is clean and straightforward:

// Translation example
const translator = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "fr"
});

const translatedText = await translator.translate("Hello world");

// Language detection example
const detector = await LanguageDetector.create();
const results = await detector.detect("Hello world");
// Returns array of detected languages with confidence scores

This will be a game-changer for multilingual sites and applications. The browser handles downloading appropriate language models and manages usage quotas.

The spec is still in draft form but shows promising progress toward standardizing these capabilities across browsers. Looking forward to seeing this implemented.

Read more →
0
0
0
0

옛날에 만들어놓고 저 혼자는 잘쓰고 있는 React 폼 라이브러리 react-form-mozard를 소개합니다.

폼 중에서 Stepper 또는 Wizard라고 하는, 여러 개의 폼을 순차적으로 합친 형태를 다룰때 씁니다. 그래서 하나의 폼에 대해서는 react-hook-form 등 을 쓰고, 그걸 여러개 조합할땐 react-form-mozard를 활용하면 됩니다.

순차적으로 합친 에서 느낌이 오지요? 모나드가... 그대를 부릅니다...

폼 말고 CLI를 만들때를 잠깐 생각해보죠.

const name = prompt("이름이?")
const age = prompt(`{name} 님, 나이가?`)
if (Number(age) < 20) {
  console.info("미성년자는 이용할 수 없습니다")
  return
}
const gender = prompt(`{name} 님, 성별이?`)

뭐 이런 흐름을 생각해볼 수 있는데요. 보시면 먼저 받은 입력값에 따라 이후의 메시지나, 제어 흐름이 달라질 수 있습니다. 즉, 모나딕하죠. 근데 이런 평범한 로직을 Stepper/Wizard 에서 짜게되면 코드게 쉽게 더러워 지는걸 알수 있습니다.

react-form-mozard의 step은 위 예제의 prompt와 같은 역할을 합니다. 그리고 그걸 Generator 위에 얹으면 모나딕한 폼 합성이 가능해집니다.

단점이라면... 지금은 React랑 강결합 되어 있어, XState 등 다른 상태관리 라이브러리를 같이 쓴다면 연동이 깔끔하지 않을수 있습니다. 근데 평소에 쉽게 겪을 문제는 아니라고 보고, 또 추후에 설계를 수정해서 개선이 가능한 부분입니다.

0

코틀린+스프링 백엔드 개발하다가 지금은 프론트엔드 개발하고 있다는게 다른 사람들에게 꽤 재밌는 이야기로 다가오는 것 같다. 당연히 선택의 이유에 대한 질문을 가장 많이 받는데, 가장 특이한 질문은 OOP가 그립지 않은지(?)라는 질문. (OOP도, AOP도 전혀 그립지 않다.)

그리고 이런 입장에서 BE vs FE 같은 대결 구도가 조금... 그렇다. 사실 업무상 관점이 좀 다를 수는 있어도, 다른 직군으로 분류할 정도로 기술적 관심사나 고민의 주제가 그렇게 까지 다른가 싶기도. 나중에 이 생각의 해상도를 좀 더 높여봐야겠다.

0

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

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

또 있을까요?

1
9
0

'탈중앙'같은 키워드가 대다수 사용자에게는 그다지 매력적이지 않은게 사실이지만, 적어도 나는 오래 전부터 RSS에서 얻고자 했던 것과 얻지 못 했던 것을 ActivityPub으로 얻을 수 있어서 너무 좋다. 특히 콘텐츠 생산자 입장에서는 정말 참여하지 않을 이유가 없을 것 같은데...

0

액티비티펍을 사용하는지는 중요하지 않지만 제품이 훌륭하면 그 기반이 되는 액티비티펍이 장점을 더욱 발휘하는게 있는 것 같음. 액티비티펍이 장점으로 먼저 내세워져서는 안되는 것 같음. 액티비티펍을 쓰는지는 개발자한테나 어필이 되는 것이 아닌가..

0
0
0

다들 개발할때 '하느님 제게 왜 이딴 시련을 : 하느님 이런 흥미로운 문제를 풀 기회를 주셔서 감사합니다'의 비율이 어떻게 되시나요? 저는 근 몇달간은 거의 99:1에 육박하는거 같습니다

0

"es-git은 Node.js를 위한 현대적인 git 라이브러리예요. 간편하고 직관적인 인터페이스 덕분에 복잡한 git 작업도 쉽게 통합할 수 있으며, TypeScript 타입을 내장해 빠르고 안정적인 개발을 지원해요." github.com/toss/es-git

0

bgl gwyng replied to the below article:

Hacker's Pub에 입문한 한국어권 여러분을 위한 안내서

Jaeyeol Lee @kodingwarrior@hackers.pub

Hacker's Pub은 소프트웨어 업계 종사자들이 자유롭게 생각을 공유하고 소통할 수 있는 소셜 네트워크 서비스이자 블로깅 플랫폼입니다. ActivityPub 프로토콜을 지원하여 Mastodon, Misskey 등 다른 SNS 서비스 사용자들과도 연결되어 플랫폼 경계를 초월한 소통이 가능합니다. 이 글에서는 Hacker's Pub의 의미와 ActivityPub 프로토콜에 대한 간략한 소개, 그리고 커뮤니티에 기여할 수 있는 다양한 방법을 제시합니다. 오픈 소스로 개발되는 Hacker's Pub 생태계에 참여하여 함께 서비스를 발전시키고, 우리만의 클라이언트를 만들어 Hashnode와 같은 블로그 템플릿을 구축하는 미래를 기대해 볼 수 있습니다. Hacker's Pub은 상호 존중과 신뢰를 바탕으로 모든 이들이 자유롭게 의견을 나누고 함께 만들어가는 공간입니다.

Read more →
0
4
0
0

I just discovered why some of my followers from larger instances (like mastodon.social) would mysteriously unfollow me after a while!

A pull request was just merged in Mastodon that fixes a critical bug in their follower synchronization mechanism.

Turns out Mastodon implements the FEP-8fcf specification (Followers collection synchronization across servers), but it expected all followers to be in a single page collection. When followers were split across multiple pages, it would only see the first page and incorrectly remove all followers from subsequent pages!

This explains so much about the strange behavior I've been seeing with and other -based servers over the past few months. Some people would follow me from large instances, then mysteriously unfollow later without any action on their part.

Thankfully this fix has been marked for backporting, so it should appear in an upcoming patch release rather than waiting for the next major version. Great news for all of us building on !

This is why I love open source—we can identify, understand, and fix these kinds of interoperability issues together. 😊

0
3
0
0

블루스카이를 연합우주보다 먼저 썼고, 해커뉴스에서 관련 주장에 대해서 꽤 싸우기도 한 입장에서 민희님의 글 〈Bluesky는 X의 훌륭한 대안일 수 있지만, 연합우주의 대안은 아닙니다〉에 대한 반대 의견을 제시하고자 한다. 이 의견이 연합우주에 대한 전면적인 비판이 아니라는 것을 의견을 제시하기에 앞서 확실히 해 둔다(그랬다면 Hackers' Pub에 들어 올 일이 없었겠지).

탈중앙화는 매력적인 개념임이 틀림 없다. 인터넷의 많은 중요한 요소들이 어느 정도 탈중앙화되어 있으므로 탈중앙화가 인터넷의 장점들에 큰 몫을 했다는 생각을 쉬이 할 수 있고, 어느 정도는 그게 사실이기도 하니까. 하지만 엄밀히 말하자면 탈중앙화는 기술적인 특징이지 그 자체로 장점이 아니며, 탈중앙화가 장점으로 작용하려면 연결고리가 필요하다. 이를테면 비트코인을 위시한 암호화폐는 본디 비잔틴 실패까지 대비할 수 있는 강력한 탈중앙화를 장점으로 내세웠으나, 결국 화폐로서 제대로 사용되기 시작하자 현실 경제와의 커플링 때문에 그 "장점"이 크게 희석되고 말았다. 현 시점에서 암호화폐는 무에서 유의 신뢰를 창조하여 신용화폐의 요건을 충족하는 데까지는 성공했고 그것만으로도 역사적인 일이기는 하지만, 그게 탈중앙화랑 무슨 상관이 있느냐 하면 글쎄올시다.

블루스카이가 연합우주보다 덜 탈중앙화되어 있음은 분명하다. 민희님의 글에서 지적되었듯, 블루스카이가 이런 선택을 한 가장 큰 이유는 온전한 소셜 네트워크 기능을 위해 전역 뷰가 필수적으로 필요하다고 보았기 때문이다. 반대로 말하면 연합우주는 더 탈중앙화를 하기 위하여 전역 뷰를 포기했는데, 이 때문에 연합우주에서의 "소셜 네트워크"는 트위터/X와는 구조가 크게 다르다. 노드 규모가 문턱값에 다다르지 못하면 다른 노드에 있는 사용자를 찾아서 팔로해야만 온전한 소셜 네트워크 구성이 가능한데, 연합우주 안에서는 이런 외부 사용자를 찾는 구체적인 방법을 제공하지 않는다. 물론 인터넷과 똑같이 검색 엔진이 존재할 수야 있겠지만, 크롤링으로 인한 부하와 프라이버시에 대한 의견 차이 때문에 현실적으로 작동하는 연합우주 내 검색 엔진은 없다고 알고 있다. 따라서 연합우주에서 소셜 네트워크의 구성은 연합우주 바깥의, 보통은 중앙화되어 있는, 다른 소셜 네트워크(이를테면 현실 인간 관계)를 빌어야만 하는데, 이러면 탈중앙화가 큰 가치가 있을까?

한편으로는 전역 뷰가 소셜 네트워크의 단점이라고 주장할 수 있는 여지도 있다. 트위터/X를 오래 써 본 사람이라면 다 알겠지만 한 무리의 사람들이 다른 의견을 가진 무리와 충돌하는 주된 통로는 검색이나 해시태그를 통한 노출, 즉 전역 뷰이기 때문이다. 그러나 현실의 규모 있는 연합우주 노드들을 살펴 보면 각 노드가 곧 한 무리에 대응하는 식으로 충돌을 미리 회피하는 형태로 구성되지, 딱히 이런 충돌을 막기 위한 접근을 가지고 있는 것은 아니다. 노드 운영자를 위해 차단하는 걸 추천하는 서버 목록 같은 게 돌아다니는 건 연합우주 바깥의 일이지 않는가. 결국 전역 뷰의 역할을 대체하는 소셜 네트워크 바깥의 또 다른 소셜 네트워크가 존재할 것이기에, 우리가 소셜 네트워크를 어떤 이유로든 유용하다고 여긴다면 전역 뷰가 없는 게 장점이 될 수는 없다.

모든 이들이 이런 사고 과정을 가지고 블루스카이나 연합우주를 선택했다고 생각하진 않지만, 적어도 현 시점에서 사용자들은 블루스카이(이 글을 쓰는 시점에서 약 3360만명)를 연합우주(FediDBFediverse.party로부터 추정할 때 최대 1530만명)보다 선호하는 것은 틀림이 없다. 게다가 블루스카이의 규모는 최근 1년 사이에 10배 불어난 것이고, 조금 장애가 있었지만 현재는 잘 동작하는 것으로 보인다. 위의 논의와 결합해 보면, 블루스카이는 정석적인 스케일링에 성공하고 있는 반면 연합우주는 스케일링 문제를 회피하기 위해 온전한 소셜 네트워크의 구성을 포기했다고 볼 수도 있는 대목이다. 블루스카이가 못미더운 부분은 분명히 존재하지만, 연합우주가 더 좋은 소셜 네트워크 경험을 제공한다고 가정하고 블루스카이의 단점을 제시할 수는 없다. 마치 암호화폐를 논할 때 장점만 말할 수 없는 것과 마찬가지로 말이다.



RE: https://hackers.pub/@hongminhee/2025/bluesky-a-good-alternative-to-x-not-to-the-fediverse

2
0
0

@bglbgl gwyng 팔란티어는 기능이 정의된 소프트웨어라기보다는 기능 명세를 구축하는데 사용하는 일종의 SDK에 가깝다고 생각합니다. 주요 업무 이름을 기반으로 같은 업무를 서로 다른 부서에서 동시에 하고있다든지, 사이드이펙트가 큰 기능이 잘 알려지지 않은 채 개발되고 있는 등의 상황을 파악할 수 있는 모양으로 시스템을 구축할 수 있을 겁니다.

0
0
0

@hongminhee洪 民憙 (Hong Minhee) @curry박준규 저는 데이터모델을 정의하는 언어가 따로있는게 좋다고 생각해서 Prisma를 골랐거든요. 마이그레이션부터 다 해주겠다고 하는데 그때당시엔 아주 믿음직해보였습니다ㅋㅋ 이게 본인이 하기 싫은거일수록(저의 경우엔 마이그레이션이 특히) 프레임워크 형태로 주어지면 넙죽 받아먹게 되더라고요. 지금 고르라면 저도 Drizzle ORM을 시도해볼거 같습니다

0

한국은행은 여러 지표 및 보고서 등을 구독할 수 있도록 토픽 별 RSS 피드를 제공합니다. 하지만 <![CDATA[로 감쌌음에도 <, & 같은 글자들을 escape 처리하여 제대로 읽기 어려운 문제가 있었습니다.

때문에 기대한대로 읽을 수 있도록 간단한 릴레이 서버를 작성했습니다. https://bokrss.moreal.dev에서 지원되는 RSS 피드들을 확인할 수 있고 링크를 복사하여 각자 사용하는 RSS 리더에서 구독할 수 있습니다.

좌측에는 한국은행에서 제공하는 원본 RSS의 내용이 표시되어 있고, 우측에는 릴레이 RSS의 내용이 표시되어 있습니다.https://bokrss.moreal.dev 의 스크린샷입니다. 릴레이 서비스에서 지원하는 한국은행 RSS 피드들의 목록이 표시되어 있습니다.
0
1
0
0
0

지금 해커스펍은 Fresh를 활용한 MPA 앱으로 구현되어 있는데, 개인적으로 이것 때문에 이런저런 사용성 아쉬움을 느끼고 있었다. 그래서 해커스펍에 GraphQL API를 붙여서 SPA 프론트엔드를 새로 구현하겠다는 음모계획을 가지고, 이를 위한 기반 작업의 일환으로 Drizzle의 새로운 Relational Query Builder API(RQBv2)를 적용하는 PR을 만들어 보았다 😋

0
0
0

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

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

0
2
0
0

Hackers' Pub에 드디어 인용 기능이 구현되었습니다. 인용할 글의 링크를 복사한 뒤 단문 작성창에 붙여넣으시면 해당 글을 인용할지 묻는 창이 뜹니다. 확인을 선택하시면 해당 글이 인용되게 됩니다.

참고로 인용할 글은 꼭 Hackers' Pub의 글이 아니어도 ActivityPub을 지원하는 사이트의 아무 글이나 다 가능합니다. 예를 들어 Mastodon 인스턴스에서 글 링크를 복사해서 붙여도 동작합니다.

내가 쓴 글에 누가 어떻게 인용을 했나 궁금하실 경우, 글 아래에 있는 공유 아이콘 오른쪽에 위치한 반응 아이콘을 누르시면 확인할 수 있습니다. (원래는 공유한 사람 탭만 있었는데 인용 탭이 새로 생겼습니다.)

기술적으로는 FEP-e232 오브젝트 링크 스펙과 Misskey의 인용 확장 스펙, Pleroma의 인용 확장 스펙, 그리고 Fedibird의 인용 확장 스펙을 모두 구현하기 때문에, 인용 기능을 지원하는 현존하는 모든 ActivityPub 서비스와 호환됩니다.



RE: https://hackers.pub/@hongminhee/0195c73c-24f5-74c0-883d-1a0a0db14b6d

Hackers' Pub의 단문 작성창에 인용할 다른 글의 링크를 복사하여 붙여넣는 모습. 붙이고 나면 해당 글을 인용할지 묻는 창이 뜨고, 확인을 선택하면 해당 글이 인용된다.
0
0
0

bgl gwyng shared the below article:

파이어폭스의 숨은 기능

가을별 @gaeulbyul@hackers.pub

파이어폭스에 숨겨진 유용한 기능들을 소개합니다. `about:config`를 통해 주소창에서 계산기 및 단위 변환 기능을 활성화하는 방법부터, 페이지 내의 모든 미디어를 한눈에 보고 다운로드할 수 있는 페이지 정보 활용법을 알아봅니다. 또한, 파이어폭스에 숨겨진 이스터에그 게임을 찾는 방법과 개발자 도구의 UI 크기를 사용자에 맞게 조절하는 팁도 제공합니다. 이 글을 통해 파이어폭스의 숨겨진 잠재력을 발견하고, 브라우징 경험을 더욱 풍부하게 만들어 보세요.

Read more →
1
0
0

@kodingwarriorJaeyeol Lee @gaeulbyul가을별 @arkjunJuntai Park 원인 찾아서 고쳤습니다. 조금 복잡한 버그였는데요…

  • 일단 Markdown 렌더링 결과를 캐시를 안 하고 있었습니다.
  • 근데 Markdown 렌더링 그게 뭐 별거라고 그렇게 느리냐 싶은데, 멘션된 사용자의 정보를 얻어오는 과정이 있어서 네트워크 I/O가 발생할 수 있고요. 연합우주니까 Hackers' Pub에서 아직 캐시한 적 없는 원격 사용자를 멘션하면 네트워크 요청이 이뤄질 수 있는 거죠.
  • 문제는, 처음 한 번은 멘션된 사용자 정보가 없어서 받아온다 쳐도, 왜 매번 네트워크 요청이 일어나고 있었냐는 건데… 글 안에 (그… 중간에 Mastodon 위젯 같은 거 임베드하려다 깨진 부분에서) “어쩌다” 멘션된 @kodingwarrior@silicon.moe 때문에 그랬습니다.
  • 사실 @kodingwarrior@silicon.moe 계정은 @kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior) :vim: 계정과 같은 계정인데요. (액터 ID가 동일.) Mastodon에 페디버스 핸들에 쓰일 호스트명과 웹에 쓰일 호스트명을 다르게 설정하는 기능이 있습니다. 다름 아닌 social.silicon.moe 인스턴스가 이를 이용해서 페디버스 핸들에서는 앞에 social.을 뗀 silicon.moe를 쓰도록 설정해두고 있기 때문에 두 핸들은 사실 같은 것입니다.
  • 그런데 Hackers' Pub에서는 기존에 캐시된 계정이 @kodingwarrior@social.silicon.moe로 저장되어 있어서 @kodingwarrior@silicon.moe로 검색하면 캐시 히트가 안 되는 것입니다. 그래서 캐시가 영원히 안 되는 효과가 있던 거죠.

일단 수정은 Markdown 렌더링 결과를 캐시하도록 맨 바깥에서 처리했고요. 다만, 핸들에 쓰이는 호스트명이 웹에 쓰이는 호스트명과 다른 케이스에 캐시가 안 되는 문제는 근본적으로 고쳐두긴 하려고 합니다.

0
0