February 2012
2 posts
Stream of Thought: 윈도 8과 OS X 마운틴 라이언을 거부한다 →
trvx:
태초의 컴퓨터는 완전하게 개방된 시스템이었다. 장치만 가지고 있으면 거기서 할 수 있는 모든 행동은 완전하게 자유로웠다. 응용을 자유롭게 만들고 자유롭게 복사하고 자유롭게 배포할 수 있었다. 하지만 컴퓨터에 사람들의 이해관계가 얽히기 시작하면서 사용자들의 자유는 조금씩 줄어들기 시작했다. DRM이 대표적이고 컴퓨터의 모든 동작을 제조사들이 의도된 방향으로 제한하려는 Trusted Computing 같은 개념까지 등장했다.
애플은 극도로 폐쇄적인 환경을 지향한다. 애플은 자사에서 만든 하드웨어에 자사가 만든 소프트웨어를 올려서…
자바스크립트를 써서 동적으로 정보를 갱신하는 웹페이지를 만드는 것은 일반적으로 HTML 위주의 정적인 웹페이지를 만드는 것보다 어렵다. 하지만 의미있는 정보를 담은 HTML 문서와 동적인 웹 애플리케이션 둘 모두를 달성하는 것은 그보다 더욱 어렵다.
이런 상황에서 개발자들은 당장 눈에 보이는 사용성을 만족시키기 위해 동적인 자바스크립트 기술에 치중할 수밖에 없다. 그리고 이런 식으로 만들어진 웹사이트는 자바스크립트를 쓰지 않는 환경에서 높은 확률로 깨질 테고, 웹페이지의 HTML 문서를 읽어 봤자 의미없는 껍데기 태그만 널려 있을 것이다.
이대로 획기적인 전환이 없다면, 웹 접근성은 무너질 수밖에 없다. 문서로서의 웹, 기계적으로 해석 가능한 정보로서의 웹은 파괴되고, 그 자리를 사실 기존의...
January 2012
4 posts
I Heart Chaos: Fun with math: Dividing one by... →
iheartchaos:
There’s all sorts of magic to be had with numbers, and many mathematicians have made entire careers in finding these little tricks that are mostly useless, but fun anyway. Unfortunately, a lot of calculators are going to truncate the results of this trick, but if you manage to get a hold of…
3 tags
GitHub은 어떻게 규모를 키워왔는가 →
슬라이드에서는 문제를 크게 두 가지로 나누고 있다. 기술적인 문제와 조직에 대한 문제가 그것인데, 규모를 키우기 위해서는 두 문제 모두에 신경써야 한다는 게 전체적인 요점이다.
앞부분 절반에서는 조직을 키우기, 다시 말해 새로운 사람을 영입하는 것과 팀원간의 소통에 대해 다루고, 남은 뒷부분 절반에서는 디플로이 자동화, 지수(metric) 측정하기 등의 기술적인 문제와 함께 실제 GitHub 인프라의 규모 변화를 예시로 들고 있다.
4 tags
“ "Another World" Code Review ” 요약 →
1991년에 발매된 Another World라는 게임의 코드 리뷰. 대강 읽어본 요약문을 써본다.
리뷰를 리뷰
1.44MB 플로피 디스크를 쓰는 시대임을 감안해도 실행파일 크기가 20kb밖에 안 되는데, 사실 이건 가상 머신이고 별도의 명령 옵코드와 기타 리소스를 불러들여서 실행시키게 되어 있다. 심지어 64개까지의 쓰레드를 쓰는 멀티태스킹도 지원하는 것처럼 보인다.1 첫 버전이 Amiga용이었던 듯 한데, 이걸 10개가 넘는 플랫폼에 포팅한 모양. 심지어 iOS로까지 포팅되어 있다.
프레임버퍼가 세 개가 있는 점도 특이한데, 두 개는 더블 버퍼링용으로 쓰고 하나는 배경 전용으로 사용한다. 게임 전체적으로 폴리곤 그래픽을 쓰기 때문에 배경을 랜더링하는 게 꽤 큰 시간이 드는 일인데, 대신 게임 중에...
December 2011
1 post
Of course there is no royal road to learning. There’s just a few roads to the right destination and any other roads to wrong ways. That is the reason why it’s necessary to learning from wise teachers, working with brilliant fellows, and reading the right information.
물론 배움에 왕도는 없다. 그냥 올바른 길 몇 갈래와 엉뚱한 곳으로 가는 나머지 길들이 있을 뿐이다. 현명한 스승과 능력있는 동료, 올바른 정보를 구하는 것의 중요성은 거기에 있다.
그리고 이건 왜 산골에...
November 2011
1 post
3 tags
http://en.wikipedia.org/wiki/Tim_sort →
2002년에 고안되어 파이썬 2.3때부터 표준 라이브러리의 정렬 알고리즘으로 사용되었고, Java SE 7과 안드로이드에도 도입된 알고리즘.
비교 횟수를 최소화하는 데에 중점을 두고 설계되어서, 객체 레퍼런스처럼 이동하는 것보다 비교가 비싼 대상, 특히 C++, Java, Python 등 객체의 비교 연산을 재정의할 수 있는 언어 환경에서 적합하다고 한다.
으아니! 21세기에도 정렬 알고리즘이 개발될 수 있다니!
한번 나중에 공부삼아서 직접 구현해볼 가치가 있을 것 같다.
October 2011
3 posts
neoocean:
멀리 볼 것도 없이 5년 후의 세상을 미리 보려면 이 동영상을 꼭 보세요. 한살짜리 아이가 아이패드를 경험해본 다음부터 종이잡지는 ‘고장난 것’으로 인식합니다. 아이패드에 나타난 잡지는 내용을 만질 수도 있고 크게 키워볼 수도 있고 이리 저리 옮겨볼 수도 있지만 종이 잡지는 그렇지 않습니다. 가끔 돈이 많은 광고주들이 여러 페이지에 걸쳐 나오거나 여느 페이지와는 다른 방향으로 접히는 광고를 넣어 평소와는 다른 경험을 하는 경우도 있지만 그래도 결국 종이가 주는 경험을 벗어나지 못합니다. 해리포터의 상상력도 신문에 실린 사진이 움직이는데 그쳤지만 시대는 그보다 더 빨리 변하고 있습니다.
전에 텔레비전에 나오는 방송 프로그램을 멈출 수 없다는 점을 이해하지 못하는 유튜브 세대 아이들의...
7 tags
Ubuntu 11.10 (Oneiric Ocelot) 업그레이드 후에, 기존의...
Ubuntu 11.10부터는 PostgreSQL 8.4 버전이 폐기되고, 최신 버전인 9.1을 지원한다. 업그레이드하기 전에 이미 우분투에서 8.4를 사용 중이었다면, 11.10으로 업그레이드하는 도중에 아마 몇 가지 안내와 함께 PostgreSQL 9.1이 설치되었을 것이다. 이대로 그냥 구 버전을 계속 쓸 수도 있지만, PostgreSQL의 최신 버전을 쓰는 데에는 여러 이점이 있기 때문에 업그레이드를 해 보도록 한다.
우선, 원활한 업그레이드를 위해서 양쪽 버전의 PostgreSQL 클러스터에 모두 접근할 수 있는 계정에서 작업하는 것이 좋다.
$ sudo su - postgres
PostgreSQL 9.1이 설치되면서 기본으로 빈 클러스터 하나가 자동으로 만들어졌을 텐데, 먼저 이...
September 2011
2 posts
7 tags
HTML5가 지원되는 현대적 웹 브라우저들이 데스크탑과 모바일 환경 모두에서 보편화되어가는 상황에서, 우아한 퇴행으로 대표되는 ‘전통적’인 웹 호환성에 대한 고려, 그 중에서도 특히 자바스크립트를 사용할 수 없는 상황에 대한 고려가 반드시 필요한가? 누군가 이에 대한 시원한 답변을 해 줬으면 하는 바람이 있다.
4 tags
나쁜 소식이거나, 혹은 좋은 소식이거나 →
“결국 페이스북에 추월당한 싸이월드… 국내 SNS 1위자리 내줘”
28일 인터넷 시장조사기관 랭키닷컴에 따르면, 페이스북은 지난 8월 월간 방문자수 1600만 명을 돌파하며, 1500만 명을 기록한 미니홈피를 제쳤다. 미니홈피는 올해 월 평균 약 1800만명의 방문자수로 줄곧 1위를 고수했으나 지난 6월 이후 갑작스런 하락세에 들어섰다. ……
개인적인 감흥은… 그냥 내려갈 서비스는 내려간달까.
이쯤 되면 사용자들에게 있어서도, 저번의 네이트 개인정보 대량유출사태 건 때문에 찝찝하기도 하니 이제 더 이상 싸이월드를 쓸 강한 이유는 없을 듯 하다. 그렇다고 싸이월드가 트위터나 페이스북, 하다못해 미투데이처럼 매쉬업 서비스들이 많아서...
August 2011
3 posts
6 tags
작정하고 개소리 한번 해 보겠다.
Mac OS X Lion에서 새로 도입된 Launchpad는 윈도우 3.1 시절의 프로그램 관리자의 재탕이다.
십여 년의 시간적 격차와 그에 따른 세련됨, 비주얼적인 우위를 제외하고 둘의 사용목적, 형태 등을 비교하면 놀랍도록 비슷한데, 심지어 둘 모두 그룹 안에 또다른 하위 그룹을 만들 수 없다는 단점까지 닮았다.
혁신을 추구한답시고 하는 짓이 고작 경쟁사의 고릿적 제품의 과오 답습하기인가?
라고 하는 사람이 적어도 지구 어딘가에 한 명은 나오지 않았을까 싶다.
……뭐 반쯤 웃자고 하는 소리긴 하다. 사실 Launchpad의 경우에는 그냥 iOS쪽의 UX를 따왔다고 보는 게 훨씬 자연스럽기도 하고.1 그렇다고...
1 tag
3 tags
고도로 발달한 아이라인은 마법과 구분할 수 없다
– Arthur C. Clarke … 일리가 있겠냐. (via khrismizer)
June 2011
1 post
untitled.
import pickle, time
def life(person_cls, *args, **kwargs):
materiality = person_cls(*args, **kwargs)
while materiality.alive:
bed = materiality.work()
pickle.dump(materiality, bed)
while not morning:
time.sleep()
materiality = pickle.load(bed)
grave = pickle.dumps(materiality)
return grave
May 2011
1 post
근본주의를, 본색은 양처럼 순하고 절대적으로 착한 어떤 이데올로기나 종교가 변질되었거나 위조된 것으로 치부해서는 안 된다. 근본주의자란 성직에...
– Hubert Schleichert
(“a quarantine station – 와하비즘과 사우디아라비아 건국기” 중 인용문)
April 2011
4 posts
5 tags
라이브러리 설계의 딜레마.
서울에서 부산까지 가는 길의 가짓수는 무수히 많지만,
실제로 쓸 수 있는 방법은 얼마 되지 않는다.
근데 그렇다고 경부고속도로와 철도만 남기고 다 폐쇄할까? 말이 안되지.
loveholy:
“애스터리스크를 타입에 붙여 쓰는 사람(ex. int* aPointer)은 이 변수가 포인터타입 변수라고 생각하는 사람이고, 변수 이름에 붙여 쓰는 사람(ex. int *aPointer)은 이 변수가 해당 타입이되 포인터라고 생각하는 사람입니다.” — Cyrus.H
나는 원래 개념적으로 전자가 맞다고 생각하는데 C/C++ 문법의 한계 때문에 후자처럼 쓰는 부류다. 이를테면 int* a, b;와 같은 경우. 아무 생각 없이 이렇게 썼다가 피 볼 확률이 0이 아니니까.
가끔 차라리 ptr<int> p, q, r;이라고 선언하고픈 충동이 들긴 하는데…
안 될 거야, 아마.
I think computer viruses should count as life. I think it says something about...
– 스티븐 호킹
March 2011
4 posts
khrismizer:
qv, a simple puzzle game made with pure QML
본문하곤 상관없는 얘기지만
왠지 BGM 멜로디가 귀에 박힌다 싶었는데… 역시
SQLAlchemy를 겉만 살짝 핥아 보면서 느끼는 건데1, 이 라이브러리는 기본적으로 납득할 만한, 그러나 다소 껄끄러운 한 가지 가정을 깔아놓은 상태에서 설계된 것 같다.
모든 RDBMS를 똑같은 방식으로 지원하는 건 애초에 불가능하다.2
물론 SQLAlchemy로 어떤 DB에서도 소스코드 수정 없이 똑같이 돌아가는 프로그램을 만드는 게 불가능하진 않을 것이다. 하지만 SQLAlchemy는 그런 코딩을 굳이 강제하지 않는다.
이걸 (그나마 프로그래머에 한해) 이해하기 쉽게 비유하면, 어떤 크로스-플랫폼 GUI 라이브러리가
모든 OS에서 똑같은 UI를 구현하는 게 어차피 불가능하니까, 비록 API가 좀 차이가 나서 윈도우에서 컴파일되는 게 리눅스에서 안 된다거나 해도 상관없겠지....
February 2011
1 post
Art of Dalinaum: SQL Injection 상상 →
dalinaum-kr:
교통 정보나 택배 정보는 무엇으로 관리되고 있을까? 나와 내 이전 세대들이 만들었고 학부 이상의 교육을 받았다면 RDBMS일 확률이 높을 것이다. 그렇다면 많은 시스템이 SQL Injection에취약할 수 있고 아래와 같은 일들도 가능할것이다. gaedri는 이전에 연루된 xyn 사건 때문에 금융회사 설립이 불가능했다. xyn 사건이 경찰청 데이타베이스에 이력이 남았기 때문이다. 열받은 gaedri는 경찰청 컴퓨터를 해킹하기로 맘을 먹었다. 범죄인 정보를 담은 테이블을 삭제하는 코드를 SQL로 적었다. 그 코드를 자동차…
위 글을 보자마자 반사적으로 떠오른 xkcd 카툰.
January 2011
2 posts
http://blog.outsider.ne.kr/579 →
gollum이라는, git기반의 위키에 대한 소개글.
github에서 제공하는 위키를 독립적으로 운용 가능하게 만든 거라고 한다. 본디 위키 시스템 자체가 태초부터 히스토리 기능을 기반으로 했었고, 몇몇 위키는 아예 별도의 형상관리 소프트웨어를 사용하는 것도 있는데, 이 경우에는 git이 그런 역할을 하는 셈.
Ruby on Rails 기반이며, Markdown 말고도 여러 마크업을 사용할 수 있는 것 같다. 한번 써 볼 만한 가치가 있을 듯.
근데 왜 어디서 많이 본 것 같은 느낌이 들지…;1
물론 gollum으로도 저 조건들을 만족시킬 수는 없을 것 같지만… 아니 애초에 목적 자체가 다르구나. ↩
기분탓인 건가, 아니면 내가 KDE 세팅을 이상하게 해 놓은 건가,
아니면 원래 KDE가 Gnome보다 무거운 건가? 알 수가 없네.
제일 알 수 없는 건, KDE를 한참 쓰다 보면 아무 것도 안 해도 아무 프로세스 하나가 코어 하나를 통째로 잡아먹고 있다는 거다. 한 번은 Amarok이 그래서 그냥 껐다 켰는데, 다음번엔 아무 상관 없는 Xorg가 그러고 있으니 재부팅할 수도 없고…
기본적인 반응 속도 자체도 미묘하게 차이난다. 신경쓰여서 못 쓸 정도로.
이 문제를 해결할 방법을 못 찾는다면, 아무래도 난 KDE를 기본 데스크탑 환경으로 쓰지는 못 할 것 같다.
그냥 Amarok이나 써야지 뭐…
November 2010
1 post
2 tags
arachneng:
CSS3 다단 모듈을 싫어하는 사람이 나만 있는진 잘 모르겠다. 본래 다단이라고 하는 것은, 한 번에 볼 수 있는 텍스트의 양을 가로로 줄인 뒤 그런 텍스트 묶음을 여러 개 나열해서 일단 편집이 가지고 있는 단점 — 목록같이 공백이 많을 때 종이의 낭비, 가로로 종횡무진 왔다 갔다 하는 시선의 분산 등 — 을 해결하려고 만든 것이다. 하지만 다단이 항상 좋다면 지금쯤 모든 인쇄물이 다단으로 있어야 할텐데, 그렇지 않은 이유는 다단이 너무 좁으면 옆 단의 텍스트가 함께 보여서 집중을 할 수 없게 되고 사실 이미 많은 출판물이 정확히 같은 크기의 단은 아니더라도 조판상의 이유로 여러 크기의 단을 사용하기 때문이다. 그럼 컴퓨터 화면은 어떤가? 컴퓨터 화면에서 다단을 쓰겠다는 것은 단의...
October 2010
2 posts
3 tags
Scala가 비록 Java와 비교적1 친한 언어이긴 하지만, 정작 Java 라이브러리를 불러 쓰다 보면 이질적인 느낌을 받곤 한다. 특히 Java 표준 라이브러리의 많은 부분이 변하는 상태2에 의존해서 동작하는 탓에, 불변 객체들을 중심으로 돌아가는 함수형의 Scala 코드와 잘 어울리지 못한다. 특히나 그게 국소적인 부분도 아니고 프로그램 흐름의 한가운데에서 떡하니 버티고 있으면 하다못해 Haskell 모나드라도 끌고 오고 싶은 심정.
괜히 비동기 통신 해본답시고 Scala로 Java NIO 들쑤시면서 ByteBuffer 붙잡고 put flip 거리다가 든 생각.
Java 객체를 Scala에서 자유롭게 사용할 수 있지만, 반대로 Java에는 없는 연산자 정의 등의 문제로 Scala 객체를 항상...
시작.
이제 뭘 해야 좋을지 모르겠다는 것만 빼면 순조롭군요.
일단 정말로 아무것도 없으면 썰렁하므로 한 줄 작성.