식당 메뉴 받아보기

매일 밥먹을 때 어느 식당을 갈까 엘리베이터에 서서 고민을 하게 되는데,
메뉴를 알게되면 좀 더 현명한 선택을 할 수 있지 않을까 해서, 학교 홈페이지에서 식단 제공되는 곳이 있나 찾아봤습니다. 오오. 생각보다 간단한 인터페이스로 2주 뒤의 메뉴까지 다 제공해 주고 있군요. +_+

그래서, 한번 파이썬 API로 만들어 봤습니다. 늘 쓰던 BeautifulSoup으로~

매일 파이썬 띄우고 누르고 있을 수도 없고, 학교 홈페이지 들어가기도 귀찮으니 매일 보는 RSS로 띄워놓으면 좋겠다 싶어서 RSS로도 만들어 봤습니다. 흐흐 (동측, 학부, 서측) 매일 새벽 3시에 업데이트될 예정이니 필요하신 분 등록해서 쓰세요~

소스는 svn 곳간에서 받으실 수 있습니다~

Google 개인화 홈페이지에 추가한 화면

리더에 추가하기 버튼 모음

  • 동측: Add to Google
    Add to Hanrss
  • 학부: Add to Google
    Add to Hanrss
  • 서측: Add to Google
    Add to Hanrss

커피향 비단구렁이

오늘은 자바로 된 간단한 프로그램 하나를 받아서 어떻게 컴파일할까 한참 고민을 했습니다. (자바 컴파일 하는 방법을 까먹어서;;) 소스를 보니 무지 간단한 것만 쓰고 별로 길지도 않아서, 얼마 전에 봤던 java2python으로 돌려 봐도 괜찮지 않을까하는 생각이 번뜩!

java2python은 java 소스의 기초적인 문법을 파이썬 문법으로 바꿔주는 것인데, API를 바꿔주지는 않는 간단한 정책을 취하는 놈입니다. 일단 까는데는 파이썬 2.5 이상이 필요하고, ANTLR 파서 라이브러리에 파이썬 지원을 추가해서 깔 줘야합니다. 파이썬 2.5 이상인 이유는 바로 그 A if B else C 문법을 썼기 때문이죠 –;

이렇게 자바의 메인 클래스 형태는 그대로 바로 클래스로 만들고 그걸 끝부분에서 호출해 주는 형태로 만들어줍니다. 다른 부분도 거의 건조체 번역을 보듯 완전 1:1로 번역되어 있는데, FileStream이나 IOException같은 것도 원래 자바 이름 그대로 되어 있습니다. 그래도, +=나 ++가 안에 들어간 부분이나, API가 안 바뀐 부분 몇 줄 고치니까 그런대로 잘 돌아가네요. 🙂

자바 -> 파이썬 포팅하기가 너무 귀찮은 분들은 우선 이걸로 번역해 놓고 손을 보는 것도 괜찮은 방법인 듯 합니다~

리눅스 2.6을 위한 SEED 패치

한국정보보호진흥원(KISA)의 지원으로 리눅스 2.6을 위한 SEED 패치를 만들었습니다.

커널에 넣는 패치이기 때문에 주 목적은 파일시스템을 암호화하는 경우와 IPsec같이 커널에 스택이 있는 네트워크 프로토콜을 사용하는 경우입니다. 항상 이슈가 되어왔던 인터넷 클라이언트로써의 접근성 문제와는 거의 전혀 상관없다고 보셔도 무방합니다. ^^;

그런데, 사실 IPsec이나 cryptfs 양쪽 모두 SEED가 AES에 비해 성능이 좋은 편이 아니기 때문에, 개인이 SEED를 쓸 일은 거의 없을 것 같고, 금융결제원이나 국정원과 관련된 뭔가를 할 때 쓰일 것 같네요. (VPN업체들에서 SEED기반 IPsec을 주로 쓴다고 합니다.)

