요즘 이상하게 아이디어가 계속해서 떠오르는 바람에 밤낮없이 애플리케이션을 만들고 있습니다. ^^;;;; 밤낮없이 만들다보니 애플리케이션의 질은 좀 많이 떨어지는데... 공짜로 배포하고 있으니 부담이 없어서 마구 찍어(?)내고 있습니다. 오늘도 그 일환으로 윈도우 애플리케이션과 연동하는 요상한(?) 놈을 만들고 있었는데, 한참을 만들다보니 아이콘이 없더군요. ㅡ_ㅡa... 그래서 뚝딱 디자이너 준님께 부탁해서 그렸더니... 얼래... PNG 파일인 겁니다. ㅡ0ㅡ....

아직도 Visual Studio 6.0을 쓰고 있는지라 다른 파일은 절대 안되고 아이콘으로 ico 파일만 쓸 수 있는데... ㅠㅠ 상당히 난감하더군요. 한참을 고민하다가 설마하며 구글신께 물어봤더니... 멋진 사이트를 하나 점지해 주셨습니다.


위 사이트에 가면 PNG나 JPG 파일을 ICO로 바꾸거나 ICO를 그 역으로 바꾸는 것도 가능합니다. @0@)-b 역시 죽으라는 법은 없나보군요. ㅠㅠ

혹시나 필요하신 분들이 있을까봐 공유합니다. ;) 내일은 좀 일찍 출근해야되서 오늘은 이만 자야겠군요. 그럼 다들 좋은 밤 되시길~ :)

ps) 이상하게 한참을 쉴 때는 아무런 생각도 안나더니만... 회사 프로젝트 때문에 좀 바빠지니 갑자기 아이디어가 솟구치네요. 이건 도대체 무슨 상황인건지.... ㅡ_ㅡa...

 

11 DB(Database) 프로그래밍

 원문 :http://kkamagui.springnote.com/pages/6610181

 

들어가기 전에...

 

1.테이블 생성

ID와 Name, Score를 칼럼으로 하는 테이블을 DB에 생성하는 방법은 아래와 같다.

 

 

CREATE TABLE game(

    id int(11) NOT NULL auto_increment,

    name varchar(5) NOT NULL,

    score int(11) NOT NULL,

    PRIMARY KEY(id)

);

 

 

2.테이블 변경

테이블 변경 기능은 새로운 칼럼을 추가하거나 칼럼 이름을 변경, 또는 삭제하는 기능을 제공한다.

 

Game 테이블에 create_datetime을 추가하는 방법은 다음과 같다.

ALTER TABLE game ADD create_datetime DATETIME;

 

 

Game 테이블에 create_datetime을 create_date로 바꾸는 방법은 다음과 같다.

ALTER TABLE game CHANGE create_datetime create_date DATE;

 

Game 테이블에서 create_date 칼럼을 삭제하는 방법은 다음과 같다.

ALTER TABLE game DROP create_date;

 

3.테이블 삭제

Game 테이블을 삭제하는 방법은 다음과 같다.

DROP TABLE game;

 

4.데이터 저장

Game 테이블에 데이터를 저장하는 방법은 다음과 같다.

INSERT INTO game(name, score) VALUES('kkamagui', 1000);

 

5.데이터 수정

Game 테이블에 있는 데이터를 수정하는 방법은 다음과 같다.

UPDATE game SET name='june', score='20' WHERE name='kkamagui';

 

6.데이터 삭제

Game 테이블에서 데이터를 삭제하는 방법은 다음과 같다.

DELETE FROM game WHERE name='kkamagui';

 

7.데이터 검색

Game 테이블에서 데이터를 검색하는 방법은 다음과 같다.

SELECT * FROM game WHERE name='kkamagui';

 

Game 테이블에서 데이터를 내림차순으로 정렬하여 검색하는 방법은 다음과 같다.

SELECT name, score FROM game ORDER BY score DESC;

 

Game 테이블에서 데이터를 오름차순으로 정렬하여 100개까지만 검색하는 방법은 다음과 같다.

SELECT * FROM game LIMIT 100;

 

두 테이블을 결합하여 데이터를 검색하는 방법은 다음과 같다(Game 테이블과 User Info 테이블에서 이름이 같은 항목을 찾아 이름과 점수, 별명을 검색).

SELECT a.name, a.score b.nick FROM game a, userinfo b WHERE a.name == b.name;

 

 

이 글은 스프링노트에서 작성되었습니다.


이전에 소개드렸던 "양과 늑대 게임"을 보면서 계속 "좀 더 쉬운 방식의 게임은 없을까?"를 고민했습니다. 그러다가 나온 것이 바로 쓰레기 분리 수거 게임~!(Separate Trash~! Game) 입니다. 쓰레기 분리 수거라고 하니 약간 뉘앙스가 이상하지만, 아래 스크린 샷을 보면 "아하~ 이렇게 하는 거구나"하실 겁니다. ^^;;;;




<게임 타이틀 화면(왼쪽)과 게임 실행 화면(오른쪽)>

위의 오른쪽에서 보는 것과 같이 쓰레기는 종이, 병, 캔의 세 종류가 있고 쓰레기통 역시 세 종류가 있습니다. 흩어져있는 쓰레기들을 한데 모아서 쓰레기통에 최대한 빨리 담으면 되는 것입니다.

게임의 규칙은 단순합니다. 먼저 쓰레기통을 클릭한 뒤에 쓰레기통에 담을 쓰레기를 클릭하면 자동으로 쓰레기가 쓰레기통으로 날아갑니다. 게임하는데 그리 오래 걸리지도 않고 기록을 단축하려면 나름대로 노하우도 필요하니 짧은 시간을 때우는데는 그만일거라 생각합니다.

게임은 jsandroidapp.cafe24.com 사이트나 마켓에서 "쓰레기"로 검색하시면 다운로드 받을 수 있습니다.


그럼 좋은 밤 되세요 ;)

ps) 그래픽을 위해 밤낮 고생하신 디자이너 준님께 깊은 감사의 말씀을 드립니다.

10월 1일부로 한국에서도 드디어 유료 앱을 등록할 수 있게 되었습니다. @0@)-b 물론 구글 Checkout 계정이 필요하고 여기에 덤으로 Adsense 계정도 필요하다는 문제가 있지만, 그래도 유료 앱을 등록할 수 있으니 얼마나 좋은 일입니까? ㅠㅠ

저도 이 소식을 접하고 내리 개발자 콘솔(http://market.android.com)으로 달려갔는데... 얼래... 문제가 있었습니다. 예전에 시험삼아 유료 앱을 등록해 보겠다고 구글 체크아웃 계정을 만들었는데... 그 당시에는 우리 나라가 없었기 때문에 일본으로 등록했습니다. 그리고 이것 저것 테스트해보다가 지불 계좌(Payout) 등록을 못해서 유료 앱 등록을 못하고 그냥 내비두었지요. 그런데 이번에 한국이 지원되면서 나라 정보를 수정하러 갔더니... 얼래?? 구글 체크아웃에서 나라 정보는 수정이 안되는 겁니다. ㅠㅠ

설상 가상으로 개발자 콘솔에서 연결한 구글 체크아웃 계정도 수정할 수가 없더군요. 구글에 문의한 결과... 새로운 계정을 생성하고 다시 25 달라를 내고 등록한 뒤에 자기들한테 연락주면 새로 생성한 계정으로 앱을 옮겨준다고 했습니다. 어흑... ㅠㅠ 이게 왠 삽질... 그래서 울며 겨자먹기로 새로 등록하고 앱을 이동시켜 달라고 메일을 보냈습니다. ㅠㅠ

그런데 가만히 보니 유료 앱 판매 수익 지불을 구글 Adsense로 하는 걸로 되어 있더군요. 새로 만든 계정에 Adsense 승인이 나있을리가 만무하니 기존에 사용하던 계정의 Adsense Publish ID를 등록했는데... 이 부분은 혹시 문제가 있을까 해서 문의를 해둔 상태입니다. 혹시나 문제가 있다면 다시 글을 하나 더 올리겠습니다. ;)

에궁... 이거 원 여간 불편한 게 아니군요. ㅠㅠ 그동안 광고로 번 돈 다시 본전치기가 됐다는 ㅠㅠ... 구글이 사용자들을 위해 조금 더 신경 써 줬으면 하는 바램입니다. ㅠㅠ 그래도 유료 앱을 올릴 수 있게 되었으니 색다른(?) 경험을 해볼 수 있겠네요. 상당히 기대됩니다. ㅎㅎ

그럼 좋은 밤 되세요 ;)


드디어 두 번째 안드로이드 게임이 탄생했습니다. 바로 양과 늑대 게임(Sheep and Wolf Game)입니다. 이름만 보면 유아 교육용 게임 같은 포스가 나지만, 실제로는 아주 Active하고 Dynamic한 게임입니다. 일단 말이 필요 없으니 아래에 스크린 샷을 먼저 보시죠.

 

    

<게임 타이틀 화면(왼쪽)와 게임 시작 화면(오른쪽)>

 

위의 오른쪽이 바로 게임 화면입니다. 게임을 시작하면 왼쪽 게임 타이틀 화면에서 선택한 레벨에 따라 양과 늑대가 무자비하게 섞여서 내려오는데, 이걸 화면 아래쪽에 있는 부메랑과 하트를 이용해서 잘 분리해내는 것이 목표입니다. 원래 와이프와 기획할 때는 설정은 집으로 돌아오는 양 무리에 섞여 있는 늑대를 부메랑으로 때려 잡는 거였는데, 어쩌다 보니 분리수거(?) 게임이 되어버렸습니다. ^^;;;

 

게임은 터치를 이용해서 진행하며 화면 아래에 있는 부메랑이나 하트의 중심을 터치한 뒤, 손가락을 때지 않고 이동하면 라인이 그려집니다. 나중에 손가락을 때면 이 라인을 따라 부메랑과 하트가 날아가고, 최대한 연속으로 많이 연결하면 높은 점수를 얻을 수 있습니다. 부메랑과 하트 위에 그려진 +0이 바로 연속으로 해치운(?) 동물의 숫자인데, 이 숫자의 절반만큼 더 + 점수를 받는 구조입니다. 아래 화면은 하트를 던져서 양을 3마리 연속으로 집에 보내고(?) 4마리째를 향해 돌진하고 있는 장면입니다.

 

 

<하트를 한번 던져서 연속으로 3마리의 양을 획득한 화면>

 

당연한 거겠지만 늑대는 부메랑으로 때려잡아야 하고 양은 하트를 날려서 빨리 집으로 끌어와야 합니다. 만일 부메랑으로 양을 때리거나 하트로 늑대를 데려올 경우 왼쪽 위에 있는 에너지가 하나씩 줄어들고, 이게 0이 되면 게임이 끝납니다. 아참, 늑대나 양이 화면 아래를 넘어가도 에너지가 줄어듭니다. 게임이 점점 진행될수록 양과 늑대가 빨리 떨어지니 떨어지는 속도를 고려해서 라인을 연결하는 게 포인트 입니다. ;)

 

사실 보면 별거 없지만 역시 게임은 해보지 않으면 모르는 법… 상당히 중독성이 있는지라 일단 붙잡으면 30분은 금방입니다. ^^;;; 시간 때우기에는 그만이지만, 자칫 잘못하다가는 시간을 더 잡아먹는 수가 있으니 조심하시길… ^^;;;;


게임은 jsandroidapp.cafe24.com 사이트나 마켓에서 "양과 늑대"를 검색하시면 다운로드받을 수 있습니다.

(여기를 클릭하세요~!!) 


추석 연휴를 맞아 이게 뭐 하는 짓인지 모르겠지만, 일단 연휴를 다 날렸으니 억울하고 안타까운(?) 마음에 올려봅니다.

그럼 다들 좋은 밤 되시고, Enjoy Drag~!! Sheep and Wolf~!!


ps) 그래픽을 위해 밤낮 고생하신 디자이너 준님께 깊은 감사의 말씀을 드립니다.





와아~ 민족의 대명절 한가위가 왔군요. ;) 저는 어제 새벽 기차로 고향에 내려왔다가 이제야 겨우 일어났답니다. ㅎㅎ 몸은 좀 피곤해도 마음은 날아갈 듯 하네요(역시 고향이 짱인듯... ㅎㅎ).

시간도 많고 하니 요 연휴를 이용해서 이것 저것 해봐야겠습니다. 그동안 눈독 들였던 책도 좀 보고 말이죠. 

그럼 다들 즐거운 한가위 보내시길 바랍니다. ^^)-b
예전에 넷기어 유무선 공유기를 사용하고 있었는데, 와이프 안드로이드 폰과 호환성이 별로 안좋아서 ipTime N300UA 무선 랜카드를 사서 AP 모드로 동작시켜 사용하고 있었습니다. 그러다보니 메인 컴퓨터가 켜져있지 않으면 인터넷이 안되기도 하고 매번 무선 랜카드를 AP 모드로 바꾸려니 여간 불편한게 아니더라구요. ^^;;;

<ipTime N2 유무선 공유기>

그래서 N 방식까지 지원하는 유무선 공유기를 알아보다가 딱 눈에 걸린 것이 바로 ipTime N2 입니다. 가격도 나름대로 저렴하고 상품평도 괜찮길래 바로 질렀지요. ;) 설치 방법도 간단하고 속도도 아주 잘 나오는군요. 광랜 속도까지는 무난히 뽑아주는 것 같습니다. ㅠㅠ)-b

아아~ 이제 컴퓨터를 키지 않고도 인터넷을 마음대로 할 수 있게 되어서 너무 좋습니다. 엉엉... 진작 살 껄 그랬어요 ㅠㅠ


외국의 사이트를 돌다가 굉장히 임펙트 있는 글을 발견했습니다~!! 제목에도 나와있지만 삽을 가지고 기타를 만드는 방법이 나와있더군요. @0@)-b 혹시 기타를 만들 수 있는 삽이 따로 있는 건가 하실지도 모르겠는데, 아래와 같이 진짜 삽질(?)할 때 쓰는 삽입니다.
<흔히 볼 수 있는 삽>

