optimization.

산업공학을 전공한 탓인지, 무엇을 하든 항상 효율성(effieciency)과 효과성(effectiveness)을 고민하게 된다. 물론, 경영과학이나 선형계획법에서 하는 수리 계획법(mathematical programming – 시스템을 수리모델로 표현하고 최적해를 찾는 방법)적인 모델링과 계산까지 철저히 하는 건 아니다. 효율성과 효과성을 고민한다는 것은 최적화(optimization)을 고민한다는 것이며, 항상 최적해(optimal solution)을 찾기 위해 헤메이는 여정일 것이다. 더 보기 “optimization.”

Apple. MS를 공격하다.

최근 온갖 곳에 불을 지르고 계신 잡스씨의 Apple은 BootCamp라는 대형 폭탄으로 Microsoft(이하 MS)를 공격할 준비를 시작한 것으로 보입니다. 겉으로는 MS의 Windows XP(이하 XP)를 자사의 하드웨어에서 구동시키는 것으로 고객을 배려하고, 좀 더 많은 시장가능성을 연 것으로 보이지만, 실은 그렇지 않다고 생각합니다.

더 보기 “Apple. MS를 공격하다.”

구글 데스크톱.

정말 최고로 편하다. 으아 ㅡㅜ

최근 정신없이 바빠서 산출물을 어디에 뒀는지도 깜빡깜빡하는데다가..
어떤 정보를 메일에 적어놨는지, 디스크에 적어놨는지 헷갈리기도 하고.
유용한 정보가 있는 사이트를 까먹기도 하고. (웹기록 검색)
등등등…

구글 데스크톱 한방으로 해결.
으으으 초 감동. ㅡㅜ

뭔가 찾는데 걸리는 시간은 단연코 1/10!!!
– 물론 본인이 정리를 잘 안하긴 함;;; –

ps. 저같이 정신없는 사람을 위한 소프트웨어인듯. 이힛.

my programming.

대학시절부터.

1. 2000년.

대학에 첫 입학해서 삽질을 시작할 시점이었다. PHP를 처음 만났고, Python을 접하게 되었으며, JSP를 사용하기 시작했다. MySQL과 Oracle을 알게 되었고, EJB에 관심을 가진채 CORBA를 하게 되었으며, 지금은 쓰이는지도 모르겠는 WML과 지금도 즐겨쓰는 XSLT를 사용해 일을 했다. Pro C를 이용하는 데몬을 만들어 보기도 하고, 갑의 입장에서 일을 하기도 했다. 그리고, C++을 이용해 교수님과 프로젝트를 시작했던 때이기도 하다.

 

2. 2001년.

설계에 눈을 떴다. Design Pattern을 공부하고, UML을 사용하기 시작했다. 접근제어에 대해 고민하며, Template가 없는 Java에 대해 불만이 생기기 시작했다. C++과 Java를 혼용해서 일을 했으며, 프로토 타입은 Python으로 작업하는 패턴이 이때부터 생기기 시작. XML DB를 고민하는 것도 이때 시작. MIDP와 Embedded에 치를 떰.

 

3. 2002년.

월드컵에 휩싸인 채 정신없는 학기를 보내며, 쓰기는 편하지만 귀찮은 Arena(SIMAN)와 지금 학과장인 교수님께서 자랑스럽게 생각하실지도 모르는 소프트파워作 ProcessQ의 알수없는 버그와 전쟁을 치룸. Web Service와 EJB를 놓고 씨름하기도 했으며, Python으로 처음 쓸만한 프로그램을 만들어 봄. Java를 가지고 분산처리 프로그램도 만들어 봄. 제출된 텀 프로젝트중에 스펙은 가장 좋았음.

 

4. 2003년.

암흑기이긴 했지만, 잊혀졌던 바이너리 포맷 읽기 실력을 되찾았으며 파이썬으로 돈을 처음 벌어 봄. 가장 큰 수확은 저 2가지로 병특자리를 보장받게 됨.

 

5. 2004년.

현재 일하고 있는 회사에 입사. Apache Module, NSAPI, ISAPI, Servlet Filter의 도를 깨달음. Samba를 이용해 Linux Application을 Visual Studio로 개발하는 기염을 토하기도 함. Win32에 눈을 떴으며, Generic Programming에 빠져든채 열심히 삽질중. Network에 대한 이해도는 300%정도 향상됨.

 

으음. 릴리즈 년도 기준으로 나름대로 쓸만했던 일들을 정리해보면.

 

2000. Motion and Time Study Calculator (설계 및 구현)

2000. 유무선 통합 컨텐츠 시스템 (설계 및 구현)

2000. 단문전송시스템 (설계 및 구현)

2001. Workflow Management System with Document Versioning. (구현)

2001. Collaborative Authoring System (설계 및 구현)

2001. 4thpass WAP Browser Customization & Optimization (설계 및 구현)

2002. Workflow Simulation System with SNUFlow (구현)

2002. Workflow Simulation System with Handy Bizflow (설계 및 구현)

2003. Distributed Web Document Analyzer (설계 및 구현)

2003. Lotus Notes NRPC Protocol Analyzer

2003. KT SACS Prototyping (설계 및 구현)

 

나름대로 그나마 덜 부끄러운 것들.

그냥 정리해 두고 싶었음.

1년에 대략 3개정도씩?

 

