minhoryang

@minhoryang@hackers.pub · 16 following · 18 followers

your metaverse plumber and firefighter | DISCLAIMER - 소속한 집단의 의견을 대표하지 않고, 생각은 언제나 바뀔 수 있음

twitter(x)
@__minhoryang__
keyoxide
keyoxide.org/minhoryang@gmail.com
keybase
minhoryang

오늘 같은 날 생각하기 좋은 3-2-1 Backup Strategy를 소개합니다.

  1. 백업을 할 땐 최소 3번 하되,
  2. 최소 2가지 방식의 매체에 나눠 보관하고,
  3. 그중에 1개 본은 꼭 offline 상태로 or 물리적으로 분리된 상태로 두라는 것입니다. 물론 상황에 맞게 도입을 해야겠지만요.

FYI, 저는 처음 배울 때 3-3-3(물리적 분리)로 배웠는데, 사회에선 3-2-1을 많이 말하시네요. (3-2-1-1-0도 있고요.) https://www.backblaze.com/blog/whats-the-diff-3-2-1-vs-3-2-1-1-0-vs-4-3-2/

5
0
0

ChatGPT가 지식을 틀리게 변형하여 적용하고 있을 경우, 이를 자기가 눈치채지 못할것 같다면 ChatGPT를 사용해서는 안됩니다.

2

시간이네요. AI/Blockchain/Infra/Metaverse가 뒤섞인 영역에서의 소방관이자 해결사를 맡고 있습니다. 불도 끄고, 불이다! 도 외치고, 꺼진 불도 발로 차보고, 그러다 보니 10년이 지났습니다ㅎㅎ 다들 불조심하시고 재밌어 보이는 거 있으면 알려주세요~ 다들 잘 보고있습니다. 감사합니다.

5
0

https://n.news.naver.com/mnews/hotissue/article/092/0002375083?cid=1087940 | “KT는 2021년부터 IMSI 암호화 기능이 적용된 5G USIM을 도입했고, LG유플러스는 PUF(물리적 복제 불가능 함수) 기반의 고보안 유심을 상용화했다.“ 이게 DB 내에 암호화 되어있다는걸 말하는게 아니잖아요? 일부 도입이지 전체도입이 아니고, 심지어 사용자가 해당 유심을 비싼값주고 사야할텐데? | “국제 표준도 이와 관련한 최소한의 보안을 요구하고 있다. 5G SA 환경에서는 가입자 식별정보(SUPI)를 암호화된 형태(SUCI)로 전송해야 한다는 규정이 3GPP TS 33.501 표준에 명시돼 있다. 이는 LTE 시절 IMSI가 평문으로 전송되던 보안 취약점을 개선하기 위한 조치” 3사 모두 안했다고 들리는데? 한국에 5G SA가 어딨어...? (라고 말하고 검색해봤더니 KT는 99% 도입했다는 기사를 perplexity가 찾아줌.)

0
1
0

최근에 마주친 문제/주제들이 우연히 다들 '양방향' 이란 개념과 관련이 있다. 아래는 거기 관련된 러프/나이브한 생각들이다.

세션 타입

이건 노골적인 예시인데, 말그대로 서버/클라가 양방향으로 통신하는걸 기술하게 해준다.

Propagator

대부분의 프로그래밍 언어에서 x = 3 + 2과 같은 우변을 계산해서 좌변의 기호에 할당하는 기능을 제공한다.

그런데 3 = x + 2 라고 썼을때 x = 1을 해주는 언어는 거~의 없다. 이런 기능이 왜 필요하냐는 의문이 들 수 있지만, 이런 방식을 간접적으로 다들 매일 쓰고 있다. 예컨데 패키지 버전 관리를 생각해보자.

foo: >= 2.0.0
bar: =< 3.1.0 

이런 식의 설정 파일을 만지작 거릴텐데, 사실 foo >= 2.0.0, bar =< 3.1.0, ... 같은 부등식을 기술하고 있는 셈이다. 여기서 barfoo를 의존성으로 가지면 문제가 좀더 복잡해진다. 패키지 매니저는 조건을 만족하는 foo, bar의 값을 알아서 계산해준다.

요지는, 구체적인 값 대신에 조건을 나열하는 방식은 이미 다들 쓰고 있다는 얘기다. 그리고 패키지 매니징이 아닌 다른 문제에서도 이 방식이 좋은 경우는 흔하지만, 조건을 풀어서 값을 구하는 부분을 짜는게 까다로워서 도입하기 쉽지 않다.

