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

일단 속도마다 다른 음이 날테니까 기준되는 속도를 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

간단히 메모한다. DNS 323 Sensor는 온도센서와 FAN Speed Sensor가 있다.


온도는


/sys/class/hwmon/hwmon1/device/temp1_input


FAN Speed는


/sys/class/hwmon/hwmon0/device/fan1_input

으로 알 수 있다.


온도값은 temp1_input 값의 1/1000 이며, 단위는 섭씨이다.

FAN Speed는 RPM을 나타낸다.

  1. june8th 2017.08.11 07:53 신고

    이게 아직도 돌아갑니까 나는 꺼 놨어요.

  2. Coolen 2017.08.11 07:55 신고

    집에 NAS는 하나 있어야해서 어떻게든 돌리고있는 중. 갑자기 쉘이 필요할 때도 있으므로...

    Alt-f 로 덮어썼음. 원래 펌웨어는 기억도안나네.

난, 이번 문재인 정권이 과거 정권에서 있었던 공무원 혹은 극우들이 저지른 소리없이 다 들춰내 도려내는 모습에 묘한 쾌감을 느낀다.

LALA Land, Arrivals


두 영화에서 주인공(여자)들은 모두 프리우스를 탄다.

제니퍼 로렌스.

미스틱...


+ Recent posts