한 리스트를 빙글 빙글 돌면서 빈 자리 찾기

요즘 블로그에 통 글을 안 써와서 거의 폐가와 같이 되어 가고 있었는데요.. ^_^
다름이 아니라, 제가 "이러면 좋겠다!"하고 생각해왔던 바로 그런 성격의 너무 좋은 분을
만나게 되어서 다른 곳에는 신경 쓸 시간이 없었네요. 이히히;

그래도, 1달에 1개 정도는 유지해 두고자;; 쌓아뒀던 코드 단편 하나를 올려 봅니다. 헤헤.

종종 아주 긴 리스트에서 자원관리를 하면서, 자원을 순차탐색으로 할당해야하는 경우가 있습니다.
주로 자원이 직접 사람이 쓰는 것이거나 해서, 순서대로 가는 것이 인지적으로나 쓰고 있는
자리가 모아지는 점에서 유리한 경우에 그런데요. 도서관 같은 곳에서 좌석을 배정한다거나,
DHCP서버에서 IP 주소를 나눠준다거나, 순차적으로 나눠주는 큐 관리 시스템에서 작업을
나눠줄 빈 큐를 찾는다거나 생각보다 제법 많습니다.

이런 경우에, 10번째부터 순차검색하기 시작했으면 끝까지 돈 다음에 처음부터 9번째까지 돌아야
하는 것이 중심원리(?)인데요. 구현하는 방법은 물론 클래스 인스턴스가 최근 찾은 인덱스를
변수로 들고 있다가 그 인덱스부터 끝까지 한 번 돌리고, 처음부터 시작한 인덱스까지 다시
돌리는 방법이 가장 평범하겠습니다. 완전 순서대로 배정할 필요는 없고 대충만 맞으면 되는
경우다 싶으면, FIFO 큐 같은 것도 괜찮은데, 이걸 쓰면 시간이 지날 수록 여기저기 듬성 듬성
나와서 원래 목적과는 달라질 수도 있고요~

그래서 range 2번 돌리는 폼 안 나는(?) 코드 대신 보통 끊임없는 이터레이터에서 개수 제한하는
트릭으로 많이 쓰이는 zip을 섞어서 이렇게 하면 비교적 폼 나게(;;) 연속 검색이 가능한
순차검색이 되겠습니다~

실행하면 이렇게 나옵니다.

못 찾으면 전체를 한 번 돌고, 찾으면 거기서 중단하면 그 다음에 시작하면 거기서부터 시작합니다~

여기서 종종 마지막으로 돌았던 놈에서부터 다음에 찾을 때 시작하고 싶은 경우가 있는데요. 비슷한 것이 아쉬운 사례로, itertools.takewhile을 쓰면 처음엔 조건이 맞을 때까지 다 가져오는 것은 좋은데, 그 다음 원소를 가지고 오고 싶어서 .next()하면 이미 조건 맞는지 보려고 갖고간 바람에, 조건 안 맞는 것 가져오는 목적으로 그 다음 이터레이터를 쓰지 못하는 것이 엄청 불편합니다.

그래서 전에 찾았던 부분에서 다시 시작하도록 해 보자면~

네~ 좀 지저분하긴 해 졌는데요;; 실행하면 이렇게~

모르는 것을 보면 전혀 못 알아볼지라도 찾아보기 좋아하는 어떤 분(^_^)을 위해 용어에 좀 과도하게 링크를 걸었습니다 ^^;

Watch Movie Online Hacksaw Ridge (2016) subtitle english

Poster Movie Hacksaw Ridge 2016

Hacksaw Ridge (2016) HD

Director : Mel Gibson.
Producer : Terry Benedict, Paul Currie, Bruce Davey, William D. Johnson, Bill Mechanic, Brian Oliver, David Permut.
Release : October 7, 2016
Country : Australia, United States of America.
Production Company : Icon Productions, Permut Presentations, Pandemonium, Cross Creek Pictures, Vendian Entertainment, Demarest Media.
Language : 日本語, English.
Runtime : 140 min.
Genre : Drama, History, War.

Movie ‘Hacksaw Ridge’ was released in October 7, 2016 in genre Drama. Mel Gibson was directed this movie and starring by Andrew Garfield. This movie tell story about WWII American Army Medic Desmond T. Doss, who served during the Battle of Okinawa, refuses to kill people and becomes the first Conscientious Objector in American history to win the Congressional Medal of Honor.

Do not miss to Watch movie Hacksaw Ridge (2016) Online for free with your family. only 2 step you can Watch or download this movie with high quality video. Come and join us! because very much movie can you watch free streaming.

Watch movie online Hacksaw Ridge (2016)

Incoming search term :

