hypothesis theta의 값을 X * theta로 쉽게 구하기 위해 X = [ones(length(data(:, 1)), 1) data] 로 정의.(쉽게 말하면 X의 맨 왼쪽에 값이 1인 원소의 컬럼을 추가.) function cost = costFunctionJ(X, y, theta) m = length(X(:, 1));h = X * theta;h = h .^ 2; cost = 1 / (2 * m) * sum(h); function [final_theta, history_theta, history_cost] = gradientDescentMulti(X, y, theta, alpha, iteration) m = length(X(:, 1));final_theta = theta;history_thet..
Elastic Beanstalk란?AWS 서비스 중 하나인데, Deploy를 도와주는 서비스이다. 이번에 Flask로 진행중이던 웹 프로젝트를 Deploy 할 일이 있어서 beanstalk를 써봤다. 확실히 몇 가지만 빼면 편리하게 쓸 수 있었다. 다른 deploy tool을 써본적이 없어서 비교는 잘 못 하겠다.내가 엄청난 시간을 날린 이유는 바로 bower 때문이다. .ebextensions 내에 .config에 실행할 command 들을 넣을 수가 있는데, 여기에 'bower install'을 넣고 싶었다. 근데 이게 정말 잘 안 되서, 결국 ec2에 바로 ssh로 들어가 직접 설치했다. 다만 ec2의 특성상 instance가 지워질 경우 리셋되기 때문에 좋지 않은 해결 방법으로 보인다. beans..
보통 getchar() 함수를 이용해서 문자를 입력받는다. 문제는 이게 엔터를 누르기 전에는 입력이 바로 되질 않는다는 것이다. 보통은 문제가 안 되는데 현재 콘솔 게임을 만들고 있다보니까 이게 문제가 되었다. 찾아보니 단순히 C 레벨에서의 문제가 아니라 터미널과의 깊은 연관성을 가진 문제라나.... 어쨌든 문제 해결은 해야하니까 찾아보니까 어떤 용자가 함수를 공유해뒀다. 링크 #include #include #include int mygetch() { struct termios oldt, newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO,..
웹 개발을 하다보면 비밀번호를 안전하게 저장해야한다. 일반적으로 해싱을 통해 이것을 해결하는데 단순 해싱의 문제점이 있다. 바로 동일한 문자열을 해싱했을 때 동일한 결과값이 나온다는 점이다. 만약 DB가 유출되었을 때 password의 해시값을 통해 원본 값을 얻어내긴 힘들겠지만, 비밀번호가 같다는 것을 알 수 있게 되므로 큰 문제다. Python에서는 암호화를 위해 pycrypto라는 라이브러리를 많이 사용한다고 한다. 실제로 github에서도 많이 starred 되어 있다. 하지만 나는 bcrypt를 추천하고 싶다. 특히 Flask-Bcrypt. 일단 사용법이 정말 간단하고 쉽다. 알아둬야 할 함수는 두 개 뿐일정도다. 하지만 가장 큰 이유는 Flask-Bcrypt를 통해 암호화 된 결과값이 저장하기..
이건 C#에 좀 더 가까운 내용.... C#에서는 기본적으로 EventArgs, EventHandler라는 클래스를 제공한다. 이 녀석을 활용해서 가독성 좋게 Event Driven Programming을 할 수 있다. 게임에서 라운드 개념을 도입한다고 생각해보자. 라운드가 증가될 때마다 오브젝트들이 변경되어야 할 것이다. 이걸 좀 예쁘게 구현하고 싶다.다양한 방법이 있겠지만 위에서 언급한 EventArgs 클래스, EventHandler 클래스를 이용한 방법으로 구현해보자. EventHandler는 List와 비슷한 방법으로 생성할 수 있다. List의 type에는 제한이 없지만 EventHandler에는 EventArgs 클래스만이 들어갈 수 있다. 즉, EventArgs 클래스를 상속받은 클래스를 ..
- Total
- Today
- Yesterday