Norman Rockwell – The Problem We All Live With

Norman Rockwell, “The Problem We All Live With“, 1964, Oil on canvas, 91 cm × 150 cm

일전에 노먼 록웰의 작품이 소더비에 낙찰돼서 포스팅[1]한 적 있는데, 웹서핑하다가 다른 작품을 봐서 또 포스팅 함 ㅋㅋㅋ

노먼 록웰 하면 미국의 김홍도 같은 사람인데, 서민적 일상을 그림에 잘 포착하여 생동감 있게 표현한 화가라고 한다. ㅎ 위키피디아의 설명에 따르면, 이 작품은 랜드마크 판결 중의 하나인 Brown v. Board of Education에 의해, 흑인과 백인의 분리된 학교 교육이 위헌 판결된 것에 백인우월주의자들이 반발하여 뉴올리언즈 주의 위기가 일어났고, 그 때문에 과거 백인 학교였던 학교에 등교를 하는 6세 소녀 Ruby Bridges와 그녀를 경호하는 네 명의 경호원을 그린 것이라고 한다. 본인이 일천해서, 록웰 화백이 삼중자화상[2] 같은 소프트한 그림만 그린 줄 알았더니만, 당대 꽤나 사회적인 문제를 담은 그림도 그린 줄은 몰랐다. ㅎㅎ 위키피디아를 보니 Ruby Bridges씨는 나중에 커서 사회운동을 한 모양이다.

참고로 랜드마크 판결이라고 하니까 그 중의 하나인 Loving v. Virginia 이야기[3]를 한 적이 있다. 걍 생각나서 그냥 써봄-_-

 


[1] 내 백과사전 Norman Rockwell – Saying Grace 2014년 1월 27일
[2] http://www.nrm.org/MT/text/TripleSelf.html
[3] 내 백과사전 Loving v. Virginia 2014년 2월 20일

Advertisements

오토튠의 탄생

미국 대통령은 연초에 1년간 국가의 운영방향을 제시하는 국정연설을 한다고 하는데, 2011년 오바마의 국정연설[1]이 명연설이라고 한다. (왜 명연설인지 이유는 잘 모르겠음-_-)

오토튠은 노래를 부른 음성의 피치를 교정하는 소프트웨어라고 하는데, 오토튠의 성능이 뛰어나서 이 국정연설을 가지고 음악을 만든 게 있다. ㅋ

The Gregory Brothers라는 오토튠으로 음악을 만드는 아티스트의 작품이라고 하는데, 나름 잘 만들었다-_- 나무위키[2]에도 설명이 있다.

여하간 강력한 성능을 가지고 있지만, 과거에는 이런 작업들을 구현하기 위해서는 연산량이 엄청나다고 생각해서 이런 작업들이 불가능하다고 생각했던 것 같다. 오토튠의 개발 스토리[3]가 해커뉴스[4]에 올라와 있었다. 글[3]이 상당히 긴데, 꽤 재미있다. 다만 기술적 배경에 대한 설명이 전혀 없어서 아쉽다. 뭐 어차피 본인은 시그널 프로세싱에 전혀 지식이 없긴 하다-_-

오토튠의 개발자 Andy Hildebrand는 위키피디아에 독립된 항목이 없는 걸 보면, 인지도가 높지는 않은 사람 같은데, 글[3]을 읽어보니 무척 흥미로운 인생을 산 것 같다 ㅋㅋㅋ 이 사람은 처음에 석유 시추를 위해 지진파를 연구하는 사람이었는데, 엑손 모빌이 5억 달러의 손해를 볼 뻔한 문제를 해결하고 회사를 나왔다고 한다. 이후에 Landmark Graphics라는 회사를 차려서 지진파 분석으로 땅속 지형을 분석하는 기술을 연구해서 나스닥에 상장하는 바람에 떼부자-_-가 되었다고 한다. 이후 은퇴해서 자기가 하고 싶은 음악 공부를 한 모양인데, 이거 완전 나의 롤모델이로구만-_- 초 부럽다-_-

여하간 글[3]에는 설명이 없지만 어떤 수학적 트릭을 써서, 과거에는 엄청난 연산량이 필요하다고 생각했던 음성 피치 변조 작업을 훨씬 적은 연산으로 구현하는데 성공해서, 오토튠이라는 소프트웨어를 만들었다는 이야기 같다. 근데 이런 이야기 볼 때마다 시그널 프로세싱 한번 제대로 공부해보고 싶은 마음이 굴뚝 같은데 능력부족이다 ㅋㅋㅋ 나중에 오토튠으로 엄청 유명해진 아티스트 T-Pain에게 고소도 먹고, 안티 오토튠 운동도 나오고 뭐 그렇다고 한다.

어쨌건 음악계의 혁신적 소프트웨어가 석유를 채굴하기 위한 지진파를 연구하던 사람에게서 나온 줄은 몰랐네 ㅋㅋㅋ 흥미로운 글[3]이라 함 포스팅해봄-_-

 


[1] https://www.youtube.com/watch?v=9ZdEmjtF6HE
[2] 오토튠 in 나무위키
[3] pricenomics The Mathematical Genius of Auto-Tune Sep 26, 2016
[4] https://news.ycombinator.com/item?id=15483145

2017 케냐 재대선