이 삽이 뚝딱뚝딱하더니만 아래와 같이 멋지게 기타로 변했습니다. 이게 진짜로 동작하긴 하냐구요? 그럼요~ 다음 동영상을 보시면 깜짝 놀라실 겁니다(여러모로 깜짝 놀랄 수 있으니 어떤 일이 생겨도 당황하지 않길 바랍니다 ㅎㅎ).
<완성된 삽(?) 기타>




삽으로 기타를 만드는 자세한 과정은 http://englishrussia.com/index.php/2010/09/01/the-awesome-guitar-made-out-of-a-shovel/#more-17380 을 참고하세요 ;)


ps) 간만에 재미있는 걸 보니 활력이 솟는군요. ;) 

크하핫 세상에는 별별 사람이 다 있는 것 같습니다. ;)

image

<변경된 블로그 스킨>

 

1. 오늘 오랜 숙원이었던 블로그 스킨을 변경했습니다. 어제 벌초하러 갔다가 더위를 너무 먹어서 상경하지 못하고 고향 집에서 푸욱 쉰 관계로 본의 아니게 회사를 재껴서 여유가 좀 생겼거든요. ^^;;; (절대 회사 가기가 싫어서 상경 안 한 건 아닙니다. 쿨럭..;;;) 블로그 스킨은 예전에 점 찍어 둔 게 있었기에 샤샥~하고 진행해서 위와 같이 만들었습니다. 역시 블로그 스킨은 검은색 계통이 진리인 것 같네요. ㅎㅎ 완전 만족스럽습니다(바꾸고 나니 저 스킨이 여기저기 많이 쓰이고 있더라는… 역시 이 계통 사람들 취항은 비슷한 걸까요?)

 

image<화제의 아이폰4 – 출처 네이버>

 

2. 상경하는 길에 시간이 조금 남아서 고향 시내를 돌아보다가 우연히 아이폰 4를 만져볼 수 있게 전시해 놓은 곳을 찾았습니다. IT 기기 매니아(?)라면 누구나 그냥 지나칠 수 없는 법~!!! 와이프를 끌고 들어가서 확인 작업에 들어갔습니다. 점원의 따가운 눈초리를 받으며 10분 정도 만져 본 소감은… 글쎄요…;;;; 약간 실망스럽더군요. 확실히 레티나 디스플레이는 환상적이었습니다. @0@)-b 웹 페이지를 로딩했을 때 타의 추종을 불허하는 그 선명함은 가히 끝장이더군요. 하지만, 그게 전부였습니다. 내적인 부분은 사실 이미 예전과 큰 차이가 없어서, 혁신적인 부분이랄까요? 깜짝 놀랄만한 것은 없더군요. ㅠㅠ 끄응… 멋진 폰이긴 한데 솔직히 좀 많이 아쉬웠습니다. ^^;;;;;

 

아아~ 그래도 좀 일찍 올라왔더니 몸이 좀 덜 피곤하군요. ㅎㅎ 내일을 위해 그만 쉬어야겠습니다. 그럼 다들 좋은 밤 되세요 ;)

포스팅 제목 그대로 요 며칠 동안 개발과 관련된 일에서 좀 멀어져 있었습니다. 그동안 너무 달려서 약간 탈진한 것도 있고, 나름대로 새로운 무언가(?)를 찾아보자는 마음도 있었지요. 물론 회사에서는 여전히 새로운 프로젝트 때문에 개발과 관련된 일을 안 할 수가 없으니, 집에서만은 개발과 관련된 일에서 좀 벗어나보자는 것이 취지였습니다.

그런데, 막상 지내보니 불안하고 할 것이 없더군요. 책을 좀 읽어볼까 해서 온라인 서점에 들러 책을 고르다보면 어느세 IT 서적 분야에 들어가 있고, 게임이나 해볼까 했더니 이건 어떻게 만들면 되는데... 하면서 알고리즘을 고민하고 있더군요. ㅡ_ㅡa... 보다못한 와이프가 인터넷이나 보며 재미있는 걸 하라고 해서 한참을 보다보니 저도 모르는 사이에 RSS에 쌓인 프로그래밍 관련 글을 보고 있더군요. 어엉... OTL...

이건 뭐, 천상 어쩔 수 없나 봅니다. 고향 집에 와서도 같은 짓을 하고 있으니... 쿨럭..;;; 다시 뭐라도 시작해야겠네요. 조만간 재미있는 걸(?)로 다시 찾아오겠습니다. ㅎㅎ 
그럼 다들 좋은 밤 되시길~ ;)

 

<깔끔하게(?) 정리된 MINT64 OS의 실행 화면>


한동안 정신 없이 바쁘다가 다시 코드를 볼 일이 생겨서 얼마 전부터 코드를 보고 있습니다. :) 코드를 새로 추가하는 것은 아니고 기존 코드를 정리한 것뿐이지만… 어쨌든 내부가 변하긴 했으니 기념 삼아 올려봅니다. ^^;;; 가만히 생각해보니, 그동안 MINT64 OS에 대해서 많이 올리긴 했지만 제대로 된 설명을 한번도 한적이 없는 것 같네요. 코드도 한번 정리한 김에 MINT64 OS에서 실행 가능한 애플리케이션과 커맨드도 같이 정리해둡니다.

MINT64 OS가 기본으로 내장하고 있는 애플리케이션은 5개로 왼쪽 위에 있는 “Application” 버튼으로 실행할 수 있습니다. 각 애플리케이션의 역할은 아래와 같습니다.


  • Base GUI Task : 모든 GUI 애플리케이션의 기본 뼈대 역할을 하는 태스크로 윈도우를 생성하고 윈도우에 관련된 이벤트를 처리하는 단순한 애플리케이션입니다.
  • Hello World GUI Task : 가장 기본적인 GUI 애플리케이션으로 윈도우 시스템이 전달하는 메시지를 화면에 출력하고 자신과 같은 Hello World GUI Task로 유저 이벤트를 전송하는 기능도 같이 가지고 있습니다.
  • System Monitor Task : OS의 상태를 표시하는 애플리케이션이며 프로세서의 상태와 메모리의 상태를 표시합니다.
  • Console Shell for GUI : GUI 모드에서 동작하는 콘솔 셸로 커맨드 라인 해석기(Command Line Interpreter) 입니다. 여기에 대해서는 잠시 후에 설명하겠습니다. ;)
  • Image Viewer Task : JPG 파일을 읽어서 화면에 출력해주는 애플리케이션입니다. 하드 디스크에 image1.jpg와 image2.jpg, 그리고 image3.jpg가 있으니 파일명에 이를 입력하면 이미지를 볼 수 있습니다.


  <MINT64 OS에 내장된 GUI 애플리케이션들>


GUI 애플리케이션도 좋지만 키보드로 커맨드를 입력하는 재미(?)도 무시할 수 없어서, 초반에 MINT64 OS를 개발할 때 쓰던 콘솔 커맨드를 그대로 GUI 애플리케이션으로 만들었습니다. 콘솔 셸에서 테스트할 수 있는 커맨드에는 여러 가지가 있지만, 그 중에서 특히 유용한 몇 가지를 추린다면 아래와 같습니다.


  • help : 콘솔 셸이 지원하는 커맨드 목록을 출력합니다.
  • dir : 하드 디스크에 들어있는 파일을 출력합니다.
  • hddinfo : 하드 디스크의 정보를 출력합니다.
  • filesysteminfo : 파일 시스템의 정보를 출력합니다.
  • exec <application nane> <argument> : 파일 시스템에 저장된 애플리케이션 파일을 실행합니다. 애플리케이션은 ELF 파일 형식을 사용하며, 하드 디스크에 helloworld.elf부터 onelinememo.elf까지 총 6개가 저장되어 있습니다. <Argument> 부분은 옵션으로 애플리케이션마다 필요로 하는 정보가 다르고, 이는 잠시 후에 설명하겠습니다. ;)


콘솔 셸 커맨드 중에서 exec는 아주 특별한 커맨드로 파일 시스템에 저장된 GUI 애플리케이션을 실행하는 역할을 합니다. 파일 시스템에 저장된 애플리케이션은 6가지가 있고 각 애플리케이션마다 필요한 Argument와 역할은 아래와 같습니다.


  • exec helloworld.elf : MINT64 OS에 내장된 helloworld 애플리케이션과 같습니다.
  • exec textviewer.elf asciiart.txt : 파일 시스템에 저장된 파일을 읽어서 화면에 출력해주는 애플리케이션으로, Argument로 넘어온 파일을 읽어서 표시합니다.
  • exec bubble.elf : 풍선을 쏘는 버블 슈터라는 게임입니다. ^^;;;
  • exec hexa.elf : 같은 색깔의 블럭을 없애는 헥사 게임입니다. ^^;;;
  • exec hangulviewer.elf main.c : 파일 시스템에 저장된 파일을 읽어서 화면에 출력해주는 애플리케이션으로, textviewer.elf와 다른 점은 한글을 지원한다는 것입니다.
  • exec onelinememo.elf : 한 줄 메모장으로 간단한 메모를 남길 수 있는 애플리케이션입니다.


  <exec 커맨드로 실행한 애플리케이션들>

 

기능은 얼마 없는데 쭉 나열하고 보니 많은 것처럼 보이는 군요(착시 효과가 엄청난 듯…). ㅠㅠ 실제로 어떤 모습인가 확인하고 싶은 분들은 아래에 있는 압축 파일을 다운로드한 뒤에 MINT64OS.bat 파일을 실행하면 됩니다. 가상 머신에서 동작하는지라 사용하는 PC의 성능에 따라 약간 편차가 있을 수 있는데… 듀얼 코어 정도면 실행하는데 큰 문제가 없을 겁니다. ^^;;;



아우~ 주말 내내 정신 없이 보냈더니 이제 좀 쉬어야겠네요. 그럼 다들 좋은 밤 되시길~ ;)

<이미지 출처-네이버>

목요일에 팀 회식이 있었는데 너무 늦게 들어와서 와이프가 삐져(?)있는지라 기분을 풀어주려고 영화를 한편보고 왔습니다. ㅎㅎ 물론 맛난 음식(고기?)도 같이 먹었지요. ;) 영화는 이미 마눌님이 솔트로 정해 놓았던 지라 선택의 여지가 없었다는… 쿨럭..;;;;


안젤리나 졸리가 나온다고 해서 내심 좀 기대하고 봤었는데, 뭐랄까요… 그냥 그럭저럭 볼만한 영화다랄까요? 인셉션을 먼저 봐서 그런지 생각보다 그렇게 빠져들지는 않았습니다. 냉전 시대의 스파이 영화 같은 줄거리가 상당히 진부했고, 러닝 타임이 1시간 30분 정도라서 그런지 전개가 조금 정신이 없더군요. 그래서 그런지 약간 공감을 이끌어내지 못하는 부분도 있었습니다. ^^;;;


그래도 시간 때우기에는 아주 그만이더군요. ^^ 나름대로 볼만은 했는데… 굳이 인셉션과 비교하자면 70점 정도… 쿨럭…;;;(너무 짠가요? ㅎㅎ) 인셉션처럼 머리 아픈 영화를 좋아하지 않는 분이시라면 솔트를 보시는 것도 괜찮을 것 같군요. ;)


ps) 졸리님이… 나이가 든 게 보여요… ㅠㅠ 어흑… 가슴이 미어진다는… ㅠㅠ

인셉션 이미지

<출처-네이버>

간만에 와이프랑 영화를 보러 갔습니다. ^^)/~ 기대하던 인셉션이 개봉했기 때문이죠. ;) 와우~ 역시 기대만큼이나 대단한 영화였습니다. 어흑… ㅠㅠ 정말 기발하다는 말 밖에는 더 할말이 없더군요.

사실 결말이 조금 애매해서 뒷맛이 살짝 깔끔하지 않는 면이 좀 있는데(이걸 다른 사람들은 열린 결말이라고 표현하더군요)… 이것만 빼면 완전 100점을 주고 싶을 정돕니다. ㅎㅎ 지금 보는 장면이 꿈인지 현실인지 구분하려고 얼마나 집중을 했던지~ 긴장을 늦출 수 가 없었습니다. ㅎㅎ

이게 크리스토퍼 놀란 감독이 16살에 쓴 시나리오라니 진짜 할말이 없네요. 완전 강추합니다. ;) 안보셨다면 꼭 보세요 ^^)/~~

image<제가 사용하는 디자이어입니다. ㅎㅎ 출처-HTC 사이트> 

얼마 전에 HTC에서 나온 디자이어를 구매한 뒤로 생활 패턴이 확~!! 바뀌었습니다. 휴대폰을 24시간 손에서 놓지 않는 건 기본이구요, 무선 인터넷 덕에 필요한 건 그 자리에서 해결할 수 있으니 일 처리도 더 빨라진 것 같습니다. 특히 출근 시간이나 퇴근시간, 그리고 중간 중간에 짬나는 시간을 활용해서 폰으로 책도 좀 보고하니 정말 환상적입니다. ㅠㅠ 이건 정말 써본 사람들만 알 것 같아요. 예전에 디자이어 없었을 때는 어떻게 살았는지 상상도 안되는군요. ㅠㅠ

어제는 와이프 친구들이 서울에 놀러온다고 해서 와이프를 에스코트하러 갔다 왔는데, 약 5시간 동안을 디자이어로 웹서핑 + 독서 + 음악감상 + 작업 등등을 했습니다. 폰이 없었더라면 정말 어떻게 시간을 보냈을지… ㅠㅠ

와이프랑 새벽에 집에 와서 오니 갑자기 공각 기동대의 한 장면이 생각나더군요. 다들 온라인에 뇌가 연결되어 있어서 필요한 정보를 바로 바로 얻을 수 있던 그 장면~!!! 스마트폰 덕분에 온라인에 항상 연결된 것 같다는 생각이 들었습니다. ^^;;;;

앞으로 점점 더 스마트폰이 발전할텐데… 세상이 어떻게 변할지 완전 궁금하네요. 문명의 이기를 더 많이 누릴 수 있도록 총알(?)을 두둑히 장전해놔야겠습니다. >ㅁ<)-b~!! 스마트폰 만세~!!!

ps) 디자이어는 멀티 터치 문제만 없으면 참 좋았을텐데… 약간 아쉽네요. ㅠㅠ

플립플립 카드 게임은 카드를 뒤집어 같은 모양을 맞추는 게임입니다. ^^ 어렸을 때 부모님이 사주셔서 한번쯤은 누구나 해봤을 바로 그 게임이죠. 

한동안 잠수를 탔다가 난데없이 나타나서 다짜고짜 무슨 게임 타령인가 하는 분들이 계실 텐데… 그렇습니다. 바로 제가 만들었습니다. ^^;;;;; 요 며칠 안드로이드 책도 보고 HTC의 디자이어 폰으로 테스트도 해보면서 만든 것이죠. ㅎㅎ C/C++ 이외의 언어에는 거의 까막눈 수준이라 상당이 힘들었는데, 어찌어찌 하다 보니 그래도 하나 만들긴 했군요. 

물론 저 혼자서 만든 건 아니고 디자인은 다른 디자이너 분(디자이너라고 쓰고 와이프라고 읽는다)이 해주셨습니다. 디자이너님께 진심 어린 감사를 드립니다.카드를 얼마나 빨리 맞추는지 시간을 측정하기 때문에 미친 듯이 빨리 누르는 것이 좋겠지만, 3번 이상 연속으로 짝을 짓지 못하면 10초가 가산되니 손가락과 머리를 같이 쓰는게… 쿨럭..;;; 

 이 게임의 특징은 다음과 같습니다. 
    - 총 5 단계의 난이도 
    - 총 8 종류의 카드 
    - 점수 저장 기능 

어린 아이들이 하는 게임이라고 시시하게 생각할 분들을 위해 스페셜 코스 준비했으니, 그것은 바로 지존~!!! 화면을 가득 채운 카드를 뒤집다 보면 두통과 손가락 통증이 올 수 있으니 주의하시기 바랍니다. ;) 



 애플리케이션은 jsandroidapp.cafe24.com 사이트나 마켓에서 "플립플립 카드"를 검색하시면 다운로드 할 수 있습니다. 


디자이어

<제 금쪽같은 디자이어 입니다>

아아… ㅠㅠ 공동 구매를 한지 거의 3주 만에 디자이어(Desire)가 왔습니다. ㅠㅠ 크윽… 처음 받았을 때 그 감동이란 이로 말할 수가 없더군요. 사실 월요일에 받긴 했는데 이것 저것 셋팅하느라 정신이 없어서 이제서야 올립니다.

써보니 나름대로 괜찮더군요. 센스 UI도 쓸만하고 특히 반응 속도가 꽤 좋았습니다. 2년이나 지난 아이폰에 비교하는 게 좀 우습기는 하지만 아이폰과 비교해도 큰 손색이 없었습니다(CPU가 1Ghz이니 당연하겠지만…). 특히 웹페이지 로딩 속도가 수준급입니다. ;) wifi로 연결해서 사용하면 거의 불편함 없이 웹서핑을 할 수 있습니다.

그리고 아몰레드를 쓴 LCD도 완전 멋집니다. 지문 방지 필름이 화면을 많이 뿌옇게 만드는데도 불구하고 아주 화사하고 예쁘게 잘 나옵니다. 위에 사진이 지문 방지 필름을 붙인 상태로 장안의 화제인 solo lite 어플을 구동시킨 건데, 장난이 아닌걸 알 수 있습니다.

좀 아쉬운 점이라면 어플이 그렇게 많지 않다는 점인데… 이 부분도 시간이 지나면 해결될 거라 생각이 드네요. 정 불편하면 만들어서 쓰는 것도… 쿨럭..;;; 여튼 멋진 폰인 것 같습니다. ^^

배송 되자마자 아이폰 HD가 발표된 건 무슨 지름신의 장난인지 모르겠지만, 아이팟 터치가 있으니 2년 약정이 끝날 때까지는 디자이어로 버텨봐야겠습니다. ;) 디자이어 만세~~!!!

ps) 액정 보호 필름을 사실려면 SGP라는 회사의 지문 방지 필름을 사시길 권합니다. 일반 투명 보호 필름하고는 느낌이 틀리더군요. ㅠㅠ)-b 완전 감동입니다.

주말에 와이프의 절친이 집들이를 한다고 해서 고향에 잠시 다녀왔다가 일요일 밤 늦게 돌아왔습니다. 심신이 피곤하고 내일은 와이프 사고 때문에 합의 문제가 있어서 바로 자고 싶었지만, 다른 분들 소식이 궁금해서 컴퓨터를 키고 RSS 목록을 훝어보기로 했습니다(역시 전 이 직업이 천직인듯... 쿨럭..;;;).

그러던 중 http://blog.wimy.com/316에서 넥슨 개발자 컨퍼런스가 열였다는 글을 따라가다 보니, 넥슨에서 데브캣(http://devcatpublications.wordpress.com/) 이라는 사이트를 만든 것을 알았습니다. 개발자 컨퍼런스에서 소개되었던 강의 자료를 모아 놓았던데 유용한 정보들이 많아서 상당히 인상적이었습니다. 시간이 없어서 몇 개만 봤는데 기획부터 실제 개발에 관련된 내용까지 다양하게 있더군요. ㅠㅠ

어흑... 나중에 찬찬히 한번 훝어봐야겠습니다. 넥슨은 대인배~!!!

<이미지 출처 - 네이버>

주말을 맞아 와이프와 도서관에 가서 책도 좀 빌리고 영화도 한편 보고 왔습니다. ^^ 사고 이후에 이것 저것 정신 없이 준비한다고 쉴 틈이 별로 없었는데, 간만에 여유롭게 시간을 보내니 너무 좋더군요. 이번에 본 페르시아의 왕자는 특히 좋았습니다.

사실 디즈니도 참여했다고 해서 그렇게 기대를 안 했는데(약간 아동틱할까봐…), 상당히 멋지더군요. @0@ 영화 내내 눈을 때지 못하고 봤습니다. 페르시아의 왕자 게임을 알고있는 분이라면 게임의 묘미를 제대로 표현했다고 생각하실 겁니다. 그리고 주인공이 약간 엉뚱하고 익살 맞은 점도 재미를 배가 시키는 부분이었습니다. 디즈니답게 영화의 결말도 깔끔하니 아이들과 함께 봐도 부담 없을 것 같네요. ^^)-b

영화를 볼 생각이시라면 페르시아의 왕자를 강추~!!! 합니다. 개인적으로 아이언맨보다 더 재미있게 본 것 같네요. ㅎㅎ

<곧 제 손에 들어올 HTC의 디자이어입니다.>

요즘 뭔가 새로운 도전이 필요한 것 같아서 모바일 애플리케이션 쪽을 기웃거리고 있습니다. 사실 조만간 애플의 플랫폼과 구글의 안드로이드 플랫폼이 모두 준비되기 때문에 테스트나 해볼 겸해서 보고 있는 것이지요. ^^;;;; 개발자의 호기심이 발동했다랄까요? 일단은 맛보기 정도를 목표로 하고 있습니다.

그나저나 두 플랫폼 모두 저한테는 쉽지가 않네요. 아는 거라고는 고작 C/C++ 언어 정도인데 Object-C나 Java 언어를 배우려니 이거 원… 생소해서… ㅠㅠ 엎친 데 덮친 격으로 머리도 굳어버려서 완전 낭패네요. 어흑… 머리가 말랑말랑할 때 좀 더 많은 언어를 배워둘 걸 그랬나 봅니다. ㅠㅠ

일단 간단한 애플리케이션(Hello world?)이라도 만들어가면서 감을 잡아나갈 생각입니다. 하루에 30분이라도 투자해서 만들면 뭐라도 하나 나오겠지요. 재미있는 것이 나오면 포스팅 하겠습니다. ^0^)-b 물론 그전에 회사에서 빨리 탈출해야겠지만… ㅠㅠ

여기저기 기웃거리다 보니 벌써 시간이 이렇게 됐군요. 그럼 모두 좋은 밤 되시길~ ;)

웨딩

<이미지 출처 : http://www.flickr.com/photos/43124724@N08/4495838904/>

지난번 포스팅 이후로 약 한 달 만에 올리는 것 같네요. ^^ 그동안 또 많은 일이 있어서 정신 없이 보냈답니다. 그 중에서 가장 큰 일(?)은 제목에도 나와있듯이 결혼한 것입니다. ;)

결혼을 앞두고 사고가 나는 바람에 결혼식을 할지 말지 상당히 고민했는데 다행히도 회복이 빨라 무사히 치렀네요. 물론 두발로 걷고 서있는 게 쉽지 않아서 식은 최대한 빨리 끝냈고 내빈 인사는 목발을 짚은 채로 했지만, 이만하면 대성공이 아닐까 생각합니다(까딱하면 못할 수도 있었는데 식을 한 게 어디에요… ㅠㅠ).

이게 다 걱정해주시고 신경 써 주신 여러분들 덕인 것 같습니다. 앞으로 예쁘게 잘 살겠습니다. ^^)/~~~ 지켜 봐주세요. 그럼 남은 주말도 잘 보내시고, 좋은 하루 되세요 ;)

ps) 결혼도 했으니 이제 철 들어서 어른이 되어야 할 텐데… 큰일이군요. ㅠㅠ

주말에 고향에 갔다가 감기 걸린 채로 이틀을 돌아다녔더니만, 월요일부터 화요일까지 집에서 누워만 있었습니다. 갑자기 열이 오르고 두통이 심하게 와서 회사도 못 가겠더라구요. ㅡ_ㅡa… 안 그래도 올해는 휴가가 부족한데… 이렇게 귀한 휴가를 겨우 감기(?) 때문에 쓰게 될 줄은… 쿨럭..;;;

어제는 겨우 일이 나서 회사에 출근했는데… 회복이 좀 덜 돼서 회사에서 거의 죽어있었습니다. 오늘은 그나마 정신이 든 상태로 있었는데… 역시나 일은 거의 못(안 !?!) 하고 쉬었군요. ㅎㅎ 다행히도 내일은 예비군이라 푹 쉬고 나면 주말은 다시 생생한 얼굴로 돌아 다닐 수 있을 것 같네요. ^^)-b

요즘 여러 가지 문제로 고민하고 있어서 그런지, 몸이 아프니 더 심란하네요. ^^;;; 과연 이렇게 사는 것이 잘 사는 것인지 하는 생각이 계속 머리 속에서 맴돌고, 꿈과 현실의 괴리감이 점점 크게 느껴지는 지금… 뭔가 특단의 조치가 필요한 시점인 것 같습니다. 이러다가 큰 일 한번 치는 거 아닌가 모르겠군요. 쿨럭..;;;;

에혀… 누가 좀 잡아주세요 ㅠㅠ)-b

프로젝트 마감 때문에 정신 없는 하루 하루를 보내고 있습니다. 회사에서 늦게까지 머리를 굴리고 있자니 머리 꼭지가 타는 느낌도 들고 그래서 그런지 이렇게 사는 것이 잘 사는 건가 하는 생각이 계속 듭니다. 예전에는 회사에만 입사하면 다 해결될 줄 알았는데… 역시나 또 다른 시작일 뿐, 기존에 문제 + 새로운 문제가 돼서 더 복잡해졌네요. ^^;;;;

물론 월급도 잘 나오고 복지도 나쁘지 않기 때문에 큰 불만은 없지만, 계속되는 야근은 아무래도 아닌 것 같다는 생각이 듭니다. 물론 촉박한 일정 맞추랴 버그 잡으랴 시간이 부족한 것은 사실이지만 그래도 사람이라면 쉬어가면서 해야 하는데…  회사에 일 중독자들이 많아서 그런지 당최 집에 갈 생각을 않는군요. ㅠㅠ 하나 둘 늦게 가다 보니 어느새 팀 전체가 늦게 퇴근하는 시츄에이션이 되어 버렸습니다.

이런 루틴을 매년 반복해야 한다고 생각하니 많이 답답하네요. 에혀… 어디 일찍 퇴근하고 신나게, 그리고 재미있게 일할 수 있는 곳 없을까요? 있다면 당장이라도 짐 싸서 이사할 텐데… ㅎㅎ(물론 없겠죠? 쿨럭..;;;)

간밤에 비가 내리길래 답답한 마음에 한자 적어봅니다. 역시 사는 건 쉽지 않나 보네요. ㅎㅎ ;)

그동안 여러 크고 작은 문제로 신경을 거의 못쓰다가 이제서야 정신을 좀 차렸습니다. 물론 아직 처리해야 할 문제는 많지만 사고가 났을 당시에 비하면 아무것도 아니지요. ㅎㅎ 여러분들이 많이 걱정해주신 덕분에 여자친구가 빨리 회복하고 있습니다. ^^)-b 많이 감사 드립니다. ㅎㅎ

에궁… 집 –> 병원 –> 회사 –> 병원 –> 집만 반복하다 보니 본의 아니게 블로그를 오래 버려두었네요. 여러분의 댓글에 일일이 댓글을 달아드리지 못한 점 죄송하게 생각하고, 시간 날 때마다 차근차근 답글을 드리겠습니다. ㅠㅠ 회사 일도 요즘 한참 마무리 중이라서 더 신경을 쓰지 못한 것 같네요. ㅎㅎ

그래도 마냥 시간만 보낸 것은 아닙니다. ;) 주말 동안은 병원에서 틈틈이 MINT64 OS를 손봐서 이제 나름대로 그럴듯한(?) 모습이 됐습니다. 아래는 바뀐 MINT64 OS의 인증샷입니다. ;)

image <한글 입출력 기능과 각종 게임이 추가된 MINT64 OS의 구동 화면>

사실 별것 아니지만 난리가 난 통에 여기까지 오는데도 상당히 오래 걸렸네요. ㅠㅠ 중간에 몇 번이나 고비를 넘었는지… 숨겨져 있던 버그가 나오는 바람에 크로스 컴파일러를 새로 만들었는데 새로 만든 크로스 컴파일러 때문에 다시 다른 버그가 나오는 문제가… 쿨럭..;;; 정말 환장하는 줄 알았습니다. ㅠㅠ 그래도 여기까지 오고 나니 나름대로 뿌듯하네요. ;)

이제 사는 소식도 좀 전할 겸 해서 슬슬 다시 블로깅을 할 예정이니 앞으로 자주 MINT64 OS에 대한 소식을 전하겠습니다. ;) 그리고 그 외에 여러 가지에 대해서도 말이죠. ㅎㅎ

그럼 좋은 밤 되시고, 또 뵙겠습니다. ;)

즐거운 새해를 맞아 나들이를 갔다가 들어오는 길에 교통사고를 당했습니다. 도로 반대편에서 유턴하는 차량이 골목 방향으로 들어가다가 여자친구를 미처 못보고 타이어로 밟아버렸습니다. ㅠㅠ 저랑 같이 손을 잡고 가고 있었는데 어느 샌가 여자친구가 없더군요. 여자친구가 워낙 천방지축이라 길가다 넘어졌거니 했는데 비명이 들리는 겁니다. ㅠ0ㅠ... 제 바로 뒤쪽에 그랜드 카니발 차량이 서 있고 여자친구는 그 바퀴에 깔려 있더군요.

의사 말이 여자친구의 오른발이 차 밑에 완전히 깔려버려서 분쇄 골절됐다던데 전치 12주에 후유증도 있을 거라더군요. ㅠㅠ 다행히도 병원에서 바로 수술하기는 했지만 움직이기가 힘들어서 간병을 해야 하는지라 당분간은 업데이트가 어려울 것 같습니다. 아무래도 작업보다는 사람이 우선이니까요. ㅠㅠ

이만한 것이 다행이라 생각이 들긴 하지만... 한편으로는 정말 아찔한 사고였습니다. 만약 제가 조금만 더 멀리 떨어져서 가고 있었다면 여자친구를 완전히 밟고 가지 않았을까 하는 생각이... 지금도 생각하면 너무 오싹 합니다. ㅠㅠ 어휴... 여자친구가 너무 아파하는 걸 보니 합의금을 많이 받아야겠다는 생각이 들던데... 이것도 어떻게 될지 모르겠군요. 아는 손해사정인도 없고... 앞길이 막막하네요. ㅎㅎ

그럼 여자친구가 좀 나아지면 다시 글을 올리겠습니다. 여러분들도 차 조심하시구요... 항상 뒤쪽까지 확인하면서 다니세요. ㅠㅠ 언제 차가 덮칠지 모른답니다. ㅠㅠ 


<ps> 많은 위로의 말씀 감사드립니다. ㅠㅠ 덕분에 잘 회복되고 있습니다. 곧 돌아올께요 ㅠㅠ)/~


 

<이미지 뷰어와 콘솔 셸이 추가된 MINT64 OS>

 오늘 너무 황당한 일이 있어서 오랜 적막(?)을 깨고 한자 적어 올립니다(사실 다시 삽질 안 하려고 잊기 전에 올리는 것이지만... ㅡ_ㅡ;;;). 요즘 유저 레벨 응용 프로그램을 추가하려고 시스템 콜 부분을 구현하고 있는데, 인터럽트나 콜 게이트 방식 말고 다른 방식이 아닌 새로운 방식을 한번 도입해봤습니다. 이미 이 글의 제목에도 나와있지만 SYSCALL과 SYSRET 명령어를 사용하는 것이지요.;)


SYSCALL과 SYSRET 명령어는 INTEL과 AMD 양쪽에서 모두 사용할 수 있으며, IA-32e 모드에서 Ring 0와 Ring 3을 순식간에 오가는데 아주 유용하....다고 적혀있습니다. ㅡ_ㅡa... 실제로 얼마나 빠른지는 잘 모르겠지만 콜 게이트나 인터럽트처럼 스택에 데이터를 저장하고 특권 레벨을 체크하는 부분이 없으므로, 이전 것들(?)보다는 빠를 듯 합니다. ^^;;;;


뭐, 일단 SYSCALL과 SYSRET 명령어를 사용하려면 어떻게 환경을 설정해야 하는지는 INTEL 문서 Volume 3에 4.8.8 부분에 잘 나와있으니 생략하고... 실제로 SYSCALL과 SYSRET를 NASM으로 사용할 때 주의할 점만 한 줄로 정리해보면 다음과 같습니다.


IA-32e 모드의 64bit 서브 모드를 사용할 경우
SYSRET 명령어 앞에 REX.W 비트를 반드시 명시적으로 켜줘야 한다.


위의 사실을 찾는 데만 무려 3시간이 걸렸습니다. ㅠㅠ INTEL 문서를 보면 SYSRET의 경우 IA-32e 모드의 서브 모드 중에서 호환 모드(Compatibility Mode)와 64 비트 모드 중에서 선택해서 돌아갈 수 있으며, 그 핵심은 REX.W 비트라고 적혀있습니다. MINT64 OS는 64비트 서브 모드를 사용하니 REX.W 비트를 켜줘야 하는데, REX.W 비트가 켜지지 않아서 시스템 콜을 호출하고 돌아올 때 문제가 계속 생겼습니다.


코드를 생성할 때 64bit로 생성했기 때문에 NASM이 알아서 붙여 줄거라 생각했는데... 확인 결과 아무것도 없이 그냥 SYSRET 커맨드만 덩그러니 있었습니다. 그래서 시스템 콜을 호출한 뒤에 돌아오면... 잘못된 명령어라는 예외가 발생하더군요. ㅠㅠ 그래서 REX.W 비트를 키려고 봤더니... 


얼래... NASM에는 SYSRET 명령어 앞에 REX.W 비트를 명시적으로 붙이는 접두사나 키워드가 없었습니다~!!! (여운산님이 o64 키워드가 있다는 사실을 제보해주셨습니다. o64 키워드를 붙이니까 잘 되더군요 >ㅁ<)-b 완전 감사합니다). ㅠㅠ 오퍼랜드가 있는 다른 명령어들은 뒤에 오는 오퍼랜드의 크기에 따라 REX.W 비트를 켜주는 모양이던데, SYSRET는 오퍼랜드가 없으니 그냥 넘어간 모양입니다. ㅠㅠ 그래서 아래처럼 설정해줬습니다.


DB 0x48  <== REX Prefix로 W 비트가 1로 설정된 상태입니다. ^^;;;; (제가 해결한 무식한 방법입니다)
SYSRET

o64  <== REX.W 비트를 1로 설정하는 키워드 입니다. ;) (여운산님이 제보해주신 방법입니다, 아주 깔끔하네요 ;) )
SYSRET


이걸 해놓고 나니까 겨우 정상적으로 동작하네요. 이제야 겨우 유저 레벨 코드를 작업할 수 있게 되었습니다. ㅠㅠ)-b 안 그래도 할 일이 산더미 같은데... 이런 일로 시간 낭비(?)를 하고 나니 머리가 어찔하네요. ㅠㅠ 에휴... 이제 다시 작업하러 가야겠습니다.


ps) 위의 화면은 MINT64 OS에 이미지 뷰어와 콘솔 셸이 추가된 화면입니다. ㅎㅎ 조만간 또 테스트할 수 있는 바이너리... 보다는 동영상으로 한번 올리겠습니다. ;)

요즘 회사일 때문에 눈코 뜰새 없이 바쁜지라 거의 블로그를 버려뒀습니다. ㅠㅠ 회사에서 머리를 풀 회전시키고 집에 와서 잠시 쉬었다가 다시 작업하고 이런 날들을 거의 추석 근처부터 반복했더니만... 머리가 타는 듯(?) 하네요. ㅠㅠ 그래도 작업은 꾸준히 해야 하는지라 틈틈이 기능을 추가해서 화면 그리기 알고리즘 업그레이드 + 작업 표시줄 + 시스템 모니터까지 진행되었습니다. 아래는 진행된 것을 캡쳐한 화면입니다.

