Profile img

Haze

@nebuleto@hackers.pub · 92 following · 88 followers

Haze Lee but also known as Kihan Park

  • 💻 Make stuff with Computer
  • 💉 Living with Migraine more than 10y, Migraine Advocate [Headache Place]
  • 💬 🇰🇷, Also 🇯🇵 & 🇬🇧🇺🇸
GitHub
@Nebu1eto
X(Twitter)
@Nebu1eto

Announcement: AltStore becomes a financial contributor to Fedify

We're thrilled to announce that AltStore has become a financial contributor to Fedify! This generous support comes as part of AltStore's broader commitment to strengthening the open social web ecosystem, as they prepare to become the world's first federated app store. Their investment in Fedify and other fediverse projects demonstrates a shared vision for building a more open, interoperable digital future.

AltStore's journey into the fediverse represents a groundbreaking approach to app distribution—connecting their alternative app marketplace with the open social web through ActivityPub. As pioneers who have already pushed Apple to change App Store policies twice in their first year, AltStore understands the transformative power of open protocols and decentralized systems. Their support will help Fedify continue developing robust tools and libraries that make it easier for developers to build federated applications. We're deeply grateful for AltStore's trust in our project and look forward to seeing how their innovative federated app store will reshape mobile app distribution while strengthening the entire fediverse ecosystem.

https://rileytestut.com/blog/2025/10/07/evolving-altstore-pal/

Email notification from Open Collective showing AltStore has become a new financial contributor to Fedify as a corporate sponsor with a $500.00 monthly contribution. The email includes the Open Collective logo, information about AltStore with a link to their Open Collective page, and details about the sponsorship tier and amount.
4
1
0

마이그레이션을 위해 각 페이지들은 TanStack Start/Router에 맞게 다 작업했고, SEO를 위해 만든 웹 페이지기도 하니 이제 렌더링된 페이지의 meta 태그랑 sitemap.xml를 작업이 남은 상황이다.

Next.js는 검색엔진 최적화나 페이지의 메타데이터를 예쁘게 정리해둔 타입에 맞게 담아주면 정말 알잘딱깔센하게 <head> 태그 안에 담아주는데[1], TanStack Start에서는 아래와 같이 직접 meta 태그나 link 태그 등을 하나하나 직접 빚어내야한다.

export const Route = createFileRoute("/articles/$articleId")({
  loader: ({ params: { articleId } }) => fetchArticle({ data: { articleId } }),
  head: (ctx) => {
    // NOTE: 적당히 생략
    return {
      meta: [
        { name: "title", content: title },
        { name: "description", content: description },
        { name: "keywords", content: keywords },
        { name: "og:title", content: title },
        { name: "og:type", content: "article" },
        { name: "og:author", content: post.author.nick },
        { name: "og:image", content: "/ci/logo.svg" },
        { name: "og:url", content: fullUrl },
        { name: "og:description", content: description },
        { name: "og:locale", content: "ko_KR" },
        { name: "og:site_name", content: defaultTitle },
      ],
    };
  },
  component: RouteComponent,
});

그러면 Next.js는 어떻게 각 페이지 컴포넌트 모듈에서 async function generateMetadata() 함수나 metadata 객체를 읽어서 어떻게 처리할까? 궁금해져서 찾아보았다.

Next.js 코드 속 src/lib/metadata에서는 모듈에 있는 메타데이터 정의를 읽고 generateMetadata()면 실행해서 resolve하는 resolve-metadata.ts부터, metadata.tsx를 통해 어떻게 Metadata 타입을 가지고 OpenGraph, Apple, Twitter를 비롯해 각 타입에 맞는 <meta> 태그를 만들어주는지 알 수 있다. OpenGraph라던가 각 세부 항목에 대해선 generate/opengraph.tsx 파일 등을 보면 이해할 수 있다.

이 방식이 꽤 괜찮게 느껴져서 자고 일어나선 해당 코드를 차용해서 새 코드베이스에서도 그대로 활용할 수 있게 만들어보려고 한다.


  1. https://nextjs.org/docs/app/getting-started/metadata-and-og-images ↩︎