Hacksaw Ridge 2016 English Episodes Free Watch Online
Hacksaw Ridge 2016 English Full Episodes Watch Online
watch full Hacksaw Ridge 2016 movie
Hacksaw Ridge 2016 Episodes Watch Online
Hacksaw Ridge 2016 Episodes Online
movie Hacksaw Ridge streaming
Hacksaw Ridge movie download
live streaming film Hacksaw Ridge 2016
Hacksaw Ridge 2016 Full Episode
Watch Hacksaw Ridge 2016 Online Free megashare
Hacksaw Ridge 2016 English Episodes
streaming movie Hacksaw Ridge
Watch Hacksaw Ridge 2016 Online Free putlocker
Watch Hacksaw Ridge 2016 Online Putlocker
Watch Hacksaw Ridge 2016 Online Free Viooz
download movie Hacksaw Ridge 2016 now
Hacksaw Ridge 2016 English Full Episodes Download
watch Hacksaw Ridge movie online now
Hacksaw Ridge 2016 Full Episodes Watch Online
Hacksaw Ridge 2016 For Free online
Watch Hacksaw Ridge 2016 Online Free
Hacksaw Ridge 2016 For Free Online
Hacksaw Ridge 2016 Full Episodes Online
Watch Hacksaw Ridge 2016 Online Viooz
Hacksaw Ridge 2016 Online Free Megashare
Watch Hacksaw Ridge 2016 Online Free Putlocker
Hacksaw Ridge 2016 English Full Episodes Free Download
Hacksaw Ridge 2016 English Full Episodes Online Free Download
Hacksaw Ridge 2016 HD English Full Episodes Download
watch full Hacksaw Ridge 2016 film
Hacksaw Ridge 2016 English Episode
watch Hacksaw Ridge 2016 film now
watch film Hacksaw Ridge now
Hacksaw Ridge 2016 HD Full Episodes Online
watch full movie Hacksaw Ridge
Hacksaw Ridge 2016 Watch Online
live streaming film Hacksaw Ridge 2016 online
download full movie Hacksaw Ridge 2016
download Hacksaw Ridge 2016 movie
trailer movie Hacksaw Ridge 2016
streaming Hacksaw Ridge film
Watch Hacksaw Ridge 2016 Online Megashare
Hacksaw Ridge live streaming film
streaming Hacksaw Ridge 2016

사진 프리젠테이션 배경음악으로 좋은 노래

여러 명이 모이면, 사진 찍는 사람이 한 명은 있기 마련이고, 기억에 오래 남습니다.
행사가 끝날 무렵 사진을 모아서 동영상 비슷한 걸 만들어서 같이 보면, 회상도 되고
뿌듯하기도 해서 뭉클해지는데요. 사진 프리젠테이션이 사실을 왜곡하는 게 아닌가
싶을 정도로 강력해서 웬만한 기억은 모두 순식간에 아름다웠던 기억으로 만들어버리는
막강한 힘이 있습니다.

마침 어제도 어학당 마지막 학기를 기념해서 학기 중에 다른 분들이 찍었던 사진들을
모아서 FotoMagico로 음악을
깔아서 보여드렸는데, 다들 반응이 "아니 이랬었나!" 하면서 센티멘탈해진다고 놀랐습니다. ?

팬 & 줌 효과 (켄 번 효과)도 중요하지만
역시 배경음악도 큰 역할을 하는데, 이런 회고용 사진 프리젠테이션 배경음악을 몇 번
골라보니까 좋은 회고 사진 배경음악의 기준이 몇몇 있는 것 같습니다~

  • 전반적으로 비슷한 느낌으로 진행돼야 하고, 너무 극적인 전개가 있으면 안 좋다.
  • 거북하거나 복잡한 느낌을 남기지 않으려면 코드와 가사가 긍정적인 편이 좋다.
  • 전주가 짧아서, 가사가 시작되기 전의 썰렁함이 적어야 좋다.
  • 간주가 길어서 가사 부분과 이질적인 시간이 생기면 다른 종류의 사진을 중간에 넣어야 해서 귀찮으니, 그냥 간주가 짧은게 좋다.
  • 보컬이 너무 기교있거나 강한 느낌을 주면 사진보다 보컬에 신경이 쓰이기 때문에, 기교 없이 간단하게 부르는 노래가 좋다.
  • 체육활동이나 승부와 관련이 있는 행사라면 좀 발랄한 비트도 괜찮다.
  • 간단한 멜로디 패턴이 많이 반복되는 형식이면, 중간에 잘라 붙여서 길이 조절하기가 쉬워서 좋고, 모르는 노래라도 프리젠테이션 도중에 익숙해져서 친숙한 느낌을 줄 수 있다.

대충 몇 번 해보지는 않았지만 이런 게 중요했던 것 같습니다. 그래서 제가 써 봤던 배경음악을 소개해 드릴게요~

  • 상상 – 송은이: 단순하게 계속 반복돼서 쉽게 친숙해지고 자르기도 정말 쉽고, 목소리도 친근한데다, 아무 행사 사진에 깔아도 아무데나 척척 잘 어울려서 감동도 주고 긍정적인 느낌도 주는 곡~ 원곡은 3분 29초인데, 잘라붙이면 2분 10초, 1분 30초 로도 편집이 가능하고 중간을 반복해서 5분 정도로 늘릴 수도 있습니다. (BioXP 7기 동영상 (글 중간에 있음)에서 사용)
  • 비밀의 화원 – 이상은: 창준형이 소개해 준 매우 좋은 회고용 배경음악. 역시 친숙해지기 쉬운 멜로디, 단순한 전개, 희망적 메시지 등 중요 요건을 모두 갖추고 있습니다. 중간에 분위기가 다른 패턴이 몇 번 나오는데, 여기서 다른 사건 뭉치의 사진으로 전환하면 좋습니다.
  • 많이 안아 주고 싶어요 – 비누도둑: 비밀의 화원은 좀 부담스러운 분위기도 있긴 한데, 이 곡은 시종일관 사랑스러운 분위기라 긍정적인 분위기 사진만 있을 때 일관적으로 좋은 분위기를 만들 수 있습니다. +_+ 역시 반복이 매우 많아서 길이 조절이 쉽고, 비트가 앞의 두 곡에 비해서 좀 빠른 편이라 화면전환에 대충 동기화하기가 쉽습니다.
  • Love – 요조: 마찬가지로 처음부터 끝까지 사랑스러운 분위기이고, 쉽게 친숙해지는 분위기에 아주 따뜻한 느낌을 줍니다. 전주도 기타가 썰렁하지 않고 바로 사진이 나와도 좋은 분위기로 시작해 줍니다. 화기애애한 모임들 배경음악으로 아주 좋습니다.
  • Games People Play – Inner Circle: 지루하다 못해 상투적일 정도의 배경음악이기는 하지만, 그래도 전주도 전혀 없는데다 여행이나 야외 활동 사진으로 아무데나 깔아도 정말 잘 어울립니다. 누구나 다 아는 멜로디에, 영어라 가사가 안 들리는 것도 장점이고요. ?
  • Signal Song – 라이너스의 담요: 담요 노래는 거의 대부분이 강아지를 안고 부르는 분위기이기는 하지만, 이 곡은 특히 아기나 애완동물 사진 프리젠테이션 배경음악으로 잘 어울립니다. +_+ 다만 0:35 근처까지 전주 부분이 효과음만 나오기에 그 앞을 잘라야 프리젠테이션이 안 썰렁합니다.
  • Ready, Get Set, Go! (radio edit) – 페퍼톤스: 사진 부분보다는, 엔딩 크레딧 롤 올릴 때 매우 좋습니다. 엔딩 크레딧 롤(?)은 참가한 사람들 이름이나 간단한 통계, 있었던 사건들 목록 같은 것을 보여주면서 사진과는 또 다른 매우 효과적인 회고용 감동 도구로 쓸 수 있습니다. Radio Edit는 원래 3분 46초인데, 역시 1분 10초, 1분 40초, 2분 20초 정도로 편집할 수 있습니다.

