Google Spreadsheets & 몇가지 잡상

구글이 이번에 테스팅을 시작했다는 Google Spreadsheets. 그냥 넘어가볼수는 없기에 어제 테스팅을 신청했습니다. 아침에 출근했더니 메일함에 “후딱 오셈” 이란 내용을 암시하는 듯한 초청장이 와있더군요. 후후. (실은 Writely도 신청했는데 아직 안나왔다는… analytics는 신청한지 한참있다 나왔어요.. -_-)

기존의 스프레드 쉬트 프로그램에서 자주 쓰던 함수들도 구현이 잘 되어있고, 그럭저럭 쓸만합니다. 뭐랄까.. 신기하달까? AJAX로 이정도의 구현이 가능하다는게 놀라울 따름입니다. 허허. Excel이나 csv로 출력하는 기능도 잘 되어 있구요.

MS의 Excel에서 자주 쓰던 기능을 몇가지 해보았는데, 함수 쓸때 드래그로 범위 잡아주는 건 잘 되고, Ctrl+클릭으로 여러 셀을 한번에 지정하는건 안됩니다. 숫자 2개를 써놓고 끝에 잡고 늘리면 등차수열이 만들어지는 기능(설명이 어렵나요?)도 안되고… 아직은 테스트 단계이니 수정이 되리라고 보긴 합니다만.. 구현이 만만치는 않을 듯 하네요. 아. 셀 서식 기능이 좀 딸립니다. 선긋기 정도는 되어야…. _-_

생각해보면, 옛날 도스시절에 쓰던 로터스 1-2-3같은 스프레드 쉬트랑 비교해보면, 기본에 충실해있다는 느낌이 강합니다. 그리고 Sharing option을 보니, 다른 사용자와 손쉽게 공유할 수 있도록 되어있네요.
문득 Gnumeric이 생각이 났었습니다. 초창기의 Gnumeric을 보는 느낌이랄까요? (요즘은 Excel에 절대 뒤지지 않습니다만.. 허허. 오픈 오피스에 좀 밀리는 느낌이.. T_T)

MS Office vs. Open Office가 데스크탑에서 열심히(표준을 놓고) 싸우고 있을때 웹기반의 생산성 플랫폼으로 변신을 꾀하고 있는 Google. 그들의 행보가 내심 무서워지는 것은 SF를 즐겨읽는 제 탓일까요?

iPod으로 영어공부하기?

BBC와 CNN이 Podcast를 지원합니다. 하하.

훈련소에 갔을때 알게된 형이 알려준거였는데, BBC와 CNN을 잘 들어주기만 해도 귀가 트인다더군요. 이해하지 말고 듣기만 하라던데.. 효과가 있을지는 모르겠습니다.

저같은 경우는 iTunes에 있는 Podcast directory에서 검색해서 찾았는데, 보니 웹페이지도 있네요. 🙂

CNN : http://www.cnn.com/services/podcasting/

BBC : http://www.bbc.co.uk/radio/downloadtrial/

CNN은 Digital Story를 듣고 있고, BBC는 Radio News를 듣고 있습니다. (BBC는 선택사항이 없는 듯 합니다.)

괜찮네요. 저도 Podcasting이나 해볼까봐요. 히힛.

Ubuntu Linux 6.06 Dapper Drake 설치.

까막군의 Ubuntu 설치기-

Ubuntu는 Debian이라는 걸출한 Linux배포판을 토대로 해서 나온 멋들어진 리눅스 배포판입니다. 깔끔하고 쓰기 쉽죠. (XP보다 쉽다는..)

Ubuntu Linux 6.06 Dapper Drake가 정식으로 릴리즈되었기에 원래 있던 Ubuntu 시스템을 업그레이드해보려 했으나, 부팅시에 행이 걸리더군요. (왜 그런지는 아직도 모르겠음.) 그리하야, ISO이미지를 받아서 깔아보기로 했습니다. 룰룰루- 받아서 설치를 해보려고 CD를 넣고, 잠시 다른일을 하다 보니, 왠걸 Live CD입니다. 바로 GNOME이 뜨는데… 이쁘군요. ㅎㅎ 바탕화면에 Install이란 아이콘을 누르고 몇번 클릭하니 설치 완료- 리부팅입니다.

