Printing in Sublime Text 3

놀랍게도 Sublime Text에는 Print 기능을 기본적으로 제공하지 않는다.

우선순위가 높지 않아서 개발되지 않았다는데, 사실 몇 년 째 사용하면서 이제서야 알아챘다는 점에서 수긍하지 않을 수 없다. (그래도 어색함)

Forum을 보니 이런 대화도 보인다.

– It’s one of the most basic features in a text editor is printing.
– Nope, Editor is for editing.

Editor 시장 초기도 아닌데 이런 논란이 아직 있다는 것이 새삼 놀랍다.

7년의 밤

정말 오랜만에 읽은 한국소설.

서스펜스 소설이라 하기엔 일견 단순한 줄거리에 등장인물도 많지 않지만, 각 인물의 복잡다단한 감정선의 묘사나 잘 편집된 영화를 보는 듯한 서술은 소설에 굉장한 흡입력을 부여한다.
이 때문인지 너무 감정이입이 되어 버려서 소설 초중반에 나오는 세령의 학대, 그리고 죽음 장면은 읽기 너무 힘들었다. (거의 읽는 것을 포기할 뻔 했다)

소설 속 주인공들은 종종 최선이 아닌, 결과적으로 최악이 되는 그런 선택들을 하게 된다.
그 이유들은 결코 단선적이지 않은데, 우리네 현실에서 매순간 일어나는 선택들 역시 그러하다는 점에서 상당한 설득력이 있다.
특히 최현식과 강은주, 두 인물에 대해서는 많은 생각을 하게 만든다. 나라면 어떻게 했을까, 나라면 과연 다른 선택을 했을까 하는.

또한 유약함과 소심함으로 인해 결국 파국으로 치닫게 되는 최현식이라는 인물에게 있어서 절대 흔들리지 않았던 것은 부성애였다는 점에서, 소설 마지막 페이지의 플래시백 장면은 한참을 가슴 먹먹하게 만들었다.

아쉬운 점이라면, 사족처럼 보이는 영재의 어린 시절 이야기보다는 차라리 은주의 마지막 장면이나 딸을 버리고 떠난 하영의 결정 등이 더 설득력있게 서술되었으면 하는 것이었다.

잘 짜여진 구성, 무엇보다 이야기를 풀어가는 문체의 힘이 큰 소설인데 이를 영화화한다니 기대반 우려반이다.

20161025_7년의 밤

언어와 환경

2주 전부터 미친듯이 진행된 수정요건의 반영으로 인해 개발자들과 평소보다 훨씬 많은 말을 해야 했다.

영어란 참 특이하다.
Native speaker와 같이 있으면 그만큼 수준이 올라가고, 그리 유창하지 못한 사람들과 이야기하면 그만큼 내 수준도 하향평준화 된다.
예를 들어 London에 머무를 때는 소위 ‘버벅거림’이 거의 없이 제법 유창하게 의사소통을 하지만, 같이 있는 스페인인 개발자나 폴란드인 테스터들과 이야기할 때는 종종 막힐 때가 있다.

이런 것이 일반적이라면 비영어권 지역에서 영어를 배우는 것이(예를 들어 한국의 학원에서) 과연 효과가 있을까, 하는 의구심이 든다.
다른 언어도 마찬가지이고.

나만 그런거라면야 뭐, 상관없지만서도.

nGrinder에서 Groovy script 사용시 java.lang.UnsupportedOperationException 발생

nGrinder에서 Groovy Maven Project를 만들어 사용할 때, 특히 IntelliJ를 사용하려면 Import Groovy Maven Project in IntelliJ를 참조하면 된다.

잘 될 것 같았는데 Unit test에서 시작부터 아래와 같은 에러가 발생했다.

한참을 검색해본 결과 Eclipse의 경우 build 설정시 Groovy 라이브러리를 지우는 과정이 있다는 것을 알게 되었다.
혹시나 IntelliJ에서도 같은 문제일까 해서 Groovy libraries를 모두 지웠더니(File > Project Structure) 아무 문제 없이 잘 작동하기 시작했다.

Groovy를 사용하면 종종 예상치 못한 일을 만나게 된다고 하는데 – 예를 들어 “Using Groovy? Prepare for the unexpected!” – 이런 일을 겪을 때면 아무래도 이 언어의 ‘한계’ 같은 것이 느껴진다.

Java 7의 Project Coin 중 몇가지

Java 7 (그리고 8)에 포함된 Project Coin 중 유용하지만 (상대적으로) 자주 언급되지 않은 몇 가지.

Binary Literals

Java 7 이전에는 binary 값으로 무언가 하려 하면 ‘parseX’ 메소드를 써야 했다.
예를 들어 “1100110”을 십진수 102로 변수에 지정하려면 아래와 같았다.

하지만 Java 7 부터는 아래와 같다. (왠지 너무나 당연하다)

