본문 바로가기

Robotics/Software Tech.

(148)
valgrind를 이용한 c++ 메모리 누수(memory leak) 검사 방법 현재 본인의 개발 환경은 아래와 같다. 개발환경 : Eclipse CDT, GCC 프로그램을 구성하고 컴파일과 링크의 오류가 없어서 잘 동작하고 있는것만 같은 프로그램에서..반드시 체크해야 할 부분이 메모리 누수이다.동적으로 메모리를 할당하고 해제하는 과정에서 제대로 처리를 하지 못해서 발생하거나, 사용하는 특정 라이브러리 자체에서 발생하고 있거나, 변수 캐스팅 오류등 다양한 원인에 의해서 프로그램이 종료될때 메모리를 제대로 시스템에 반환하지 못할경우에 어떤일이 발생할지 알수가 없게된다. 이번에 사용해본것은 valgrind라는 프로그램이다. 설치는 $ sudo apt-get install valgrind 로 하면 되고, 사용하는 방법은 실행 프로그램을 만들고, 실행을 아래와 같이 하면 된다. $ valg..
STL map에서 insert와 [] operator 사용시 주의사항 보통 map을 사용할때, insert 보다는 간편하게 [] operator를 사용했다. Scott Meyers의 'Effective STL'이라는 책을 보니 "map에 추가를 할 때는 insert를, 이미 저장된 데이터의 갱신은 [] operator가 더 효율적"이라고 한다. 참고. ex) map testmap;testmap.insert(map::value_type(k, v)).first->second = v; //k=key, v=value 또는 testmap.insert(pair(k,v));
ubuntu 13.10에서 GPU Lockup이 발생할때. ubuntu 13.10을 설치하고, gnome을 설치했다. 이게 가끔씩 GPU Lockup이 발생하면서 먹통이 된다. 구글링을 해보니, 적당한 해결방법을 알려준다. $ sudo apt-get install nvidia-current 로 nvidia 그래픽 드라이버를 설치하면 된단다.. ubuntu를 최초에 설치하면 그래픽 드라이버가 호환되는 다른 드라이버로 설치되어 있는데, 이것을 적당한 Nvidia 드라이버 패키지를 설치하는 것으로 교체가 되면, 괜찮아 진단다.
소프트웨어 아키텍쳐(software architecture) 관련 자료 내 주변만 봐도 코더는 많다. 하지만 아키텍터는 많이 없다. 전공이 컴퓨터공학이 아닌탓이기도 하지만, 아키텍터라는게 꼭 컴퓨터 공학을 전공한 사람만이 관심을 가지거나, 공부하면 좋은게 아니다. 대기업에서 소프트웨어 관련 인력을 뽑을때도, 보통 전기/전자/컴퓨터를 동시에 표기하는 것을 보면, 이 경계도 사실 그 커리큘럼의 깊이의 문제지 다르게 봐서는 안될듯 하다.. 적어도 이제는.. 어쨋거나.. 최근들어 스마트폰, 스마트 디바이스가 IT의 빅 이슈가 되면서 LG나 삼성.. 코더를 비롯한 아키텍터를 많이 찾고 있다. 삼성이 바다와 타이젠을 내세워서 기존의 안드로이드나 윈도우에 대항(?)하여 소프트웨어 플랫폼 의존도를 줄일려고 노력하는 것을 시작으로, 이 분야의 중요성이 더 크게 작용하고 있다고 본다. 국내에..
TCP/IP 동기통신(boost, winsock 버젼) 동기(sync)통신이라하면, Server와 Client간에 데이터의 송수신이 악수와 같이, 테니스 코트에서 공을 주고 받는 것과 같이 서버는 클라이언트가 요청하면 보내고, 클라이언트는 서버가 보내줄때까지 커넥션 상태를 holding하고, 다른 데이터로부터의 수신을 blocking한다. 통신 상태에 따라 bottleneck으로 작용하거나 비효율적인 부분이 있지만, 동기를 맞춰야 하는 네트워크 시스템에서는 반드시 필요할 것이다. boost의 ASIO로 코드를 만들어뒀다가, 문제가 생겨서 winsock으로 다시 만들었다. 보통 window상에서 visual studio 2012를 사용하는데, 사용하는 boost 1.51버젼이 아직 visual studio 2012에 잘 붙지 않는다. visual studio ..
OLC(Open software Learning Center) 웹사이트 TED, Coursera, udacity... 이들의 공통점은 open과 share를 모두 지향하고 있다는 점이다. 우리나라는 이들에 비해서 다소 보수적이지만, 오늘 전자신문에서 우연히 글을 보고 가입을 하게된 사이트인데, 일부는 유료강의 이지만 가격이 저렴하고, 내용도 괜찮다. 좋은 시도이다.맨날 open, share를 외치고 있지만, 공개는 빼앗기는 것으로 여겨지는지.. 남에것을 잘 쓰고는 있지만, 내꺼는 감춘다. 어쨋듯.. http://olc.oss.kr/main.jsp 컨텐츠만 많이 확보하면 좋은 웹사이트로 태어날 것 같다. 사족이지만,그런데.. 우리나라 웹사이트는 한결같이 프레임이 비슷하다.. 뭔가 첫페이지부터 많은 정보를 포함하고 있고, 갑갑하고, 복잡하다. 웹페이지 디자이너가 한 사람 뿐인가..
C++ Linear algebra library C++ 기반 선형대수 라이브러리. 속도도 괜찮다고 함. 참고. http://arma.sourceforge.net
python for windows에 igraph 설치시 pycairo 설치방법 이전에 python에서 그래프로 데이터를 표현할 때 networkx를 썼었는데, networkx도 괜찮은데, igraph가 더 괜찮다고 해서 설치를 해봤다. 매뉴얼만 보면 어렵지 않다. installer를 이용해서 한큐에 딱 설치되면 좋겠지만.. 누군가 조금만 고생해주면 좋겠는데 말이지..ㅋㅋ 이 package가 다양한 package와 연동되서 돌아가기 때문에 좀 그런가보다.. 어쨌든.. 설치는 아래와 같이.. igraph가 그래프를 그리는데 cario라는 라이브러리를 사용하는데 1. http://ftp.acc.umu.se/pub/gnome/binaries/win32/pycairo/1.8/ 에서 python 2.6 또는 2.7 버젼용 installer를 다운받아서 설치한다. 2. pycairo를 설치한 ..