만화로 나누는 자유/오픈소스 소프트웨어 이야기

드디어 만화 그리기가 제 궤도에 오른 것 같다. 언젠가 joone.net 도메인으로 제대로된 만화를 연재해보고 싶었는데, 이제야 정기적으로 만화를 올리게 되었다. 여유 시간에 만화를 그린다는 것은 시간과의 싸움이다. 그래서 빨리 그릴 수 방법을 찾는데 오랜 시간이 걸렸다. 현재는 iPad Pro에서 그리기 부터 웹사이트에 올리는 모든 작업이 다 가능하다. 그 다음 염두에 두는 것은 정확성이다. 그냥 만화가 아니라 뭔가 지식을 전달하기 때문에 항상 잘못된 내용이 있나 없나 점검하는 것도 중요하고 시간이 많이 걸리는 일이다. 만화는 글 보다 재미는 주지만 많은 정보를 주기에는 부족하다. 그래서 가능하면 많이 링크도 걸고 참고 자료도 추가하고 있다. 비록, 재미없는 주제지만, 나름 재미를 주려고 하는데, ㅎㅎ 쉽지는 않다.

 

Android Wear 2.0 at Google I/O 2016

There were four sessions about Android Wear 2.0, which shows Android wear is becoming more important. I’d like to summarize one session and share session videos here.

What’s new in Android Wear 2.0?


Google introduced Android Wear 2.0 at Google I/O last week. There are many new features in 2.0, but I’d like to mention some of the feature:

The best thing is that Android Wear 2.0 smartwatches will be able to connect directly to the internet, instead of having to rely on a paired connection to a phone. The users can connect to the internet over Wi-Fi, LTE, or even by a phone over Bluetooth, so iPhone users  who use Android War can use all the features of Android Wear as Android users.

Android Wear 2.0 also allows you to install apps directly to watches(o/), instead of requiring them to be bundled in phone apps. So users will be able to browse and install Android Wear apps from Google Play Store right on the watch itself.

In addition, UI is more optimized for round display. The launcher and scroll bar are good examples. Currently, it only supports two watches: LG urbane 2nd edition and Huawei watch as developer’s preview. Android Wear 2.0 includes the Android input method framework (IMF), which  allows users to enter text on smart watches using the system default IME or third party IMEs.

There are more sessions about Android Wear 2.0:

Android Wear 2.0: Building Apps with Material Design

Android Wear 2.0: Making Watch Apps more Standalone

Android Wear 2.0: Watch faces and Complications

References

지브리 영화 음악 모음집

우연히 지브리 스튜디오 작품 중, 조 히사이시가 작곡한 영화 음악 앨범만 CD로 묶어서 작은 상자에 담은 상품을 알게 되었다. 미야자끼 하야오의 팬으로서 이 CD 세트를 그냥 지나갈 수 없어서 어렵게 구하게 되었다. 이번 박스셋은 기존에 나온 CD를 그냥 포장한 것이 아니라 오리지널 LP를  그대로 CD에 적용해서, 멀리서 보면 진짜 LP처럼 보인다. 게다가 HQ CD라는 저장 방식으로 좀 더 나은 음질을 제공한다고 한다. 물론, 좋은 오디오가 아니면 구분하기 어려울 듯 싶다.

일부는 이미 지인을 통해 일본에서 구입한 것도 있지만, 비교적 최근에 개봉작은 CD를 갖고 있지 않았고 라퓨타 같은 경우 미국 시장에서 새로 녹음한 버전도 추가되어 여러면으로 가치가 있는 박스셋이다. 게다가 한국에서 출시된 것은 지브리 앨범 중에는 일본 노래가 빠진 경우도 있어서, 오리지널 앨범이 필요하긴 했었다.

계속 음악은 듣고 있지만, 조 히사이시의 음악이 없었다면, 미야자끼 하야오 만화 영화는 지금 같은 평가를 못받았을 것 같다. 그 만큼 두 사람의 조화가 작품을 더 빛나게 했고 감동을 주었다. 세월을 지나도 두 사람의 창작은 전혀 무디지 않고 계속해서 아름다운 작품을 만든 것으로 보아, 서로가 작품으로 발전하는 관계였던 것 같다.

요즘 CD매체는 갈수록 인기가 떨어지고 오히려 LP가 다시 각광을 받고 있다고 한다. 이런 흐름을 타서 다시 한번 LP로 OST가 다시 나오면 좋겠다. 무엇보다 새 영화가 나와야 하는데, 이제 두 사람의 시대가 저무는 것 같아 아쉽다.

 

큐브 가꾸기

한국에서 보통 사무실을 큐브 형태로 꾸미지는 않는다. 파티션은 있지만 팀간에는 완전히 개방된 형태가 많다. 이렇게 해야 더 많은 사람들은 배치할 수 있으니, 당연할 수도 있다. 미국의 경우에는 전통적인 큐브 형태가 여전히 많이 사용지만(영화 Matrix에 나온다), 얼마전 부터 facebook이나 Google같은 경우 직원간의 원할한 소통을 위해 큐브를 없애고 한국 처럼 바꾸고 있다. 이런 형태를 bull pen cube라고 부른다.

재미있는 것은 큐브는 자기 공간이며 큐브를 자기 입맛에 맞게 꾸밀 수 있는데, 우리의 상상을 벗어난 것이 많다. 지붕을 만드는 경우도 있고, 벽지를 붙이기도 한다. 액션 피규어나 레고로 큐브를 꾸미는 것은 아주 일반적이다. 영화 포스터도 흔하다. 재밌는 만화나 신문 기사를 스크랩해서 붙여놓는 경우도 있다. 지나가면서 보라는 것이다. 사실 미국에서 일하면서 큐브를 책으만 꾸며 놨는데, 뭔가 재밌는 것을 채워놓아야 할 것 같다. 큐브도 그 사람을 나타내는 것이라, 너무 무신경하거나 지저분하게 놔두면 안된다. 적어도 “난 이런 사람이고 이렇게 멋진 상상력을 갖고 있어요”라고 큐브를 통해 말해야한다.

Ernest & Celestine

얼마전 Amazon Prime에서 우연히 본 올 최고 애니메이션 Ernest & Celestine의 제작 과정을 담은 비디오다.  배경은 수채화로 그리고, Flash로 애니메이션을 만들었다고 한다. 이 정도로 2D의 아름다움을 잘 표현한 매니메이션도 드물 듯. 자세한 것은 제작과정을 소개한 블로그를 참고.

참고

 

Blog articles about Crosswalk

The best benefit of maintaining open source project is to let other people join the project. Fixing bugs is the best thing, but it is also good to post blog articles about the project. I found a blog site blog site that introduced Crosswalk project. Although the articles was written in Korean, it also introduced how to make a patch and submit the patch, which is helpful for people who want to contribute to open source project. Here are the blog articles:

 

농담 같은 마소의 휴간 소식

세상이 많이 변했나 보다. 마소가 휴간 소식을 알렸다. 말이 휴간이지, 사실상 폐간이라고 한다. 80년대 중반 부터 마소를 보고 매달 사서 보던 때도 있었다. 그리고, 독자에서 필자로 글을 쓴 적도 있었다. 마지막으로 마소를 샀을 때가 아마 2012년 정도였던 것 같다. 그때까지도 흥미로운 기사가 많이 있었는데, 물론, 계속 얇아져만 가는 마소가 얼마나 버틸 수 있을까 살짝 걱정은 했었다. 하지만, 이렇게 갑자기 폐간되리라고는 생각지 못했다.

수 많은 컴퓨터 잡지가 폐간되었다. 그리고 그것들은 다른 개발 관련 웹사이트, 커뮤니티, 블로그, 트위터 등으로 대체되었다. 그래도 뭔가 잘 정리된 잡지는 필요한데, 세상이 변한 것인지 한국 SW개발자가 줄어든 것인지 알 수는 없다. 확실한 것은 새로 시작하는 SW개발자는 분명 줄어들었고, 그들에게 좋은 정보를 주는 잡지의 필요성도 줄어들었을 것이다.

과연 마소의 대안이 필요할까? 필요하다면, 모든 SW개발자에게 꿈과 희망을 줄 수 있는 그런 대안을 찾을 수 있을까?

자동차 그리고 소프트웨어

