Profile img

Jaeyeol Lee

@kodingwarrior@hackers.pub · 561 following · 418 followers

Neovim Super villain. 풀스택 엔지니어 내지는 프로덕트 엔지니어라고 스스로를 소개하지만 사실상 잡부를 담당하는 사람. CLI 도구를 만드는 것에 관심이 많습니다.

Hackers' Pub에서는 자발적으로 바이럴을 담당하고 있는 사람. Hackers' Pub의 무궁무진한 발전 가능성을 믿습니다.

그 외에도 개발자 커뮤니티 생태계에 다양한 시도들을 합니다. 지금은 https://vim.kr / https://fedidev.kr 디스코드 운영 중

Blog
kodingwarrior.github.io
mastodon
@kodingwarrior@silicon.moe
Github
@malkoG
0
0

정치적인 컨텐츠에 대한 생각

Jaeyeol Lee @kodingwarrior@hackers.pub

이 글은 사회생활에서 금기시되는 정치 이야기가 우리의 삶과 얼마나 밀접하게 연결되어 있는지를 고찰합니다. 저자는 정치적인 것이 단순히 정부나 정책에만 국한된 것이 아니라, 사람이 개입하는 모든 영역에 존재한다고 주장합니다. 다양성을 존중하는 문화를 만드는 것조차 정치적 행위로 볼 수 있으며, 정치 혐오가 만연한 사회일수록 정치에 대한 관심이 더욱 필요하다고 강조합니다. 특히, 무심코 사용하는 표현이나 접하는 콘텐츠가 특정 정치적 의도를 담고 있을 수 있음을 경계하며, 정치적 프레임에 갇히지 않기 위해서라도 사회와 정치에 대한 꾸준한 관심이 중요하다고 역설합니다. 이 글은 정치적 무관심이 오히려 위험할 수 있음을 시사하며, 독자들에게 비판적 사고와 균형 잡힌 시각을 갖도록 촉구합니다.

Read more →
15

function은 우리말로는 함수기능으로 번역된다. 우리말 함수와 기능은 조금 다른 뜻을 가지고 있는데, 영어권에서는 function을 만나면 함수나 기능의 의미가 아닌, 둘을 아우르는 의미로 받아들이는 게 아닐까란 생각이 들어 추측을 해봤다.

function의 어원은 라틴어 functio 로, performance, execution 이란 뜻에서 왔다고 한다. 어원으로 추측해보 면 "실행, 수행할 수 있는 것"을 말한다고 보여진다. 수학이나 프로그램에서 만나는 함수는, 입력이 있고, 그 입력에 대응하는 정해진 출력이 있는, 입 출력을 매핑하는 것으로 설명하곤 한다. 이 뜻이 맞지 않다기 보다, 어원에서 말하는 실행이 살짝 가려져 있는 뜻이 아닌가 싶다. 함수의 중요한 특징은 실행, 즉 적용에 있는데, 이 적용을 위한 데이터에 더 촛점을 맞춘 설명처럼 느껴진다.

혼자 생각으론 "실행(혹은 적용apply)하면 무언가가 바뀌게 하는 것"으로 인식하면 함수나 기능에 모두 function을 쓰는 게 무리가 없다. 수학, 프로그래밍에서는 매핑이라는 설계를 통해 무언가를 바꾸고 있는 것으로, 매핑은 function 작동 방식의 일례일 뿐이다.

어찌보면, 애초에 상자 안에 들어 있는 수 같은 말로 번역될 수 없는 뜻이다.

5

2025-09-03 오늘의 작업한 내용 메모

