2010년 1월 29일 금요일

App review #1

Skype
인터넷을 이용하여 무료통화 및 사용자간 무료로 메신저를 할수 있다고해서
오늘 한번 다운 받아보았으나...
아는 이 없어..대화할 사람이 없는 공황상태 발생..

오늘은 아무나 친구추가해서 메신저만 하는데 일단 성공
후일..
지인들이 많이 가입하게 되면
공짜 통화도 한번 시도해 보아야겠음..

Canon 450D


Canon 450D
연초에
편지함 가득 쌓여있는
스팸메일을 정리하다 충동적으로
구매한 ㅋㅋ

여기 저기 들고 돌아다니며
찍고 싶은데
아직 날이 너무 추워서
많이 아쉽다..

이것은
iPhone, moreLomo app을 이용하여 찍은 샷..음..
별로군 ㅋ

2010년 1월 28일 목요일

wayne's iPhone 3GS

드디어 iPhone 수령하고
어제는 강남역 Frisbee에 가서 Incredible shield 부착 완료
부착비 5000원 받아 먹는다..

대기중인 사람이 엄청 많았고
그 외에도 여러가지 가죽 케이스등 아이폰 관련 케이스를 사려는 사람들로 북적북적..
허허..
녀석의 인기를 실감한다..

지문등 이물질이 자꾸 달라붙어 좀 신경쓰이긴 하지만
아무튼 이제 맘편히 어디든 들고 다닐수 있어서 좋다..

적어도 2년간만 아무 탈 없이 곁에 있어 다오

2010년 1월 26일 화요일

내 야식






















퇴근하고 운동하고 방에 돌아온 시각이면
배가 출출하기도 하고
뭔가 따뜻한 것이 먹고 싶기도 하다..

집근처 파파로티에 가서 주문하는
번과 밀크티 한잔은 나의 훼이보릿..

낙안읍성

초가집이 가장 많이 모인 곳이, 전라도 순천의 낙안읍성이다. 모두 192호의


초가가 있다. 초자들은 높이 4.5m, 둘레 1410m 낙안읍성에 둘러싸여

있다. 세대 전만 해도 초가는 가난의 상징이었다. 그러나 지금은 어떠한가.

 

낙안읍성 성벽 위에 서서, 누천년 동안 우리 조상들의 생활공간이었던 초가

집들을 바라보면, 마음이 편안해진다. 둥근 지붕선이 주변 산세를 닮아

있다. 능선에 맞춰서 지붕을 이었다는 생각까지 든다. 아파트처럼 주변

경관을 깡그리 무시하고 말뚝처럼 들어서지는 않는다. 환경을 무시한 건축이

한반도에서 2,30 동안 무자비하게 이루어졌다. 급속한 인구팽창과 도시화가

주범이라도 떠넘길 수만은 없다. 예전에 풍수학교에 갔다가 들은 얘기다.

환경 파괴의 주범을 꼽다가, 우리나라는 외국과 견주었을 인구 비례나

토지 비례로 보아 건설업체가 너무 많다는 것이다. 건설업체가 많다는 것은

건설장비가 많다는 얘기다. 건설장비들이 쉬면 실업률이 높아지고 불황이

온다 하여, 없이 움직이려 한다. 경기가 좋을 때는 도시 한복판에서 움직

이고, 경기가 어려워지면 땅값 시골을 파헤친다. 결과 작은 소읍까지

아파트 없는 동네가 없을 정도가 되었다.

 

조만간 아파트 없는 동네가 그리운 시대가 것이다. 우람한 산자락 아래,

넓은 들판이 펼쳐지고, 바람 적고 양지바른 곳에 집들이 옹기종기 모여 있는

풍경은 그림 속에서나 찾아야 모른다.

 

이런 세상이니, 산을 닮은 낙안의 초가들을 바라보면서 어찌 위안을 받지

않을쏜가. 걸음 들어가 낙안읍성의 초가들에서 민박을 운영하니

하룻밤 들어보는 것도 좋은 추억이 것이다. 아침에 일어나,

눈으로 성벽을 돌아보자. 북쪽엔 진산인 금전산이 높이 솟아 있고, 동으로는

오봉산, 서뽁에는 백이산과 금화산, 남쪽엔 제석간이 있다. 금전산 아래로

아침안개에 싸인 낙안 들판이 보인다. 조정래의 소설 <태백산맥> 태동한

들판이다. 낮게 깔린 아침안개를 따라, 구성진 <서편제> 소리가 흘러나올

듯한 들판으로 나가는 농부도 보인다.

 

