본문 바로가기

Development109

C++ STL의 Vector 사용법 C 언어를 다룰 때 필요한 마인드 : 나는 기계를 제어하는 중이다. 진짜 멍청한 기계다. 정적할당은 해제할 필요가 없고 일반적으로 할당 속도가 더 빠르다.동적할당은 메모리 오버플로우 문제가 발생할 수 있고, 메모리가 연속적으로 할당되지 않을 수 있어 메모리 엑세스 속도가 느릴 수 있다. 따라서 new , delete 방식의 동적할당을 쓰지말고 vector를 써라.(vector를 1차원)그러면 heap corrupt 문제가 발생하지 않고, 메모리 연속성을 보장 받을 수 있다. - 2차원 배열 동적 할당 : new , deletefloat ** parray = new float*[sizeOfColumn]; for(int i=0; i< sizeOfColumn; i++){ parray[0] = new float.. 2014. 12. 4.
C++ 프로그래밍 - window에서 하위 폴더까지 파일 목록 가져오기#include "stdafx.h"#include "windows.h"#include "winbase.h"#include "stdio.h"#include "cstringt.h"#include "atlstr.h" bool FindnFile( const wstring strPath ) {bool bContinue = true;WIN32_FIND_DATAW FindFileData;HANDLE hFind;wstring strFindPath, strFileName;wstring FullPathName;strFindPath.assign(strPath+L"\\*.*");hFind = FindFirstFileW( strFindPath.c_str(), &FindFile.. 2014. 11. 26.
Visual Studio -error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.Visual Studio 2012에서 컴파일된 라이브러리는 Visual Studio 2010 에서 참조할 수 없다.따라서 재컴파일을 하거나 또는 버전이 맞는 개발환경을 설정해야 한다 - 프로젝트 참조 설정에서, 상대 경로 디렉토리 지정 방법$(ProjectDir)..\을 이용하면, 프로젝트 파일 하위 경로에 대해 상대경로로 참조 가능하다. - 인텔리센스(IntelliSense) 저장 경로 바꾸기인텔리 센스 : 컨트롤+스페이스를 누르면 자동완성이 되는데 그러한 기능을 제공하기 위한 데이터베이스그러나 프로젝트 폴더내에 위치하게 되면 큰 용량을 차지하여.. 2014. 11. 24.
CUDA Programming CUDA 프로그래밍에서의 위험요소 https://drops.dagstuhl.de/opus/volltexte/2018/8984/pdf/LIPIcs-ECRTS-2018-20.pdf https://www.cs.unc.edu/~tamert/papers/rtss17.pdf https://github.com/yalue/cuda_scheduling_examiner_mirror 공식문서 https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#abstract 기본 튜토리얼 https://cuda-tutorial.readthedocs.io/en/latest/tutorials/tutorial01/ https://www.youtube.com/watch?v=m0nheP.. 2014. 11. 17.
안드로이드 Thread 사용하기 1) 어떤 클래스의 내부 클래스로 원하는 스레드를 만든다. class CaptureThread extends Thread{ int counter = 0; boolean running = true; void stopRunning(){ running = false; }@Overridepublic void run() {super.run();while(running){try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}counter++; mCamera.startPreview(); mCamera.takePicture(null, null, jpegCallBack); .. 2014. 10. 5.
RESTFUL API 철학 : HTTP 헤더에 이미 필요한 기능들이 다 포함되어있으니까, HTTP 헤더를 최대한 사용하자. 기존에는 표준으로 정해진 웹 통신 규약이 없었다. 이를 표준화 시키기위한 시도가 바로 REST API.REST API 는 엄격한 규약이 아니고, 개발 방법론이자 개발 철학이다. 규칙들1. Stateless, 인증에 있어서 세션과 쿠기를 쓰지 않는다. 대신에 토큰을 사용한다.2. Cacheable, 원래의 http처럼 캐쉬를 쓸 수 있다.3. Client-Server, 클라이언트 서버 모델4. Layered System, 분산 서버를 사용. 세션을 쓰면 이부분을 구현하기가 힘듬(ex)페이스북 서드파티 로그인 같은것을 구현해내기 어려움) 그래서 토큰이 중요하다.5. Code on Demand(선택적), 다양.. 2014. 7. 22.
CUDA / CuDNN / Theano / TensorFlow 설치하기 Ubuntu 14.04 LTS에서 GPU 컴퓨팅을 위한 기본적인 설치 방법이다. 만약 거의 아무것도 설치하지 않은 방금 깐 unbuntu 라면 바로 1, 2, 3번만 설치한 후 7번 항목으로가서 글을 읽기를 활용할 것을 추천한다.(이 방법은 모든 딥러닝 라이브러리를 한 번에 사용할 때 유용함)그렇지 않고 기존에 사용하던 서버에서 추가적인 설치가 필요한 경우나, 아니면 선택적으로 딥러닝 라이브러리를 사용할 경우 나머지 항목을 참조하기 바란다. - 본 글은 2017.3월 현재 최신 버전의 설치 방법을 정리하였다. 0) GPU device의 CUDA 지원 유무확인lspci | grep -i nvidia 또는 sudo lshw -C display 명령어로 내 GPU 장치를 확인하고, https://develop.. 2014. 7. 7.
안드로이드 여러가지 팁 - Logcat이 죽어서, adb를 재실행하기 C:\adt-bundle-windows-x86_64-20140321\sdk\platform-tools 경로에서 커맨드창을 열고adb kill-server // 종료adb devices // 실행 - SimpleDateFormat 사용법String timeStamp = new SimpleDateFormat("yyyyMMdd_HH:mm:ss.SSS").format(new Date());http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html - File 생성하기http://arabiannight.tistory.com/47 - 경로 얻어오기String externalPath = Environ.. 2014. 6. 24.
Weka 웨카 3.7 버전대부터 Classifier - More Option - Store Predictions for visualization 옵션이 추가되었다. 또한 package 메니저도 3.7 버전대 부터 추가되었다.(매우 편리함) - percentage split 할 때, more option에서 preserve order를 켜주어야, 랜덤으로 섞어서 학습 하지않는다. - zeroR Classifier 제로 R 클래시파이어는 성능의 baseline을 알아내는 용도의 분류기이다. 이것은 매우 간단하기 training데이터에서 가장 빈도가 높은 class로 target에 있는 모든 데이터를 예측해버린다. 즉 한마디로 제일 빈번한 클래스 한군데로 올인을 하는 것이다. 그래서 속도가 매우빠름. arff 포멧은 .. 2014. 6. 23.
MATLAB 문법, API, 단축키, 환경설정 MATLAB 단축키함수 정의 보기 : 컨트롤 + D, 함수에 우측 클릭해서도 가능스크립트 전체 실행 : F5스크립트 구간별 실행 : 드래그해서 F9 (원하는 부분들만 드래그하여 F9로 실행)컨트롤 엔터 : 해당 섹션만 실행 (섹션은 %%로 구분함) Breakpoint : F12, 왼쪽 라인에 클릭해서도 가능. 그다음 F5로 실행하여 바로 변수값 바로 볼수있고(마우스 커서를 올림), 역시 F10,F11 등으로 스텝 실행 가능 주석 한번에 달기 : Control + R 주석 한번에 지우기 : Control + T자동완성 : TAB 키 MATLAB 환경설정 sig(x,w,b) 하면 계산이 바로 됨.중요한 점은 이렇게 생성한 http://kr.mathworks.com/help/matlab/matlab_prog/.. 2014. 6. 23.
Java, 클래스간 변수 공유 자바에서 클래스간의 데이터 교환 및 변수 공유는 다음 중 하나를 이용한다 1. Static : 최악수, 비 객체지향적임. 가능하면 쓰지 말아야함.2. 싱글톤 : 싱글톤이 적합한 구조일 때 편리함. (클래스가 자기자신을 public static 멤버변수로 갖는다.)3. 멤버변수 : 객체내부에 인스턴스르로 다른 객체를 둔다. 가장 일반적인 방식 (음..레퍼런스에서는 그냥 쓰레드가 돌고있건 말건, service건 무조건 이 방식을 썼네..;)4. 상속 : 클래스를 상속받는다..?5. 내부 통신 : ex)안드로이드 intent의 putextra http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=46083싱글톤 : http://blog.doortts.com.. 2014. 6. 19.
안드로이드 DB, SQLite 안드로이드 내부의 DB인 sqlite 를 보려면, 컴퓨터로는 볼 수가 없다. (루팅을 해도 data/data 경로에는 usb로는 접근 불가능. 에뮬레이터에서만 가능함.) 따라서 루팅한 안드로이드 폰에서, rootexplorer 로 data/data/패키지명/database 로 들어가야한다. --------- DB 부분 / DatabaseManager.java --------public class DatabaseManager extends SQLiteOpenHelper{ public DatabaseManager(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); } /.. 2014. 6. 19.
Excel, Spread Sheet(google), VBA - 함수 구현 : 비어있지 않은 셀의 개수를 센다음, 문자열 L을 붙여서 쓰기="L"&COUNTA($B$2:B6) - 함수 구현 : INDIRECT를 이용해서 특수한 연산 수행=IF(SUM(INDIRECT($Q$11):INDIRECT($Q15)) + INDIRECT(LEFT(Q15,1)&RIGHT(Q15,2)+1)>0.5689, $Q$11, LEFT(Q15,1)&RIGHT(Q15,2)+1)=SUM(INDIRECT($Q$11) : INDIRECT($Q16)) # IF에 And조건 넣기=IF(AND(A 2014. 6. 17.
XNA from Siverlight 방법 주의사항 1. 게임 쪽을 수정한 다음에는 반드시 게임 프로젝트를 빌드하여야만 dll이 갱신되어 올바르게 작동한다. 주의사항 2. 서버를 이용하는 경우 서비스 레퍼런스이름이 실버라이트의 것과똑같아야한다. 왜냐하면 아마도 서비스레퍼런스.클라이언트콘피그 이 파일이본래의 프로젝트의 실버라이트 것만 참조하기 때문인 것 같다. 0. 기존 실버라이트 솔루션에 오른쪽 버튼눌러 add를 클릭하여existing 프로젝트를 눌러 xna 프로젝트를 추가한다. 그리고 기존 실버라이프 프로젝트에 모든 xna레퍼런스를 추가한다. 그리고 system.window 도 추가해준다. 그다음 프로젝트를 카피하여 윈폰으로 만든다음, 원래 윈도우 프로젝트는 지운다. 그다음 컨텐트(정확히 Content라는 이름으로) 폴더를 하나 만든다음, 디버.. 2014. 6. 17.
디자인 패턴(Design Pattern) 좋은 코딩이란어렵게 생각할 것 전혀 없다. 그냥 아래의 원칙에 맞게 합리적으로 잘 짜면 된디. 필자는 전략 패턴이나 팩토리 패턴이 뭔지도 몰랐는데, 그냥 계속해서 리팩토링을 하다보니 본능적으로 만들어서 쓰고 있었다.(물론 그 문법은 매우 원시적이었지만) 1. 리팩토링을 자주해서 끊임없이 코드의 중복을 제거한다.2. 처음보는 사람도 쉽게 이해할 수 있도록 코드를 잘 정리 정돈한다.3. 계속해서 더 나은 구조를 고민한다. 싱글톤(Singleton Pattern)class SingletonInstance: __instance = None @classmethod def __getInstance(cls): return cls.__instance @classmethod def instance(cls, *args, .. 2014. 6. 11.
안드로이드 여러가지 트러블 슈팅 - Theme.AppCompat.Light 에러No resource found that matches the given name '@android:style/Theme.Holo.Light'. styles.xml Project - android - Library 에서 추가해주어야함.http://androidx.tistory.com/2http://www.youtu.kr/1035810 - 프로젝트 import가 이유없이 안될때 프로젝트의 이름을 변경해볼 것 (이미 import된 프로젝트와 이름이 겹쳐서 그런 것임.) - 프로젝트 실행시 library cannot be launced 가 뜰때 프로젝트 세팅 - android 에서 is library 를 체크 해제할 것. ----------- Android Stu.. 2014. 6. 10.
안드로이드 파일 입출력, 경로, 모드 / 네트워크 통신 # 루트 디렉토리 접근 및 제어기본적으로 안드로이드의 data/data 폴더는 루팅을 해야만 접근이 가능하다. 특히 구글 글래스를 USB로 연결해보면 internal storage에 DCIM이랑 Pictures 폴더밖에 없다. 개발자용이 아니라 adb를 이용해야만 디렉토리에 접근이 가능하다고 한다. 1) 경로 탐색adb shell 로 접속한다음 ls 등의 리눅스 명령어를 통해 탐색. 1-1) 여러개의 안드로이드를 연결했을 때,adb devices; //연결된 안드로이드의 ID리스트 출력adb -s [ID] shell; 2) 파일 가져오기adb pull /storage/sdcard0/AutoRecorder/test.txt test.txt - 파일 전송 : http://androidforums.com/eri.. 2014. 6. 10.
[톰캣] 리눅스 톰캣 재시작 cd tomcat/bin/ 이동하면 tomcat 실행 파일이 존재합니다. ./shutdown.sh 2014. 5. 18.
[HTML] onsubmit onsubmit 을 이용해 폼체크를 하신후 submit을 하실거면 onsubmit="return formck();" 이렇게 해주셔야 onsubmit에서 true일시 submit을 false 일시 submit을 안날리게되요 ㅋ[출처] [javascript]form에서 onsubmit return false가 먹히지 않을때 에러 해결|작성자 써니 http://les2575.blog.me/70158666668 onsubmit의 의미 -> submit버튼을 누르기전에 특정 일을 처리하며, true일때만 submit을한다 2014. 5. 18.
세션 한글 정보 처리 http://blog.naver.com/gdrtlee?Redirect=Log&logNo=100131252789 보는것 처럼, post로 전송하고 서블릿에서는 req.setCharacterEncoding("utf8");resp.setContentType("text/html; charset=utf8");JSP에서는 (기능은 똑같음) 2014. 5. 13.