지난 대선[1]도 흥미로왔지만, 요 몇 달간 케냐 대선 소식은 더욱 흥미롭다. 뭐 본인은 그냥 이코노미스트지[2,3,4]를 통해서 소식을 듣는 수준이라 자세한 건 모르지먄 걍 포스팅해 봄-_-

지난 9월 1일에 케냐 대법원에서 대선 무효 판결을 내렸을 때, (본인은 9월 2일에 소식을 들었지만 ㅋ) 꽤 놀랐다. 하워드 프렌치의 책[5]에도 나오지만 아프리카 전역에 부정부패가 만연해 있다는 소식은 익히 들어서 알고 있는데, 대법관 정도 되면 그래도 나름 부정부패와는 거리가 있는 것 같다. ㅎ 단적인 예로 케냐의 전자투표를 총책임하는 기술자 Chris Msando가 살해되었는데, 그의 시신에는 고문을 당한 흔적이 있었다[3,6]고 한다. 여러가지 정황상 제대로 된 선거라 생각하기는 어려운 것 같다.

대법원 판결 직후에 Uhuru Kenyatta씨는 영어로 말할 때는 판결을 존중한다고 했지만, 스와힐리어로 말할 때는 대법관들이 사기꾼, 동성애자라고 욕하면서, 자기가 다시 당선되면 대법원을 fix해주겠다는 발언을 한 모양.[3] 여러모로 좋지 않은 모양새다. 케냐타씨는 케냐 초대 대통령인 조모 케냐타의 아들인데, 그의 이름을 딴 국제 공항도 있을 정도로 추앙받긴 하지만, 노예 시스템 유지나 인종정책 등으로 꽤 논쟁적인 인물이라고 들었다.[7]

한편 그의 반대편인 Raila Odinga씨는 케냐의 초대 부통령 Jaramogi Oginga Odinga의 아들이라고 한다. 이 동네든 저 동네든 정치인 자식은 부모를 업고 인기를 얻는 모양이다. 이코노미스트지[2]에 나름 두 후보의 비교가 있다.

대법원 판결 이후 60일 이내에 재대선을 치뤄야 하는데, Odinga씨는 공정한 투표의 장이 마련되지 않았다는 이유로 선거 보이콧 운동을 하고 있다고 한다. 케냐 법은 잘 모르겠지만 선거 위원회가 재구성 되어야 하는데, 이 보이콧 때문에 위원회가 구성되지 않는 것 같다.[4] 이 경우 사상 초유의 constitutional crisis에 빠진다는데, 어찌될런지 며느리도 모르겠다-_-

이번 케냐 대법원 판결에서도 느끼는 것이지만, 지난 ㄹ혜 탄핵 판결도 그렇고, 민주주의 체제에서 선출되지 않은 사법 엘리트가 최고 통수권자의 자격을 최종적으로 판단하는 시스템에 대한 예전의 바이커 선생의 블로그 글[8]이 생각나게 하는 사건이다. 이런 시스템의 역사적 기원도 있을 터이고, 논리적 이유도 있을 듯 하지만, 본인은 법학을 전혀 모르는 관계로 패스-_-

 


2017.10.18
알 자지라 What is happening with the Kenyan election? 7 minutes ago

 


2017.10.19
BBC Kenya election official Roselyn Akombe flees to US 18 October 2017
케냐의 선관위는 목숨을 걸어야 하는 듯-_-

 


[1] 내 백과사전 2013 케냐 대선 2013년 3월 4일
[2] 이코노미스트 Will violence flare again in Kenya? Aug 5th 2017
[3] 이코노미스트 Kenya’s presidential election has been overturned. What next? Sep 9th 2017
[4] 이코노미스트 Raila Odinga takes a gamble by threatening to boycott Kenya’s election Oct 14th 2017
[5] 내 백과사전 [서평] 아프리카, 중국의 두 번째 대륙 – 100만 이주자의 아프리카 새 왕국 건설기 2017년 4월 15일
[6] BBC Kenyan election official Chris Msando ‘tortured to death’ 2 August 2017
[7] http://zariski.egloos.com/1010591
[8] 탄핵 인용 소감 by 바이커

정보지향적 stick figure 웹툰들

일전에 메디툰[1]이야기도 했지만, 요새 손재주 있는 사람들이 자신의 전문적 지식을 stick figure 형식으로 재미있게 전달하는 게 많아진 것 같다. 페북에 ‘야밤의 공대생만화'[2]는 그 인기가 상당해서 책[3]으로도 나왔다고 하니, 나름 화제[4]가 되는 듯.

이런 스타일과 비슷하게 정신의학 신문에서 단색 선화로 웹툰을 연재[5]하던데, 이쪽도 재미있다. 려원기 정신의학전문의가 그렸다고 한다. ‘야공만’과 비슷한 스타일이다.

건설업종에 종사하시는 분이 그리는 ‘아빠가 그리는 건설이야기'[6] 같은 웹툰도 있다. 그리는 분의 본업이 따로 있을 테니 아마 장기연재는 어려울 듯 하지만, 연재 되는 동안 봐두는게 좋지 않을까-_-

그러고 보니 예전에 Stick Figure로 AES 알고리즘을 설명하는 웹툰[7]을 본게 기억나는데, 뭐 이쪽의 원조는 아무래도 xkcd아니겠나 ㅎ

