2015. 7. 7. 14:41
1. 다음 사이트로 들어가서 MongoDB를 다운받아 설치한다


2. 커맨드 창을 띄우고 MongoDB가 설치된 폴더로 이동한다

  • 일반적으로 C:\Program Files\MongoDB\Server\3.0\bin 에 있다(mongo.exe가 있는 디렉토리)

3. 데이터를 저장할 폴더를 생성하고 경로를 설정한다

  • 여기서 테스트로 C:\data\book 폴더를 설정하고 경로를 다음과 같이 입력한다
  • mongod --dbpath c:/data/book




  • 경로를 설정하면 waiting for connections 라는 문구가 마지막에 나오고 대기 상태로 있다


  • 잘 생성이 되었으면 c:/data/book 경로에 다음과 같은 파일이 생성된다

4. 새로운 커맨드 창을 띄우고 mongo.exe 가 있는 디렉토리로 이동한 후 mongo 명령어를 입력하여 Mongo 쉘로 들어간다


  • connecting to: test 라고 뜨는데 디폴트로 test db가 생성되고 아무 명령어도 안 치면 여기에 데이터가 저장됨

5. book DB 를 사용하기 위해 use book 명령어 입력

  • db book 으로 변경되었다고 나온다

6. book DB 로 변경 후 member와 page에 데이터를 4개씩 8개 생성

> db.member.insert({name:"Kim hayoung", age:29, skill : ["Java", "Oracle"]});

> db.member.insert({name:"Park sumin", age:27, skill : ["Node.js", "Express"]});

> db.member.insert({name:"Lee naeun", age:31, skill : ["MongoDB", "Elastic"]});

> db.member.insert({name:"Hong jinho", age:33, skill : ["Linux", "Phthon"]});

> db.page.insert({number:"243", year:2011});

> db.page.insert({number:"216", year:2013});

> db.page.insert({number:"142", year:2015});

> db.page.insert({number:"72", year:2014});

  • 위의 그림은 page 입력 후 insert를 입력하지 않아 에러가 난 것이다

7. 잘 생성되었는지 확인해본다

> db.member.find()

> db.page.find()

> show collections

8. book 폴더에 local db와 book db가 생성된 것을 확인


위와 같은 결과가 나오면 일단 MongoDB 생성은 성공이다







2015. 7. 6. 13:14

  • 시리얼 통신 

- 신호(데이터)를 1비트마다 직렬(Serial)로 보내는 통신

- 시간의 흐름에 따라 차례로 보내는 통신 인터페이스

- 종류 : RS232, RS422, RS485

- 동기(Synchronous), 비동기(Asynchronous) 방식

- 1바이트를 8개의 비트로 분리해서 한 번에 1비트씩 통신 선로로 전송

- 수신 측이 1바이트를 식별하기 위해 사용하는 것이 스타트 비트 & 스톱 비트

- 데이터 비트는 5, 6, 7, 8 중 하나 설정

- 데이터 비트(ByteSize)값 고 보오 레이트(Baud rate)를 일치하도록 설정

- BPS : 1초에 몇 비트가 전송되는가? (bps : bit per second)

Baud rate : 1초에 신호가 몇 개 전송되는가?

    cf) 1초에 신호가 하나일 수도 있지만, 두개, 세개, 네개 일 수도 있음

- 패리티(Parity) : 2진수의 값 중에서 1이 몇 개인가 검사. 

    cf) 짝수 패리티, 홀수 패리티 - 패리티가 맞지 않다면 데이터 변질이 되었다고 생각

- 정지 비트(Stop Bit) : 지정된 시간만큼 1을 가짐

- 프레임의 길이는 사전에 송신측과 수신측이 협의하여 맞추어야 함

    => 패리티가 다르거나 비트의 수가 맞지 않으면 통신을 할 수 없다

2015. 7. 6. 10:37


  • Click - 사용자가 마우스를 클릭했을 때 발생
  • DblClick - 사용자가 마우스를 더블 클릭했을 때 발생
  • MouseDown -  사용자가 마우스 버튼을 눌렀을 때 발생(클릭의 전반부)
  • MouseUp - 사용자가 마우스 버튼을 해제했을 때 발생(클릭의 후반후)
  • MouseOut - 마우스 포인터가 객체의 그래픽 범위를 떠나려고 할때 발생
  • MouseOver -  마우스 포인터가 객체의 그래픽 범위를 진입하려고 할때 발생
  • MouseMove - 마우스 포인터가 객체의 그래픽 범위 안에서 마우스 포인터를 움직이려 할때 발생
  • ContextMenu - 사용자가 오른쪽 마우스 버튼을 클릭했을 때 발생


2015. 7. 3. 20:40

드디어 Unity3D 를 시작한다.


처음 공부하는 책은 옛날 책이지만


Unity 3.x Game Development Essentials 로 공부한다


잘 해보자~~!


http://www.unity3d.com/unity/download

다음 사이트 가서 유니티를 다운 받은 후 설치하고 시작하자


책의 소스 코드는 다음 사이트에 가서 받자


http://unitybook.net/book_assets.unitypackage.zip



2015. 6. 29. 19:24

