본문 바로가기

Programming

git commit message guideline Rules for a great git commit message styleSeparate subject from body with a blank lineDo not end the subject line with a periodCapitalize the subject line and each paragraphUse the imperative mood in the subject lineWrap lines at 72 charactersUse the body to explain what and why you have done something. In most cases, you can leave out details about how a change has been made. Information in com.. 더보기
shell script #1 #!/bin/bash FILE_NAME="testfile"FILE_SIZE=("100k" "200k" "300k") for f_size in "${FILE_SIZE[@]}"; dodd if=/dev/zero of="./sdb1/"$FILE_NAME"_"$f_size".ssf" bs=$f_size count=1dd if=/dev/zero of="./sdb2/"$FILE_NAME"_"$f_size".mdb" bs="1024" count=1dd if=/dev/zero of="./sdb2/"$FILE_NAME"_"$f_size".eve" bs="1024" count=1dd if=/dev/zero of="./sdb2/"$FILE_NAME"_"$f_size".db2" bs="1024" count=1done #!/b.. 더보기
cJSON Programming Project에서 json을 사용하기로 하였습니다.그리하여 어떤 json parser를 사용할까 하다가 아래의 cjson parser 를 사용하기로 하였습니다. http://sourceforge.net/projects/cjson/ 이유는 가장 간단하고 사용하기 편리한 듯 하였기 때문입니다.개인적으로 simple is the best 라는 믿음이 아주 강하기 때문입니다. 아시다시피 json은 간단히 key = value 라는 구조를 가지고 있습니다. cJSON.h 파일을 열어보시면 다음과 같이 매크로들을 확인할 수가 있습니다.아마 아래 미리 정의된 매크로들을 주로 사용할 것입니다. /* Macros for creating things quickly. */#define cJSON_AddNullToObject.. 더보기
scons 개념 및 사용법 AllSeen Alliance의 AllJoyn을 컴파일 하기 위해서 scons을 사용해야 된다는 것을 알게 되었고,그 필요에 의하여 scons에 관련해서 잠깐 조사 및 공부한 내용을 정리할 목적입니다. scons 공식 홈페이지: http://www.scons.org/scons 기본 사용법: http://egloos.zum.com/bruceKIM/v/3399880 SConstructor 사용법: http://pkgpl.org/2014/07/27/sconstruct_basic/scons wiki: http://en.wikipedia.org/wiki/SCons, http://ko.wikipedia.org/wiki/SCons 가장 기본적으로 생각할 것은 scons 는 Python 기반의 빌드툴입니다.등장한지는 .. 더보기
DHCP Probe 소스 코드 이전에 작성했던 현재 네트워크에서 DHCP 서버를 확인하는 글을 참고하여http://sound79.tistory.com/169 간단하게 DHCP Probe 코드를 작성해 보았습니다.소스코드를 보면 간단합니다. DHCP 패킷을 하나 만들어서 전송한 후 DHCP Offer 메시지를 일정 시간 기다립니다.DHCP Offer 메시지를 수신하면 현재 네트워크에 DHCP Server가 존재한다고 판단하도록 되어 있습니다. DHCPProbe.h /* * DhcpProbe.h * * Created on: 2014. 8. 17. * Author: sound79@gmail.com */ #ifndef DHCPPROBE_H_ #define DHCPPROBE_H_ #include #include #include #include.. 더보기
현재 네트워크에서 DHCP 서버가 동작되고 있는지 확인? 현재 연결된 네트워크에서 DHCP 서버가 동작 되고 있는지? 즉 이미 DHCP 서버가 동작 되고 있는 네트워크 인지를 판단해야 할 필요성이 생겼다. 먼저 DHCP 프로토콜에 대해서 간단히 살펴 보면 다음과 같습니다. DHCP: http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol (figure1 refer wikipedia) 위의 그림과 같이 (1). Client -> Server 로 DISCOVERY를 Broadcast : DHCP 서버가 있는지 패킷을 브로드 캐스팅한다. (2). Server -> Client에서 OFFER로 Unicast : DHCP 서버는 DISCOVERY 메시지를 받으면 해당 Client에게 이 IP 사용할래? 라고 .. 더보기
gsoap (2) 참고로 제가 여기 적는 gsoap의 글들은 대부분 http://www.cs.fsu.edu/~engelen/soap.html 의 Document의 User Guide를 참고하고 있습니다.어떻게 보면 간단히 예제들을 한번 돌려보고 이해한 만큼 적는 것입니다. 오늘은 간단히 gsoap를 이용하여 웹서버의 CGI 를 구현해 보고자 합니다. 물론 gsoap의 기본 예제 그대로... ^^ 1. 먼저 다음과 같은 헤더 파일을 만듭니다.// File: currentTime.h //gsoap ns service name: currentTime //gsoap ns service namespace: urn:currentTime //gsoap ns service location: http://www.yourdomain.com.. 더보기
gsoap (1) gsoap 에 대해서 기본적인 것 부터 시작해보자 http://www.cs.fsu.edu/~engelen/soap.html 본 글에서부터는 오로지 C++에 대해서만 언급한다. 물론 gsoap 은 C 로도 프로그래밍이 가능하지만, C++로 하는것이 왠지..그리고 soap에 대해서는 다루지 않는다. gsoap을 하기위해서는 기본적으로 wsdl2h와 soapcpp2를 이용하여 wsdl, schema로부터 데이터를 바인딩하고(헤더파일 생성) soapcpp2로 stub, skeleton 코드(서버, 클라이언트 베이스) 를 생성한다는 것... ^^The wsdl2h WSDL/schema importer and data binding mapper tool.The soapcpp2 stub/skeleton compile.. 더보기
stub & skeleton 이해하기 간단히....stub은 클라이언트에 위치skeleton 은 서버에 위치한다고 보면 된다. JAVA의 RMI를 기준으로 아래 원문을 참조해 보자 원문:The rmic compiler generates two files: a stub and a skeleton. The stub resides on the client machine and the skeleton resides on the server machine. The stub and skeleton are comprised of Java code that provides the necessary link between the two objects.When a client invokes a server method, the JVM looks at the .. 더보기
[C Programming] Struct Hack 먼저 다음의 구조체에 대해서 어떻게 생각하는가요?... struct SHack{int A;int B;char array[0];} ; 컴파일시 char array[0] 와 같은 배열의 실제 크기는 얼마로 할당될것인가? 결론부터 말하자면.. "Struct Hack"은 구조체에서 가변길이의 멤버를 사용하기 위한 테크닉이다. 실제 사용시 아래와 같이 먼저 메모리를 할당한 후 사용을 할 수 있다.struct SHack *e = malloc(sizeof(*e) + sizeof(char) + ARRAY_SIZE); 이는 다음과 같은 구조체와 같다. struct SHack{int A;int B;char array[ARRAY_SIZE]; }; gcc 는 이와 같은 메모리를 A, B 에 이어서 array를 연속적으로 할당.. 더보기
Software Versioning (소프트웨어 버전규칙) Software를 개발하다 보면 Release가 될때쯤이면 언제나 신경 쓰이는 부분이 버전이다.한번 배포하고 끝내는 거라면 그냥 1.0 혹은 버전없이 해도 되겠지만, 과연 그러한 S/W가 있을 것인가???앞으로 계속 신규 기능을 추가해야 될것이고 계속적인 패치 또한 이루어져야 한다. 그러므로 의미 있는 버전을 고민하게 된다. 물론 현재 자신의 소속에서 정형화된 소프트웨어 버전 규칙이 존재할 것이다. 구글링에 검색해 보니... Wikipedia, Stackoverflow에 괜찮은 내용이 있어서 아래 링크.http://en.wikipedia.org/wiki/Software_versioninghttp://stackoverflow.com/questions/2864448/best-practice-software-.. 더보기