leetekwoo

@leetekwoo@hackers.pub · 97 following · 39 followers

leetekwoo.com
leetekwoo.com

Perl을 만든 언어학자 Larry Wall이 쓴 글 중에 종종 다시 읽어 보는 글

Human languages therefore differ not so much in what you can say but in what you must say. In English, you are forced to differentiate singular from plural. In Japanese, you don’t have to distinguish singular from plural, but you do have to pick a specific level of politeness, taking into account not only your degree of respect for the person you’re talking to, but also your degree of respect for the person or thing you’re talking about.

Programming is Hard, Let's Go Scripting...

그렇기 때문에 사람의 언어는 당신이 그렇다고 생각하고 있던 것과는 많이 다르다. 영어로 얘기할때는 단수와 복수를 확실히 구분해야만 한다. 일본어에서는, 단수와 복수를 구분할 필요는 없지만, 정중함의 정도를 조절할 줄 알아야 한다. 즉, 상대방에 대한 존경을 표현할 수 있는 정도를 선택해야 하고, 상대방의 입장에서 내가 존중 받아야 하는 정도를 생각해서 말해야 한다.

프로그래밍은 어렵다, 스크립팅의 세계로 가보자...

1

readme:art.leetekwoo.com

leetekwoo @leetekwoo@hackers.pub