또다른 재미있는 것 하나는, 긴 숫자 사이에 ‘_’ (underscore)를 넣어 표현할 수 있다는 것이다. (Ruby에서 아이디어를 가져왔다고 한다)
이 ‘_’는 compiler가 나중에 다 지워버리기 때문에 상관없다.

아래 예를 보면 가독성이 확실히 차이남을 알 수 있다.

TWR(Try-with-resources)

Project Coin 쪽에 본 기능에 대한 제안이 도착했을 때 밝혀진 놀라운 사실 하나는, JDK 내 close()를 사용한 code 60% 이상이 bug를 내포하고 있었다는 것이다. (사실 사용한 resource를 100% 확실하게 close 하는 것이 쉽진 않다)

아래 내용은 TWGJD(The Well-Grounded Java Developer, 2013)에서 가져온 것이다.

코드를 보면 InputStream이나 File (즉 OutputStream) 어느 쪽에서도 뭔 일이 벌어질 수 있고, 특히 이런 식으로 exception이 엉켜있게 되면 문제가 생겼을 때 처리하기 여간 성가신 것이 아니다.

그래서, 아래와 같은 문법이 등장했다.
즉 exception이 발생하게 되면 자동으로 모든 열려있는 resource를 close 해준다.

한가지 주의할 점은, 아래와 같은 code는 ObjectInputStream 생성 중 에러가 발생할 경우 FileInputStream을 close 하지 못할 수 있다.

해결책은, 좀 덜 멋있더라도(?) 분리해놓으면 된다.
아래와 같이.

Windows 10 무료 업그레이드 하지 않기로 했다

이유는,

  • 현재 Windows 7 사용에 아무 문제 없다. 요즈음 대부분 application은 web 용이기 때문에 더더욱.
  • 한국 인터넷뱅킹 환경에서 문제를 일으키는 Edge browser 대신 IE 11을 사용할 수 있다고 하지만, 좀 번거로운 절차들이 필요하다. 하지만 Windows 7에서는 아무 문제 없다.
  • 현재 사용하는 10년 가까이 된 PC를 SSD 장착 후 아무 문제 없이 사용하고 있다. 적어도 Windows 10은 7 보다 시스템 요구사항이 높을 텐데 무리할 필요 없다.
  • Windows 7은 2020년까지 지원을 한다는 것 같으니 그때 가서 새로운 PC를 살 때 같이 구매하는 것이 나을 듯 하다. 노트북을 살 확률이 높고, 그 경우 Windows bundle을 같이 구매하면 될 듯. (아니면 그땐 크롬북을 구매하려나…)
  • 아래 글도 결정에 도움을 주었다.

그러나 윈도우 10 무료 업그레이드는 예전처럼 제품키를 주는 것이 아니라 해당 기기에 대한 디지털 인증을 해주는 방식이라 PC를 교체하거나 업그레이드 할 경우 윈도우 10을 쓰지 못하게 될 수도 있다. MS의 무료 업그레이드 정책이 데스크탑(핵심 부품 교체 가능한) PC가 아닌 노트북이나 태블릿 같은 완제품에 맞춰 책정됐기 때문이다. 그런데 이런 완제품은 어차피 새로 구입할 때 윈도우 10이 설치되어 있을테니 무료 업그레이드에 목을 멜 이유가 없다.

또한 윈도우 7 사용자들이 굳이 윈도우 10으로 넘어가야 할만큼 지금 PC 사용에 불편을 느끼지 않는다는 것도 있다. 윈도우 8/8.1은 처음부터 터치스크린 입력과 태블릿에 초점을 맞춰 억지로 만들었기 때문에 차라리 윈도우 10으로 넘어가는 쪽이 낫지만, 윈도우 7은 키보드와 마우스를 쓰는 전통적인 PC 환경에 완벽히 최적화된 운영체제다. 하드웨어 변경이 필요한 윈도우 10 새 기능은 쓸 수 없는데 괜히 잘 돌아가는 윈도우 7에서 바꿨다가 업그레이드 중에 문제가 생기면 A/S 비용이 나갈 수도 있다.

영화 기법 관련 정보를 찾다가

Vertigo Effect(Dolly Zoom), 몽타주 기법 등에 대해 조금 더 알고 싶어서 루이스 자네티의 ‘영화의 이해’를 다시 펼쳐보았다.

잘 읽히는 책이지만 방대한 양의 정보를 담고 있는 터라 빠르게 읽고 치울 수 있는 책은 아니다.

몇 부분 정독하다가 문득 YouTube에서 관련 컨텐츠를 찾아봐야겠다는 생각이 들어 찾아보았는데 이런, YouTube가 정답이었다.

책과 구글링은 각기 장단점이 있지만, 적어도 단편적인 지식(또는 즉각적인 대답)을 취하는 데에서 책은 더이상 답이 아니다.