Profile img

McK

@mck@hackers.pub · 15 following · 18 followers

우리.인생
@mck@uri.life

mise WARN env value contains '$' which will be expanded in a future release. Set env_shell_expand = true to opt in or env_shell_expand = false to keep current behavior and suppress this warning.

켜고 싶다면 VAR = "foo$$bar" 처럼 고쳐야 됨. VAR = '''foo$bar''' 이런거 안 됨. 난 꺼버렸음.

1
0

witr 지원

❯ witr ghostty
Target      : ghostty

Process     : ghostty (pid 36529)
User        : mck
Service     : launch job demand
Command     : /Applications/Ghostty.app/Contents/MacOS/ghostty
Started     : just now (Mon 2025-12-29 10:08:55 +00:00)

Why It Exists :
  launchd (pid 1) → ghostty (pid 36529)

Source      : application.com.mitchellh.ghostty.34914134.34914139 (launchd)
              Type : Launch Agent

Working Dir : /
Open Files  : 100 of 256 (39%)
Locks       : /Users/mck/Library/Caches/com.mitchellh.ghostty/sentry/8c48f586-5c27-49c8-71a1-7727494394fc.run.lock

Warnings    :
  • Process is running from a suspicious working directory: /
  • Service name and process name do not match
1

asdf + direnv 조합을 mise로 바꾸고 나서, 초반에는 환경 변수 제어가 쉽고 다양한 점이 좋았다면 시간이 갈수록 tasks 기능이 기존 프로젝트까지 mise로 전환하게 만든다.

[tasks."dev:db"]
dir = "./data"
run = "./docker-run-postgres.sh --no-tty"

[tasks."dev:cms"]
dir = "./cms"
run = """
until nc -z localhost 5432; do
  echo "Waiting for database to be ready..."
  sleep 1
done
corepack yarn dev || [ $? -eq 129 ] || [ $? -eq 130 ]
"""

[tasks.dev]
depends = ["dev:db", "dev:cms"]
1

https://sass-lang.com/documentation/breaking-changes/if-function/

In 2010, shortly after adding the boolean value type, Sass added the global if() function as a way to easily use booleans in a single expression without having to write out an entire @if rule. This function had the signature if($condition, $if-true, $if-false) and returned $if-true if $condition was truthy and $if-false otherwise.

At the time, browsers didn’t even support @media queries and we never imagined that CSS might support its own if() function someday. But fifteen years later, support for the CSS if() function began landing in browsers and we had to do so as well in order to remain fully CSS-compatible.

요약하자면, "우리가 if()함수를 전역으로 넣을 때까지만 해도 CSS에 if 함수가 도입될거라곤 상상도 못했어"

대안으로 제시하는 문법은 아직 사용하지 못하는 곳이 있을테니 당분간 @if and @else 규칙 쓰는게 나을듯.

0
1

Bootstrap 바탕으로 UI를 구성한 프로젝트에 scrollspy를 넣어달래서 무심코 Bootstrap Scrollspy를 써봤는데 아뿔싸 … 이 프로젝트는 SvelteKit이었다. SvelteKit은 hash 변경에 개입하기 때문에 충돌함. IntersectionObserver 몇 개로 해결

1

Vite처럼 HMR을 지원하는 환경에서 개발을 한다면, 거기다 상태 관리에 싱글톤 인스턴스가 쓰인다면 다음 코드가 언젠가는 도움이 될지도.

if (import.meta.hot) {
  import.meta.hot.accept(() => {
    import.meta.hot?.invalidate();
  });
}
3

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x100d12fe0]

vscode 언어 서버가 죽어버림

0
0
2
1

사용 이틀째.

딱히 불편함은 없고 빠릿빠릿해서 좋다. iTerm2에 있던 그 많은 설정은 거의 필요 없었다는걸 새삼 느꼈다. Ghostty에서 설정을 열면(cmd+,) config 파일 고치라고 편집기가 뜬다 🤣

새 창이나 탭을 띄울 때 현재 위치에서 띄우지 못 하는데, 셀 통합이 불안정해서란다. iTerm2용 통합 스크립트를 다 막아도 "invalid OSC command: 1337;ShellIntegrationVersion=14;shell=zsh"가 찍히는 중. 공식 설명서 따라서 수동으로 읽었는데 되다 말다 그럼.

