그 여름 가장 조용한 바다.

시게루(마키 쿠로우도 분). 주인공으로 쓸만한 이름이다. 머리가 곱슬이다. 황정민을 닯았다.

서핑을 한다.

여주는 박..모씨를 닯았다.

개연성 없는 오바. 일본 영화의 애니메이션 스러움.

서핑은 초속5cm에서 나오는 에피소드 3번이 인상 갚었는데...

영화는 2004년 개봉인데, 여기나오는 복장은 거의 써니 수준이다.

서핑보드 8600엔 대략 90만원

12000불짜리 서핑 보드를 산다.

일본 버스의 자동문이나, 내림버튼, 뒷문에 붙어 있는 백미러, 한국것과 비슷하구나. 출구는 반대겠지만.


그렇게 열심히 달렸는데, 땀 좀 내주지.

여자는 벙어리인가...

둘 다 청각장애인인가?

...



음악감독 히사이시 조. 바로 그~! 감독이라고!



저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

bash 에서 yaml 파일을 해석해서, 환경변수로 설정해주는 간단한 코드입니다.


예를 들어, setting.yaml 이라는 파일이 있을 때

default:

    mysql:

        host: localhost

        port: 3306

        username: test

    redis:

        host: localhost

        port: 1122

test:

    mysql:

        host: remote.example.net

        port: 3306

        username: test


위와 같은 파일을 해석하고 싶을 때, 다음과 같은 방식으로 사용합니다.

#!/bin/bash


YAML=settings.yaml ENV=default source parse_yaml.sh


echo $mysql_host

echo $mysql_port

echo $mysql_username

최상위 객체를 ENV에 넘겨주면, 각 객체를 "_"로 연결하여 환경변수로 만들어 줍니다. 자세한 내용은 코드를 보시기 바랍니다. 끝!

$ cat parse_yaml.sh

# Copyright 2016 By Hojin Choi
# You should source this file as "YAML=../config/settings.yaml source parse_yaml.sh"

if test -z "YAML"; then
	echo "YAML is not set"
	exit 1
fi

if test -z "$LEADSPACE"; then
	LEADSPACE="    "
fi
if test -z "$FIELDSP"; then
	FIELDSP="_"
fi

if test -z "$ENV"; then
	ENV="default"
fi

TMPSH="/tmp/tmp.$$.sh"

#Remove white space from IFS, we use only new line character
lastdepth="0"
while IFS="\n" read line
do
	depth=`echo "$line" | sed -e "s;$LEADSPACE;@;g" | sed -r -e 's;^(@*).*;\\1;' | wc -c`
	read k v <<<"$line"
	k=$(echo $k| tr -d ':')
	keys[$depth]="$k"
	if test "$lastdepth" -ne "$depth"; then
		lastdepth=$depth
	fi
	unset keys[$(($lastdepth+1))]
	unset keys[$(($lastdepth+2))]
	unset keys[$(($lastdepth+3))]
	unset keys[$(($lastdepth+4))]
	unset keys[$(($lastdepth+5))]
	unset keys[$(($lastdepth+6))]
	unset keys[$(($lastdepth+7))]
	unset keys[$(($lastdepth+8))]

	if test "$ENV" != "${keys[1]}"; then
		continue
	fi

	if test -z "$v"; then
		continue
	fi

	v=$(echo $v| tr -d '"')
	read key <<<"$(echo ${keys[@]:2} | tr ' ' $FIELDSP)"
	echo $key=$v
done < "$YAML" > "$TMPSH"

. "$TMPSH"

rm -f "$TMPSH"


저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

젊은(?)친구들은 공공연하게 저는 긴 글을 잘 못읽어요라는 말을 한다. 가끔 내 글 읽기 생활에서도 그러함을 느낄 때가 있는데, 요즘이 그렇다. 너무 분주하게 살다보면 긴 글 집중력 게이지가 떨어진다. 마음이 급하면 긴 시간 확보가 어렵기 때문이다.


이걸 기회로 측정할 수 있는게 있다는 사실을 발견하게 된 것 같다. 긴 글을 집중해서 읽어보기를 시도하면, 내 생활이 얼마나 뭔가에 몰입되어 사는 지 알 수 있는 것이다. 약간 아이러니인데, 그렇게 긴 글에 집중할 수 있으면, 사실 여유로운 생활을 한다는 것이고, 집중할 수 없다면 분주한 삶을 사는 것이다. 둘 다 잡는 것이 불가능할지라도 잡아야지.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

"나는 옳다"라고 종종 되뇌인다. 내가 옳은 것은 마치 이것과 같다. 식물에 물을 주면 자란다. 그건 식물이라는 생명이 작동하는 방식이 그러하기 때문이다. 식물이 자라는 방식은 옳고 그름의 문제가 아니라 그냥 그 자체로 옳은 것이다. 미묘한 뉘앙스라 생각되기는 하지만, 나는 다른 적절한 표현을 찾지 못했다. 아니, 옳다라고 표현하는 것이 그리 나쁜 표현이 아니며, 내가 느끼는 느낌을 잘 표현한다고 생각한다.


