페이지

2018년 7월 18일 수요일

인텔에서 소개하는 WebVR!










오픈소스 개발자의 자유

오픈소스 프로젝트에 참여하는 개발자들의 성향 중 가장 두드러지는 것은 바로 자유에 대한 추구다. 많은 실력있는 자유/오픈소그 개발자들이 대기업 보다는 작은 회사 또는 프리랜서로 일하면서  자유를 추구하는 모습을 많이 본다. 특히, 최고의 직장에서 높은 연봉을 포기하고 일할 자유를 찾아 다른 회사로 떠나는 분도 봤다.

일반적으로 회사에 속한 개발자는 오픈소스 프로젝트에 참여에 제약이 따른다. 예를 들어, 구글 개발자가 애플이 소유한 웹킷에 기여하는 것은 상상하기 어렵다. 그 반대도 당연하다.  회사들 마다 정책은 다르지만, 회사 아이디로 참여할 수 있는 오픈소스 프로젝트는 제한적이며 회사의 허락을 받아야 한다. 어떤 회사들은 원칙적으로 업스트림이 금지되기도 한다. 당연히 이런 회사에서 실력있는 오픈소스 개발자를 찾기는 어렵다.

진정한 실력자는 제야에 있는 경우가 많다. 어디에도 속하지 않거나, 아니면 오픈소스 컨설팅 회사에 속한 경우가 많다. 이들은 보통 많은 연봉 보다는 자유를 추구한다. 프로젝트 참여의 자유, 자유/오픈소스 컨퍼런스 참석의 자유, 내가 하는 일을 공개적으로 이야기할 수 있는 자유.

지금 그런 자유가 주어진다면 확실히 누려야한다.

2018년 6월 20일 수요일

Xlib 프로그래밍...



Arch Linux를 설치하면 위와 같은 초기 X-Window System의 모습을 볼 수 있다. X에서만 제공하는 기본 API만으로 작성되었다. 참고로, 다음은 실제 Xlib 프로그래밍 소스 코드로서 실행을 하면, “Hello, World!"라는 텍스트를 출력하는 작은 윈도우를 화면에 보여준다.

#include #include #include #include int main(void) {   Display *d;   Window w;   XEvent e;   char *msg = "Hello, World!";   int s;   d = XOpenDisplay(NULL);   if (d == NULL) {      fprintf(stderr, "Cannot open display\n");      exit(1);   }   s = DefaultScreen(d);   w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1,                           BlackPixel(d, s), WhitePixel(d, s));   printf("w=%lu\n", w);   XSelectInput(d, w, ExposureMask | KeyPressMask);   XMapWindow(d, w);   while (1) {      XNextEvent(d, &e);      if (e.type == Expose) {         XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);         XDrawString(d, w, DefaultGC(d, s), 10, 50, msg, strlen(msg));      }      if (e.type == KeyPress)         break;   }   XCloseDisplay(d);   return 0; }
소스코드와 컴파일 방법은 여기를 확인.