November 2010
22 posts
Nov 29th
Nov 27th
Nov 24th
6 notes
Nov 24th
1 note
Arachneng on Everything: 프로그래밍 언어를 설계한다는 것 →
arachneng: 공부하는 겸 만드는 거면 아무래도 상관 없지만, 현실적으로 프로그래밍 언어를 만들려면 그게 다른 언어랑 비교했을 때 무슨 장점을 가지는가에 대해서 숙고할 필요가 있다. 학계에서 만들어지는 양산형 연구용 언어들은 보통 정확히 한 가지 특출난 기능을 가진 것이 보통인데, 이런 언어들은 해당하는 기능에 대해서는 분명 특출나지만 다른 것들은 구려서 사용하기는 어려운 것들이 꽤 있다. 반대로 업계에서 필요에 따라 만들어지는 언어들은 유명하면 유명할 수록 특출나지 않는 경우가 많은데, 이는 학계에서 연구되는 새로운 기능들과 개념들이 잘… 무언가를 결정하는 일은 언제나 어려운 것이죠. 항상 트레이드 오프가 있을테고요. 포기하지 않고 길을 찾을 수 밖에 없을 것 같습니다. 제가...
Nov 24th
3 notes
Dante's inferno
Playstation 3가 없기 때문에 갓 오브 워를 할 수 없었다. 그래서 대안을 찾던 중 단테의 지옥이 갓 오브 워와 흡사하다는 이야기를 듣고 이 게임을 구매했다. 이 게임을 대안으로 재밌게 플레이했지만 B점수 이상을 주지 못하겠다. 이 게임에는 심각한 단점들이 있기 때문. 단조로운 배경 - 아무리 지옥이라지만 흙, 돌, 용암으로 점칠된 배경은 좀 심했다. 딱 한번 설빙이 나오자 눈 보신한 느낌. 반복적인 구성 - 필요없는 줄타기와 벽타기가 많은데 그 구성도 비슷하다. 이번엔 벽을 타겠구나 이번엔 줄을 타겠거니. 그리고 심지어는 똑같은 루틴이 연속으로 나올 때도 있다. 특히 결말로 갈 수록 그런 경향이 심해진다. 디자이너1가 막판에 정신줄을 놓았다는 비평이 이해가 된다. 실패한 스킬 트리 -...
Nov 23rd
Nov 22nd
댓글(Disqus)을 추가했다.
댓글로 인한 소통의 효용이 크지 않다고 보아 무시했는데 남의 텀블러를 보면 한 마디 하고 싶을 때가 많았다. 댓글을 소통이 아닌 독자의 욕망을 존중하는 취지로 열어둔다.
Nov 21st
페이스북이 무섭다.
다음이나 네이버가 폐쇄적이다고 욕하곤 했지만 다음이나 네이버를 무서워 한적은 없다. 다음이나 네이버가 제공하는 서비스의 범위가 한정적이기 때문이다. 다음에서는 주로 지도와 카페를 네이버에서는 사전 서비스등을 이용하고 있고 기타 서비스는 이용하지 않는다. 내가 필요한 기능은 없거나 다음이나 네이버가 서비스하는 기능이 부족하곤 했다. 하지만 요즘 페이스북은 다르다. 대부분의 기능들이 내가 원하던 기능들이고 부족한 기능이나 없는 기능은 플러그인을 통해 확장할 수 있다. 페이스 북의 확장성은 매우 뛰어나 매일 다양한 기능들이 추가되고 있어 페이스 북 밖을 나갈 일은 점점 줄어들고 있다. 포탈이나 페이스북 둘다 폐쇄적인 것은 같지만, 포탈은 폐쇄적인 서비스였고 페이스북은 폐쇄적인 플랫폼이라는 거다. 페이스북은...
Nov 21st
Google's preview image data is weird.
(from google preview’s source) src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JC gsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko +MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09P T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAGVA S4DASIAAhEBAxEB/8QAGgABAAMBAQEAAAAAAAAAAAAAAAIDBAUBBv/EAEYQAAEDAgMEBQ ...
Nov 21st
아직 ack는 Win32를 지원하지 못해서 grep을 쓴다.
grep보다는 ack가 나은 도구 인데, 1 회사에서 쓰기 위해 테스트 해보니 제대로 설치되지 않았다. 홈페이지의 설명2과는 달리 아직 제대로 지원하지 못하고 있었다. 순수 Perl로 작성된 도구니 금방 해결되겠지만 좀 아쉽다. 더 나쁜 도구인 grep을 윈도우즈에서 써야 하니깐… 덧붙임: aer0 옹과 keei옹의 조언에 따라 윈도우즈에 설치했다. force install 옵션을 통해 테스트를 넘겨버렸다. 향상된 정규식과 인터페이스, 불필요한 데이터의 자동 제거. 여러 모로 더 이상 grep을 쓸 이유가 없다. 유일한 단점은 PAGER 지정을 위해 환경 변수 ACK_PAGER를 하나 더 추가시켜주는 정도. ↩ 사이트에서는 장점 중 하나로 “ack is...
Nov 21st
thoughts: 발표자는 서론에서 라는 책을 인용하고(“The Fix is in, and... →
kimhyunjun: 발표자는 서론에서 라는 책을 인용하고(“The Fix is in, and it’s Cheap and Simple.”), 계속해서 좋은 해결방안은 싸고 간단하다고 말하고 있다. 실제로 여러 문제를 해결하는데 있어서는 더 많은 어려움들이 있겠지만, 어쨌든 좋은게 좋은거라고 해결책이 싸고 간단하며 효과가 있다면 당연히 좋은게 아니겠는가? 내가 감탄한 것은 발표에서 예로 제시한 횡단보도 사고 위험을 줄일 수 있는 값싸고 간단한 해결책 중 하나이다. 홍콩에 있다고 하는데, 저렴하고… 좋은 디자인이 필요하다.
Nov 18th
10 notes
gray meadow: Swipe와 Flick의 차이 →
nohmad: iOS 개발 가이드 중 Swipe: Place the pointer at the start position. Hold the mouse button. Move the pointer in the swipe direction and release the mouse button. Flick: Place the pointer at the start position. Hold the mouse button. Move the pointer quickly in the flick direction and release… Swipe와 Flick이 에니메이션 적인 차이는 괜찮지만 다른 결과가 나오는 것은 가끔 당황스럽다.
Nov 18th
21 notes
Simple is not best.
간단한 문제라면 복잡하게 만드는게 나쁜 것이다. 하지만 애당초 복잡한 문제는 간단하게 만들 수 없다. 단지 복잡함을 조직화할 수 있을 뿐이다. 음성 인식은 텍스트 입력창보다 본질적으로 어려운 것이고 그 어려움을 줄일 수 있는 마법은 존재하지 않지만, 둘은 같은 인터페이스를 가질 수는 있다.
Nov 17th
3 notes
5 tags
디자인 패턴 #3: 깨지기 쉬운 기반 클래스 (fragile base class) (1)
대부분의 클래스 기반 언어에서 구현 상속 (implementaion inheritance) 과 인터페이스 상속(interface inheritance) 를 지원한다. 구현 상속은 객체의 내용을 그대로 상속 받는 것이고 인터페이스는 계약을 상속받는 것이다.1 많은 객체지향 주의자들은 구현 상속에 반대한다. 구현 상속의 가장 대표적인 문제는 깨지기 쉬운 기반 클래스 (fragile base class) 다. 아래의 코드를 참조하라. class Stack extends ArrayList { private int topOfStack = 0; public void push(Object article) { add(topOfStack++, article); } ...
Nov 15th
4 tags
구글 크롬 UA 변경하기
c:\Users\자신의_계정\AppData\Local\Google\Chrome\Application> chrome.exe —user-agent=” Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1_3 like Mac OS X; ko-kr) AppleWebKit/528. 18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16” 아이폰 구버전용 UA인데 요즘 자주 쓰게 되는 듯.
Nov 14th
Nov 14th
14 notes
4 tags
디자인 패턴 #2: MVC는 해롭다?
Ask for help, not for information. 객체는 어떻게 하는지를 말하지 않고 무엇을 하느냐를 말한다. 객체지향은 객체의 세부적인 구현을 다른 객체가 모르게 함으로서 데이터의 전역 결합을 끊는 패러다임이다. 만약 객체가 무엇을 하는지를 정의하지 않고 어떻게 하는지를 정의하게 된다면 한 객체의 세부 구현을 다른 객체가 알 수 있게 되고 객체 모델을 통한 데이타 추상화가 이루어질 수 없다. 대부분의 개론서는 객체를 데이터와 메서드의 집합으로 묘사하고 있는데 세부 구현에 신경을 쓰기 때문에 좋지 못한 서술이라고 볼 수 있다.1 물론 데이터의 전역 결합으로 문제가 해결되는 것은 아니다. 쉬운 문제는 쉬운 것이고 어려운 문제는 어려운 것. 하지만 복잡한 문제가 데이터의 전역 결합으로...
Nov 12th
2 notes
Nov 11th
1 note
3 tags
디자인 패턴 #1: 디자인 패턴이란?
패턴이 일상화 되어 사용되고 특히 언어에 내장되면 이디엄이라 부른다. 클래스 개념은 예전에는 객체지향 개념을 구현하기 위한 패턴이었지만 현재는 객체지향을 구현하는 이디엄이라 볼 수 있다. 크리스토퍼 알렉산더가 특정 측면에 초점을 맞추면 패턴이 창발 (emergence)된 다는 것을 발견. 예를들어 쾌적한 집에 비중을 마주면 창이나 조명이 비슷한 경향을 보이는 것을 확인할 수 있다. 프로그램의 문제에서도 도메인에 한정지어 본다면 비슷한 해결책의 경향이 창발되는 것을 발견할 수 있다. 패턴은 특정 해결 방법이라고 보다는 그 해결 방법의 일반 구조다. 여러 경우 동일한 정적 구조(객체 구조)가 발견되는 경우가 있다. 보통 의도의 차이가 정적 구조보다 동적 구조에서 나타나는 경향을 보인다. 패턴은...
Nov 9th
macports의 매우 불친절한 에러
아무에게도 도움이 되지 않는 에러 메시지가 있다. dalinaum@Leonardoui-iMac ~ $ sudo port upgrade Can't map the URL 'file://.' to a port description file ("Could not find Portfile in /Users/dalinaum"). Please verify that the directory and portfile syntax are correct. To use the current port, you must be in a port's directory. 설치한게 전혀 없어서 위와 같은 발생한 것. 에러 메시지를 보고 그걸 알 수 있겠는가?
Nov 3rd