저번 포스팅에서 이야기했었지만, 나는 컴퓨터로 메모를 할 때 vim으로 편집하여 한 디렉토리에 페이지 하나를 파일 하나로 저장하며 버전관리는 git 으로 한다. 원래는 위키엔진을 설치하여 웹브라우저로 보고 편집했지만, 3년전부터 이 방식으로 바꿨다. vim으로 충분히 웹브라우저를 대체할 수 있음을 알았기 때문이다. 위키엔진과 웹브라우저의 조합이 제공해주는 기능을 vim으로 대체하기 위해 다음의 단축키 및 기능들을 사용한다. 링크 따라가기 링크된 … vim을 위키처럼 쓰기 계속 읽기
Deview 2012 소감
9월 17일 코엑스 그랜드볼룸에서 열린 Deview 2012에 다녀왔다. Deview는 2008년 처음 시작한 이래 작년 빼고 다 참석했었다. 그런데 올해는 예비군 훈련일과 겹쳐서 그냥 포기하고 있었는데, 천운인지 태풍으로 인해 예비군 훈련이 취소되는 바람에 Deview에 참석할 수 있었다. 소감이기 때문에 자세한 내용은 생략한다. 각 세션의 내용은 곧 공개될 발표자료를 통해서 확인할 수 있을 것이다. 키노트 약간 늦게 … Deview 2012 소감 계속 읽기
git에서 특정 파일만 남기기 (git 기반 위키에서 특정 파일만 공개하기)
코드저장소에서 실수로 절대 넣어서는 안되는 파일을 넣어 버렸을 때, git의 filter-branch 명령을 사용하면 간단하게 특정 파일만 제외시키고 전체 히스토리를 재구축하는 것이 가능하다. 그러나 반대로 특정 파일만 남기는 것은 조금 까다롭다. filter-branch를 응용해서 남기고자 하는 파일 외에는 모두 삭제하면서 히스토리 전체를 재구축하는 방법이 있긴 한데, 속도도 느리고 잘 동작하게 만들기도 쉽지가 않다. 사실 일반적인 소프트웨어 개발 … git에서 특정 파일만 남기기 (git 기반 위키에서 특정 파일만 공개하기) 계속 읽기
Git의 blob은 어떻게 발음하는가.
Git 메일링 리스트에 문의해 본 결과, 일반명사 blob과 같이 블랍으로 발음하는 것이 맞다고 한다. 사실 이걸 어떻게 발음하는 것이 맞는가에 대해서는 어디에도 명시되어 있지 않다. gitglossary에도 없다. 일반적으로 database에서는 blob이 binary large object라는 의미로 쓰이고, 비랍(bee-lab)으로 발음하지만 Git에서는 그런 의미가 아닌지도 모르겠다. 단 두 명이 답을 주었을 뿐이긴 하지만, 이 메일링 리스트는 Git 개발자와 사용자가 … Git의 blob은 어떻게 발음하는가. 계속 읽기
디스크 공간 절약을 위해 파일을 Git 저장소에 보관하기
SSD를 쓰기 시작하면서 디스크 공간이 굉장히 소중해졌다. 그래서 잘 안 쓰는 파일들은 zip으로 압축해서 저장하곤 하지만 뭔가 파일 하나가 보고 싶을 때는 꺼내기가 좀 불편하다. 대안은 Git bare 저장소로 보관하는 것이다. 이 방법은 공간도 적게 사용하면서 필요할 때 gut 명령으로 간단히 파일을 꺼내 볼 수도 있다. 뿐만 아니라 Git 저장소는 굉장히 공간효율적이다. 때때로 gzip으로 압축했을 … 디스크 공간 절약을 위해 파일을 Git 저장소에 보관하기 계속 읽기
git bisect 응용 – 줄바꿈 문자 잘못 넣은 사람 찾기
나는 언제나 줄바꿈 문자를 '\n'로 통일한다. 내가 참여하는 모든 프로젝트에서도 그러하다. 그러나 윈도 사용자들은 기본적으로 '\r\n'을 사용하도록 되어있으므로, IDE나 편집기에서 혹은 Git에서 설정을 변경해주지 않는 이상 줄바꿈 문자가 '\r\n'이 된다. 이로 인해 다양한 OS를 사용하는 개발자들이 함께 같은 프로젝트에서 개발을 하다보면 내가 작성한 코드에 누군가 '\r\n'을 집어넣어 심란해지는 일이 종종 있다. 누가 집어넣었는지 찾아내고 싶지만 … git bisect 응용 – 줄바꿈 문자 잘못 넣은 사람 찾기 계속 읽기
git으로 버그의 원인 찾기
간만에 공용 저장소에서 커밋들을 pull 해왔을 때, 내 저장소의 코드가 제대로 동작하지 않기 시작하면 정말 난감하기 짝이 없다. 이 때 디버깅이 간단하지 않다면, 천천히 버그의 원인을 찾아보게 된다. 버그의 원인은, 현재 발생하고 있는 버그가 최초로 발생한 커밋에 있을 것이므로 그 커밋을 찾아낼 수 있다면 쉽게 원인도 파악할 수 있을 것이다. bisect로 찾기 bisect --run git … git으로 버그의 원인 찾기 계속 읽기
VirtualBox: Ubuntu 호스트 + Windows 7 게스트(bootcamp)
나는 맥북에어에 MacOSX Lion, Ubuntu 12.04, Windows 7을 모두 설치해서 사용하고 있다. MacOSX를 쓸 때는, Parallels가 워낙 훌륭해서 간단히 부트캠프에 설치된 Windows 7을 잘 인식해서 가상머신으로 사용할 수 있었는데, Ubuntu 12.04 호스트에 VirtualBox를 써보니 알아서 뚝딱 되지는 않았다. 하도 잘 안되서 그냥 윈도 필요할 때 마다 재부팅을 하곤 했었는데, 어제 맘먹고 구글링 좀 해서 성공시켰다. … VirtualBox: Ubuntu 호스트 + Windows 7 게스트(bootcamp) 계속 읽기
구글 캘린더에 자연어로 이벤트 추가하는 자바스크립트 애플리케이션 만들기
구글캘린더에 자연어로 이벤트를 추가하는 아주 간단한 웹 애플리케이션을 만들었다. '굳이' 서버사이드 스크립트를 전혀 사용하지 않고 만들었는데, 첫째는 서버에 부담을 주기 싫었고 둘째는 웹서버가 없어도 로컬에서 웹브라우저만으로 동작할 수 있게 하고 싶었기 때문이다. 여기에서 테스트해볼 수 있다. 소스코드도 거기서 참조하고 있는 자바스크립트 파일들이 전부이다. 만들기 OAuth 인증 요게 가장 난감하다. OAuth 인증과정에서 구글 서버하고 내 서버가 … 구글 캘린더에 자연어로 이벤트 추가하는 자바스크립트 애플리케이션 만들기 계속 읽기
URL의 query에 대해
url에서 query는 ?와 #사이에 있는 부분이다. (( Berners-Lee, T., Fielding, R. and Masinter, L., Uniform Resource Identifier (URI): Generic Syntax RFC 3986, January 2005. )) foo://example.com:8042/over/there?name=ferret#nose _/ ______________/_________/ _________/ __/ | | | | | scheme authority path query fragment | _____________________|__ / / urn:example:animal:ferret:nose query(RFC 3986) 혹은 query string(RFC 3875)이라고 부르기도 한다. 옛날 옛날엔 … URL의 query에 대해 계속 읽기