여기서 양방향과 관련된 부분은 좌변과 우변의 정보 교환이다. x = 3 + 2x <= 3 + 2로, 우변의 정보가 일방적으로 좌변으로 간다고 볼수 있다. 반면 3 = x + 2는 좌변의 정보가 우변으로 가야한다.

x + 1 = y - 3란 예시를 보자. 이 식만 가지고는 x, y의 값을 구할 수 없다. 하지만 x = 3이란 정보가 들어오면 y = 4란걸 알 수 있고, 반대로 y = 5란 정보가 들어오면 x = 1인걸 알 수 있다. 이런 양방향 정보교환을 기술할수 있게 해주는것이 Propagator 패턴이다. Propagator 자체도 세션 타입과 뭔가 관련이 있을거 같은데, 뭐 찾아보면 오히려 서로 관련 없는게 없으니 일단 패쓰.

프로그래밍에서의 타입

모든 프로그래밍 언어는 메타프로그래밍이 가능하고, 대부분의 프로그래밍 언어는 메타프로그래밍을 할 자격이 없다. 나는 그중에서도 특히 자격이 없는 언어인 Nix로 메타프로그래밍을 하는 상황에 쳐해있다. Nix의 특성상 나뿐 아니라 다른 많은 Nix 유저들이 자연스레 이 토끼굴에 빠진다.

Nix의 에러메시지는 읽기가 참 힘든데, 기능이 매우 부족한 언어에다가 여러 개념을 새로 구현해서 얹어놔가지고, 긴 스택트레이스 중에 내가 관심있는 부분은 끝의 일부인데 거기까지의 흐름을 따라가려면 앞의 상관없는 코드도 대충은 이해해야한다. 이게 양방향 정보 교환이 잘 안되고 있는 부분이다.

알다시피 함수 자체는 단방향 정보이다. 스택트레이스는 함수를 통한 단방향 정보의 전달 과정을 보여준다. 그리고 개발자는 그걸 반대로 뒤집은 형태를 분석해야 하는 상황에 놓인다. 이게 개발자 <=> 코드 의 양방향 정보교환의 수단이 제공되지 않아서 생기는 문제다.

개발자 <=> 코드의 양방향 정보코드의 대표적인 수단은 타입이다. 타입은 코드가 스스로를 변호하고, 개발자의 잘못된 변경으로부터 방어하도록 해준다. 대부분의 언어가 메타프로그래밍을 할 자격이 없다는 얘기가, 코드 생성이라는 개발자 -> 코드의 단방향 정보전달만 기술하고 반대로 코드 -> 개발자 방향의 정보를 모조리 잃어버리는 형태로 이루어지기 때문이다.

그런데 타입안전한 메타프로그래밍은 그자체로 어려운 문제이고 아직은 연구주제에 가깝다고 알고있다. 혹시 그냥 개발자에게 뭔가 알려줄수있는 방법 자체를 primitive로 가질 순 없나? 그게 결국 타입이랑 똑같은 것일까? 여기에 TypeScript에서의(역시!) 무근본한 트릭이 소개되어있는데, 약간 관련있을지도 모른다.

7
0
0
1
0
0

무언가가 프로그래머블하다는 것은 문제가 생겼을때 디버깅을 해야한단걸 의미한다. 전세계에 프로그래밍을 좋아하는 사람들은 수백만명 정도 있고, 디버깅을 좋아하는 사람은 정확히 0명 있다.

  • Nix의 개발새발 빌드 에러메시지를 읽고 있는 누군가
6
2

캘린더 이벤트로 변환이 가능한 데이터들 (예약 서비스의 예약 내역, 캘린더 양식이 아니어서 변환이 필요한 데이터, 매우 낮은 에러 레이트 리밋(?) 같은 이유로 인하여 일반적인 캘린더 동기화에 넣기 불안한 출처)를 모아다가 주로 사용하는 캘린더 서비스로 보내주는 서비스를 만들려고 합니다.

2
1
2

차별금지법은, 이제 반대 주체가 기독교회 정도만 남은 상황이라 설득이 아닌 결단이 필요한 단계라고 본다. 호주제, 동성동본 금혼이 결사 반대하던 유림을 설득한 후 폐지되었나? 아니다. 이제 새로운 세대가 저 둘을 봉건시대에나 통할 저 옛날 이야기라고 보듯이, 차별금지법도 없는 날들이 야만적이었다고 당연히 생각하는 시대가 올 것이다.

필요한 건 용기와 결단 뿐이다. 국회의 결단을 촉구한다.

3
4

For example, reading a dump of plain text is 4x faster compared to iTerm stdio에 의존하는 unix philosophy 를 좋아하긴 하지만, 그걸 그 속도로 바로 stdout에 빼서 보는건 필요가 없지않나... ? 왜 다들 이쪽으로 경쟁을 하지? 동체시력경쟁은 아닐거 아냐?

