헬싱 Other Stories 2011. 7. 10. 01:02
헬싱
카테고리 만화 > SF/판타지
지은이 KOUTA HIRANO (조은세상, 2000년)
상세보기

소장하고 있는 만화책중에 하나이다. 이 만화책은 처음부터 끝까지 '강함'만을 이야기 한다. "주인공 흡혈귀인 '아카드'가 엄청나게 강하다"가 이 책의 모든 줄거리 요약이다. 하지만 이 강함을 풀어가는 방식이 정말로 독특하다. 열권밖에 안되니 시간이 남을때 한번 보는것을 추천한다.
Django 의 forms.ModelChoiceField 는 보통 ModelForm 에서 ForiegnKey 를 받기 위해 사용된다. 하지만 ForiegnKey 로 사용될 수 있는 객체가 제한적이라면 queryset 인자를 통해 선택할 수 있는 옵션을 제한 할 수 있다. 예를들어, Board 모델과 Category 모델, Article 모델이 존재한다고 해 보자. Article 은 게시판의 글을 나타내며 Board 와 Category 에 속한다. Category 는 각각의 게시판에서 존재하는 분류를 타나내고 Board 에 속한다. 이 경우 Article 을 쓰기 위해 Form 을 만들 경우 ModelForm 을 사용 할 것이다. 하지만, 이러한 경우는 모든 Category 를 선택할수 있게 하면 안된다. 현재 Article이 써지려는 Board와 같은 Board에 속하는 Category 만 선택가능하도록 해야 할 것이다. 이런 경우 동적으로 ModelForm의 category를 오버로딩 해야 한다. 이때 아랴와 같이 하면 된다.
class ArticleForm(forms.ModelForm):
    def __init__(self, board, *args, **kwargs):
        super(ArticleForm, self).__init__(*args, **kwargs)
        self.fields['category'].queryset = Category.objects.filter(board=board)
        self.fields['category'].empty_label = u"선택안함"
    
    class Meta:
        model = Article
        fields = ('category', ... blah blah ...)

사실 잘 생학해 보면 Category 에 이미 Board 에 대한 정보가 들어가 있으므로 Article 에 딱히 Board 가 필요하지는 않지만 일종의 역정규화를 시킨 것으로 이해하면 된다. 이러한 경우 위와 같이 사용하여 Category 의 선택을 제한 할 수 있다.
Mac OS X 와 Ubuntu Other Stories 2011. 3. 12. 14:23
나는 현재 데스크톱에 Ubuntu 10.10 버전을 사용하고, 노트북으로는 MacBook Air 13' 형을 사용하고 있다. 맥북에는 기본적으로 Max OS X가 들어가있고, 아직 MacBook Air 를 지원하는 다른 운영체제는 미흡하므로 결국 Ubuntu 와 Mac OS X 를 쓰고 있는 셈이다. 사실 두 운영체제는 크게 다르지 않다. 많은 사람들이 Mac OS X 의 화려한 화면 효과를 보고 좋아하지만, 사실 리눅스 Gnome 데스크톱 환경에서도 Compiz 를 통해 더 좋은 화면 효과를 낼 수 있다. 

두 운영체제는 둘다 POSIX 기반이다. Ubuntu 는  GNU/Linux 환경의 배포판이고 Mac OS X 의 Darwin 커널은 BSD Unix 기반의 커널이다. 다만 Ubuntu는 기본적인 패키지 관리 시스템을 내장하고 있어 오픈소스 프로그램의 설치가 쉬운 편이지만, Mac OS X 의 경우 별토의 패키지 관리 시스템이 없다. 다만 시스템적으로 Ruby, Python, Perl 등의 환경은 기본적으로 제공된다. 또한 Macport 와 Homebrew 등의 다른 패키지 관리 시스템을 사용하여 GNU환경을 비슷하게 꾸밀 수 있다. 

사실 이런 패키지 관리 시스템을 사용하면 개발환경이나 터미널 환경에서는 두 운영체제는 별로 차이를 느끼기 힘들다. 다만 Mac OS X 를 지원하는 게임들은 좀 있지만 GNU/Linux 환경의 게임은 별로 없다는 점, Macport 는 소스를 다운받아 빌드하는 방식이기 때문에 미칠듯이 느리다는 점이 어느정도 체감할 수 있는 차이이다. 사실 POSIX 환경에서의 터미널 환경에 익숙해 지면 MS Windows 시스템을 쓰기가 좀 힘들다. 시스템 환경변수를 바꾸기 위해서는 귀찮게 GUI환경에서 이것 저것 찾아들어가야 하고, cmd 도 사용하기 꽤나 불편하다. 사실 게임이나 여타 응용프로그램이 아니라면 MS Windows 는 딱히 데스크탑 환경으로도 별로 좋은 것 같지는 않다.