여러분들이 알고 계시는 좋은 사진 프리젠테이션 배경음악은 어떤 게 있나요? 저도 알려주세요~ +_+

정수선형계획법으로 팀 짜기

2006년의 한 워크숍을 진행하면서
팀을 짜는데, 모든 팀이 비슷한 조건을 갖도록 잔기술을 썼던 적이 있습니다.
기준은 평균 실력, 평균 연령, 성비 같은 것들을 모두 비슷하게 맞추고
가능한 다른 곳에서 온 사람들이 섞이도록 했는데요. 이게 손으로 대충해도 되지만
문제는 신청을 한 분이 모두 오는 게 아니라, 몇몇 분들이 빠지거나 지각해서
미리 팀을 짜도 헛수고라 빨리빨리 모두 고려해서 좋은 팀 구성을 해야해서
자동화를 해야 했습니다.

그래서 당시에는 학교에 사이트 라이선스가 있어서
ILOG OPL정수계획(IP)
했었는데요. 얼마 전에 창준형이 그 소스를 참고하고 싶어 하셔서
찾았는데 소스가 없어졌더군요. 크흐. 그래서 생각난 김에 한 번 오픈소스 선형계획 툴킷인
GLPK용으로 만들어 봤습니다.

모델 코드, 데이터 예제

예제는 누구나 쉽게 데이터 성질을 해석할 수 있도록(;;) 소녀시대, 브라운 아이드 걸스, 원더걸스를 모아놓고 수학캠프를 하는 것을 가정하고(;;;)
최대한 다른 그룹끼리 섞이게, 팀 간 평균 나이, 수학실력, 성비는 비슷하게 하도록 하는데,
수학실력은 몰라서 관련이 있을리는 만무하지만 epg 스타정보에서 인기순위로 대충 매기고, 성비는 모두 여자라
제 맘대로 다수를 남자로 바꿨습니다. ^.~

자 그러면 시험삼아 예제 데이터를 한 번 해 볼까요! 팀은 6개로 나누는 것으로 하고, 우선 제대로 돌아가는지 보기
위해 멤버 수만 같게 맞추는 걸 조건으로 해 보면 결과가..

구성 성비(가상) 평균 나이 평균 EPG 인기
A 제시카 써니 티파니 1:2 21.0 4.33
B 가인 제아 선미 2:1 22.7 2.7
C 태연 윤아 예은 2:1 20.7 5.0
D 수영 서현 선예 2:1 20.0 3.0
E 효연 미료 소희 2:1 22.0 3.0
F 유리 나르샤 유빈 3:0 23.3 3.0

팀 안의 인원 수만 맞지, 어느 하나도 비슷하게 흩어진 게 없습니다. 특히 B, C팀은 여러모로 차이가 많이 나서 비슷한 팀구성 목표에 맞지 않고요, A팀은 소녀시대만 있죠. 그럼 앞에서 언급한 4가지 조건 모두를 맞춰서 최적화한 결과는.. (120초 제한으로 풀어서 최적해는 아님)

구성 성비(가상) 평균 나이 평균 EPG 인기
A 제시카 가인 예은 2:1 21.7 3.7
B 태연 서현 유빈 2:1 20.7 3.7
C 티파니 제아 선미 2:1 22.0 3.7
D 유리 나르샤 소희 2:1 22.0 3.3
E 효연 수영 선예 2:1 20.7 3.3
F 써니 윤아 미료 2:1 22.7 3.3

그런대로 비슷비슷한 팀들로 구성이 됐습니다~ 재미있는 수학시간이 될 것 같네요. -ㅇ-;

사실 이 문제 같은 경우에는 결정하는 변수가 모두 정수라서 (정수가 적을수록 쉽게 구할 수 있음) 사실 전수조사에 주먹구구 좀 넣어서 돌리는 거나 큰 차이는 안 납니다만.. 그래도 재미로~ ^.^;;

‘한’씨 여배우가 진짜 많은가?

