"만족하는 프로그래밍 언어가 없어서 내가 만족할 만한 프로그래밍 언어를 만들어 보고 싶다." 어느 카페에서 채팅을 하다가 한 분이 했던 말이 떠올랐다. 그게 가능하기나 할까, 혹은 그래봤자 얼마나 제대로 만들 수 있을까 라는 생각을 그 때 했었는데 오래전에 이를 이루어 이젠 전 세계적으로 많이들 쓰이고 있는 언어가 있다. 바로 Ruby! 일본인인 유키히로 마츠모토가 1995년에 공개한 언어로 지금은 오픈소스 프로젝트로 되어 전 세계인들에 의해서 발전되고 있는 언어 이다.(몇년 전에 읽은 "사랑하지 않으면 떠나라"의 저자인 차드 파울러 역시 Ruby커미터중 하나로 알려져 있다.) 한빛 미디어에서 모집했던 한빛리더스의 5월 리뷰 대상 도서중에서 내가 선택한 책은 "루비 프로그래밍 언어". 아이폰과 웹은 별 ..
회사 소모임에서 Erlang 스터디를 진행중 입니다. 얼랭 문법을 공부하고 발표하는 식이 아니고 문법은 알아서 공부해 오고 매주 Uva.onlinejudge.org에서 한문제 정도를 선정해서 Erlang으로 각자 풀어와 발표하는 식으로 진행을 하고 있습니다. 각자 개발 환경을 알아서 세팅해야 하는데 저는 다른 툴 익숙해 지기 귀찮아서 Editplus로 코딩하고 있는데 구문강조 파일이 없더군요.(Ecplise나 Emacs는 잘 되어 있다던데..) 그래서 직접 만들어 보았습니다. Erlang의 math, io, lists 라이브러리는 구문강조에 포함시켰지만 다른 라이브러리들은 아직 포함시키지 않았어요. 이상한거나 좋은 의견 있으면 공유합시다 :D
윤성우씨가 집필한 책을 읽을때마다 그 설명을 보고 놀라곤 한다. 수 많은 번역서들의 어색한 문장과 우리나라 정서와는 뭔가 맞지 않는 듯한 설명으로 다가가기 어려운게 사실인데, 이분이 집필한 책은 그렇지가 않다. 책 제목은 윈도우즈시스템 프로그래밍 이지만 컴퓨터 구조나 간단한 운영체제에 대한 설명까지 곁들여져 있다. 내가 읽으면서 가장 인상 깊었던것은 윈도우즈 프로그래밍에 대한 설명보다 컴퓨터 구조에 대한 설명인데, 컴퓨터 구조를 직접 하나 하나 설계해 가는 과정중 "왜 이 레지스터가 필요한지" 그 이유를 끄집어 내주기 때문에 컴퓨터가 왜 이런 구조를 가지고 있는지를 받아들이고 이해할 수 있게 해준다. 한빛미디어에서는 원래 동영상 강의는 따로 돈을 내야 볼 수 있지만 윤성우씨의 부탁(신념?)으로 동영상강의..

http://acm.uva.es/p 에 있는 2000여개의 문제중 드디어 100개를 풀었습니다 [....] 제작년에 ACM-ICPC라는 대회를 접하게 되면서 Programming Challenges를 사서 공부를 했었는데, 두달정도의 준비기간동안 충분한 준비를 하지 못해서 고배를 마셨던 기억이 [......] 있는데요, 산업기능요원으로 복무하는동안 알고리즘 문제를 풀면서 실력을 차곡 차곡 쌓고자 위 사이트의 문제를 풀기 시작했습니다. 이번에 풀면서 어려운 문제는 전혀 안건들었어요. 쉬운문제가 2000개중에 100개는 있겠지! 라는 생각으로 간단한 수열혹은 규칙만 사용하는 문제들을 골라골라 풀어서 100개를 달성했습니다. (이중에는 큐나 스택등의 초 간단한 자료구조를 필요로 하는 문제도 있었던거 같아요. ..
회사에 있는 MircoSoftware ( 마소 ) 8월호를 읽던중 반가운 글을 보았습니다. 바로 이전 포스팅인 포인터에 대한 글이였는데, 제목이 무려 "신입 개발자를 위한" 복잡한 포인터 선언 이해하기. 포인터의 난해함때문에 고민을 했던적이 있던지라 반가운 글이였습니다. 신입 개발자를 위한 복잡한 포인터 선언 이해하기 신영진 | pop@jiniya.net | http://www.jiniya.net 개발자 커뮤니티의 C언어 게시판에 자주 등장하는 질문 가운데 하나가 바로 복잡한 포인터 선언문 해석에 대한 것이다. 대부분의 초보 개발자나 학생들은 이를 막연히 외우려고 노력한다. 'int *a[3]은 int 포인터를 저장하는 배열', 'int (*a)[3]은 int 배열에 대한 포인터' 라는 식으로 암기하는 ..
포인터를 공부했을때는 "많아도 이차원 포인터 이상을 쓸 일이 없겠지" 라는 생각을 한적이 있다. 얼마전까지도 그렇게 생각했었고 복잡한 포인터는 쓸 일이 없을꺼야 라고 얼마전까지 생각했었다. 하지만 어느 프로젝트를 진행중에 "이차원 포인터 배열의 포인터"를 한 함수에서 반환을 하고, 다른 함수에서 인자로 받는 코드를 작성해야 하는 경우가 발생했었다. (이런식의 코딩은 해본적이 없어서 금방 코드가 작성되지 않았던..;;) 하지만 함수를 작성하고나서 생각한것은.. "이건 객체지향이 아니자나!!" _no class CReceive { public: void ReceiveFunction(void* in) { m_data = (DataType* (*)[10][10])in; } private: DataType* (*..
많은 개발자들이 쓰고 있는 IDE인 Visual Studio. Visual Studio에는 디버깅 모드와 릴리즈 모드가 있죠, 릴리즈 모드는 프로그램을 배포하기 위해 컴파일 하는 모드로, 디버그모드로 컴파일시 들어가는 디버깅에 필요한 자질구리한 정보를 뺀 알짜 프로그램만 쏙~ 뽑아내는것 입니다. 하지만 단지 이것만 생각하기엔 디버깅 모드와 릴리즈 모드는 이상한 다른점이 있어요. (이상하고 정말 이상해요) 그 이상하고 황당한 다른점을 소개해드리고자 합니다. 첫번째, 릴리즈모드는 초기화를 해주지 않는다. 어느정도 경험이 있는 개발자라면 다 알고 있는 사실입니다. 하지만.. 제가 겪은건 좀 황당해요. 2년전 학교에서 텀프로젝트를 하면서 발견했던 현상입니다. 이는 Visual Studio의 버그인지는,, 확실히..
#include class CPre { public: CPre() { std::cout
어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1,3,5,7,9,20,31 은 셀프 넘버 들이다. 문제.. "1 이상이고 5000 보다 작은 모든 셀프 넘버들의 합을 구하라" #include int getD(int n); in..
- Total
- 343,052
- Today
- 1
- Yesterday
- 11
- 영화감상
- OpenGL
- C++
- Programming Challenges
- SRM
- UVA
- Topcoder
- 알고리즘
- u10
- 티크루
- Google Code Jam
- 게임프로그래밍전문가
- ACM-ICPC
- 리눅스마스터1급
- 접사
- 키보드
- 게임회사
- WIPI
- LC-Display
- 프로그래머 두뇌단련 퍼즐 44제
- 도서감상
- GX100
- 통기타
- 병역특례
- 한빛미디어
- 한국기술교육대학교
- 서태지
- 공부
- 자격증
- 한빛리더스