2005년 7월 29일 금요일

간단한 Cocoa Application (3)

Instance Builder에서 Foo 클래스의 인스턴스를 생성합니다.


생성된 Foo instance입니다.


Foo 클래스 생성 시 만들었던 Outlet과 Action을 연결합니다.
연결을 할 때는 Control 버튼을 누르고 마우스를 드래그합니다. 시작점이 굵은 사각형으로 표시됩니다.

Outlet의 원뜻인 출구처럼 Foo클래스에서 인터페이스로 내보내는 연결을 해줍니다.



Action을 받아서 Foo클래스로 넘겨주는 연결을 생성합니다.



Foo 클래스의 헤더와 구현을 클릭하여 내부 코드를 입력합니다.






'Build and Go' 버튼을 눌러서 실행시킨 모습입니다.

Window가 작성한 프로그램입니다. Xcode에서 프로그램 실행 시에는 아래의 Run Log도 같이 뜹니다.



@ Interface Builder에서 Interface를 작성하는 위치가 창의 초기 위치가 됩니다.

2005년 7월 27일 수요일

오늘 본 재미있는 기사들...

전자신문에 재미있는 기사가 있더군요.

엠파스, 브리태니커 백과사전 검색 오픈
엠파스에서 백과사전 검색엔진으로 '브리태니커'의 컨텐츠를 사용한다고 하네요. 브리태니커 사전을 살까 한 때 고민도 했었는데 살필요가 없어진 듯... ^^
http://www.etnews.co.kr/news/detail.html?id=200507260013&keyword=%BF%A5%C6%C4%BD%BA

아로마소프트의 휴대폰용 멀티플 자바 VM 개발

'지민아빠'님이 기술력이 좋던 회사라고 하셨던 그 아로마인지 모르겠네요. 폰에서 디버깅 가능한 솔루션을 제공한다고 하는데 재미있겠네요 ^^..
http://www.etnews.co.kr/news/detail.html?id=200507260156

출처는 전자신문입니다~

2005년 7월 25일 월요일

GIF 포멧

GIF 포멧은 비트맵 이미지입니다. 색으로는 256색만을 가질 수 있으며 /dʒɪf/ 또는 /gɪf/로 발음합니다.

