2010-01-22

Eclipse가 PermGen Out of memory가 뜰 때 가장 확실한 방법

을 알았다. 물론 이 문제는 오랫동안 이클립스 사용자를 괴롭혀온 문제여서 여전히 확실하다고 말하기는 조심스럽다.

문제는 eclipse.ini를 아무리 수정해도 PermGen값이 반영이 안되는거다. 이것은 visual vm (jdk아래 bin에 있는 jvisualvm.exe) 에서 보여지는 이클립스 프로세스의 PermGen 의 Max 값이 64M로 나오는 것으로 확인할 수 있다

그렇다면 강제로 넣을 수 밖에 없다.

eclipse.exe를 실행하는 바로가기(shortcut)을 만들고 그 Target에 다음과 같이 직접 옵션을 주는거다.
C:\eclipse\eclipse.exe -vmargs -XX:MaxPermSize=256M

이로써 해결 !

올해는 TDD 하나라도 잘 숙달하자

작년 12월부터 테스팅에 대한 공부를 하고 있다. 그냥 JUnit 만 어떻게든 잘 써 보려 했는데 공부하다 보니 이게 그리
만만하지가 않다. Mock도 알아야 하고. 더 넓게는 테스팅이란 분야에 들어가게 만든다.
일전에 TDD by example은 대충 읽긴 했다. 읽고 나서도 무얼 어떻게 해야 할지 몰라 Pragmatic Unit
Testing 도 읽었다.
하지만 연습을 하지 않으니 무용지물. 그러고 몇 년이 지났다.
다시 공부하려고 잡은 책은 TDD Driven - TDD and Acceptance TDD.
이건 중간까지 읽다가 Mock에 대해 공부하려고 잠시 스톱.
지금 보려 하는 책은 JUnit Recipes.
그 다음에 볼 책은
- xUnit Test Patterns - Refactoring Test Code
- Fit for Developing Software: Framework for Integrated Tests
- Working Effectively with Legacy Code
휴~
어쨌건 올해는 테스팅에 대해 잘 정리해보자.

멜링리스트로부터 시작된 여행

어제 야후그룹의 멜링리스트 2개를 가입했는데 오늘 아침에 온 메일 갯수가 100개가 넘는다.
extremeprogramming, domaindrivendesign.

흠... 메일 읽는데에도 엄청난 시간이 소모되겠는걸?

XP에서는 주로 TDD 얘기를 하는거 같고...
몇 개를 간간히 훝어 보다가 하나를 읽게 되었는데 CQRS라는 얘기가 나온다.

첨 듣는 용어인데?
Domain Driven Design책에 나오는건가?

Command / Query Resposibility Separation 이란다. 더 검색을 해보니

http://jonathan-oliver.blogspot.com/2009/10/dddd-why-i-love-cqrs.html
http://jonathan-oliver.blogspot.com/2009/03/dddd-and-cqs-getting-started.html

이런게 걸렸다. 흠... 좀 더 알아봐야겠는걸...

https://jdon.dev.java.net/

이런 것도 걸렸다. JdonFramework = DDD + Domain Events+ Ioc/DI + AOP + CRUD + Cache.
머 이런거란다... 일단 흥미롭다는 생각.

또 어쩌다 이런 링크도 걸렸다. Temporal DB라는데.. 머에 쓰는 물건인지...
(누군가 공유 캘린더 시스템을 만들다 던진 질문에 이런 것에까지 답변이 이른 모양이다)
http://www.cs.arizona.edu/~rts/publications.html

끝이 없다. 하~

2010-01-20

10 Tips to Create a Motivating Working Environment at Home

10 Tips to Create a Motivating Working Environment at Home

집에서 나만의 독자적인 공간을 만들 수 있는지가 관건이겠군요.
아이도 있을 것이고.
집에서는 일 하기를 원하지 않는 아내도 있을 것이고...

우리나라에서 집에서 혼자 작업할 수 있는 환경을 어떻게 만들 수 있을까요?
프리랜서라 해도 항상 프로젝트 위주로 움직이니 말입니다.

배움의 핵심

노력도 해보고
실패도 해봤지.
별 것 아냐.
다시 하면 돼.
다음엔 더 멋진
실패를 보여주자고!

- Samuel Beckett

From Death March

나의 iPhone에서 보냄

2010-01-19

Fixing Eclipse 'Organize Imports' Annoyance For Static Imports

이클립스가 static import의 Assert.* 를 펼쳐버리지 않도록 하려면...

Fixing Eclipse 'Organize Imports' Annoyance For Static Imports

그리고 Window->Preferences->Java->Editor->Content Assist->Favorites에 Assert 클래스를 등록해두면 Ctrl+Space로 content assist를 받을 수 있다.