올초에 Eye Sight라는 새로운 기능이 장착된 스바루차를 샀다. 앞유리에 두개의 카메라가 달려있는데, 정면 추돌을 미리 감지해서 자동으로 브레이크를 동작시키는 기능과 차선을 벗어나거나 앞차가 출발하면 경고음을 내도록 하는 기능을 제공한다. 뿐만 아니라, Adaptive Cruise라고 해서 크로즈 기능을 켰을 때, 따로 가속과 제동을 하지 않더라고 스스로 속도를 조정하는 기능도 갖추고 있다. 이 기능은 장거리 운전할 때, 발이 자유로울 수 있어서 정말 편하다. 이러한 반자동 자동 주행 기능은 잘 동작하면 큰사고를 막을 수 있지만, 때로는 소프트웨어 버그로 인해 또 다른 사고로 이어질 수도 있다. 이런 염려는 현실화되어, 얼마전 스바루는 Eye Sight에 결함을 발견하고 리콜을 단행했다.

문제는 버그 패치다. 대부분 모바일 디스바이스는 네트웍을 이용해서 쉽게 업데이트를 할 수 있지만, 수천만원짜리 자동차는 서비스 센터에 직접 방문해서 업데이트를 해야 한다(테슬라 자동차는 예외. 모두 네트웍 기능을 갖추고 있다고 한다). 이것이 강제 사항이 아니라서 치명적인 사고로 이어질 수 있다는 점이다. 이렇게 자동차에서 소프트웨어 역할을 점점 커가는데 자동차 회사의 마인드는 아직 하드웨어 중심이라 아직도 허술한 부분이 많다.

또 다른 소프트웨어 문제가 자동차에서 발생했다. 바로 폭스바겐 사태이다. 폭스바겐사가 자사 디젤차 소프트웨어를 조작해서 배기 저감 장치를 테스트할 때만 동작하도록 한 것이 밝혀졌다. 깨끗한 디젤차라고 믿고 차를 구입했던 소비자를 결국 속이게 된 것인데, 자동차 엔진에서도 소프트웨어가 이렇게 중요한 역학을 하는지 잘 몰랐었다.

자율 주행 자동차도 뜨거운 감자이다. 앞서 이야기한 Eye Sight도 결국, 자율 주행으로 가기 위한 징검다리 기술이다. 아직 제도나 법적인 부분이 갖추어지지 않아서 자율 주행 자동차는 상용화되고 있지 않지만, 이미 많은 회사에서 기술적 구현을 끝냈고, 상용화 시기만 저울질 하고 있다.

소프트웨어 보안 문제 역시 자동차를 비껴나가지 않았다. 얼마전 Jeep차가 해킹되어 리모트로 엔진이 꺼지는 것을 보여주는 데모가 있었다. 자동차에 인터넷 연결 기능이 기본적으로 추가되면서 해킹의 가능성도 높아졌고 이것이 현실화된 것이다. 다행히 크래커가 해킹한 것이 아니라서 큰 사고로 이어지지는 않았지만, 자칫 잘못하면 큰 혼란으로 발생할 수 있도 있다. 동시에 모든 차가 해킹되어 도로 한가운데서 마음대로 움직인다면고 생각해 보자. 아마 도시 전체가 마비될 수도 있다.

결국, 아마 10년안에 자동차의 주도권도 하드웨어에서 소프트웨어로 옮겨갈 것이다. 이를 위한 자동차 회사와 IT회사간의 경쟁이 치열해질 것이고 자동차 제조에서 소프트웨어 엔지니어 역할과 중요성도 증가할 것이다.

[Code Review] 2. 주석은 대문자로 시작해서 마침표로 끝낸다.

때때로, 리뷰어는 코드에 주석을 추가할 것을 요구하기도 한다. 이럴 때, 가끔 하는 실수가 소문자로 문장을 시작하거나 마침표를 빼먹는 경우이다.

    // to disable logging notImplemented set the DISABLE_NI_WARNING
    // environment variable to 1
    LogNotYetImplemented.state = WTFLogChannelOn;

항상 주석은 대문자로 시작해서 반드시 마침표로 끝내도록 하자.

    // To disable logging notImplemented set the DISABLE_NI_WARNING
    // environment variable to 1.
    LogNotYetImplemented.state = WTFLogChannelOn;

소스 코드와 마찬가지로 주석의 폭도 소스코드의 컬럼(column)수에 맞게 제한해야 한다. 예를 들어, Chromium Project의 경우 80 컬럼으로 제한하고 있다.