아 화면 정말 이쁩니다. 허나 1280*768의 와이드 화면이 안먹는군요. 역시 패키지를 몇개 더 깔아줘야…

설치하고 좀 더 많은 Application을 쓰기 위해 Universe(Ubuntu 정식 팀이 아니라 커뮤니티에 의해 관리되는 패키지들) 저장소 세팅을 해주고, 업데이트를 했습니다. 추가로 설치한건 노트북에서 Wide화면을 쓰기 위한 915resolution과 CRT지원을 위한 815crt 패키지. 둘다 패키지관리자에서 855로 검색하니 뜨더군요. 🙂 그리고, 추가한글 폰트인 ttf-alee와 ttf-unfonts. 노트북에 딸려오는 Windows XP Home Edition 라이센스로 사용이 가능하리라 생각되는 굴림등의 기본폰트4종세트는 설치할까 말까 고민중입니다. -_-;

추가 패키지를 깔고 넓어진 화면을 맛보기 위해 Ctrl+Backspace를 눌러 X를 재시작했습니다. 오오. 바로 먹네요. ㅎㅎ

한글 문제는 그냥 시스템-관리-언어에서 한국어 한번 골라주니 로케일부터 폰트세팅, 입력기까지 한방입니다. 으흐. 괴롭히던 Bold문제도 해결되었군요.

웹서핑을 마음 편하게 하기위해 굴림폰트만 깔면 되는데, 시스템-기본설정-글꼴에서 자세히-글꼴폴더로 이동을 선택하면 나오는 탐색기에 윈도폴더쪽에 있는 gulim.ttc를 드래그앤 드랍하니 자동으로 되는듯합니다. (윈도랑 똑같습니다.) 하하. 세상 참 편하군요.

이전 버젼인 Breezy보다도 더더욱 편해졌습니다. 하하. 인생은- 해피하게- 리눅싱도 해피하게-

ps. 그런데, 구매순위 1순위인 MacBook이 들어오게되면… 크윽; ;ㅁ;

기초군사훈련 다녀왔습니다.

0.

4주간의 군사훈련이 남긴 것은 생판 모르는 22명이 굉장히 친해질 수 있다는 사실과, 28연대의 구막사는 힘들었다는 것. 분대장(조교)들의 삶은 고달프다는 것. 그리고, 드디어! 소집해제만 기다리면 된다는 것.

1.

많이 노력을 하는 모습을 보고 왔습니다. 기존의 군대가 갖고 있는 부정적인 이미지를 제거하기 위해 백방으로 노력하던 모습이 눈앞에 선하네요. 허나, 눈가리고 아웅이라는 진실은 변하지 않더군요. 기만적인 모습이랄까, 본질적인 사항들은 전혀 바꾸지 않으면서, 생활만 좀 편하게 해주더라는…

2.

훈련은 편했습니다. 분대장들도 반말도 안쓰고 “해요체”를 써주는… 예를 들면 “104번 훈련병 이것 좀 도와주세요.” 라든지. 잘못했으면 “104번 훈련병 그렇게 하지 않습니다. 이렇게 하는 겁니다.” 라던지. 언어적 스트레스는 없었지요. 허나, 도저히 동의할 수 없는 안보관이나 정신교육 같은 것은… -_-; 스트레스 증폭제가 되어주더군요.

3.

여자친구가 너무 보고싶어서 가슴앓이가 심해졌었습니다. 심장부근이 엄청난 통증을… 군의관 왈. “스트레스성 심장통증일 수 있겠군요. 나가서 정밀진단 받고 행군은 빠지세요.” 후훗. 야간행군은 열외했습니다. T_T 실은 해보고 싶었단… (진실은 어디에…) 여친은 지금 자기 덕분이라고 감사하라고 압박을 넣고 있습니다. 네! 감사하고 있습니다! 충분히! ;;;

