프로그래밍(23)
-
OpenGL과 GLFW, GLEW 설명과 마름모 생성 튜토리얼
OpenGL과 GLFW, GLEW 설명과 마름모 생성 튜토리얼 #include #include #include //OpenGL 확장팩 #include #include using namespace glm; GLFWwindow* window; void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { if (key == GLFW_KEY_E && action == GLFW_PRESS) { printf("E Pressed\n"); } if (key == GLFW_KEY_Q && action == GLFW_RELEASE) { printf("Q Released\n"); } } int main() { // Initialise..
2020.08.11 -
OpenGL과 GLFW 새 창 열기 튜토리얼
OpenGL은 출력해주고 GLFW는 만들어준다. 즉, GLFW가 만든것을 OpenGL이 출력해준다는 것이다. GLFW는 입력과 출력을 하며 창을 만들어주고, OpenGL에서는 그것을 모니터에 그려준다. 모든 프로그래밍의 기초는 오류 처리이다. 먼저 알고 넘어가자 0. 오류 처리 error handling #include #include 위 두가지 헤더의 fprintf와 stderr(표준 오류)로 오류를 기본 출력 매체인 모니터(console, 콘솔)로 출력하겠다. fprintf( stderr, "Failed to .....\n" ); 이러한 형식이 되겠다. 1. opengl 헤더와 glfw 헤더 파일 추가 #include #include using namespace glm; 이로써 입력을 받으며 창을 생..
2020.08.10 -
[Node.Js] HTTPS 인증하고, 서버 운영하기
HTTPS 서버로 운영하려면 80 포트 433 포트를 각각 열어야 합니다. 그러나, 이것은 나중에 코드로 할 것 입니다. 먼저, 아래의 모듈을 불러와 주세요. const http = require('http'); const fs = require('fs'); const https = require('https') 그 다음에는 Lets Encrypt 에서 ssl 인증서를 발급 받아야 합니다. 무료이나, 3개월마다 갱신해주어야 합니다. 갱신은 자동으로 해도 되고, 아니면 가끔 들어가서 갱신해도 됩니다. Lets Encrypt를 설치하겠습니다. sudo apt-get install git python2.7 letsencrypt는 python2.7을 권장하고있습니다. git은 letsencrypt를 클론하기 위..
2020.01.10 -
[SCIKIT LEARN] CSV 파일을 데이터 배열로 나만의 데이터 만들기
우리는 엑셀에서 데이터를 작성 후 CSV 확장자로 저장 할 것 입니다. CSV 파일의 형태는 a, b, 2, 3 이런식으로 쉼표로 구분합니다. 우리는 이 CSV 확장자를 가진 파일을 Scikit-learn에서 지도학습에 필요한 Numpy형식의 배열로 파이썬의 pandas 라이브러리를 통해 코드를 작성하겠다. Scikit Learn 데이터 학습을 위해 엑셀 파일 작성 맨 윗줄에는 아래 행렬의 데이터가 무슨 데이터인지 표시하자 이것은 한 레이블의 특성이 되겠다. 1열은 특성 이름들, 2열 부터가 한 묶음의 데이터가 되겠다. (A, 2)는 feature1의 값이고, (B, 2)는 feature2의 값이다. 파일 -> 다른 이름으로 저장 -> 파일 형식 -> CSV UTF-8(쉼표로 분리) 선택 후 저장 시켜준..
2019.11.03 -
쉽게 시작하는 [SCIKIT LEARN] / 붓꽃 품종 분류하기
[목차] 1. 붓꽃 품종 분류를 위해서 붓꽃의 데이터를 가져오기 2. 데이터를 간략히 살펴보기 3. KNN 알고리즘으로 분류 예측과 KNN 모델을 평가하기 이 글에서는 중간 정도크기에 적합한 K- Nearest Neighbor(KNN) 알고리즘으로 머신러닝 모델을 만들어서 3가지의 붓꽃 품종을 각 특성(예를 들면 꽃의 폭, 줄기의 길이)에 따라 분류(Classify)하는 과정을 글로 쉽고 차근차근하게 풀어서 쓰겠습니다. - 앞서 들어가기 전에 .. 아래의 명령어를 프롬프트에서 실행해 scikit-learn 패키지를 다운로드해주세요. pip install scikit-learn {1} / 데이터 가져오기 scikitlearn에서는 연습용으로 데이터를 구비해놨음으로 우리는 그저 코드에서 사용만 하면 된다. ..
2019.11.02 -
[RUST] Owner 소유권에 관하여
소유권에 관하여 글을 써본다. 아래와 같은 코드에서 소유권을 볼 수 있다. String변수는 힙공간에 할당된다. 그러므로 x는 힙공간에있다. 이 코드는 얼핏 보면 x에 X라는 값을 주고, y에 x의 사본을 생성해서 값을 주는 것으로 보인다. 하지만 아래 코드는 panic한다. fn main() { let x = String::from("X"); let y = x; println!("{}", x); } 예상으론 출력은 "X"가 나올 것 같지만, 에러가 난다. 무슨 에러인지 봐보자. 러스트는 자동적으로 절대 '깊은'복사를 하지않는다. 그리고 y = x라는 것은 y와 x가 같은 '공간'을 가지게 한다는 의미가 됨으로 한번에 한개의 오너만 존재 할 수 있다는 소유권 규칙에 위반이된다. 그래서 러스트는 x를 없애..
2019.10.27