4
1

방금 며칠 전 보낸 메일의 회신이 왔다는 알림에 "오늘 일요일 아닌가?" 하는 생각이 들어서 확인해보니 월요일이었다. 추석 연휴 덕에 지난주 금요일부터 대충 요일 개념이 완전히 날아가버린 것 같다.

1
1

대충 일단 게시물을 가져오는데는 성공했으니 나머지는 자고 일어나서 마저 작업하는걸로...

대충 작업된 것들

  • Next.js에서 Tailwind v4 + TanStack Start 바탕으로 프로젝트 옮기기
  • 스타일시트, 컴포넌트, 유틸리티 함수 등등 옮기기

성공적인 마이그레이션까지 남은 것들

  • 검색 엔진을 위한 meta 태그 처리
  • ContentLayer가 아니라 Content Collections를 써서 mdx 파일의 렌더링
  • Server Component가 아닌 형태로 SSR을 지원하는 네이버 스마트에디터 게시물 컴포넌트
  • sitemap.xml 구현
  • Netlify (혹은 CloudFlare) 로 배포하기

그 뒤에 할 것들

  • 사이트 이래저래 개편하기
  • 태그 페이지 추가로 태그를 통한 네이버 카페 게시물 가져오기
  • 같은 코드 베이스로 내 블로그 웹 만들기
작업 중인 웹 페이지, API를 통해 가져온 네이버 카페의 게시물을 렌더링한 내용이다.
1

Next.js를 쓰면서 큰 생각 없이 서버에서만 렌더링될 컴포넌트엔 use server, 클라이언트에서만 렌더링될 컴포넌트엔 use client를 썼는데 Tanstack Start로 옮기면서 하나하나 createServerFn으로 감싸면서 아찔함을 느끼고 있다.

Next.js가 제공해주던 Metadata도 그렇고 지금까지 너무 프레임워크가 제공하던 매직에 편안함을 느꼈던 것 같단 생각도 들고.

마이그레이션 끝나면 좋은 글감이 나올 것 같다.

1

Next.js를 쓰면서 큰 생각 없이 서버에서만 렌더링될 컴포넌트엔 use server, 클라이언트에서만 렌더링될 컴포넌트엔 use client를 썼는데 Tanstack Start로 옮기면서 하나하나 createServerFn으로 감싸면서 아찔함을 느끼고 있다.

Next.js가 제공해주던 Metadata도 그렇고 지금까지 너무 프레임워크가 제공하던 매직에 편안함을 느꼈던 것 같단 생각도 들고.

마이그레이션 끝나면 좋은 글감이 나올 것 같다.

5

한국인의 혐중(嫌中)은 이제 명백히 치료해야 할 사회적 병이 되었다고 생각한다. 몇 년 전까지는 경제발전을 빨리 이룬 국가적 우월감(절대 이런 우월감은 정당화 가능하다는 의미가 아님.)에 따른 차별적 의식 전반이 문제라고 우활(迂闊)하게만 생각했는데, 이제는 명백히 ‘중국과 중국인에 대한 혐오’가 문제임을 부인할 수 없게 되었음. 진짜 큰일났다.

0

@nebuletoHaze 그런 이슈가 있었군요. 저는 그 수준에서는 안해보았고 순전히 직접 데이터 다루고 분석하는 유저 입장에서는 이미 적었듯 이만한 언어가 없다고 생각하거든요. 꽤나 마이너 하다고 생각했던 고급 통계검정 기법까지 지원하는 패키지도 있고 관련 CRAN 문서들도 되게 잘 정리되어 있어서 대학원에서 연구할 때도 많이 애용했었는데 개발자 입장에선 또 많이 불편한 언어가 맞긴 맞나보네요.

@icecream_mable구슬아이스크림 모든 패키지들이 CRAN에 올라온 것도 아니기 때문에 devtools의 install_github()같은걸 써야하고, renv는 lockfile이 있긴 하지만 제가 겪은 프로젝트들에선 라이브러리 설치 과정에서 C/C++ 심지언 포트란 코드를 컴파일 해야하고 이럴 때 컴파일러 버전 등에 영향을 많이 받았습니다.

