Profile img

McK

@mck@hackers.pub · 12 following · 13 followers

우리.인생
@mck@uri.life
0

https://github.com/be5invis/Sarasa-Gothic

터미널/에디터용 고정폭 폰트를 찾는다면 Sarasa Term K를 추천합니다. 이쪽도 한중일 폰트를 모두 지원합니다. Noto Sans Mono CJK도 좋지만 폰트 미세 조정이 안 되는 환경에서 Sarasa Term이 좀더 정확하게 렌더링됩니다. 영문과 한글만 쓰면 네이버의 D2Coding도 훌륭하지만 이쪽은 가나, 한자 지원이 약하죠.

2

그래서 살짝 손 봄

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

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

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

5
1

"웹 접근성을 고려한 콘텐츠 제작기법 2.2 개정판" 의 온라인 버전이 공개되었습니다. 이 자료는 국내 접근성 지침 관련해 개발자들이 참고할 수 있도록 한 사례 중심의 해설서입니다. 상당히 좋은 내용으로 보이니 많이 참고하셨으면 합니다.

3
1
6
0
0

McK shared the below article:

LogTape 1.1.0: Smarter buffering, seamless integration

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

LogTape 1.1.0 introduces smarter and more flexible logging with two major features. The first is "fingers crossed" logging, which buffers debug and low-level logs in memory and only outputs them when an error occurs, providing a complete sequence of events leading up to the problem. Category isolation prevents one component's errors from flushing unrelated logs, keeping logs focused and relevant. The second feature is direct log emission via the `Logger.emit()` method, which allows feeding logs from external systems like Kafka directly into LogTape while preserving original timestamps and metadata. This release also includes bug fixes and improvements across the ecosystem, such as fixes for potential data loss during high-volume logging and improved cross-runtime compatibility. Upgrading to 1.1.0 is backward-compatible and enhances debugging in production by providing complete context for every error without constant verbose logging.

Read more →
4

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

1

eza 아이콘 지정

McK @mck@hackers.pub

이 글은 `ls` 명령어를 대체하는 현대적인 도구인 `eza`의 설정 방법을 소개합니다. `eza`는 기본적으로 아이콘, Git 정보, 디렉토리 그룹화 등의 기능을 제공하며, 사용자는 `EZA_CONFIG_DIR` 환경 변수를 통해 설정 디렉토리를 지정할 수 있습니다. 특히, `.config/eza/theme.yml` 파일을 수정하여 파일 확장자에 따라 표시되는 아이콘을 커스터마이징하는 방법을 설명합니다. 아이콘은 Nerd Fonts Cheat Sheet에서 쉽게 복사하여 사용할 수 있습니다. 이 설정을 통해 사용자는 파일 목록을 시각적으로 더욱 풍부하게 만들고, 생산성을 향상시킬 수 있습니다.

Read more →
1

McK shared the below article:

Stop writing CLI validation. Parse it right the first time.

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

This post introduces Optique, a new library created to address the pervasive problem of repetitive and often messy validation code in CLI tools. The author was motivated by the observation that nearly every CLI tool reinvents the wheel with similar validation patterns for dependent options, mutually exclusive options, and environment-specific requirements. Optique leverages parser combinators and TypeScript's type inference to ensure that CLI arguments are parsed directly into valid configurations, eliminating the need for manual validation. By describing the desired CLI configuration with Optique, TypeScript automatically infers the types and constraints, catching potential bugs at compile time. The author shares their experience of deleting large chunks of validation code and simplifying refactoring tasks. Optique aims to provide a more robust and maintainable approach to CLI argument parsing, potentially saving developers from writing the same validation logic repeatedly.

Read more →
20
3
1

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

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

macOS에서는 Xcode에서 git을 함께 주지만 brew install git으로 별도로 설치해서 사용해야 한다. 왜냐하면 Git 취약점 최신 패치버전은 2.50.1인데 Xcode git 버전은 2.39.5 버전이다 😱 (다른 패치버전들도 있는데 2.43 및 이후 버전들만 관리 중인가 보다[1])

https://github.blog/open-source/git/git-security-vulnerabilities-announced-6/


  1. https://lore.kernel.org/git/xmqq5xg2wrd1.fsf@gitster.g/ ↩︎

