사무실 이사
회사 사무실이 선릉에서 판교로 이전. 오늘이 이전 후 출근 삼주차. 판교의 좋은 점은 근처에 지인들이 많고 (이전 직장 2개가 이전했거나 이전 중이거나) 그럭저럭 조용한 동네. 나쁜 점은 참 많아서 뭐라고 해야할까. 멀어. 너무 멀다. 서울에서 출퇴근하기에 강남구 아니면 너무 오래 걸림. 천호역 근처에서 출발하는데 집에서 나와서 사무실에 앉을 때까지 50분~ 한시간 20분. (최악의 경우는 중간에 사고차가 막아서 생긴거라쳐도) 버스+광역버스 / 지하철 + 경기버스 조합을 다 써보고 있는데 그다지 편한 조합이 없다 Orz.
Gerrit 메모리 릭 우회하기
코드 리뷰 도구로 gerrit을 사용 중이다. 5월 말?쯤에 gerrit-2.6.x-rc? 로 올렸는데 이 때 부터 문제가 생기기 시작했다. 해당 머신에 할당한 메모리에 따라 다르지만, 대략 3일~일주일 후면 heap 공간이 꽉차서 GC하느라 반응이 없거나, 아니면 아예 OOM으로 죽거나. 그래서 포기하고 crontab에서 아예 restart 하게 수정 (이건 실제로 작업하는 시간대가 명확해서 가능한거고 분산된 팀이면 적용하기 괴로울 듯) Gerrit 메일링 말고 다른 쪽에서 검색한 바로는 apache sshd의 세션이 제대로 안 날아가서 생기는 문제라는 얘기도 있던데 여하간 해결이 난망해 보였음.
NDC 2013: DVCS와 코드리뷰, 자동화를 통한 쾌속개발
올해 NDC에서 발표한 슬라이드 파일은 여기에서: 슬라이드 덱
리뷰: 코딩호러의 이펙티브 프로그래밍
스택오버플로우의 공동 창업자인 제프 앳우드의 글 모음. http://www.codinghorror.com/ 에 연재된 글을 정리한 것도 있고, 새로운 내용도 있다. 인상깊었던 부분을 몇 가지 추려보자면: 회사의 관점에서 스택 오버플로우를 운영하는 것에 대해 커티스 암스트롱의 조언(?)을 이용 저 길로 가, 총알같이 빠르게. 눈앞에 뭐가 나타나면 방향을 틀어 Go that way, really fast. If something gets in your way, turn. 그리고 팀 오라일리가 래리 페이지를 인용한 것을 재인용한 부분: 래리 페이지는 이렇게 말했다. “속도와 좋은 결정 사이에 존재하는 관련성… 빠르고 좋은 결정은 있지만, 느리고 좋은 결정은 없다.
Moving on
4월을 마지막으로 넥슨에서 퇴사. 옮겨갈 곳은 아직 미확정이지만 구직 의사는 없음. 작년에 엔씨소프트에서 넥슨으로 옮겼을 때처럼 몇 가지 장/단점을 애기해보자면: 장점: 장비는 잘 사준다. 2년마다 칼 같이 갈아 주는 걸 몇 번 봤음. 감가상각이 4년이라 4년 단위로 교체해준다던 (물론 난 그 기간에 교체 못 받았다) 곳과는 좀 비교되더라; 프로젝트 특성 때문에 머신이 좀 많이 필요했는데 거의 원하는 댓수만큼 신청해서 잘 썼다. 개발 머신에서 인터넷 접근이 잘 되니 정말 좋았음; 근데 이건 부서마다 다르다.
gerrit 남은 리뷰 수 시각화하기
회사에서 gerrit 이라는 git 기반의 코드 리뷰 도구를 쓴다. gerrit 최근 버전들이 RESTful API를 제공하기 시작했는데, 이를 이용해서 각 날짜 별로 남아있는 리뷰 수를 보여주는 스크립트를 작성했다. 예를 들어 android 프로젝트의 하위 프로젝트인 platform/sdk 에 대해서 그려보면 이런 그래프가 나온다. 대략 작년 1월부터 오늘까지 남은 리뷰 수 통계다 — 실제론 merge 된 것만 계산해서 최근 통계는 좀 안 맞을 수도 있다. 해당 코드는 https://github.com/reinkim/gerrit-graph 에 올려두었다. 좀 naive하긴하지만 편하게 하려니 svg로 그렸다.
신규 웹 서비스 뒷조사(?)해보기
며칠 전 트위터 타임라인에서 https://urigit.com 이란 서비스에 대해 초대권 받는다는 글이 보여서 뒷조사(?)한 후기. 내가 쓰는 방식이 상식적인 방법인진 모르겠지만, 여하튼 대략 다음과 같은 걸 읽어본다. 1. DNS 주소 정보 urigit.com은 올해 1/19에야 등록이 되었고 (그러니까 최종적인 서비스 명칭은 이 시점에야), 등록자는 애조로 스튜디오란 이름이었다. 소개 페이지의 내용도 그렇고 메일 주소가 daum.net 인걸로 봐선 다음 제주 본사에 근무 중인 개발자가 주축인 것으로 보인다. 그리고 DNS 서버는 AWSDNS-* 이다. 서버도 AWS 위에서 돌리고 있음.
한국에서 Windows Live ID로 MacOSX 용 Skype 쓰기
부모님이 손자들과 전화대신 영상 통화하게 하려고 아버지가 구입한 노트북에 Skype 설치. 그리고 iPhone이랑 영상 통화 시도하니 잘 되더라. 폰 들고있기가 좀 불편해서 맥북에도 설치하려고 하는데 큰 문제가 있다. (이건 사실 Windows 7 이전도 공통일 듯) 이 문제 해결하려고 30분 가까이 날렸음. 어흑. 원인: 한국 서비스를 담당한다는 대성 스카이프라는 뭣 같은 놈들이 있다 koscom 공시 정보만 보고 말하자면 시총 1200억원 정도의 “가스 제조 및 공급업” 으로 분류된 회사더라. 여하튼 이 회사가 대성-스카이프란 이름으로 서비스(?
SQLite를 in-memory DB로 쓰기
회사에서 같이 일하는 분이 테스트 프로그램에서 실제 데이터베이스 대신에 SQLite를 쓰는데 문제가 있다는 얘길 하시더라. (실제 데이터베이스에 비해) 너무 느려서, 데이터베이스 쪽과 연동된 코드들이 원하는대로 동작하지 않는다는 것. 그래서 어느 부분이 병목인지 시험해볼 수 있는 팁을 하나 알려드렸다. (SQLite 자체가 문제인지, 아니면 주변 로직이 문제인지 검사하는 팁이라고 좀 더 정확하겠다) SQLite 연결을 생성할 때 파일 경로 대신에 :memory: 를 주는 것. 이러면 in-memory DB 처럼 동작한다. 다만 여기엔 거대한 문제가 있다.
Linux 데스크탑에 ssd + hdd 구성이면 파티션은 어떻게?
내일 입사하시는 분이 사용할 용도로 데스크탑 머신 + 모니터(U2412M) 두 대가 왔다. 포장 풀고, 등록된 MAC 주소가지고 도메인 주소 설정하고, PXE 로 OS 설치 시작. 현재 설정된 preseed가 작년에 지급되던 데스크탑(i7-2600, hdd 구성) 기준이라, 이번에 지급되기 시작한 데스크탑(i5-3750, ssd + hdd 구성) 이랑 좀 안 맞아서 수동 설치를 해봤다. 좀 고민하다가 결국엔 / 와 swap 용으로 hdd를 (boot flag 걸고) /home 용으로 ssd를 설정했다. 빌드를 하거나 뭘 하거나 대부분은 ssd에서 할테고, 프로그램 류는 한 번 page cache에 올라가선 아마 안 내려올테니 그냥 잘 돌거라고 믿기로 했다.