서버 프로그래머라면 확 땡기는 제목을 가진 "멀티코어 CPU 이야기" 책을 사둔지는 꽤 된 것 같은데 이상하게 어려울 것이라는 생각에 책을 펼쳐보지 않았던 것 같다 -_-;;; 일단 읽어보니 쉽고 재미있게 적혀있고, 내가 컴퓨터과학을 전공하여 그나마 한번쯤은 들어본 단어들도 많이 나왔다. 항상 책을 읽고나서 좋은 책이었으면 하는 생각이 "왜 좀 더 빨리 이 책을 읽지 않았을까... ㅠㅜ" 이 책도 그런 책 중의 하나가 될 것 같다. 멀티코어 CPU 의 동작 방식을 차근차근 풀어나가면서 이런저런 기법들로 CPU 가 돌아가고, 우리는 프로그래밍을 할 때 이런 것들을 고려하면 좋겠다 정도로 이 책을 요약....(너무 짧은가...)할 수 있을 것 같다. 이 책을 보고 뽐뿌를 받아서, 미루고 있던 멀티스레드 적용..
갑자기 boost 라이브러리의 asio 를 써보고 싶어져서 boost 를 다운받아서 잠깐 매뉴얼을 읽어본 후에 하라는 대로 bootstrap 과 b2 를 실행해서 라이브러리 빌드를 한 다음에 Visual Studio 2013 에서 asioTest 프로젝트를 만든 후 include/lib 디렉토리를 제대로 설정 후 빌드를 걸었더니 다음과 같은 링크 에러가 났다. Error 1 error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@1..
내부 게임 서버 테스트 중에 이상하게 non paged pool memory 가 어느 순간부터 점점 증가하다가 갑자기 치솟아서 메모리를 모두 소모하는 문제가 발생했다. 원인은 더미 클라이언트를 여러개 띄워서 테스트를 했는데 더미 클라이언트의 pc 가 점점 느려져서 패킷을 제대로 받지 못하자 서버가 네트웍으로 보낸 패킷들이 제대로 소모되지 못하고 non paged pool 에 쌓인것. 누군가로부터 들은바로는 클라이언트마다 패킷큐를 두고 하나의 패킷이 다 전송되었음을 완료하고난 후에 다음 패킷을 보내는 방식으로는 괜찮을거라고.... 하지만 아직 정확한 테스트는 안해봤음;;
이제 공식 다운로드가 생겨서 이 글에서의 링크는 내립니다. ----------------------------------------- 근래에 한참 프로그래머들의 화두가 되었던 Atom editor(https://atom.io/). github 에서 만드는 프로그래머를 위한 편집기를 표방하고 있어서 관심있게 보고 있었는데, 얼마전에 누구나 다운로드 가능하도록 되었다. 그래서 써보려고 하는데, 맥용만 다운로드가 가능해서... 일단 맥에서 써봤지만... 아무래도 윈도우 프로그래머다보니 윈도우용을 써보고 싶었다. 그래서 집에서 가지고 놀던 Azure 에다가 가상머신을 하나 만들어서 빌드 환경을 구축해서 빌드시켰다. 빌드 과정은 https://github.com/atom/atom/blob/master/docs/b..
http://box.wimy.com/ 을 만들어놓고 많은 시간이 지나서, 한번씩 이런저런 버그들을 고치고는 하지만, 모바일에서 재생이 제대로 안되는 건 정말 골치 아픈 일이다. 특히 작년까지만 해도 대부분의 스마트폰에서는 동영상을 full-frame 으로 보여주지도 못했으니... 이제는 그나마 성능은 어느 정도 받쳐주는 것 같다. 그런데 최근에 다시 스마트 폰에서 해보니 재생이 안되는 것이다. 이래저래 디버깅을 해보다가 안되어서 구글 공식 문서를 뒤져보니, 이런 내용이 나왔다 : https://developers.google.com/youtube/iframe_api_reference#Mobile_considerations 대충 읽어보면, "데이터망에서 원치않은 다운로드를 막기 위해서 임베드된 미디어는 자..
예전에 읽고 위키에만 정리했었는데, 블로그로 옮김. 책에는 당연히 더 많은 내용들이 있지만, 나에게 많이 와닿던 부분들만 정리. 내가 만든 코드를 먼 훗날 내가 다시 봐도 잘 알아볼 수 있게 하자. 코드는 다른 사람이 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 분량이 적다고 이해하는 시간이 짧은 것만은 아니다. 잘 구성된 아키텍처, 테스트의 용이성 등이 쉬운 코드 작성과 충돌을 일으키지는 않는다. 좀 더 분명한 이름을 짓자. 오해하기 쉬운 이름을 피하자. 단위가 헛갈릴 수 있으면 단위를 변수명에 붙이자. elapsed_ms, delay_secs 좁은 scope 에서는 짧은 이름도 괜찮다. 팀에 새로 합류한 사람이 이름이 의미하는 바를 이해할 수 있다며느, 그 일므은 괜찮은 것이다. ..
넥서스7이 생긴 바람에 오랜만에 안드로이드 개발환경을 구축할 일이 생겨서 eclipse 에서 설치를 하려고 생각했는데, 가만히 생각해보니 ADT 만 설치하면 ADT 가 sdk 를 설치해준 기억이 나서, ADT 가 왠지 eclipse marketplace 에 있을거 같아서 한번 찾아보니 왠걸(!!!) 있었다. 그래서 설치해보니 매우 잘되어서 포스팅 시작~ *** 알고보니 지금은 http://d.android.com/ 에서 eclipse + ADT + SDK 까지 한번에 통합된 것을 받을 수 있네요 ㅠㅜ 아래 포스팅은 그냥 eclipse 가 이미 있을 때 안드로이드 개발환경 쉽게 붙이는 방법 정도로만....(아... 세상 빨리 변하네요 ㅋ) *** 일단은 JDK 깔고, eclipse 는 깐다. 이제 ADT ..
얼마전 구글 코리아 주최의 핵페어가 있었다.(http://googlekoreablog.blogspot.kr/2012/11/google-hackfair_6.html) 난 평소에 wimybox 를 만들면서 생각했던 아이디어로 WimyLime(http://lime.wimy.com/)이라는 프로젝트로 참여를 했다. 바로 YouTube 에 있는 뮤직 비디오들에 리듬 액션 게임 요소를 넣어서 게임을 만들면 어떨까라는 생각! 리듬 액션 게임을 한번 만들어볼 생각은 전에도 했었지만, 음악과 리듬을 구하는게 쉽지 않아서, 음악은 YouTube 에 있는 공식 뮤직비디오들을 가져오고, 리듬은 직접 쉽게 입력할 수 있으면 어떨까해서... 시작했다. 평소에 매우 조금씩 만들어오던 것을 시간을 조금 더 투자해서 제출해보았고, 다..
평소에 늘 가지고 있던 생각이지만 트위터에 한번 올렸더니 다들 많이 공감해서 정리삼아 블로그에 포스팅~ 나는 개인적으로 꽤 여러 개의 개인 프로젝트를 하고 있다. ZViewer(Win32 이미지 뷰어, C++), WimyBox(최신가요 듣기, JavaScript + Python), ZAssist(Visual Studio Addin, C#), ClipDic(Chrome 확장 사전, JavaScript) 정도가 그나마 내세울만한 것이고, 이외에도 작은 다양한 것들을 만들고 있다 - https://github.com/zelon 물론 이 프로젝트들이 언제나 원활히 진행되는 것은 아니다. ZViewer 같은 것은 2004년부터 소스 관리를 시작했지만 중간에 1년 넘게 commit 이 없던 적도 있다. 언제나 내가..
- Total
- Today
- Yesterday