2
2

해커스 펍은 아무래도 어텐션이 낮다 보니 채용 시장 이야기를 조금 해 보자면 (트위터는 왠지 채용 과정에서 아쉬운 경험을 하신 분들도 있을 것 같고, 해서) 새로운 프론트엔드 개발자분이 곧 합류하시는데 채용까지 이르는 데 까지 정말 많은 이력서 스크리닝을 해야 했다. 솔직히 말해 '옛날에 비하면' 뛰어난 개발자분들이 시장에 많은데 (공개적으로 이야기하기는 뭐한) 특정한 스타일의 비슷한 개발자분들이 아주 많다. 괜찮은 사람을 아무나 빨리 뽑는 채용 기조는 아니다 보니 정말 특출나게 뭔가 뛰어난 부분이 있는 분을 찾아야 한다는 압박감이 있었고, 이것때문에 좀 힘들었다.

5

McK shared the below article:

Announcing LogTape 1.0.0

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

LogTape 1.0.0 has been released, marking a significant milestone for this zero-dependency logging library designed for the modern JavaScript ecosystem. This release emphasizes API stability and introduces high-performance features such as non-blocking sinks for console, stream, and file logging, along with the `fromAsyncSink()` function for integrating asynchronous logging operations. New sink integrations include packages for AWS CloudWatch Logs and Windows Event Log, enhancing LogTape's versatility. The update also brings a visually appealing console logging experience with the `@logtape/pretty` package, and seamless integration with existing Winston or Pino setups through adapter packages. Key developer experience enhancements include programmatic access to log levels and improved browser compatibility. LogTape 1.0.0 streamlines logging infrastructure with a comprehensive package ecosystem, offering specialized packages for various logging needs. This release provides a stable and mature logging solution, making it easier to manage and optimize logging in JavaScript applications.

Read more →
11

McK shared the below article:

If you're building a JavaScript library and need logging, you'll probably love LogTape

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

LogTape offers a novel approach to logging in JavaScript libraries, designed to provide diagnostic capabilities without imposing choices on users. Unlike traditional methods such as using debug packages or custom logging systems, LogTape operates on a "library-first design" where logging is transparent and only activated when configured. This eliminates the fragmentation problem of managing multiple logging systems across different libraries. With zero dependencies and support for both ESM and CommonJS, LogTape ensures minimal impact on users' projects, avoiding dependency conflicts and enabling tree shaking. Its universal runtime support and efficient performance make it suitable for various environments. By using a hierarchical category system, LogTape prevents namespace collisions, offering a seamless developer experience with TypeScript support and structured logging patterns. LogTape provides adapters for popular logging libraries like Winston and Pino, bridging the transition for users invested in other systems. Ultimately, LogTape offers a way to enhance library capabilities while respecting users' preferences and existing choices, making it a valuable consideration for library authors.

Read more →
10

Sass v1.77.x 최근판이 Bootstrap v5에 뱉는 사용 중단(Deprecation) 경고

McK @mck@hackers.pub

Sass 최신 버전과 Bootstrap v5.3.x를 함께 사용할 때 발생하는 사용 중단 경고에 대한 해결책을 제시합니다. Bootstrap v5.3.4에서 수정된 `mixed-decls` 경고와 달리, `color-functions` 및 `global-builtin` 경고는 수정이 어려울 수 있습니다. Sass는 이러한 경고를 무시하기 위해 `quietDeps` 및 `silenceDeprecations` 옵션을 제공하며, vite 프로젝트에서 이를 설정하는 방법을 예시 코드를 통해 보여줍니다. `quietDeps` 옵션은 의존성 패키지의 경고만 무시하므로, 자체 코드의 경고는 `silenceDeprecations` 옵션을 사용하여 더 강력하게 무시할 수 있지만, 코드 수정이 더 나은 해결책일 수 있습니다. 이 글은 Sass와 Bootstrap을 함께 사용하는 개발자가 경고 메시지를 관리하고 잠재적인 문제를 해결하는 데 도움을 줍니다.

Read more →
1
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

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

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

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

또 있을까요?

1
9
0