Promise 기반의 fetch 라이브러리의 최대 단점은, json으로 예상하고 parsing했는데, 오류가 생겨서 원문 text를 구해야하는 상황에서, 한 번 사용된 body라 다시 쓸 수 없다고한다.


그렇다.

서사라는 것은 시간의 흐름에 따라 떠오르는 생각을 표현하는 것이다. 그것이 말이 되기도하고 말이 되지 않기도 한다. 생각이 몇 단어 혹은 몇 장면으로 매핑이 되는 정보 손실은 일어 날 수 밖에 없다. 그럼에도 불구하고 두 개의 지점에서 (뇌 혹은 데이터 저장소) 같은 '것'을 공유하기 위해서는 어떤 식으로든 서사적으로 표현된다. 손실을 최소화하는 방향으로 서로가 합의하게 되면서 시간을 단축할 수 있고, 시간 효율성을 높일 수 있다.

무작위 시도와 효율적인 것의 취사 선택의 누적은 자연의 진화에서 일어 났듯이, 매 일상에서 반복되는 것이며, 모든 독립 개체간에 발생하는 것이다.

인간이 꿈을 꾼다는 것은 일종의 무작위적인 시도의 결과이다. 그나마 근사하게 전달의 효율이 높은 방향에서의 전개를 선택했기 때문에 뭔가 말이 되는듯 되지 않는 것이다. 이런 무작위의 말도 되기도하고 되지않기도하는 꿈이 뇌리에서 사라진다는 것은 때론 원치않는 상황이기도하다. 하지만 취사선택에 빠른 두뇌 신경망은 중요도에 대한 판단을 심각하게하지 않으며, 곧 망각하게 된다. 꿈을 오래 간직하고 싶다면 기록을 하는 정도의 영구 보존 영역으로 옮겨야한다.

말이 되는 장면만 최대한 선택해서 말이 되는 표현으로 최대한 기록해야한다.

퇴근, 변명, 얼굴

딸에게 해주고 싶은 말이 하나 떠 올랐다.

친하려고 다가오는 사람 중에서 피해야 할 사람이 둘 있는데, 하나는 위선자이며 다른 하나는 자기가 바보인지 모르는 사람이다.

물론 그 다가오는 사람이 남자라 가정하고 생각난 말인데, 이 말은 반대입장으로 누군가에게 다가갈 때 자신에게도 적용할 만한 말이다.

이제 곧 스무살이 되면(2년뒤) 자취시키려 내보내겠다는 말을 하니 제발 그렇게 해달라는 말을 듣고나서, 사무실로 출근하고 나서도 여운이 남아 떠오른 생각이다.

생각하면 우습기는 하지만, 자취하는 젊은 여인에 대한 남자들의 환상을 알려줘야하지 않나 싶어서다. 

하나는 문제가 생길 것이 뻔한 결론으로 진행 될 것같고 다른 하나는 아무 일도 없고 귀찮은(?) 존재가 되기 싶기 때문에라는 얕은 경험의 결과이다.

그래도 될 수 있으면, 뭔가 솔직한 사이, 좀 더 건설적인 주제가 오고 갈 만한 사람을 만났으면 좋겠고, 또한 딸도 그런 사람이 되길 바라는 마음에서랄까.

.

.

.

이 생각 끝에 갑자기 이종학이 떠 올랐다. 별 이유가 없이. (피식) 언제 술 한 잔 해야지.

한동안 블로그를 하루에 하나씩은 쓰려고 노력한 적이 있었는데, 어느 순간에서부터 멈추게 됐다.

이제는 그 이유마저 희미해진채 습관하나를 잃어 버린채 살고 있다. 


문득 나도 모르게 자투리 시간마저 쓸어 담아 어딘가로 버리며 산다. 

틈틈이 쉬지 않고 뭔가를 본다. 짬짬이 쉬지 않고 뭔가를 듣는다.

말하기 쓰기보다 듣기와 보기를 반복하는 것은 내면이 허전하기 때문이다.


평생을 배우다가 사라지는 아무 의미 없는 존재가 되고 싶지는 않다.

뭔가를 어설프게 실행하는 아마추어가 되고 싶지도 않다.


감정에 솔직할 수도 없고,

생각대로 살 수도 없고,

눈치보며 살고 싶진 않고,

마음대로 살 수도 없다.


조급한 여유로움이 정신을 휘감고

부러워하는 나태함이 마음을 억누른다.


生의 列車는 멀고 먼 消失點을 향해 끝내는 사라지려고 달려간다.

노래하는 고속도로를 지날 때 언젠가는 한 번 정리해봐야겠다고 도로의 홈 간격에 대한 생각.

일단 속도마다 다른 음이 날테니까 기준되는 속도를 100km/h로 정해보자.

100km/h는 초속으로 100*1000m/3600sec 이므로 1000/36 m/s = 27.7777 m/s


100km/h = 27.7777 m/s

시속 100km를 달리면 1초에 28m를 간다.


기준음 '라'는 진동수가 440Hz라는 것은 그냥 알고 있다. 즉, 1초에 440번 두드리면 '라' 소리가 난다.

옥타브가 하나 올라가면 진동수가 배가 된다. 즉 한 옥타브 높은 '라'는 880Hz다.

한 옥타브는 12개의 반음이 있다. 

평균율 음계에서의 음의 증가는 주파수를 log를 취했을 때 일정한 간격으로 증가하는 것을 알고 있다.

즉,


880Hz = 2 * 440Hz

log 880 = log (2 * 440) = log 2 + log 440

한 옥타브가 올라가면 주파수의 로그값은 log 2 만큼의 증가가 일어난다. 그러면 12개 들어 있으므로 하나의 반음은  log2의 1/12만큼 증가한다.


피아노 건반을 보면 도는 라부터 반음 3개를 더한만큼의 주파수를 가지게 된다. 따라서, 도의 주파수를 X라고 한다면


log X = log 2 * (3 / 12) + log 440

X = 10 ^ (log 2 * (3 / 12) + log 440)

X = 10 ^ (log 2 * (3 / 12)) * 440 = 523.2511 (Hz)


즉, 1초에 523번 두드리면 '도' 음이 난다.
만약 시속 100km로 달린다면 1초에 28m (27.7777m)를 간다.
28Hz의 소리를 낸다면, 1m 마다 한번씩 홈을 내면 되는 것이고,
280Hz라고 한다면 0.1m (10cm)마다 한번씩 홈을 내면 된다.
즉 계산식을 만들자면, 100km/h로 달릴때는,
28m 혹은 2800cm를 원하는 진동수로 나누면 될 것 같다.


만약 도, 레, 미, 파, 솔을 연주한다면, 


도 = 라 + 반음 3개

레 = 라 + 반음 5개

미 = 라 + 반음 7개

파 = 라 + 반음 8개

솔 = 라 + 반음 10개


이므로, 각각의 Hz를 구하면

10 ^ (log 2 * (3 / 12)) * 440 = 523.2511

10 ^ (log 2 * (5 / 12)) * 440 = 587.3295

10 ^ (log 2 * (7 / 12)) * 440 = 659.2551

10 ^ (log 2 * (8 / 12)) * 440 =  698.4564

10 ^ (log 2 * (10 / 12)) * 440 = 783.9908


각각을 시속 100km/h인 초속 27.7777m/s, (2777 cm/s)에 대해서 나누면

2777 / 523.2511 = 5.3 cm (도)

2777 / 587.3295 = 4.7 cm (레)

2777 / 659.2551 = 4.2 cm (미)

2777 / 698.4564 = 4.0 cm (파)

2777 / 783.9908 = 3.5 cm (솔)


간격으로 홈을 내면 연주할 수 있다. 그리고 28m가 1초이므로 대략 9m 홈을 내면 는 0.3초정도 지속 될 것 같다.



리눅스의 실행프로세스의 환경변수는 /proc 파일시스템을 통해서 알 수 있다. 예를 들어 pid 1000번의 환경변수는 


cat /proc/1000/environ


로 확인 할 수 있다. 하지만, 이 결과는 변수간 구분이 잘 확인이 안된다. 변수간 구분을 '\0'으로 분리시켜 놓았기 때문이다. 실제 프로세스 메모리에서도 '\0'으로 구분되어 있고 이를 그대로 화면에 출력하는 것이다. 다음을 보자.


cat /proc/1000/environ | xargs -0 -n 1 echo


xargs 는 표준 입력을 명령의 argument로 전달해 실행해주는 함수인데, 이때 기본값은 공백을 사용하여 표준입력을 분리한다. 하지만 위와 같이 '-0' (zero) 옵션을 주면 구분자를 '\0'으로 하라는 뜻이며, '-n 1' 을 주어 하나의 인자마다 하나의 명령을 실행(여기서는 echo)하라는 의미가 된다.


사족으로 xargs의 -0 옵션은 find 의 -print0 옵션과 같이 사용하여 출력결과를 실행시에 적절하게 처리하는데 사용한다.

vimscript로 실행 파일을 만든다면, python이 흔히 그러하든 #!을 맨 앞에 두어


#!/usr/bin/env vimscript


echo 10 + 20


이런 식이 될 수 있다. 그럼 vimscript는 기존의 vim을 이용하도록 만들 수 있는데, 몇가지 옵션을 줘야한다.


  • Swap file (.sw*) 파일을 만들지 말 것 (-n)
  • 고전의 vi 모드로 동작하지 말 것 (-N)
  • Visual mode가 아닌 ex 모드로 시작할 것 (-E)
  • 시작시 조금 조용하게 시작할 것 (-s)
  • .viminfo 파일을 읽지 말 것 (-i NONE)
  • vim option 중 verbose 는 1로 두어 출력을 완전 끄지 말 것 (-c 'let &verbose = 1')
  • 본문을 source 하여 실행 할 것 (-c 'source %')
  • 맨 마지막에 개행을 두고 종료할 것 (-c 'echo ""', -c 'qa!')

#!/bin/bash


exec /usr/bin/env vim -n -N -E -e -s -i NONE -c 'let &verbose=1' -c 'source %' -c 'echo ""' -c 'qa!' -- $@


위와 같이 두 줄짜리 ~/bin/vimscript 파일을 만들어 실행 속성을 주면 되겠다.

iOS Simulator를 통해서 로그메시지를 보다가 다음과 같은 것을 만나면, Spam 성 로그 유발자로 지목되어 더이상 로그메시지를 화면에 표시 안해준다는 뜻이다.


LOG MESSAGE QUOTA EXCEEDED - SOME MESSAGES FROM THIS PROCESS HAVE BEEN DISCARDED


간단히 Simulator를 재시작하자.


  1. 소액결제 2017.12.04 06:37 신고

    감사합니다 ~

Galileo.S02E11.smi

...

http://entropymine.com/jason/lr/misc/controls.html 에 있는 일부를 옮겨보면,

  • 이동 멈춤: Space
  • 자살: Ctrl-A
  • 끝: Ctrl-R
  • 일시정지: Esc
  • 다음단계로 넘김: Ctrl-U, Ctrl-6
  • 소리 끔/켬: Ctrl-S
  • 게임 속도 올림: -
  • 게임 속도 내림: =

게임은 Javascript로 구현한 Apple2 가상머신으로 할 수 있...

https://www.scullinsteel.com/apple2/#lode_runner

+ Recent posts