이재홍의 GitHub 탐험기 2014/08/01

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

Cocos2d-x - cocos2d-x for C++

https://github.com/cocos2d/cocos2d-x

모바일 2D 게임엔진의 본좌 Cocos2d-x입니다. 오브젝티브C로 작성된 Cocos2d를 C++로 포팅한 것이 Cocos2d-x인데, 포팅한 사람은 중국 사람입니다. 중국 모바일(안드로이드) 시장이 급격히 성장하면서 Cocos2d-x도 대박을 터트렸죠. C++로 포팅한건 안드로이드에서 돌리기 위함이었습니다.

저도 Cocos2d-x를 삼성, 인텔 타이젠용으로 포팅해서 소스를 공헌했는데, 타이젠이 죽쑤면서 그냥 뭍혔습니다. 타이젠 개발툴이 후져서 포팅하는데 엄청 고생했는데 이렇게되어서 좀 아쉽네요.

게다가 Tizen IDE에 포함된 GCC 버전이 오래되서 C++11(C++0x)을 지원안합니다. Cocos2d-x 3.x 버전이 C++11을 사용하면서 컴파일 불가. 어쩔 수 없이 공헌 활동은 중단되었습니다.

이거 진행하고나서도 여러 가지 사건들이 많았는데, 기회가 된다면 썰을 풀어보겠습니다.


VsVim - Vim Emulator Plugin for Visual Studio 2010+

https://github.com/jaredpar/VsVim

Visual Studio 에디터에서 Vim 명령을 사용할 수 있도록 해주는 확장 프로그램입니다. 예전에는 ViEmu를 사서 썼는데, VsVim이 더 좋습니다. 개발자는 MS 직원이고 VsVim은 취미로 개발하는 것 같습니다. Vim 덕후로 추정.

웃긴게 코어는 F#으로 구현되어 있습니다. F#을 배우고 싶어서 F#으로 만들었다나... 버그를 찾았는데 코드를 수정해줄려고 해도 F#을 몰라서 그냥 포기. 버그 리포팅만 했습니다. 나머지 VS 연결 부분은 C#으로 구현되어 있습니다.

여긴 appveyor라는걸로 자동 빌드를 하는군요. Travis는 윈도우를 지원안하고 있는데 이제 appveyor를 쓰면 되겠습니다.


rethinkdb - An open-source distributed JSON document database with a pleasant and powerful query language

https://github.com/rethinkdb/rethinkdb

JSON 기반 분산 데이터베이스입니다. SSD에 최적화되어 있고, insert 속도가 빠른 것이 장점입니다.

쿼리도 매우 간단하게 날릴 수 있습니다.

r.table('users').insert({'name': 'Slava', 'age': 29 }).run()
r.table('users').filter(lambda doc: doc['age'] > 29).run()

gitlabhq - Open source software to collaborate on code

https://github.com/gitlabhq/gitlabhq

GitHub 사이트를 본따서 오픈소스로 만든 협업 툴입니다. GitHub와 완전이 동일하진 않지만 UI도 깔끔하고 쓸만합니다.

Git을 쓰는 팀이라면 이걸 구축해서 사용하는 것도 나쁘지 않겠습니다.

루비로 구현되어 있습니다.


MQTT.js - An MQTT library for node.js

https://github.com/adamvr/MQTT.js

Node.js용 MQTT 라이브러리입니다. 요즘 별에별 메시징 플랫폼이 다 나오는데요. MQTT(MQ Telemetry Transport)는 흔히 이야기하는 pub/sub 방식의 메시지 큐입니다. 원래는 원격 검침(Telemetry)을 위해서 개발되었다는군요. 지금은 MQTT를 machine-to-macine(M2M) / Internet of Things(IoT, 사물 인터넷) 연결 프로토콜로 정의하고 있습니다.

MQTT.js를 사용하려면 MosquittoMosca와 같은 브로커를 설치해야 합니다.

한쪽에서는 메시지를 publish 함수로 보내면 되고

var mqtt = require('mqtt')

client = mqtt.createClient(1883, 'localhost');

client.publish('presence', 'Hello mqtt');

client.end();

다른 한쪽에서는 subscribe한 뒤 on 함수로 메시지를 받으면 됩니다.

var mqtt = require('mqtt')

client = mqtt.createClient(1883, 'localhost');

client.subscribe('presence');

client.on('message', function (topic, message) {
  console.log(message);
});

client.end();

이상 끝.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2014-08-01