tightvnc를 줄곧 썼었는데, 언제부터인지 뜻대로 설정이 되지 않는걸 알았습니다. (잘쓰던게 갑자기 안된건 아니고, 제가 점점 Ubuntu 버젼을 올리면서 시행착오를 겪었습니다.) 설정하고 접속해보면 회색 줄무늬 화면만 나오거나, 아예 검게 나오거나 등등 원하는대로 설정이 되지 않았고 gnome 데스크탑 설정을 하기에 xstartup 항목들이 너무 복잡하게 느껴집니다. 수일간의 삽질 끝에 다른 VNC Server (Tiger VNC)를 쓰면 꽤나 손쉽게 접속된다는 걸 알게되었고 간략 정리하고자 합니다. (Ubuntu 20.04와 18.04 둘다 잘되는 걸 확인함.) 1. Tiger VNC Server 설치 sudo apt-get install tigervnc-standalone-server tiger..
지난 번, Node.js 용 c++ Addon을 gcc로 컴파일하기 (node-gyp 없이) 를 통해 기본적인 Addon 개발 방법 및 v8 Local 다루는 법을 알아 보았습니다.그 후 Async Callback은 어떻게 작성할까에 대해, 틈틈이 테스트를 해보았는데 v8 API 사용에 익숙치 않다보니 오랜 시간 난항을 겪었습니다. 오랜 인고의 시간 끝에 사용법을 알게되어 포스팅 해 봅니다.v8의 Handle (memory) 관리 방법Addon 샘플 코드 (Async callback) 작성순으로 소개하겠습니다.※ v8 이란? -> Google Chrome 및 Node.js의 Javascript Engine 입니다. 1. v8의 Handle (memory) 관리 방법이걸 먼저 소개하는 이유는, 제가 이걸 ..
casync 알아보기 (Content Addressable Data Synchronizer) 포스트에서 간략하게 조사 위주로 어떤 것인지 알아보았습니다.이번에는 이것을 직접 빌드(build)하고 테스트 해보는 과정을 소개하겠습니다.물론 여느 오픈소스가 그러하듯, 직접 빌드하려 하면 dependency 패키지들의 설치를 수반합니다.제가 설치 중에 없다고 나왔던 부분들은 나열을 해보겠지만, 제 PC도 이미 상당량의 library 및 그것들의 devel 패키지들이 이미 설치되어 있습니다. 따라서 일부 누락될 수 있습니다.※Ubuntu Desktop 16.04 64bit 에서 테스트 하였습니다. casync 빌드 및 설치하기1. casync Download 1) github에서 casync를 clone 합니다...
재미난 Opensource 없을까는 항상 고민거리이다. 코딩이 재미있고, 어느 하나에 몰입해 하고 싶지만 마땅한 게 없었다. 규모 있는 코드를 보고 있자니, 한강을 보고 입만 벌리고 있는 기분이고... 규모 작은 건 뭐 어디서 찾아야 하는지, 이게 모하는 건지 모르겠고... (이미 망했거나) 그래서 어느날 부턴가 Github Trending을 살펴보기 시작했다. 매일 매일 Today 필터를 걸어 살펴보기 시작했다.그래봤자 대부분은 유명한 것들 뿐이다. 당연한 이야기겠지만 매일매일 커밋이 핫하게 올라오는게 그런 것들일 수 밖에... (※여기서 '그런 것들' : linux, vim, git, tensorflow 등)그러던 어느날 재미난 게 올라왔다. systemd/casync무려 systemd 밑에 있는데,..
Node.js의 명성과 장점은 굳이 제가 언급할 필요도 없을 것입니다.획기적인 생산성을 제공하기로 유명한데, 그래도 저같은 C 개발자가 처음 Node.js 프로젝트에 합류했을 때에는 여전히 일부 모듈만이라도 C로 개발하고 싶은 욕구가 마음 속 깊은 곳에서 부터 꿈틀꿈틀댑니다. 또는 내가 만든 C/C++ 라이브러리를 Javascript Language에도 binding해서 제공하고 싶다면 비슷한 욕구가 생길 것입니다.Node.js에서 require로 load해 쓸 수 있는 이런 C/C++로 제작된 Shared Object를 Addon이라 부릅니다. Addon을 처음 개발할 때, 간단히 따라할 수 있는 예제 코드와 node-gyp 라는 빌딩 툴이 Node.js 홈페이지에 매우 쉽게 정리되어 있습니다.C++ ..
전부터 계속 하고 싶다가 방법을 못 찾아서 포기 했었는데, 드디어 알아냈습니다. library를 쓰다 보면, 라이브러리에서 에러 상황에서 fprintf(stderr, ...)을 쓰거나, printf를 쓰는 상황이 있습니다. 프로그램을 shell로 직접 실행하는 경우에는 print되는 내용을 모두 확인할 수 있지만, fork되어 실행되거나, systemd에 의해 실행되는 등의 상황에서는 내용 확인이 안되어 답답할 수 있습니다. (최소한 저의 경우는요 ^^;;) 우연히 pulseaudio 코드를 보다가 발견했습니다. 오픈소스의 긍정적인 측면이 아닌가 싶습니다. (pulseaudio 개발자들 고마워요) unistd.h 헤더를 열어보면, 다음과 같은 표준 파일 descriptor의 define을 확인할 수 있습..
tool 성격의 프로그램을 멋지게 개발해 배포하였을 때, 프로그램의 활용도와 사용자 편의성을 높이려면 명령어 자동 완성이 필요합니다. 자동완성의 예를 보자면, 우분투 터미널에서 "git" 명령을 입력하고 한 칸 띄고 Tab 키만 눌러도 사용 가능한 명령어 리스트가 뜹니다. 또 그중에 처음 몇 글자만 입력하고 Tab 키를 누르면 나머지 글자들이 자동으로 입력됩니다. (이게 뜨지 않으면 생각만 해도 피곤한 일이 아닐 수 없습니다.) pic1. git의 명령어 자동완성 이런 자동 완성 기능을 bash에 적용하는 방법을 알아보겠습니다. (이 말인 즉, bash를 사용하지 않는 OS에서는 적용이 안될 수도 있습니다.) bash의 자동 완성 기능을 사용하려면 커서를 이용하는 script를 작성해야 합니다. /etc..
CMake는 make파일을 좀 더 쉽게 만들어 줍니다. 모든 툴이 그러하듯이 처음에는 문법이 낯설다가 익숙해지면 편해지고 개발 속도도 빨라지는데요, CMake도 그런 종류 중 하나라고 생각됩니다. Sample App 작성을 해보고, CMake 문법 관련 설명을 드리겠습니다. ※cmake가 설치되어 있어야 합니다. ($sudo apt-get install cmake) ※Sample Code 위치입니다. (https://github.com/z-wony/c_tutorial/tree/master/Tutorial2_CMake_build) CMake Example (hello-cmake) hello-cmake-0.1 폴더를 생성 후 하위에 아래와 같이 디렉토리 구성을 해보았습니다. CMakeLists.txt : 작..
spec 파일을 작성해 rpm 패키징 하는 방법을 소개하겠습니다. 복잡한 빌드 설정들을 제거하고 순수하게 packaging 방법만 확인할 수 있도록,빌드 자체는 거의 수동에 가깝게 작성하였습니다. ※Ubuntu 12.04 64bit 환경에서 Test 하였습니다.※fedora project wiki를 참조했습니다. (How to create an RPM package)※Sample Code 위치입니다. (https://github.com/z-wony/c_tutorial/tree/master/Tutorial1_RPM_packaging) 패키지 directory 생성. (여기서는 "hello-rpm" 이라 하겠습니다.)~/$mkdir hello-rpm source 작성 (간단히 hello를 출력하는 코드를 작..
- Total
- Today
- Yesterday
- content addressable storage
- 푸시
- GCM
- casync
- Tizen Emulator
- Push
- Tizen SDK
- content-addressable storage
- gear
- Lennart Poettering
- node-gyp
- Tizen
- Push Service
- Container
- Gear s2
- NPPi
- Samsung gear
- 타이젠
- IOT
- node.js
- systemd/casync
- CUDA
- Samsung Push
- Gear S3
- Tizen Push
- samsung
- Tizen Studio
- Wearable
- libfuse
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |