구멍 뚫기
집을 사서 이사오고 나서 전동 드릴을 장만했다. 한국에서는 드릴을 사용해본 적이 없는데 여기서는 드릴을 쓸 일이 자주 생겼다. 벽에 구멍을 뚫는다든가 가구를 조립할 때 드릴이 필요한 경우가 많다. 인건비는 비싸고 내 수입은 적기 때문에 웬만한 작업은 내가 직접 해야 한다. 드릴로 구멍을 뚫는 게 쉬워 보이지만 막상 해보면 만만한 작업이 아니다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
집을 사서 이사오고 나서 전동 드릴을 장만했다. 한국에서는 드릴을 사용해본 적이 없는데 여기서는 드릴을 쓸 일이 자주 생겼다. 벽에 구멍을 뚫는다든가 가구를 조립할 때 드릴이 필요한 경우가 많다. 인건비는 비싸고 내 수입은 적기 때문에 웬만한 작업은 내가 직접 해야 한다. 드릴로 구멍을 뚫는 게 쉬워 보이지만 막상 해보면 만만한 작업이 아니다.
블로그 글에 포함된 코드를 하이라이팅 하기 위해 highlight.js를 사용한다. highlight.js 역시 별도 JavaScript 파일을 로딩한 다음 페이지에 포함된 코드를 찾아 렌더링하는 식이라 페이지를 로드할 때마다 매번 다시 렌더링하는 비효율이 발생한다. MathJax 만큼 느리진 않지만, 가끔씩 네트워크 속도가 느린 환경에서 코드 블록이 울컥 하는 현상을 볼 수 있다. MathJax 서버측 렌더링에서 했던 것처럼 코드도 사이트를 생성할 때 한꺼번에 렌더링해두면 좋을 것 같다.
블로그 글에 포함된 수식을 표현하기 위해 MathJax를 사용한다. MathJax 덕분에 수식을 멋지게 표현할 수 있지만 수식 렌더링 속도가 매우 느리다. 브라우저에서 처음 로드했을 때 페이지 안에 소스 코드가 그대로 있다. 이후 로딩된 JavaScript가 코드를 HTML/CSS, SVG 또는 MathML로 변환하고, 브라우저가 변환된 결과를 화면에 표시한다.
JUnit 4에서는 매개변수 테스트(parameterized test)를 작성할 때 불편한 점이 몇 가지 있다. 가장 대표적인 단점은 다음과 같이 정리할 수 있겠다.
어떤 문자열이 다른 문자열의 회전 문자열인지 검사하려면 어떻게 해야 할까? 코딩 인터뷰에 많이 나올 듯 한 문제다. 트위터에서 이 문제를 보고는 잠깐 생각해 보았지만 풀이가 금방 떠오르지 않았다. 한동안 이런 종류의 퀴즈 풀이를 하지 않아서 그런 것 같다.
Emacs에는 org-mode란 도구가 있다. 할 일 목록, 일정, 작업 로그를 정리할 때 유용하다. 행열 추가/삭제, 행열 이동 등 기본 표 편집도 가능하며, 표 안에서 간단한 계산도 가능하다. 여기서는 표 계산 방법을 간단히 살펴보려 한다. 이 글은 Org as a spreadsheet system: a short introduction을 참고해 정리한 것이다.
나는 Vim과 Emacs를 모두 사용할 줄 알지만, 콘솔에서 간단한 로그 파일이나 설정 파일을 잠시 확인할 때를 빼고는 Emacs를 사용한다. 얼마 전 트위터에서 Vim의 흥미로운 기능을 봤다. 숫자 범위를 포함한 텍스트를 간단히 생성하는 방법이다.
가끔씩 다이어그램을 그려야 할 때면 파워포인트를 이용했다. 파워포인트로 다이어그램을 그린 다음 스크린 캡쳐 이미지를 사용하는 식이다. 이 방법에는 심각한 단점이 하나 있다. 다이어그램을 수정하기가 매우 귀찮다는 점이다.
프로젝트 오일러의 처음 100문제를 모두 풀어 블로그에 정리했다. 처음 맛보기로 몇 문제 풀어보고는 재미를 붙여 '100번까지 풀어보자' 생각했다. 새로운 문제가 계속 추가되고 있었고 뒤로 갈수록 문제도 어려워졌기 때문에 모든 문제를 풀기는 무리일 것 같았고, 100번 정도까지가 적당해 보였다.
Java에 람다 표현식이 추가된 지 꽤 됐지만, 람다 표현식이 컴파일러를 통해 익명 클래스로 변환되는 편의 문법 정도로 생각하는 경우가 많은 것 같다. 컴파일러가 생성한 클래스 파일을 살펴보고, 람다 표현식이 실제로 어떻게 컴파일 되는지 확인해보려 한다.