목록분류 전체보기 (24)
STUDY
Emacs 를 설치하면서 해야 할 일들 * Emacs 를 C 드라이브에 설치하지 말고, D 드라이브나 USB 등의 저장 매체에 설치할 것. 그래야 C 드라이브를 포맷하고 복원할 때 다시 Emacs 를 설치하고 설정 파일을 조정하는 지겨운 작업을 피할 수 있다. 그게 아니면 Docker image 로 Docker Hub 에 올려놓거나, Dockerfile 을 만들어 클라우드에 저장시켜 놓는 방법도 있다. * 어느 PC 에서도 간단한 경로 설정만으로 똑같은 Emacs 가 되도록 configuration 파일 만들어 놓을 것. Reproducible 하다고 표현되는 개념. (Linux 라면 그래도 어느 정도 편하게 설치를 반복할 수는 있지만, Windows 운영 체제에서는 이렇게 제대로 된 설정 파일("~/...
웨이브 파일의 헤더를 읽는 코드 (simple version). 필요한 정보 - WAV 파일의 format - BitRate, ByteRate, SampleRate, Channels 등의 개념 이해 - Little/Big endian - fopen(), fread(), fwrite() functions - printf("%.*s", 4, str) null-terminator를 제외한 문자열 인쇄 방법. /********************************************************** Just reading a wav file header **********************************************************/ #include #include in..
Go project 를 만들고 관리하는 방법은 (a) GOPATH, (b) Go Module 두 가지. [ Create projects independent of $GOPATH using Go Modules ], [ StackOverflow: Automatically defining GOPATH on a per project basis ] 1. GOPATH GOPATH 를 system environment variable 에 만들고, 그 값으로 project 폴더를 설정하였다. (Windows pro 64bits) GOPATH가 설정된 후에는 project 폴더 아래에 `src`, `pkg`, `bin` 폴더를 새로 만들어야 놓아야 한다. 그리고 GOAPTH 는 단 하나이므로 project 폴더에 모든 ..
걸리버 여행기에 나오는 Big & Little Endians. 메모리에 data 를 저장하고 전송하는 두 가지 방법. Big endian 은 most significant bit 을 left-most memory address 에, 반대로 Little endian 은 right-most memory address 에 저장하는 방법. Big endian 에서는 high byte transferred fisrt, Little endian 에서는 low byte transferred first. 예를 들면, integer value인 1234 값이 있다고 해보자. 이는 hexadecimal value로 변환하면 4D2 이다. 1 byte는 8 bits, hexadecimal one digit 은 half by..
Cygwin64 다운, 설치한 후에 gcc compiler를 설치하였다. 그 후에 샘플 wave 파일을 다운로드 받아서 플레이하려고 한다. [ StackOverflow: How to use PlaySound in C ]의 코드를 그대로 따라해봤는데, 에러 메시지가 잔뜩 출력될 뿐. #include #include #include #include int main(int argc, char *argv[]) { PlaySound("C:\Snakes and Ladders\snake.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME); return 0; } 에러 메시지를 보니 헤더와 관련이 있어, 헤더를 삭제하고 실행해보았다. #include #include #include int ..
2020.04.15일 시행된 21대 국회의원 선거 후에 선거 과정의 관리 부실, 부정에 대한 의혹을 제기하는 분들이 있다. 그 의혹 중에 중국 해커가 개입하였다는 설도 있는데, "Follow-The-Party"가 대표적이다. 기사를 찾아보면 몇 가지 Character array (fixed order)에서 도출된 문장이라고 한다.아래 Character arrays에서 의미가 성립하는 문장 모두를 찾는 문제 C: abcdefg D: nopq E: jklmnopq F: jklmn G: lmno H: vwxyz I: lmnopqrstuvw J: qrstuvwxyz K: abcdefghijk L: defgh M: abcdefg N: ghijklmnopqr O: abcdefghijk P: opqr Q: opqrs..
일본군 위안부 피해자로 등록되신 분은 [ 여성가족부 사이트 ]에서 240명으로 나온다. 그러나 남산 기림비에는 247명의 이름들만 있으며, 심미자 할머니 등 한국정신대문제대책협의회(정대협)을 비판했던 할머니들의 이름이 누락되었다는 기사가 검색된다. [ 2020.06.05: 곽상도 “정대협 비판한 할머니 8명, 남산 기림비 피해자 명단서 누락” - 한국일보 ] 등록된 명단 A와 기림비에 새겨진 명단 B를 비교하여, 누락된 분들을 찾아내는 문제. 여성가족부 등록 명단: 확인 어려움 남산 기림비 명단: 확인 가능 Complexity: two for-loops, BigO(n^2) 더 효율적인 searching algorithm이 가능한지에 대해 생각.
Vim, Emacs, Vscode, Visual studio, Atom, Sublime text 등 Text Editor의 종류는 매우 다양. 각각 장단점이 있지만, Windows에서는 vscode 하나만 설치해도 대부분 충분. 그러나 vi 혹은 vim 만큼은 배워놓으면 유용할 수도 있을 것이란 생각. 이유는 (a) 다른 IDE를 사용하지 못 할 정도의 최악의 조건에서 가장 마지막까지 남아서 사용할 수 있는 text editor라는 점, (b) 오랜 기간 여러 개발자들에게 검증되었고 최신 IDE가 난무하는 요즘에도 사용하는 분들이 많을 정도라는 점, (c) 유닉스 계열에는 builtin으로 vi가 이미 설치되었다는 점, (d) vi 혹은 vim의 설치 용량이 매우 작다는 점, (e) 사용법을 배우는 시간..

중앙선거관리위원회 홈페이지에서 개표 결과를 복사하여 엑셀 파일에 붙여넣었다. 그런데 관내사전투표수 총합, 당일투표수 총합은 직접 계산해야만 한다. 몇 개의 sheet라면 엑셀 수식으로 할 수 있겠지만, 그 수가 많아지면 수식을 일일히 삽입하는 것은 만만한 작업이 아니다. 아래는 위 그림과 같은 엑셀 sheet를 자동으로 만들기 위한 VBA macro 코드이다. 일단 이 정도로만 VBA macro를 정의하더라도, 엑셀에 붙여넣은 선거관리위원회의 자료에 "당일 투표"와 "사전 투표" 총합을 계산하여 기록할 수 있다. 그리고 합계에 대한 수치가 맞는지 확인도 가능하다. 이렇게 하면 파일 내의 전체 sheets를 한꺼번에 모두 위 그림 1과 같은 형태로 바꿀 수 있다. 하루 이상의 시간을 들여가면서 지겹게 해야..

제21대 국회의원 선거 결과 데이터가 선거관리위원회 사이트에 올려져 있다. 외국의 사이트, 예를 들면 [ MIT Election Lab ] 등에서 제공되는 방식이나 형태와 비교하다면, [ 선거관리위원회 ]에서 제공하는 데이터는 잘 정돈되어 쉽게 가공할 수 있는 형태라고 보기 힘들다. R이나 Python이 아니더라도, 엑셀에 붙여넣어 사용하려고 하더라도 한참 자료를 만져야만 한다. 1. 자료 제공 형태가 다양하지 못 하다. 개표결과 데이터를 파일로 제공하고 있지 않다. 홈페이지에 자료를 게시하였더라도 따로 raw data를 첨부하여야 한다. xls, csv 등의 다양한 파일 형태로 자유롭게 다운로드를 할 수 있도록 개선되어야만 한다. 제공한 자료에 대한 설명도 자료와 함께 제공되어야 한다. 예를 들면, 음..