Category Archives: Uncategorized
9월 6, 2012 VirtualBox 디스크 이미지 크기를 줄이는 방법
VirtualBox에서 동적크기 디스크를 사용하고 있는데 크기가 커진후 자동으로 돌아오지 않는다.
용량도 부족하고 해서 줄이는 방법을 찾으니 다음과 같은 글이 검색됨.
나의 경우 Mac OS X 에서 윈도우 XP를 사용하고 있었기 때문에 윈도우에서 sdelete를 다운받고 명령 프롬프트에서 아래와 같이 실행 > sdelete -c -z c:\
윈도우를 종료하고 vdi파일이 있는 곳으로 가서 다음과 같이 실행 $ VBoxManage modifyhd –compact winXp.vdi
나름 간단하다.
….
- 댓글 남기기
- Posted under Uncategorized
4월 29, 2011 잉크스케이프로 그린 블로그 아이콘
- 댓글 남기기
- Posted under Uncategorized
4월 15, 2011 Compojure – 시작하기[번역]
시작하기
이 글은 compojure 프로젝트 위키에 있는 Getting Started 문서를 번역한 것입니다. 번역상태가 그리 좋진 않습니만 누군가에게 도움이 되면 좋겠네요.
원본 링크는 요기 입니다.
컴포저를 시작하는 가장 간단한 방법은 Leiningen 을 이용하는 것이다. (Leiningen은 대중적인 클로저 빌드툴이다.) 아직 Leiningen이 없다면 설치한다.
Leiningen 을 설치했다면 새로운 클로저 프로젝트를 생성한다.
$ lein new hello-www $ cd hello-www
이것으로 기본적인 프로젝트의 껍데기를 만든다.(혹은 프로젝트 스켈레톤)
다은으로 프로젝트 폴더에 있는 project.clj
을 열어서 dependency에 컴포저를 추가한다.
(defproject hello-www "1.0.0-SNAPSHOT" :description "A Compojure 'Hello World' application" :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [compojure "0.6.2"]])
이제 어플리케이션을 작성할 준비가 되었다. src/hello_www/core.clj 파일에 다음 코드를 넣어준다.
(ns hello-www.core
(:use compojure.core)
(:require [compojure.route :as route]
[compojure.handler :as handler]))
(defroutes main-routes
(GET "/" [] "<h1>Hello World Wide Web!</h1>")
(route/resources "/")
(route/not-found "Page not found"))
(def app
(handler/site main-routes))
위 코드는 app이라는 기본적인 Ring 핸들러를 정의한 것이다. 이 예제에서 몇가지 일들이 일어나고 있다. 자 각각 어떤것인지 알아보자.
처음으로 세개의 라우트를 정의한다:
(defroutes main-routes (GET "/" [] "<h1>Hello World Wide Web!</h1>") (route/resources "/") (route/not-found "Page not found"))
컴포저에서 라우트는 cascade down 방식이므로 맨위부터 매치한다.
(GET "/" [] "<h1>Hello World Wide Web!</h1>")
이 식은 요청방식이 “GET”이며 URI가 “/”인 경우만 매치되는 라우팅 함수를 정의한다. 다른경우에는 nil
을 리턴하며 시퀀스에 있는 다음 라우트를 단계적으로 요청한다:
(route/resources "/")
이 라우트는 compojure.route 이름공간에 있는 함수에 의해 생성된다. 이것은 요청한 URI 파일을 “resource/public” 디렉토리에 찾는다. 이것은 프로젝트에 CSS 스타일시트나 이미지 같은 정적인 파일들을 포함할 수 있도록 한다. [번역이 매끄럽지 못함]
만약 정적 파일을 찾을 수 없으면 세번째이자 마지막인 다음 라우트를 요청한다:
(route/not-found "Page not found")
쉽게 예상할 수 있는 것처럼 이것은 404 응답을 리턴한다. 이 라우트는 항상 매치된다. 그래서 이전 라우트에서 매치되지 않은 모든 경우에 대해서 Catch-all 라우트처럼 동작한다.
라우트가 정의되면 site함수에 포함된다:
(def app (handler/site main-routes))
이것은 일반적으로 사용되는 Ring 미들웨어들을 라우트에 추가한다. 이게 없으면 쿠키나 폼 변수를 다룰 수 없고 세션 작업을 할 수 없다.
이제 핸들러 함수가 정의되었고 돌리기만 하면 된다. 가장쉬운 방법은 project.clj파일에 lein-ring 을 개발 의존관계로 추가하는 것이다:
(defproject hello-www "1.0.0-SNAPSHOT" :description "A Compojure 'Hello World' application" :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [compojure "0.6.2"]] :dev-dependencies [[lein-ring "0.4.0"]] :ring {:handler hello-www.core/app})
lein-ring 플러그인은 :ring
키로 설정한다. 메인 링핸들러 위치를 적어 주었다.
이제 의존관계를 다운로드하고 Leiningen으로 개발 서버를 돌릴 수 있다:
$ lein deps $ lein ring server
개발서버는 열려있는 포트를 찾고 브라우저 창을 연다. 만약 아무 소스파일이나 고치면 자동으로 갱신된다.
- 댓글 남기기
- Posted under Uncategorized
3월 23, 2011 크로스 플랫폼 오픈소스 그래픽 프로그램
제목이 장황하게 되었네요.
일반적으로 그래픽 프로그램하면 포토샵이나 일러스트레이터가 떠오릅니다. 그리고 페인터 같은 프로그램이 있죠.
이런 프로그램들이 확실히 기능이나 성능이 참 좋아요. 하지만 유료이다 보니 밥벌이용으로 쓰는게 아니라면 부담되는게 사실이죠. 물론 과자버전을 사용할 수 있지만 코드짜서 먹고사는 입장이다보니 점점 꺼려지더군요. 일에도 가끔 써야되구요.
게다가 주로 사용하는 운영체제가 맥과 리눅스라서 크로스 플랫폼인 프로그램이 좋더군요. (윈도우는 가끔 사용합니다. 어쩔 수 없는 경우에만…)
그래서 찾아봤습니다. 크로스 플랫폼이면서 오픈소스인 프로그램을요.^^
(아.. 윈도우에서도 다 돌아갑니다.)
리눅스는 우분투를 쓰고 있는데요, 아래 프로그램은 모두 시냅틱 패키지 매니저로 한방에 설치할 수 있습니다.
김프 (Gimp)
너무 유명한 프로그램입니다. 그러나 모르는 사람이 더 많습니다.-_-;
리눅스계의 포토샵이라고 할 수 있습니다. 요즘 어도브 제품의 깔삼한 인터페이스에 비하면 왠지 약해 보이지만 상당히 강력합니다. 유투브를 찾아보시면 사람들이 김프로 어떤 결과물을 뽑아내는지 보실 수 있습니다.
잉크스케이프 (Inkscape)
어도브의 일러스트레이터같은 일러스트 프로그램입니다. 저는 김프보다 이걸 많이 쓰게 되더군요. 기능이 아직 일러스트레이터에 비해 적지만 완성도도 높고 쓸만합니다. 한글 튜토리얼도 있어서 금새 따라 배우실 수 있습니다.
마이페인트 (MyPaint)
코렐의 페인터와 같은 프로그램입니다. 버전이 아직 0.9밖에 되지 않습니다.
아직 사용경험이 적습니다. ^^;;
펜슬 (Pencil)
http://www.pencil-animation.org/
조금 독특한 프로그램입니다. 연필 스켓치와 에니메이션이 조합된 프로그램입니다.
역시 설명은 더 사용하고 나서 하겠습니다.
- 1개의 댓글
- Posted under Uncategorized