https://github.com/cosmoslide/cosmoslide/pull/13

  • 이전 버전까지는 Cosmoslide 의 모든 계정은 public이고 팔로우 버튼을 누르면 바로 팔로우가 되는 로직으로 구현이 되어 있었음.
    • 즉, Follow 액티비티를 받으면 액티비티를 보낸 액터의 inbox에다가 바로 Accept(Follow) 액티비티를 보내는 구성
  • 이번에 작업한 내용은 각각의 계정을 private으로 변환할 수 있고, private 계정에 팔로우 버튼을 눌렀을때 바로 팔로우가 되는게 아니라 팔로우 요청으로 처리되도록 하는 작업이었음
    • 즉, Follow 액티비티를 받으면, manuallyAcceptsFollowers 옵션이 false인 경우에만 Accept(Follow) 액티비티를 보냄
  • 팔로우 요청 관리하는 화면 바이브코딩으로 적당히 빠르게 만들고..... 팔로우 요청을 수락하거나, 팔로우 요청을 거절하는 액션 자체는 서버 측 비즈니스 로직에서 처리한다기 보다는 가능하면 Federation에서 처리하도록 했음.
    • 즉, 팔로우 요청 수락버튼을 누르면 Accept(Follow) 액티비티가 전송되고, 팔로우 요청 거절 버튼을 누르면 Reject(Follow) 액티비티가 전송되는 방식

로컬 환경에 있는 서로 다른 두 액터끼리는 잘 되는걸 확인했는데, 서로 다른 서버의 액터끼리 잘 되는지는 좀 더 테스트가 필요함.

이번 주말까지는 게시글 작성하고 원격 서버 타임라인에 노출되는 것까지 어떻게 되긴 할 듯.

2
1

https://www.typescriptlang.org/docs/handbook/mixins.html

Typescript에 Mixin 기능은 있는데, 정작 내가 원하는 형태로 지원하는 기능이 아니다. 내가 원하는건 그냥 dart 마냥 클래스의 메서드를 확장하는 것 그 이상 그 이하도 아닌데.... 흑흑...

Dart의 경우


mixin Dog {
  void walk() { ... }
}

mixin Fish {
  void swim() { ... }
}

mixin Bird {
  void fly() { ... }
}

class Animal with Dog, Fish, Bird {
   ...
}

main() {
  final animal = Animal();
  animal.fly();
  animal.swim();
  animal.walk();
}

이런 느낌의 코드를 짜는게 가능하다.

Typescript도 유틸리티성 함수를 묶어서 mixin 문법처럼 매끄럽게 클래스에 포함시킬 수 있는 뭔가가 있었으면 좋겠다.

2

지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. deno.com/blog/intro-to-islands

웹사이트 유형별로 자바스크립트 사용 필요성을 스펙트럼으로 표현한 차트. 수평 막대 다이어그램으로 웹사이트에서 자바스크립트(JS)의 필요 정도를 나타냄. 왼쪽 빨간색 구역은 ‘i don’t need no stinkin’ JS’로, 블로그와 코드 스니펫이 포함된 문서를 예시로 듦. 가운데 넓은 녹색 구역은 ‘Goldilocks JS’로, 마케팅 사이트, 전자상거래 사이트, 인터랙티브 SaaS를 포함. 오른쪽 파란색 구역은 ’JS me up!’으로, 소셜 미디어 사이트를 예시로 듦.
4
4
0

✨ Hackers' Public 첫 오프라인 모임! ✨

Hackers' Pub 사용자들의 자발적인 모임, Hackers' Public이 📅 9월 14일(일) 오후 3시 ~ 6시 열립니다.

이번 모임에서는 많은 분들이 흥미로워할 두 가지 발표가 준비되어 있습니다:

  • 🎨 Code As a Canvas: 코드에서 예술작품이 되기까지
  • ✍️ 폰트는 어떻게 만들어지는가 – Neo둥근모 개발 후일담

또한 자유롭게 교류할 수 있는 네트워킹 시간도 마련되어 있으니 많은 관심 부탁드립니다 🙌

현재는 2차 모집 단계이며, 👉 신청은 포스터의 QR코드 또는 http://public.hackers.pub 에서 가능합니다. (두 경로 모두 동일한 이벤트 페이지로 연결됩니다)

2차 모집 기간은 9월 7일까지이며, 완판이 되었더라도 참가자 신청 대기하신 분 중에서 두분 정도 선정할 예정입니다!

Hackers Public 1회차 모임 포스터
6
2
1

Jaeyeol Lee shared the below article:

Fediverse Auxiliary Service Providers(FASP)の詳細解説

のえる @noellabo@hackers.pub

この記事では、Fediverseの課題を解決し、機能拡張を目指す新しいアーキテクチャ、Fediverse Auxiliary Service Providers(FASP)について解説します。FASPは、分散型ネットワークにおける検索・発見の限界や、セキュリティ・モデレーションの課題に対処するために開発されており、アカウント検索、コンテンツ検索、スパム検出などの機能を提供します。Mastodon gGmbHが主導し、NGI Searchプログラムからの資金提供を受けて開発が進められています。2025年にかけて基本仕様の公開、実装、テストが行われ、最終的にはFediverseエコシステム全体への拡大を目指しています。FASPは、Fediverseの可能性を大きく拡張する重要なプロジェクトであり、今後の進展が期待されます。

Read more →
7
0
0

Here is a first proof-of-concept demonstration of an actual outcome for the erdosproblems/OEIS linkage project. There are a number of Erdos problems relating to irrationality of specific series. I asked an AI to compute several of these series to several decimal places (chatgpt.com/share/68b7160a-3d4), then entered in these decimal strings into the OEIS search bar. I found several hits, which I then uploaded to the project github.com/teorth/erdosproblem .

In particular, I linked Erdos problem 259 erdosproblems.com/259 to OEIS A371134 oeis.org/A371134. In the latter page, there was a reference to a solution to the problem by Chen and Ruzsa doi.org/10.1023/A:1004742930674 that was not known to the erdosproblems.com site. So now we can mark that problem as solved!

I think this type of semi-automated literature search could be a good use case for AI tooling, since the (potentially unreliable) output of such AI tools is only used to locate more reliable human-generated resources, rather than being directly incorporated into the final product.

0
0
0

I’d love to work together with my PSF Board buddy @jezdezJannis Leidel
I’d also be glad to collaborate again with @simonSimon Willison the author of Django and someone who brings a balanced perspective on AI.
The choice is yours, but I truly valued the time I spent with them.
I hope to see people on the PSF Board who are dedicated to the community and who connect many others together.
Please consider supporting them in the upcoming PSF Board election.

1
6

우부콘 코리아 2025에서 **"연합우주(Fediverse)란 무엇인가"**를 주제로 소개하는 세션을 가졌었는데, 그 때 쓰던 발표자료 한번 만들어놓으니까 "연합우주는 이런겁니다" 하고 던져주기 좋은 듯.....

발표자료는 여깄다네요... https://slides.kodingwarrior.dev/fediverse-onboarding-ubucon2025.pdf

13
0
1
0
0
0
0

진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)

8
0
1
1
6
0

게임 스샷 찍으면 자동으로 포스트 발행해서 무슨겜 플레이 타래 쓰기 쉬운 거 어디 없나. 하루 지나면 뭐했는지 기억이 안나서

1

진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)

0
1

- 마틴 파울러는 LLM이 소프트웨어 개발에 미치는 영향을 논의하며, 자동완성을 넘어선 다양한 사용 워크플로우를 놓치고 있다고 지적

- 프로그래밍 역할의 미래에 대한 질문들은 여전히 정답이 없음

- AI가 과거 기술 발전과 같은 버블 상태임을 확인

- LLM을 신뢰성을 위해 여러 번 질의해야 하는 "환각 엔진"으로 강조

- 특히 AI 에이전트가 개인 데이터와 신뢰할 수 없는 콘텐츠에 접근할 때의 보안 위험을 경고

Some thoughts on LLMs and Software Development

https://martinfowler.com/articles/202508-ai-thoughts.html

0
0
2
1

토요일

  • 일본 노래만 부르는 오타쿠팟이 있어서 신나게 놀려고 합니다,,,

일요일

  • (Cosmoslide) Follow 기능 전면적으로 개편하고, 게시글이 전파가 잘되는지 파악해보기
  • Hackers' Public 2차 모집 준비
3
2

이것은 실화입니다.

0
3
0
1

Hi there 👋