에휴..

 

Modern C++ Design 독후감?

안드레 알렉산드레쿠스저.

제목처럼 C++에 관련된 책이고, 부제인 "제네릭 프로그래밍과 디자인 패턴을 적용한" 과 같이 디자인 패턴과 제너릭 프로그래밍을 다룬 책이다.

Generic Programming은 처음 접했을 때는, DataType에서 벗어난 코드를 짤 수 있다는 것에 다만 "신기" 했을 뿐이었고, 실제로는 Python을 접하면서 Dynamic Typing이란 개념으로 사용을 했었다.

Dynamic Typing을 적용한 Python은 정말 "편한" 언어 였지만, 회사에서는 적용하기 힘든 언어였고, 결국은 C++로 할 수 밖에 없었다. 킁. (Dynamic Typing의 단점.. 느리다..)

그러던 와중에 접한 저 책은…
예술이었다. Wow, Art!!!

위에서 언급한대로 DataType에서 벗어난 코딩이 가능한 것 이외에도, 컴파일 타임에 최대한 많은 일을 하여, 좀더 효율적인
프로그래밍이 가능하도록 하는 것. sizeof와 template의 마술과 #define의 적절한 사용은 C++의 새로운 세계를
열어주었다. 히힛.
– 실제로 읽으며 따라서 구현해보면 느낌이 확연히 다르다. –

처음 읽었을 때의 느낌은 "어렵다."
두번째 읽었을 때의 느낌은 "아.. 내가 하던 C++은 C++이 아니구나! 그래도 어렵다"
세번째 읽고있는 지금의 느낌은 "호오. 구현해보니 이런게 있군! 여전히 어렵다"

function __toggle_hide_zone18()
{
elm = document.getElementById(“hide_zone18”);
if(elm.style.visibility == ‘visible’) __hide_hide_zone18();
else __show_hide_zone18();
}
function __show_hide_zone18()
{
elm = document.getElementById(“hide_zone18″);
elm.style.visibility=’visible’;
elm.style.display=”block”;
}
function __hide_hide_zone18()
{
elm = document.getElementById(“hide_zone18″);
elm.style.visibility=’hidden’;
elm.style.display=”none”;
}


3줄요약.

예술이다.
정말 이런 세계가 있는줄은 몰랐다.
그럼 뭐하나.. 어렵다. 쳇;

다 읽고 나만의 템플릿 라이브러리를 만들꺼다! ㅋㅋㅋ

디지털 뉴딜? 제2의 벤쳐붐?

ZDNet 기사보기

제발 부탁이니, 옛날처럼 엄한데다 돈 팍팍쓰지 말고 좀 제대로 된 곳에 투자 좀 해주길.
98-00년의 그 거품을 다시 보고 싶지는 않으니.

그리고.. 정부발주 프로젝트로 먹고 살게하는 기형적인 기획안따위는 내놓지 않기를.
(거 양쪽다 모두에게 안좋다고..)

12월. 기대해 보아야 하나…
(헛된 희망인라고 생각하곤 있지만… 쩝)

리눅스 전환 고려중.

집에 쓰는 데스크탑 이야기인데.

윈도를 버리지 못하는 이유가 음악/게임이었는데…
이 두 아킬레스건중 음악이 해결될 수 있을듯.

ALSA에서 본인이 쓰는 Prodigy 7.1을 지원하기 시작!!! +_+
JACK으로 low-latency 레코딩 해결!
오디오 시퀀서는 ardour로 해결!

이펙터들은 VST 에뮬레이터나 JACK 플러그인으로 해결하면 될듯 하고…

이러면 Full GPLed Music Workstation이 탄생할 수 있다는..

function __toggle_hide_zone22()
{
elm = document.getElementById(“hide_zone22”);
if(elm.style.visibility == ‘visible’) __hide_hide_zone22();
else __show_hide_zone22();
}
function __show_hide_zone22()
{
elm = document.getElementById(“hide_zone22″);
elm.style.visibility=’visible’;
elm.style.display=”block”;
}
function __hide_hide_zone22()
{
elm = document.getElementById(“hide_zone22″);
elm.style.visibility=’hidden’;
elm.style.display=”none”;
}


그러나…

문제는 공CD가 다 떨어졌다는 거다.. 하드에 있는 애니들은 어쩌란 말이냐!!!

Ideas – TODO

Ideas – TODO

 

1. 엔진 개선안.

현재는 전체 골격만 잡혀있고, 분리가 전혀 효율적이지 못하다.

J2EE 서블릿 스펙 참고.

 

2. CSS 트리 정리.

혹시 있을지도 모르는 테마 개발자를 위한 CSS트리정리. (개발자 입장에서도 필요하다.)

 

3. Directory Link Manager

링크를 디렉토리 형태로 관리하는 페이지.

(야후를 생각하면 된다.)

 

4. 검색기능.

쌓이면 고려해 보자. -_-;

 

5. Import-Export

중간형태의 XML로 Export하고 이를 Import할 수 있는 기능.

다른 블로그의 데이터를 XML로 뽑아내고 이를 PlayAction2로 가져오거나, 백업용으로 사용.

 

6. Tag extension?

현재 사용하는 링크태그를 확장시켜서 Hide-Show 기능 등을 구현.

 

우선순위는 6 – 3 – 2 – (1, 4, 5)