익숙한 공간의 어색한 시간, 어색한 공간의 익숙한 시간.

그렇게 오래되다보니,

시간의 문제인지 공간의 문제인지 어쨌거나 익숙해졌다.


그냥 12월 거실 창가의 햇살이 좋다.

케냐AA와 예가체프 반반 블렌딩.

운동후 노곤한 삭신에 한 잔 들어오니,

여기가 그냥 익숙한 공간이구나.


매일이 오늘같이

오늘은 그 매일같이

무기력과 친구와 원수를 맺고,

전체가 하나인듯, 하나가 전체인듯 사라져간다.

Javascript에서 하나의 배열에서 다른 배열로 원소들을 옮기는 것은 내장 명령어로 구현되어 있지 않다. 따라서 구현을 직접해야하는데, 다음과 같이 한다. src 배열에서 dest 배열에 원소를 추가하면서 옮긴다고 하면,



Array.prototype.splice.bind(dest,dest.length,0).apply(dest, src.splice(0));


splice 함수는 배열의 내용을 자르는 것 뿐 아니라 새로운 원소들로 대치하는 것도 가능하다.


splice(start-index, [length, [insert element1, [insert element2 ...]]])


와 같은 방식으로 사용한다. length가 생략되면 배열 끝까지를 나타내므로


src.splice(0)


으로 모든 원소를 잘라낸 뒤, 


dest.splice( dest.length, 0, element1, element2, element3, ...)


로 element1, element2, element3... 을 추가하는 방법을 이용한다.


원소의 길이가 정해지지 않았으므로 apply를 사용해서 임의의 길이를 넘기는 방법을 이용한다. (apply는 첫번째 인자로 this 객체를 받고 두번째 인자로 arguments 를 받는다.)


bind 명령은 this 와 argument를 미리 고정하는 함수를 되돌리므로 apply에 넘기기 전에 dest, length, 0을 bind하여 맨 마지막에 뭔가를 추가하는 함수로 만들어준다.


자세한 설명은 여기까지.


JSON의 빈 중괄호는 비어 있는 오브젝트를 나타낼 때 사용한다. 비어 있는 오브젝트, 이것은 기술적으로는 Key:Value 쌍을 저장할 수 있는 저장소에 어떤 Key도 있지 않다라는 말인데, 단순한 기술이지만 이것은 우주를 만들기 위한 첫번째 작업이다.


Key:Value 쌍이란 마치 사전(Dictionary)과 같아서 표제어와 그에 대한 값과 같은 류의 쌍을 나타낼 때 쓰인다. 예를 들면 Name:Coolengineer 와 같은 표현은 Key:Value 형식을 가지고 있다. 오브젝트란 사실 그 내부에 이런 쌍을 여럿 두고 있는 것인데, 예를 들면 아이폰이라는 오브젝트는 그 사양 설명서를 보면 Key:Value의 집합으로 되어 있다.


빈 오브젝트는 무엇이든 넣을 수 있기 때문에 사실상 World가 될 수 있다. 빈 오브젝트는 빈 중괄호로 나타낸다.

리눅스는 주로 까만 화면의 터미널로 사용하지만, 가끔은 X Window 응용프로그램을 사용해야할 때가 있다. (xcalc 랄지...) 난 리눅스를 데스크탑으로 사용하지 않으므로, X System 전체를 설치하지 않는다. 이런 상황을 해결하기 위해서 맥북에 X Window를 설치하고 ssh X portforwarding을 하면 되는데, 다음과 같은 방법으로 한다.

Linux 에서

1. sshd의 X11 포트포워딩을 허용한다.

$ sudo vim /etc/ssh/sshd_config

확인!


X11Forwarding yes

설정 파일 내용중 X11Forwarding yes 가 아니라면 고쳐주고 sshd를 재시작한다. 요즘 systemctl로 관리하므로,

systemctl restart sshd

MacOSX에서

1. X Window를 설치한다.

$ brew cask install xquartz

2. XQuartz의 tcp 접속을 허용한다.

$ defaults write org.macosforge.xquartz.X11 nolisten_tcp 0

3. DISPLAY 환경 변수를 설정하여 맥 터미널에서도 쉽게 접속할 수 있도록 한다.

export DISPLAY=:0

4. 접속!

$ ssh -X targethost




센서로부터 측정되는 데이터는 전압,전류,저항 값들이다. 그 값을 온도, 기압, 광량, 풍속 등에 매핑하여 각종 의미를 부여한다.

어느 한 순간에 모든 센서의 데이터를 측정한다고 해보자. 이것을 하나의 프레임이라 정한다면 하나의 프레임은 동일 시간대의 모든 센서의 값의 모음이다.

