저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
gridster.js - gridster.js is a jQuery plugin that makes building intuitive draggable layouts from elements spanning multiple columns
https://github.com/ducksboard/gridster.js
jQuery 그리드 플러그인입니다. 윈도우8 메트로UI 메뉴를 웹에서 만들 수 있겠군요. 그리드 안에서 div를 이동시키거나 크기를 조절할 수 있습니다.
coreos-on-do - Script to install CoreOS on Digital Ocean
https://github.com/ibuildthecloud/coreos-on-do
Digital Ocean 가상 서버에 CoreOS를 설치하는 스크립트입니다. CoreOS가 점점 많이 쓰이는 것 같군요.
autosize - jQuery plugin for dynamic textarea sizing
https://github.com/jackmoore/autosize
HTML textarea 태그에 글자를 입력하면 높이가 자동으로 조절되는 jQuery 플러그인입니다. 글자를 지우면 높이가 다시 줄어듭니다.
json-c - Official code repository for json-c
https://github.com/json-c/json-c
JSON의 C언어 구현입니다(C++이 아닙니다). C를 많이 쓰는 윈도우 드라이버에서 유용하게 사용할 수 있겠습니다.
coroutines - Go-style coroutines and channels for C++
https://github.com/maciekgajewski/coroutines
Go 스타일 코루틴과 채널을 C++로 구현한 라이브러리입니다. C++은 뭘 해도 코드가 눈이 아픕니다. 이래서 Go가 나온 것인데...
어쨌든 역발상이라 참신합니다.
#include "coroutines/globals.hpp"
#include "coroutines/scheduler.hpp"
#include "coroutines_io/globals.hpp"
#include "coroutines_io/io_scheduler.hpp"
#include "coroutines_io/tcp_acceptor.hpp"
#include "client_connection.hpp"
#include <iostream>
using namespace coroutines;
using namespace boost::asio::ip;
void handler(http_request const& req, http_response& res)
{
res.setStatus(Poco::Net::HTTPResponse::HTTP_OK);
res.add("Content-Length", "14");
res.add("Content-Type", "text/plain");
res.stream() << "hello, world!\n";
}
void start_client_connection(tcp_socket& sock)
{
client_connection c(std::move(sock), handler);
c.start();
}
void server()
{
try
{
tcp_acceptor acc;
acc.listen(tcp::endpoint(address_v4::any(), 8080));
std::cout << "Server accepting connections" << std::endl;
for(;;)
{
tcp_socket sock = acc.accept();
go("client connection", start_client_connection, std::move(sock));
}
}
catch(const std::exception& e)
{
std::cerr << "server error: " << e.what() << std::endl;
}
}
int main(int argc, char** argv)
{
scheduler sched(4);
io_scheduler io_sched(sched);
set_scheduler(&sched);
set_io_scheduler(&io_sched);
io_sched.start();
go("acceptor", server);
sched.wait();
}
이상 끝.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.
Published
2014-08-10