February 2011
12 posts
최근에 맘에 들지 않는 것 2가지
최근 맘에 안드는 것들이 추가로 생겼다. OOP를 지원하는 VM을 쓰면서 가상 함수가 기본이 아닌 환경 지독하게 많이 쓰이는 Factory라는 단어 전자는 사용자에게 혼란스러우며 실제 성능상의 이점도 의심스럽기 때문이고, 후자는 Design Pattern이 후에 아무나 다 쓰는 근거없는 단어가 되어 버렸다는 점 때문에 싫어한다. Static Factory Method와 같은 단어는 정말 어이가 없을 지경. (Factory Method 자체가 구린 점도 Factory란 단어에 대한 반감에 한몫 하고 있을 듯.)
Feb 27th
SQL Injection 상상
교통 정보나 택배 정보는 무엇으로 관리되고 있을까? 나와 내 이전 세대들이 만들었고 학부 이상의 교육을 받았다면 RDBMS일 확률이 높을 것이다. 그렇다면 많은 시스템이 SQL Injection에취약할 수 있고 아래와 같은 일들도 가능할것이다. gaedri는 이전에 연루된 xyn 사건 때문에 금융회사 설립이 불가능했다. xyn 사건이 경찰청 데이타베이스에 이력이 남았기 때문이다. 열받은 gaedri는 경찰청 컴퓨터를 해킹하기로 맘을 먹었다. 범죄인 정보를 담은 테이블을 삭제하는 코드를 SQL로 적었다. 그 코드를 자동차 번호판에 붙여두고 그는 강남대로를 질주한다. 과속 단속 카메라는 경찰청 데이타베이스 서버에 xym의 코드를 넣어버렸고 대한민국 범죄인 정보는 모두 날라가 버렸다. dahli는 vlaa...
Feb 25th
5 notes
Feb 22nd
7 notes
Android Froyo's build id
android-2.2_r1 (FRF85B) android-2.2_r1.1 (FRF81, FRF91) android-2.2_r1.2 (FRG01B) android-2.2_r1.3 (FRG22D) android-2.2.1_r1 (FRG83)
Feb 16th
Mebibyte? Kibibyte?
근래 전송 프로그램 중 메비바이트(Mebibyte)이나 키비바이트(Kibibyte)을 쓰는 도구들이 많아졌다. git 대표적인데 아래와 같이 표현한다. Receiving objects: 12% (xxxxxxx / xxxxxxxxx), 100.01MiB | 80 KiB/s 이 시간을 보고 초당 80KB를 받았겠거니 지금 100MB를 받았겠거니 생각해도 괜찮다. 키비바이트(Kibibyte)는 Kilo Binary Byte라는 뜻으로 2^10 byte를 의미한다. 킬로바이트가 있는데 키비바이트란 단위가 생긴 것은 킬로가 사실은 10^3을 의미하는 표준이기 때문이다. 관행적으로 킬로바이트가 쓰여왔던 것이지 올바른 표현은 아니다. 정확한 표현은 키비바이트(KiB)와 메비바이트(MiB)다. PS:...
Feb 13th
1 note
리눅스에서 현재 디렉토리 폴더로 띄우기
리눅스에서 현재 디렉토리에서 폴더로 띄우는 법을 문의하신 분이 계셔서 추가한다. GNOME이면 아래와 같이 입력한다. nautilus . KDE면 아래와 같이 입력한다. dolphin . 역시 alias를 지정해서 쓰는게 정신 건강에 좋다.
Feb 6th
텀블러 탈출 준비 2: BackupTumblr
텀블러 탈출 준비에 대한 피드백으로 홍민희 씨가 파이썬 스크립트를 만들었다. 이에 답변으로 BackupTumblr을 펄 언어로 작성하였다. 사용법은 다음과 같다. BackupTumblr http://blog.dahlia.kr Total Count: 66 <글의 id>-<글의 slug>가 파일명이 되며 확장자로는 txt나 json이 붙는다. 글의 본문은 txt 파일에 다른 메타 데이터는 json이 된다. 글의 아이디가 1403981336이고 slug가 tumblr-follow-sigin-up이면 본문은 1403981336-tumblr-follow-sigin-up.txt에 저장된다. 메타 데이터는 태그와 멀티미디어 자료의 이름, 글의 제목 등이 저장되는데 글의 제목이 없는...
Feb 3rd
4 notes
윈도우즈 환경에 펄 설치하기
펄이 설치되지 않은 윈도우즈 환경에 펄을 설치하려면 어떻게 해야할까? 신 버전 펄, 로컬 모듈, 현대적인 패키징 시스템을 함께 설치해보자. 먼저 스트로베리 펄을 받는다. 스트로베리 펄은 윈도우즈용으로 패키징된 펄에 Bundle::CPAN, Bundle:LWP 등의 모듈과 MinGW 개발 환경을 포함한 것이다. 인스톨러가 있으니 다운받아 설치하자. 다음으로 모듈을 로컬에 깔기 위해 lib::local을 설치하고, 현대적인 패키징 cpanm을 설치할 차례다. 먼저 임시로 쓸 cpanm이 필요하다. http://cpanmin.us을 cpanm으로 저장한 후 다음 커맨드를 입력하자. perl cpanm --local-lib=~/perl5 local::lib App::cpanminus 로컬에 모듈을...
Feb 2nd
Feb 1st
2 notes
Feb 1st
14 notes
January 2011
15 posts
현재 디렉토리 폴더로 띄우기
쉘은 여러 작업을 단순화시켜주는 마법의 도구이지만 모든 작업을 쉘로 할 수 없다. 그렇기 때문에 쉘과 GUI 어플과 상호 작용은 필수적이다. 많은 사람들이 프로그램 중심으로 상호작용을 하는데 전체 경로를 프로그램의 인자로 전달하는 방식을 주로 사용한다. 예를 들어 윈도우 컴퓨터라면 다음과 같은 방법으로 사용하는 식이다. "c:\Program Files\Mozilla Firefox\firefox.exe" hd01-2011-02-01.html 난 이 방법은 몇가지 분명한 단점이 보여 선호하지 않는다. 불필요한 경로나 환경 변수 어플리케이션이 인자를 받아야 한다. 대게 연결할 파일명도 간단하지 않다. 더 나은 대안이 있다. 윈도우에서는 다음을 입력하라. explorer . 맥용으로는...
Jan 31st
웹 프론트엔드의 강자 펄
웹 프론트엔드의 전통적인 강자는 역시 펄이라고 할 수 있다. [1], [2] 문자열 연산의 강점으로 경쟁자 모두를 압도한다. 펄 텐진의 스피드는 파이썬 텐진+Webext의 3배 정도, 루비와 PHP 텐진의 5배 이상 빠른 속도를 보여준다. 다른 구현과의 성능 비교는 불필요하다고 생각한다. 게다가 펄에서는 텐진을 대체할 대안도 많다. Xslate 구현은 “펄 버전 Tenjin”과 비교해 4609%의 효율을 보인다. [3] 다른 대안들의 성능도 다른 웹 환경에 비해 나쁘지 않다. 웹 프론트에서 성능이 중요하다면 펄도 고려할만하다.
Jan 31st
2 notes