포멧은 두가지 형태가 있습니다.
87a - 오리지널 GIF 포멧
89a - CompuServe에서 만든 87a의 개선 버전입니다.

  • 한 스트림안에 여러 이미지가 들어가는 것을 지원해줍니다.
  • 이미지 전체가 다운로드 되는 중에 이미지를 점진적으로 진행되는 것을 보여줄 수 있습니다.(interlaced 기능)
  • Application-specfic한 메타데이터를 넣을 수 있습니다.


  • 두 개의 버전은 파일 시작 부분의 6개 byte들로 구분되어질 수 있습니다. 6개의 byte들은 ASCII로 "GIF87a"나 "GIF89a"를 가질 수 있습니다.


    GIF의 특징 중 하나는 Unisys소유의 LZW 압축 알고리즘을 사용하는 것입니다. 처음에 Compuserve에서 GIF 포멧을 개발할 때 LZW 알고리즘에 특허가 있는지를 모르고 개발되었습니다.(1989년) 그 후 GIF 포멧이 LZW 알고리즘을 사용하는 것을 발견한 Unisys에서 특허 사용에 따른 비용을 요구하게 됩니다.(1949년)

    2003년 6월 20일, 미국에서 LZW 알고리즘의 특허는 종료되었으며 유럽은 2004년 6월 18일, 일본은 2004년 6월 20일, 캐나다는 7월 7일 종료되었습니다.

    출처 : http://en.wikipedia.org/wiki/Gif

    2005년 7월 24일 일요일

    테터에서 PDF로 출력하는 무식하면서도 아주 간단한 방법

    ※ 필요조건 : PDF로 출력 가능한 프린터 드라이버 또는 서비스가 있어야 합니다.
    예를 들면, Mac OS X의 PDF 출력기능이나, Adobe PDF Distiller, 한컴의 PDF등등

    1. 테터에서 분류 전체보기의 위치를 클릭합니다.
    저의 경우 : http://okjungsoo.woweb.net/tt2/tt/index.php?ct1=-1

    2. 해당 웹페이지의 소스보기를 합니다.

    3. 소스에서 자신의 글이 몇개인지 확인합니다.
    테터에서 관련 글은 상대 경로로 'index.php?pl=202&ct1=-1' 형식으로 진행됩니다. 여기서 'pl='얼마의 얼마가 글 개수입니다 . 저의 경우에는 202개 였습니다.

    4. 테터가 설치되어 있는 ftp로 이동한 후 테터폴더의 /tt/admin/setting_skin.php를 엽니다.

    5. '블로그 글을 한 페이지당 ~개 표시합니다.' 사이에서 for 루프를 찾습니다.
    for ($i=1;$i<=30;$i++)

    루프의 최대값을 자신의 최대개수로 바꾸어줍니다.
    저의 경우 for ($i=1;$i<=202;$i++)

    6. 환경설정으로 들어가서 스킨관련 키를 누른 후 블로그 글을 한 페이지 당 '~'개로 표시합니다. 에서 최대개수로 바꿉니다.

    7. 저장 후 Mac의 웹 브라우저인 Safari에서 블로그를 부릅니다.

    8. Safari의 '파일>최대 크기의 프레임 프린트'를 클릭합니다.

    9. PDF 버튼을 눌러서 PDF 저장을 하면 됩니다.


    ※ 주의사항 : 자신의 글이 많을수록 파일로딩에 엄청난 시간을 잡아먹습니다. 출력 시간은 몇 분 안걸리구요.
    ※ 화면 레이아웃의 경우 Mac 프린팅 시스템에서 축소 후 출력하게 되므로 글자가 매우 작을 수 있습니다.
    ※ 윈도우 및 기타의 경우에 대해서는 테스트를 못했습니다. 레이아아웃이 어떻게 처리될 지는 모르겠네요.

    간단한 Cocoa Application (2)

    Doc 윈도우에서 Classes tab을 선택합니다.
    맨 좌측에서 java.lang.Object와 NSObject를 보실 수 있습니다.
    이 들을 사용하여 새로운 Class들을 만들 수 있습니다.

    Objective-C에서는 일반적으로 Class들을 만들 때 NSObject를 상속받아서 만듭니다. java.lang.Object처럼 기본적인 객체로서의 갖추어야할 속성이나 메소드들을 가지고 있는 클래스이구요.

    java와의 차이점은 java에서는 모든 클래스들이 Object 클래스를 상속받아서 만들어져야 하는데요. Objectie-C에서는 NSObject와 동급의 클래스를 만들 수가 있습니다. 이러한 동급의 클래스를 Root Class라고 하구요.

    Root class가 위치한 tab에서 NSObject를 상속받는 클래스 Foo를 만듭니다.



    Foo 클래스 내부의 속성과 메소드를 정의할 차례인데요.
    먼저, Cocoa(Objective-C의 tutorial에서는 instance variable로 표기되어있더군요.)에서의 용어를 살펴보면 다음과 같습니다.
    Instance variables that are pointers to other objects are called outlets
    Methods that can be triggered by user interface objects are called actions

    outlet이 java의 attribute에 해당하고 action이 method에 해당한다고 보시면 될 것 같네요. 약간의 차이는 있어도요.

    클래스 Foo의 속성 및 메소드 설정이 가능한 Inspector 창



    선택된 Outlet tab에서 새로운 outlet을 추가하면 Outlet Name이 나옵니다. 여기에서 Type을 선택할 수 있습니다.

    Objective-C에서는 오브젝트는 기본적으로 id로 나타내집니다. 이 때 오브젝트의 의미는 통상적인 객체 자체 뿐만 아니라 메소드도 포함하게 됩니다. 표기는 다음과 같습니다.
    id Object;

    id는 int 타입으로 Object의 포인터입니다. 컴파일 시에는 어떤 것인지 알 수 없으므로 Runtime시 Dynamic하게 처리가 됩니다. id값이 0인 놈이 하나 있는데 이놈은 nil이라 불립니다. nil은 java의 null객체에 해당합니다.

    여기에서 id가 아닌 실제 클래스이름으로 선언할 수도 있습니다. 이는 static typing이라 불리며 표기는 다음의 형태가 됩니다.
    NSTextField *textField;

    객체 이름에 포인터표기에 주의하시구요. (제일 싫어하는 Pointer내요 ㅠㅠ) 객체들은 항상 포인터로 표기되어야 합니다. Type을 선언함으로서 컴파일 시간에 type checking을 통해서 더욱 robust한 프로그램을 만들 수 있구요. 이 때 id는 감추어질 뿐입니다. id는 존재하구요.

    Foo클래스에 action을 추가한 모습입니다.


    Objective-C (1)에서 언급한 것처럼, method에서 +는 class methods, - 는 instance methods를 예기합니다.
    return type으로는 class나 instance 지시자 다음에 () 형태로 오게 됩니다.
    - (float)radius;

    return type을 정의하지 않는 경우에는 id가 리턴이 된다고 가정합니다. argument들은 method 이름 뒤에 :을 사용하여 구분이 됩니다. 이 때 argument의 type은 ()로 정의됩니다.
    - (void)setRadius:(float)aRadius;

    argument가 여럿인 경우는 :로 구분되며 각각의 argument에 이름을 붙일 수 있습니다. 만약 width와 height를 설정하는 메소드를 만든다면 다음과 같이 만들 수 있습니다.
    -(void)setWidth:(float)width :(float)height;
    -(void)setWidth:(float)width height:(float)height;

    이름을 argument에서 따로 설정해주는 이유는 메소드를 호출하는 클래스에서 어떠한 값을 넣어주는 지에 대해서 명확하게 정의할 수 있기 때문입니다.

    Foo에 속성을 넣고 다음과 같이 Foo클래스 파일을 생성하면

    interface와 implementation 파일이 Doc window에 추가된 것을 확인하실 수 있습니다. " tt_link="" tt_w="449px" tt_h="434px" tt_alt="" />

    주말야구장



    대서였던 어제...
    두산과 LG의 경기가 있었다.

    내야부터 외야끝까지 가득찬 LG 관중석과 사진에서 보이다시피
    듬성듬성 빈자리를 내보이는 두산 관중석..

    아무리 감독이 대체할 투수가 없다고 무너지는 투수를 계속 올린다해도.
    이런 더운 날에 꽉찬 관중한테 너무하는 짓이 아니었나 싶다.

    어떻게.. 어떻게.. 만루 찬스와 만루에 가까운 찬스
    (한 3,4번 정도 있었습니다.)를 모두 놓칠 수 있단 말인가.

    처음에는 여럿 동참하던 응원전도 식어버리고...
    주말에 즐거운 만남도 짜증으로 변해버렸다... ㅡㅡ;;

    P.S.
    주말 야구장은 응원석이 외야로 가더군요. 주중에는 응원석이 내야였는데..
    야구경기는 선발 투수보고 가야겠더군요. 지는 게임은 가는 사람이 화나요..

    2005년 7월 23일 토요일

    Mac에서 화면 캡처.app로 캡처하기

    Mac에서 화면 캡쳐하는 방법은 여러가지가 있습니다.
    기본적으로 사용하는 방법은 Mac 운영체제에서 캡쳐하는 것입니다. 그러나 가끔 Option키를 누른 상태이거나 Command(사과) 버튼을 눌렀을 때 나오는 화면을 캡쳐하고 싶을 때가 있을 것입니다.

    그런 경우에 사용하기 좋은 방법일 것 같은데요.
    '응용프로그램 > 유틸리티 > 화면 캡처.app' 를 사용하시면 쉽게 하실 수 있습니다.
    # 저장 시 포멧은 Tiff가 됩니다. 별도저장을 하더라도 Tiff포멧이 됩니다. 확장자를 PNG로 바꿔도 Tiff가 안되네요.

    화면 캡처.app를 실행한 후 시간 제한을 누릅니다.



    시간 제한이란 창이 뜰텐데요.
    사진기에서 타이머를 사용하는 것처럼 화면 캡쳐가 가능합니다.



    • 이 외에 캡쳐하는 방법으로 '미리보기.app'를 사용하는 방법도 하나입니다.
      사용방법은 '미리보기.app > 파일 > 화면캡쳐'를 누르면 됩니다.

      User inserted image

    • 시스템의 단축키로 제공되는 기능을 사용해도 되는데요. 'Command +Shift +3'은 전체 화면을 캡쳐하며, 'Command +Shift +4'는 드래그&드롭 캡쳐를 지원합니다.
    • Command +Shift +(숫자)는 PNG 포멧으로 저장이 됩니다.
    • 클립보드에 들어있는 내용은 '미리보기.app'의 '파일 > 클립보드에서 신규'를 클릭하시면 파일로 생성이 가능합니다.
      User inserted image

    간단한 Cocoa Application (1)

    음.. 별건 아니구요. 그냥 책하고 Tutorial에서 본것을 정리하는 수준으로 글을 올리겠습니다. 궁금하신것 있으시면.. 댓글 달아주세요. (답을 할수 있을지는 ^^;;;;)

    그럼, 간단한 Cocoa Application을 만들어 보죠.
    먼저, Xcode를 실행한 다음에 New Project를 실행합니다.

    Assistant에서 Cocoa Application을 선택합니다.



    Project 이름 만드는 것은 쉬우니까 생략하구요.
    책에 나와있는 대로 RandomApp를 입력하고 창을 생성합니다.

    Doc window 입니다. Project의 뼈대를 보실 수 있구요.



    framework는 java의 package같은 라이브러리구요.
    Info.plist는 프로그램 실행 시 나오는 Dock의 아이콘 등에 대한 설정이 들어있는 XML 파일이구요. (먀님 맞나요?) RandomApp.app는 실행파일입니다.

    main.m 파일의 내용입니다. Doc 윈도우에서 main.m을 더블 클릭하면 뜨는 창입니다.



    main.m이 시작 부분인 main()가 들어있는 파일입니다.
    JFrame과 비슷한 NSApplicationMain 클래스를 통하여 사용자 인터페이스 정보를 담고 있는 nib 파일을 로딩합니다.

    보시는 화면에서는 빈 window가 아니라 버튼과 Label(NSButton과 NSTextField)이 올려진 모습입니다.



    nib파일을 더블 클릭하게 되면 Interface Builder가 뜹니다.
    메뉴와 Application의 빈 window는 자동적으로 생성이 됩니다.

    이 창에 있는 Cocoa component들을 빈 윈도우로 드래그해서 올리면

    Cocoa 컴포넌트가 자동으로 추가됩니다. " tt_link="" tt_w="436px" tt_h="346px" tt_alt="" />

    Cocoa Component들의 위치 선정에는 두 가지 방법이 있습니다.
    Inspector를 사용하여 좌표를 직접 주는 방법과 마우스 드래그를 하여서 조절하는 방법이 있는대요.

    Inspector 창을 사용하여 조절하는 방법



    마우스로 드래그하는 방법을 사용하게 되면 적정 위치로 갔을 때 Apple의 GUI 가이드라인이 나오는데 이 라인에 맞추시면 됩니다.

    파란색 선이 가이드라인입니다.



    만약, Componenet간의 거리를 알고 싶으시다면 Component를 선택한 상황에서 (마우스는 누르지 마시구요. 마우스 위치는 Window 창안에있으나 해당 Component의 위에 있어서는 안됩니다.) Option Key를 누르시면 거리를 알 수 있습니다.

    Component의 위에 있으면 거리가 나오지 않습니다.



    Component의 위에 있는 경우는 가이드라인만 나옵니다.



    @ 참고서적은 Aaron Hillegass님의 Cocoa Programming for Mac OS X(2nd edition) - Addison Wesley 출판사

    2005년 7월 22일 금요일

    Mac에서 간단한 코딩하기

    Mac에서 코딩하는 방법은 여러가지가 있습니다만, 대표적으로 사용하는게 Xcode를 주로 사용하는 것 같습니다. (Tutorial에서도 Xcode를 사용하더군요.)

    Xcode는 일반적으로 ~/Developer/Applications/Xcode.app 에 위치하고 있습니다.



    Xcode를 실행시키면 다음과 같은 Project 창이 뜨게 됩니다.
  • Application : 윈도우를 생성하는 프로그램을 말합니다.
  • Bundle or Framework : 다른 Application들에 의해 사용되어 질 수 있는 디렉토리의 리소스들을 말하며, bundle은 runtime시 dynamic하게 로딩될 수 있으며, framework는 일반적으로 compile time에 링크되게 됩니다.
  • Foundation Tool : Command line 또는 background에서 daemon처럼 동작하는 프로그램을 작성할 때 사용합니다.


  • 여기서는 Foundation Tool을 선택합니다. 왜? 저도 해보지 않았거든요 ^^



    그 다음은 Project의 이름을 넣고 Finish~.



    프로젝트가 생성되었습니다.



    생성된 프로젝트에는 다음의 것들이 있습니다.
  • main메소드가 들어있는 Objective-C파일(확장자가 m으로 끝납니다.)
  • Documentation 파일인 Test.1(어떤 내용이 들어있는지는 저도 모릅니다.)
  • Test_Prefix.pch - prefix header입니다.
  • Foundation.framework - java.lang에 해당하는 라이브러리입니다.
  • Test - 실행 프로그램입니다.


  • main메소드가 들어있는 Test.m 파일입니다.



    ※ Java에서는 Grabage Collection에서 자동적으로 메모리 할당과 해제를 합니다만 Cocoa에서는 좀 더 유연하게 동작하기 위해서 사용자가 해제 시기를 결정할 수 있게 합니다.
    ※ NSAutoreleasePool은 메모리를 관리하는 풀로서 메모리 할당 후 객체를 pool에 넣어주면 사용자가 직접 해제를 하지 않아도 pool에서 관리를 해주게 됩니다.
    ※ NSLog는 C의 printf와 같이 출력을 담당하는 메소드입니다. @가 붙은 스트링은 NSString이 됩니다.

    출력 결과입니다.

    2005년 7월 21일 목요일

    PHP로 pdf 만들기

    가 sourceforge에 있더군요...

    우연히 지나다 마주친 pdf 만들기
    http://sourceforge.net/projects/pdf-php

    해당 프로젝트의 홈 : http://ros.co.nz/pdf/

    http://ros.co.nz/pdf/ " tt_link="" tt_w="280px" tt_h="80px" tt_alt="" />

    따로 install할 필요없이 사용가능하다는 군요...
    블로그에 붙여서 출력이 가능할지는 미지수지만..

    나름대로 재미있는 프로젝트가 되지 않을런지 ^^ 누가 TATTER에
    붙여줘요...

    야구장

    잠실야구장에 처음 가봤습니다.
    '두산:한화' 경기였구요. (개인적으로는 삼성팬입니다. 조만간 LG팬으로 바뀔지도 모르겠지만요.)

    없는 돈 아껴서 6,000원이라는 거금을 들여서 입장했습니다.
    CGV 카드 할인은 LG경기에만 된다고 하더군요.

    야간 경기의 강한 불빛 때문인지

    멀리서 내려다보는 경기장은 장난감 같다는 생각이 들었습니다. " tt_link="" tt_w="700px" tt_h="471px" tt_alt="" />

    한화의 문동환 투수의 모습입니다.

    사진을 뚫어지게 보시면 흰색 선으로 나온 공모습 찾아보실 수도 ^^ " tt_link="" tt_w="700px" tt_h="348px" tt_alt="" />

    ※ 문동환 투수가 완봉까지 가는 줄 알았습니다. 8회까지 무실점 했었거든요. 결과는 한화의 3:0 승리

    선수들의 역동적인 모습을 잡으려고 경기장을 한바퀴 둘렀습니다만,

    줌이 없으니 제대로 잡기는 힘들더군요. " tt_link="" tt_w="700px" tt_h="471px" tt_alt="" />

    경기장이니 TV 카메라도~

    공날아오면 어떻게 피할런지 참 궁금하네요" tt_link="" tt_w="700px" tt_h="471px" tt_alt="" />

    사진이 약간 흔들리기는 했는데

    공의 움직임이 저렇게 휘면서 들어가더군요. 혹시 UFO?" tt_link="" tt_w="700px" tt_h="412px" tt_alt="" />

    아쉬운 점은 치어리더들을 사진에 제대로 담지 못한거네요. 아쉬워라.

    2005년 7월 19일 화요일

    Objective-C (1)

    1. 클래스


    클래스의 개념은 Java나 Objective-C나 거의 같습니다.

  • 상속의 개념이 extends => :
  • private, protected, public이 => 앞에 @만 붙이시면 되구요.
  • Class가 Java처럼 다른 객체를 생성하는 역할을 하는 것도 동일합니다.
  • 자기 자신을 가르키는 this가 =>self
  • 부모를 가르키는 super도 존재합니다.


  • 다른 점은 다음과 같은 것이 있습니다.
  • 메소드의 +, -가 public, private를 의미하는 것이 아니라 +는 클래스 메소드, -는 인스턴스 메소드입니다.
    (메소드에 public, private 개념이 있는지는 모르겠네요 ^^;;)
  • 생성된 인스턴스는 isa라는 자기자신의 클래스를 가르키는 변수를 같습니다.
  • 클래스도 다른 인스턴스처럼 한 개가 생성되어 직접 접근이 가능한 점도 다를 것 같네요.
  • Cocoa

    Mac에 올려져 있는 개발 Framework 중 하나인 Cocoa를 이용하려면 Cocoa를 Objective-C로 이용하여 개발하거나 Cocoa-java binding을 이용해야 합니다. (그 외, 다른 방법이 있는지는 모르겠네요) 그러나, Cocoa-java binding에 대해서 더 이상의 추가 지원은 없기 때문에 Cocoa를 이용하려면 Objective-C를 알아야 겠죠.

    제공하는 Java의 기능이 미흡하기에 (ㅠㅠ 왜이리 버그가 많은지요..) 싫어하는 C임에도 공부를 조금 해봤습니다. 먼저, 가장 첫 시작은 레퍼런스 사이트 검색하기~

  • Cocoa 사이트 : http://developer.apple.com/cocoa/
  • Objective-C 관련 모음 : http://swiki.osxdev.org/osxdev/
  • Mac OS X 개발자 포럼 - OSXDEV.ORG : http://www.osxdev.org/forum/
  • OSXDEV.ORG의 개발문서가 있는 위키 :http://swiki.osxdev.org/osxdev/


  • ※ 단시간에 Objective-C를 끝내고 싶으시다면 OSXDEV.ORG의 위키에 있는 Objective-C 기초를 보시기를 강추하고 싶네요.

    2005년 7월 15일 금요일

    Mac의 단축 키(필요한 일부만 정리 ^^)

  • 복사 & 붙여넣기 : Command + C & Command + V
  • 스크롤을 문서의 맨 앞으로 이동 : Home
  • 스크롤을 문서의 맨 끝으로 이동 : End
  • 스크롤을 문서의 맨 앞으로 이동 : Command + Pageup
  • 스크롤을 문서의 맨 끝으로 이동 : Command + Pagedown


  • ※ AppleWorks에서는 Home, End, Command + Pageup, Command + Pagedown이 스크롤만 움직였구요. Xcode에서는 Command + Pageup과 Command + Pagedown이 커서도 옮기더군요.

  • 줄의 첫 번째로 이동 : Command + ←
  • 줄의 마지막으로 이동 : Command + →
  • 문단의 첫 번째로 이동 : Option + ↑
  • 문단의 끝으로 이동 : Optoin + ↓


  • ※ 출처 : http://www.saugus.net/Photos/tips.shtml

    초복이구나~ 히~


    즐거운 초복 삼계탕을 먹었다..
    인생의 낙이라고나할까나 ㅋㅋㅋㅋ 좋다 좋와~

    2005년 7월 13일 수요일

    'Booyo linux'

    소프트웨어 진흥원의 메일을 받았는데 '부요(Booyo)' 리눅스에 대한 기사가 실렸습니다.

  • 한국형 공개 SW 표준 플랫폼 BOOYO
  • '부요' 한·중·일 표준 리눅스 OS로


  • 흠.. 그럼 한컴의 '아시아눅스'보다도 더 중요하게 표준 규격으로 진행된다는 말인데... 한컴한테는 별로 좋은 소식은 아닌 것 같네요.

    2005년 7월 11일 월요일

    한성항공

    드디어 한성항공 홈페이지가 오픈했네요..
    가격이 얼마될지 궁금했는데 아직 가격은 정해지지 않은 것 같습니다.

    기사 나왔던 대로 제주도 왕복 8만원(맞나요??)이라면.. 한번 꼭 타봐야겠네요 ^^

    한성항공 " tt_link="" tt_w="500px" tt_h="402px" tt_alt="" />

    2005년 7월 10일 일요일

    2005년 7월 9일 토요일

    올림픽 대교 야경입니다.

    오늘은 오랜만에 강물에 흔들림이 적었습니다.
    원사진이 더 멋있는데 축소하니까 느낌이 줄어드네요..







    종이고양이..

    A4 용지로 고양이를 만들었습니다.
    Double A가 아니라 좀 얇기는 하지만.. 웃는 모습이 좋은 녀석입니다. 퇴근안하고 뭐하는건지 휴~




    앗~ 도안 출처입니다.
    - http://kids.nifty.com/wakuwaku/paper/paper32.htm

    필터 만들기(1) - RGBImageFilter를 이용한 필터

    W 서울 워커힐 호텔 (2)

    워커힐 2탄입니다. 어두운 관계로 ISO를 3200으로 놓고 셔터 스피드를 줄였음에도 흔들려서 축소~축소~

    뭘 그리 보는 중 일까요?? 학교선생님 같은 '먀'님



    '즐건하루'님과 '지민아빠'님을 찍은 사진들 중에 그나마 안흔들린 사진 중 하나입니다. ㅋㅋ



    토마토 셀러드와~



    참치 요리. 참치는 신선한 맛을 살려야 제맛인데..

    어설프게 익힌 이 요리는 고기도 아닌 것이 느끼함의 극치 ㅠㅠ" tt_link="" tt_w="500px" tt_h="339px" tt_alt="" />

    어딜 가나 가장 무난한 선택! 닭요리 닥닥닥



    먹느라 바뻐요 바뻐~



    맨 오른쪽 분의 얼굴이 큰게 아니라 앞쪽에 있어서 크게 보인 것 뿐입니다!!