* 포트 열기 - 포트 설정 - 데이터 읽기 - 데이터 쓰기


1. 포트 열기


portname = "COM3";



2. 포트와 버퍼 설정 

SetupComm - 버퍼 사이즈 설정

PurgeComm - 해당 버퍼 청소





2015. 6. 25. 21:03

http://atom.io


- Atom 편집기

Install - emmet 검사 - 설치


emmet : 자동 편집기

2015. 6. 25. 16:59

<html>

<header>

<title>

<body>


<a href> </a>

<li>

<ul>

<ol>

<strong>


<nav> - 탐색하는데 선택되는 정보

<header> - 간판

<article> - 본문


2015. 6. 25. 16:57

어쩌다가 3D 개발자가 웹으로 오게 되었다...


웹의 언어는 전부 JavaScript 카테고리로 넣을 것이다


1. HTML

2. JavaScript

3. jQuery

4. Node.js

5. Meteor


등등

2015. 6. 25. 11:15

Windows에서는 시리얼 통신에 관한 함수가 따로 존재하지 않고

파일에 읽고 쓰는 것으로 통신한다


시리얼 통신에 관한 기초 자료는 다음 자료에 잘 나와있다

시리얼_통신의_기초 (1).pdf


CreateFile( ) 함수를 이용하여 포트를 생성하고 ReadFile( ), WriteFile( )을 이용하여

데이터를 주고 받는다.


CreateFile( ) : 파일이나 입출력 장치를 연다.

입출력 장치 : 파일, 파일스트림, 디렉토리, 디스크, 볼륨, 콘솔버퍼, 파이프

각 장치를 제어할 수 있는 핸들 반환


CreateFile( ) 에 관한 사이트 주소 : 

http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/4200/CreateFile


여기서 포트 입출력(시리얼 통신) 프로그램을 만들어보자







2015. 5. 15. 15:10

1. 소스 파일을 다운 받아 압축을 푼다.

http://www.live555.com/liveMedia/public/


2. 압축을 풀은 폴더 내에 win32config 파일 내에서 다음을 수정한다.


*

TOOLS32 = c:\Program Files\DevStudio\Vc

=> 

TOOLS32 =

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

(현재 Visual Studio 실행파일[deven.exe]가 있는 폴더 위치로 변경)


* LINK_OPT_0 = $(linkdebug) msvcirt.lib

msvcirt.lib => msvcrt.lib 로 변경 ( i를 빼줌 )


3. cmd 쉘 내에서 live 폴더로 이동해서 genWindowsMakefiles 를 입력

=> 그러면 각 서브디렉토리 내에 ".mak" 파일이 만들어짐

(Microsoft Visual Studio에 의해 사용하기 쉬운 make 파일)


4. Visual Studio 내에서 이 Makefile들을 사용하기 위해 

- Open Workspace

- Makefiles(.mak) 선택

2015. 2. 4. 20:32

* DLL 이름 바꾸기

- 링커 => 일반 => 출력 파일에서 바꾸면 된다.


$(OutDir)$(TargetName)$(TargetExt)

=> myMath.dll


* LIB 이름 바꾸기

- 링커 => 고급 => 가져오기 라이브러리에서 자기가 원하는 이름으로 바꾸면 된다


$(OutDir)$(TargetName).lib

=> $(OutDir)$(TargetName)_d.lib

* 디버깅 라이브러리로 릴리즈와 구분하기 위해 _d 를 붙임


2015. 2. 3. 09:47


SimpleBlobDetector 내에 있는 Params 파라미터 변수를 선언하여 세팅한 후

detect()함수를 이용하여 검출하면 된다. 

정말 깔끔한 코드이다... 모든 Detector가 다음과 같은 형태를 가진다

잘 보고 배워야지...


2015. 1. 29. 18:04
기울어진 영상을 세우는 프로그램이다 
테스트 영상을 같이 첨부한다







2015. 1. 28. 15:59

콘솔 프로그램에서 프로세스 생성하는 코드이다

다음 예제는 메모장을 띄운다



2015. 1. 28. 10:15

VC 6.0에서 VS 2010으로 변환했을 때 다음과 같은 에러가 발생했다


error C2440: 'static_cast' : 

'UINT (__thiscall CSkinDlg::* )(CPoint)'에서 

'LRESULT (__thiscall CWnd::* )(CPoint)'(으)로 변환할 수 없습니다.


그래서 에러난 곳을 확인해보니...


메시지 맵에서 ON_WM_NCHITTEST()에서 에러가 났다..


정의를 찾아가 보니...

#define ON_WM_NCHITTEST() \

{ WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \

        (AFX_PMSG)(AFX_PMSGW) \

  (static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) >                     (&ThisClass :: OnNcHitTest)) },


다음과 같은 코드라 수정이 불가능했다..


그런데...

저 메시지 맵과 연관된 함수 OnNcHitTest()의 선언을 찾아가니...


afx_msg UINT OnNcHitTest(CPoint point);


위와 같이 되어 있고 UINT가 LRESULT로 바꿀 수 없다는 에러 메시지가 나서


리턴형 UINT를 LRESULT로 바꾸니 에러가 해결 되었다 ^^


afx_msg LRESULT OnNcHitTest(CPoint point);