April 2011
6 posts
iOS와 안드로이드
아이폰은 국내 출시전부터 만져왔고, 최근에는 일, 취미로 안드로이드를 만지고 있다. iOS와 안드로이드 두 운영체제를 만지면서 느껴지는 가장 큰 차이점은 두가지다. iOS의 UI의 디테일함은 안드로이드에 비해 2-3년은 앞서있다. 안드로이드는 인텐트와 서비스를 이용하여 구조적인 설계가 되어있다. iOS의 UI는 아주 미묘한 룩앤필과 동작들까지 세밀하게 설계가 되어 있다. 1 당장 몇년 내 구글이 UFO를 줍지 않는 한 UI의 격차를 바꾸기는 힘들 것이고, 5년이 지나도 안드로이드보다 iOS의 UI가 좋을 것이다. 안드로이드가 이 영역을 추월하긴 힘들다. 하지만 지금도 안드로이드 폰이 사용자에게 좋은 반응을 얻고 있고 격차는 조금씩이나마 계속 줄어들 것. 안드로이드는 인텐트를 통해 많은...
Apr 22nd
7 notes
카이스트 징벌적 치킨 게임
징벌적 등록금을 회피하기 위한 전략으로 선택할 수 있는 한가지 방법은 평균 점수가 높은 과목을 선택하는 것입니다. 카이스트의 미적분학의 평균 학점은 2.95였습니다. 저런 과목들을 주로 듣는 평균적인 카이스트 학생은 징벌적 등록금을 낼 확률이 높을겁니다.1 저런 과목을 피하는 것이 가장 합리적인 선택이 되는 거죠. 카이스트가 상대평가를 선택한 것을 알고 있는 사람이라면 의문이 들 수 있습니다. “어떻게 평균 점수가 높은 과목이 존재하는 것이지?” 한국 대학들의 상대 평가 시스템은 주로 학점당 퍼센테이지 상한선을 정하는 형태로 이루어집니다. A학점은 20%를 넘을 수 없다는 식입니다. 하한선은 보통 잘 정하지 않습니다. 조금 유연한 상대평가 시스템인거죠.2 학교에서는 시스템적인...
Apr 15th
2 notes
실시간 채팅 IRC 클라이언트
홈민희씨는 오징거 서버 #langdev 채널에 상주하고 있다. 이 채널에서 이뤄지는 여러 언어와 구현의 이야기들이 그의 언어 작업에 도움이 되기 때문이다. 그는 최근에 유학 준비로 시간이 많지 않아 항상 채널에 상주할 수 없다. 그래서 IRC 클라이언트 프로그램인 레몬 챗을 작동시켜 하루 종일 접속을 끊지 않는다. 이렇게 항상 접속을 유지해 두면 공부가 끝난 뒤 내용을 확인할 수 있다. 그는 오늘 일과를 마치고 컴퓨터로 돌아왔다. 마우스 스크롤을 이용해서 대화를 확인해보지만 1시간 전까지의 대화만 화면에서 볼 수 있다. 그는 접속 기록(로그)를 확인하여 대화를 살펴보겠다고 결심한다. 그런데 로그의 위치가 기억나지 않는다. 보통의 사람이라면 이쯤에서 로그를 읽지 않겠다고 결심할 수 있다. 하지만...
Apr 13th
2 notes
안드로이드 메모리 관리 low memory killer
low memory killer는 구글 직원 Arve Hjønnevåg가 2009년에 안드로이드 메모리 관리를 위해 작성한 리눅스 커널 모듈이다. 주석에 남아 있는 misc 드라이버 (drivers/misc/lowmemorykiller.c) 흔적으로 보아 Arve는 이 모듈이 misc에 남길 기대했다고 판단된다. 하지만 이 커널 모듈은 2.6.31~32에서는 staging 드라이버 (drivers/staging/android/lowmemorykiller.c)로 그 이후에는 공식 커널에선 제외되어 안드로이드 커널에서만 볼 수 있다. 이 커널이 등장한 배경은 리눅스 메모리 정책이 현재 임베디드 환경에 맞지 않다는 것이다. 리눅스 커널의 기본 메모리 정책은 OOM Killer로 대표되는데 메모리가 부족한...
Apr 11th
3 notes
툴킷과 프레임워크
컴퓨터 소프트웨어에서 라이브러리를 만드는 방법은 크게 둘로 나눌 수 있습니다.툴킷과 프레임워크입니다. 전자는 사용자가 필요한 도구를 모아 둔 것이고 후자는 해야할 일에 사용자가 집중 할 수 있도록 소프트웨어 구성물의 얼개를 제공하는 것입니다. 프레임워크는 설계자가 상상하는 세상을 투영합니다. 설계자는 도구에 대해 지나치게 협소하게 생각하거나 더 크게 볼 때가 많습니다. 그 결과 많은 프레임워크는 협소함이나 유연함을 사용자에게 강요하게 됩니다. 협소함이 강요되는 경우될 때 사용자가 원하는 쓰임에 소용이 없어 결국 그 도구를 벗어나야 할 경우가 생깁니다. ASP.net는 전통적인 게시판 모델에 RDBMS 모델을 결합시키기 적합한 모델입니다. 하지만 이 도구로 XML을 다루고 외부 웹 환경과 소통하는 웹...
Apr 3rd
2 notes
포인터를 선언하는 방법의 차이 →
materiality: loveholy: “애스터리스크를 타입에 붙여 쓰는 사람(ex. int* aPointer)은 이 변수가 포인터타입 변수라고 생각하는 사람이고, 변수 이름에 붙여 쓰는 사람(ex. int *aPointer)은 이 변수가 해당 타입이되 포인터라고 생각하는 사람입니다.” — Cyrus.H 나는 원래 개념적으로 전자가 맞다고 생각하는데 C/C++ 문법의 한계 때문에 후자처럼 쓰는 부류다. 이를테면 int* a, b;와 같은 경우. 아무 생각 없이 이렇게 썼다가 피 볼 확률이 0이 아니니까. 가끔 차라리 ... identification에 *, [], ()가 붙어야 된다고 생각하는 사람도 있습니다. 선언을 해석할 때는 identification을 중심으로 해석합니다. 아마 The...
Apr 1st
7 notes