여하간, 리눅스에 익숙하신 분들은 한번쯤 컴파일하실 일이 있으시면 패치를 해서 해봐주세요~ 🙂 modprobe seed; modprobe tcrypt하고 나서 dmesg를 봐서 seed 관련된 부분에서 모두 pass 했다고 하면 정상동작하는 것입니다. 특히 빅엔디안 머신이나 64비트, 쿼드코어 등등 독특한 환경을 쓰시는 분들 꼭 한번 도와주세요 -ㅇ-; (패치 리뷰도 대환영!)

리눅스에 첫 패치 보내서 들여보내는 작업이 끝나면, 지금 갖고 있는 어셈블리 코드도 적용해서 다시 패치를 보내고 그 다음에는 FreeBSD에도 넣어 볼 생각입니다~

미투에 관한 몇 가지 재미있는 사실~

미투에서 요즘 유행하는 me2app 분위기에 휩쓸려서 뭔가 나와야 할 것 같은 걸 하나 만들어버렸습니다. -ㅇ-; 처음엔 뭔가 재미있을 것 같아서 우다다다 코딩을 했는데, 알고보니 wooil님께서 미리 예견하셨던 것! (제 미래를 다음에 한 번;)

미투에서 제공하는 friends.xml을 이용해서 전체 회원들의 친구 관계를 분석했습니다. 긁은 것은 어제 오후 5시쯤이었으니, 그 이후에 가입하셨거나 친구가 되셨으면 이 글의 통계에서는 무효입니다. 흐흐;

우선 친구 관계에 있어서는 전에 링크 같은 책에서 전세계를 기준으로 했듯이, 다들 알고보면 가까운 사이죠. 미투 친구들은 평균적으로 4.39명 건너 친구들로 묶여져 있고, 가장 먼 친구들까지 해도 6명 안에서 친구입니다. 그러니까, 나-친구1-친구2-친구3-친구4-친구5-그친구 이렇게 하면 다 아는 사람이라는 것인데.. (써놓고 보니 꽤 먼 친구군요;;)
작은 사이트이지만 아직 이 정도 거리로 있는 것을 보면, 아직 친구가 그렇게 많지 않은 분들이 꽤 있는 모양입니다. 🙂

역시 미투 회원은 누구든 예상할 수 있듯, charlz님은 2다리만 건너면 모든 회원과 친구인데, 이건 charlz님이 유일하고, 역시 평균 거리 1.479, 친구의 친구수 627명, 친구 수 346명으로 모두 1위입니다. -ㅇ-

친구 수도 흥미로운데, 미투 친구들은 친구가 평균 13.27명, 친구의 친구까지는 평균 255.63명이 있습니다. 역시나 가장 많은 것은 charlz님이시지만, 친구의 친구까지 포함해도 3명밖에 안 되는 분도 있었습니다. 🙂

친구 수의 분포로 보면, 100명 이상인 분이 charlz, cn_, sumanpark, s2day, ncsoft, djsol, codian 모두 7분이 있군요. 그리고, 그 밑은 분산된 분포로 고루 내려오다가 15~22명 사이인 분이 집중적으로 많고, 친구가 1명이거나 2명인 분도 전체 회원의 35%가 넘었습니다.

자, 그럼 마케팅이나 고객 분석에서 널리 쓰이는 “이 시스템의 평균적인 사용자”를 뽑을 수도 있겠는데요. 통계를 계산한 모든 값에서 가장 평균에 가까운 값을 보인 분은 widyou님입니다. 활동이 많아서 매일 답글에 보이는 회원 외에 다른 분들이 서비스에 대해 어떻게 생각하고 있을지 엿볼 수 있는 분이 아닐까 싶네요~

마지막으로 여기서 사용된 통계 자료를 바탕으로 보통 제공되는 친구 경로 검색 서비스를 하나 웹에서 접근할 수 있게 올려 놓았습니다. —> 미투 친구 찾아가기

알려두기: 혹시 통계 자료에서 본인의 자료가 원치않게 언급된 분들은 제게 알려주시면 삭제해 드리겠습니다.
알려두기2: 저는 미투 초대장이 없답니다~ -O-