이게 개발자 입장에서만 불편하면 모르겠는데 연구자들도 어려워합니다 근데 이걸 다른 언어들은 이러한 문제를 공학적으로 어떻게 해결했는지를 모를 뿐이죠.

1
1
0
0
4
0
8
3
0
3
0
2

Optique 0.6.0 is adding shell completion! We already support:

  • Bash
  • zsh
  • fish
  • PowerShell

This covers most users, but should we add more niche shells? Your input helps us prioritize!

5

If you are using Vercel, will you cancel your account and move your hosting elsewhere now that they publicly support and work with genocidial fascists?

0
0
1

이번 추석 연휴에 환우회 SEO용 홈페이지 탈-Vercel해야겠다… 원래 천천히 탈-Vercel도 할 겸, Next.js에서 React Router로 마이그레이션하고 있었는데 이젠 정말 하루라도 빨리 옮기고 싶음

4
1
1
0
0

@akastoot악하 @z9mb1Jiwon 이제 이 책도 별로 의미가 없죠. Vibe에 취해서 AI한테 코딩시켜놓은 다음에 AI한테 난독화 시켜달라고 하면 끝 아니겠습니까. 적당히 난독화할 때 그 규칙만 미리 문서로 정리해두고 그 규칙 적용해서 나만 유지보수하는거죠.

0

@z9mb1Jiwon 일단 LLM과 AI 도구에는 언제나 hype이 가득해서 그대로 믿으면 안되는 것은 있지만, 지금 시점에서 Sonnet 4.5는 경쟁 모델이나 자사의 상위 모델보다도 에이전틱 코딩 등에서 더 좋은 벤치마크 결과를 내고 있어요. 그리고 Claude Code는 지금 시점에서 잘 만든 코딩 에이전트 중 하나구요.

전 사람들이 Claude와 Anthropic을 욕하는 이유가 초기보다 줄어든 Quota와 최근 일련의 성능 저하 이슈 등이 있다고 생각하는데, Sonnet 4.5는 가격이나 quota 아니면 속도 등에서 기존 Sonnet과 큰 차이가 없고 오히려 결과도 Opus보다 좋은 경우가 더 많아서 이러면 Quota 문제에 대해 기존보다 덜 스트레스를 받을 수 있다고 생각해요. 이제 Claude Code에 usage 커맨드도 들어가서 사용량 체크도 쉬워졌구요.

2

회사에서 딴 짓하고 싶다는 말에 터미널로 책을 읽으면 되는거 아니냐는 이야기가 나와서, 설마 Neovim 플러그인 중에 epub 플러그인이 있을까? 하고 알아봤다. 진짜 있다. vim 사용자들의 집념은 뭘까 진짜...

https://github.com/CrystalDime/epub.nvim

10

@z9mb1Jiwon

  1. (가장 쉽고 간단함) 겉면에 전분을 넉넉히 바르고 굽거나 튀기는게 짱입니다. 괜히 야채 튀기거나 할 때 전분을 묻히거나 전분물을 묻히거나 하는게 아니더라구요.
  2. (좀 더 복잡하고 귀찮음) 두부는 스폰지처럼 안에 물을 많이 머금고 있는데, 얼렸다가 녹이면서 좀 무거운걸로 위에 눌러두면 물이 쫙 빠집니다. 그러면 수분이 많이 빠져서 구울 때 더 바삭해지기 쉽고 전골같은거 만들 때는 국물이나 소스를 더 잘 머금게 됩니다.
0

잡곡밥 & 두부야채볶음

에어프라이어에 두부 바삭하게 돌리고 야채는 전자레인지에 미리 돌려서 숨 좀 죽이고 볶기만 하면 끝이니 꽤 편하다. 요리하는걸 좋아하는 편이지만 치우는 것도 귀찮고 매사가 귀찮은 성격이라 품은 적게 들어가지만 최대한 맛있게 먹는게 좋더라.

