2009. 6. 26. 21:57

MFC나 ATL에 있는 컨테이너들을 주로 쓰다가 STL로 넘어가려니 MFC의 편리한 함수들이 아쉽습니다.

특히나 CString 의 Format이나 Tokenizer, Replace 등의 함수가 std::string 에선 아예 없거나 동작 방식이 다르다보니..코딩하다가 버벅이는데..

틈틈히 CString의 함수들을 std::string에 이식한 유틸들을 만들던가 해야겠네요. :)


Posted by envi
2008. 12. 25. 18:20
Android App 개발을 해보려고 Eclipse 를 실행시켰습니다. 그런데....


아악... 실행도 안되는건가..

classpath 와 path 를 점검해봐도 별 문제는 없어보입니다..

인터넷을 뒤져보니...

원인은 메모리 부족으로 JVM이 종료가 된다는 글이 보입니다.
eclipse.ini 파일의 -Xmx512m를 -Xmx256m 정도로 변경하는 걸로 해결이 된다고 합니다.
그런데.. 이미 256m 으로 되어있네요 [...]

다른 글을 찾아봅니다.

...--launcher.XXMaxPermSize 옵션을 제거하면 된다는 글이 보입니다.... 적용 후 실행해봤지만 역시나 안됩니다.
메모리 부족 문제는 아닌거 같네요.

JVM path 가 잘못되어있는건 아닌가하고 Program files 의 java 디렉토리로 가봤는데.. java 가 여러곳에 들어있네요.
JVM 경로를 강제로 설정하는 방법이 없나하고 찾아 추가를 합니다.

-vm
C:\Program Files\Java\jdk1.6.0_12\bin\javaw.exe

추가 후 다행히 실행이 잘되네요. ;)

이제 Android App 개발에 대해 연구나 해봐야겠습니다.
Posted by envi
2008. 12. 15. 01:14

요즘 다시 Topcoder 나 UVa 문제들을 하루에 한문제씩 풀고있습니다.
기존엔 Visual C++ 로 풀었는데 emacs에 익숙해질겸해서 에디터를 갈아치웠죠..

그런데 Visual C++ 처럼 단축키만으로 컴파일을 하고 실행이 안되니 너무 불편합니다 T.T

문제를 풀고 컴파일 여부와 실행해서 Test Case 를 입력 후 답이 제대로 나오는지 확인해야되는데.. 이게 금방금방 안되니.. ;(

하지만!! emacs 는 extensible! customizable! 한 에디터 아니겠습니까? ^^

그래서 그 단축키만으로 컴파일!을 하고 실행! 을 할수있게 기능을 추가했습니다.

; 현재 소스파일명으로 컴파일을 합니다. (ex. source.cpp -> source)
(defun compile-filename()
  "Compile buffer filename"
  (interactive)
  (let (compileString fileName))
  (setq fileName (file-name-nondirectory buffer-file-name))
  (setq fileName (file-name-sans-extension fileName))
  (setq compileString (format "g++ %s -o %s" buffer-file-name fileName))
  (compile compileString)
)
; 창을 두개로 나눠 쉘을 띄운 후 컴파일된 파일을 실행합니다.
(defun execute-filename ()
  "Run ./filename"
  (interactive)
  (let ((fileName (file-name-nondirectory buffer-file-name)))
    (setq fileName (format "./%s" (file-name-sans-extension fileName)))
    (setq windowHeight (- (window-height) 10))
    (split-window-vertically windowHeight)
    (other-window 1)
    (shell)
    (sit-for 0.1)
    (insert fileName)
    (comint-send-input)
    ) 
  )
;; M-x compile-filename 로 입력하니 불편하니 Ctrl+c c 로 컴파일 할수있게합니다.
(global-set-key [(control c) ?c] 'compile-filename)

;; 역시 실행시도 Ctrl+c x 로 실행할 수 있게 합니다.
(global-set-key [(control c) ?x] 'execute-filename)


elisp 를 하나도 모르던 상태라 http://www.gnu.org/software/emacs/manual/html_mono/elisp.html 와 KLDP, 구글링도 해가며 열심히 만들었습니다. 하루종일 삽질좀 하니 이제 elisp 를 좀 알겠네요.

결국 삽질 끝에 좀 편하게 emacs를 쓸수 있겠군요... 열심히 문제만 풀 일만 남았습니다. ^^

내공이 좀 더 쌓이면 푸는 문제들도 문제와 풀이를 올려봐야겠네요.
Posted by envi
2008. 10. 31. 12:55
#!/usr/bin/perl

use warnings;
use strict;
use LWP::Simple;
use threads ('yield',
             'stack_size' => 64*4096,
             'exit' => 'threads_only',
             'stringify');

my $thread;
my $episode = 0;

while (1)
{
    $episode++;
    my $fileTitle = "0" x (3-length($episode))."$episode";
    next if -e "$fileTitle.jpg";

    my $contents = get("http://www.gamtoon.com/NEW/TF/ctn99/view.gam?num=$episode");

    if ($contents ne "")
    {
        if ($contents =~ m/<img src="down\/(.*).\w\w\w"><\/center>/g)
        {
            print "now downloding: $episode\n";
            my $jpg = get("http://www.gamtoon.com/NEW/TF/ctn99/down/$1.jpg");
            open my $out, '>', "$fileTitle.jpg";
            binmode $out;
            print $out $jpg;
        }
    }
    else
    {
        last;
    }
}


amorette님이 소개해주신 syntaxhighting 스크립트.. 괜찮아보여서 스킨에 붙이고 잠시 테스트..를 하려고 했는데.. (http://code.google.com/p/syntaxhighlighter/)
지원 언어에 perl이 없어서 좌절.. 하지만 역시나 검색해보니 누군가 펄용 스크립트도 만들어놨군요 ;) (http://code.google.com/p/syntaxhighlighter/issues/detail?id=113&q=perl)

이히.. 잘되는구나

Posted by envi
2008. 10. 9. 21:18
...회사에서 IRC 눈팅을 하다가 네이버 웹툰 다운로더에 대한 이야기가 나오길래.. 대충 한번 만들어봤습니다.

월화수목금에 나오는 만화들을 대상으로 했구요. 스크립트 실행시 각 만화가 디렉토리 별로 분류되어 다운로드가 되게 만들었습니다.

근데 C 에 익숙해지니 뭔 언어를 해도 C 코드처럼 나오네요 T.T.. 자주 만들고 자주 소스를 보면서 Perl스러운 문법을 구사할 수 있도록 해야겠습니다.. ~_~

추가해야 할 것 :
1. 디렉토리 이름 Unicode 변환
2. 여러개로 나뉜 그림파일 하나로 합치기
3. 다운받다가 중간에 빼먹는 것들이 발생.. (왜 그러지.. thread 문제인듯한데..)


네이버 웹툰 다운로더 소스보기


Posted by envi
2008. 9. 28. 03:17
오늘 리눅서라면 많이들 쓰는 yakuake를 깔고 '오오오..' 하며 혼자 좋다고 불타올랐습니다 :)
그런데 쓰다가 뭔가 부족한 느낌이 들어 비슷한 유틸이 뭐 있나 찾아봤는데 gnome 용의 tilda 라는 유틸이 있더군요. yakuake 보다 더 자연스러워보이고 (?) 옵션도 많았습니다.

그런데... 명령창에 아무 것도 없을때 backspace 를 누르면 창이 깜빡거리더군요.. 원인을 찾다가 다음 옵션을 고치니 해결됬습니다..

옵션의 General Tab 에서 Audible Terminal Bell 를 enable 시키면 깜빡임 현상이 사라집니다. 오늘도 한건 해결했군요. ~_~
Posted by envi
2008. 9. 16. 22:21
우여 곡절 끝에 X61 에 리눅스를 설치한 후 원활한 리눅스 라이프를 위해(?) VirtualBox 로 윈도우를 깔기로 했습니다. (...애니 다운받아야 되거든요 잇힝)

일단 virtualbox 와 를  설치 후 각종 세팅 후 가상 머신을 하나 띄어봅니다..

그런데...


The VirtualBox kernel driver is not accessible to the current user. Make sure that the user has write permissions for /dev/vboxdrv by adding them to the vboxusers groups. You will need to logout for the change to take effect..
VBox status code: -1909 (VERR_VM_DRIVER_NOT_ACCESSIBLE).

...
...

아.. 히밤 에러구나

고치는 방법은 매우 간단합니다. /etc/group 파일을 열어 vboxusers 부분에 계정을 추가하면 됩니다.

vboxusers:x:125:계정이름,계정이름2

이런 식으로요 ;)
그 후 재부팅을 하거나 logout 후 다시 login 하면 됩니다.
Posted by envi
2008. 9. 7. 23:05
오늘 하루종일 vim 과 emacs 사이에서 무엇을 써야하나 계속 고민을 했습니다.

perl 을 제대로 공부하기 전에 에디터를 하나 골라서 사용법을 제대로 익혀두고 쓰는게 좋을거 같아서요 ;)

사실 그동안 emacs 를 써왔는데 수박 겉핥기식으로 쓰는 기능만 썼던터라.. 각 에디터의 장단점이 뭔지 모르네요.

그래서 우선 인터넷을 뒤져가며 사람들이 특정 에디터를 왜 쓰는지를 찾아봤는데..

어째.. 그 에디터를 왜 쓰는지 장단점을 다룬 글을 별로 없습니다. (내가 못찾는건가?)

뭐 대략.. 게시물에 써져있는 '그 에디터를 쓰는 이유'라고는 '처음 쓰던거니까 익숙해서'.. 정도?

...아무래도 일단 둘다 써보고 판단해야될거 같네요..

하아 머리 아픕니다.. OTL
Posted by envi
2008. 9. 4. 10:04
회사에서 집에 있는 컴에 접근할 일이 많아서 (자료접근 정도?) WOL 을 원격부팅을 하려고 했는데 자꾸 안되길래 '젠장' 한마디 날리고 그만뒀는데...

아침에 자다깨서 생각해보니 컴퓨터에 전원 공급이 끊겼는데 어떻게 NIC 이 어떻게 매직 패킷을 받는걸까란 생각이 들었다.

그래서 알고보니 OS 상에서 종료시 설정을 하여 NIC 을 대기모드 비슷하게 전원을 남기는 옵션이 있다더라.

방법은 Mainboard가 MSI P35 Neo2-FR 기준일때 (Realtek 칩셋에 해당됨)

1. 바이오스 상에서 웨이크업 이벤트 부분의 PCI DEVICE 및 PCI-E 부분을 Enabled
2. 시스템 등록정보 -> 장치 관리자 -> 네트워크 어댑터 속성에서 고급 -> WAKE-ON-LAN AFTER SHUTDOWN 를 Enabled
3. [전원관리] 탭에서 
(1)전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음
(2)이 장치로 컴퓨터를 대기상태에서 빠져나오게함
(3)관리 스테이션에서만 대기 모드 상태의 컴퓨터를 해제 시킬 수 있음
     세가지 항목을 모두 '사용'에 체크.

로 하고 OS를 정상 종료 후 매직 패킷을 날리면 된다.

P.S: 절전모드나 최대절전모드로 해도 된다.
Posted by envi
2008. 1. 10. 15:55
There are really many ways to do it.

But, the simplest one is just this -


Note that as discussed in this post, CStringA is a template specialization of class CStringT for type char avaílable with Visual Studio 7.x and better.



CString 을 string 으로 변환할 일이 있었는데 VS 6.0 에서는 먹히던 방법이 VS 2005 에서 안먹히길래 다른 방법을 찾아봤습니다.

구글링을 해보니 금새 나오는군요 ;)
Posted by envi