수학과 관련해서는 Ben Orlin 선생의 블로그인 Math with Bad Drawing[8] 같은게 있긴 한데, 안 유명한 블로그다-_-

 


[1] 내 백과사전 메디툰 2017년 4월 20일
[2] https://www.facebook.com/engineertoon/
[3] http://www.aladin.co.kr/shop/wproduct.aspx?ItemId=100442003
[4] 한국일보 [낄낄낄] ‘야공만’ 작가 맹기완 “드립력 떨어져 고민” 2017.07.13 16:50
[5] 정신의학신문 본격 정신의학 역사 만화 – 치매 (1) 2017.10.12 23:01:34
[6] https://www.facebook.com/constructionstory/
[7] A Stick Figure Guide to the Advanced Encryption Standard (AES) in Moserware
[8] https://mathwithbaddrawings.com/

라즈베리 파이로 RAID 0 만들어서 토렌트 머신 만들기

방에 오래된 짜투리 sd 카드들이랑 짜투리 저장장치틀이 몇 개 있는데, 용량이 애매~~~해서 어디 가져다 쓰기가 뭣하다.ㅋㅋ 이거 전부 한데 업쳐서 단일 대용량 장치로 만들어서, 토렌트 머신을 돌리고 samba 서버를 설치하면, 밤에 잘 때 다 받아 놨다가 스트리밍으로 누워서 보면 좀 편하겠구나 싶어서-_- 시도해 봤다. 라즈베리 파이니까 전기 요금도 별로 안 들 것 같은데, 같은 생각을 하는 사람이 원체 많은 건지-_- 검색하면 엄청 나온다. 걍 기록차원에서 포스팅함.

일단 라즈베리 파이는 설치는 다 됐다 치자. 어차피 서버니까 비디오 메모리 할당은 조금만 해 두면 좋다. 다음 작업들은 모두 관리자 권한(sudo)로 해야 한다.

일단 가지고 있는 저장장치는 라즈베리파이 os가 설치된 4G짜리 sd카드 외에, 16G, 64G, 128G용량의 sd카드 3개가 있고, 아주 구형 mp3플레이어에서 분리한 ZIF타입의 하드디스크 20G짜리 1개가 있다. 이걸 usb에 몽땅 달고
fdisk -l
이라 치면 연결된 디스크 목록이 나온다. 그 다음은 어느 친절한 사이트[1]를 통째로 따라함-_-
mdadm 설치 후 (apt-get install mdadm)

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdc1 /dev/sde1 /dev/sdf1

라고 치니까 간단히 합쳐졌다. 초 쉽네-_-

참고로, RAID 0은 연결된 디스크들 중에 하나라도 고장나면 전체 데이터를 못 쓴다고 한다. 중요한 파일은 저장하지 말자.

포맷하고 (mkfs.ext4 /dev/md0) (시간 살짝 걸림)
마운팅 포인트 만들고 (mkdir /home/pi/raid)
권한 주고 (chmod 777 raid)
/etc/fstab에 다음 한 줄을 추가하고

/dev/md0     /home/pi/raid    ext4    defaults   1   2

마운팅 하면 (mount -a)

200기가 바이트의 디스크가 생겼다. ㅋㅋ 경로 같은 건 각자 수정하시라.

samba서버 설치하는 법은 다른 블로그[2]를 보고 따라했음. 그 다음 transmission 데몬을 설치하면 되는데, 이건 뭐 설명하는 사이트가 하도 많아서 생략. ㅋ

마지막으로
service transmission-daemon status
라고 치니까 무슨 UDP failed to set receive buffer 이런 에러 메세지가 뜨던데, 어느 사이트[3]에서 해결법이 나와 있었다.
/etc/sysctl.conf 파일을 열어서 맨 마지막에 다음 두 줄을 추가한다
net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

예전에 라즈베리 파이로 삽질[4]한게 하도 많으니까 대충 봐도 다 이해 되는구만-_- 여하간 모든 장비를 구석탱이에 몰아 넣고 선 정리하면 완성! ㅎㅎㅎ 자유 소프트웨어가 좋긴 좋다. ㅋㅋㅋ 자유 소프트웨어 만세!!

 


2017.10.18
samba서비스는 디폴트로 쓰기 권한이 막혀 있다. 쓰기 권한을 얻으려면 /etc/samba/smb.conf 파일을 열어 [homes]항목 아래의 read only = yes 를 no로 바꿔주고 서비스를 재시작 (service smbd restart) 하면 파일을 쓸 수 있다.
transmission의 web ui에 아이디와 비번으로 접속하기 번거로울 때는 /etc/transmission-daemon/settings.json 파일을 열어 “rpc-authentication-required”의 값을 false로 바꾸면 된다.

 


[1] How to set up software RAID for Raspberry Pi in Funnyvale
[2] 라즈베리파이(Raspberry Pi) 삼바(Samba) 서버 만들기 (라즈비안 파일서버 설치방법) by 빌노트
[3] TRANSMISSION UTP AND UDP BUFFER OPTIMIZATIONS in Falks Blog
[4] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일

이스터 섬 원주민의 조상에 대한 상반된 생물학적 결과

부활절에 발견됐다고 섬 이름이 ‘이스터’가 된 망망 대해 한 가운데에 있는 요상한 섬 만큼 고고학계에서 마르지 않는 논쟁의 우물은 없는 것 같다. ㅋ

Archaelogy 매거진의 기사[1]를 보니 이스터 섬 원주민의 조상을 추적한 연구가 Current Biology에 발표[2]된 모양인데, 내용인 즉슨, 이스터 섬 원주민 5명의 상염색체미토콘드리아 DNA를 분석한 결과 아메리카 원주민이랑은 별 관련 없다는 것이다. 본인은 이스터 섬이 서구에 알려지기 전에 남아메리카 원주민의 일부가 접촉했다는 유전자 분석의 결과[3]를 일전에 본 적이 있는데, 이거랑은 정반대의 주장 아닌가!!! 사람 헷갈리게 만드는 구만-_-

이번 연구[2]는 아무래도 헤위에르달 선생에게는 불리한 결과 같은데, 어찌 될려나 모르겠다. 헤위에르달 선생은 학계에서 꽤 유사과학자 취급을 받는 듯한데-_- 그의 주장을 지지하는 몇몇 결과[4]가 나오면서 개인적으로는 꽤나 흥분했었다 ㅋㅋ 근데 또 반전이 일어나네 ㅋㅋㅋ 사이언스 매거진[4]을 보니 헤위에르달 선생은 중동에서 남아메리카를 거쳐 이스터 섬으로 왔다는 주장도 한 모양인데, 이건 좀 너무했다-_- 고고학계의 천둥벌거숭이 같은 사람인 듯 하다. ㅎㅎ

여하간 본인은 지식이 없어서 이런 유전적 분석들[2,3,4]이 왜 상반된 결과를 낳는지는 잘 모르겠다.

일전에 이스터 섬의 몰락 이유에 대한 이야기[5]를 했는데, 나무위키의 이스터 섬 항목[6]에도 꽤 다양한 주장들이 소개되어 있다. 자꾸 새로운 주장과 가능성은 제기되는데 결정적인 한 방은 없는 듯 하다. 여하간 이스터 섬은 고고학계의 영원한 떡밥인 듯 ㅎㅎ

 


2017.10.14
사이언스 Did early Easter Islanders sail to South America before Europeans? Oct. 12, 2017 , 12:30 PM

 


[1] Archaelogy Genetic Study Questions Idea of Early Easter Island Contacts Friday, October 13, 2017
[2] Lars Fehren-Schmitz, et al. “Genetic Ancestry of Rapanui before and after European Contact”, Current Biology, Published: October 12, 2017, DOI: http://dx.doi.org/10.1016/j.cub.2017.09.029
[3] J. Víctor Moreno-Mayar, et al. “Genome-wide Ancestry Patterns in Rapanui Suggest Pre-European Admixture with Native Americans”, Current Biology, Published Online: October 23, 2014, DOI: http://dx.doi.org/10.1016/j.cub.2014.09.057
[4] Andrew Lawler, “Beyond Kon-Tiki: Did Polynesians Sail to South America?” Science 11 June 2010: Vol. 328 no. 5984 pp. 1344-1347, DOI: 10.1126/science.328.5984.1344
[5] 내 백과사전 이스터 섬의 몰락 이유에 대한 새로운 견해 2015년 1월 8일
[6] 이스터 섬 in 나무위키

수학 교사를 위한 자바스크립트 트릭들

국내 수학교사/강사의 절대다수는 한/글을 워드 프로세서로 사용하고 있다고 추정한다. 여태 살면서 한/글 이외의 워드 프로세서를 사용하여 수학문제를 편집하는 수학 선생을 본 적이 없다-_- 혹시 있으면 댓글 함 달아 주시면 매우 감사하겠습니다. ㅋㅋㅋ

한/글에는 스크립트 기능이 있는데, 이게 자바스크립트랑 엄청 유사해서 자바스크립트의 트릭들이 다 적용된다. 이거 잘 쓰면 되게 편리한데, 지금까지 살아오면서 본인이 편리하다고 생각되지만 잘 모를법한 트릭들을 기록해 둔다. ㅋ

1. replace, RegExp 함수 대신 split, join 함수 쓰기

ㅌ=4ㅅ 라고 입력하면 x=4t 라고 짜잔! 하고 변환하고 싶은데 다음과 같은 루프를 쓰면 왠지 될 것 같다-_-

var k_list =['ㅁ','ㅠ','ㅊ','ㅇ','ㄷ','ㄹ','ㅎ','ㅗ','ㅑ','ㅓ','ㅏ','ㅣ',
'ㅡ','ㅜ','ㅐ','ㅔ','ㅂ','ㄱ','ㄴ','ㅅ','ㅕ','ㅍ','ㅈ','ㅌ','ㅛ','ㅋ',
'ㄲ','ㄸ','ㅃ','ㅆ','ㅉ','ㅖ','ㅒ'],
e_list =['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x','y','z',
'R','E','Q','T','W','P','O'];

for(i=0;i<k_list2.length;i++)
{
	text=text.replace(RegExp(k_list[i], "g"), e_list[i]);
}