만약 프레임을 벡터로 나타낸다면, (현재 시각, 온도, 습도, GPS 위도, GPS 경도, 빛의 세기, 지구 자기) 이런 식으로 하나의 벡터는 하나의 시간에 표현할 수 있는 모든 데이터의 집합으로 나타낼 수 있다.

또한 만약 1초에 100번의 측정이 일어난다면 저 벡터가 1초에 100개가 생성된다고 할 수 있겠다. 조금 더 나아가서 각 센서 마다 측정되는 주기가 다르다면 어떤 데이터는 비어 있을 수 있는데 이것은 연속량이라고 가정했을 때 대략 측정되는 중간 값을 추정하면 해당 시각의 값을 추정하여 얻을 수 있다. (인터폴레이션, 혹은 보간 이라는 방법으로 알려져있다)

이런 데이터를 저장할 수 있는 가장 좋은 형식은 어쩌면 멀티미디어 파일 아닐까? mkv, mp4 등의 컨테이너들은 내부에 여러 채널을 두고 있다. 또한 각 데이터들은 시간의 흐름에 따른 데이터를 저장하기에도 충분하다.

시간 흐름에 따른 데이터를 적절한 codec을 두어 저장한다면, 굳이 보간법을 이용하여 추정하여 기록하지 않아도 측정 데이터만 넣어두고 codec을 이용하여 특정시간에서의 값을 추출할 수 있게 된다.

이도 저도 아니면, 평면 이미지의 흐름을 저장하는 데이터만으로도 가능하다. 이미지의 각 점을 특정 센서의 측정값으로 저장하면 640x480 짜리 동영상은 30만개나 되는 센서의 흐름을 표현할 수 있기 때문이다.

노회찬의원의 죽음을 애도하며.

오늘 스스로 목숨을 끊으셨다는 말을 듣고, 한동안 충격이 가시지 않았다. 아마 애정의 정도가 강한 공인이었기 때문에 더욱 그러했던 것 같다. 하루 종일 지인들의 애도와 여러 또 다른 진보지식인들의 추모의 글 혹은 정의당원들의 글들을 보면서, 심정적으로 지지했던 많은 사람들의 감정이 무너져 내렸음을 보게 되었다.

나 또한 그러하다. 무슨 말을 더 할 수 있을까. 아무리 그가 잘못했을지라도 그간 내가 지지해 온 사람이라는 이유만으로 그 잘못의 크기보다 기대의 크기가 더 크기 때문에 안타깝다.

그 동안 내가 좋아하는, 심정적 지지를 하는 사람들의 잘못에 대해 어떻게 볼 것인가에 대한 생각을 이 기회에 좀 더 해야겠다. 잘못을 인지하는 순간 내면에서는 일종의 방어기제가 작동한다. 믿어온 대상으로부터 상처 받지 않기 위해서, 면죄부를 주고 일상을 회복하는 것을 보아야 내 내면의 충격이 완화되기 때문에 그런 것이다.

우리는 노 의원에게도 기회를 얼마든 줄 수 있었다. 그의 지지자들 중에 반성하는 모습에도 불구하고 기회를 박탈할 사람이 얼마나 될까. 아마 반대편에 있는 사람들은 끊임없이 이용하려들겠지만, 기회가 될 때마다 사과하고 진정성있는 모습을 계속 보이면 그간의 쌓아온 신뢰를 저버리지는 않을 것이다.

실수하지 않는 인간은 없다. 다만 비겁한 인간만 있을 뿐이다. 내가 잘못의 당사자가 되었을 때, 난 비겁하지 않을 수 있을까 반문해야한다. 타인의 시선이 내 인생의 전부인 것처럼 살다가 돌이킬 수 없는 결정을 하지는 말아야한다.

난, 오늘 그냥 당신의 선택에 대해 계속 반문하고 싶다. 꼭 선택을 그렇게 하셔야만 했느냐. 잘못의 당사자가 된 것이 그렇게 견딜 수 없으셨냐. 당신은 늘 유쾌하게 호통할 수 있는 사람아니었느냐. 왜 당신에게 내리는 선택은 그렇게 가혹하셨느냐.

오늘을 잊을 것같아 오늘을 박제해 둔다.



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


그렇다.

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

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

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

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

퇴근, 변명, 얼굴

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

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

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

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

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

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

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

.

.

.

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

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

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


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

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

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


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

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


감정에 솔직할 수도 없고,

생각대로 살 수도 없고,

눈치보며 살고 싶진 않고,

마음대로 살 수도 없다.


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

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


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

+ Recent posts