2011년 3월 30일 수요일

Hungarian Notation

link: http://en.wikipedia.org/wiki/Hungarian_notation

한마디로 "코딩스타일"이구만.
예를 들면,

  • g_nWheels : member of a global namespace, integer
  • m_nWheels : member of a structure/class, integer
  • m_wheels : member of a structure/class
  • s_wheels : static member of a class
  • _wheels : local variable


음.. 이런 게 있었구나.
좀 더 일찍 알았으면 좋았을 걸.

그리고 주호형이랑 SVN 서버 사용해보면서
정보보호에도 적용시켜봐야겠다.

Sayz me (영어문장 발음 프로그램)

link: http://sayzme.sourceforge.net/
link2: http://www.youtube.com/watch?v=lpgSQAItU8I


영어 발표하는데 억양을 모르겠길래
한번 프리웨어를 써보려고 다운 받았다.
괜찮으려나? 나보단 뭐 ㅋㅋ

근데 홈페이지가 한 5초 정도 지나면
다른 도메인으로 링크되면서 페이지를 찾지 못한다.
음.. 잘 모르겠지만 다음번엔 다운받기 힘들지도 모르려나.


[설치방법]

Microsoft Speech API 4.0 Click.        http://sayzme.sourceforge.net/spchapi.exe
Microsoft synthetic voices Click.        http://sayzme.sourceforge.net/msttsl.exe
Download from Sourceforge Click.    http://sourceforge.net/project/showfiles.php?group_id=67592

2011년 3월 29일 화요일

시간이 모잘라요..

OOP는 수업시간에 다 끝내고 간간히 나오는 숙제에 부담은 없다.
이산수학은 그렇게 어려운 건 아니지만 PPT와 숙제가 꽤 있다.
계산이론은 수업이나 교재를 읽는 것도 그렇지만 말씀하신 과제도 하고 싶고.
정보보호. ㅎㅎ 교재 읽기나 수업은 아직 멍하지만 프로젝트는 꽤 재밌을 듯.
IP는 맘잡고 시간잡고 OS처럼 깊이 읽으며 공부해야 할 시간이 필요.
AI야 뭐 6차 과제까지 있는 건 이미 알고 있던 사실이고.

사실.. 모든 과목이 재미있긴한데,
시간이 턱없이 부족하다.
버스타고 왔다갔다 하는 시간밖엔 영어공부할 시간도 딱히 없을 정도니깐.

요즘은 게임도 안하는데..
요즘은 농구도 줄이는데..
요즘은 밤도 잘새는데..

시간이 모자란 건 아무래도 공부가 너무 재밌어서인가보다.
그래도 공부가 목적이 되진 말자.

2011년 3월 28일 월요일

Perl :: C 속에 심어넣기

link: http://perldoc.perl.org/perlembed.html

요새 자주 애용하게 되는 페이지.
영어를 좀 더 사랑해야겠습니다.

Perl :: File Handling

link: http://www.pageresource.com/cgirec/ptut14.htm

file open, close, read, write, 거시기 등등

내 생애 첫 쓸모있는 perl code

펄을 유용하게 썼다는 것에 기분이 좋고,
새벽 5시가 되도록 졸리지도 않고 코딩에 시간을 보낸 것도 기분이 좋고,
내일 수업 들을 때 졸리지만 않음 최고겠다.


---------------------------------------------------------------------------------
#AI_HW2.c
#목적: 텍스트 파일의 문자열을 원하는 문자열로 교체

---------------------------------------------------------------------------------

...
...
system("interp subs.pl");


---------------------------------------------------------------------------------
#subs.pl
#목적: AI_HW1.c 파일이 perl interpreter를 로드하여 

          subs.pl 내부의 서브루틴 subs를 수행함
---------------------------------------------------------------------------------

sub subs{
my $data_file="AIDatabase.txt"; #read file
my $changed_file="output.txt"; #write file
open(DAT, $data_file) || die("Could not open file!");
open(OUT, ">$changed_file") || die("Could not open file!");

while() { #AIDatabase.txt에서 한줄씩 받아와서
my $output = $_; #$output 변수에 넣고

#미니파로 파싱할 파일 생성
#학과이름 수정
$output =~ s/ university / univ\. /xig; #university -> univ로 변경
...
...

$output =~ s/ japanese \s* literature /JAPANESE/xig; #일문과
$output =~ s/ physics /PHYSICS/xig; #물리학과
$output =~ s/ animal \s* premed /ANIMAL/xig; #수의예과
$output =~ s/ engineering \s* college /ENGINEERING/xig; #공과대학
$output =~ s/ bio \s* technology /BIOTECH/xig; #생명공학
...
...

print OUT $output; #$output을 output.txt라는 새로운 파일에 저장
}
close(OUT); #output.txt 파일을 닫음
close(DAT); #AIDatabase.txt 파일을 닫음
}


---------------------------------------------------------------------------------
#interp.c
#목적: interp.exe 파일의 src file 

        -> c에서 perl interpreter를 불러 subroutine을 수행
---------------------------------------------------------------------------------

#include
#include

static PerlInterpreter *my_perl;


int main(int argc, char **argv, char **env)
{
char* args = { NULL };
PERL_SYS_INIT3(&argc, &argv, &env);
my_perl = perl_alloc();
perl_construct(my_perl);

perl_parse(my_perl, NULL, argc, argv, NULL);
PL_exit_flags |= PERL_EXIT_DESTRUCT_END;


//Running Perl Actually
perl_run(my_perl);
call_argv("subs", G_DISCARD | G_NOARGS, args);

perl_destruct(my_perl);
perl_free(my_perl);
PERL_SYS_TERM();
}

2011년 3월 27일 일요일

Java Inner Class

link: http://www.ezslookingaround.com/blog/tech/?no=1240

내부클래스 타입
(1) Static Class
(2) Member Class
(3) Local Class
(4) Anonymous Class

필요할 때마다 한번씩 참조해야 할 듯.
코딩하며 사용하지 않으면 확실히 이해하지 못할 거 같다.

C++ Static function

link: http://www.exforsys.com/tutorials/c-plus-plus/c-plus-plus-static-functions.html

Java에서와 같이 Object 생성 없이 Class name만으로 접근가능하다.
다만 Java에서는 다른 메소드 접근과 같이 아래와 같이 접근하는데에 반해,

(Java) className.methodName();

C++에서는 .(dot)이 아니라 ::(scope resolution operator)로 접근한다.

(C++) className::functionName();


(static 의 기본적인 의미는 프로그램 실행시 메모리에 로드될 때,
 딱 한번만 초기화되어 스택처럼 생성과 소멸을 반복하지 않는다는 것이다.)