이 글은 개인 웹사이트 [art.leetekwoo.com](https://art.leetekwoo.com/)의 `readme` 내용을 공유하며, 작품 고유 번호 체계와 웹 애플리케이션의 기술 스택 및 개발 후기를 담고 있습니다. 작품 고유 번호는 작품의 타입, 제작 연도, 장소, 연작 ID 등을 포함하여 체계적으로 관리됩니다. 웹 애플리케이션은 Typescript, Vite, React를 사용하여 개발되었으며, Cloudflare Pages를 통해 CDN을 활용하고 배포 자동화를 구현했습니다. 이미지 압축 및 워터마크 삽입, 캐싱 전략 등을 통해 성능 최적화에도 신경 썼습니다. 이 웹사이트는 개발자에게는 다소 부족해 보일 수 있지만, 작품을 정리하고 과거를 돌아보기 위한 공간으로서 의미를 가지며, 저작권 보호의 중요성을 깨닫는 계기가 되었다는 개인적인 소회를 밝히고 있습니다.

Read more →
6

@leetekwoo 취미로 쓴 글 읽어주셔서 감사합니다. 😅 Raw 현상은 Rawtherapee를 주로 쓰고 있습니다. Color input profile은 RT 번들과 어도비 컨버터 번들, 서드파티 Flat dcp를 쓰는데 캐논 Neutral을 기본으로 하고 있습니다. 캐논이 제공하는 dpp 프로그램도 병행하고 있고, 후편집은 잘 안 하지만 필요할 때는 16bit tiff로 내보내서 gimp로 합니다.

1

디지털 카메라는 극소수의 흑백 전용기가 아니면 결국 RGB 컬러 채널이고, 색을 다루지 않고서는 RAW 현상에 한계가 뚜렷하다. 빛 이론 상으로야 휘도와 색상을 분리할 수 있지만 디지털 센서에서는 RGB 채널 각 (대부분의 경우) 14비트 데이터만 존재함. 이로부터 다른 정보들을 "연산"하여 이미지 전체를 만드는데, 그 과정을 조정할 수 있어야 결국 맘에 드는 이미지를 뽑아낼 수 있다.

물론 카메라 메이커, RAW 소프트웨어 개발사들이 그 과정을 직접 하지 않고도 좋은 이미지 나오도록 기술들을 제공하지만, 그건 그 사전 설정의 한계 내에서 미세 조정하는 거고 회사의 이미지 정책/선호도를 전제로 하는 것.

어떤 사진가가 디지털 사진은 결국 어도비/페이즈원 톤 앤 매너가 되어 버려서 다양하게 쓸 수 있는 필름보다 못하다는 말을 한 적이 있는데, 현실적으로는 대개 맞는 말이지만 매체의 한계는 아니라는 점 또한 짚어줬으면 좋겠다 싶었다. 사진에 집중하시는 분들 중에서 디지털 사진, 이미지 기술에 대한 이해가 부족한 경우가 많다. 기술이 곧 예술은 아니지만, 도구에 대한 이해 없는 표현은 아쉬운 점이 생기기 쉽다.

0
3
2
0
0
1
6
2

보정한 결과물입니다. 19년도에 아이폰 X로 기내에서 찍었던 것 같습니다.

구름입니다.
5
5
2
3
1

readme

leetekwoo @leetekwoo@hackers.pub

이 글은 서울 거주 30대 웹 개발자 출신인 작성자 @leetekwoo가 자신의 해커스펍 계정 사용 방침을 소개합니다. 프라이버시를 중시하며 상호 존중을 기반으로 한 건전한 교류를 지향하는 작성자는 단문과 게시글을 통해 다양한 주제의 산문을 공유하며, AI를 사용하지 않고 바른 한글 맞춤법을 준수합니다. 팔로우와 언팔로우는 자유롭게 이루어지며, 성인물이나 폭력성, 과도한 마케팅 계정은 언팔로우될 수 있습니다. 온라인 사생활 침해 및 해킹 피해 경험으로 온라인 노출을 제한하고 있으며, 관련 법률을 준수하여 타인에게 피해를 주지 않으려 노력합니다. 연락은 메일을 선호하며, 친목이나 협업에 열려 있습니다. 이 글은 작성자의 계정 운영 철학과 온라인에서의 소통 방식을 명확히 하여, 팔로워들과의 건강한 관계를 구축하고자 합니다.

Read more →
4
6

보이스피싱, 스미싱, 가짜 안전거래 사이트 등 발견했을 때 등록하면 가장 전파가 빠른 곳

관련 기관의 신고는 처리하는데 최소 4일 ~ 최대 2주가 걸리기 때문에, 등록 즉시 이력이 올라가는 웹사이트에 등록하면 다른 사람들의 피해를 조금이나마 줄일 수 있다.

abuseipdb.com/

1

디지털 디톡싱, 사생활과 온라인 분리하기

leetekwoo @leetekwoo@hackers.pub

이 글은 디지털 디톡싱과 온라인 프라이버시에 대한 저자의 개인적인 경험과 생각을 담고 있습니다. 저자는 주의력 관리를 위해 불필요한 인터넷 사용을 줄이고 SNS 계정을 정리하며, 흩날려진 개인정보를 정리하는 과정을 공유합니다. 또한, 온라인에서 사생활을 보호하는 어려움을 느끼며 SNS나 익명 커뮤니티를 사용하지 않는 이유를 설명합니다. 타인이 자신의 일상에 미치는 영향에 예민하기 때문에 온라인 프라이버시를 중요하게 생각한다는 점을 강조합니다. 이 글은 디지털 세상에서 개인의 주의력과 프라이버시를 지키기 위한 고민을 엿볼 수 있게 합니다.

Read more →
6
5
5

leetekwoo replied to the below article:

2020년의 하스켈에 대한 내 생각

박준규 @curry@hackers.pub

이 글은 하스켈이 30주년을 맞이한 2020년, 하스켈의 발전 방향에 대한 개인적인 생각을 담고 있습니다. 저자는 하스켈이 프로그래밍 언어 연구와 실제 애플리케이션 개발이라는 두 가지 목표를 동시에 추구해왔지만, 이제는 소프트웨어 개발자에게 유용한 기능에 집중해야 한다고 주장합니다. 특히 복잡한 타입 시스템보다는 사용자 편의성을 높이는 방향으로 개선되어야 한다고 강조하며, 제네릭스 활용과 유용한 확장 기능 활성화를 예시로 제시합니다. 또한, 애플리케이션 아키텍처 측면에서 의존성 주입 컨테이너를 활용한 단순한 구조를 제안하며, 타입 안정성을 약간 희생하더라도 테스트를 통해 충분히 보완할 수 있다고 말합니다. 결국, 저자는 "심플 하스켈" 또는 "지루한 하스켈"을 통해 얻을 수 있는 코드의 명확성과 개발의 즐거움을 강조하며, 하스켈 커뮤니티가 초보자에게 더 쉽게 다가갈 수 있도록 노력해야 한다고 역설합니다. 이 글은 복잡한 이론적 탐구보다는 실용적인 개발에 초점을 맞춘 하스켈의 미래를 제시하며, 독자에게 균형 잡힌 시각을 제공합니다.

Read more →
15
2

스캠 케이스 스터디

leetekwoo @leetekwoo@hackers.pub

이 글은 인터넷에서 흔히 발생하는 스캠 시도에 대한 개인적인 경험을 공유하며, 특히 창작 활동을 하는 사람들에게 경각심을 일깨우는 것을 목표로 합니다. 작성자는 SNS를 통해 받은 "협업 제안"이 가짜 LinkedIn 프로필을 이용한 사칭임을 인지하고, 그 과정을 상세히 설명합니다. 팔로워가 없는 점, 메시지의 말투 등 수상한 점을 발견하고 스팸 신고를 한 경험을 통해, 인터넷 상의 제안에 대한 신중한 접근이 필요함을 강조합니다. 특히 A&R, 기획자, 스카우터 등을 사칭하여 기회를 미끼로 접근하는 사기에 주의해야 함을 당부하며, 창작 활동을 생계로 하는 사람들에게 이러한 스캠이 더욱 위험할 수 있다는 점을 지적합니다. 인터넷 제안 시 투명한 신분과 의사소통 채널의 중요성을 강조하며, 독자들에게 주의를 환기시키는 글입니다.

Read more →
5

저는 고민할 정도의 중요성이 있다면, 만나서 판단합니다. 믿을만한 회사같은 상대라도 다른 능동적인 루트(직접 전화 같은 것)로 한 번 더 확인합니다. 다른 확인 방법이 없다면, 믿지 않는 편입니다. 누구냐에 따른 예외는 있겠습니다. @leetekwoo

2
4

@leetekwoo 첫걸음이 어렵죠… 저도 일본 문화에는 아주 어릴 때부터 관심 있었는데, 일본어 학습을 시작한 건 서른 넘어서예요! 왜 더 일찍 배우지 않을까 후회가 많았답니다. ㅎㅎㅎ

한국어 화자 입장에서 일본어는 문법도 비슷하고 발음도 비교적 쉬운 편이라 노력에 비해 실력이 금방 느는 언어라고 생각합니다. 그래서 한국어 화자가 일본어를 안 배우면 좀 아깝다(?)는 생각도 들어요.

1
0

일본인 친구가 있어 일본어를 배우고 싶습니다. 일본 문화는 항상 관심이 많았지만, 요즘은 일본 음악을 많이 듣고 있습니다. 공부가 되길 바라는 마음에 가사도 찾아보고 있습니다.

3

leetekwoo replied to the below article:

How to pass the invisible

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

This post explores the enduring challenge in software programming of how to pass invisible contextual information, such as loggers or request contexts, through applications without cumbersome explicit parameter passing. It examines various approaches throughout history, including dynamic scoping, aspect-oriented programming (AOP), context variables, monads, and effect systems. Each method offers a unique solution, from the simplicity of dynamic scoping in early Lisp to the modularity of AOP and the type-safe encoding of effects in modern functional programming. The post highlights the trade-offs of each approach, such as the unpredictability of dynamic scoping or the complexity of monad transformers. It also touches on how context variables are used in modern asynchronous and parallel programming, as well as in UI frameworks like React. The author concludes by noting that the art of passing the invisible is an eternal theme in software programming, and this post provides valuable insights into the evolution and future directions of this critical aspect of software architecture.

Read more →
11
1
0
1
4

해킹뿐만 아니라 온라인에서의 사생활 침해 가능성에도 주의를 기울이고 있습니다. 구체적인 문제가 있는 것은 아니지만, 때때로 누군가의 시선을 느끼는 듯한 불편함이 있습니다. 그저 과한 우려이길 바라고 있습니다. 저는 타인의 사생활을 존중하고, 알지 않아도 될 일에 대해 함부로 개입하지 않으려 합니다.

0
2
1

@hollo @leetekwoo 제가 알고 있기로도 아직은 x86계열이 OS들의 지원이 가장 잘 되고, arm계열도 많이 지원하지만, 많은 부분의 하드웨어가 독점적이기도 한 애플 실리콘 맥(M시리즈)은 문제가 있습니다. 애플 실리콘 맥미니는 기본 가격이 애플답게 높은 편임에도 성능, 전력 소모면에서 장점이 크지만, 앞서 말한 부분의 제약을 감수 해야 합니다. 그래서 그냥 macOS를 그대로 쓰는 편이 많은걸로 압니다. 인텔 맥은 성능도 가격에 비해 별로 추천 할 만하지 못 하다고 생각하구요. 이야기 하신 목적을 주로 생각하면, 아직은 x86계열 CPU가 장착된 장비가 쉽고 저렴한 선택일 것이라고 생각합니다. 불과 몇년 전만 해도 rpi4(arm64)도 리눅스에서 제대로 지원이 안되어서, beta버전 배포판에 하드웨어 제어 SW도 누락되어서 직접 빌드하고 그랬거든요.

@perlmint @hollo 사실 가격도 중요한 요소이지요. 저렴한 서버용 컴퓨터들을 사서 직접 모든 과정을 한다면.. 과연 제가 할 수 있을까 싶습니다. 말씀해주신 실리콘 맥 미니 실용성이 인상 깊습니다. 상세히 알려주셔서 감사합니다 ☺️

3

주의: 프로그래머에게도 수학도에게도 쓸모 있지 않은 그저 생각 놀이로, 어제 모임에서 제가 떠들었던 잡담입니다.

튜링 완전한 프로그램은 따로 메모리를 두어 관리하며 돌아가는데, 람다 산법은 이런 메모리가 없는데도 불구하고, 튜링 완전이 할 수 있는 일은 모두 할 수 있다고 합니다. 왜 그럴 수 있는지, 시작 아이디어가 뭘까 생각해 봤습니다. (슬쩍 보기엔, 학문적으로 긴 여정이 있는데, 그 걸 모두 따라가기엔 벅찬 일이라, 절대 따라가고 싶진 않고, 그저 아이디어 정도만 알고 싶습니다.)

함수형에선, 정보를 "기억memory"하는 역할도 역시 함수가 담당합니다. 기억이 필요할 땐 함수 구조를 주어, 기억 공간을 만든다고 볼 수 있습니다. 함수 합성에서 다음 함수의 인자로 새로 바인딩하며 기억의 역할을 합니다. 애초 메모리 모델이 없는 게 아니라, 다른 구조로 메모리 모델을 구현했다고 볼 수 있는 것 아닌가 싶습니다. (이렇게 말하는 곳은 없습니다.)

람다 함수는, "따로 호출할 일이 없어 이름 없는 함수로 정의한다" 쯤으로 넘어가기엔, 숨어 있는 의미가 너무 큽니다. 분명, 이렇게 넘어갈 일이 아닌데, 역시나 친절히 설명해주는 자료를 아직은 못봤습니다. (많이 찾아 보 거나, 깊게 공부한 건 아니라서, 어딘가에는 있지 않을까 싶어요)

람다 함수로 만들어,

  • 실행 시점 제어
  • 함수 합성 체인 참여
  • 필요한 정보들을 모아 두는 단위
  • 외부와 소통하는 길을 만들어 둘 수 있고, ...

여기에 기억이라는 중요한 역할도 담당하게 합니다.

람다 산법은 매개 변수, 함수 몸체, 적용, 이렇게 3가지 요소만으로 모든 걸 해결합니다. 알론조 처치 아저씨는 어찌 이런 구조를 떠올렸을까 싶습니다. 애초에 위와 같은 식으로 볼 수 있는 함수 통찰의 눈이 먼저 있었던 상태에서 만든 거겠지요?

2
1
1
0
0
2
3
4
0
5
1