Java 프로그래밍을 밥벌이로 삼고 있지만 JDK에 새로 추가된 기능을 공부하고 연습하기를 멈춘지 꽤 된 것 같다. Scala나 Clojure 같은 다른 언어를 공부하기도 했지만 많이 나아가지 못했다. Java에 새로 추가된 기능을 제대로 이해하지 못한 상태에서 기본적인 사용법만 익혀 하루하루를 버티다 보니 점점 바닥이 드러났다. 회사 일을 할 때는 레커시 코드에서 자잘한 기능을 추가하거나 버그를 수정하는 작업만 하다보니 새로운 것을 배울 기회가 많지 않다.
예전에 Eclpse를 쓸 때 알게 된 편리한 기능이 있다. 하나는 Move lines up/down 기능으로 Alt+<up> 또는 Alt+<down> 키로 현재 선택 영역 또는 현재 행을 위/아래로 이동하는 기능이고, 다른 하나는 Duplicate lines 기능으로 Cmd+Alt+<down> 키를 누르면 현재 선택 영역 또는 현재 행을 아래로 복사하는 기능이다.
영어로 대화할 때 'last Friday', 'this Friday', 'next Friday'와 같은 표현을 자주 접한다. 언젠가 'last Monday'와 'this Monday'가 같은 날이 될 수 있다는 얘기를 들었던 생각이 났다. 그땐 '어떻게 그럴 수가 있지?' 하면서도 깊게 생각하지 않고 그냥 넘어갔던 것 같다. 생각난 김에 정확히 알아두는 게 좋겠다 싶어 내 옆 자리에 앉아 있는 영국인 브래드에게 물어봤다.
예전에 어디선가 Scala 코드 15줄로 스도쿠 퍼즐을 풀 수 있다는 글을 본 생각이 났다. 어떤 놀라운 알고리즘이 있나 봤는데 알고보니 CSP(Constraint Satisfaction Problem) 라이브러리를 사용한 것이었다. Clojure에서는 core.logic을 사용해 Scala 풀이와 비슷하게 문제를 풀 수 있다.
지난 4년간 블로그를 생성할 때 Hexo를 사용했는데, 최근 Hugo로 이전했다. StaticGen에서는 정적 사이트 생성기를 깃헙 스타 개수나 트위터 팔로우어 수로 정렬해 볼 수 있다. 4년 전 어떤 프로그램을 쓸까 고민하던 때만 해도 Hexo가 훨씬 인기가 많았던 것 같은데, 지금은 Hugo가 Hexo를 제친 것 같다.