
시계 부품 중에서 엔진에 해당하는 "무브먼트"라는게 있다. (movement라니 이름이 너무 평범해서 마음엔 안들지만) 웬만해서는 분해를 해도 이것만큼은 안건드리는데, 이 부품을 억지로 분해 했다가는 그 안에 있는 톱니들이 와장창 제자리를 잃고 다시 조립하는것은 쉬운일이 아니기 때문이다. 그런데, 벽걸이나 탁상 시계는 건전지 가는 것 정도만 하다가, 시계바늘이 뭔가 정확히 12시에 만나지 않는다거나 알람을 1시에 맞췄는데 2시에 울린다거나 하는 정도가 되면 앞 유리 면을 열어야하는 정도의 분해는 해야한다. 시계 바늘이라는 것은 단지 중앙에 나와 있는 동심원 3개에 고정되어 있는 것이고, 바늘을 뽑고 다시 각도를 맞춰서 다시 꽂을 수 있으므로 이 정도만 알아도 일상을 살아가는데, 큰(?) 도움이 된다. 오..
법률이 제정되고 시행령, 시행규칙이 만들어지듯이 프로그램의 운영관점에서 보면, 법률은 프로그램과 같고, 시행규칙은 설정파일과 같다. 법률과 달리 소프트웨어에서는 시행규칙에 들어가야할 것이 프로그램에 들어가는 일이 많다. 운영 중에서 조정해야하는 시행규칙을 지원하는 프로그램 수정보다, 프로그램내에서 로직으로 바로 해결하면 간단하기 때문이다. 또, 설정 값으로 빼는 것이 굳이 이번 한 번만을 위한 것인데, 조금 거추장스러운 추상화 아닌가 싶기도 하다. 문제는 한참 뒤에 나타난다. 전체적인 프로그램의 추상화 레벨이 마구 섞여 있는 코드를 마주할 때 느끼는 가독성의 문제. 만약 추상화 단계가 다른 코드를 불가피하게 작성해야할 때는, 변명이라도 잘 써 놓을 수 있다면 좋겠다. 나중에라도 쉽게 고치게. -End-
도메인 소유기록을 찾아 보려고 domain history로 검색해 보니, whois 자료를 다 모아서 API로 제공하는 곳이 있더라, 많더라. 난 단지 도메인 한 개 알아 보고 싶었다만... https://whoisrequest.com/ Whois Search, Domain History, Reverse IP/NS Lookups and more Lookup IP, CIDR, ASN or Domain whoisrequest.com 이 사이트에서는 소유자는 공개하지 않고 누군가 사용했는지만 확인해 볼 수가 있다. 그나마 하나 찾아서 메모차 적어 둔다. 둘째 딸 낳고서 이름으로 도메인을 하나 2년간 구매하고, 만료시점에 4년을 더 연장을 해서 총 6년을 보유하고 있다가 어떤 이유에서인지, 연장을 안했다. 그리..
서버를 만들고, 여러 테스트하는 것 중에 영구 접속이 끊어지는 상황을 재현하는 것은 쉽지 않을 수 있다. 디버거를 이용하여 간단히 종료시켜 보는 법을 알아 본다. python으로 돌고 있는 데몬(pid 11688)이 있다고 하고, 데몬의 DB 접속은 영구 접속에 해당하는데, 이 접속을 강제로 종료시키는 것을 가정한다. $ lsof -n -p 11688 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 11688 pynoos cwd DIR 202,3 80 1636949 /misc/django_projects/app/broadcast python 11688 pynoos rtd DIR 202,3 4096 128 / python 11688 pynoos txt..
django로 만든 웹 서버가 메모리 릭이 있는 것 같아서, 임시로 클라이언트 요청 수에 제한을 걸고 새로 실행되도록 설정했다. 임시가 길어져 1년이 돼가는 동안 잊고 있다가 개발자의 자존심을 건드는 설정인지라 다시 봐야했다. 이 글은 메모리 릭을 잡았다는 것이 아니다. 서버들 중 적당히 스왑을 사용하고 있는 녀석을 골라서 들어갔다. gunicorn 들 중에 제일 pid가 큰 것을 골라낸 후, 해당 PID 에 strace 를 걸어서 GET/POST와 URL PATH에 해당하는 것만 출력하도록 awk 파이프 질을 했다. 동시에 "ps -efl" 로 해당 PID만 골라낸 다음 awk로 적당히 메모리 사용량 부분만 출력한다. 대략 512 개의 요청만 하면 사라지는 gunicorn의 PID이므로, 위 두 작업을..
늪, 사람은 뭔가에 빠지기 마련이다. 하다 못해 게으름에 빠지기도 한다. 그 순간조차 그 상태를 유지하고 싶다. 너무 오래 머물면 안될 것을 알면서도 계속 유지하다가 적응하게 된다. 늪을 나오기 위해, 용기란 것이 가끔 필요한 것임에도, 그 생각이 드는 순간조차 그 속에서 뭔가 더 할 수 있을 것 같은 생각이 동시에 든다. 이것은 늪 속에서 주기적으로 엄습하는 목소리와의 결말 없는 전쟁같은 것이다. 늪, 이 점성 고형물이 꿀인지 진흙인지는 상관이 없다. 결국엔 그것외엔 할 수 없는 것이 그 안에서 사는 모습이다. 새로운 것을 추구하자, 죽기 전에 꼭 해야할 일을 시작하자, 돈을 많이 벌어야지 하고 싶은 것만 할 수 없지 않느냐. 이런 고민은 30대에 끝날 줄 알았지만, 지금보니 늙어서 죽는다고 해도 계속..