내가 옳다는 것을 전제하지 않으면, 지금의 나를 살아갈 수가 없다. 중요한 것은 "지금" 이 시점에서의 내가 사는 방식이 그러하다는 것이다. 지금 내가 옳지 않으면, 그릇작동한다면, 그것은 내 존재의 작동방식이 부정되는 것이며, 그것은 이미 내가 아니다.


옳다는 전제, 제대로 작동하고 있다는 전제하에 단지 스스로를 해석할 뿐이다. 그것이 도덕적으로는 그를지라도, 생물학적, 자연적으로는 옳다. 그렇게 형성되어온 가치관 대로 판단하는 것이 지극히 자연스러운 것이기 때문이다.



저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

하루의 시작은 광고성 메일을 지우는 것부터지.


4월은 불쑥 내 주위에 찾아 왔다. 그것도 2016년이라는 이름으로. 2013년 5월은 벌써 3년전 이야기가 되었고, 그 동안 나는 작은 전투에서 승리하지 못한 채 탈출구가 보이지 않는 미래를 좇아가며 때로는 나태로 때로는 조바심으로 살아왔다. 여전히 불안하다. 아무것도 이루지 못했고, 이것저것 해보지만 신통하지 않다. 집값은 아직도 다 값지 못했으며, 다행이 아내는 일을 하고 있다. Status Anxiety가 늘 있으며, Human-being Anomaly에 대한 의구심도 여전하다.


자유를 늘 추구하지만, 그간의 삶의 패턴에 조금씩 이식했을 뿐 그렇게 크게 용감하게 실행하지도 않는다.


아이들은 커가고, 다치고, 생일을 맞이한다. 때로는 좋은 아빠, 무심한 아빠, 나쁜 아빠. 일인삼역이 베스킨라빈스31 파인트처럼 켜켜이 쌓여 있다.


어쩌랴, 가려워도 조금참는 것처럼 가려운 인생 좀 긁다 포기하고 참는 것을 기술로 살아야지.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

Raspberry pi를 가지고 놀다 bluetooth 장비는 있으나 연결된 headset을 이용할 수 없었다.

어찌어찌해서 alsa-pulseaudio에 bluetooth headset을 연결하는 것까지 성공하였으나, 그 다음이 막혀 한동안 고생했다.


$ pactl list .... 생략 ... Card #5 Name: bluez_card.00_02_5B_00_FF_CE Driver: module-bluez5-device.c Owner Module: 29 Properties: device.description = "VISVI J2" device.string = "00:02:5B:00:FF:CE" device.api = "bluez" device.class = "sound" device.bus = "bluetooth" device.form_factor = "headset" bluez.path = "/org/bluez/hci0/dev_00_02_5B_00_FF_CE" bluez.class = "0x240404" bluez.alias = "VISVI J2" device.icon_name = "audio-headset-bluetooth" device.intended_roles = "phone" Profiles: a2dp: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: a2dp Ports: headset-output: Headset (priority: 0, latency offset: 0 usec) Part of profile(s): a2dp headset-input: Headset (priority: 0, latency offset: 0 usec, not available)

이렇게 나오는 것은 device 5번으로 잡혔다는 것이고, 여기에 paplay를 통해 wav, raw 등을 밀어 넣을 수 있다. 하지만, mp3는 paplay로는 안된다. 


mpg123 을 통해 stdout 으로 mpeg 파일을 raw로 변환하여 출력하는 것을 넘겨주면 된다.


$ mpg123 -s "blah.mp3" | paplay -d 5 --raw --passthrough


paplay에는 --raw 형식을 stdin (--passthrough)으로부터 입력받는 옵션이 있으며, mpg123에는 stdout으로 출력하는 옵션이 있다. (-s)


저렇게 하는 방법외에도 있을 것 같으나, (mpg123이 pulseaudio에 직접보내는 그런 아름다운 방법) 왜 잘 안될까.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

공각기동대가 던져주는 메시지를 진작 알았다면 좋았을 것을 이 재밌는걸 요새 보고 있다니.


인간을 흉내내는 것으로 시작했지만, 결국 도착하는 것은 인간과는 다른 형태의 지능의 예고가 아닐까.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

수영을 하면서 느낀 것 중 하나는, 일상 생활에서 척추를 세우는 습관이 배가 나오지 않게 하는 결과로 이어지지 않을까 하는 생각이다. 그 한 30년의 세월을 척추를 세우며 살아왔다면 어땠을까하며, 다음 30년은 의식적으로 고쳐볼 수 있지 않을까 생각해본다.


무의식적으로 취하는 태도를 작은 습관의 변화로 만들어내기란 그리 쉽지 않은 것이지만 말이다.


사실 배가 들어가면 키도 커 보일 때가...


end.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

시간이 더 가기전에 알파고가 던져준 생각들을 정리해야할 것 같다.


