블로그

jachin의 이미지

자유민주주의, 자유소프트웨어 운동, 그리고 KLDP

* 이 글의 작성시기가 2012년 4월, 국회의원 선거가 끝난 시점 이후이며, KLDP에 블로그 글이 전면에 드러나지 않는 시기라는 것을 먼저 인식해주셨으면 좋겠습니다. 이 글을 올린다면, 바로 드러나지는 않을 것이란 사실을 알고 쓰는 글입니다. 즉, 지금 많은 사람들이 읽기보다는, 언젠가 이 글을 검색하는 사람들이 읽는다면 좋을 내용들을 써두고자 합니다.

* 이 글이 정치적인 내용을 가지고 있다지만, 특정 정당을 지지하거나, 폄하하려 하기 보다는, 자유의 가치가 얼마나 중요하며, IT를 이용하는 사람들은 사회의 구성원으로서 어떤 역할이 가능한지, 극적인 상황에서 어떻게 행동하는 것이 좋은지에 대한 기준을 제시하고자 함이라는 것을 명심해주셨으면 좋겠습니다.

마잇의 이미지

모든것이 파일이다 - radeon gpu power management

파일시스템의 정의가 굉장히 햇갈리네요..

http://kldp.org/node/130548

저 글타래를 보니 직접적으로 관련된 내용은 아니지만 얼마전 경험했던 일이 생각나네요.

'모든것이 파일이다' - 오래전 부터 관습화된 유닉스 계열의 전통이라고 알고 있습니다.

/proc, /sys 파일 시스템과 같은 특수한 형태의 파일들도 그런 맥락에서 만들지 않았나 싶습니다. 일반 파일과는 다른 점이 분명 있기는 하겠습니다. 하지만 '파일'이라는 가장 보편적인 형태로 제공되기 때문에 이미 모든 것이 파일 기반으로 작동하고 있는 시스템 환경에 잘 조화되는 것이 장점인 것 같습니다.

나빌레라의 이미지

재미있는 놀이: C, Python, Erlang으로 50000! 해보기 #3

-분할 정복-
디바이드 앤 컨쿼를 번역해서 분할 정복이라고 책에 많이 써 있다. 디바이드앤 컨쿼라는 영어 단어를 그대로 직역한 것이다. 어떤 커다란 계산이 필요한 문제가 있을 때, 이 문제를 잘게 쪼개서 개별적으로 계산한 다음 그 계산 결과를 합쳐서 최종 결과를 만들어내는 접근 방법의 통칭이다. 쉽게 말해 각개격파하는 것이다. 한 덩어리로 계산하면 땀나고 빡센 문제를 작게 쪼개서 빨리 빨리 계산함으로써 전체적인 효율을 높인다는 전략이다. 아주 좋은 전략이고 실제로 효과도 있다. 하지만 컴퓨터 프로그램을 만들면서 마주하는 많은 문제들을 모두 디바이드앤 컨쿼 전략으로 해결할 수 없다. 디바이드앤 컨쿼가 되는 문제가 있고 안되는 문제가 있다. 다행이도 지금 계속하고 있는 팩토리얼 문제는 디바이드앤 컨쿼 전략에 아주 잘 어울린다. 사실 디바이드앤 컨쿼 하려고 일부러 팩토리얼을 골랐다. :-)

나빌레라의 이미지

재미있는 놀이: C, Python, Erlang으로 50000! 해보기 #2

지난 글을 쓰고 댓글에 python도 gmp를 쓰면 빠르다라는 댓글이 있었다. 뭐 그런 댓글이야 당연히 달릴 수 있다고 생각한다. 난 파이썬은 빅넘버를 지원하니까, gmp가 라이브러리로 따로 있으리라고 생각 자체를 안했으니까.

그런데 그 댓글의 말투(어투? 글투?)가 아주 기분 나빴다. 아니 기분 나쁜 정도를 떠나서 예의가 없었다. 아무리 우리가 전산쟁이고, 실력이 중요한 사람들이라지만 실력에 앞서 예의가 가장 중요하다. 욕을 한바가지 하고 싶었으나 참았다. 나도 같은 수준이 되기 싫어서.

그래서 아예 그냥 이 글을 때려 치우고 말아버릴까 싶었지만, 이왕 시작한 글이고, 또 재미있게 봐 주시는 분들도 있으니 느리긴 하지만 끝까지 써보려 한다.

제가 쓰는 글이 완전할 수는 당연히 없습니다. 전 아는 것도 없고 실력도 없는 하수니까요. 댓글에 본문의 부족한 부분을 지적하고 채워 주시는 것은 아주 좋습니다. 그렇게 하여 글이 더 풍부하고 완전해 지니까요. 하지만 글을 쓸 때 최소한의 예의는 지켜주시길 부탁드립니다.

나빌레라의 이미지

재미있는 놀이: C, Python, Erlang으로 50000! 해보기 #1