4.

이제부터, 회사일로 물론 엄청나게 바쁘겠지만, SourceArt를 시작해보려고 합니다. 🙂 CN님 파이팅-

5.

사랑해요- 후훗.

optimization.

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

왜 람보 개발자인가?

밝혀두건데, 이번 “SW개발자들이여, ‘람보’가 되라” 사건(?)의 폭풍의 핵이신 김대환 사장님과 병특으로 2년째, 프리랜서까지 포함하면 3년째 같이 일하고 있습니다.

‘람보’라는 마초적인 단어가 내포하고 있는 의미는 영화에서 처럼 무식하게 혼자 일을 다 해치우는 슈퍼 울트라 히어로 메가톤급 개발자를 의미하는 것은 아니라고 생각합니다. 소프트웨어 분야는 분명, 소프트하며 이런 특성은 한명의 인력이 해낼 수 있는 것이 10인분 많게는 100인분이라고 볼 수 있지요. 코드의 미적 요소 (건축과 비견되는 것입니다. 웹디자인 생각하지 마세요.), 효율성, 매일 부딪히는 수학문제들(주로 Complexity지요.)과 같은 두뇌의 회전 방향에 의해 결정되는 것들이 많은 것이 소프트웨어 산업의 현장입니다. 더 보기 “왜 람보 개발자인가?”

Apple. MS를 공격하다.

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

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

영감과 코드

수많은 선구자들은 “기술적 영감- techinical inspiration”이라는 걸 얻어서 컴퓨터-기술역사에 한 획을 긋고 자신의 이름을 후세에 널리 알림과 동시에 저서를 통해 후세들이 먹고 살 기반까지 마련해주는 경우가 종종 있다. 비록 짧은 50년의 역사이긴 하지만, 가장 급속도로 발전한 학문분야라고 할 수 있으며, 수학에 단련된 천재라면 당연한 일이라고 생각될 수 도 있다.

더 보기 “영감과 코드”

Cut and Paste. 이젠 XV신공!

학부시절 유행하던 말이 있었다. 이른바 “CV신공”.

쫓기는 기말때에 어김없이 몰아치는 텀프로젝트의 폭풍우 앞에서 가련한 학부생들은 째다 붙이기라는 기술의 연마를 통해 학점을 딸 수 밖에 없었다. 그리하야 컨트롤키와 C, V키가 닳아서 없어질 정도로(?) Ctrl-C / Ctrl-V 를 눌러댔다. 이래서 생긴 말이 CV신공.

어느덧 시간이 흘러, 회사에 입사하고 열심히 코드를 작성하다 보니 언제부터인가 코드를 복사해서 붙이는 것이 아닌, 코드를 잘라서 붙여놓고 다시 가져다 쓰는 형태로 작업이 바뀌어 있었다. 이제 CV신공이 아니라 Ctrl-X / Ctrl-V를 반복해서 사용하는 XV신공이라 부름직 하다.

Refactoring이라고 부르는 멋들어진 단어를 갖다 붙이지 않더라도, 우선 XV신공은 대단한 위력을 지닌다. 코드의 볼륨을 키우지 않고도 재사용성을 높일 뿐 아니라, 문제가 생겼을 때 이를 추적하고 수정하는 일 역시 간단하게 바꾸어 주는 것이다.

XV신공의 진가는 이 기술을 시전하다 보면, 언제 시전할지 예측이 되며 예측이 될때 미리 시전해 둔다는 점이다. 미리미리 해두면, 코드의 작성 시간은 점점 줄어들며 이를 반복하다 보면 어느새인가 쓸만한 라이브러리들이 만들어져 있다. XV신공에 의해 체득되는 예측력은 이를 가능하게 하는 원동력이다.