1
0
0

그럼 precomputation도 가능하지 않아? 라고 생각하자마자 떠오르는 "Flight data is updated daily or occasionally more frequently in the case of unexpected cancellations. Prices are updated about ten times a day, and seat availability continuously."

0

그럼 precomputation도 가능하지 않아? 라고 생각하자마자 떠오르는 "Flight data is updated daily or occasionally more frequently in the case of unexpected cancellations. Prices are updated about ten times a day, and seat availability continuously."

0

"For a travel query, find the best solution: A set of flights that satisfies the travel query, A set of fares that covers all the flights exactly once, A partition of the fares into priceable units. For each fare, solution must satisfy fare's rules."

0

"An analogy is that if fares are atoms, priceable units are the molecules used to build complete tickets. It's not entirely correct, but a good working intuition is that a priceable unit is the smallest group of flights and fares that could be sold on their own." "Fare rules are expressed in an extremely complicated and baroque electronic language, built from hundreds of parameterized predicates joined by sometimes bizarre logical combinators"

"For a travel query, find the best solution: A set of flights that satisfies the travel query, A set of fares that covers all the flights exactly once, A partition of the fares into priceable units. For each fare, solution must satisfy fare's rules."

0
0

터미널에 대해 궁금한 점이 생겨 자료를 찾다 보니 Windows Console Team에서 연재한 시리즈물을 발견했는데, 그 내용이 참 유익했다.

Windows Command-Line Series:

  1. Backgrounder
  2. The Evolution of the Windows Command-Line
  3. Inside the Windows Console
  4. Introducing the Windows Pseudo Console (ConPTY)
  5. Unicode and UTF-8 Output Text Buffer

콘솔 앱이 터미널과 입출력을 주고 받는 것을 공기처럼 당연하다고 생각했는데, 그 과정에는 커서 이동이나 개행 등과 같은 제어 문자를 렌더링하거나 SIGINT 같은 시그널을 발생시켜주는 처리가 존재했다. 터미널과 콘솔 앱이 서로 분리된 구조가 과거 물리 터미널로부터 비롯된 것도 흥미로웠고 말이다. 사실 이해 못 한 부분이 아직 많아서 다음에 또 읽어볼 생각이다.

6
0
0
0

어 hackers.pub과 hollo.social 은 다른건가? 목적도 다른가보구나?!

0
0
0
0
  • Jeff Dean이 소개한, Carl de Marcken의 Computational Complexity of Air Travel Planning PDF 읽기. 읽는중인데 정말 재밌다. https://x.com/JeffDean/status/1913693986771906613
  • 다가오는 Coldplay 콘서트를 같이 가기 위한 Itinerary짜기 (출발새서 점심먹고 픽업하고 주차장찾아서 입차하고 저녁먹고 공연보고 출차하고 도착하기인데, 2명으로 시작해서 3명과 4명이 되었다가 다시 3명과 2명이 되어야 하는, 고객*이 원하는 조건을 만족해야하는)

"An analogy is that if fares are atoms, priceable units are the molecules used to build complete tickets. It's not entirely correct, but a good working intuition is that a priceable unit is the smallest group of flights and fares that could be sold on their own." "Fare rules are expressed in an extremely complicated and baroque electronic language, built from hundreds of parameterized predicates joined by sometimes bizarre logical combinators"

0
  • Jeff Dean이 소개한, Carl de Marcken의 Computational Complexity of Air Travel Planning PDF 읽기. 읽는중인데 정말 재밌다. https://x.com/JeffDean/status/1913693986771906613
  • 다가오는 Coldplay 콘서트를 같이 가기 위한 Itinerary짜기 (출발새서 점심먹고 픽업하고 주차장찾아서 입차하고 저녁먹고 공연보고 출차하고 도착하기인데, 2명으로 시작해서 3명과 4명이 되었다가 다시 3명과 2명이 되어야 하는, 고객*이 원하는 조건을 만족해야하는)
0
0
0

alumni들과 캠핑을 다녀올거구요. 돌아오는날 저녁엔 커피챗이 하나 잡혀있습니다.

2
1

Managed라고 말하는 제품들도 조금만 더 빌딩블록을 쌓다보면, 업그레이드할 때 Unmanaged 느낌 나더라구요. 무중단을 위한 스케줄러가 중단될 위기에 처했을 때는 K8s가 미운데, 그래도 또 이게 없다면 얼마나 많은 중단을 겪었을까 생각하면서 넘깁니다.

2