안에는 동헌, 객사가 보존되어 있고, 동헌 뒤편에는 활터가 있다.

왜적을 방어하기 위해서 지어진 성인데도 산에 기대지 않고 평지에 구축

것이 다른 곳과 구별되는 특별한 배치다.

 

성을 돌다가 출출해지면 안에 있는 주막을 겸한 식당에서, 낙안사삼주

잔을 맛보아도 좋으리라.

 

<대한민국 대표여행지 52> 유연태외 지음, 넥서스BOOKS, p.180-182

------------------------------------------------------------------------------------------------------------


회사에는..

아침마다 '단편 명선'이라는 제목으로 메일을 보내주시는 차장님 한분이 계신다.

읽으셨던 책중 좋은 글귀, 혹은 한번 생각해 볼만한 글귀들을 추려서

저렇게 매일 아침 보내주시는데


얼마전에는 저렇게 순천 낙안읍성을 소개해 주시더라.

소개해놓은 글도 글이지만,

저렇듯 하얀 눈 속에 폭 담긴 초가들의 풍경이 단숨에 내 마음을 사로 잡았고

마침 그곳에서는 민박도 한다고 하니..

또 낙안사삼주라는 것도 있다고 하니..

관심이 아니갈래야 아니갈수가 없어

여기 포스팅



펼쳐두기..

MFC practice #4

