Monthly Archives: July 2007

컴퓨터 프로그래밍(CS) 인터넷 강좌

MIT OpenCourseWare 비디오와 오디오 강좌 – 컴퓨터 외에도 여러 공학 강좌가 있습니다. MIT OCW가 매스컴을 통해서 많이 알려졌지만, 비디오 강좌는 아직 많은 자료가 없는거 같네요. 이중 컴퓨터 강좌는:

  • 6.033 Computer Systems Engineering, Spring 2005
  • 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005

UC Berkeley 강좌 : CS뿐만 아니라 공학 강좌가 많이 있으며, 오른쪽에서 semester 선택하면 예전 강좌들을 들을수 있습니다. 현재 진행되고 있는 강좌도 들을수 있어서 좋네요.

  2007 Spring

  • CS 61A     The Structure and Interpretation of Computer Programs
  • CS 61BL    Data Structures and Programming Methodology
  • CS 61C     Machine Structures

  2006 Fall

  • CS 162     Operating Systems and Systems Programming
  • CS 61A     The Structure and Interpretation of Computer Programs
  • CS 61B     Data Structures
  • CS 61C     Machine Structures

  2006 Spring

  • CS 162     Operating Systems and System Programming
  • CS 252     Graduate Computer Architecture
  • CS 61A     The Structure and Interpretation of Computer Programs
  • CS 61B     Data Structures
  • CS 61C     Machine Structures

ArsDigita University CS 강좌 : 영국에 있는 대학인가봅니다. 저도 직접은 안봐서 모르겠지만… 다음 강좌들이 있네요.

  • Maths for Computer Science
  • Structure and Interpretation of Computer Programs
  • Discrete Maths
  • How Computers Work
  • Object-oriented Program Design
  • Algorithms
  • Systems
  • Web Applications
  • Theory of Computation
  • Artificial Intelligence
  • Unix Workshop
  • Database Management Systems
  • Applied Probability

University of Washington : 비디오 강좌만 정리된 페이지가 있는지 모르겠지만, 좋은 강좌가 많네요.

University of Indiana CS 강좌: 안타깝게도 비디오는 인증 절차를 통해서 받을수 있도록 바뀌었네요. 예전에는 볼수 있었거든요…

SICP (Structure and Interpretation of Computer Programs) – 1986년 오래된 강의이지만 저자 두명이 직접 설명합니다. 설명이 필요없는 유명한 책이고 여러 대학에서 교재로 사용하고 있습니다. LISP(Scheme) 언어로 강의가 이루어집니다.

http://video.s-inf.de/ : 독일의 대학인데 이 중에서 FP가 Haskell 언어로 강의입니다. 현재 서버에 접속이 불가능한데 구글 캐시에서 페이지 보고 다운로드하면 비디오는 다운로드 되네요. 그리고 다른 강좌는 모르겠지만 FP는 영어로 강의를 합니다.

그리고 강좌를 잘 정리한 글들입니다. :)

그리고 성격이 조금 틀리지만 윈도우즈 프로그래밍에 관심이 있다면 MS에서 제공하는 강좌도 도움이 될거 같네요.

trac 업그레이드 & plugin

trac 사용하면서 꼭 알아야할 사이트인 trac-hacks.org 에 대해서는 오래전부터 알고 있었지만 크게 필요가 없어서 플러그인은 사용하지 않았었습니다. 티켓에서 예상완료일자를 설정하려고 하니 달력에서 보고 설정할수 있으면 좋겠다는 생각이 들었습니다. 그래서 trac-hacks를 찾아보니 역시 플러그인 있네요 ^^. 물론 trac 자체에서도 custom field를 지원하지만, 달력에서 날짜를 고를수 있는 플러그인인 TracDatePlugin은 꼭 설치하고 싶더군요. 그런데 플러그인을 설치하려고 보니 0.9.X에서는 동작을 안한다고 하더군요. 그래서 업그레이드를 했습니다. 물론 일단 백업받고 시작했죠.

전에 사용하던 버전이 0.9.6이 였는데 FreeBSD ports를 통해서 0.10.4 버전으로 업그레이드했습니다.

# cd /usr/ports/www/trac
# make deinstall
# make install
# trac-admin /TRAC/PATH upgrade
# /usr/local/etc/rc.d/lighttpd restart

trac-admin 실행해주고 웹서버 재시작하니 업그레이드가 정상적으로 완료되었습니다.

trac plugin은 egg라고 zip 파일 형태의 패키지를 이용하도록 되어있습니다. python은 오래전부터 사용했지만, egg 패키지는 처음 사용해보는데 java의 jar 정도 되는거 같네요. 패키지의 종속성등의 메타 정보를 넣을수 있다고 합니다. 하지만, 소스에서 뭘 바꾸려해도 zip 안에 들어있어서 바로 편집하기 어려울듯하네요. Egg에 대한 자세한 내용은 여기를 참고하세요.

egg 파일은 단순히 py, pyc 파일등과 메타 정보를 압축한 zip 파일입니다. egg 파일을 만들기 위해서는 setuptools가 필요하다고 합니다. 역시 FreeBSD ports를 이용해 설치했습니다.

# cd /usr/ports/devel/py-setuptools
# make install

그리고 trac plugin 설명 페이지에서 설명한 대로 ez_setup을 설치했습니다.

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

이렇게 하고 필요한 플러그인을 받고 egg 파일을 아래와 같이 만들면 됩니다.

$ unzip datefieldplugin.zip
$ cd datefieldplugin/0.10
$ python setup.py bdist_egg
$ cd dist
$ cp TracDateField-1.0.1-py2.4.egg /TRAC/PATH/plugins

플러그인 소스 받은후 압축풀고, setup.py를 찾아서 위처럼 실행해주면 dist 디렉토리 밑에 egg 파일이 만들어지고, 이 파일을 trac plugin 디렉토리에 옮겨주고 웹서버를 재시작하면 됩니다.

플러그인 중에 제가 사용중인 것 2개만 소개합니다.

TracWebAdmin 0.1.2dev-r4240 : trac-admin을 웹페이지를 통해서 할수 있도록 해주는 플러그인으로 trac을 개발한 edgewall에서 개발한 거고, trac 0.11에서부터는 기본으로 포함된다고 합니다. trac-admin 사용하면 이 정도 기능은 웹에서 가능해야한다고 생각했었는데, 꼭 설치해야할 필수 플러그인이네요.

TracDateField 1.0.1 : custom field에 날짜를 설정할수 있게 해줍니다. 아래와 같이 티켓 만들때 custom field로 date로 설정하면 달력을 보고 날짜를 설정할수 있습니다.