넋놓고 TV를 보고 있으면 종종 여자 연예인들의 성씨가 많이 편중됐다는 생각이 듭니다.
그래서 얼마 전에 과연 진짜로 성씨가 편중됐나! 세 보려고 하고 있었는데 마침
어학당 친구들과 얘기하다가 보니 이미 신문기사에서도 여러 번 다룬 적이 있다는군요!
(또박사님, 곰형님 감사!) 찾아보니 2004년 조선일보에서 어느 스포츠신문에서 "한씨 열풍"을 지적했다고 하고, 2007년 일간스포츠에서는 역술인들이 ‘한’씨가 연예인으로 운이 좋은 성씨라고 한다는 얘기를 전하고 있습니다. 2007년 한겨레신문에서는 대중설문조사로 좋아하는 성씨에 대해 조사를 했었는데, 여기서는 ‘한’씨가 무려 43/332명이 가장 선호하는 성씨로 조사돼서 인구 조사의 비율인 1.53%와 비교하면 뚜렷한 차이가 있음을 보였습니다.

그렇다면 과연 진짜로 성씨 편중이 통계적으로도 뚜렷한 현상인지, 시대적으로 변화가
있는 것인지 궁금해지는데요! 연예인 데이터베이스 중 파싱하기가 비교적 쉬웠던
epg TV가이드에 1월 7일 기준으로 등록된 연예인 전체에서
한국에서 활동하는 배우, 가수 3941명 중, 이름이 한국사람의 보통
이름처럼 들리는 느낌을 가진 사람 3407명 만을 골라서 통계에 썼습니다.
예를 들어, 두 글자 이름이라도 "하은"의 경우에는 한국사람 이름에서 흔히 쓰는 패턴이므로
포함했지만 "태연"은 성-이름 보다는 이름으로 훨씬 더 많이 쓰이기 때문에 제외했습니다.
(이 과정에서 데이터 편향이 생겼을 수도 있는데, 실제 최종 결과에서는 이 영향으로 생길 수
있는 편향과 반대 결과가 나와서 신경쓸 만한 수준은 아니었습니다.)

진짜로 한씨가 많냐!

여자 배우/가수에서 ‘한’씨의 비율은 3.19%로 조사됐습니다. 원래 인구 중 비율은 1.56%로 1141명 중 21명 정도 나와야 하는데, 45명이 나온 것입니다. 제가 좋아한다고 한예슬, 한지민은 2명으로 세고 뭐 이런 것 아니고, 다 1명으로 셌습니다. (ㅎㅎ;) 이항검정으로 ‘한’씨에 대한 선호는 없다는 귀무가설에 대해서 P-value가 8.9×10-6정도 나왔습니다. 따라서 한씨에 대한 선호는 확실히 있다고 볼 수 있습니다.

그렇다면, ‘한’씨가 원래 끼가 있거나 미모가 특출나서 연예인이 많이 되는 건 아닐까? 하고 의심해 볼 수도 있는데요. 그래서 예명 말고 본명을 보면 36명이 원래 ‘한’씨인 것으로 기록돼 있는데요. 마찬가지로 이항검정에서 같은 가설로 하면 P-value가 0.002로 좀 약해지기는 하지만, 여전히 경향이 있습니다. 그렇다면 진짜 ‘한’씨가 왕비도 많이 내고 그래서 끼가 있는 걸까요! 아.. 아쉽게도 데이터베이스에 기록된 본명이 온전하지 않거나, 본명을 숨기는 연예인이 많은 것 같습니다. 김씨는 원래 1141명 중 304명은 나와야하는데, 대상에서 267명만 본명이 ‘김’씨라서 역시 P<0.0076 정도로, 본명 성씨 분포가 원래 인구 비율과 다르다고 볼 수 있습니다.

예명에서의 주요 성씨 분포

한편, ‘한’씨 말고도 여자 배우/가수 사이에서 많이 쓰이는 성씨가 더 있습니다.
‘선우’씨는 인구 중 비율은 0.01%이지만, 무려 5명 (0.35%)이 있어서 ‘한’씨보다 더 뚜렷하게
나타났습니다. 그런데, 젊은 분들이 아니고, 원래 희성이다보니 잘 눈에는 안 띈 것 같네요.
그 외에도 ‘채’씨, ‘고’씨, ‘하’씨가 본페로니 보정을 했을 때 95% 신뢰 수준에서 더 많이 나오는 성씨로 나타났습니다. 반면에 ‘김’씨는 비율대로라면 304명이 나와야하지만 활동하는 이름으로는 247명 밖에 쓰지 않아서, 흔한 성이라 그런지 피하는 경향이 뚜렷했습니다. (P<7.9×10-5)

남자는 어떨까요! 남자 배우/가수에서는 ‘주’씨 외에는 확실하게 많이 쓰이는 성씨가 보이지 않았습니다. ‘주’씨는 인구비율로 2018명 중 9명이 나와야 하는데, 22명이 있어서 P<0.00032로 95% 신뢰구간 상한선인 0.00056에 턱걸이 했습니다. 예명을 쓰면서 ‘주’씨로 바꾼 남자 연예인은 대표적으로 주진모, 주민준, 주호성 이 있습니다.

시대별로 변하는 선호 경향

이름은 시대적 유행이 있기 마련이라, 시대별로 나눠서 봤습니다. 데뷰는 정확하게 기록되어 있지 않아서, 그냥 생년월일로 했습니다.

시대별 여자 배우/가수 성씨 변화

"같음" 가로줄을 기준으로 윗쪽이면 인구 비례보다 많고, 아래면 인구 비례보다 낮게 나온 성씨입니다. 가로줄은 생년으로 묶은 그룹이고 서로 약간씩 겹치기도 합니다. 각 그룹에서 95% 신뢰구간에서 지지되는 특징적인 성씨들만 골라서 표시했습니다. 즉, ‘오’씨는 65년~74년 태생 여자 연예인들에게 많이 나타났지만, 다른 세대에는 인구 비례와 거의 비슷했고요, 71~80년 태생 여자 연예인들은 ‘정’씨가 인구 비례에 비해 거의 1/4 밖에 안 된다는 뜻입니다.