점심 밥
4
0

이번에 처음으로 타오바오에서 직구를 하게 되었는데 중국어를 전혀 모르는데(한자로 조금은 유추할 수 있지만) AI의 도움으로 사용 경험이 그렇게 나쁘지 않다.

Claude for Chrome이나 Comet같은 브라우저 에이전트가 발전하면 모르는 언어여도 내가 원하는 조건의 제품을 찾아주거나 어디에 뭘 넣어야할지 다 가이드해주지 않을까.

Gemini에게 중국어 스크린샷으로 물어본 결과와 번역향후 배송 과정의 유추를 답변해주는 Gemini추석 연휴 전 택배 받을 수 있는지 질문못 받는 이유를 설명하는 Gemini

그리고 후기: 늘 그렇듯 비싼덴 이유가 없을 수도 있지만 싼데는 다 이유가 있다. 이렇게 실망할 바엔 타오바오에서 2.5만원 주고 짭을 사는게 아니라 자금 여유가 될 때 정품 피타카 케이스를 사는게 낫다.

2.5만원을 주고 중국 직구 첫번째 레슨을 받았다. 젠장

1

단짠조합 미쳤다… 이거 진짜 최고야…

  • 겉바속촉하게 구운 바게뜨 빵
  • 발사믹 식초 넣은 캐러멜라이즈 어니언
  • 올리브유에 허브, 페퍼론치노, 마늘, 방울토마토, 노른자 등을 넣은 콩피

콩피는 말이 거창하지 재료에 올리브유 때려넣고 간한 다음에 오븐이나 에어프라이어에게 맡기면 끝이고, 양파는 전자레인지에 한참 돌린 다음에 숨이 다 죽은 상태에서 볶기 시작하면 캐러멜라이징도 엄청 빠르게 된다.

최소한의 노력으로 최대한의 맛을 뽑는게 너무 좋다.

- 겉바속촉하게 구운 바게뜨 빵
 - 발사믹 식초 넣은 캐러멜라이즈 어니언
 - 올리브유에 허브, 페퍼론치노, 마늘, 방울토마토, 노른자 등을 넣은 콩피
4

macOS Tahoe에서 일렉트론 애플리케이션이 말도 안되게 느렸던 이유는 Liquid Glass 도입으로 시스템에 전반적 연산이 늘어난게 아니라 Electron이 AppKit의 private API를 잘못 쓰면서 WindowServer에서 GPU를 미친듯이 쓴 것이었다.

https://github.com/electron/electron/pull/48376

5
1

iPhone 17 Pro Max 이후 1주일.

처음엔 야외에서 찍어보고 사진 잘 나오네~ 싶어서 카메라 성능이 굉장히 좋다 생각했었다. 하지만 이래저래 사진을 찍어보면서 카메라 초점거리나 배율에 따른 카메라 선택 등이 너무 실망스럽다.

1배 모드로 찍어도 초점 거리 때문에 메인 카메라가 아니라 초광각 카메라를 쓰는 경우가 많고, 4배나 8배율 줌을 땡기면 초점거리가 엄청 여유롭지 않으면 망원 카메라가 아니라 메인 카메라에서 잡히며 심지어 접사로 잡히면 메인 카메라도 아닌 광각 카메라로 찍은걸 크롭해버린다.

여러모로 결과가 실망스럽다. 제대로 찍고 싶은 사진은 Halide로 찍는 편이지만 아이폰은 카메라 앱에서 빠르게 툭 찍을 수 있는게 정말 좋았는데… 카메라 관련 부분은 소프트웨어로라도 개선이 필요해보인다.

1x 24mm인데 초광각으로 찍힌 사진 11x 24mm인데 초광각으로 찍힌 사진 2
0

iPhone 17 Pro Max 이후 1주일.

처음엔 야외에서 찍어보고 사진 잘 나오네~ 싶어서 카메라 성능이 굉장히 좋다 생각했었다. 하지만 이래저래 사진을 찍어보면서 카메라 초점거리나 배율에 따른 카메라 선택 등이 너무 실망스럽다.