Quick Fix (Ctrl+1) 로 하는 방법은 없나요? Organize Import도 안되고...

2010-01-15

mocks aren't stubs 번역

Martin Fowler의 Mocks Aren't Stubs을 번역했다.
번역이란걸 해보니 정말 쉽지가 않다. 내용이 많지도 않은데 며칠이 걸린다. 하악...

원본: http://martinfowler.com/articles/mocksArentStubs.html
번역: http://testing.jabberstory.net/mocksArentStubs


음력이 궁금했는데

http://kldp.org/node/97079

한국천문연구원에서 양력/음력 변환을 주관(?)한단다. 그리고 그 변환은 규칙성이 있는게 아니라고... ㅎ

참조: 한국천문연구원 - 월별 음양력 (Google 사이드위키에서 보기)

2010-01-14

eclipse plugin 설치

subversive 설치하려고 하다가 에러가 나서 몇 시간을 헤맸다. 에러가
!MESSAGE Error while loading manipulator.
!STACK 0
java.lang.IllegalStateException: 
!fwConfigLocation.equals(fwPersistentDataLocation)
!fwConfigLocation=C:\eclipse\configuration,
fwPersistentDataLocation=C:\eclipse\plugins\configuration

eclipse.ini 파일에
-install
C:/eclipse
세팅만 하면 된다.

2010-01-12

프로그래머 역량 매트릭스

이걸로 역량진단을 해보면 어떨까... 좋은 일일까 해악이 될까...

in reference to: Programmer Competency Matrix | IndianGeek (view on Google Sidewiki)

Top 10 Programming Fonts

ubuntu font를 예쁘게 하려다 프로그래밍용 폰트 발견.

in reference to:

"Top 10 Programming Fonts"
- Hivelogic - Top 10 Programming Fonts (view on Google Sidewiki)

회사에서 뉴스그룹 운용하기

예전에 회사에서 뉴스그룹을 사용하자고 했던 적이 있다.
게시판 토론을 대체하고 보다 대화에 가까운 도구의  용도로 도입했었고,
더불어 기술적인 토론, 자료공유, 공지사항 알림 등의 이유도 있었다.

그런데 이 뉴스그룹을 통해 공지사항 비스므리 한 걸 올렸다가 한 사람이 받지 못하는 사건이 발생했는데
이로 인해 뉴스그룹 무용론으로까지 비화되었다.

결국 사람들이 이 툴을 사용하길 꺼려하다가 그럭저럭 소리없이 아무도 안쓰게 되었다.
역쉬 새로운 도구를 도입하는 것은 쉽지 않다. 물론 나의 경솔한 생각도 한 몫 했음은 두말할 필요도 없고.

이제 좀 시간이 지났으니 다시 한 번 조심스럽게 꺼내보련다.
물론 어떤 방법으로 죽은 개를 살릴지는 ...

강제사항 없이 토론 도구로만 쓴다 하면서 본인이 원하는 계정으로 등록하라고 하면 되지 머... ㅎ

Dreaming in code


읽어 보니 그 유명하다던 개발자들도 별 수 없는 때가 있겠구나 싶다. 역시 모든 프로젝트는 다르다.

이 프로젝트에 애자일을 적용했다면 어땠을까? 달랐을까? 만약 애자일을 적용했다면 다른 관점으로 책이 쓰여졌을 것이고 그렇다면 실패를 보는 눈도 달라졌을지도 모른다. 머.. 어느 정도 상대적인 평가를 내렸을 수도 있고.

당연한 얘기지만 '프로그램은 사람이 작성한다' 358p.

또 359p에 리처드 가브리엘을 인용한 글은 흥미롭다.

"저는 프로그래머도 시인, 예술가처럼 창의적인 활동을 하는 사람들을 양성하는 방식으로 양성해야 한다고 생각합니다. 사람들은 이게 엉뚱한 소리라고 말할지도 모릅니다. 하지만 시문학 석사학위를 받으려고 교육받을 때 사람들은 무엇을 하나요? 그들은 위대한 시들을 공부합니다. 소프트웨어 공학에서 그렇게 하나요? 아니요. 우리는 위대한 소프트웨어의 소스코드를 읽지 않습니다. 위대한 소프트웨어의 설계를 공부하지도 않죠. 그 디자인을 보지도 않고요. 위대한 소프트웨어 디자이너들의 인생을 공부하지도 않습니다. 즉 우리는 우리가 만들려는 것의 기존 문헌들을 공부하지 않습니다." http://www.dreamsongs.com/PoetryOfProgramming.html
아! 물론 가브리엘의 말은 책에 나오는 그들을 두고 한 말은 아니다.