잘 살펴보면 50, 60년대생에서는 ‘금’, ‘방’, ‘오’ 씨가 인기였다가, 70년대생에서는 ‘유’, ‘고’ 씨가 인기이고, 80년대생에 와서야 ‘한’ 씨의 인기가 시작됩니다. ‘채’씨도 ‘한’씨보다 약간 앞서 제법 높은 인기를 끌었었고, 80년대 후반에서는 ‘민’씨가 상당한 인기를 끌고 있습니다. 반면에 ‘김’, ‘박’, ‘정’은 시대별로 잠깐씩 적게 나타나는데, 흔한 성를 갖고 있던 여배우들이 성을 바꾸는 경우가 많다고 볼 수 있습니다. 아마도 여자이름은 비슷한 경우가 훨씬 많아서, 흔한 성이기까지 하면 기존에 활동하는 사람과 겹쳐서 피하려고 바꾸는 경우가 많겠죠.

류/유 씨 두음법칙 적용

보통 남한에서 대부분 성이 두음법칙을 적용한 것을 더 많이 쓰는 반면에, 류(柳)씨는
두음법칙을 안 쓰는 사람이 훨씬 많습니다. 그래서 성씨 통계에서도 ‘류’씨가 따로 잡혀있고,
반면에 두음법칙을 보통 적용하는 유(劉)씨와, 원래 ‘유’인 유(兪) 씨도 있어서,
인구조사에서는 ‘류’ 1.31%, ‘유’ 0.95%로 잡혀있습니다.

그런데 통계에서는 거의 모든 기준. 즉, 남자, 여자, 배우, 가수, 시대에 상관없이 거의 대부분에서 유의미한 수준에서 적고, ‘유’씨가 뚜렷하게 많았습니다. 즉, 일상에서는 ‘류’씨를 쓰다가도 연예인이 되면서는 발음이 쉽도록 두음법칙을 적용하는 경향이 있다고 볼 수 있겠습니다.

코미디언/개그맨도 성씨 선호가 있을까?

상대적으로 코미디언/개그맨들은 이름을 고상하게 지을 필요가 적은데. 과연 배우/가수들과 비슷한 경향을 보일까요?

통계 결과로 데이터베이스에 있는 여자(95명) 중에서는 모든 연령대에서 유의미하게 더 많이 나오거나 덜 나오는 성씨가 없었습니다. 아마도 본명 그대로 쓰는 경우가 많은 것 같군요. 남자(331명)는 유의미한 것이 하나 있었는데 ‘박’씨가 1/2배 정도로 적게 나타났습니다. (P < 0.00036) 보정을 하면 아주 유의미한 정도는 아니라서 애매하긴 하지만, 원인은 모르겠지만 박씨가 적기는 합니다.

요약하면, 여자 배우/가수는 성씨 선호가 뚜렷하고 예명을 지을 때 신경을 많이 쓰지만, 코미디언/개그맨 이나 남자 배우/가수는 기본 인구 비례와 별 차이가 없다는 결과가 나왔습니다.

자소별로 뭔가 느낌이 있는 것 아닐까!

신문 기사에서도 ‘ㅎ’이 연예계 운에 좋다고 했으므로 (;;) 자소별 분석을 해 볼 만 하겠습니다. 다음 표에 요약했습니다. (95% 신뢰도로 유효한 것만 표시)

여자 많음 여자 적음 남자 많음 남자 적음
첫소리 ㅎ ㅅ ㄹ ㄱ
가운뎃소리
끝소리 ㄴ ㄹ ㅁ ㄱ (받침없음)

뭔가 안 보이던 걸 기대를 했었는데, 그냥 ‘김’이 적고 ‘한’이 많다 같이
앞에서 나왔던 성씨별 경향으로 대충 설명이 됩니다. 그런데, 남자에서
받침이 없는 성씨가 많다고 나타났는데, 실제로 남자에서 많이 쓰인
받침 없는 성씨로는 ‘주’, ‘하’, ‘지’ 같은 것이 있어서 산뜻한 느낌을
주는 경향이 있었습니다. ‘ㅘ’가 적게 나타난 것은 ‘황’씨가 1/1.5배
정도로 줄어든 것 때문입니다. 여자에서도 마찬가지로 ‘황’씨가 적기는
했지만 ‘황’씨가 원래 인구가 비교적 적고 데이터베이스에서 여자 샘플수가
적었기 때문에 통계적으로 유의미하게 나오지 않았을 뿐 비슷한 정도로
적었습니다. 발음이 힘들어서 일까요?

앞으로 트렌드는!

85년 이후 출생을 살펴보면 여자는 ‘서’, ‘민’, ‘고’씨가 인기이고, 남자는
‘강’, ‘성’씨가 인기입니다. (아직 데이터베이스에 등록된 사람이 몇 안 되어서 통계적 유의성은 떨어집니다만.) 새로 예명을 지으실 일이 있으면(;;) 참고해서 예쁘게 지어 보세요. -O-;

참고: 통계는 RPy로 했고, 그래프는 Apple Numbers로 그렸습니다.

자주 보는 논문 저자 찾기

저는 논문 관리를 Papers로 하고 있습니다. 순전히 이 프로그램 때문에 맥을 사는 사람이 있을 정도로 정확하게 타게팅을 해서 나온 놈이라 정말 편리합니다. 다만 DevonThink같이 정보를 자동으로 모아서 못 보는 패턴까지 파악하게 해 주는 기능이 많이 아쉬운데요. 그래서 갑자기 자주 보는 저자들의 PubMed 자동 알리미 설정을 한 번 해 볼까하고 저자를 생각해 봤는데, 아무래도 빼먹은 게 있을 것 같아서 Papers에 등록해 놓은 논문 전체에서 가장 많이 쓴 사람들을 찾아봤습니다.

소스코드 – 다행히도 CSV 출력을 지원해서 BibTex 파싱 같은 것은 안 해도 됐고요. 이름은 중간이름을 간혹 생략하는 경우도 있어서 그냥 성과 이름 첫 글자만 가지고 비교를 했습니다. 하는 김에 가장 많이 보는 잡지 이름도 출력했습니다. 결과를 보니까 오! 간단하게 알리미 설정할 사람들 목록이 나왔습니다. ?

제 상위 저자, 잡지는 이렇게 나오는군요.

여러분의 Papers 책꽂이는 누가 많이 차지하고 있나요!Watch movie online The Transporter Refueled (2015)

파이썬 2.6의 상위 호환성 기능

파이썬 역사상 가장 큰 개혁인 3.0이 발표된 지 이제 한 달이 되어 갑니다.
이번 업데이트는 워낙 변한 것이 많아서 파이썬 개발팀 내부에서도 실제 개발에 적용되려면 2년은
걸릴 것으로 보고 있는데요. 그래서 중간 징검다리로 파이썬 2.6이 3.0을 전후로
발표되었습니다. 2.6에는 3.0 대비에 대한 기능이
많이 들어갔는데, 이 부분만 간단하게 맛보기로 소개해 드립니다~

파이썬 3.0 호환 대비 옵션

파이썬 2.6에서는 3.0에 대비하는 개발자의 편의를 위해서 -3 옵션을 지원합니다.
파이썬을 띄울 때 -3 옵션을 주면 3.0 호환성 경고가 뜹니다. 예를 들면 이렇게요~

이렇게 파이썬 3.0에서 없어지면서 대체할 수 있는 것을 쓰면 경고가 뜹니다.
옵션으로 주지 않고 프로그램 안에서 옵션을 넣어준 것 처럼 하려면
sys.py3kwarning 을 True로 설정해 주면 됩니다.
프로그램 안에서는 sys.py3kwarning을 보면
-3이 설정되었는지 알 수 있지만, 파이썬이 뜨고 나서는 바꿀 수 없습니다.

파이썬 3.0 호환 빌트인 함수

파이썬 3.0에서 새로 생기거나 동작이 바뀌는 빌트인 함수를 2.6에서 미리 쓸 수 있습니다.
그냥 3.0을 바로 쓰는 것과 무슨 차이냐 하면, 기존 2.x용으로 개발된 프로그램 안에서도
모듈 하나 안에서만 선택적으로 빌트인 함수를 3.0 것으로 바꿔서 3.0인 것처럼 쓸 수 있는
것이죠. 하나씩 이렇게 3.0용으로 바꾸다보면 돌아가는 상태를 유지한 채로 2.x에서 3.0용으로
부드럽게 넘어갈 수도 있고요~

future_builtins 모듈이 파이썬 3.0 빌트인 함수를 제공합니다.

파이썬 3.0에서 바뀌는 문법 미리 맛보기

파이썬 3.0에서 바뀌는 print나 유니코드 문자열, 바이트 문자열 같은 것들을 모듈 단위로 미리 쓸 수도 있습니다. 마찬가지로 부분 부분 대처를 해서 3.0용으로 부드럽게 넘어갈 수 있겠죠.

유니코드 문자열
print 함수

어때요! 한 번 해보고 싶으시죠!

다음에는 파이썬 3.0 호환성과 직접적인 관련은 없는 2.6의 새로운 기능을 소개해 드리겠습니다~

파이썬의 매력이 self를 쓰는 거라고 생각해요

종종 파이썬에 대한 평을 인터넷에서 한 번씩 검색해 보는데요. 많은 분들이 가장
많이 싫어하는 것은 뭐니뭐니 해도 "들여쓰기 강제"겠죠. 뭐 이거야 취향 문제라
어쩔 수 없는 것이고. 사실 파이썬 사용자들 중에서 "들여쓰기 강제"를 좋아하는 사람이
많기 때문에 파이썬의 원래 목적에도 더 맞다고 생각되고… ^.^;

그에 못지않게 자주 지적되는 것이, 객체 안에서 꼭 self.를 달아 줘야 된다는 것인데요.
저는 self.를 항상 명시적으로 붙이는 거야말로 파이썬의 참 매력이고, self가 없어지면
파이썬이 무너진다고 생각합니다! 특히 자바 프로그래머들이 파이썬의 self에 대해
많이 지적하는데, 자바와 파이썬 모두에서 영향력이 있는 브루스 엑켈도 self를
(메쏘드 선언에서만이라도) 없애보자
했는데, 그에 대한 응답으로 귀도가 불가능한 일이다라고
그 이유를 논리적으로 설명했었습니다.

브루스 엑켈의 제의가 선언에서만 없애자는 것이었기 때문에, 메쏘드 내부의 코드에서
없애면 안 되는 이유에 대해서는 귀도가 설명하지 않았는데요. 브루스 엑켈이 스스로 결론 내린
그 앞 부분의 문제 "self가 왜 있어야 하냐!" 그 이유에 대해서 좀 설명해서
자바 프로그래머 분들이 파이썬을 좀 더 이해할 수 있도록 도와볼까 합니다.

