Saturday, August 25, 2012

OGRE 3D 1.7 Application Development Cookbook 1장 번역 완료

드디어 1장 번역을 완료했습니다. 오우거를 이용해 Win32, MFC, MFC(with ribbon), Plugin, custom resource manager를 만드는 내용이 1장의 내용입니다. 번역자가 아닌 독자로써 1장을 평가한다면

별점 3개 입니다. 저는 오우거를 단 한번도 사용해본적이 없는데 그래도 나름대로 오우거의 사용법에 대해서는 조금 알 것 같다는 느낌입니다. 반면에 궁금해진것은 scene, entities에 관해 조금 더 설명이 있었으면 어땠을까 하는 느낌입니다. (아무래도 책 컨셉상 모자란감이 있네요. 게다가 사실 이런 부분까지 다뤘으면 좀 책이 어려워지지 않았을까 싶기도 합니다.)

프로그래머라면 반드시 소스 코드를 살펴 보고 실제로 어떻게 처음부터 끝까지 구성되었는지 알아볼 필요가 있습니다. 그 정도 알아보면 많이 배울 수 있을꺼라고 생각합니다.

책 괜찮네요... 아직까지는 ㅎㅎㅎ

Wednesday, August 22, 2012

따끈따끈한 PHP, MySql 삽질기

데이터베이스 필드 타입중 date가 있어서 여기에 생년월일 데이터를 넣는 작업을 하고 있었습니다. 그런데 자꾸 실제 데이터를 보니 0000-00-00이 나오는겁니다.

클라이언트에서 생년월일 데이터를 년, 월, 일로 따로 넘기고 php의 mkdate를 써야 하나?
고민을 하고 있었는데 아무래도 이건 마음에 안드는겁니다. 왜냐면 클라이언트측에서 3개를 따로 넘겨야 하고 서버측에서도 굳이 date를 다시 구성해서 db에 넣어주어야 하니까요.

클라이언트에서는 yyyy-MM-dd형식으로 문자열을 만들고 서버로 넘겼는데 계속 0000-00-00으로 나왔었습니다.

회사 동료분께서 query문 자체로 넘겨보자고 해서 yyyy/MM/dd형식으로 넘겨보니... 어라? 제대로 나왔습니다.

문제가 해결되었는데 아무래도 찜찜해서 혹시 문자열 포맷 문제가 아니라 서버 코드랑 query문이랑 다른가? 하고 체크...

보니까 클라이언트에서 받은 문자열 데이터를 query문에 넣을 때 '...'으로 감싸지 않았더군요. 즉, 정수형태로 date에 들어간게 문제였습니다.

date의 문자열은 / 포맷도 괜찮고 - 포맷도 괜찮았던거였어요.

끝.

Tuesday, August 21, 2012

iOS Top-level objects란?

프로그램에서 NIB를 로드할 때 Cocoa가 object graph를 다시 만든다.  Object graph는 windows, views, controls, cells, menus, custom objects 모두를 말한다. 이때 Top-level objects는 부모를 가지지 않는 object 집합이다.

예를 들어 view하나와 button하나가 있다고 치자.

이때 view에 button이 자식으로 등록되어 있고 이때 view는 top-level objects이지만 button은 아니다. 만일 button이 outlet으로 등록되어 있지 않으면 button역시 top-level objects로 분류된다.

이번에 개봉한 영화 '토탈 리콜' 봤습니다.

전 재밌었어요. 처음부터 끝까지 쉬지 않고 액션만 나옵니다.

Monday, August 20, 2012

비가 많이 오네요...

덕분에 자출을 못하겠습니다. 이번주까지 비 온다고 하던데...

C++ 이디엄중에 두 개.

1. if ( object != NULL )과 같은 코드는 if ( !object )로 표기한다.

2. char *name은 코드는 char* name으로 *을 타입에 붙인다.

5페이지 번역했습니다.

휴 앞으로 갈 길이 멀군요 ㅎㅎㅎ

옵티마이즈를 하기 전에 무조건 프로파일링을 해야합니다.

이건 정말 간단한 룰인데 지켜지지 않아요. 저도 예전에는 코드만 보고 옵티마이즈 하려고 했었는데 제대로 옵티마이즈 하려면 무조건 프로파일링을 해보아야 합니다. 반드시 코드를 수정하기 이전에 프로파일링 해보도록 합시다.

Sunday, August 19, 2012