1배 모드로 찍어도 초점 거리 때문에 메인 카메라가 아니라 초광각 카메라를 쓰는 경우가 많고, 4배나 8배율 줌을 땡기면 초점거리가 엄청 여유롭지 않으면 망원 카메라가 아니라 메인 카메라에서 잡히며 심지어 접사로 잡히면 메인 카메라도 아닌 광각 카메라로 찍은걸 크롭해버린다.

여러모로 결과가 실망스럽다. 제대로 찍고 싶은 사진은 Halide로 찍는 편이지만 아이폰은 카메라 앱에서 빠르게 툭 찍을 수 있는게 정말 좋았는데… 카메라 관련 부분은 소프트웨어로라도 개선이 필요해보인다.

1x 24mm인데 초광각으로 찍힌 사진 11x 24mm인데 초광각으로 찍힌 사진 2
1
1
1
2

단호박, 두부, 미소, 페페론치노랑 드라이 허브가 들어간 마늘콩피를 갈아서 크림 없는 크림파스타를 만들었다. 적당히 머릿속에서 이 조합이면 괜찮겠다 싶어서 만들었는데 진짜 너무 맛있다.

두부랑 올리브유, 마늘을 갈아버리는게 약간 허머스 같은 느낌도 나서 빵같은데 찍어먹기도 좋아보인다.

레시피

  1. 용기에 마늘 왕창이랑 간 후추, 페페론치노, 드라이 로즈마리와 바질을 넣고 에어프라이어 180도 20분 돌려 마늘콩피를 만든다.
  2. 단호박은 적당히 잘라서 전자레인지 10분 돌려준다.
  3. 두부랑 1, 2를 합치고 핸드블렌더로 곱게 오랫동안 갈아준다.
  4. 여기에 짠맛과 감칠맛을 위해 미소된장을 조금씩 넣어주고 다시 섞는다. (뒤에 면수가 들어갈걸 계산하고 간을 잘 봐야한다.)
  5. 파스타 잘 삶아서 알덴테일 때 물기 싹 털고 약불에 면수 좀 넣고 소스랑 버무린다.
저녁 (파스타, 닭가슴살 머스타드샐러드, 바삭하게 구운 통밀빵)
3

이번에 처음으로 타오바오에서 직구를 하게 되었는데 중국어를 전혀 모르는데(한자로 조금은 유추할 수 있지만) AI의 도움으로 사용 경험이 그렇게 나쁘지 않다.

Claude for Chrome이나 Comet같은 브라우저 에이전트가 발전하면 모르는 언어여도 내가 원하는 조건의 제품을 찾아주거나 어디에 뭘 넣어야할지 다 가이드해주지 않을까.

Gemini에게 중국어 스크린샷으로 물어본 결과와 번역향후 배송 과정의 유추를 답변해주는 Gemini추석 연휴 전 택배 받을 수 있는지 질문못 받는 이유를 설명하는 Gemini
1
1
0
0
1

"두통과 함께하는 사람들"은 다음 주(22일 ~ 28일) 편두통 인식 개선 주간을 맞이해서 광화문에서 커피차 이벤트를 진행합니다! 주변에 많은 공유와 참여 부탁드려요.

  • 📆 언제? 2025년 9월 22일 (월요일) 오전 10시 ~ 오후 2시
  • 📍 어디서? 광화문 한국프레스센터 광장 [네이버 지도]
  • 📋 무엇을 하나요? 편두통 질환과 캠페인을 소개하며 다양한 기념품(안대와 귀마개 등)과 음료를 드립니다! 🎁🥤
  • 왜 하나요? 국제적으로 진행하는 캠페인의 일환으로 편두통에 대한 오해를 해소하고 편두통을 알리는걸 목표로 합니다.

오랫동안 열심히 준비하던 것 중 하나입니다. 부스 놀러와주시면 기쁠 것 같아요.

편두통, 오해말고 이해를! 당일 배포될 팜플렛의 표지입니다.
6
0
0