반응형

프로그래밍 언어 63

html에서 html tag를 쓸 수 있는가? (I don't like &lt;foo&gt; in <pre>.

웹으로 간단한 프레젠테이션을 만들려고 했더니, html 태그를 쓰는게 무척 귀찮다는 걸 깨달았다. 물론 괜찮은 자바스크립트 유틸리티들이 있으면 쉽게 할 수 있겠지만, 원하는건 메모장 펴놓고 직접 고치는 거였는데... xmp라는 태그가 있었으나, 해당 태그는 표준에서 제외되었다는 사실을 알았다. https://www.w3.org/Bugs/Public/show_bug.cgi?id=12235 ... 와 같은 방법으로 지원하면 안되는건가? :(

[C++] new는 null을 return하는가?

작년에 malloc vs calloc이라는 글을 적었습니다. 그때는 급작스런 궁금증때문에 인터넷 검색+발번역을 했는데, 이번에는 new에 대해 신경쓰지 못했던 부분을 알게되었습니다. 흔히, new 나 malloc으로 메모리를 할당받고 난 후, 제대로 메모리가 할당되었는지 체크를 하지않는 경우가 많습니다. 하지만, 메모리가 부족한 상황은 얼마든지 나올 수 있으므로 체크를 해야 맞겠죠. 그렇다면, 어떻게 체크해야 할까요? 임베디드의 세상에서 malloc으로 메모리를 할당받은 후에는 null인지 확인하는 것이 보편적이라는 이야기를 들었습니다. 그렇다면 new는? C++을 배울때 제대로 공부하신 분들은 이 질문의 답을 정확히 알것입니다. 네, new 는 0을 반환하지 않습니다. 일부러 그렇게 만들지 않는한 말이..

static const char* vs static const char []

오픈소스에 버그를 하나 등록했는데 아래와 같은 Comment를 받았습니다. "this does not go to the .rodata section in the binary; use static const char foo[] instead." 이게 무슨 소린가 하고, 확인을 하기 위해 간단한 프로그램을 작성해보았습니다. ### c++/* file: constchar.cpp * * gcc -S -O0 constchar.cpp -DCONST_POINTER */ #if defined(CONST_POINTER) static const char* name = "hello"; #elif defined(CONST_ARRAY) static const char name[] = "hello"; #else static co..

우분투에서 ccache로 컴파일을 빠르게...

코딩/실행/디버깅의 전환은 매우 빠르게 이뤄져야 합니다. 놀지 말고 일하라! 가 아니라. 흐름을 유지하면서 개발하는게 좋다고 생각하기 때문입니다. 그래서 우연히 ccache란 것을 알게 되어 쓰기로 마음 먹었습니다. 설치는 간단합니다. apt-get install ccache 사용법도 간단합니다. PATH에 /usr/lib/ccache를 걸어주면 됩니다. export PATH=/usr/lib/ccache:$PATH 그럼 컴파일 시간을 비교해보겠습니다. WebKit/Efl 을 다운로드 받아 빌드해서 나온 시간입니다. 각 빌드는 빌드 결과물들을 모두 제거하고 빌드한 것입니다. 1. ccache 없이 풀빌드 real30m38.772s user50m25.953s sys5m55.686s 2. ccache 설치후 ..

POD vs non POD

참고자료 : http://gpgstudy.com/forum/viewtopic.php?t=10148&view=previous 참고자료2 : http://1stpasa.tistory.com/entry/PODPlain-Old-Data-Non-POD 참고자료3 : http://stackoverflow.com/questions/146452/what-are-pod-types-in-c POD (Plain Old Data) 메모리상에 연속적으로 나열되는 단순한 형태의 자료구조를 말한다. C에서 사용하던 built-in type과 built-in type을 묶어서 만들어진 struct 들이 여기에 속한다. class의 경우에는 가상함수가 있거나, 소멸자가 있거나, 할당자가 있으면 POD가 될 수 없다. POD에 해당하는..

[파이썬] 이미지 크기 변환 배치

아이폰용 이미지를 안드로이드용으로 바꾸기 위해 예섬에게 부탁했더니.. 스크립트를 만들어서 줬다 -_-; 왜 내가 만들 생각을 못했을까? ;; #!/user/bin/python import os import sys from PIL import Image def walk(org_dir_path, new_dir_path): print "walk" + org_dir_path + " / " + new_dir_path for root, dirs, files in os.walk(org_dir_path): for name in files : img_path = os.path.join(root, name) print 'resized file = ' + img_path img = Image.open(img_path) im..

memwatch

메모리 누수를 측정하는 툴 다운로드 URL: http://www.linkdata.se/sourcecode/memwatch/ http://blog.naver.com/PostView.nhn?blogId=lowcarpet&logNo=70029068932&redirect=Dlog&widgetTypeCall=true 간단한 예제로 실험한 결과 memwatch.log 1 2 ============= MEMWATCH 2.71 Copyright (C) 1992-1999 Johan Lindh ============= 3 4 Started at Tue May 24 22:08:35 2011 5 6 Modes: __STDC__ 64-bit mwDWORD==(unsigned long) 7 mwROUNDALLOC==8 sizeo..

GCC옵션: finstrument-functions

추가 조사 : -finstrument-functions-exclude-file-list instrument-functions 옵션은 함수의 시작과 끝에 다른 함수를 삽입해주는 옵션입니다. 용도는 다양할 것 같지만, 디버깅이 어려운 환경 - 예를 들어 임베디드, 멀티 프로세스 환경, 서버-클라이언트 구조 등에서 큰 도움이 될 것 같습니다. 그 외 많은 프로파일링 툴이 이것을 사용하여 나름의 기능을 구현하는 것 같습니다. 사용 방법은 무척 간단합니다. __cyg_profile_func_enter 와 __cyg_profile_func_exit는 instrument 옵션이 켜졌을 때 gcc가 연결해주는 함수입니다. 이 함수들은 다른 함수들과 다르게 no_instrument_function이라는 attribute..

반응형