알려두기3: CGI에서 css는 ikspres님의 것을 몰래 훔쳐다가 썼습니다. -ㅇ-;

파이썬으로 된 리눅스 배포판

오늘 OSNews에 파이썬으로 된 리눅스 배포판인 Pardus에 대한 소개가 올라왔습니다. 여기저기 언급이나 도메인 이름을 봐서는, 터키 사람들이 주축이 된 것 같은데, 놀랍군요. 우리나라도 이런 걸 하나 만들어야하는데.. 흐흐

어떤 식으로 파이썬을 썼는지에 대한 소개도 나와 있습니다. 젠투가 파이썬을 사용자에게 노출하지 않고 그냥 툴로만 사용한 반면, Pardus는 scons처럼 빌드 스크립트 자체를 다 파이썬으로 작성하게 했군요. 심지어 네트워크 설정, 업그레이드 시나리오, 부팅 스크립트까지도 파이썬으로 되어있는 것이 아주 멋있습니다. 🙂 그래 이제 하드웨어가 웬만큼은 빠르군요 흐흐.

파이썬을 도입하면서 있었던 문제로는 tarfile이나 zipfile모듈과 호환되지 않는 놈들이 어쩌다 하나씩 있었는데, 금방 고치기는 했다는군요. 그리고, 압축파일을 푸는 동안에 메모리를 너무 많이 쓰는 것도 문제였는데, 한꺼번에 다 읽어서 풀지 않고, 적당히 버퍼를 둬서 풀도록 고쳤다고 합니다. 주 로켈이 무려 tr_TR.UTF-8인데, 파이썬에서는 절대로 ASCII외에는 디폴트로 안 만들어주겠다는 정책을 취하고 있어서 불편하다고는 하지만, 뭐 돌아가는 방법이 있으니까.. ^_^

파일 이름으로 다운받기

“아.. BeautifulSoup.py가 필요한 데 웹 브라우저 열기는 귀찮고.. 이걸 어쩌나..” 이런 비슷한 경험이 한 번쯤은 다들 있으실 겁니다. 저도 특히 BeautifulSoup.py랑 rename.pl 같은 것들이나, Python-2.5.tgz 이런 것 괜히 파일이름은 아는데 다운받으려면 검색하고 귀찮아서, 왠지 1줄이면 될 것 같아서 오늘은 작정을 하고 스크립트로 만들었습니다.

썰렁~ 흐흐.. 그런데, 바이너리 파일들은 구글이 운좋은 예감으로 안 튕겨주기 때문에, 결국 그 파일이 링크가 달려있는 페이지로 가는 덕분에 저런 간단한 방법으로는 안 돼서 결국은 또 BeautifulSoup의 도움을 받아서 이렇게 만들었습니다. –; (일이 점점 커지네~)

대충 써 보자면~

그러나, 이름에서도 눈치챌 수 있듯, 재수없으면 안 되는 수가 있으니 너무 기대하고 쓰지는 마세요~ :->

me2day RSS에서 제목에 본문 나오게 하기

예전 orkut 유행을 생각나게 하는 요즘 me2day 광풍에 저도 우일님께서 초대해 주셔서 가입했습니다. ^_^

마침 짧게 쓰는게 오픈룩 오른쪽에 예전에 붙어있던 “싹둑싹둑~” 자리에 대신 넣으면 좋겠다 생각이 들어서, 구글 리더에 등록하고 짠! 하고 봤는데, 글쎄 me2day의 RSS에는 제목에 날짜가 들어가 있어서, 제목만 봐서는 무슨 내용인지 전혀 모르겠더군요.. 흐흐.. 그래서 좀 고민을 하다가 RSS를 받아다가 제목만 넣어주는 CGI를 만들어서 구글리더에게 그 CGI를 바라보도록 했습니다.

혹시 필요하신 분들을 위해 소스를 올립니다~

직장인 연간근로시간과 오픈소스 활동의 관계