파이썬에서 self가 붙게 된 역사적인 이유는 파이썬의 클래스 내 메쏘드는 기본적으로
외부에 독립되어 있는 함수에 껍데기를 씌운 것이기 때문입니다. 자바는 아예 독립 함수가 없고,
다른 언어에서는 대체로 독립된 함수들과 메쏘드는 다른 취급을 받는데, 파이썬에서는 그냥
함수를 메쏘드로 편입시켜서 쓸 수도 있고, 둘을 비슷한 방법으로 바꿔서 다룰 수 있습니다.
예를 들면 이런 코드가 가능하겠죠.

밖에서 선언된 함수를 클래스 정의할 때 메쏘드로 끌어들인 것이죠. 메타클래스를 쓴다면 더
동적으로 해 버릴 수도 있습니다. 도대체 이런 코드를 뭐에 쓰냐! 하는 의문을 가지실 수도 있는데요.
의외로 이런 기술이 많이 쓰입니다. egg함수를 C로 구현된 확장모듈에서 끌여들일 수도 있고요.
egg만 사용자가 구현할 수 있도록 노출시켜서 외부 모듈에서 불러올 수도 있고요. 심지어
R이나 .NET같은 브릿지에서 다른 언어로 구현된 것을 쓸 수도 있습니다. 메쏘드가 결국
함수기반이라는 것은 생각보다 강력한 개념으로, __로 시작하는 내부 속성을 쓰면 더욱 희한한 것도
제어할 수 있게 되고, 클래스를 안 쓴 코드와 클래스를 쓰는 코드 사이를 넘나들거나 점진적으로 변경할 때 아주 쓸모가 있습니다.

파이썬에서 instance.method(A, B) 는 class.method(instance, A, B) 와 같은 역할을 합니다.
이것은 함수가 메쏘드가 된 얘기 외에도, 다중상속을 받았거나 이름이 중복되는 메쏘드를 부를 때 쓰이기도 하고, 다양하게 상속받은 하위 인스턴스들을 명시적으로 한 메쏘드에게 콕 찝어 줄 때도 쓰이고, 이 규칙 하나가 수많은 모호함을 해결해 줍니다. 그래서 이 일관성이 문법 전반에 계속 흐르고 있습니다.

그렇다면 그냥 함수는 함수로 쓰고 메쏘드는 메쏘드로 쓰고 같은 데서 상속받으면 비슷한 인터페이스가
나올 수 있지 않겠느냐 하는 의문이 있을 수도 있습니다. self의 또 다른 존재 이유로 파이썬을 파이썬으로
만드는 가장 중요한 특징인 "네임스페이스"가 등장합니다.

"네임스페이스"는 파이썬에서 변수를 담아두는 공간으로, 원래는 로컬, 모듈 전체, 빌트인 세 가지 네임스페이스를 찾도록 되어 있다가, 파이썬 2.1부터 상위에 싸여있는 것들도 찾도록 돼 있습니다. 이해를 돕기 위해 예를 들어드리면

이런 파일이 있다면 A는 모듈 전체, 나머지는 로컬에 들어갑니다. 그런데 Y()의 입장에서 C는 로컬인데, B와 D는 자기 로컬은 아니면서 상위 네임스페이스에 속한 변수들이 됩니다. 따라서, 파이썬 2.1부터는 모듈 전체로 가기 전에 B, D가 있는 X영역부터 찾습니다. 파이썬은 변수 선언을 하지 않기 때문에, 변수의 네임스페이스는 대입이 한 번이라도 일어난 최소의 네임스페이스에 영역을 잡는데요. 위에서 C는 Y()안에서 대입이 있었기 때문에 Y()안의 네임스페이스에 잡히고, B, D는 X()에서 대입이 있기 때문에 X()의 네임스페이스에 잡힙니다. 그런데, A는 대입이 모듈에서만 있고, X()에는 없어서 X() 로컬이 아니라 글로벌로 잡힙니다.
이런 네임스페이스를 바꿔주는 키워드가 원래부터 지원되는 global과 파이썬 3.0부터 지원되는 nonlocal이 있습니다. 이건 따로 관심이 있으시면 매뉴얼을 보시면 되겠습니다. +_+

여기서 갑자기 웬 네임스페이스 설명을 self하는 데 하느냐! 하면..

self.을 생략하게되면 로컬 네임스페이스와 인스턴스 네임스페이스가 섞이게 된다는 것입니다. 즉 클래스에서 x = 1하면 이게 로컬로 갈 지, 인스턴스로 갈지 모호해 지는거죠. 자바나 C++은 명시적으로 선언을 하기 때문에 헷갈리지 않지만, 파이썬은 선언을 않기에 명시적으로 쓸 필요가 있죠. 그래서 펄이나 루비에서는 따로 @나 !같은 기호를 도입해서 쓰는데.. 파이썬의 원칙 중 매우 중요한 것으로 "연산자 너무 늘리지 말자"가 있어서 고려 대상은 아닙니다. self.라고 쓰면 파이썬 문법을 모르는 사람도 아 이게 뭐구나! 하고 추측을 할 수 있지만 @같은 걸 붙여놓으면, 문법책을 참조하거나 고난도의 눈치를 보지 않고서는 인스턴스 네임스페이스인지, 클래스 네임스페이스인지, 글로벌 네임스페이스인지 알기가 힘들겠죠.

그럼 또 제기될 수 있는 의문! 대입은 그럼 명시적으로 하고, 쓸 때만 인스턴스와 클래스도 한 번 타 주면 되지 않겠니? 하고 소극적인 부탁을 해 볼 수도 있겠는데요. 읽는 방법, 쓰는 방법이 다른 건 아무래도 파이썬 원칙에는 맞지 않고, 속도도 많이 느려집니다.

모호한 것을 보면, 추측할 수 있을 거라는 유혹은 단호하게 거절한다. (In the face of ambiguity, refuse the temptation to guess.) — 팀 피터스, 파이썬의 선(Zen)