Dialog Box example

 - Function description:
    Dropdown menu(Combo Box)의 3개 항목중 하나를 선택시 이와 연동된 List Box내의 항목이 변경된다.
 - Procedure
  1) Dialog Box solution setting.
  2) Tool box를 이용하여 전반적인 Dialog Box를 design한다.(place combo box and list box)
  3) Property 수정(of each box)
     -Combo Box
       .Appearance>Type>을 Drop List 로 변경:Edit 불가능한 List box로 설정
        (즉, edit control의 속성이 사라짐. cf) 'Drop Down' type은 편집가능한 List box)
       .ID변경: 'IDC_COMBO_Address'등 임의로 변경.
       .Add variable>category중 'control'혹은 'value' 선택 => 둘의 차이를 아직 명확히 모르겠음..
       .variable name 입력(ex. m_Combo_Address)
       .OnInitDialog()함수에서 AddString()을 사용하여 문자열 항목 추가.
         ex) m_Combo_Address.AddString(_T("A"));
       .목록상자에서 선택한 항목이 변경되었을 때 발생하는 '통지메시지'등록:
        CBN_SELCHANGE->OnCbnSelChangeComboAddress()함수 등록
       .위의 함수내에 GetCurSel()함수 이용하여, 현재 선택된 항목의 Index를 읽어옴.
        ex)int nIndex=m_Combo_Address.GetCurSel();
       .switch/case문을 이용하여 nIndex값에 따라 List Box에 항목 도시
        ex)switch(nIndex)
            {
               case 0:
             m_List.AddString(_T("A"));
                         ..
                    ..



 -분석:
   1. 이경우 문제점 발생: Combo box에서 항목 선택시, List box에, 이전 항목 아래에 List가 계속 추가됨.
       화면이 업데이트가 되도록 하거나(refresh), 'AddString()'이 아닌(더하는 것이 아닌) 단순히 출력하는          함수로 구현해야 함. -> 근데 그게 뭔지 모르겠음.

 -주요 function
   1.UpdateData(): 특정 변수와 컨트롤 윈도우간에 정보교환이 일어나도록 하는 함수(p.392)
   2.CBN_SELCHANGE 통지 메시지: OnCbnSelChangexxx() 함수
     combo box에서 항목 선택 변경이 일어났을 때 발생하는 메시지로
     On CbnSelChange()함수 호출. (List Box에서는 LBN_SELCHANGE 메시지)
   3.GetCurSel(): 마우스로 선택된 항목을 int형 index로 읽어옴.(0번부터 시작됨).

 -TODO
   1.Add variable시 category의 'controll'과 'value'의 의미를 명확히 파악하라
     control로 하면 variable type은 "CComboBox"
     variable로 하면 variable type은 "CString"
   2.ListBox에 문자열 출력하는 방법은 무엇인가.(AddString, InsertSting말고)

 
   

iPhone으로 NESPOT 이용하기

1. www.nespot.com 에 접속하여 login(QOOK 통합 ID도 갠춘)
2. MAC ID 등록 클릭
3. iPhone의 MAC Address 등록 완료후 네스팟 존에서 접속할때
    ID,PW입력 화면이 나오면 그 창을 닫고 접속하면 됨.

참~~ 십죠잉~

아래는 네이버 블로그에 소개된 프리스비의 nespot이용 설명
http://blog.naver.com/frisbeestory/120097202047

2010년 1월 25일 월요일

MFC practice #3

Today's Summary

도구 모음에 도구를 추가 하고 싶을경우
 -resource view에서 Toolbar선택
 -적당한 도구모음의 이미지 drawing
 -그려진 버튼 클릭하여 property window확인
 -이미 메뉴에 구현해 놓은 기능의 ID값을 property window에 등록

Tooltip 혹은 상태표시줄에 안내문구 삽입하기
 -메뉴 혹은 도구모음에 마우스 위치시 안내문구 나타내기
 -property window의 'Prompt'항목에 문구 삽입
 -'테스트를 시작합니다 \n 테스트 시작': '\n'을 기준으로 왼쪽은 상태표시줄, 오른쪽은 툴팁에 표시할 문구임.

LBN_SELCHANGE통지 메시지: 목록상자(ListBox)에서 항목 선택이 변경되었음을 알려줌.
 키보드를 이용했든 마우스를 이용했든 항목 선택이 변경되면 이 메시지가 발생함.


GetCurSel(); //List box내의 항목 선택했을시 항목의 index를 int형으로 반환하는 함수.
see p.440

콤보상자의 속성(type)
 -CBS_DROPDOWNLIST:콤보 상자가 목록 상자(ListBox)를 드롭하는 것은 같지만 에디트 컨트롤은 사라짐.
  콤보상자의 스타일을 CBS_DROPDOWNLIST로 하고 OnInitDialog()함수에서 콤보 상자에
  문자열 항목을 추가(AddString())하면 p.445의 결과 출력

2010년 1월 22일 금요일

옴니아2 UI를 초당 50프레임 속도로 구동하는 애플리케이션 ‘스맥스(SMAX)’

네오엠텔(대표 윤수) 옴니아2 UI 초당 50프레임 속도로 구동하는 애플리케이션스맥스(SMAX)’ 완성했다고 20 밝혔다. 초당 50프레임 속도는 아이폰 UI 구동 수준이다.

직렬이었던 그래픽 처리 방식을 병렬로 바꾸면서 연산 효율성을 늘렸다는 것이 네오엠텔 설명.

네오엠텔은 이르면 이달 SK텔레콤티스토어 스맥스를 올릴 계획이며, 가격은 5천원~7천원 사이로 검토 중이다.


http://blog.naver.com/thth2929?Redirect=Log&logNo=110078874462

MFC practice #2

Keyboard 입력
 [Mission]
 -static window를 하나 띄워서 좌우 화살표키를 입력시 해당 방향으로 10 pixel씩 이동하는 프로그램

 Procedure>
  1. CxxView class에 CWnd class 객체를 멤버로 등록하여 추가함(ex. m_wndChild)
  2. CxxView class에 WM_CREATE메시지 핸들러 함수(OnCreate()) 등록하고
      윈도우(m_wndChild)를 생성(Create())하는 코드 추가
      ex)m_wndChild.Create(TEXT(" ........
       -> 특정 window를 생성하는 작업(이 단계에서 형태,이름,좌표,크기등이 정의됨)
  3. CxxView class에 WM_KEYDOWN 메시지 핸들러 함수(OnKeyDown())를 등록하고
      윈도우(m_wndChild)를 이동시키는 코드 추가
      ex)주요함수의 흐름↓
          m_wndChild.GetWindowRect(&Rect); //child window의 좌표 정보 획득
          ScreenToClient(&ptChild);                //스크린 기준좌표를 client view 기준의 좌표로 환산
          switch/case문 > 화살표키 입력시 x축 좌표값을 증감시키는 기능 구현
          m_wndChild.SetWindowPos(&CWnd:: .....) //변경된 새 좌표로 child window이동시킴
   4. build & run

 [Additional Mission]
  -child window가 위/아래로도 이동할수 있도록 코드 추가
  -Alt키와 함께 화살표키 눌렀을 경우 윈도우의 이동폭이 더 커지도록 코드 추가
  -window의 위치가 바뀌는 것이 아니라 크기가 커지거나 작아지도록 코드 수정

 [Summary]
  -keyboard 입력 관련 window message정리
   .WM_KEYDOWN: Alt, F10을 제외한 모든 키에 대해, 키를 눌렀을때 발생하는 메시지
              /제어관련 Key에 해당(화살표, 엔터, ESC, backspace...)
              /OnKeyDown() :메시지 핸들러 함수.
   .WM_KEYUP: WM_KEYDOWN 에 대응
   .WM_SYSKEYDOWN: Alt, F10 이 눌려졌을 때 발생하는 메시지.
               /Alt키와 조합된 키(제어키) 입력에 대해 호출됨.(Alt+enter등)
               /OnSysKeyDown()
   .WM_SYSKEYUP: WM_SYSKEYDOWN에 대응.
 
   .WM_CHAR: WM_KEYDOWN중 ASCII코드의 문자에 해당하는 키는 메시지루프의
               TranslateMessage()함수가 WM_KEYDOWN메시지를 WM_CHAR메시지로 전환하여 전송
               문자열 입력을 처리하고자 할시에 등록하여 사용
               /제어키를 제외한 알파벳, 숫자 등의 문자열에 해당
               /OnChar()
   .WM_SYSCHAR: Alt키와 문자키 입력이 조합된 경우에 발생 (ex. Alt+s)
               /OnSysChar()
 -CString class: MFC가 제공하는 문자열 처리 class (p.150)
         /문자열 처리에 필요한 메모리를 알아서 관리하므로 메모리 할당/해제하는 코드를 작성할 필요 없음.
         /일반 char배열을 이용한 문자열 처리보다는 CString class를 활용하는 것이 여러모로 유익함

MFC practice #2

Keyboard 입력
 [Mission]
 -static window를 하나 띄워서 좌우 화살표키를 입력시 해당 방향으로 10 pixel씩 이동하는 프로그램

 Procedure>
  1. CxxView class에 CWnd class 객체를 멤버로 등록하여 추가함(ex. m_wndChild)
  2. CxxView class에 WM_CREATE메시지 핸들러 함수(OnCreate()) 등록하고
      윈도우(m_wndChild)를 생성(Create())하는 코드 추가
      ex)m_wndChild.Create(TEXT(" ........
       -> 특정 window를 생성하는 작업(이 단계에서 형태,이름,좌표,크기등이 정의됨)
  3. CxxView class에 WM_KEYDOWN 메시지 핸들러 함수(OnKeyDown())를 등록하고
      윈도우(m_wndChild)를 이동시키는 코드 추가
      ex)주요함수의 흐름↓
          m_wndChild.GetWindowRect(&Rect); //child window의 좌표 정보 획득
          ScreenToClient(&ptChild);                //스크린 기준좌표를 client view 기준의 좌표로 환산
          switch/case문 > 화살표키 입력시 x축 좌표값을 증감시키는 기능 구현
          m_wndChild.SetWindowPos(&CWnd:: .....) //변경된 새 좌표로 child window이동시킴
   4. build & run


 [Additional Mission]
  -child window가 위/아래로도 이동할수 있도록 코드 추가
  -Alt키와 함께 화살표키 눌렀을 경우 윈도우의 이동폭이 더 커지도록 코드 추가
  -window의 위치가 바뀌는 것이 아니라 크기가 커지거나 작아지도록 코드 수정

 [Summary]
  -keyboard 입력 관련 window message정리
   .WM_KEYDOWN: Alt, F10을 제외한 모든 키에 대해, 키를 눌렀을때 발생하는 메시지
              /제어관련 Key에 해당(화살표, 엔터, ESC, backspace...)
              /OnKeyDown() :메시지 핸들러 함수.
   .WM_KEYUP: WM_KEYDOWN 에 대응
   .WM_SYSKEYDOWN: Alt, F10 이 눌려졌을 때 발생하는 메시지.
               /Alt키와 조합된 키(제어키) 입력에 대해 호출됨.(Alt+enter등)
               /OnSysKeyDown()
   .WM_SYSKEYUP: WM_SYSKEYDOWN에 대응.
 
   .WM_CHAR: WM_KEYDOWN중 ASCII코드의 문자에 해당하는 키는 메시지루프의
               TranslateMessage()함수가 WM_KEYDOWN메시지를 WM_CHAR메시지로 전환하여 전송
               문자열 입력을 처리하고자 할시에 등록하여 사용
               /제어키를 제외한 알파벳, 숫자 등의 문자열에 해당
               /OnChar()
   .WM_SYSCHAR: Alt키와 문자키 입력이 조합된 경우에 발생 (ex. Alt+s)
               /OnSysChar()
 -CString class: MFC가 제공하는 문자열 처리 class (p.150)
         /문자열 처리에 필요한 메모리를 알아서 관리하므로 메모리 할당/해제하는 코드를 작성할 필요 없음.
         /일반 char배열을 이용한 문자열 처리보다는 CString class를 활용하는 것이 여러모로 유익함.