러들로

영어 수업이 끝난 다음에도 영어 선생님과 가끔씩 연락을 주고 받는다. 크리스마스에는 카드와 선물을 교환한다. 선생님은 전화로 얘기하자고 하지만 나는 메일을 선호한다. 영어로 듣고 말하는 것보다는 읽고 쓰는 쪽이 부담이 덜하다. 그러던 어느 날 영어 선생님이 남는 방 하나를 에어비앤비로 쓴다는 소식을 들었다.

Read more...

조퇴

거의 다 나았던 기침이 다시 심해졌다. 사무실에서 계속 기침을 했더니 매니저가 사내 메신저로 메시지를 보내왔다.

“너 별로 좋아보이지 않는다. 괜찮냐?”

기침을 하긴 했지만 일을 못할 정도로 심각하다고 생각하지는 않았다.

Read more...

구멍 뚫기

집을 사서 이사오고 나서 전동 드릴을 장만했다. 한국에서는 드릴을 사용해본 적이 없는데 여기서는 드릴을 쓸 일이 자주 생겼다. 벽에 구멍을 뚫는다든가 가구를 조립할 때 드릴이 필요한 경우가 많다. 인건비는 비싸고 내 수입은 적기 때문에 웬만한 작업은 내가 직접 해야 한다. 드릴로 구멍을 뚫는 게 쉬워 보이지만 막상 해보면 만만한 작업이 아니다.

Read more...

highligh.js 서버측 렌더링

블로그 글에 포함된 코드를 하이라이팅 하기 위해 highlight.js를 사용한다. highlight.js 역시 별도 JavaScript 파일을 로딩한 다음 페이지에 포함된 코드를 찾아 렌더링하는 식이라 페이지를 로드할 때마다 매번 다시 렌더링하는 비효율이 발생한다. MathJax 만큼 느리진 않지만, 가끔씩 네트워크 속도가 느린 환경에서 코드 블록이 울컥 하는 현상을 볼 수 있다. MathJax 서버측 렌더링에서 했던 것처럼 코드도 사이트를 생성할 때 한꺼번에 렌더링해두면 좋을 것 같다.

Read more...

MathJax 서버측 렌더링

블로그 글에 포함된 수식을 표현하기 위해 MathJax를 사용한다. MathJax 덕분에 수식을 멋지게 표현할 수 있지만 수식 렌더링 속도가 매우 느리다. 브라우저에서 처음 로드했을 때 페이지 안에 \rm\TeX 소스 코드가 그대로 있다. 이후 로딩된 JavaScript가 \rm\TeX 코드를 HTML/CSS, SVG 또는 MathML로 변환하고, 브라우저가 변환된 결과를 화면에 표시한다.

Read more...

JUnit 5 매개변수 테스트

JUnit 4에서는 매개변수 테스트(parameterized test)를 작성할 때 불편한 점이 몇 가지 있다. 가장 대표적인 단점은 다음과 같이 정리할 수 있겠다.

Read more...

회전 문자열 검사 방법

어떤 문자열이 다른 문자열의 회전 문자열인지 검사하려면 어떻게 해야 할까? 코딩 인터뷰에 많이 나올 듯 한 문제다. 트위터에서 이 문제를 보고는 잠깐 생각해 보았지만 풀이가 금방 떠오르지 않았다. 한동안 이런 종류의 퀴즈 풀이를 하지 않아서 그런 것 같다.

Read more...

org-mode 스프레드시트로 사용하기

Emacs에는 org-mode란 도구가 있다. 할 일 목록, 일정, 작업 로그를 정리할 때 유용하다. 행열 추가/삭제, 행열 이동 등 기본 표 편집도 가능하며, 표 안에서 간단한 계산도 가능하다. 여기서는 표 계산 방법을 간단히 살펴보려 한다. 이 글은 Org as a spreadsheet system: a short introduction을 참고해 정리한 것이다.

Read more...

Emacs: 숫자 범위 포함 텍스트 생성

나는 Vim과 Emacs를 모두 사용할 줄 알지만, 콘솔에서 간단한 로그 파일이나 설정 파일을 잠시 확인할 때를 빼고는 Emacs를 사용한다. 얼마 전 트위터에서 Vim의 흥미로운 기능을 봤다. 숫자 범위를 포함한 텍스트를 간단히 생성하는 방법이다.

Read more...

Emacs: 다이어그램 그리기

가끔씩 다이어그램을 그려야 할 때면 파워포인트를 이용했다. 파워포인트로 다이어그램을 그린 다음 스크린 캡쳐 이미지를 사용하는 식이다. 이 방법에는 심각한 단점이 하나 있다. 다이어그램을 수정하기가 매우 귀찮다는 점이다.

Read more...