상민과 나의 밥집 평가에 대한 CORRELATION 이 -0.8527이 나온다. -1에 가까우므로 반대 방향의 데이터가 예상된다, 즉 취향이 반대라는 얘기인데, 점수 메긴 숫자로 보면 취향이 반대 같아 보이진 않는다. 내가 평가안한 것(빈칸)에 대해서는 CORREL 함수가 제외하고 계산하는 것은 분명하다. 그리고 내가 평가한 것이 6개 이므로 자유도 5로 계산했을 때 수작업으로 계산해도 같은 값이 나온다.(당연하지 컴퓨터인데) 뭔가, 상관계수로 취향을 분석하는 것은 저렇게만하면 안될것 같다. 당연하지..모두 식당평가를 같은 4점, 3.9점을 주었고 나머지 둘이 달랐으니, 이 들을 관통하는그래프가 예상 밖이 되는데.. 아.. 이런 멍청한.
Network Card의 PPS를 측정하는 아주 간단한 스크립트 linux, NIC eth0 의 PPS를 1초마다 측정한다고 가정하면, #!/bin/bash while true do echo $(cat /sys/class/net/eth0/statistics/tx_packets) $(cat /sys/class/net/eth0/statistics/rx_packets) sleep 1 done | awk '{DT=$1-TPREV; DR=$2-RPREV; if(TPREV) print strftime("%Y-%m-%d %H:%M:%S", systime()), "TX:", DT, "RX:", DR; TPREV=$1; RPREV=$2; }'
HHI 지수를 조금 체감하기 위해 숫자놀이를 해보자면, 일단, HHI 란 퍼센트로 표현한 점유율의 제곱 합 이다. 1개의 회사가 전 시장을 다 장악하는 경우 100% 이므로, 제곱합은 그저 100의 제곱인 100000 이다. 이값이 HHI의 최대값을 나타낸다. 2개의 회사가 시장을 반씩 양분하고 있는경우 50%의 제곱합이므로 2500 * 2 = 5000 5개의 회사가 시장을 5등분하고 있는 경우 20%의 제곱합이므로 400 * 5 = 2000 10개의 회사가 시장을 10등분하고 있는 경우 10%의 제곱합이므로 100 * 10 = 1000 어떤 산업이 1000~2000 정도의 HHI 지수를 가지고 있다는 것의 예는 이렇다. 어떤 회사의 최대 점유율이 20% 인 산업군을 하나 만든다면, 20%, 20%, 2..
이 GS(링크)를 끌어다가 즐겨찾기에 떨어 뜨려 저장 후, 구글 검색 결과 창에서 누르면 주소를 정리해주는 북마클릿이다. 해당 내용은 아래와 같다. 만약 링크가 나오지 않는다면, 아무 북마크나 만들고 아래 내용으로 주소를 복사/붙여넣기를 하여 만든다. javascript:location.href=location.href.split('?').map(x=>x.split('&').filter(a=>a.startsWith('http')||(['q','hl','tbm','start'].indexOf(a.split('=')[0])!=-1))).map(b=>b.join('&')).filter( a => a).join('?') 구글 검색을 한 다음 나오는 페이지를 공유하고 싶으나, 그 URL에는 불필요한 정보가 실려 ..
- Total
- Today
- Yesterday
- TCP/IP
- 수선화
- MySQL
- writely
- tattertools
- 덴드롱
- 디버깅
- 오픈소스
- SSO
- 킹벤자민
- JavaScript
- 구근
- SVN
- ssh
- url
- 클레로덴드럼
- BlogAPI
- 커피
- VIM
- Linux
- 퀴즈
- nodejs
- OpenID
- Subversion
- 식물
- macosx
- Tattertools plugin
- 벤자민
- perl
- 대화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |