2017년 12월 15일 금요일

GTK+의 에모지


GTK+에 관심이 없더라도 GTK+에 관련되었으면서도 모두가 관심있을 만한 주제에 대해 써 보겠습니다. 바로 그놈 3.26부터 추가된 에모지!

🌀🌁🤐🤑🤒🤔 <- 이런 겁니다.

일본어로 그림 문자라는 뜻인 에모지(絵文字, えもじ)는 일본의 통신사들이 다양한 감정 표현을 문자 메시지에서 보낼 수 있도록 이것 저것 커스텀 이모티콘을 추가하면서 시작됐습니다. 아스키 아트로 이루어졌던 이모티콘에 비해 컬러풀한 에모지는 커뮤니케이션을 풍부하게 만들었죠. 유니코드에 들어 있는 에모지는 이들 일본 통신사들이 사용하던 에모지를 표준화하는 과정에서 나왔습니다. 하지만 표준화 덕분에 갈라파고스로 유명한 일본 내부에서나 쓰이던 에모지가 이제 전세계에서 쓰이게 되었습니다.

유니코드 에모지 목록: https://unicode.org/emoji/charts/full-emoji-list.html

에모지가 트루타입 폰트에 어떻게 들어 있는 걸까요? 트루타입의 글꼴 데이터는 기본적으로 윤곽선 곡선(spline)의 조합이지 에모지에서 나오는 색과 그라데이션 등등을 넣을 만한 곳이 없어 보입니다. 그래서 사실 곡선 데이터에 있는 게 아니라 별도의 테이블에 에모지 데이터가 들어 있는데요. 몇 가지 타입이 있습니다. 예전에는 어도비 Type3 폰트 표준에 따라 PNG 이미지를 내장하는 방식을 썼고 애플에서는 아직도 쓰는 방식입니다. 최근의 파이어폭스나 안드로이드, 그리고 우리가 쓰는 GTK+는 OpenType 폰트에 SVG 포맷의 벡터 그래픽 데이터를 넣는 방식을 씁니다. 아직 에모지 글꼴이 없으면 Noto Color Emoji 글꼴을 설치해 보세요. 구글 픽셀 등에서 사용하는 안드로이드 기본 에모지 글꼴입니다.이렇게 에모지가 이쁘게 나옵니다.



이런 내부 방식을 생각해 보면 그놈 3.26에서 어떤 소프트웨어가 업데이트되었을지 예상해 볼 수 있습니다. SVG in OpenType 에모지 폰트를 제대로 표시하려면 cairo, fontconfig, pango, gtk가 모두 업데이트되어야 합니다. 여러분 눈 앞에 에모지를 보이게 하는 소프트웨어는 이들 여러 라이브러리의 조합의 결과입니다.

👏👏👏

(추가) 최근 GTK에서 에모지를 입력하려면 입력창에서 Ctrl+. (점) 또는 Ctrl+; (세미콜론) 키를 눌러보세요. 단 GTK 기본 위젯이 아닌 자체 제작한 입력 위젯에서는 동작하지 않을 수 있습니다.

2017년 11월 20일 월요일

Firefox Quantum 설치하기

오랜만에 글을 씁니다.
Debian기반의 GNOME Dekstop에서 쉽게 Firefox Quantum을 설치할 수 있습니다.

$ sudo add-apt-repository ppa:mozillateam/firefox-next
$ sudo apt-get update
$ sudo apt-get install firefox

https://launchpad.net/~mozillateam/+archive/ubuntu/firefox-next

위에 나온대로 하면 됩니다.

두배 빨라진 Firefox를 Linux Dekstop에서 즐기세요~

2016년 12월 14일 수요일

오랜만입니다.
죽어버린 것 같은 그놈 한국 블로그는 죽지 않았다고 우기기 위해 글을 씁니다(!)

저는 안죽고 연구소에 기어 들어가서 재밌는 일 하면서 별일 없이 별 다른 걱정 없이 잘먹고 잘살고 있습니다. 그리고 내년 3월에 모종의 일을 저지르려 열심히 게으름을 피우고 있습니다 ㅡ ㅡ;

제 이야기가 중요한 게 아니고,... 아시는 분들은 아시겠지만, 얼마전 새로운 그놈 한국 커미터가 생겼습니다.

때는 10월 중순.
KDE 20주년을 맞이하여 KDE 한국 측에서 뜻깊은 파티를 열었습니다...
...는 해커톤 비슷한 행사를 잠깐 했습니다. 물론 상당히 대단하신 분의 한국 방문이 KDE 20 주년 의미의 깊이를 더했습니다. 이 행사에서 한자 덕후 egogun(DaeHyun Sung)님께서 유니코드에 관심을 가지고 CJKV 펄 라이브러리를 작성하고 있던 중이었는데,  CJKV 관련 KDE, 그놈 프로그램의 기능을 확장하고자 소스코드를 건드리다가 일을 벌이고야 맙니다.

https://wiki.gnome.org/action/show/Apps/Gucharmap

CJK 쪽에서, 한국어 정보가 오래되었고 베트남 한자 정보가 없다는 이야기를 덧붙여 이 부분을 추가하기로 했습니다. 대충 짐작이 가실지 모르겠지만 그 유명한 CJKV 책의 영향을 받은 분입니다................그 열정은 꽤 오래전부터 있어왔는데 그 열정을 간직하며 꾸준하게 준비한 끝에 대대적인 첫(!) 결과가 나왔습니다.

https://github.com/GNOME/gucharmap/commit/b3614d114bc2158f8e5c4b98797019f3a71d0ba7

이 이야기를 듣고 뭔가 일이 날 것 같은 느낌이 와서 제가 직접 사소하게나마 지원하기로 했습니다. 그놈 버그질라에 불을 지르고

https://bugzilla.gnome.org/show_bug.cgi?id=773380

손을 뗐습니다.
테스트 정도는 같이 해주려 했는데 메인테이너가 초스피드로 머지했습니다. 뒷 수습은 임자가(...딴청...)
링크에서 보시는 바와 같이 ego님의 포텐이 엄청나게 터지고 첫 커밋의 기대에 찬 흥분(...)을 볼 수 있습니다. 이렇게 진심으로 열정적인 커미터 참 보기 힘듭니다. 음, 그래서 어떻게 됐냐면,

https://git.gnome.org/browse/gucharmap/commit/?id=b3614d114bc2158f8e5c4b98797019f3a71d0ba7

정말로 커밋이 올라갔고, gucharmap 9.0.2가 출시 됐습니다. 오오.

https://git.gnome.org/browse/gucharmap/log/

나중에는 이 부분을 책임지고 번역을 하겠다는 이야기도 귀띔(?)하더군요.

12월 10일 올라온 커미터의 커밋 후기는 다음과 같습니다.

http://blog.studioego.info/4004

새로운 그놈 커미터를 가열차게 환영해주시면 대단히 감사하겠습니다 <(_ _)>

2014년 2월 20일 목요일

제 15회 Gnome Teck Talks 후기

  후기 본문에 들어가기에 앞서 장소제공에 물심양면으로 지원해주신 한국 정보통신산업진흥원측에 깊은 감사의 말씀을 드립니다.
금번 행사에는 김규영님께서 개인적으로 중요한 일이 있으셔서 오시지 못하고, 대신 오늘 발표시주시기로 하셨던 홍영기님 이외에도 특별한 한 분을 더 모셔서 그놈 한국에서 그동안 이야기 해본 적이 없는 "개발자" 입장이 아닌 "엔드 유저" 입장에서의 이야기를 주고 받는 시간을 가졌습니다.

첫번째 이야기, Overview Of Chromium UI Framework: Views, Aura and Ash (홍영기 님)




  일반적으로, UI 개발자 입장에서 윈도우 시스템에 접근하고자 할 때, 해당 시스템에서 제공하는 위젯, 뷰, 윈도우의 관계를 알고 싶어하며, 어떤 위젯을 제공하는지 이들이 어떻게 동작하는지(이벤트 전달, 위젯 표현 등) 알고 싶어할 것입니다. 특히, Chromium과 관련하여 현재의 Chrome과의 관계에 대해서도 그리고,  Chrome 브라우저를 내장한 Chrome OS에 대해 알고 싶은 분들도 있습니다. 
  이번 이야기에서는 Chromium/Chrome에서 어떤 위젯, 뷰, 윈도우 요소를 제공하는지 어떤 요소를 커스터마이징 할 수 있는지, 어떤 구조를 통해 사용자의 눈에 시각 요소로 나타나는지를 소개하였습니다. <Views>
  그리고 소개한 이들 요소를 ChromeOS에서 어떻게 표현하는지, 표현 계층은 어떤 요소로 이루어져 있는지, 해당 계층을 통해 하드웨어로부터 어떻게 이벤트를 전달받아 처리하는지에 대한  이야기를 진행하였습니다. <Aura>
  이 외에도, 그놈쉘과 유사한 역할을 하는 Aura SHell을 다음의 문장을 인용하며 소개하였습니다. 또한 구조도를 통해 크롬 브라우저와 앱 화면에 떠있는 UI 요소로부터 오는 이벤트와 커스텀 UI 등이 어떤 계층을 통해 사용자와 상호작용하는지 체계적으로 알려주셨습니다.
  "shell in computing provides a user interface for access to an operating system's kernel services." <Ash>
  사진에서와 같이 화이트보드에 직접 그림을 그려가면서 친절하게 알기 쉽게 설명해주시기도 하였습니다.

두번째 이야기, 요양 사업 분야의 오픈 소스 소프트웨어 접근(김태호 님)




  이 발표는 이미 우분투 한국 사용자 모임과 다음 디브온 2013때 발표한 내용이지만, 들어볼 기회가 있었음에도 불구하고 들어보지 못한 분들께 사업자이자 기획자이며, 그리고 개발자로도 변신하신 만능 의사선생님 김태호님께서 바쁘신 와중에도 와주셔서 경험 공유 차원에서 발표를 해주셨습니다.
  기관, 기업의 운영자 입장에서 가장 중요하게 여기는 부분은 가용자원의 효율적 활용이고, 그렇기 때문에 낭비되는 자원 사용을 관리하고 예측 가능한 자원 활용 계획을 수립하고자 합니다. 
 이러한 목적으로 직원 업무용 목적으로 오픈소스를 도입하면서 프로그램 사용 입장에서 어떤 일이 있었는지, 어떤 실패를 거쳤고 어떤 점을 깨달았는지, 커스터마이징을 위해 현업 개발자와 토의를 진행하고 어떤 결론을 내렸고, 사용자, 기획자로서 오픈소스 소프트웨어 커스터마이징 목적으로 개발 업무를 접하게 된 사연, 그리고 현재 진행중인 다양한 일들, 업무 목적으로 오픈소스를 활용한 프로젝트를 진행하면서 나온 실제 중간 결과 사례를 제시하여 실제로 오픈 소스 소프트웨어에 대해 아무것도 모르는 입장에서 오픈 소스 소프트웨어로 접근하는 일련의 전 과정을 흥미롭게 말씀해주셨습니다.

  먼곳에서 귀중한 시간을 쪼개어 찾아와주신 참여자 여러분들, 발표자분들께 다시 한번 감사의 말씀을 드립니다. 다음 모임은 모두에게 부담이 없도록 Tea-time 행사로 진행하겠습니다 :-)

* 당일 발표 슬라이드는 아래에 있습니다. 고의 수정 방지를 위해 pdf 형식으로 업로드하였습니다.
  - Chromium UI Framework - Simon YoungKi Hong
  - The way of approaching to the F/OSS for nursing-care business - Taeho Kim

2014년 2월 11일 화요일

제 15회 Gnome Tech Talks 개최 알림

http://onoffmix.com/event/23949
  

* 일시 : 2월 15일 14:00~18:00
* 장소 : 가락동 정보통신산업진흥원 본원 
* 연사 : 
  - 홍영기 (LG전자) : Overview of Chromium UI framework - views, aura and ash
  - 김규영 (삼성전자) : Introdution to WebKit Structure

그놈 한국에서 금년 첫 세미나를 진행합니다.

이번 모임은 두 분의 연사께서 웹 브라우저 Front End / Back End 를 주제로 심도있는 이야기를 진행합니다.



주차 지원 없고, 중식 지원 없습니다.

공공기관 출입 사유로 인하여 참여 신청시 필히 참여하셔야 하며,

출입 인원 사전 보고 관계로 14일 정오까지만 신청을 받습니다.
제한된 인원으로 신청 받으니 서둘러서 신청해주십시오 :D 많은 성원 바랍니다

2013년 12월 18일 수요일

WebKitGTK+ Hackfest 2013에 다녀왔습니다.

지난 주에 WebKitGTK+ hackfest가 열렸는데 거기에 다녀왔습니다. 작년까지 허준회님이 참가하셨는데 올해는 어째 바통터치(?)해서 제가 가게되었네요. =)
WebKitGTK+ hackfest는 GNOME project의 많은 hackfest 중에 하나인데 혹시 다른 hackfest가 궁금하신 분은 여기서 확인할 수 있습니다.

올해로 5번째 열리는 이 행사는 변함없이 Igalia 주최로 Igalia Spain office에서 진행되었습니다.
스페인이라는 나라는 정말로 먼 나라더군요. 더욱이 제가 직항을 타고 간게 아니라 2번 transfer를 해서 더더욱 멀게 느껴진거 같습니다. 대략 19시간을 비행기와 공항에서 보냈으니깐요.

저는 이번이 다른 모든 hackfest를 포함해서 처음으로 참가하는 hackfest라 어떻게 진행되는지, 또 어떤 사람들이 와서 대체 뭘하고 가는지 여러가지로 궁금했었는데 의문을 해소할 수 있었던 좋은 기회였습니다.
생각보다 룰은 간단했습니다. 스스로 주제를 하나 정해서 hackfest 기간내내 그것만 파는 겁니다.

The topics of WebKitGTK+ hackfest 2013

저같은 경우 아침 10시에 시작해서 잠자기 전까지 계속 hacking을 즐겼네요. 거의 하루 12시간 이상을 한 주제에 쏟고, 또 다방면의 전문가들이 한데 모여있으니 도움받기도 쉽고, 리뷰 받기도 쉬운게 일이 척척 풀리는 느낌였습니다.
그리고 별도의 세션을 잡아서 관심있는 사람들이 함께 모여서 그 주제에 대해서 토의도 했습니다.
그외에도 나와 같은 일을 하는 개발자들이 WebKitGTK+에 무엇을 하고 있고, 어떻게 이용하고 있는지 소개, 자랑(?)하는 흥미로운 시간도 가졌습니다. 특히 이때 Company100 의 서광율 이사님도 하시는 일과 관심사항에 대해서 말씀하셨습니다.


제가 볼때 이런 Hackfest의 가장 큰 의의는 풀리지 않는 문제를 직접 만나서 합의를 보고 의사결정을 내릴 수 있는 점, 또 프로젝트 내에 무엇이 기능적으로 부족한지 파악하고, 손이 부족한 부분이 어딘지를 파악해서 거기에 손을 분배해줄 수 있는 점이 아닌가 합니다. 오픈소스 개발자들은 같은 일을 하더라도 보통 서로 다른 시간대와 지역에서 살다보니 이런 부분에 대한 실시간 논의가 어려우니깐요 :P
실제로 이번 Hackfest에서 여러가지 논의가 오고 갔지만 Network process를 분리하는 작업이 리뷰가 지연되는 것에 대해서 관심을 가지고 이를 해결하기 위한 지원자을 받아서 patch rebasing을 하고 다시 리뷰 시도를 하는 등의 작업이 이루어졌습니다. 또한 Threaded compositing(thread model)과 Coordinated graphics(process model)에 대한 논의도 별도의 세션으로 이루어진 걸로 알지만 이건 별다른 결론이 난 것 같지는 않네요.


저는 행사 기간 중 HTML5의 한 기능인 datalist를 추가하는 작업을 했고 초기 패치를 완성했습니다. 이에 대해 흥미가 있으신분은 제 블로그로 오셔서 확인할 수 있습니다.

온라인 상에서 nickname만 보다가 실제 오프라인에서 그 개발자와 만나는 일은 설레는 일인 것 같습니다. 나와 같은 주제에 대해서 관심이 있고, 나보다 더 열정적이고, 또 더 실력있는 개발자들과 만나서 잠시나마 함께 코드를 쓰는 즐거움은 아마 오픈소스 개발자만이 느낄 수 있는 묘한 즐거움이 아닐까 싶네요. :)

끝으로 이런 즐거움을 느낄 수 있게 도와준 행사 주최자인 Igalia 그리고 제가 그곳으로 갈 수 있도록 비행기와 숙박 지원을 해준 GNOME foundation에 감사하단 말씀을 남깁니다.

        

2013년 12월 5일 목요일

2013년 11월 우분투 코리아 세미나 초청 발표 - Gnome and You

  11월 30일 상암동 비즈니스 센터 3층 중회의1실 에서 우분투 코리아 주최 세미나 및 아나바다 행사가 열렸습니다. 오창석님께서 해당 행사에 초청 받으셔서 당일 바쁘신 와중에도 지난 2013 Daum DevOn에 발표한 내용을 조금 수정하여 그놈 재단 소개, 그놈 프로젝트 컨트리뷰션 참여 방법, OPW 프로젝트 소개 등을 열정적으로 해주셨습니다.


  그놈 한국을 위해 발표에 힘써주신 오창석님, 그리고 당일 행사에 참여하여 경청해주신 모든 분들께 진심으로 감사의 말씀을 드립니다.