목록프로그래밍/개발이야기 (5)
일상에서 멍때리기
뭘 해볼까? 고민하다가 물결 효과를 구현해보기로 했습니다. 터치나 클릭을 하면 그 지점부터 물결이 치며 일렁거리는 효과를 생각하고 검색에 들어갔습니다. SGI 에서 발견할 수 있었는데요 http://www.sgi.com/products/software/opengl/examples/more_samples/ 해당 링크에 가시면 OpenGL의 많은 sample들을 확인 하실 수 있습니다. 이 많은 samples중에서 distort라는 이름으로된 프로젝트를 볼 수 있군요. 해당 소스를 다운받아서 Mac OSX로 포팅해 보았습니다.cocoa framework (NSOpenGLView) 사용하였으며, ripple소스는 대부분 그대로 사용하였습니다.아래 영상은 그 결과물입니다. 모든 코드를 분석하지는 않았으며, 대략..
디렉터리의 용도에 대하여 알아보겠습다. app 이 디렉토리는 애플리케이션 컴포넌트를 담고 있다. 즉 모델. 뷰, 컴트롤러에 해당하는 각각의 디렉토리가 존재한다. components 이 디렉토리는 모델, 뷰, 그리고 컨트롤러를 각각 담당하고 있는 작은 애플리케이션들이 컴포넌트화되어 저장되어 있다. config 이 디렉토리는 레일즈 애플리케이션에 대한 아주 작은 양의 설정 코드들을 담고 있다. 이 설정 코드에는 데이터베이스 설정(database.yml), 레일즈 설정(environment.rb), 웹 라이팅 설정(routers.rb) 등이 포함된다. 또한, environments 디렉토리에 저장된 파일들을 이용하여 테스트, 개발, 서비스(배포)에 관한 세가지 레일즈 환경 설정을 할 수 있다. db 통상적인 ..
필요해서 구현한 source #include#include#include char* rtrim(char*);char* ltrim(char*);char* trim(char*); int main(void){ char test [] = " aaaa "; char * test2; test2 = ltrim(test); printf("test : '%s', test2 : '%s'\n", test, test2); return 0;} char* rtrim(char* _str){ char t[1024]; char* end; strcpy(t, _str); end = t + strlen(t) - 1; while(end != _str && isspace(*end)) --end; *(end + 1) = '\0'; _str = ..
전위전산자와 후위연산자 간단히 보면 전위전산자(++i)는 값이 먼저 증가하고 작업이 수행되며 후위연산자(i++)는 작업이 수행된 후에 값이 증가한다고 배웠다. 간단한 예를 들어보자 * 전위연산자(++i) char a[4] = "abcd"; int i = 0; printf("%c\n", a[++i]);output b 1 *후위연산자(++i) char a[4] = "abcd"; int i = 0; printf("%c\n", a[i++]); printf("%d\n", i); return -1;output a1와 같이 모든 동작 수행후 i는 0->1로 증가되었지만 출력된 문자를 보면 어떻게 동작되었는지 이해가 갈것이다. 그렇다면 속도면에서는 어떠할까? 요즘같이 컴파일러가 좋아진 상황에서는 기본타입(int, fl..
내가 얼마나 무지하면 어지껏 이 차이도 몰랐단 말인가. 약간의 삽질과 구글링을 통해 알아낸 내용이다. 너무도 간단하게 배열 = 포인터 라는 지식이 불러온 삽질이라 할 수 있다. 먼저 두 예제를 보자 1 code char str [ ] = "Hello World" ;str[3] = '3' ;printf ( "%s \n " , str ) ; result Hel3o World 2 code char *str = "Hello World" ;str[3] = '3' ;printf ( "%s \n " , str ) ; result Segmentation Fault (Core Dumped) 코드상 큰 차이가 없어보이지만 선언 부의 작은 차이가 만들어 낸 결과이다. 1번의 char[] 의 경우 local data를 가지는..