위키를 만들었습니다.

http://wiki.dasomoli.org 로 위키를 만들었습니다.
위키같은게 아무래도 필요한데 그동안 귀찮아서 미뤄왔던 것을 결국 만들어버렸죠. 🙂
전에 몇 번 설치해서 써보았던 moniwiki를 설치했습니다.
위키 설치는 moniwiki의 설치는 매우매우 간단하기 때문에(압축풀고 스크립트 실행, 설치 php 실행, 스크립트 실행, 끝) 별로 애 안먹었는데 이 놈을 접속하기가 영 귀찮아서 결국 도메인 네임 서버를 DNSEver로 옮기고 웹포워딩 기능을 이용해서 wiki.dasomoli.org라는 도메인을 만들었습니다.(..사실 blog.dasomoli.org 도 만들었어요)

아.. 그러고보니 notebook.dasomoli.org 도 만들었군요. Dynamic DNS래길래 가끔 쓸모있을 것 같아서요~

음~ 제 위키도 생기고 좋군요. 😀

한국산업인력공단 기출문제

(16시 26분 31초) [규림]: 정확히 말하자면 산업인력공단 홈페이지로 가야 하지요 -_-;;
(16시 26분 47초) [규림]: 거기서 일반자료 – 공개문제/출제기준 게시판에 보면
(16시 26분 56초) [규림]: 최근 회차별로 기출문제가 나와 있어요
(16시 27분 34초) [규림]: 출제기준도 읽어보면 은근히 도움되는문서 -.-
(16시 27분 50초) http://dasomoli.org 놀러오세요! – 다솜돌이(政錫): 아~ 그러네~
(16시 27분 51초) http://dasomoli.org 놀러오세요! – 다솜돌이(政錫): ㅋㅋㅋ
(16시 27분 53초) http://dasomoli.org 놀러오세요! – 다솜돌이(政錫): 고마워~

이러는 겁니다!

NateON의 GAIM 플러그인!

짜잔! 이게 뭘까요?!
사용자 삽입 이미지

네! 그렇습니다. Haze옹이 만든 네이트온의 Gaim 플러그인입니다!
http://nateon.haz3.com 에서 Feisty용 deb를 배포하고 있는데 아직은 베타입니다~
포럼에 가보시면 아시겠지만 svn으로 익명 체크아웃도 허용합니다^^

역시 헤즈옹은 ㅊㅊㅈ!

Feisty fawn으로 업그레이드!

우분투 Feisty fawn(7.04)이 정식 릴리즈된지 며칠 지났는데도 시험기간이라 업그레이드를 미루고 있었습니다만, 오늘 드디어 업그레이드를 했습니다! 공대 열람실에서 Nespot으로요.;;(덕분에 시험은..OTL)

6.10을 사용하다가 7.04로 업그레이드하고 나니 기존 환경에서 몇가지 바뀐 것들이 있네요.

일단 처음 눈에 띈 것은 ttf-alee를 글꼴이 예쁘지 않게 나온다는 겁니다. 이에 관해서는 KLDP글들도 있고 하니 설정 후에 다시 포스팅하죠~

두번째는 “시스템”/”관리” 에 “제한된 드라이버 관리자” 라는게 생긴 겁니다. 멤버십에 있는 geforce를 사용하는 PC에는 이미 feisty를 깔았는데 여기서 “활성화” 던가 하는 걸 체크하니 알아서 드라이버를 다운받아 설치해주더군요!

세번째는 NTFS-3G가 기본 저장소에 추가된 듯 보인다는 겁니다. ntfs-3g를 저장소 추가없이 그냥 설치할 수 있는 듯 보이네요. 게다가 ntfs-config 라는 도구를 설치하면 “프로그램”/”시스템 도구”에 “NTFS 쓰기 지원 설정 도구”라는 게 생기는데 이 도구를 실행해서 장치에 맞게 체크만 해주고 확인 버튼을 누르면 알아서 fstab 내용을 바꿔주고 마운트해줍니다. ㅎㅎ

ntfs-config
NTFS를 ntfs-3g로 자동으로 마운트해주고 fstab 내용도 알아서 수정해준다!

이 것 말고도 여러가지 많을 듯 한데 쓰다가 생각나는데로 틈틈히 또 포스팅하겠습니다.

결론은! 저어어어엉말! 더 편해졌다는 거예요!

졸음 버그

글에 앞서 프로그래머를 졸린 상태에서 일하도록 하면 안된다고 강력히 주장합니다.

제가 요즘 좀 많이 바쁩니다.

Todo list로 적어봤더니 노트가 꽉차더군요-_-

어제 밤에는(정확히는 오늘 6시까지) 과제기획서를 위한 자료 준비를 하고 6시부터 아르바이트로 하고 있는 프로그램을 코딩했습니다. 코딩 중에는 정말 난리도 아니었죠. 졸린 눈 비비고 깜빡 졸았다가 다시 타이핑하고, 커피를 냅다 위에다 붓고.. 이게 수요일까지 완성되어야 하기 때문에 정말 바쁩니다. 게다가 전 다음주 일요일부터 시험이라구요! 이번주 일요일까지는 과제 기획서, 기말 프로젝트 보고서를 제출해야 하고, 화요일까지 프로그래밍 과제도 있고, 수요일까지 프로그래밍 및 UML 보고서를 제출해야 하고, 같은 날에 Vigenere 암호 해독 프로그램을 작성해야 하며 시험기간이 끝나자마자 알고리즘 22개에 대한 설명과 최선, 최악, 평균에 대한 예제를 만들어서 손으로 풀어서 제출해야 하고, 프로그래밍 언어론에서 프로젝트를 진행할 언어를 선정하는 게시글을 올려야 하며, 토론글을 작성해야만 합니다.(그렇지만 더 나쁜 건 이게 다가 아니라는 겁니다. 더 많이 있어요-_-) 잠을 줄이지 않고는 할 수가 없겠더군요.

그래서 잠을 줄였습니다.

그 결과로 아침에 다음과 같은 코드를 작성했답니다.

   for(i = 0; 1 < 10; i++)    {
       ar >> sData.inclineStart    [i];
       ar >> sData.inclineEnd        [i];
       ar >> sData.inclinePercent    [i];
   }

뭐가 잘못됐는지 보이시나요? 저는 제가 평생 이런 코드를 짜지 않을 거라고 생각했습니다. 저런 코드를 짜는 프로그래머는 “죽어야 된다”고 생각했죠-_-;;; “어떤 바보멍청이가 저런 코드를 짜?” 라고 생각했죠. 그 바보 멍청이가 오늘 제가 될 줄은 꿈에도 몰랐답니다.

이 것 말고도 몇가지 사고(!)들을 일으키는 코드를 아침에 수없이 양산해냈죠; 저장을 두 번 한다던지.. 배열의 index를 다른 변수의 index와 헷갈린다던지.. 이게 저 혼자 짜는 프로그램이니 다행이지 협업되서 돌아가는 프로그램이었다면 어땠을지 정말…

음주 코딩, 졸음 코딩.. 정말 없어야 합니다. 음주 코딩이나 졸음 코딩을 해야 할 정도로 프로그래머를 괴롭히지(!) 마세요. 두배, 세배, 열배, 백배가 되어 다시 돌아옵니다.(대부분 프로그래머에게 다시 돌아오게 되어 프로그래머를 더 힘들게 하긴 합니다만)

근데 지금도 정말 졸립고 힘드네요.

프로그래밍 언어 – Lisp

프로그래밍 언어 강의 시간에 들었던 Lisp 강의를 들으면서 요약했던 부분이다.
지금 보니 뭘 요약, 정리해놓은 건지도 잘 모르겠다..;;

quote(abc) == ‘abc 수정 X

* Interpretation & dynamic typed 언어

* 모든 표현에 대해 평가(evaluate)하고 결과값(retrun value)를 생성함.

* Lexical scoping(scope를 안에만 보는 것:Look inside, never outside, local 우선) indefinite scoping(scoping에 제한 없음)을 사용함.

* Atom(자르면 안됨)과 List 중심의 표현되는 s-expression의 언어

* Atom : refer to just about any s-expression that connot be taken apart

* q는 얼음, 아닌건 땡(…)

* (+ 2 (setq x (* 3 4))) 는 스택 사용, *는 binary operation이므로 parameter가 두 개, x는 중간에 binding 됨.