근데 ‘xy’라고 치면 ‘툐’가 되어버리므로 이래서는 곤란하다. k_list 목록에 ‘툐’ 같은 걸 추가하면 될 것 같은데, 이게 또 초성이 없는 조합들이 안 먹힌다. 예를 들어 ‘over’라고 치면 ‘ㅐㅍㄷㄱ’인데, 한/글은 초성이 없는 한글문자를 지원하므로 깨지게 된다. 이 경우 RegExp 함수의 문제 같은데, replace 함수 대신에 split, join을 사용하여 치환하는 트릭[1]을 사용하면 ‘ㅐㅍㄷㄱ’이 ‘over’로 깔끔하게 변형된다.

text=text.split(k_list[i]).join(e_list[i]);

2. Byte order mark 제거

위와 같은 트릭을 쓰려면 처음에 텍스트를 유니코드로 받아야 하는데, 한/글 스크립트 팁이라면서 인터넷에 널리 퍼져 있는 다음과 같은 코드는 작동하지 않는다.

text = GetTextFile("TEXT", "saveblock")

저 TEXT 부분을 UNICODE로 바꾸면 된다. 이 경우 텍스트 앞쪽에 Byte order mark가 첨가되어 텍스트 앞부분의 더미를 아무리 치환하려고 해도 제거가 되지 않는데, 이걸 몰라서 원인을 찾느라 열라게 삽질했다-_- 다음과 같이 코드를 사용하면 된다.

text = GetTextFile("UNICODE", "saveblock")
text=text.replace(/^\uFEFF(1\.  )?/, '');

3. indexOf의 정규식 사용

자바스크립트의 indexOf에는 정규식이 안 통하는데, search에는 통한다. 근데 search에는 특정 위치부터 검색을 시작하는 옵션이 없다. stack overflow에 누군가 아주 훌륭한 함수[2]를 올려두었으니 그대로 카피해 쓸 수 있다.

function regexIndexOf(text, re, i) {
    var indexInSuffix = text.slice(i).search(re);
    return indexInSuffix < 0 ? indexInSuffix : indexInSuffix + i;
}

4. 반올림 처리

대부분의 프로그래밍 언어에서 이진수의 특성 때문에 0.1 + 0.2를 하면 0.3이 안 나오는데, 심지어 웹사이트[3]도 있고, 이를 이용한 smbc의 개그[4]도 있다. ㅋㅋ

이런 특성이 자동 보기[5]를 만들때 곤란한 경우가 있는데, 어느 웹사이트[6]에 있는 다음과 같은 코드를 쓰면 된다.

function roundXL(n, digits) {
	if (digits >= 0) return parseFloat(n.toFixed(digits));		// 소수부 반올림

	digits = Math.pow(10, digits);					// 정수부 반올림
	var t = Math.round(n * digits) / digits;

	return parseFloat(t.toFixed(0));
}

5. 특정 문자의 대문자

수학문제에 확률변수 X라든가 선분 AB 같은 것들은 대부분 대문자를 쓰고 있는데, 자동으로 대문자로 뿅 변하면 무척 편리하다. ㅋㅋ 문자열의 특정 부분만 대문자로 바꾸는 트릭은 stack overflow[7]에 있다. 다음과 같이 pos에서 pos2 사이를 대문자로 만들 수 있다.

text = text.substring(0,pos) + text.substring(pos,pos2).toUpperCase() + text.substring(pos2);

6. right 자동 넣기

수식에 left … right를 많이 쓰는데 은근 치기 귀찮다. right가 없을 때만 right를 자동으로 넣는 정규식

text = text.replace(/left\s*(((?!right)[^\}])*)([\}\)\]])?$/,'left$1 right$3');

7. 이미지 사이즈 절대 크기

클립보드의 이미지를 스크립트로 붙여 넣을 때, 항상 사이즈를 50%로 하고싶으면

HAction.Run("Paste");
FindCtrl();
HAction.GetDefault("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
with (HParameterSet.HShapeObject)
{
	Height = Height*0.5;
	Width = Width*0.5;
}
HAction.Execute("ShapeObjDialog", HParameterSet.HShapeObject.HSet);

라고 하면 될 것 같지만 안된다-_- 왜냐하면 붙여 넣는 순간에 한/글이 이미지 사이즈를 조정하여 원본 크기가 아니라 편집용지 크기에 맞춰 붙여 넣어 주기 때문이다. 이걸 해결 못해서 매번 손으로 삽질했는데-_- 다음과 같이 변경하면 된다.

	Height = ShapeDrawImageAttr.OriginalSizeY*0.5;
	Width = ShapeDrawImageAttr.OriginalSizeX*0.5;

8. 한/글의 미주 버그

커서가 미주 안에 편집 상태에 있을 때, 미주를 생성하는 스크립트 HAction.Run(“InsertEndnote”) 를 실행하면 에러가 나면서 한/글이 비정상 종료가 된다. 문서를 날려먹는 멘붕을 몇 번 겪은 끝에-_- 다음과 같은 트릭을 쓰면 방지가 가능하다는 걸 알았다.

if ( HAction.Run("InsertEndnote") )
{
//커서가 미주 밖
} else
{
//커서가 미주 안
}

 


[1] [javascript|자바스크립트] 특정 문자 모두 바꾸기 (replaceAll) 쉽게 사용하기 in 젠트의 프로그래밍 세상
[2] Is there a version of JavaScript’s String.indexOf() that allows for regular expressions? in stackoverflow
[3] http://0.30000000000000004.com/
[4] http://www.smbc-comics.com/?id=2999
[5] 내 백과사전 아래 한글 수식 관련 매크로 스크립트 2015년 8월 19일
[6] [자바스크립트] 실수로 반올림, 소수점 자릿수 지정, Round To Float, JavaScript in mwultong Blog
[7] How do I make the first letter of a string uppercase in JavaScript? in stackoverflow

아이패드 프로 12.9 (2세대)를 구입하다

아이돌 마스터 신데렐라 걸즈 스타라이트 스테이지‘[1] (약칭 ‘데레스테’)와 ‘아이돌 마스터 밀리언 라이브 시어터 데이즈(약칭 ‘밀리시타’)라는 모바일 게임을 자주 하는데, 하드웨어 사양을 상당히 타는 게임이라 인터넷에는 종종 기발한 개조를 하는 장면[2]들도 볼 수 있다. 일전에 구입[3]한 엑스페리아 z4 태블릿으로 플레이 하고 있었는데, 이놈의 화룡 810은 그 명성답게 너무 대단한 열을 내뿜어서 제대로 못하겠다-_- 화룡 810은 일상 용도로는 별 지장 없는데, 고사양의 게임을 좀 돌리면 대단히 뜨겁다. 손으로 뒷판 cpu부분을 수 초 잡으면 통증으로 인해 더 이상 버틸 수 없을 정도의 온도가 나온다-_- 은박지도 붙여보고 물주머니도 대 보고 하여간 별 난리 부르스를 쳐왔다.

여하간 더 좋은 하드웨어로 게임을 할 수 없을까 하고 궁리에 궁리를 하던 끝에 도달한 결론은 아이패드였다-_- 잡스 형 사후에 나온 아이패드들을 아주 싫어했기 때문에 고민을 열라 했는데, 현존하는 하드웨어 중에서 가장 좋은 퍼포먼스를 내려면 픽셀c 또는 아이패드 밖에 선택의 여지가 없다. 근데 픽셀c는 출시한지 2년이나 됐고 국내에서도 구하기가 쉽지 않아 부득이 게임용으로 아이패드를 살 수 밖에 없었다-_-

‘화면의 크기가 감동의 크기’라는 모니터 계(?)에서 떠도는 aphorism에 따라, 가장 큰 사이즈의 아이패드를 구입했다. 근데 사고 보니 스피커가 4개네? 밀리시타 할 때, 사람들 환성 소리가 입체 서라운드로 들려서 엄청나게 현장감 난다. ㅋㅋㅋ

데레스테 최고화질로도 문제없이 플레이 된다. 근데 본인 실력이 똥이라 성적의 변화는 없었다-_- 화면이 너무 커서 중앙에 의식을 집중할 때, 양 옆으로 떨어지는 노트에 반응하는 것이 어렵다-_- 젠장.. 오직 게임머신이 목적인데 잘못 산건가…-_- 다만 밀리시타는 더 좋다. 노트 위치가 6개나 되니 화면이 크면 간격이 넓어져서 쾌적하다. 근데 역시 성적의 변화는 없었다-_-

화면 크기가 크다보니 웹서핑 할 때, 가로로 들면 웬만한 노트북보다 웹사이트가 널찍하게 보인다. 누워서 웹서핑 하기 아주 좋다. ㅎ 누워서 책 읽을 때도 좋다.

3세대 패드[4] 시절에 사 놓은 앱들 중에 몇 개가 남아 있었다. 그 중에 한컴 오피스[5]가 남아 있어서 이걸 설치후, 3세대 패드[4]시절 쓰던 블루투스 키보드를 붙여서, 한번 문서작성으로 얼마나 효용이 있나 싶어 테스트를 해 봤는데… 역시 워드 프로세서는 익숙한 걸로 해야한다-_- ㅋ 태블릿이 노트북을 대체할 날은 영원히 안 올 거다.

 


2017.10.14
오늘 열라게 데레스테를 했는데, 화살표가 후두둑 떨어져도 입력이 시원시원하게 팍팍 들어가는게 확실히 사양이 좋긴 좋다. ㅋㅋㅋ 엑페 z4[3]는 게임 도중에 이상하게 뭔가 프레임이 확 떨어지면서 노트 입력이 하나도 안 맞는 상황이 종종 발생하는데, 여하간 말로 설명하기 힘든 뭔가 답답한 느낌이 있었는데, 아이패드는 그런게 없다. ㅎㅎ

 


2017.10.15
여태 화면이 커서 노트에 반응하기 어려운 줄 알았더니만, 그게 아니고 라이브 옵션 중에 ‘디머’를 끈 상태였다. 이거 켜면 엄청 잘 보임. ㅋㅋㅋㅋ 여태까지 한 번도 못 통과했던 콤보가 뚫린다!!! ㅋㅋㅋ 다행이다!!! 엄청 잘 되는 듯. ㅋㅋㅋ 사길 잘 했음 ㅋㅋㅋ

 


2017.10.17
다 좋은데, 일반 충전기로 충전하면 충전 속도가 어마어마하게 느리다-_- 처음 살 때는, ‘잘 때 충전하면 되지’라는 생각으로 추가 구입하는 고속 충전기를 안 샀는데, 자기전에 충전을 까먹으면 낭패다-_- 애플 이 쉐이들 고속 충전기를 왜 기본으로 안 넣어준 건지, 상당히 괘씸하다.

 


[1] 내 백과사전 아이돌 마스터 신데렐라 걸즈 스타라이트 스테이지 アイドルマスター シンデレラガールズ スターライトステージ 2017년 2월 10일
[2] [자랑] 데레스테를 위하여 패드를 개조해 보았습니다. in 루리웹
[3] 내 백과사전 소니 엑스페리아 z4 태블릿을 구입하다 2015년 6월 18일
[4] 내 백과사전 뉴 아이패드를 구입하다 2012년 4월 27일
[5] 한컴오피스 모바일 in appstore

음식을 보상으로 주는 동물 실험과 행동주의의 문제점

프란스 드 발 저/이충호 역, “동물의 생각에 관한 생각”, 세종서적, 2017

우리는 다른 종들도 정신적 삶이 있다고 생각할 만큼 충분히 마음이 열려 있을까? 우리는 이를 조사할 만큼 충분히 창조적일까? 우리는 주의와 동기와 인지의 역할을 따로 분리해낼 수 있을까? 이 세 가지는 동물이 하는 모든 일과 연관이 있다. 따라서 나쁜 수행 결과는 이 셋 중 어느 하나로 설명할 수 있다. 위에 나왔던 장난기 많은 두 유인원의 경우, 나는 이들의 나쁜 수행 결과를 설명하는 요인으로 지루함을 선택했지만, 정말로 그렇다고 어떻게 확신할 수 있을까? 어떤 동물이 얼마나 똑똑한지 정말로 알려면 인간의 독창성이 필요하다.

상대에 대한 존중도 마찬가지로 필요하다. 만약 강압 상태의 동물을 시험한다면 어떤 결과를 기대할 수 있을까? 어린이가 어디로 빠져나와야 하는지를 기억하는지 알아보기 위해 어린이를 수영장에 밀어 넣고서 기억력을 테스트하려는 사람이 있을까? 그러나 매일 수백 군데의 연구소에서 사용되는 표준 기억력 테스트인 모리스 수중 미로 테스트에서, 쥐는 벽이 높은 수조에서 미친 듯이 헤엄을 치다가 물속에 잠긴 단을 발견하면 밖으로 빠져 나올 수 있다. 계속 이어지는 시행들에서 쥐는 물에서 빨리 나오려면 단의 위치를 기억할 필요가 있다. 컬럼비아 장애물 방법Columbia obstruction method도 있는데, 여기서 동물들은 다양한 박탈 기간을 거친 뒤에 전기가 흐르는 격자 장애물을 지나가야 한다. 먹이나 짝(혹은 어미 쥐의 경우에는 새끼)을 향해 다가가고 싶은 충동이 고통스러운 전기 충격의 두려움을 능가 하는지 알아보기 위해 이런 실험을 한다. 많은 연구실에서는 음식물 동기를 유발하기 위해 동물의 체중을 정상 체중의 85퍼센트 상태로 유지한다. 음식물을 박탈당한 닭이 미로 과제의 세밀한 차이를 알아채는 데 그다지 좋은 점수를 얻지 못한 실험 결과가 나온 ‘너무 배가 고프면 배우는 데 지장이 있을까?’라는 제목의 논문이 기억나기는 하지만, 배고픔이 동물의 인지에 미치는 영향에 관한 데이터는 비참할 정도로 적다.5

공복이 학습 능력을 높인다는 가정은 흥미롭다. 자신의 삶을 한 번 돌아보자. 우리는 도시의 배치를 익히고 새 친구들을 사귀고 피아노 연주법을 배우거나 맡은 일을 하면서 살아간다. 여기서 음식이 어떤 역할을 할까? 대학생들을 대상으로 지속적인 음식 박탈 실험을 해보자고 제안한 사람은 아무도 없다. 동물은 우리와 다르다고 생각할 이유가 있을까? 미국의 유명한 영장류학자 해리 할로는 배고픔 감소 모형hunger reduction model을 처음부터 비판했다. 할로는 지능이 높은 동물은 주로 호기심과 자유로운 탐구를 통해 배우는데, 음식물에 편협하게 집착하게 하는 것은 이 두 가지를 죽일 가능성이 높다고 주장했다. 그는 스키너 상자를 조롱했는데, 이 상자가 복잡한 행동을 연구하는 데 도움을 주는 도구가 아니라 음식물 보상의 효과를 보여주는 데 탁월한 도구라고 여겼다. 할로는 이를 비꼬면서 주옥같은 명언을 덧붙였다.

“나는 심리학 연구 대상으로서 쥐의 가치를 절대로 폄하하지 않는다. 실험자들의 교육을 통해 극복할 수 없는 쥐의 문제는 거의 없다.”6

나는 세워진지 약 100년이나 된 여키스국립영장류연구센터의 초기 시절에 침팬지를 대상으로 음식물 박탈 실험을 한 적이 있었다는 사실을 알고 놀랐다. 여키스국립영장류연구센터가 애틀랜타로 옮겨가 생물의학과 행동신경과학을 연구하는 주요 연구소가 되기 전에 아직 플로리다 주 오렌지파크에 있던 시절이었다. 그 때 1955년에 여키스국립영장류연구센터는 쥐를 대상으로 한 절차를 모델로 삼아 조작적 조건 형성 프로그램을 실시했는데, 이 절차에는 급격한 체중 감소와 침팬지의 이름을 숫자로 바꾸는 것 등이 포함되어 있었다. 하지만 유인원을 쥐처럼 다룬 방법은 성공적인 결과를 낳지 못했다. 이 프로그램은 막대한 긴장을 초래하는 바람에 2년 동안만 계속되다가 중단되었다. 프로그램 관리자와 대부분의 연구원들은 유인원에게 강요된 금식을 매우 마음 아프게 여겼고, 이 방법만이 유인원에게 ‘삶의 목적’을 줄 수 있다고 즐거운 듯이 주장한 완고한 행동주의자들과 늘 논쟁을 벌였다. 그들은 인지(그들은 그 존재조차 인정하지 않았다)에 아무 관심도 보이지 않으면서 강화 계획과 일시 중단의 처벌 효과를 연구했다. 연구원들이 밤중에 몰래 유인원에게 먹이를 줌으로써 그들의 계획을 방해했다는 소문이 나돌았다. 행동주의자들은 자신들이 환영받지 못하고 제대로 인정받지 못한다고 느끼면서 떠났는데, 훗날 스키너가 표현한 것처럼 “마음이 여린 동료들이 침팬지를 만족스러운 수준의 박탈 상태로 만들려는 [그들의] 노력을 좌절시켰기” 때문이다. 오늘날 우리는 그 마찰이 단지 방법론에 관한 문제가 아니라 윤리에 관한 문제임을 알 수 있다. 굶김으로써 시무룩하고 성질 나쁜 유인원을 만드는 과정이 불필요했다는 사실은 한 행동주의자가 다른 유인책을 사용한 시도에서 분명하게 드러났다. 그가 141번 침팬지라고 부른 침팬지는 올바른 선택을 할 때마다 실험자의 팔을 쓰다듬을 기회를 보상으로 제공하자, 주어진 과제를 성공적으로 학습했다.8

행동주의와 동물행동학의 차이는 늘 ‘인간의 통제’ 대 ‘자연적 행동’의 차이였다. 행동주의자들은 동물을 실험자가 원하는 것 외에 다른 것은 거의 아무것도 할 수 없는 빈약한 환경에 둠으로써 그 행동에 영향을 미치려고 했다. 만약 동물이 실험자가 원하는 행동을 하지 않으면, 그런 행동은 ‘잘못된 행동’으로 분류했다. 예를 들면, 너구리는 동전을 상자 속으로 떨어뜨리도록 훈련시키는게 거의 불가능한데, 너구리는 동전들을 꼭 붙들고 미친 듯이 서로 비벼대는 것(이 종에게는 완전히 정상적인 먹이 채집 행동)을 선호하기 때문이다.9 하지만 스키너는 이런 선천적 성향을 보는 눈이 없었고, 통제와 지배의 언어를 선호했다. 그는 행동 공학과 조작을 이야기했는데, 단지 동물과 관련해서만 그런 게 아니었다. 말년에 그는 인간을 행복하고 생산적이고 ‘최대로 효율적인’ 시민으로 개조하려고 시도했다.10 조작적 조건 형성이 확실하고 소중한 개념이며 강력한 행동 변화 인자라는 사실은 의심의 여지가 없지만, 행동주의의 큰 실수는 이것이 유일한 방법이라고 선언한 데 있었다.

 


5 Buckley, L. A., et al. 2011. Too hungry to learn? Hungry broiler breeders fail to learn a y-maze food quantity discrimination task. Animal Welfare 20: 469~81.
6 Harlow, H. F. 1953. Mice, monkeys, men, and motives. Psychological Review 60:23~32. p31
7 Donald Dewsbury 2006. Monkey Farm: A History of the Yerkes Laboratories of Primate Biology, Orange Park, Florida, 1930~1965. Lewisburg, PA: Bucknell University Press. p226
8 Falk, J. L. 1958. The grooming behavior of the chimpanzee as a reinforcer. Journal of the Experimental Analysis of Behavior 1:83~85.
9 Breland, K., and M. Breland. 1961. The misbehavior of organisms. American Psychologist 16:681~84.
10 B. F. Sknner 1969. Contingencies of Reinforcement. New York: Appleton-Century-Crofts. p40

행동주의는 4~50년대 심리학계에서 상당히 강력한 영향을 미치는 주도적 개념이었는데, 이에 관한 학계의 분위기는 크리스틴 케닐리의 저서[1]에서도 조금 소개되어 있다. 본 블로그에서 행동주의를 언어학으로 반박한 촘스키의 내용을 인용한 적[2]이 있다. 스키너 개인에 대한 이야기는 조던 엘런버그의 책[3]에도 짧게 소개되어 있다.

 


2017.10.17
아틀랜틱 Skinner Marketing: We’re the Rats, and Facebook Likes Are the Reward JUN 10, 2013

 


[1] 내 백과사전 [서평] 언어의 진화 : 최초의 언어를 찾아서 2013년 4월 28일
[2] 내 백과사전 촘스키가 일으킨 혁명 2013년 4월 20일
[3] 내 백과사전 [서평] 틀리지 않는 법 – 수학적 사고의 힘 2016년 8월 13일