애자일 이야기에 올라온 7월까지만 일한다면?이란 글을 읽다가, 인용한 그림을 보고 흠칫 놀랐습니다. 어디선가 많이 본 패턴이 보이는데, 으흠~~ 일을 적게하는 나라들에 유독 FreeBSD에서 굉장히 활동이 많은 국가들이 집중되어 있던 것입니다! 그래, 일을 적게 시켜야 뭘 하든 할 것이 아닌가 싶어서 과연 근무시간과 오픈소스 활동과의 상관 관계에 대해 조사를 해 봤습니다.
뭘 조사하느냐를 결정해야 하는데, 메일링리스트를 보는 것도 좋겠지만, 메일링 리스트는 언어의 제약이 굉장히 많이 작용할 것 같아서 FreeBSD의 PR 데이터베이스를 쓰기로 했습니다. 아무래도, 그냥 패치만 보내도 되고 비교적 짧게 적어도 되니까 꼭 올릴 사람들을 올릴 것 같아서~ 🙂

그래서, 모든 PR 자료를 cvsup으로 받은 다음에 로컬에서 간단하게 뒤져서 분석했습니다. 너무 오래된 자료들은 빼기 위해서 #40000이후만 넣었는데, 40000번이 올라온 것이 대략 2002년 6월 정도 됩니다. 그 이후에 올라온 69374개의 PR 중에서 Received헤더와 From헤더를 토대로 보낸 사람이 사는 국가를 추정했는데, 미국은 FreeBSD 서버들이 미국에 있어서 IP구별이 힘들어서 통계에서 제외하였고, 영국도 알 수 없는 이유로 GeoIP로 검출되지 않았습니다. 결국 남은 것은 총 100개 국가에서 모두 46304개의 PR이 나왔고, 얘네들을 대상으로 분석하기로 했습니다. (사용한 스크립트)


FreeBSD PR수와 근로시간

우선, 대충 생각해 봐도 인구와 활동양은 비례하는 관계가 어느 정도 있을 것이기 때문에, 활동량을 국가의 인구(위키백과에 올라가 있는 최근 자료를 사용)로 나눈 것과 작업량의 상관 관계를 계산했더니 -0.54가 나왔습니다. 아주 높은 것은 아니지만, 그래도 적당히 상관관계가 있다는 것을 암시하는 것 같은 느낌이 오네요~ (위 그래프에서 대충 경향이 약간 있는 것 같죠? ‘ㅇ’)

그 외에도 생각해 보면, 먹고 살기 힘들면 오픈소스 하기가 힘들테니, GDP하고도 어느 정도 관련있지 않을까 해서 계산해 보니까 0.52가 나오네요. 그래서, 한 번 얘네들을 묶어서 예측할 수 있도록 식을 만들어 봤습니다. 우선은 대충 기분으로 이렇게~


Pr=FreeBSD PR수, W=근로시간, G=GDP, Pop=인구

선형 최소자승법을 쓸 수 있게 약간 풀고 넘기고 하면,


Pr=FreeBSD PR수, W=근로시간, G=GDP, Pop=인구

그래서, 이놈을 스크립트를 짜서 분석해 보면, 각각의 계수가 k1=-1.51, k2=14.7, k3=3135.7, k4=-30172.4 정도 나옵니다. (사용한 스크립트) log G가 보통 10내외 인 것을 감안하면, W는 -로 100내외 정도 영향을 미치고, log(GDP)는 상당히 많은 영향을 미쳤군요. 흐흐 역시 샘플이 적어서 식이 좀 이상합니다. -ㅇ-; =3=3


인구1000만명당 FreeBSD PR수와시간의 관계, (붉은색은 예측 기대값)

그래도 대충 그래프 보면 뭔가 보이긴 하죠? ;; 빨간색은 위에서 근사식으로 만든 것을 다시 적용한 값인데, 마음대로 이름을 OBFI라고 붙여봅니다. -O-; 대충 1000만명당 PR 개수 순으로 정렬했을 때, 일하는 시간은 증가하는 경향을 보이고 OBFI는 감소하는 경향이 나타납니다. (상관계수는 0.618)