또한, STL을 사용해 작업을 하다 보면 컨테이너에 루프를 돌거나 특정 값을 찾아서 어떤 일을 해야하는 경우가 많은데 이런 경우에 XV신공은 더더욱 위력을 발휘한다. STL의 알고리즘을 사용하게 되면, 특정 비교 작업이나 특정 처리 작업들을 자연스럽게 함수자/함수/멤버함수의 형태로 만들게 되고, 이는 매번 루프를 타이핑 하는 양을 획기적으로 줄여준다.

CV신공이 그 코드량을 빠르고 편하게 늘려 거대한 괴물을 양산하는 완성품 생산형 체제라면, XV신공은 코드의 증가량을 최대한 억제하면서 복잡하지 않은 코드를 만들고 코드가 재사용될 확률을 높이는 부품 생산형 체제라고 볼 수 있다.

XV신공을 사용하게 될 경우, 대부분 잘라낸 코드는 함수형태로 만들게 된다. 이 시점부터 함수의 이름이 엄청나게 중요해진다. 함수의 이름을 잘 지어야, 코드의 가독성이 올라간다. 이름을 잘 짓지 못하면, 차라리 CV신공이 나을 수도 있다. – 이름은 적당히 길어야 좋다. 에디터의 자동완성 기능을 믿자. –

XV신공에 의해 생성된 함수-실행단위들은 여러가지 부가적인 효과들을 가져온다. 특정 로직의 진입점에 대한 제어가 명확해지므로 동시성의 처리가 편해진다. 이미 기 작성된 로직과 같은 기능을 하는 다른 로직을 테스트해보거나 옵션 처리로 작업을 시켜야 할때도 역시 편하다. 최적화를 시켜야할 포인트를 찾는 것 역시 편해진다. 적절히 잘라진 함수-실행단위들은 프로파일러들을 통해 수행시간을 측정할 수 있으며, 이는 CV에 의해 생성된 거대한 코드를 디버깅하는 것과는 차원이 다르다고 할 수 있다. 범위가 좁혀지는 것 만으로도 수사망은 더 확고해 지기 마련이므로.

프로젝트 마감시일이 급박한데 어찌 여유있게 저런 일을 할 수 있느냐고 생각할 수 있지만, 결국은 버릇이다. 습관화된 XV신공은 CV신공보다 요구하는 시간이 그리 크지 않다. 대신 얻는 것은 눈에 보이듯 뻔한 일이다. 편한게 좋은 것 아니겠는가. 하하.

ps. C++에는 inline이란 아주 멋들어진 녀석이 있어서, 함수호출비용 같은건 머릿속에서 날려버린지 오래랍니다. 키힛.

STLPort팀에 패치를 보내다.

일하는 중간에 컴파일러를 Microsoft Visual C++ Compiler에서 Intel C++ Compiler로 바꿔보면 어떨까라는 생각이 문득 들기에..

삽질을 해버렸습니다. 므흣.

먼저 stlport 4.6.2로 삽질을 했는데, 하다보니 어차피 5.0으로 옮길거 귀찮기도 하고 해서 stlport 5.0.1로 버젼을 바꾸고 빌드 시도.

boost에서 std::type_info를 못찾는다고 징징거리고, new.h를 인클루드 할 수 없다고 배째기에 코드를 곰곰히쳐다보았더랍니다.

문제는 Intel C++ Compiler가 MSVC 호환모드로 작동할때에는 Intel용 컴파일과 다른 식의 설정적용이 되어야 하는데 그게 안되어 있더군요. 훗. MSVC 호환모드면서 Intel C++ Compiler라면 처리를 다르게 해주어야 하는데 말이죠..

그래서 #if 문에 몇가지 조건문을 넣어주니 완벽하게 작동. 눈물을 흘리면서, 기뻐했더랍니다. 하하.

내친김에 WinMerge로 패치파일 만들어서 stlport팀에 보내주었더니 1시간 좀 지나서 바로 적용해주네요. 아이 기분 좋아라. >.<b

5.0.2에는 단 2줄이지만 까막군의 수정사항도 반영될듯. 에헤.