난 스포츠에 관심없기 때문에, 국가대표 대항전이라도 보지 않는다. 이세돌에 관심은 있지만, 바둑을 잘 모르기에 바둑 소식을 따라가지도 않을뿐더러, 그의 경기를 찾아 보는 것도 하지 않는다. 하지만, 이번 경기만큼은 이세돌이아니었어도 봤을 것은, 인공지능이 전개하는 수에 대한 평가를 듣고 싶어서였다. 그리고, 몬테카를로 기법에서 어떤 발전을 이뤄서 만들었을까를 고민하고 싶어서였다.


완전 계산 불가능성의 영역에서 최대한 휴리스틱한 판단을 내리는 것. 게임의 규칙은 행동의 바운더리를 규정한다. 바운더리가 없는 게임에 대한 혹은 바운더리가 확장되는 게임에 대한 판단에서 과연 인간이 정한 규칙외에 최적의 결정을 내리는 것은 어떻게 가능할까를 고민해보는 것은 꽤 괜찮은 자극아닌가?


그런면에서 중간단계로 바둑은 게임의 규칙이 다른 것보다 훨씬 바운더리가 큰 (그러나 확장은 되지 않은) 게임이다.


직관이란 모든 수를 다 계산하지 않고 그간의 경험에의한 패턴을 통해 내리는 결정을 표현할 때 쓰는 말이다. 수학 문제를 풀 때도 직관을 사용하려면, 수많은 패턴의 문제를 풀어봤을 때 가능한 것이며, 그런 직관의 사용은 인간이 어떤 일을 수행하든 사용되는 방법이다. 게임에서의 직관이란 그동안의 학습패턴에 의해 행동을 선택하는 것일 뿐이다.


인공신경망을 사용하든, 마르코프 체인을 사용하든, 유전알고리즘을 사용하든 그 학습 결과의 내부에 형성된 데이터를 해석할 수 있는 방법은 없다(있나? 내가알기론 없..) 인간도 알 수 없는 학습된 내부 데이터. 중요한 것은 학습에 사용된 패턴과 정답셋, 학습한 순서, 그리고 시스템의 초기값정도이다.


난, 뭘하고 싶은 것일까?


시스템 콜들의 나열을 어플리케이션 프로그램이라 보면, 인공지능은 적절한 순서를 찾는 것으로 원하는 기능을 스스로 할 수 있는 S/W를 만들 수 있는 것일까? 어떤 것을 기계라하고, 어떤 것을 영혼이라할 수 있을까 (공각기동대의 표현을 빌어서 하자면 말이다)


의사 결정이라는 것은 최상위 레이어에서일어나는 일이며, 하위로 내려오면 정확한 기능을 해야한다. "어제 찍은 사진들의 파일을 장소별로 분류해"라는 최상위 의사결정이 있을 때, 가장하위에서는 파일의 날짜와 Geo tag를 추출하는 것, 장소별 디렉토리를 만드는 것, 파일을 이동하는 것이며, 중간에서는 어제 날짜를 판단해야하고, 장소들의 유사 군집을 분류하는 작업이 들어가야한다. 하위 명령은 정확한 기능으로 시스템콜이 존재한다. 그 시스템콜을 적절한 순서로 나열하기 위한 방법으로서의 중간 레벨이 존재하고, 그 중간레벨은 최상위 의사결정에 복무한다. 이런 작업을 매일 한다면, 이 전체 기능이 하위 기능으로 높은 의사결정에 부속이 될 수 있다(예를 들어 "여행 리포트를 작성해"라든지).


위 작업에서 학습이라는 인공지능의 요소가 작용해야하는 것이 어떤 것일까? 아니, 과연 정답셋을 고려한 피드백이 가능하기는 한 것일까?


훔.



저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'연속적이다'라는 말은 모든 점에서 양방향 변화의 수학적 미분값이 같다고 표현할 수 있다. 인간의 의식(감성과 이성을 포함하여)이 측정가능한 모든 영역에 대하여 1계 미분에 대하여 연속성을 갖는다면 그 주위 의식과 조화(?)로운 생활(?)을 유지할 수 있다.

어떤 의식들이 조화로운 생활을 유지하고 있다면, 측정가능한 모든 영역에 대하여 도함수의 각 점의 극한값에 대한 함수값이 같다. 내가 어제의 나와 같은 존재라면, 내가 생활하는 영역에서 주위와의 관계에 대해 특이점이 존재하지 않고 모든 점에서 양방향 미분값을 일치시키면된다.


조니뎁이 연기한 트랜센던스에서 의식이 컴퓨터 안으로 옮겨질 때를 그렇게 해석할 수 있다. 영화의 그런 모티브는 참 좋으나, 양자컴퓨팅까지도 봐줄만하지만, 나노 공학이나 바이러스가 나올때 급격히 몰입감이 떨어진 것은, 내가 알고 있는 지식의 관점에서 볼 때, 그 미분값에 불연속성이 존재하기 때문이다.


P.S. 그나저나, 케이트 마라(Kate Mara)는 악역인지 선역인지 구별안가는 배역에 적합한 외모인 것 같다. (매력적이다) 케이트 마라는 마션에서도 나오더만. 관심이 가는 배우.

저작자 표시 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts