반응형
OS: Ubuntu 8.04.1 desktop
ns2 시뮬레이터 버전: 2.33

참고서적 [1]을 보고, ns-2.33에서 멀티 인터페이스/멀티 채널 부분을 보고 수정한 뒤,

$ make clean
$ make
를 실행했더니, 아래와 같은 에러가 뜨면서 중단되었다.

`.gnu.linkonce.t._ZN11taskPending10taskStatusEh' referenced in section `.rodata' of wpan/p802_15_4mac.o: defined in discarded section `.gnu.linkonce.t._ZN11taskPending10taskStatusEh' of wpan/p802_15_4mac.o

구글을 뒤져 봐도 정확한 원인을 모르겠다. 다만 해결방법은 추측성으로 gcc와 bash의 버전을 바꾸면서 컴파일에 성공했다는 정도로 적혀 있었다.
OS의 다른 환경은 그대로 두고 gcc 버전만 바꾸면서 테스트한 바로는, gcc-4.2, gcc-3.4.6, gcc-3.3.6 까지는 똑같은 에러가 발생했다. 아이러니하게도 주변 선배들 얘기로는 내가 테스트 안해본 gcc-3.3 이전 버전에서는 아마도 될 거라는... -_-

어쨌든 gcc의 버전에 상관없이 ns-2의 Makefile이 gcc를 디버그 모드로 동작하도록 했더니 문제없이 컴파일에 성공하였다.

디버그 모드로 make하는 방법은: ns-2가 설치된 디렉토리로 이동하여,
$ ./configure --enable-debug
$ make clean
$ make




* 참고서적
[1] 장영민 외, "ns-2 네트워크 시뮬레이터의 활용", 홍릉과학출판사
반응형
블로그 이미지

Bryan_

,
반응형
일반적으로 JSP파일에서 한글을 직접 입력하고 싶을 때, 파일의 맨 위에
<%@ page contentType="text/html; charset=euc-kr" %> 이렇게만 써주면 한글이 문제없이 보이지만, Java에서 넘어오는 문자열이나 웹 주소를 통해 받는 파라미터는 모두 유니코드(UTF-8)이기 때문에 되도록이면 UTF-8로 통일해서 쓰는 것이 여러 모로 변환의 귀찮음도 줄일 겸 좋을 것 같다.


(1) 아파치 톰캣에서 설정할 부분:
<Connector port="8080" .../> 태그의 뒷부분에
useBodyEncodingForURI="true" URIEncoding="UTF-8"를 추가한다.
(예) <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8" />

<Connector port="8009" ... /> 태그의 뒷부분에도 똑같이 추가해 준다.
(예) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>


(2) JSP 파일에서 설정할 부분:
JSP파일의 시작 부분에 다음 줄을 추가한다. 또는 charset이 euc-kr로 되어 있을 경우 바꿔 준다.
<%@ page contentType="text/html; charset=UTF-8" %>


HTML 코드가 시작될 만한 곳 어딘가에 (위치가 큰 상관은 없어 보임) 아래 메타태그를 추가해 준다.
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"/>


(3) JSP 파일 자체의 포맷 확인:
사용하는 에디터에 따라서 텍스트파일의 저장방식이 다를 수 있다.
현재 버전(0.9)의 AcroEdit의 경우 사용자가 직접 유니코드로 변환 명령을 주지 않으면 유니코드로 저장하지 않는다.
파일을 저장할 때 반드시 유니코드(UTF-8)로 저장할 것.
반응형
블로그 이미지

Bryan_

,
반응형

2년차가 되어 이제 본격적으로 연구를 시작하게 되었다.
1월 초부터 뭔가 이렇게 해보겠다, 저렇게 해보겠다 혼자 나름 생각하지만 잘 되지 않고 있다. ㅠ_ㅠ
지금까지 두 차례의 랩 세미나와 역시 두 차례의 랩 미팅에서 발표를 하였다. 그 세미나와 미팅에서, 여전히 내가 해보겠다는 연구는 대단히 광범위하고, 무엇이 문제인지 전혀 보이지 않는다는 것을 알게 되었다.

일단 내가 연구할 큰 줄기는 multi-radio 환경에서 네트워크를 잘 다뤄보자는 것이다.
큰 줄기에서 나름 구체화시켜 보려고 생각해본 것이, 여러 종류의 네트워크 인터페이스(Wi-Fi, Bluetooth, Zigbee, cellular network 등)에 의해 형성되는 여러 네트워크들 간에 interaction을 가능하도록 해 보고, 그 중 한 방법으로 여러 네트워크 인터페이스를 동시에 갖고 있는 mobile device들이 여러 네트워크들 속에서 뭔가 특별한 역할을 함으로써 그 interaction을 효과적으로 해줄 수 있을 거라는 등의 것들이었다.

위 생각들을 박사과정 선배님들한테 말하자마자 들은 결정적인 질문은 "여러 네트워크에서 네트워크가 의미하는 것이 무엇인가?"와 "여러 네트워크 간에 interaction해서 얻는 이득이 무엇인가? 적절한 시나리오를 얘기해 봐라"였다. 첫번째 질문에 대해서는 application의 필요에 의해 형성되는 일종의 group (하나의 Mobile Social Software)이라고 하였고, 두번째 질문에 대해서는 딱히 구체적인 예를 들 수가 없었다.
더군다나 내가 그자리에서 바로 생각나는 대로 말한 첫번째 질문의 대답은 두번째 질문을 더욱 어렵게 하는 대답이었다.

우리 연구실 선배님들이 일관되게 말하시는 '석사과정의 연구'는 다음과 같다.
1. 본인이 관심있는 주제를 정하고,
2. 그 주제에서 역시 관심있고 해결하고 싶은 시나리오를 정하고,
3. 그 시나리오와 비슷하거나 같은 환경에서 같은 문제를 해결하려고 한 논문들을 찾고,
4. 그중에서 key paper를 정하여 그 논문의 weak point를 찾고,
5. 자신의 scheme을 제시하여 evaluation을 통해 더 나음을 증명하는 것.

1번은 위에서 말했듯이 정해졌고, 2번은 여전히 구체화시키지 못하고 있음을 어제 랩세미나 발표를 하면서 알게 되었다.
3일 후인 다음주 월요일 랩미팅 시간에 교수님께서 proposal 형식으로 key paper를 잡고 문제 정의를 발표하라고 하셨지만, 결과적으로 지금 상황에서는 좀더 구체적인 시나리오가 없으므로 key paper를 찾을 상황이 전혀 아닌 것이다.

결국 별로 한 일이 없다는 얘기를 들을 가능성 90%이지만, 그렇다고 해서 내가 해결하고 싶어하는 것이 무엇인지도 모르면서 아무 논문이나 key paper로 잡을 수는 없는 노릇이다. 내가 정말로 해결해 보고 싶은 '구체적인' 시나리오가 무엇인지 계속 고민해 보자...



반응형
블로그 이미지

Bryan_

,
반응형
(VS2005깔린 폴더)\VC\lib 에 필요한 라이브러리 복사,
VS2005 실행해서 프로젝트 열고,

 - 프로젝트 --> [프로젝트 이름] 속성...
 - 구성 속성 --> 링커 --> 입력
 - 오른쪽에 보이는 내용 중에 맨 위에 '추가 종속성' 옆에 입력칸에 원하는 라이브러리 파일을 띄어쓰기로 구분하여 써줄 것.

반응형
블로그 이미지

Bryan_

,
반응형
Visual Studio 2005에서 Windows Mobile 5.0 프로젝트를 만들고, 그걸 실제 PDA에 올려서 바로 실행하면, 콘솔 어플리케이션으로 되어 있어도 화면에서는 아무것도 볼 수 없다. Windows CE(Mobile) 계열에는 기본적으로 콘솔 창이 없기 때문이다.

대신에, PDA와 PC를 연결해 놓고 Visual Studio에서 디버그를 하면 "출력" 창을 통해 printf로 찍히는 메세지를 볼 수 있다. 이건 정말 많은 도움이 된다.

그.런.데,
분명히 printf를 통해 특정 문자열을 출력하도록 해 놨는데도 아무 반응도 없이 printf를 그냥 지나가 버리는 경우가 있다.
왜 그런지 알 수가 없어서 string 타입으로 되어 있는 변수를 char*로 변환도 해보고, char[1000]로 만들어서 직접 복사해 넣어보기도 하고, 별별 짓을 다 했는데도 유독 그 문자열만 찍히지 않는 거다.

뭥미...
물론 cout을 쓰니 출력'만큼은' 잘 해 주었다. 하지만 cout으로 찍히는 메세지를 출력창을 통해서 보면 느릿느릿, 심지어 내 타자속도보다도 느리게 출력해 주어서 도저히 쓸 수가 없었다. 여러 대의 PDA로 서로 Wi-Fi를 통해 메세지를 주고받으며 테스트하기 때문에 이놈의 cout 메시지 보다가 다른 기기들과 속도가 안맞아서 제대로 진행이 안되기 때문이다.

네이버에서는 당연히 검색해도 안나오고,
(모바일 개발환경 관련된 글 자체가 별로 없더라 ㅠㅠ)
구글에서 영어로 검색하다가 증거가 유력한 글 발견!

"WINCE 5.0 printf string length limitation."

... ㅠ_ㅠ
256글자가 넘어가는 문자열은 소리소문 없이 그냥 무시당한다고 한다.
아아아아아앙ㄹ랑ㄴㅁㄹㄴㄻㄹㄷㄹㄷㅈㄴㄷㅁㄴㅇ
다른 모바일 플랫폼의 개발환경은 어떤지 모르지만, 보통의 win32 개발환경보다는 여러가지로 열악하다. ㅠㅠ

반응형
블로그 이미지

Bryan_

,