그냥 이런저런 이야기들...
by 캡틴토마스
카테고리
이전블로그
Microsoft MSP 모집중입니다.!!!

Microsoft Student Partner 모집중입니다.

아래 배너를 누르시면 해당 페이지로 이동합니다

모두들 고고싱!!!

by 캡틴토마스 | 2008/05/12 23:23 | 살아가는 이야기 | 트랙백 | 덧글(0)
삽질일기...
무턱대고 시작한 개인 프로젝트....

손댈곳이 많아 보인다...

OLEDB 나를 80시간 가까이 잠못자게 만든 원흉....

결국.... 테이블명을 '한글' 로 작성한데서

문제 발생..... 아.... 너무나 가까이 있었던 문제를 놓치다니...

한글사용은 범죄다....

파일명, 테이블명, 변수명....

하아...하아.... 15% 정도 진행.... 좀 서둘러야겠다.

by 캡틴토마스 | 2007/09/27 02:30 | 살아가는 이야기 | 트랙백 | 덧글(1)
2007년 7월 1일
double normalRelativeAngle(double angle) 메소드

angle 값을 parameter 로 읽어들여 이를 0~PI(180도) 사이의 값으로 정리한다.

다음 예제를 보자

double a = -270;

turnGunRight(a);

이렇게 해주면 탱크는 포신을 왼쪽으로 270도 회전을 시켜주지만,

결과적으로 보면 오른쪽을 90도 회전과 다를게 없다

따라서 normalRelativeAngle(double angle)를 사용하여

double a = -270;

turnGunRight(normalRelativeAngle(a));

해주면

오른쪽으로 90도 회전시키는 효과를 기대할 수 있다.


by 캡틴토마스 | 2007/07/01 21:36 | ---*로보코드 | 트랙백 | 덧글(0)
이클립스에서 만든 로봇을 불러와 봅시다

로보코드를 실행한 후
Options->Prefereces->Development Options 클릭 후 해당 '프로젝트' 의 위치를 기입합니다.


Finish 버튼을 누르고 Battle -> New 로 가면 패키지를 찾은것을 볼 수 있습니다.

아래는 이클립스에 대해 설명이 올라와있는데
원문에는 이클립스에 대한 찬사나 간단한 사용법을 쓰고 있습니다.
궁금하면 원문을 참고해주세요

이클립스 단축키

Ctrl - S 저장
Ctrl-Space 멤버 메소드 출력

by 캡틴토마스 | 2007/07/01 21:31 | ---*로보코드 | 트랙백(132) | 덧글(0)
로봇을 만들어 봅시다.

프로젝트를 만들었으면 로봇도 만들어야 하겠져?

이제 로봇을 만들어 봅시다.

원문은 먼저 올라온 글과 멀리 떨어진 곳이 아니니 함 찾아보세요

클래스를 만듭니다. 프로젝트안에 들어갈 클래스를 만들기 위해 NEW->CLASS  를 클릭합니다.

 


패키지는 자신의 이름에 대한 이니셜을 넣고(IBM 권장사항),
클래스명엔 자신의 로봇이 갖길 원하는 이름을 넣습니다.
슈퍼클래스는 robocode.Robot 으로 넣어줍니다



성공하면 다음과 같은 화면이 나옵니다.


이제 원하는 코드를 넣을 수가 있습니다.

(영어 실력이 짧은지라 원문 그대로 갖고옵니다. 알아서 해석 하시길)

You can save your robot as often as you like by hitting CTRL-S, or selecting "File->Save". There's no need to select Compile anymore, since Eclipse takes care of it for you. Have fun playing around with Eclipse. Personally, I like to change all the colors, turn off bold print, move the windows around, and do all sort of things to customize it to my liking. Since there's no better way to learn than by playing around, I'll leave you to it! (Hint: Workbench -> Preferences -> Java -> Editor -> Colors)

The only thing left is to make sure Robocode sees your robot.

by 캡틴토마스 | 2007/06/29 13:52 | 트랙백(214) | 덧글(0)
이클립스 로보코드 환경 설정

원문 : http://robocode.sourceforge.net/help/ide/ide2.html
이클립스 환경에서 로보코드 로봇을 빌드하려면, 먼저 프로젝트를 만들어야 합니다.

1. File->New->Project 에서 프로젝트를 만듭니다.

자바 프로그램이기 때문에 그냥 "Java Project" 를 선택해줍니다.


Finish 버튼은 절대 누르지 마시고, Next 를 누릅니다.


이제 프로젝트 세팅을 할 차례입니다. robocode 패키지 안에는 라이브러리, JAVADoc 이 있기 떄문에
이것들도 링크를 해줘야 합니다.(뭐 JAVADOC 이 머리속에 있다면 라이브러리만 링크해줘도 상관 없습니다.)

위 화면처럼 만든 후 Add External JARs.... 를 클릭합니다.

로보코드가 설치되있는 폴더로 찾아가 robocode.jar 을 엽니다.


이제 Javadoc 을 세팅해줄 시간입니다.

Javadoc Location 에서  Edit 를 누르고

Browse를 이용해서 해당 경로를 지정해주거나, 경로를 외고 있다면 위 형식에 맞게 지정해주면 끝!!

이제 탱크를 만들 수 있습니다.

by 캡틴토마스 | 2007/06/29 13:42 | ---*로보코드 | 트랙백(364) | 덧글(0)
JSP&Servlet 에서 한글 인코딩 방법(JABOOK 에서 발췌)

우선 한글 웹 브라우져의 한글 방식은 KSC5601 방식입니다. 그리고 웹 브라우져에서 데이터가 전송될 때 웹에서 통용되는 “x-www-form-urlencoded” 형식으로 변환하여 전송하게 됩니다. 즉 다음과 같이 전송됩니다.

 

n        KSC5601 à 웹에서 통용되는 x-www-form-urlencoded 형식으로 변환하여 전송

 

하지만 서블릿에서는 KSC5601에서 웹 인코딩이 되었다고 생각하지 않습니다. 한마디로 오류죠. 서블릿은 라틴어 표준 인코딩 방식인 ISO-8859-1방식에서 웹 인코딩되었다고 간주하여 한글을 받아 내게 됩니다. 이렇게 되면 당연히 한글은 깨지게 됩니다. 실제는 KSC5601로 인코딩 되어 있기 때문이죠.

 

n        ISO-8859-1 à 웹 인코딩 à 유니코드(한글깨짐)

 

이럴 때의 해결책은 깨진 유니코드 한글에서 ISO-8859-1 바이트 배열을 얻어 내어 다시 KSC5601로 바꾸어주는 작업을 해서 유니코드로 변환 해야 합니다.

 

n        유니코드(깨진 한글) à ISO-8859-1 바이트배열 추출 à 원래의 포맷인 KSC5601 변환

 

이렇게 변환 된 KSC5601은 정확한 한글이 되며 자바에서 유니코드 형식으로 사용할 수 있는 것입니다. 약간 복잡하죠.

 

그리고 한가지 주의해야 할 것은 서블릿에서 한글은 클라이언트로 전송하면 유니코드에서 자동으로 ISO-8859-1형식으로 변환해서 전송한다는 것입니다. 그렇기 때문에 클라이언트가 한글 웹 브라우져를 사용한다면 한글은 당연히 깨지게 되어 있습니다. 이럴 땐 웹 브라우져가 알 수 있는 KSC5601인코딩을 사용하는 euc-kr 인코딩으로 변환하여 전송해야 합니다.

public class HangulEncoder{
    
public static String to8859_1(String ko){
        
if(ko==null){
            
return null;
        }
        
try{
            
return new String(ko.getBytes("KSC5601"),"8859_1");
        }
catch(Exception e){return ko;}
    }
    
public static String toKSC5601(String en){
        
if(en==null){
            
return null;
        }
        
try{
            
return new String(en.getBytes("8859_1"),"KSC5601");
        }
catch(Exception e){return en;}
    }
}

by 캡틴토마스 | 2007/05/14 11:42 | ---*JSP&서블릿 | 트랙백 | 덧글(0)
영웅전설 6: 천공의 궤적 3rd



현재 팔콤 에선 6월 28일 영웅전설 6 : 천공의 궤적 3rd 를 발매 한다는 계획만 밝혀둔 상황

이를두고 일본 팬사이트나 한국의 아루온 게임즈, 영웅들의 샤리네 게시판에는

온갖 추측기사가 난무한 상태이다.

가장 중요한건 주인공이 누구냐 하는 것인데

개인적으로 리샤르 대령이나 케빈신부의 이야기가 나왔으면 하는바램이다.

가가브 트릴로지가 미첼의 숨겨진 이야기가 되었듯이

이번에도 카시우스의 숨겨진 이야기가 되지 말라는 보장도 없는데...

뒤로 뒤로 뒤로 계속 이어나가다보면 어느순간엔 어색한 부분이 없지않아 있을지도 모르겠다.

레베가 살아나고, 렌이 결사에서 빠져나온다는 루머도 도는 상태

by 캡틴토마스 | 2007/03/26 11:15 | 트랙백 | 덧글(2)
MYSQL++ 레퍼런스 허접 번역
 Connection (bool te=true)
 

DB에 접속되어있지 않은 connection 객체를 생성한다.

 

 

Connection (const char *db, const char *host="", const char *user="", const char *passwd="", uint port=0, my_bool compress=0, unsigned int connect_timeout=60, cchar *socket_name=0, unsigned int client_flag=0)

 DB에 접속되어있는 connection 객체를 생성한다.
 

Connection (const Connection &other)

 인자로 받는 connection 객체와 동일한 객체를 만든다. 
bool connect (const MYSQL &mysql)
 인자로 받는 DB에 연결한다.
 ~Connection ()
 소멸자.
bool connect (cchar *db="", cchar *host="", cchar *user="", cchar *passwd="", uint port=0, my_bool compress=0, unsigned int connect_timeout=60, cchar *socket_name=0, unsigned int client_flag=0)
 Connection 객체를 MYSQL DB에 연결한다.
void close ()
 MYSQL DB 연결을 종료한다..
std::string info ()
 MySQL C API 의 function mysql_info() 함수 결과를 C++ string으로 리턴한다..
bool connected () const
 연길이 성공적으로 수행되었을 경우 true 를 리턴한다.
bool success () const
 쿼리가 성공적으로 수행되었으면 true를 리턴한다.
void purge ()
 close() 와 동일한 기능.
Query query ()
 Query 객체를 생성한다.
 operator bool ()
 success() 와 동일한 기능을 한다..
Connectionoperator= (const Connection &rhs)
 인자로 받는 rhs와 동일한 객체를 만들어 리턴한다(연산자).
const char * error ()
 MYSQL 에서의 에러 메시지를 리턴한다.
int errnum ()
 MYSQL이 보낸 마지막 에러 번호를 리턴한다.
int refresh (unsigned int refresh_options)
 MySQL C API 함수 mysql_refresh()와 동일한 기능을 한다..
int ping ()
 MySQL database에 ping 테스트를 한다. 
int kill (unsigned long pid)
 MySQL server thread를 강제종료한다.
std::string client_info ()
 MySQL client library version 을 리턴한다.
std::string host_info ()
 network connection에 대한 정보를 리턴한다.
int proto_info ()
 DB 연결을 위해 사용중인 MYSQL 통신 규약을 리턴한다.
std::string server_info ()
 MySQL 서버의 버전을 리턴한다..
std::string stat ()
 MySQL server 상태를 리턴한다..
bool create_db (const std::string &db)
 database를 생성한다.
bool drop_db (const std::string &db)
 database를 삭제한다.
bool select_db (const std::string &db)
 인자로 받는 문자열의 이름의 database를 사용한다.
bool select_db (const char *db)
 인자로 받는 문자열의 이름의 database를 사용한다.
bool reload ()
 현재 테이블을 다시 읽어온다.
bool shutdown ()
 MySQL server 를 종료한다.
st_mysql_options get_options () const
 connection options object 를 리턴한다.
bool set_option (Option option)
 connection option을 설정한다.
bool set_option (Option option, const char *arg)
 connection option을 설정한다.
bool set_option (Option option, unsigned int arg)
 connection option을 설정한다.
bool set_option (Option option, bool arg)
 connection option을 설정한다.
void enable_ssl (const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
 SSL-encrypted 연결을 가능하게 만든다.
my_ulonglong affected_rows ()
 Return the number of rows affected by the last query.
my_ulonglong insert_id ()
 INSERT 쿼리에 의해 실행된 AUTO_INCREMENT ID를 얻는다.
std::ostream & api_version (std::ostream &os)
 C API 버전을 입력한다 we're linked against into C++ stream.
by 캡틴토마스 | 2007/01/30 05:10 | 트랙백(47) | 덧글(0)
< 이전페이지 다음페이지 >


이글루링크
최근 등록된 덧글
아 하고 싶오라 ㅜㅜ 피..
by 김인숙 at 02/16
지랄
by 지랄 at 01/30
ㅇㅇ 지랄
by 지랄 at 01/30
미쳤어~@
by 지랄 at 01/30
글 읽는 1분 동안은 천국..
by ㅡ.ㅡ at 01/07
아휴 하고싶다
by 유삼영 at 11/07
만나서 반갑습니다
by enkhee at 02/03
조건에 따라 레코드셋을..
by FiaDot at 10/12
hello
by Naomi at 04/06
nice
by Robert at 04/06
rss

skin by 이글루스