#1. 시퀀셜
난 사실 리컬시브니 디바이드앤 퀀커니 하는 이런저런 기법과 알고리즘을 잘 못한다. 머리가 나빠서인게 가장 큰 이유이고 오류가 없는 코드는 가장 단순한 코드라는 확실한 믿음 때문이다. 코드의 특정 부분에서 성능 최적화를 '반드시'할 필요가 있을 때에나 이런 저런 시도를 하면서 코드에 여러 기법들을 적용해 보지만 어지간해서는 기본적인 문법과 기본적이고 직관적인 코드 이상은 잘 작성하지 않는다.

프로그래밍 언어론에서 프로그래밍 언어의 요소를 구분할 때 일반적으로 반복문, 제어문, 산술문 정도로 구분한다. 그중 반복문은 전체 프로그램의 성능에 가장 큰 영향을 미치는 부분이다. C언어라면 대표적으로 for문과 while문이 있다.

문법에서 제공하는 반복문을 사용하는 방법 말고 반복(루프, loop)을 구현하는 다른 방법으로는 리컬시브가 있다. 이 글을 읽는 사람들 중 리컬시브가 뭔지 모르시는 분들은 얼른 공부하고 오시길 바란다. 리컬시브로 구현한 50000!은 다음 시간에~^^

나빌레라의 이미지

재미있는 놀이: C, Python, Erlang으로 50000! 해보기 #0

재미있는 놀이: C, Python, Erlang으로 50000! 해보기
#0. 동기, 그리고 삽질.

-프롤로그-
나는 1996년부터 C언어를 사용했고, 2001년부터 파이썬을 사용했다. 그리고 2011년 12월 17일부터 얼랭(Erlang) 책을 읽기 시작했고, 2011년 12월 20일에 얼랭으로 처음 코딩을 해 봤다.(얼랭이라는 언어를 안건 2009년 즈음이다.) 이 글을 쓰고 있는 현재 나는 얼랭이란 언어를 본격적으로 공부해야겠다라고 다짐한지 3일이 지났다.

정리해보면, 이 글을 쓰고 있는 현 시점 기준으로

* C언어: 15년
* Python: 10년
* Erlang: 3일

의 경력을 가지고 있다.

feanor의 이미지

svnpartial

SVN에서는 --depth 옵션을 써서 저장소를 부분적으로만 가져오는 것이 가능한데, 이렇게 하면 나중에 어떤 부분을 빼고 가져왔는지 알기 어려운 문제가 있습니다. 그래서 svnpartial이라는 스크립트를 만들었습니다.

pysvn이라는 파이썬 라이브러리를 씁니다.

jachin의 이미지

GNU 스몰토크를 이용한 컴퓨터 프로그래밍 #1

onion님의 요청으로 번역하기 시작한 'Computer Programming using GNU Smalltalk' 를 번역한 파일을 올립니다. 표현이 어색하거나, 문맥상 맞지 않는 내용이 있다면, 보고 알려주셨으면 좋겠습니다.

rgbi3307의 이미지

재미있는 인공지능(AI) 이야기(#11)

안녕하세요?
오늘은 인공지능(AI)에 대한 전체적인 학습 목차를 나열합니다.
아래 목차를 보시면 느끼시겠지만 분량이 상당히 많습니다.
저도 아래 내용들을 다 볼 수 있을지.. 걱정이 됩니다만 꾸준히 성실하게 해보겠습니다.
앞으로 펼쳐지는 내용들은 기술적인 것들이라
도형, 그림, 그래프, 알고리즘 의사코드, 저의 실습 C언어코드 등으로 내용이 구성될듯 합니다.
그래서, 워드로 문서 편집하는 작업이 많아서 KLDP에는 더이상 올리지 못하고,
저의 커널연구회 웹페이지에 올려놓을 예정입니다.
앞으로 아래의 링크에서 문서를 보시면 되겠습니다.

http://www.kernel.bz/maruchi/mr03/ai0001.htm

또한, 매주 목요일 저녁8시 커널연구회에서 인공지능 공부모임을 합니다.

누구나 자유롭게 무료로 참가하실 수 있습니다.

rgbi3307의 이미지

재미있는 인공지능(AI) 이야기(#10)

안녕하세요?
오늘은 AI 기본개념에 대해서 언어학(Linguistics) 적으로 요약합니다.

언어학(Linguistics)

* 언어는 어떻게 생각과 연관되어 있는가?

1957년에 B. F. Skinner는 언어 행동(Verbal Behavior)을 출간했다.
이것은 이분야의 전문가가 언어 학습에 접근하는 행동을 상세하고도 포괄적으로 기술한 것이었다.
그러나, 신기하게도 이책을 논평한 Noam Chomsky라는 언어학자의 책도 이 책만큼이나 잘 알려져 있다.
Noam Chomsky는 구문론적인 구조라는 그만의 이론으로 이 책을 출간했다.

페이지

RSS - 블로그 구독하기