공부
Pull request에서 중복 commit 현상이 발생할 때
git으로 pull request 등의 협업 작업을 할 때, branch를 사용하는 것을 권장한다. 하지만 간단한 작업에서는 branch를 만들고 checkout 하는게 번거로워서, master branch 하나로만 작업하고 싶을 때가 있다. 그런데 master branch만으로 여러번의 pull request를 하게되면, commit이 중복되어 들어가게 된다. 본 문서에서는 위와 같은 일을 방지하기 위해서, fork한 repository를 원본 저장소와 동기화하는 방법에 대해 서술하였다. upstream 등록 먼저 현재 등록된 remote 저장소를 확인한다. $ git remote -v origin https://github.com/MY_NAME/REPO_NAME.git (fetch) origin ht..
Python으로 구현한 인공지능 - Backpropagation
전체 소스 코드는 github에서 확인할 수 있습니다. Perceptron Perceptron은 입력과 출력을 지정하고 학습하는 지도 학습 방식을 사용하는 인공신경망의 한 종류로, 입력 x에 대해 가중치 w를 곱한 값들을 전부 합한 뒤 활성함수 f에 의해 판단한다. 활성함수는 threshold에 의해 그 값을 결정해준다. 하지만 이 방식으로는 XOR 문제를 풀 수 없는 등의 단점이 있다. Multi-layer perceptron Perceptron의 단점을 보완한 방식인 multi-layer perceptron은 input layer와 output layer 사이에 하나 이상의 hidden layer를 배치한 계층 구조의 신경망이다. 본 문서에서 구현한 코드는 1개의 hidden layer를 이용한 방식..
회원가입 시 관리자에게 메일로 알리기
시작에 앞서, 본 문서는 XE 1.11.0 버전 기준이다. 회원가입 시 멤버 추가를 처리하는 함수는 xe/modules/member/member.controller.php에 function insertMember(&$args, $password_is_hashed = false) 함수 내에 있다. 이 함수의 마지막 부분에 mail을 보내는 코드를 넣으면 된다. xe/modules/member/member.controller.php의 2100번째 줄에 insertMember함수가 정의되어 있다. function insertMember(&$args, $password_is_hashed = false) { // Call a trigger (before) $output = ModuleHandler::trigger..
0과 1로 이루어진 string을 bit로 파일쓰기
0과 1로 이루어진 string(예를들면 "011011011100")을 ofstream binary mode로 그냥 쓰면 bit로 들어가지 않는다. 이 때 bitset STL을 사용하여 bit 단위로 쓸 수 있다. 해결 방법 string을 8개 단위로 나눈다. (8개로 나누고 남은 string은 뒷부분을 0으로 채워서 8개로 맞춘다.) 1에서 8개 단위로 나눠진 string을 각각 bitset에 담는다. bitset에 담긴 8개의 bit들을 unsigned long으로 변환한다. (bits.to_ulong()) 3에서 구해진 unsigned long에 해당하는 char형(1byte=8bits)을 파일에 쓴다. #include void writeBin(ofstream& fout, string str) { ..