대충 빨간색보다 파란색이 위에 있는 나라는 환경에 비해 오픈소스 (여기서는 FreeBSD) 활동이 많고, 반대의 경우에는 환경에 비해 활동이 적다고 볼 수 있겠습니다. 일본이나 독일이 오픈소스에서 그렇게 활동을 많이 하는 것 처럼 보여도, 그래프에서는 별로 튀어 나오지 않는 것이 사실은 인구빨인 게 들통났군요~ 그리고, FreeBSD가 유난히 강세인 덴마크와 네덜란드가 역시 예측된 값과 엄청난 차이를 보여주고, 한국과 멕시코는 역시 약세입니다. 그런데, PR을 대상으로 해서 그런지, 아니면 주로 유럽이 대상이라 그런지 생각보다 언어는 그다지 문제가 안 되는 것 같네요. 영어를 주로 쓰는 호주나 뉴질랜드라고 다른 국가들에 비해 특별이 더 튀거나 그런 경향은 없는 것 같습니다. 러시아나 중국이 끼였으면 좀 더 분석이 좋았을텐데 OECD자료이다 보니, 없는게 아쉽네요.


일을 많이 시켜서 오픈소스 못하는 우리나라~

인구 순으로 하면 우리나라도 OECD에서 상당히 높은데, 앞으로 S모기업이나 L모기업 같은 곳을 비롯하여 사회 전반적으로 사원들이 젊은 시절에도 좀 여유롭고 즐겁고 발전하는 삶을 살게 근로시간을 줄여주면 오픈소스 뿐만 아니라, 인문학도 살고, 좋아지지 않을까 생각해 봅니다. 회사일 말고도 재미있는 것이 얼마나 많은데~

소수의 자료만 갖고 작업한 것이라 통계적으로 그다지 정확한 편은 아니지만 너그럽게 글자만 읽은 셈치고 잊어 주세요 =3=3 흐흐

일러두기 — 아일랜드와 아이슬란드도 인구가 너무 적어서 통계에서 제외했습니다.

자리 구경~

이제 컴퓨터도 받고 대충 자리 정리가 끝나서 기념으로
집들이(?)를 한번 해 봅니다. ^.^ 대체로 다 선물 받은 것으로
가득차 있는 것이.. 역시 더불어 사는 인생입니다.;;;

오늘은 대전에도 눈이 무지 많이 왔어요~ 내일 눈싸움이라도
한 판 해야겠네요. 기대된당~ ^^

재미있는 오픈소스 프로젝트 분석 사이트

Brett의 소개글에서
ohloh에 대한 얘기는 처음 들었는데, 오픈소스 프로젝트에 관한
무지 재미있는 사이트를 발견했군요. +_+

예전에 FishEye 같은
프로젝트 소스 변화를 추적해 주는 곳이나,
Coverity같은
소스 품질을 검사해주는 곳은 봤었는데,
여기는 골고루 짬뽕인데다가 디자인도 예쁘고 아주 호감이 갑니다. 으흣. (물론 Coverity처럼 무결성을 검사하는 것은 아닙니다.)

파이썬에 대한 페이지에 가 보면, 주석의 양이나, 코드 크기에서 추산한 유지보수 비용과 소프트웨어의 자산가치, 라이선스의 특성과 잠재적 문제점 같은 것도 알려주고, 코드의 변화에 대해서도 시각적으로 아주 예쁘게 보여주네요~

뉴스를 수집해서 보여주는 것은 BerliOS에서도 했던 것과 비슷한 것 같은데, 그래도 요새는 RSS가 많이 쓰여서 손은 좀 덜 가긴 하겠네요.
CIA처럼 개발자별로 따로
통계를 내 주는 기능도 있는데, 이것도 CIA보다 예쁘게 나오는 것이.. 흐흐 아주 마음에 듭니다. 요새 몇달동안 전혀 커밋 안 한 게 들통나서 얼른 밀린 버그 목록을 좀 봐야겠습니다. –;
-ㅇ- (저는 cjkcodecs의 무식한 데이터 양 덕분에 변경한 라인 수로는 6위 -.-v =3=3)