<작업 표시줄과 시스템 모니터가 추가된 화면>


이제 조금만 더 만들어서 콘솔 쉘까지 추가하면 그럴듯해지겠군요. ㅎㅎ 이번에는 동영상보다 직접 실행할 수 있는 QEMU의 이미지를 올렸습니다(절대 동영상을 찍기 싫어서가 아닙니다. ㅠㅠ). 어떻게 돌아가는지 궁금하신 분들은 한번 다운 받아서 실행해보시면 얼마나 허접한지(?) 볼 수 있을 겁니다. ㅎㅎ 파일을 다운받아서 압축을 푼 후 디렉터리 안에 있는 MINT64OS.bat를 실행하시면 됩니다.



아우... 새벽형 인간으로 거듭난지 꽤 되었지만 아침에 일찍 일어나는 건 여전히 힘드네요 ㅎㅎ 이제 그만 또 작업하러 가봐야겠습니다. ;) 다음 글이 또 언제 올라올지 모르겠지만, 틈나는 대로 진행상황을 올리겠습니다. 그럼 다들 좋은 하루 되세요 ;)

<현재 진행 중인 GUI 시스템의 화면> 

추석 연휴 때부터 이것 저것 일이 많아서 미친 듯이 달려왔더니 이제야 블로그에 한자 적어 올립니다. ㅠㅠ 아흑... 요즘 회사에서도 신경 쓸게 많다 보니 점점 작업시간이 줄어들어서 이러다가 큰일(?)나게 생겼네요 ㅠㅠ. 그래도 작업은 해야 하는지라 아침에 좀 무리해서 진행하고 있습니다(이러다 쓰러지는 게 아닌가 모르겠군요. 쿨럭..;;;)

그동안 아주 쉬운 알고리즘을 사용해서 GUI 시스템 작업을 했는데... 이제야 어느 정도 모양이 나와서 올려봅니다. ^^;;; 이제 조금만 더 있으면 바이너리 정도는 공개할 수 있는 퀄러티가 나오겠군요. 일단 윈도우 생성, 닫기, 선택/선택 해제, 이동 정도 구현된 상태입니다. 크기 변경이랑 화면을 좀더 효율적으로 그리는 부분은 좀더 진행되어야 할 수 있을 것 같군요. 아래는 지금까지 구현된 MINT64 OS의 구동 화면입니다. ;)


 



어휴... 이제 또 달려봐야겠네요. ㅠㅠ 다음 포스팅은 언제가 될지 모르겠지만... 조만간(?) 다시 하나 올리겠습니다.

ps) 어휴... 이것 참... 언능 해야 될 텐데... 큰일이군요. ㅠㅠ



제가 존경하는 형의 블로그(http://blog.wimy.com/)에서 너무 재미있는 패러디 만화를 발견해서 한자 적어 올립니다.

개그 만화에 자막을 입혀서 닷넷 프레임워크와 자바 사이에서 고민하는 개발자의 모습을 그렸습니다.

정말 너무 재밌네요. ㅎㅎ 특히 자막과 화면의 싱크로율이 200%랄까요? ;)

그럼 즐감하세요 ㅎㅎ ;)

지난 주에 아우~ 새벽형 인간으로 바꾼지 일주일쯤 지났습니다. 그리고 아침에 꾸준히 작업한 결과 MINT64 OS에 새로운 기능을 추가할 수 있었습니다. ;) 바로 클리핑(Clipping) 기능입니다.

클리핑 기능은 화면에 표시되지 않는 영역을 잘라 내어 이미지가 요상(?)하게 출력되는 것을 막는 작업입니다. 요상하게 표시되는 게 어떤 건지는 아래 두 화면을 비교해 보면 금방 알 수 있습니다. 위의 그림과 아래 그림을 비교해 보면 클리핑 처리를 하지 않았을 때는 화면 영역을 벗어난 나머지 영역이 그 반대편에 표시됩니다.

clip_image002

<클리핑 전 화면>

clip_image002[4]

<클리핑 후 화면>

클리핑 처리가 필요한 이유는 비디오 메모리가 연속된 하나의 덩어리기 때문입니다. 즉, 우리가 화면에서 보는 라인 단위로 딱딱 구분되어 있는 것이 아니라, 라인들이 순서대로 주욱 연결되어 하나의 메모리 공간을 형성하고 있습니다. 그래서 윗 라인의 끝부분에 윈도우를 출력하면 그 다음 라인까지 영향을 받습니다. 클리핑 처리는 보이지 않는 부분은 그리지 않음으로써 이러한 문제를 해결하는 기법입니다. ^^;;;;

사실 어렵게 하려면 한없이 어렵게 할 수 있고, 속도를 좀 포기하면 한없이 쉽게 할 수 있는 것이 클리핑 처리인데... 저는 쉬운 방법을 택했습니다(어떻게 했는지는 “비밀” 입니다. ㅎㅎ 나중에 공개할께요 ^^;;).

에휴~ 이제 슬슬 마우스를 추가해야겠군요. 마우스가 없으니 원... 그냥 랜덤하게 출력하는 것 말고는 별로 할 게 없네요. 급히 하나 추가해 봐야겠습니다. ㅎㅎ 그럼 다들 좋은 주말 되시길 ;)

이번 주와 지난 주 2주에 걸쳐 MINT64 OS에 2D 그래픽 라이브러리를 추가하고, 그걸로 윈도우 프로토타입을 만들어 봤습니다. 아우, 이미지로 만든 윈도우 프로토타입은 24bit Color 였는데, 실제 MINT64 OS는 16bit Color를 사용하고 있어서 색을 맞추는데 시간이 좀 많이 걸렸습니다. ㅠㅠ 그리고 닫기 버튼을 그리는데도 상당한 시간이 걸렸네요 ㅠㅠ

아래는 인증샷~!! 입니다. ;) 이미지랑 상당히 비슷하죠? ㅎㅎ

image

<실제 코드로 구현된 MINT64 OS의 윈도우 프로토타입>

image

<포토샵으로 만든 윈도우 프로토타입>

꼭두새벽부터 일어나서 작업을 했더니 머리가 좀 머엉~ 하네요 ㅎㅎ 그래도 만들어 진 녀석을 보고 있으니 왠지 흐뭇합니다. 이제 클리핑 처리 좀 하고 마우스를 집어 넣은 다음 윈도우 시스템을 추가하면 그럴듯한 녀석이 나오겠군요. ;) ㅎㅎ 신납니다.

에혀 언능 언능하고 응용프로그램쪽으로 넘어가야 하는데, 역시나 작업 능률이 문제군요. ㅡ_ㅡa.. 아침형 인간으로 재탄생할 때까지는 아무래도 어정쩡~ 할 것 같습니다. 역시나 노력하는 수 밖에는 없겠네요 ㅎㅎ 에궁~ 잠시 쉬었다가 또 작업을 시작해야겠군요. ㅎㅎ

마우스와 클리핑이 추가되면 동영상으로 하나 만들어 올리겠습니다. 그럼 좋은 하루 되세요 ;)

+ Recent posts