페이지

2012년 12월 30일 일요일

그놈 한국 GNOME Korea


올해 블로그 업데이트가 뜸하다는 이야기를 들었다. 사실, 블로그를 안하는 것은 아닌데, 여기 보다GNOME Korea 블로그에 글을 많이 올렸다. 여기 올라갈 것이 그쪽에 다 올라간 것이다.

올해 1월부터 6월까지 GNOME Tech Talks을 운영했다. 반응은 좋았고 지금은 홍영기님이 맡아서 운영해주시고 있다. 매달 세미나 결과를 GNOME Korea 블로그에 올렸고, 영문으로도 작성에서 다른 블로그에 올렸다.

왜 이렇게 GNOME Korea에 활동에 열심이였을까? 그건 GNOME이 오픈소스 생태계에 중요한 역할을 하고 있다고 생각하기 때문이다. 아시다시피, Ubuntu, Fedora 등 대부분의 리눅스 배포판이 GNOME Desktop을 기반으로 하고 있으고, 리눅스 기반 모바일 플랫폼인 Maemo, Meego, Tizen 모두 GNOME Platform기반에 동작을 한다. 이외 DTV, eBook Reader와 같은 임베디드 장비에서도 사용되고 있다. 

사실 예전에는 Mobile Firefox에 대한 관심으로 Mozilla 커뮤니티 활동에 열심이였으나, Desktop Summit에 참석하고 GNOME Maintainer들을 만나면서 GNOME이 좀 더 큰 영향력을 갖는 오픈소스 프로젝트라는 생각이 들었다. Mozilla는 주요 개발자들이 Mozilla Corporation소속이라, 특히 개발자 그룹과 어울리는 것이 쉽지 않았다. 하지만, GNOME은 특별히 어느 회사가 이끄는 프로젝트가 아니라, 다양한 회사에서 투자하고 참여하는 프로젝트라 뭔가 더 자유롭고 활기가 넘친다. 특히 남미, 스페인쪽 친구들이 굉장히 활발하게 참여하는 부분이 매우 인상적이다. 물론, Mozilla도 무척 중요한 프로젝트이다. 다행히 Channy님이 다른 분들과 같이 잘 이끌주어서 활발하게 잘 운영되고 있다. 하지만, GNOME Korea는 그렇지 못했다. 바깥 분위기 달리 오프모임도 없었고 특별히 누가 주도적으로 리드한다는 느낌을 못받았다. 물론, 창우님 주도로 번역은 아주 활발하지만, Channy님 같이 외부와의 만남을 주도할 만한 역할이 없는 것이 아쉬웠다.  IRC, mailing list는 살아있었지만, 홈페이지가 죽어있어서 다른 사람들이 GNOME Korea 활동에 대해 알 수 있는 방법이 없었다.  우선, 홈페이지를 대충 만들고 사비를 털어 domain을 연장했다. 블로그도 만들고 오프 모임을 시작하기로 했다. 다행히 구글코리아에서 장소 지원을 받게 되어 비용 걱정 없이 매달 세미나를 운영할 수 있었다. 이 자리 빌어 감사를! 새로 옮긴 직장 때문에 미국에 오게 되어 현재는 영기님이 잘 맡아서 운영해주시고 있고 GNOME Asia Summit도 유치하게 되었다. 이 부분은 사실 나도 머뭇거린 부분인데, 유치한 후 뒷감당이 어떻게 할 수 있을까 하는 걱정때문이였다. 다행히 영기님이 주도적으로 유치에 힘쓴 결과, 베이징팀과 최종 경쟁에서 한국팀으로 결정되었다. 내년 5월말 GNOME Asia Seoul이 무척 기대가 된다.

사실 우리나라에 GNOME 개발자가 무척 많다. 우리가 사용하는 많은 전자 제품 내부에는 GNOME Project에서 개발된 코드들이 사용되고 있기 때문이다.  하지만, 이 분들이 밖으로 나와서 자신의 지식을 나누고 외부 활동도 하면 좋은데, 바쁜 회사일로 인해 그렇지 못해 아쉬웠다. 그래서 GNOME Tech talks을 통해 이 분들이 기존 커뮤니티와 만나고 함께 지식을 나누는 계기가 되기를 바랬고, 실제로 학생이나 취미로 개발하는 분들 뿐만 아니라, 프로 개발자 분들이 강의를 많이 해주셨다.
이 자리를 빌어 다시 한번 감사를! 그리고 그놈 한글 번역팀에도 무한한 감사를, 그 분들이 없으면 한글화된 우분투를 사용할 수 없었을 것이다.

2013년이 다가온다. 내년에 더 많은 우리나라 개발자 GNOME Project에서 활동하는 모습을 봤으면 좋겠고, GNOME Asia Seoul이 성공적으로 개최되기를 기원한다.

2012년 2월 26일 일요일

한국인/국내기업은 얼마나 Linux Kernel에 기여할까?

올림픽에는 원래 공식 순위가 없다고 한다. 그래서 나라마다 순위를 정하는 기준이 다르고, 우리나라는 유독 금매달에 집착해 순위를 정한다. 나도 그런 한국 사람인지 몰라도, 한국과 관련된 높은 순위에 열광하고 의미를 부여하는 것을 좋아하는 것 같다. 

Linux Foundation에서는 Kernel Git Repository를 분석해서 매년 누가 얼마나 코드를 기여하는지 순위를 발표하고 있다. 개인별 순위 부터 기업별 순위를 매기고 있는데, 2010년 자료에 흥미로운 결과가 있어서 소개해 본다.
(The above numbers are drawn from the entire git repository history, starting with 2.6.12)

허태준님은 2007년에 이 보고서를 통해 국내 오픈소스 커뮤니티에 알려지기 시작했다. "Linux Kernel Maintainer중에 한국인 이름이 있다. 이 분이 kldp.org에 문서를 등록한 것으로 보아 한국인이 맞다."등등. 결국,  KLDP 컨퍼런스에도 Linux Kernel 참여에 대해 발표를 하기도 했다

위 순위를 보면, 단순히 참여 수준이 아니라, 8위에 랭크되어 있는 것을 알 수 있다. 곧 결혼하신다 하니, 내년에는 순위가 좀 떨어질 것 같다. ^^; 현재 Google에서 일하고 있으며 내일 구글 오픈소스 라운드테이블 패널 중 한분으로 Linux Kernel 개발을 소개할 예정이다. 여기 참석할 분은 사인을 받으면 좋을 것 같다. :-)

(The picture since 2.6.30)
삼성전자가 2010년 회사 기여 순위에 올라온 것은 무척 반가운 일이다. 국내 기업이 Linux Kernel에 이렇게 많이 기여하고 있는지 모르는 분이 많을 것이다. 아쉽게도, 이런 사실이 언론을 통해 알려진 적이 없는 것 같다. 많은 사람들이 대한민국 소프트웨어 위기를 말하는데, 이 자료를 보면 작은 희망을 갖게 된다. 이런 배경인지 몰라도 삼성전자가 안드로이드 스마트폰에 무척 강한 모습을 보이고 있다.  

삼성전자 김국진님도 역시 내일 구글 행사에 패널로 참여하므로 그 분의 Kernel개발 이야기를 들어볼 수 있을 것 같다. 이외에 본인이 아는바로 내일 역시 패널로 참석하는 LG전자의 김남형님이 활발하게 활동 중이다. 그리고, 얼마전까지 Redhat에서 일했던 김민찬님도 활발한 Kernel 개발자이다.

Linux Kernel 개발 참여는 많은 개발자의 꿈이기도 하다. 내일 구글 행사에 참여하는 많은 분들이 이런 순위 결과를 통해 자극을 받고 자신감을 가지면 좋을 것 같다. 실력도 중요하지만, 열정이 가장 중요한 것 같다. 시간은 걸리겠지만 꾸준한 관심과 참여로, 언젠가 이런 순위에 이름을 올릴 수 있는 또 다른 한국인 개발자가 나타나기를 기대해 본다.

자료 출처: Linux Kernel Development: How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It, 2010.12

2012년 2월 20일 월요일

2012년 1,2월 브라우저 기술 동향

제13차 W3C HTML5 KIG(Korean Interest Group) 회의에서 발표한 최근 브라우저 기술 동향을 정리해보았습니다.
몇가지 특징을 살펴보면,
  1. Remote Debugging
  2. SPDY, SSL Faststart
  3. Hardware Accelerated Graphics
  4. V8
  5. Navigation Timing
  6. Large persistent cache
  7. requestAnimationFrame
  8. Preloading
  9. HTML5 APIs
HTML5 Feature를 살펴보면,
  1. AppCache
  2. FileSystem and File APIs (File, FileList, FileReader, Blob)
  3. localStorage for storing simple key-value pairs
  4. WebSQL for relational data (deprecated)
  5. IndexedDB
지원하는 Device API를 살펴보면,
  1. Geolocation API for accessing location
  2. HTML media capture for camera access
  3. Device orientation
  4. Android Intent URIs such as tel: and geo: that give access to the dialer and Google maps
FAQ 가운데, 중요한 것을 살펴보면,
  1. Is Chrome for Android Beta open source?
Android용 Chrome브라우저는 소스코드가 공개되어 있지만, 개발 브랜치는 공개되지 않았으므로, 아직까지 100% 오픈소스라고 말하기는 힘들 것 같습니다. 하지만 향후, Chromium Project를 통해 오픈소스화 될 것으로 예상합니다.
  1. Does Chrome for Android now support the embedded WebView for a hybrid native/web app?
아직은 지원하지 않지만, Chrome의 WebView를 쓸 수 있으면 독립 프로세스로 진정한 웹앱을 개발할 수 있을 것 같습니다.
  1. Does Chrome for Android support apps and extensions?
아직까지 계획에는 없다고 하지만, WebView를 쓸 수 있다면 앱은 가능할 것이고, 확장은 Desktop과 호환성을 갖추기는 어렵겠지만, 독자적으로 지원할 것으로 예상합니다.
  1. What version of Flash is supported on Chrome for Android?
Adobe도 이미 Mobile용 Flash를 지원하지 않기로 했기 때문에, 역시 Andrioid용 Chrome도 지원하지 않는다고 합니다.
  1. Is Canvas hardware accelerated?
Andorid가 사용하는 2D 그래픽 엔진인 Skia가 HW가속이 되므로, Canvas도 당연히 가속이 됩니다.
  1. What about WebGL support?
이 부분은 의외지만, 아직은 안된다고 합니다.
  1. Does Native Client work on Chrome for Android?
역시 지원하지 않습니다.
더 자세한 내용은 아래 원문을 참고하세요.
그외에,
Erisson에서 WebRTC Demo을 iOS에서 보여주었습니다. Erisson은 그동안 WebKitGtk+과 GStreamer를 기반으로 WebRTC를 구현했습니다. 이번에 iOS용 WebRTC App을 만들어서 서로 화상 통신하는 Demo를 보여준 것입니다. 참고로, WebRTC는 Chrome에서도 이미 구현을 해서 공개를 했고, Mozilla도 관심을 갖고 스펙을 만들고 있습니다. 향후, 웹에서 JS에서 사용가능한 WebRTC API 이용해서 쉽게 화상통신 기능을 구현할 수 있게 될 것입니다.
W3C에서 Shadow DOM이라는 스펙을 표준화하고 있습니다. 웹 UI를 구성하다 보면 자연스럽게 여러개의 구성요소로 화면을 나눌 수 있습니다. 사실 각각의 구성요소가 Widget이 되고 별개로 구분하여 재사용 가능할 수도 있습니다.  사실 HTML에서 사용하는 widget류의 element는 내부적으로 별도의 DOM 구조(Shadow DOM)를 갖고 있으나 접근이 막혀있습니다.   엘리먼트를 이용하면 DOM 구조의 경계를 넘나들 수 있게 됩니다. 그래서 CSS를 조정해서 보이는 모습을 변경할 수 있습니다. 테스트가 필요한 분은 이 글을 참고하세요.

마지막으로, Firefox10에 추가된 개발도구에도 관심을 가져주시기 바랍니다.
나머지 소식을 링크로 확인하세요.
  1. Reverse directions for CSS Animations are now available
  2. Apple has landed support for hardware accelerated CSS Filter animation.
  3. Decoding of JPEG images has been improved by 9% on Chromium.
  4. WebGL is now able to report errors to Web Inspector’s console.
  5. It is now possible to build Samsung’s WebKit EFL port with support for WebGL.
  6. Add a custom CSS Lexer for WebKit, doubling lexing performance!
참고
  1. http://peter.sh/2012/01/shadow-dom-pointer-lock-and-a-new-css-lexer/
  2. http://peter.sh/2012/02/mutation-observers-reversed-animations-and-faster-jpegs/