I’m Jaeyeol, a software engineer who loves Neovim and Zed. I see myself as a pragmatic builder — I focus on creating software that I’d genuinely want to use, made for people rather than for technology’s sake. Beyond coding, I also experiment actively within developer communities, often initiating gatherings and exploring new ways for people to connect and share.

One of my current personal projects happens to be in the fediverse space: cosmoslide — a slideshare-like service for sharing presentations across the fediverse. It’s built with NestJS (@fedify/nestjs) for the backend, Next.js for the frontend (most of it is vibe-coded, so I’ll probably rewrite it later 😅)

The project is still in development, with an expected first release between late September and mid October. It started as a personal experiment, but I’m excited to see how it may contribute to the broader fediverse ecosystem.

I enjoy meeting others who are curious about new ideas, whether in technology or in community.

6
1
1
6
0
1

We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as now supports .js alongside , making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred runtime while building with the same powerful BotKit APIs.

One of the most requested features has landed: poll support! You can now create interactive polls in your messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major platforms like Mastodon and Misskey.

// Create a poll with multiple choices
await session.publish(text`What's your favorite programming language?`, {
  class: Question,
  poll: {
    multiple: true,  // Allow multiple selections
    options: ["JavaScript", "TypeScript", "Python", "Rust"],
    endTime: Temporal.Now.instant().add({ hours: 24 }),
  },
});

// Handle votes
bot.onVote = async (session, vote) => {
  console.log(`${vote.actor} voted for "${vote.option}"`);
};

The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom개발곰)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.

For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.

This release also includes an important security update: we've upgraded to 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.

2
1
0

GPT-5가 어려운 문제에 있어서는 오히려 Claude Opus 4.1보다 낫다기에 한 번 써보고 있는데, Claude Code로는 당연하게도 GPT-5 모델을 못 쓰니 대신 Crush를 써보고 있다. 일단 첫인상으로는 MCP 외에도 LSP를 지원하는 게 마음에 든다. 바로 deno lsp를 연결해서 써보고 있다.

WezTerm 안에서 LLM 코딩 에이전트인 Crush를 사용하여 Optique 작업을 하는 모습. 사용중인 모델은 GPT-5 Reasoning Minimal이다. LSP로 Deno가 켜져 있고, MCP로 Context7 및 GitHub가 켜져 있다.
5

[🍏매장 이용안내]
최근 튜사 방문객 급증으로 Wi-fi가 끈기는 현상이 자주발생돼 공유기를 추가하였습니다.
Wi-fi 연결 목록 추가, Wi-fi명, 비밀번호가 변경 되었습니다.
방문하실 때 참고해주세요. 기존Wi-fi는 연결이 안됩니다.
비밀번호는 매장에 업데이트 해놨습니다.

🍏 tusa앨런튜링
→ 컴퓨터과학의 선구자, 암호해독의 전설.
“AI는 사람을 흉내 내는 걸로 시작한다.” — 지능과 논리가 흐르는 곳.

🍏tusa리누스토발즈
→ 리눅스 커널의 창시자, 오픈소스의 상징.
“코드는 공유되기 위해 태어났다.” — 리누스다운 개방형 개발존.

🍏tusa스티브워즈니악
→ 애플 1호기를 손수 만든 하드웨어 천재.
“개발은 Garage에서 시작된다.” — 납땜 냄새가 날 것 같은 공간.

🍏 tusa제임스고슬링
→ 자바(Java)의 창시자, 객체지향의 아버지.
“한 번 작성, 어디서나 실행.” — 안정성과 몰입을 위한 고슬링존.

3

[홍보글]👍
튜사에서 ASUS 제품을 경험해보실 수 있습니다. ASUS ProArt 모니터, AUS ROG 키보드까지 노트북, 마우스만 가지고 오시면 최적의 작업공간이 탄생됩니다! 그외 다양한 키보드와 모니터암까지 셋팅해놨으니 놀러오세요!

ASUS ROG 키보드 공동구매 진행중!
(튜사만 진행하는 최저가!)

공구참여!
discord.gg/KAJYgRY7tr

2