* ‘( )’ 는 리스트 ‘(‘를 열면 리스트 만듦.

* setq은 pointer와 비슷한 개념

* (set x ‘z)는 (setq y z)와 같다.

* s-expressions은 괄호가 열리면 꼭 닫혀야 한다.

* (a (b c) d) 같은 건 binary tree등을 나타내는데 쓸 수 있음.

* (car (cdr ‘(a b c))) == (cadr ‘(a b c))

* nil은 type이 없다


* function define
(defun fname (v1, …, vn)
       (body1) … (bodym))

* predicate: T/nil 을 리턴함

(atom a) -> T: A가 atom 이냐

(atom ‘(a b))

* mapping functions : mutilple operation

* property list : DB, global(또, get,  set)

프로그래밍을 하면서 생긴 몇 가지 버릇들..

어렸을 때 부터 프로그래밍을 하다보니 저도 모르게 나오는 버릇들이 몇 가지 있습니다.

첫번째는 종이에 연필로 곱셈을 할 때나 수식 계산을 할 때 2 X 2 식으로 쓰는 것이 아니라 2 * 2 로 쓰게 되는 거죠. X 기호보단 * 기호가 더 익숙하게 되버렸거든요.
두번째는 수를 1부터 세지 않고 0부터 센다는 것인데 세어나가는 모든 수를 인덱스 개념으로 생각해버리게 된 겁니다.
(추가1) 세번째는 K(킬로)와 같은 단위를 1000 단위로 생각하는 것이 아니라 1024단위로 생각하게 되버린 겁니다.;;

이 것 참…

이  것 말고도 굉장히 많이 있는데 어째 적어보려니 생각이 나질 않네요. 생각나는데로 추가해야지 흐흐..

한국산업인력공단 기출문제 사이트

아는 동생이 한식 조리기능사를 준비중입니다.

도와주려고 기출문제를 찾다보니 이런 사이트(http://q-net.co.kr/)도 있었네요!

각종 기사, 산업기사, 기능사, 기능장, 기술사까지 기출문제를 제공하고 있는데

어지한간 자격증 시험은 대개 그렇듯이 기출 문제만 보아도 딸 수 있기 때문에 한국인력산업공단의 자격증을 준비하는 사람들에게는 꽤나 유용할 것 같습니다.

오늘 가서 알려 주어야 겠어요!

MIPS 시뮬레이터의 버그

학교에서 컴퓨터구조 수업을 듣는 중입니다.
IA-32(교수님 표현을 빌리자면 걸레-_-) 구조가 아닌 간단한 MIPS 아키텍처에 대해 배우고 있는데 MIPS Instruction set 을 이용해서 간단한 ASM 프로그래밍을 과제로 내주셨기에 어제 열심히 했더랍니다. 시뮬레이터로는 PCSpim 이라고 하는 윈도우즈 기반(이 것부터 잘못일지도 몰라요-_-) 시뮬레이터를 썼습니다. SPIM 은 Unix/Linux 기반의 콘솔 환경에서 사용할 수 있는 도구입니다. PCSpim은 그를 윈도우즈의 GUI 환경으로 만든거구요.

그런데! 아무리해도 원하는대로 답이 안나오는 겁니다!

답이 안나오면 가장 먼저 의심하는건 접니다-_-;; PC는 거짓말을 하지 않잖아요?
이거 뭔가 이상하다고! 컴파일러가 잘못되었다고! 외쳐봐야 나중에 보면 결국 자기 탓이기 마련입니다.

그런데 어제는 아니더군요.(컴파일러는 아니니 그럴 수 있는 건지도 모르겠지만요~ 😉 )
코드를 열심히 들여다보고, 내 능력이 이 거 밖에 안되나~ 한숨도 쉬어보고, 다시 아무리 코드를 들여다보면서 돌려봐도 안되는 겁니다. 난감하더군요.
결국 차례차례 나눠서 한 스텝씩 진행해보았습니다. 자세히 한스텝씩 진행하며 살펴보니 이 PCSpim 이란 놈이 자기 멋대로 Stack Pointer Register 값을 바꿔버리고 있더군요. 그래서 $SP 의 값을 가지고 리턴하는 부분에서 엉뚱한 곳으로 리턴하면서 Exception을 툭툭 뱉어내고 있는 것이었습니다.

사용자 삽입 이미지
jump전의 $SP값

사용자 삽입 이미지
$SP값이 제멋대로 바뀌었다!

그래서 바로 리눅스로 재부팅하고! 우분투의 소스리스트에 있는 SPIM 을 설치하려고 했으나 제대로 동작하지 않길래 소스를 받아다가 소스 컴파일하고 설치를 했죠.

바로 결과가 나오더군요-_-… 아까운 제 3시간은 그렇게 흘러갔습니다. 버젼이 7.3이나 되는 놈이 이럴 줄은 몰랐답니다ㅠㅠ

추가 : 다른 컴퓨터에서는 제대로 돌아가길래 PCSpim을 재설치하고 다시 해보았는데도 안됩니다. 그래서 뭔가 이상하다 생각하고는 Simulator 메뉴의 Settings… 에 있는 옵션들을 건드려보았는데 Delayed Branches 와 Delayed Load를 체크상태로 두면 (제 노트북에서만) 제대로 동작하지 않습니다. 이게 어떤 역할을 하길래 $SP 값을 마구 바꾸는 건지 모르겠네요. 게시판에 질문을 올렸는데 답변이 오면 또 추가하도록 하겠습니다.