Ogre 3D 1.7 Application Development cookbook 번역 하기로 했습니다.

두 번째로 오우거 책을 번역하기로 했습니다. 이번에는 책 내용을 좀 미리 보고 괜찮겠다 싶어서 번역한 책이에요.

오우거 엔진을 이용해서 다양한 프로젝트를 만들어 보는 책 입니다. 저도 아직 번역을 다 안해서 전체 책 내용은 모르겠지만 대충 보아하니 오우거 엔진을 이용한 툴 프로그래밍에 관련된 이야기도 좀 나오는것 같습니다. 더 자세한 내용은 번역을 끝내고 글을 다시 쓰도록 해야겠군요 :)

빨리 보다는 최대한 잘 번역해 보도록 할 생각입니다.

강남역 11번 출구쪽에 알라딘 생겼습니다.

이쪽 자리가 서점이 3번째 바뀐거 같은데 지금은 알라딘이 생겼네요. 중고책 서점입니다.
오늘 잠시 들렸다가 제가 전에 회사에서 읽었던 책들 업어왔습니다. 어차피 읽은 책이긴 한데 소장하려고요 ㅎ

C Inerfaces and Implementations
이산 수학론

책 상태도 너무 좋아서 기쁘기도 한데 한편으로는 씁쓸하기도 했습니다.

시간 되시는 분들은 꼭 들려보세요 :)

참고할 점은 컴퓨터 카테고리보다는 웹 디자인이라는 카테고리에 컴퓨터 책들이 더 많이 있습니다.

Friday, August 17, 2012

인터페이스 빌더를 사용해서 UIControl을 배치하는 방법

iOS에서 인터페이스를 디자인할 때 2가지 방법이 있다.

1. IB(Interface builder)를 이용하는 방법
2. 코드로 디자인 하는 방법

IB를 사용할 경우 iOS에서 제공되는 컨트롤들은 클릭 앤 드래그로 쉽게 배치할 수 있는데 커스텀 컨트롤 같은 경우에는 IB의 컨트롤 리스트에 나오지 않으므로 클릭 앤 드래그로 배치할 수가 없다. 예를 들어 UIControl을 상속한 KSwitch라는 클래스가 있을 때 이것을 배치하는 방법에 대해 알아보자.

방법
UIView를 오브젝트 라이브러리에서 선택한 후 화면에 배치한다. 그리고 해당 컨트롤의 Identify inspector란에 들어가서 클래스 속성을 KSwitch로 바꾼다.

컨트롤의 배경색을 투명하게 만들어 주고 싶다면 코드에서 clear color를 셋팅해주거나 Attributes에서 background컬러 속성을 clear color로 설정해 주어도 된다.

끝.

Thursday, August 16, 2012

UIScrollView와 UILabel을 이용해서 스크롤 되는 긴 글 표현하기

UILabel은 멀티라인을 지원하고 있으나 스크롤을 하는 방법은 존재하지 않는다.
반면에 UIScrollView는 스크롤을 지원하는데 이 안에 UILabel을 넣어서 스크롤을 처리하면 된다. 이때 중요한 점은 UIScrollView에 contentSize를 제대로 설정해주어야 스크롤 처리가 된다.

가령 Height가 300인 이미지가 있을 때 UIScrollView의 Height가 100이라면 이미지가 잘려서 보일 것이다. 이때

mScrollView.contentSize = CGSizeMake(width, 300);

와 같이 이미지의 높이 사이즈를 지정해 주면 스크롤 처리가 제대로 된다.

UIView에서 NSTimer를 쓸 때 Dealloc이 되지 않는 현상

그 이유는 NSTimer를 사용할 때 내부적으로 UIView의 레퍼런스 카운터를 올려주고 UIView가 SuperView에서 Remove되더라도 이때 레퍼런스 카운터가 0이 되지 않으므로 Dealloc되지 않는다.

해결 방법
SuperView에서 Remove해주기 전에 Timer역시 Invalidate해주어야 한다.

끝.

블로그 다시 시작합니다.

예전에 날린 자료들을 생각하면 안타깝지만 다시 시작해 보려고 합니다~ :)
제가 주로 관심있어 하는 분야는 AI, 게임 엔진 디자인, 미들웨어 개발, 툴 프로그래밍입니다.

Task in UnrealEngine

 https://www.youtube.com/watch?v=1lBadANnJaw