2
0
1
1

2025년 터미널 에뮬레이터 현황: 방랑하는 챔피언들 1위 Ghostty, 2위 Foot, 3위 Kitty가 상위권을 차지함 세 터미널 모두 Unicode 처리 정확도(WIDE/LANG/ZJW/VS16) 항목에서 최고 점수 기록 VTE 기반 터미널(GNOME Terminal, Terminator, LXTerminal 등) 은 하위권 유지 성능(Elapsed time) 측면에서 Foot, WezTerm, tmux, Konsole 등이 빠름 (100초 미만) iTerm2와 Extraterm은 CPU를 과도하게 사용하며, 테스트 시간을 단축해야 했음

과연 이번에도 "돌고 돌아 iTerm2로 돌아옴"이 될 것인가?

https://news.hada.io/topic?id=24130 https://www.jeffquast.com/post/state-of-terminal-emulation-2025/

1

컴포넌트 새로 만들다가 써야할 함수를 급하게 날림으로 짜고 남겨뒀던게 기억나서 에이전트한테 테스트 짜달라고 했더니,

주석으로 테스트 대상 코드에 문제 있다고 줄줄이 적어놔서 뭐냐니까 svelte lune mode를 못 알아먹은 거였다. 미덥잖아서 다른 에이전트에 리뷰 던지니까 이번엔 deprecated 된 놈*으로 바꿔야 한다며 … 아주 그냥 쌍으로 환각 파티를 벌이는구만

나도 모르게 감정 이입을 했는지 deprecated 명시한 문서를 던져주니까 한 놈은 수긍하고 한 놈은 끝까지 우긴다 🤣

SvelteKit 2.12: $app/stores deprecated $app/store/page$app/state/page

1

멀쩡한 코드에 문제 있다며 vscode가 절규하는 원인을 한참 뜯어봤더니, 몇몇 언어 서버의 버그가 합쳐져 화음을 이루어 괴롭혔다는 결론. 설정 파일에 단 두 글자 넣자 사라졌다. (솔직히 // *-ignore 넣고 넘어갈까 했는데)

1
1
1

Ignores hidden directories and files, by default.

fd의 features 가운데 하나. 익숙치 않은 사람은 포기하고find로 돌아갈만한 지점일듯.

Warn when forgetting --hidden on a filename starting with . sharkdp/fd#1588

그나마 있는 경고를 보기도 까다롭다. .profile, \.profile, ^\.profile 모두 기대와 다른 결과가 나온다.

 fd '^\.profile'
[fd error]: The pattern(s) seems to only match files with a leading dot, but hidden files are filtered by default. Consider adding -H/--hidden to search hidden files as well or adjust your search pattern(s).
0
1
0

그래서 살짝 손 봄

function rmdsstore() {
  find "${@:-.}" \
    -name Library -prune -o -name OrbStack -prune -o \
    -type f -name .DS_Store \
    -print0 | xargs -0 rm
}
0
1
1

대충 명령어랑 설정 몇 줄 써서 올렸을 뿐인데 "이 글은 ls 명령어를 대체하는 현대적인 도구인 eza의 설정 방법을 소개합니다 …"라며 친절하게 소개해주는 해커펍

1
3
1
5
0
0
0
0

McK replied to the below article:

Node.js v14로 받는 고통 기록

McK @mck@hackers.pub

`asdf`나 `nvm`을 사용하여 Node.js를 설치할 때 macOS에서 빌드 실패가 발생하는 문제에 대한 해결책을 제시합니다. macOS Sequoia에서 Python 버전 문제로 인해 빌드가 실패할 경우, 심볼릭 링크를 통해 Python 버전을 지정하는 방법이 소개됩니다. 하지만 최신 환경에서는 이 방법이 통하지 않을 수 있으며, 특히 arm64e macOS 환경에서는 `arch -x86_64 zsh` 명령어를 사용하여 x86_64 아키텍처로 전환한 후 Node.js를 설치하는 우회 방법을 제시합니다. 이 방법은 Node.js를 미리 빌드된 바이너리 형태로 설치하여 문제를 해결하며, sharp와 같은 네이티브 모듈은 재빌드가 필요할 수 있습니다. 오래된 v14 버전을 유지해야 하는 상황에 대한 어려움을 언급하며 마무리합니다.

Read more →
0
0