Watch movie online The Transporter Refueled (2015)

오픈룩에 관계된 숫자들

제가 좋아하는 다큐멘터리 3일 (KBS)에 보면 끝날 때 주제에 대한 사실을 전달하면서도 신선한 반전을 주는 간단한 숫자 몇 가지가 나옵니다. 예를 들면 "추석택배전쟁 72시간"에서는 택배 배송에 관련된 여러 사람들의 고생을 간접체험하는 구성을 하고, 끝에는 "2007년 택배업 종사자는 전년 대비 50% 급증했다."라고 보여줬습니다. 그래서 오픈룩도 그냥 갑자기 몇 가지 간단한 숫자로 정리해 봅니다. 크크; -o-

동아시아 민족의 유전적 관계

작년에 구글이 투자한 것으로 주목 받았던 23andMe가 올해 타임즈가 2008년 최고의 발명품으로까지 선정할 정도로 대박을 치면서 단일염기다형성(SNP)이라는 말이 더 이상 유전학 전문 용어가 아니라 "돌연변이"처럼 일반 상식에 들어가게 될 무렵… 유럽인들의 유전자 조사를 해 봤더니 지리적 관계와 신기할 정도로 일치하더라!하는 논문이 블로그계에서 한동안 인기를 끌었습니다. 이 논문에서 재미있었던 것은, 단지 유전자 변이 관의 관계만 가지고도 거의 지도를 재현할 수 있을 정도로 지리적 관계가 나왔다는 것도 있었고요. 핀란드가 유전적으로 유럽에서 뚝 떨어져 있다는 사실도 역사를 그대로 재현하듯 나왔다는 것입니다.

세계적으로 유럽 뿐만 아니라 인간 유전적 다형성 연구(HGDP), 세계 주요 인구의 유전적 다형성(HapMap) 등의 대형 프로젝트가 꾸준히 SNP 데이터를 수집해서 가공하고 연구하고 있습니다. 한국인은 앞의 두 프로젝트에서 여러가지 이유로 빠졌는데, 한국에서도 국립보건원생명공학연구원/대학 컨소시움에서 독립적으로 한국인의 단일염기다형성 데이터베이스를 구축해서 올해부터 뭔가를 발표하기 시작했습니다. 한편으로는, 며칠 전에 최초로 한국인 유전체 서열이 공개되어서 떠들썩 했는데요. 이제 한국에서도 외국 논문에서만 봤던 쌔끈한 그래프들을 직접 만들어 볼 수 있는 날이 점점 다가오고 있습니다!

그러던 참에, 어제 온라인 오픈액세스 저널인 PLoS ONE에 동아시아인의 유전적 구조에 관한 논문이 발표됐는데요. 앞에서 소개했던 유럽에서의 조사를 동아시아에서 재현한 것입니다. 한국, 일본, 중국 뿐만 아니라 태국, 필리핀, 베트남, 캄보디아 등등 많은 국가를 상대로 했는데, 실제로 이 연구에서 직접 만든 SNP 데이터는 한국인과 미국에 사는 아시아인 밖에 없고, 나머지는 다 앞에서 언급했던 HGDP와 HapMap에서 가져왔네요. 한국인은 아직 KHapMap이 발표되기 전에 시작했는지 직접 21명 피를 한국에서 뽑아갔다고 하는군요~ (요새 환율로 60만원 정도 하는 걸 공짜로… 아.. 부럽다.. ㅡㅠㅡ)

동아시아의 유전적 관계 doi:10.1371/journal.pone.0003862.g001

왼쪽은 그냥 동아시아 지도가 가물가물하는 사람을 위해 그려놓은 (;;) 것이고, 오른쪽은 유전정보의 관계만을 사용해서 PCA로 두 가지 기준 수치로 2차원으로 표현한 것입니다. 잘 비교해 보면 기가 막히게도 지리적 관계와 유전적 관계가 맞아떨어집니다! 이 조사에서 나타난 결과로는 한국인은 중국 한족과 일본인의 중간 쯤 되는데, 일본과 훨씬 더 가깝게 나타났다고 합니다. 그리고 시베리아 북쪽의 사하공화국에 사는 야쿠트족은 원래 역사에서 중앙 아시아에서 온 민족답게, 대부분 나라에서 동중국이 기원이라고 추측되는 가운데 야쿠트족만 따로 떨어져 나타났습니다.

이런 연구에서 실용적으로(?) 쓰려고 만드는 몇 가지 도출 정보로는 "유전변이 몇 개를 봐야 어느 나라 출신인지 알 수 있나?" 같은 게 있는데요. 사실 진짜 실용적이라기보다는, 23andMe같이 개인 유전체학으로 사업하는 데서 고객들의 흥미를 끌기 위한 서비스로 이것보다 재미있는 게 없죠. 그래서 이 논문에서도 그런 연구를 했는데, 한국인과 일본인을 구분하려면 5000개 정도 SNP를 보면 비교적 정확하게 구분할 수 있었다고 하고요. 논문에서는 미국에 사는 중국인들이 조상알아보기마커 1500개를 활용하면 싸게 자기 유전적 조상을 알아볼 수 있지 않겠냐 하긴 하는데.. 사실 유럽인들하고 달리 아시아 출신들은 자기 조상이 어디서 왔는지는 워낙 잘 알아서 새삼 신기할 것도 없지 않을까요? ;;

그나저나 어서 중국 김가장에 사는 사람들과 경주 김씨 종가 남자들 침을 받아다가 23andMe에 보내서 진짜 경주 김씨가 흉노족 후예인지 알아봐서 미스터리를 풀어주세요!