목요일, 6월 04, 2009

Eclipse 3.5

잘 모르는 부분(org.eclipse.ui.commands와 org.eclipse.ui.menu)이 있어서, 책에도 딱히 나와있지 않고해서 구글을 뒤졌습니다. Eclipse RCP개발을 3.2부터해서인지 Action과 command의 삐딱(?)함을 알지 못했던 것입니다. 많이도 바뀌었는데 말이죠.

그래서
검색되서 나오는 익숙한 헬프화면. 이클립스 3.5의 헬프화면.
3.5의 헬프라...
나의 궁금증을 정확히 해결해 주는 친절한 헬프입니다.

이것을 해결 했지만, 이런 자세한 헬프는 처음 보는 분들에게는 그저 결과물 로서의 가치이고, 과정과 히스토리가 없는 그런 것 입니다.

역설적이지만, 아마도 이런 부분은 기존 개발자와 신규 개발자 사이의 갭을 더 벌어지는 부분이지 않을가 합니다. 물런 아무 생각없이 그냥 써버린다면 문제야 있겠습니까?

수요일, 6월 03, 2009

Eclipse RAP PPT 준비

자 바쁜일도 어제로 마무리 됐고.

이제부터 RAP(Eclipse Rich Ajax Platfomrm) PPT를 만들어 봐야겠습니다.
데스크탑 어플리케이션과 웹 어플리케이션의 요구를 둘다 만족(?) 시킬수 있는 멋진 아이라 생각이 됩니다.
두둥할 만한 이야기 아닌데...


이번에 여차 저차하여 SWT/JFACE을 스터디를 스크린캐스트햇는데 말이죠. (바로 딜리트...) 듣고있자니, 진짜 잠오더군요.
자, 일케 하나씩 만들어서 GEF, EMF 까지만 만들수 있었으면 좋겠네요.

몇번 안되는 스터디 진행을 하면서 느끼는 거지만, 내가 너무 모른다는 거네요.
노짱의 서거에 한동안 충격이었던터라, 웃고는 다니지만, 좀 서글프네요.

노짱
' 우리 아이들에게 결코 불의와 타협하지 않아도 성공할수 있다는 하나의 증거를 꼭 남기고 싶었습니다. '

찔림.

지금의 삶이 불의와 타협하고 있는것인지?
불의를 보는데 그냥 무관심해서인지?

아마도 후자 이겟지.
현실 핑계대는 나는 불의와 타협해 버린 것인지 모른다.

두고 두고 가슴에 찔리도록

금요일, 5월 22, 2009

Eclipse RCP 두번째 날 PPT

Eclipse RCP 두번째 날 PPT
몬가 허술해 보인다. -_-;; 빠진 내용이 여기저기 보이고... 아음.

목요일, 5월 21, 2009

Eclipse RCP PPT 베타

이번에 진행하게될 1일차 PPT이다. 휴... 양이 장난아니다. 설명해야할것도 상당하다.
천리길도 한걸음 부터...

혹시 스터디에 관심있는 분이라면 http://cafe.naver.com/eclipseplugin/3158 참고해주세요.

수요일, 5월 20, 2009

Eclipse RAP Viewer에 버튼추가

오랫만에 RAP 소식입니다. 제품개발하는것도 끝이났고, 더이상 업그레이드나 특별히 요구사항도 없어서 지요. RAP를 좀더 분석해보고 고민해 보길 원하는데.. 기회가 오지 않을지도 모르겠습니다. 나름 많이 슬픈네요.

Viewer상단 오른쪽에 버튼추가하는건 딱히 특히점이 없이 잘 동작합니다.
음음, 멋진 RAP입니다. RAP~~

토요일, 5월 16, 2009

구글에러페이지가

어제 구글에러 페이지.... 가.....

난 그래도 구글을 좋아해....

빌 게츠가 들려주는 직장인들의 성공코드 10

빌 형님의 이야기라 그냥 들었다.
아무 생각없이 들었고....

한때 MS 툴을 사용하여 개발하는 분들과 어느정도 일해보다 번뜩 놀란적이 있었는데...
이건 툴이 사람을 바보로 만드는거 아닌가 싶었습니다.. 개발자들을 MS가 둘러 놓은 울타리 안에서 편하게 사육되는 느낌이랄까 싶었어요.

어느날 서점에 갔다가 MS 출판사에서 나온 책을 집어 들었는데.. 날카로움과 집요함에 심장이 오그라 들었습니다. 스티브 맥코널 시리즈의 책들이었습니다. 그러면서 생각을 바꾸어 먹었습니다. 사람들이 MS를 바보 취급한다고요.

구글 때문에 엠에스가 한물간 OS나 만들고 있는 그런 회사이고, 느낌에 MS도 SUN의 전처를 밟고 있지 않나 하는 그런 생각이 듭니다. (실제로 안드로이드의 위력은 지금부터 모든 지면을 차지하고 있지요.)

MS의 마지막 한수는 모가 될까 궁금하기 이를대 없네요.

하지만, 역전의 발판은 언제나 있는 것이고...

다른사람에게 몬가 설명하려고하면

다른사람에게 몬가 설명하려고하면 기존에 알았다고 생각하는 많은 부분이 아리송하다
결국은 다음과 같은 결론을 낸다. '너는 모르고 있었어'
어떤 하나의 사실에 대해 안다 라는 것과 단순히 들어봣다 라는 것의 차이는 존재한다.
사실 아는 그 것 조차도 아는 깊이에 따라 모른다가 되기도 하며, 모르는것도(?) 아는 것이 되곤한다.

불확실 성에 근건한 삶의 모든것이 얼마나 보잘것 없는지.
어제는 파키스탄에 있는 누나에게 전화를 받았다.
070이 찍힌 전화여서 처음에는 중국분들인줄 알았는데...

불확실 한 삶을 살아가는 우리에게 확실한 몬가를 말하고 싶은 누나를 잠시나마 생각해봅니다.

드림시어터 드럼솔로~~~~~~

카페에 구인 이야기가 나주 나오는데, 대부분 급구다. -_-;;
급구다. 급구다. 급구다.
왜 급구가 되야 했을까? 왜 경력자만 뽑아야 할까?
씁쓸한대..

신입을 뽑더라도 역할에 따라 사람을 뽑는 곳이 나타나길 소망해본다.

금요일, 5월 15, 2009

BCEL이나 BCI쪽 하시는...

나의 사이트 통계를 보면 1년전에쓴 BCEL, BCI관련된 글을 보려고 들르는 분들이 종종있습니다. 흠흠. 자료찾기가 쉽지않아 들르는 분들일텐데요.

엇그제 서점에 갓다가 '자바 가상기계, 멀티미디어 리서치 연구총서', 한국학술정보(주) 라는 책을 보게 되었습니다. 앞부분을 보고있지만 JVM기본 개념에대해 쉽게 설명해 주고 있네요. 못 보신 분들은 반드시 필독 하시면 도움이 되실거라 생각됩니다.

그나저나 이제 잊혀져가는 BCEL이라 아쉽기 이를때 없네요.
이런아이가 나름 배경기술인데 말이죠. Eclipse Platform보다 더 배일에 쌓인것이죠. Eclipse Platform은 사람도 많고 자료도 나름 많구요.

BCI쪽에 탄탄한 백그라운드를 가지고 있다면....

어떤 개기로 다시 BCI쪽을 해보고 싶네요.

수요일, 5월 13, 2009

Eclipse RCP 스터디 준비-일정

Eclipse RCP 스터디 일정이 나왔습니다.일단 생각하면 바로 바로 시작하는 이 아메바같은 급한 성격때문인지 몰라도 시작하게 되었습니다.

http://cafe.naver.com/eclipseplugin/3158 에 좀더 자세하게 나와있습니다.

열심히 준비해 보렵니다. 좀더 쓸만한 셈플을 만들어 봐야겠습니다.

화요일, 5월 12, 2009

Eclipse RCP PPT 목차

우선 다음과 같이 만들어 보았습니다.

Eclipse RCP(Rich Client Platform)에 대한 PPT 목차 입니다. 만들기 시작한지는 두달 전인데 이제야....

1주차
RCP란?
Eclipse 살펴보기?
Hello RCP ?
SWT/JFACE
Perspectives
Commands and Action
Viewer
Editor
실습

2주차
RCP생명주기
Perference Pages
Dialogs and Wizards
Help
Features, Branding, and Update
Product
실습

마지막 3주차는
국제화
디버깅
테스트 등에 대해 짧게하고
파일럿을 진행해 보면 어떨까 싶습니다.

이것말고도 해야할게 정말 많은 것이지만, 여기까지하면 초기 진입하는 어려움은 일단 없을 거라 여겨지네요.

접수는 http://cafe.naver.com/eclipseplugin/3158 에서 받고있습니다.

라이센스검증

제품에서 잘 사용하던 라이센스가 올바르게 작동하지 않는다고 연락이 왔습니다.

지난 9개월동안 잘 사용하였고, 고객에게 수십 카피 팔았으며, 내부테스트까지 수백 번 이상 만들어서 어느정도 검증되었는데 말입니다.
미국에도 팔아서 잘 동작하는데요.

그것도, 화면 UI에서는 권한과 시간이 정상으로 보이는데, 엔진에서 오류를 낸다고 하는군요.

문제가 되는 시스템은 EverRun VM Windows 2003 server 영문 이었습니다.
VM을 가져와서 디버깅 해보는 중에 시간이 문제가 된다는것을 확인했습니다.

우리 시간보다 6시간 정도 늦어서 나는 문제였습니다. 즉, 라이선스 검증로직은 시작시간 종료시간을 검사하는데, 로컬시스템에서 만들던 시간과 검사할 대상이 되는 시스템의 TimeZone이 틀려서 나는 문제였습니다. 한국시간보다 미국 LA는 12시간정도 늦는(?) 그런 경우이지요.

미국에 나갓던 라이선스는 엔지니어가 미국에 출발하기 전에 미리 만들어서 문제가 나타나지 않았던 것입니다.

금요일, 5월 08, 2009

Eclipse - a tale of two VMs (and many classloaders)

Eclipse - a tale of two VMs (and many classloaders)
제목으로 올라온 기사인데, RCP에서 클래스로딩 메카니즘을 설명한 문서네요.

RCP처음 하시는 분들이 제일 막히고 이해 안되시는 부분 일텐데, 가벼운 마음으로 보시면 도움이 되실 듯 합니다.
엔진(?) 만드는데에도 좋은 모델이 될듯해서, 더욱 흥미 롭네요.


http://www.eclipsezone.com/articles/eclipse-vms/

수요일, 5월 06, 2009

네이트온메신져야 안녕.

오늘 네이트온 메신저와 안녕을 고했습니다.

네이트온 메신저는 무료 문자를 보낼수 있다기에 사용하기 시작했습니다.
꽁짜 문자를 사용하기위해 사용하기 시작했다가 어느새 메인 메신저가 되어있네요.

'딱 한시간만 미쳐라'라는 책을 읽으면서 달콤한 유혹인 메신저를 끊어야 겠다 싶었습니다.
담배나 술을 끊는것처럼 중독이 되어있어서 말입니다.

메신저를 Google Talk로 옮겼습니다.

목요일, 4월 30, 2009

Google Service

Google이 일반을 대상으로 하는 서비스가 몇개나 될까? 검색하다보면 하나씩 하나씩 나온다.
그러면서 놀래.. 아니 구글이 이런서비스를.. 왜 이제야 알았지...
이런 서비를 정리 해 놓은 사이트를 본적이 없는데... 이건좀 아쉽지만..

구글의 이런 서비스는 나를 놀라게한다.
더구나 무료이고.

아래는 내가 현재 사용하는 서비스인데... 빠진게 모가 있을까~~

수요일, 4월 29, 2009

Gran Torino, 2008

Gran Torino를 우연히 보았습니다.
그렇지, 아무거나 걸린걸 보는 것이었지.

이번주에 도대체 내가 무슨일을 했는지 모르게 하루 하루가 지나고 있습니다.
그러니까 주말에 연휴이니 벌써 연휴로 가버렸는지도 모르겠고,
제품을 리눅스로 포팅하는 작업도 그렇지 평소라면 간단한 작업을 몇일째 부여잡고 있었지요.

은근히 짜증나는, 별 소득도 없고, 의미도 없으며, 왜라는 질문만 난무하는 .... 그런 하루 였습니다.
휴.. 사실 얼마전에 이야기했던 이클립스에 몬가 하려던 것도 진도가 나가고 있지 않습니다.

영어로 토론하거나 코멘트가 가능해야하는데, 이건 뭐.. 그것조차 되지 않으니 더이상 진도가 나갈수 없는 것이죠.

사실 몇가지 이클립스 제품은 나도 그깟이것 만들수 있어..
그게 모가 어렵다고 하는것도 존재합니다... 그렇지만, 지금까지 경험으로 미루어.. 제품이 그렇게 나온것은 많은 사람들의 의사교환과 토론 고통의 인내를 견디어 나온것을 잘 압니다.
그저 코딩실력만 있어서는 안되는 것이죠.

아이디어와 기획 의사교환 초기 파일럿과 테스트를 거쳐 사용자들에게 배포하고 다시 의견을 반영하고 그 결과가 사용자들에게 좋은 결과로 나타나서 다시 제품화하는 과정을 격는 일련의 과정을 겪여야 하는것 입니다. 말이 쉽지 결코 쉽지 않는 과정을 지금까지 경험을 통해 알수 있습니다.

다시 Gran Torino라는 것으로 돌아와서, 영화를 보는 내내 얼마나 몰입되던지 말입니다.
그 일상의 지루함이 감동이었습니다.
영화를 다 보고 난 후에 나의 기분은 전혀 새로워 졌습니다.
그냥 기분이 좋아지고, 낳아졌습니다.

그리고 다시 열정이 되살아 났습니다.
사실 무지 부끄러운 이야기지만, 영어 문법책을 다시 보고 있습니다.
그리고 틈나면 영어로 된 무엇이든 듣고 써보고 있지요.

내가 하고 싶은 것, 앞으로 되고 싶은 일을 향해 좀더 나를 정진해야겠습니다.
몇분이나 이 글을 보실지 모르지만, 한금이가 꼭 되어 보이겠습니다.

월요일, 4월 27, 2009

엄마보러 광주갑니다.

부모님 뵈러 광주 가네요.

변변치 않는 재주 이지만 Eclipse Platform(SWT/JFace, RCP, RAP, PlugIn, EMF, ECF, GEF) 요정도 기술등에 질문 거리가 있으시거나 궁금한 분은 연락주세요. 몇시간 정도는 가벼운 마음으로 충분히 가능할 듯 합니다.
사실 EMF, ECF, GEF은 안해본지 반년에서 2년 이상 된것도 있으니... 질문 받으면 모를지도 모릅니다. -_-;;
광주에는 5/1 - 5/4까지 있을예정이구요.

혹은 저의 기술 베이스를 아시는 선에서 질문도 괸찮고요.
전라도 광주 변방이라 질문하실분이 없을거라(?) 예상해 보지만 말입니다.

황금연휴가 다가오네요.

ps) 사실 아무것도 없으면서... 괸시리....
지방에 산다는 이유로 좋은 컨퍼런스나 모임 못 가지셨을텐데....
무슨 대단한 존재도 아니면서 글올리네요. 이런글 올렸다가 싸대기로 욕먹는거 아닌가모르겟네요. -_-;;;;

영어로 말을 걸면 한글로 말해주는 친구다.

Google Talk에 친구를 추가했다.

친구명은 다음과 같고.
en2ko.dict@bot.talk.google.com

영어로 말을 걸면 한글로 말해주는 친구다.

SWT/JFace Study PPT

저번(?)에 진행했던 SWT/JFace 스터디에 대한 PPT를 올렸습니다.

1주차 PPT


2주차 PPT


3주차 PPT


SlideShare라는 곳에서 ppt, pdf등을 보여주는 서비스를 해주고 있었네요.
마음에 드는데요

할수 있다면 5월 중순에 Eclipse RCP 스터디(?)를 할수 있도록 PPT를 준비해야겠습니다.
물런 무료 스터디는 모두에게(?) 별로 좋지 않고, 유료이어야한다는 생각에는 SWT/JFace 하면서 느끼는 결론 입니다.

혹시 그래서 못하게 된다면, EMF, GEF, ECF, DSDP, GMF등의 PPT를 준비해 볼 생각입니다.
나를 위한 준비이기도 하고요

목요일, 4월 23, 2009

구글을 지탱하는 기술

구글을 지탱하는 기술이라는 책을 읽고 있습니다.

흠..... .... .... .... .... .... ....
요새 저의 블로그 수정하는 재미에 빠져있네요.
저의 개인 소개를 바꾸었고, Wish list를 추가했으며, 지지자들 리스트를 추가했고(첫번째 지지자 모집중입니다), 레이블을 추가, 다른 블로거에게 친구신청을 했고............
이런기능은 블로그를 처음만들때에는 없었던 기능(?) 이었습니다.

책을 읽으면서 이런것이 이해가 됩니다.
이런 부분이 내가 구글을 사용하는 이유가 됩니다. 블로그가 계속 진화합니다. 내가 편하게 흥미를 갖도록 말이죠.
묘한 매력이랄까요?

비교를 해보자면 네이버와 다음의 카페나 이런것은 잘 살펴보진 않았지만 몇년전과 별반 달라지지 않은 서비스(?) 인듯합니다. 서비스가 진화하지 못하고 유지보수(?)하기 바쁘랄까요.

내가 관심이 없어서 인지 몰라도 말입니다.
시간이 지나면서 계속 발전하는 구글의 기존 서비스를 볼때마다, 그리고 사용할때 구글의 마법에 사로 잡혀가는 듯 합니다.

구글 빠 한금이...

태양처럼 변하지 말아줘.

RAP full screen

보통 RCP같은 경우 WorkbenchWindowAdvisor를 상속받은 클래스 즉,

public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

public void createWindowContents(Shell shell) {
super.createWindowContents(shell);
shell.setMaximized(true);
}
를 수정해 주면 됩니다. 그렇지만 이렇게 RAP를 해주면 전체화면으로는 되지만, 정작
전체화면되어지고 화면안에 있는 Widget들은 전체화면에 맞게 재 배치 되어지지 않습니다.
내일 쯤 시간을 내어 디버깅을 해봐야 겠습니다.

그래서, 모든 화면이 오픈되고 마지막 후처리하는 메소드에 다음과 같이 추가하면 되겠습니다.
public void postWindowOpen() {
final IWorkbenchWindow window = getWindowConfigurer().getWindow();
Shell shell = window.getShell();
shell.setMaximized( true );
}

그러면 원래 의도했던 화면이 생성 됩니다.

RAP of history

무언가 찾다가 버그질라에서 발견한 내용인데요.

2007년도에 RAP커미터중 한사람인 Jochen Krause 가 쓴 글인데요.
출발은 우리와 비슷한 프로젝트(?)로 출발 했지만, 나중에 결과물은 천지차이네요.
그 뚝심과 인내에 경의를 표하고 싶어 지네요.

원문은 (http://dev.eclipse.org/newslists/news.eclipse.technology.rap/msg01601.html)

Here you go with some RAP history:

RWT has indeed evolved from Innoopracts W4T technology, W4T stands for "www windowing toolkit". The first release of W4T was in December 2001, and it was our goal to make Java web development easier. This was not en vogue at that time, most of the Java crowd liked the complexity ;-)
We created a visual design tool for W4T as an Eclipse plugin - W4T Eclipse. W4T Eclipse became pretty popular with some groups as it simplified the creation of Java web apps quite a bit.
However, W4T was not a standard and we had an eye on JSF, which took almost forever to complete. We created a JSF compatible implementation that we dumped again, because we thought that the API of the components is almost impossible to understand for a Java (the language) developer. At least, we implemented a lifecycle management similar to that of JSF for W4T and moved ahead in 2005 to ajaxify the library. With the new Ajax capabilities we thought about enabling a workbench and plug-in based development approach for web applications. We successfully implemented proof of concepts for a "web workbench" as well as running osgi within a webcontainer in the summer of 2005. All of that was still based on the W4T api.

The RAP project was proposed in March 2006, and became an Eclipse project in late June 2006. It was still the plan to create a workbench implementation with W4T as widget toolkit. We realized pretty quickly that the Eclipse community preferred the SWT api for various valid reasons (not because W4T api was bad, but for code reuse, skill preservation, ...). So we began to re-implement the component layer with mostly SWT api and qooxdoo on the client side. Based on ongoing community feedback and after aligning with Steve Northover we decided in March 2007 to make RWT a subset of SWT.

That was the short version ;-). With respect to the development process of the Application framework the most notable thing in my eyes was the adoption of Eclipse APIs during the development. Even in the W4T days we had a JFace implementation (not fully API compatible). We decided at some point to innovate around an existing application framework that we think is very powerful (osgi, rcp), even if we don't agree with everything. If you want to get more info on how Eclipse as an application framework has evolved there are some great (old) slides by Jim de Rivieres. Erich Gamma and others. I don't have them handy but I think I could dig them out.

Cheers, Jochen

화요일, 4월 21, 2009

Finding SWT Leaks with Sleak

http://eclipsesource.com/blogs/2009/04/17/finding-swt-leaks-with-sleak/

Sleak 소개 팁입니다.

01....
02.org.eclipse.swt.SWTError: No more handles
03.at org.eclipse.swt.SWT.error(SWT.java:2966)
04.at org.eclipse.swt.SWT.error(SWT.java:2863)
05.at org.eclipse.swt.SWT.error(SWT.java:2834)
06.at org.eclipse.swt.widgets.Widget.error(Widget.java:395)
07.at org.eclipse.swt.widgets.Control.createHandle(Control.java:482)
08.at org.eclipse.swt.widgets.Composite.createHandle(Composite.java:229)
09.at org.eclipse.swt.widgets.Control.createWidget(Control.java:497)
10.at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:131)
11.at org.eclipse.swt.widgets.Control. (Control.java:97)
12.at org.eclipse.swt.widgets.Scrollable. (Scrollable.java:72)
13.at org.eclipse.swt.widgets.Composite. (Composite.java:87)

이미지나 폰트등을 사용한 후에는 반드시 dispose를 호출해주어서 리소스스를 시스템에 반납해주어야하는데요.
그러지않고 무한정 생성만했을 경우 위와 같은 상황이 나타납니다. 물런 사용할때는 당연 ImageRegistry, FontRegistry 이것들을 관리해주는 JFaceResource를 사용해서 재사용해야 겠습니다.

이것들을 이용해서 처리해도 너무 많은 자원을 생성해서 가지고 있다면 위와 같은 에러를 만날수도있습니다. 시스템에서 위의 리소스를 만들수있는 한계가 있기때문에 그런 것 입니다.
이 것을 생성할수 있는 한계는 os마다 틀리기때문이지요.

어찌됐든 위와같은에러가 나왔을때 사용하는 도구가 Sleak입니다.
Sleak 홈페이지가도 처음하시는 분들은 감갑자기도 힘들텐데 정리가 잘되어 있네요.

알면 엄청나게 편한것이고, 모르면 몇일 날밤 새는 그런 것이므로 한번쯤은 꼭 봐두면 좋을듯 싶네요.

금요일, 4월 17, 2009

저번주 부터 오른손 검지 손가락이 많이 아프네요.
엄지부터 검지까지 전체적으로 아프네요.

게임을 너무 열심히 해서인가도 싶고요.

어제는 급기야 오른손 전체에 맨소래담을 발랐습니다.
이것도 일종의 직업병인데 말입니다.

목요일, 4월 16, 2009

RAP 근거리 미래

Eclipse나 혹은 RCP가 어떻게 발전하는지 궁금하다면 혹은 근래에 어떻게 나올것인지 궁금하다면 나는 RSA(Rational Software Architect)나 로토스 노츠??등을 찾아봅니다.

그러면 그 다음버전에 이클립스는 대부분 그렇게 변해서 나옵니다.
외형에서부터 기반 프레임웍에 해당하는 것까지 그렇습니다. 그럴수 밖에 없는것이 그 개발팀이 있는곳에 커미터들이 있기 때문입니다.

자 그럼 RAP의 미래는 어디서 엿볼수 있을까요?
그것은 http://www.eclipse.org/rap/demos.php의 CAS PIA를 통해 어느정도는 볼수있습니다.
어느 블로거의 글에서 봣는지 모르지만 e4에서 나오는 것들에 대한 힌트가 있었는데, 그 힌트에 대한 이야기가 이 프로젝트에는 그대로 녹아 있습니다.

RAP E4 기대가 됩니다. 참고로 아래프로그램은 영어가 아니라 독어입니다.
RAP의 한 축을 이루는 qooxdoo도 독일에서 나왔으며, RAP커미터 중 두명은 아래 CAS Software사람입니다. EclipseSource에 속해있는 커미터는 8명입니다.



누군가가 개발하면 표준이되고, 누군가는 표준이 되는 코드를 쫒아가면 되는데...
이제 그만 쫒아가고 싶습니다.

한국에서 이런것에 대해 고민하는 기업과 학교가 좀더 투자하고 이끌어 나갔으면 좋겠습니다.

화요일, 4월 14, 2009

눈물만 주르르

어제부터 개발하는 시스템의 리팩토링을 하고 있습니다.

대략 쓰레드가 10개 미만, 클래스 40개 미만의 작은 시스템입니다.
시스템을 모니터링 하는 것이 주요한 기능입니다.

처음에 파일럿으로 만든 베이스 구조(Base Framwork)를 그대로 사용하고 있었습니다.
몬가 하나 수정할때마 베이스가 구조가 허약함을 느끼고 있었지만, 고치는게 귀찮고, 약간의 귀차늠을 감수하면 되므로 그냥 두고 있었습니다.

어제 다른 부분 리팩토링을 하려다가, 여전히 걸리는 것이 베이스 구조 이었습니다.
RAP에 대한 이해도 부족한채 만든 구조가 튼튼할리가 없습니다.

고치기 시작 대략 7개 미만의 클래스가 추가 되었습니다.
여러가지일을 하는 클래스를 쪼개 었지요. 흠흠흠...

역시나, 그림이라도 한번 그려보고 했어야 하는데 말입니다.
무료 uml plugin 도구를 찾아봐야겠습니다. RAS가 그립네요
눈물만 주르르 입니다.

월요일, 4월 13, 2009

여러 블로거들을 순회하다보면 GEF, ECF, EMF 이런 프로젝트 이야기가 많이 있습니다.

지금 문든, 그냥 해보고싶다는 생각이 드네요.
이제 이런것들의 개발을 안한지 2년이 되가서인지.. 기억이 하나도 안나네요.

그냥 이것 저것 복잡한 일들이 많을때는 미치도록 집중할 그 어떤것이 있었으면 좋겠습니다.

토요일, 4월 11, 2009

RAP 개발환경(RAP Developement Environment)

RAP 개발환경을 먼저 이야기를 해야하는데, 이전 게시물과 순서가 조금 뒤바뀐듯 합니다.

개발 환경
Java Version 1.6.0
Eclipse Version: 3.4.2 Build id: M20090211-1700
PlugIn : WTP, Log4E 등
RAP Version : 1.2.0.20090319-1224 M6
(1.1.2 service release보다 1.2 M6을 권장합니다.)

Window Vista
MySQL 5.5

실제운영하게 될 Target Platform : Open Suse 10.x버전

환경에 작업해야 했습니다.

FireFox 3.0.8, Internet Explorer 7.x, Google Chrome, Apple Safari에서 모드 잘 동작했습니다.

그 중에 Google Chrome가 제일 빨랐 습니다.
Ghrome은 특정부분에서 화면이 어그러지는 현상이 발생했구요. 아마도 속도를 위해 디테일을 희생한 느낌이었습니다.
Explorer에서는 특정부분에서 동작하지 않았습니다.
(Thread가 동작하는 화면에서(UICallback때문에) Dialog창을 열면 javascript에러가 나고 죽습니다. 이건 모 설명하기가 까다롭네요, 결국은 로직을 바꾸어서 모든 브라우져에서 동작하도록 수정했습니다. -_-;;)


프로젝트 구성은 위와 같습니다.

com.xxx.rap.monitor 프로젝트는 비지니스로직이 있는 플러그인 입니다.
일반적인 실행은 jetty로 수행합니다.

com.xxx.rap.monitor-tomcat 프로젝트는 wtp에서 사용할 web 프로젝트 이구요. 그래서 톰켓으로 올려서 테스트 해야하면 이 프로젝트를 사용합니다.

com.xxx.rap.monitor.feature 프로젝트는 tomcat으로 실행하기위해 빌드하는 프로젝트입니다.
com.eclipse.rap.demo.feature 프로젝트를 모태로해서 수정한 것이구요. 수정 이유는 제 블로그 글 중에 있으니 읽어보면 되겠습니다.
나머지 프로젝트는 feature빌드하기 위한 부분 플러그인입니다.

사실 글로 적으니 몇줄 안되니 무엇인가 많이 빠지 느낌입니다.

RAP의 장점은 실제로 개발을 주도하는(?) EclipseSource에
Why RAP 주재로 다음과 같은 소개글이 있습니다.
Single Source RCP Desktop and Web Applications
Eclipse Developers are up to the speed in web development quickly
RAP enable reuse
RAP works on all popular browsers

RAP로 제가 좀 독특한 프로젝트를 했는지 몰라도 Single Source 라는 주재는 납득하기 힘든면이 있습니다.

금요일, 4월 10, 2009

SWT RCP/PlugIn 테스트에 관한 글입니다.

http://swarmy.free.fr/wordpress/?p=66

테스트해보지 않았지만, 상당히 자세한 글이라 그리 염려스럽지 않을듯 합니다.

독일분 가튼데, 대문에 아래와 같은 글이 있네요. 글 보면서 한참을 웃었는데요. 어찌나 내 이야기 같던지 말이죠.
테스트에 관심있는 분들 댓글 부탁들요.
자세히 보지 못했지만, 글중에 다른 커뮤니티의 테스트 이야기등도 나오니 더 좋더군요.

100 little bugs in the code, debug one, recompile, 101 little bugs in the code

목요일, 4월 09, 2009

Desktop Application 개발자의 어려움

어제 문득 Spring 기본서를 뒤적이고 있는 나를 보았습니다.
변방(?)에 있는 나로서는 비주류다 보니 무엇이든 개념이 부족합니다.
잘 구현된 Spring자료를 보다보면 아이디어가 많이 떠 오릅니다.

Web Application개발자들이 부러울때가 많이 있습니다.
풍부한 읽을거리와 리드하는 많은 개발자들이 많이 있고, 한글자료도 나름 풍부하여, 의지만 있다면 얼마든지 가능하겟습니다.

체계적인 방법론부터 시작해서 프로젝트 종료까지 일의 순차는 참 부러운듯합니다.

그에비해 Desktop Application 개발자들이 보기에는 자료가 많이 부족한 듯 합니다.
길은 서울로 통한다지만, 역시나 Desktop Application 개발에 맞게 커스텀된 자료들을 찾아보기 힘드네요.
좀더 원론적으로 접근할수 있는 자료들이 많이 있었으면 좋겠습니다.
이런 의미에서 EclipseCon과 같은 세미나는 더없는 부러움이었습니다.

Web Application개발과 같은거 아니냐고 생각할수도 있겠습니다만, 나름 Web Application개발과는 또 다른 Something이 있습니다.

그런다고 외국의 좋은 블로거들과 사이트를 들여다 보는것도 한개는 분명합니다.
이미 정점에 올라선 Platform 자료들과 그 완성된 자료들을 봐야하는 나로서는, 외 그렇게 디자인 했는지가 궁금할 뿐입니다. 정점에 올라선 소스는 보는것은 그리 궁금치가 않습니다.

적다보니 나도 맨토가 필요하다는 생각이 듭니다.
새벽까지 끙끙거리며 자료를 보는것도 힘들고,.. 함께 이런부분을 좀더 고민하는 동료가 많이 있었으면 좋겠습니다.
염치가 없지만, 허접한 나의 현실 입니다.

RAP with GEF

RAP e4에 GEF소식이 있네요.
http://www.architexa.com/labs/#gef


http://www.eclipse.org/newsportal/article.php?id=6023&group=eclipse.technology.rap#6023 글의 글타래를 보면 더 정확한 정보를 얻을수 있습니다.

수요일, 4월 08, 2009

RAP(RCP) 시작위치 조절(ApplicationWorkbenchWindowAdvisor#postWindowOpen() 고찰)

이것은 RCP도 동일하게 적용됩니다.

RAP가 처음 시작했을 때 보통 왼쪽 가장 자리에서 시작하게됩니다.
브라우저 제일 왼쪽에 딱 붙어서 시작하게 되는거지요.

이것을 화면 가운데로 혹은 원하는 곳으로 뛰어주게 하고 싶을 것 입니다.

이렇게요.

이것을 조절하고 싶을때는 WorkbenchWindowAdvisor를 상속받은 클래스 즉 보통 자동으로 생성되는 ApplicationWorkbenchWindowAdvisor#postWindowOpen() 메소드를 수정해 주면 되겠습니다. WorkbenchWindowAdvisor는 아는 것처럼 초기 원도우의 시작과 끝을 지정하고 어떻게 화면이 open되어야 하는지 조절하는 역할을 합니다.

그중 preWindowOpen() 메소드는 원도우가 어떻게 구성되어야 하는 것인지 정의하고(화면의 크기와 쿨바의 보이기 유무등), postWindowOpen()는 원도우가 오픈된 이후의 부가 적인 것들을 정의하게 되어 있습니다. 우리가 하려고하는 초기 위치 설정이라던가, 아래에 있는 것처럼 Preference 중에 우리가 원하는 것만 오픈한다 던가, RCP 일 경우 tray icon을 설정한다던가요.

진행하는 프로젝트의 코드는 다음과 같습니다.


위의 코드의 설명은 대락 Preference중에 ID가 com.mantech으로 시작하는 Preference만을 관리 하겠다는 것입니다. 나중에 Preference화면을 열었을때 com.mantech으로 시작하는 것만 열리겠지요. 이 코드를 사용하는 이유는 확장점중에 에디터나 ui를 사용할 경우 그 확장점에서 정의 preference도 나타나는데 이것을 지워주기 위함입니다.

그리고 두번째는 초기 시작 위치를 조절하는 것이지요. 시작 위치는 75,25만큼 이동해서 오픈되겠습니다. 중앙에 오픈하려면 창의 크기 자신의 크기를 계산한 다음에 이동해도 되겠지요. 자신의 초기 크기는 preWindowOpen에서 정의한 크기가 되겠구요.

마지막 세번째는 window가 오픈된 이후에 시작해 주어야할 Thread를 시작해 주었습니다. job을 이용해도 되겠습니다만... 혹은 ui와 상관없는 것이라면 확장점 org.eclipse.ui.startup를 사용해도 되겠습니다.

쓰다보니 굉장히 길어 졌네요. 이 부분도 좀더 안정적이고 멋진 제품을 만들기 위해서는 알아야 할 내용입니다. 위에서 설명한 것 이외에도 설명해야 할 부분이 많이 있습니다만 차차 하나씩 적어 보도록 하겠습니다.

EclipseCon 2009 Demographics

이클립스콘 참가자들 통계라고 합니다.

외국에서는 이클립스 개발자들의 68%이상이 3년이상 이클립스를 사용했다고 합니다.
참여자들의 역할은 40% 개발자, 4% 테스터가 참여했네요.
음, 한국 같으면 90%가 개발자일(?)텐데..

자세한 내용은 http://eclipse.dzone.com/articles/eclipsecon-2009-demographics를 참고하세요

부러운 소식

어제 eclipse community에서는 커미터 선거가 있었나 봅니다.
부럽습니다.

앞으로 이클립스에 관한 팁이나 글을 적을때는 되도록이면 영어로 작성해야겠습니다.
물런 될런지나 모르겠습니다.

RAP로 Log in 부분 작성하기 2

어제 로그인 소스에는 정작 로그인 다이얼로그에 대한 설명이 없었습니다.
로그인 다이얼로그는 일반적인 로그인 창으로 작성하면 되겠습니다.


중요 포인트는 로그인 후에 세션을 설정해 주는것에 있습니다.
이유는 아래에서 설명했던것처럼 시스템이 비정상적으로 종료되었을때를 대비하기 위함입니다. 물런 사용자가 적고, 리소스를 많이 사용하지 않는 시스템에서는 아무 문제가 없겠지만 말입니다. 정작 문제가 되면 처음으로 살펴봐야할 부분이지요.

개발환경 설정이 약간은 복잡하므로(개발 테스트는 jetty, 운영은 tomcat)로 하므로, 저는 로그인 후에 세션 타임아웃을 지정하는 코드로 작성 했습니다.(일반 web은 web.xml에 세션 타임아웃을 지정할 수 있습니다)

코드의 중요한 부분은 다음과 같습니다.
대략 디비에서 조회한 아이디/패스워드가 맞다면 다음과 같은 코드를 추가해 주어야 합니다.

// 로그인이 정상적으로 됐다고 생각한다.
if( seMasterInfo != null ) {

ISessionStore sessionStore = RWT.getSessionStore();
final String sessionId = sessionStore.getId();
logger.info("[New RAP Session creation ] [session id]" + sessionId + "[login id]" + txtID.getText());

ISessionStore ss = RWT.getSessionStore();
HttpSession hs = ss.getHttpSession();
hs.setMaxInactiveInterval( 24 * 60 * 60 ); // 24시간동안 세션설정한다.

이렇게 하면 세션이 expire될때에는 ApplicationWorkbenchWindowAdvisor#postWindowClose()가 호출 될 것입니다.

그리고 정상적인 종료를 눌렀을 경우에선 ApplicationWorkbenchWindowAdvisor#preWindowShellClose()가 호출 되겠지요.

화요일, 4월 07, 2009

저번 주부터 거의 EclipseSource, Bugzilla에서 놀고있습니다.
Eclipse RAP소스를 통째로 받아서, 나름이해해 보려고 시도 중이기도 합니다.
RAP팀의 고통이 보이는 코멘트와 소스가 보이기도합니다.

예를 들어서 코멘트중에 'Equnox코드는 너무 복잡해서 다 이해하기 힘들다. 그렇지만, Equnox 버그인듯하다' 라던가....

영어가 어렵네요.
Eclipse 소스는 이제 볼만 하네요. 어디서부터 봐야하나, 시작해야하나.. 이런건 이제 내 안에 어느정도 정리가 된듯합니다.
그렇지만, 영어는 먼산인듯... 계획을 가지고 다시 시작해야할듯합니다.

Go to basic.

일요일, 4월 05, 2009

RAP로 Log in 부분 작성하기

RAP프로그램에서 로그인을 부분을 작성하는 방법을 설명하도록하겠습니다.

RCP라면 보통 "org.eclipse.ui.splashHandlers" 확장점을 이용하거나 합니다.
그렇지만 불행히도 RAP는 이 확장점이 존재 하지 않습니다.

그래서 Eclipse3.2에서 사용하던 방법으로 처리해야 합니다.
RCP가 처음 시작하는 확장점은 "org.eclipse.core.runtime.applications"인 것 처럼 RAP는 "org.eclipse.rap.ui.entrypoint"를 시작점으로 하여 프로그램이 출발합니다. 이 시작점에서는
그래서 로그인 코드는 시작점(IEntryPoint은 RCP에서의 IApplication과 같은 용도)에 정의하면 되겠습니다.


RAP에서 로그인부분이 좀 틀린점이라면 로그인을 정상적으로 하고 난 후에 세션을 정의해 주는 부분입니다. 아래게시물에도 있었지만, 시스템자원을 반납해야하는등의 시스템에서 마무리 해야하는 코드를 넣어야 할 경우에 사용하기위해서 말입니다.

목요일, 4월 02, 2009

아주 가끔이자만, 어설픈 내가 좋을때도있다.

어설퍼서 다름 사람에게 매사에 미안하고 잘못한것 같은 나 이지만...
매일 밤 늦게까지 공부해야하고 놀때도 책봐야 겨우 겨우 비슷한 수준이 되는 내가...
아무리 고민해도 허접한 결과물만 나오는 나이지만...

좋을때도있다.

그래서 다른 사람을 이해하고 싶네요.

가끔은 막 욕해주고싶네요.

수요일, 4월 01, 2009

RAP

widget이 종료될때 dispose()를 호출해 줍니다.
뷰파 트가 닫힐 경우라던가 이럴때 dispose를 호출해 주어서 사용하던 자원을 반납할수 있게 됩니다. 이미지도 반납해 주고, 사용하던 thread도 종료해주고요.

종료버튼을 눌러주면 dispose()메소드를 잘 호출해 주었습니다.

오늘 무심코 browser의 x버튼을 눌러서 종료했더니 dispose()를 호출해 주지 못했습니다.

버그 질라를 통해, 다음과 같이 해결 했습니다.
이런 경우는 session의 timeout을 이용해서 처리 해야 합니다.
Session을 설정하면 Session이 expire될때 RAP가 WorkbenchWindowAdvisor#postWindowClose() 를 콜백 줍니다.
그래서 꼭 없어져야 하는 자원이 있다면 postWindowClose에 코드를 집어 넣어야 합니다.

Login시에 session을 설정하고 sessiontimeout시간을 지정합니다.
//
// http session time을 정한다.
//
ISessionStore ss = RWT.getSessionStore();
HttpSession hs = ss.getHttpSession();
hs.setMaxInactiveInterval( 24 * 60 * 60 ); // 24시간동안 세션설정한다.

// 종료될때 호출해 주어야 하는 자원을 아래 처럼 기록해줍니다.
@Override
public void postWindowClose() {
................
}

화요일, 3월 31, 2009

조금씩 그럴싸 해지는 듯 하네요.



자 기대해 보아요.

com.eclipse.rap.demo.feature->ConfigIniCreator 버그

외부 was로 프로젝트를 빌드할때 RAP개발자들은 대부분 com.eclipse.rap.demo.feature를 기반으로 작성하게 됩니다.

그러나 com.eclipse.rap.demo.feature Project에 있는 PlugIn에 다음과 같은 문제가 있습니다. 사용법은 아래 게시물 보면 있을 거구요.

ConfigIniCreator를 실행하면 PlugIn의 목록을 출력해 줍니다.
그런데, Plugin JAR이름이 org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar일 경우
org.eclipse.equinox.preferences_3.2.201.R34x@start처럼 생성이 됩니다.
원래의 의도는 org.eclipse.equinox.preferences@start 이어야 한다고 생각합니다.

PlugIn이름이 _바가 두 개 들어가 있습니다.
이것은 ConfigIniCreator의 51라인 int underscorePos = fileName.lastIndexOf( "_" ); 때문입니다.

이 코드는
int underscorePos = fileName.indexOf( "_" ); 처럼 수정 되어야 합니다.

월요일, 3월 30, 2009

RAP 시작, 톰켓의 환경...

RAP를 기동했을때 서버 osgi옵션을 주고 싶을때가 있습니다.
예를 들어 -clean, -consoleLog, -console 이라던가요.

클립스로 실행했을 때에는 Run Configurations -> Arguments -> Program Argument에서 주면 됩니다.

Tomcat으로 실행했을때에는 web.xml에 다음과 같이 옵션을 줄수 있습니다.


바로 아래 게시물처럼 현재 Activation된 플러그인 목록을 보고 싶다면 ss 명령을 줌으로
확인 가능 하겠습니다. ss 명령을 줄수 있는 것은 위의 -console 명령 때문에 가능하지요.
-clean은 workspace의 캐쉬들을 지우라는 말이구요.
-consolelog은 osgi 표준 출력을 하라는 의미입니다.
그래서 프로젝트에 문제가 생겨 .log에 파일이 생기는 것을 콘솔로 확인 가능합니다.

enableFrameworkControl 의 설정을 true로 했을때 bundle을 동적으로 내렸다 올렸다 할수 있습니다.
예를 들어서 http://localhost:8080/monitor/sp_start 이렇게하면 해당 프로젝트를 시작하라는 의미 이지요.

자세한 설명은 http://www.eclipse.org/equinox/server/http_in_container.php을 참조하세요.

아참, 그럼 이클립스 플렛폼의 환경정보를 가지고 있는 configuration 폴더는 어디에 존재할까요? 혹은 workspace라던가요?
이것은 톰켓이 시작할때 BridgeServlet 클래스가 실행되어 temp폴더 servlet폴더 정확한 명칭을 모르겠네요. 그러니까 C:\dev\tomcat-5.5\work아래에 컨텍스트 루트 아래에 존재하게 됩니다.

다음에 시간이 되면 좀더 플어서 적어보도록 할게요

RAP to Tomcat Export

RAP로 개발된 프로젝트를 Tomcat으로 Export하기 입니다.

http://www.eclipse.org/equinox/server/http_in_container.php
http://eclipsesource.com/blogs/2007/12/07/rap-deployment-part-2-deploying-your-application-as-a-war-file/
등 몇개 주목해서 볼만한 것들이 있습니다.

하나씩 꼼꼼하게 해도 되지 않습니다.

우선 RAP의 소스 위치가 변경되었습니다. 또한 이클립스 버전도 변경되었지요.
위에서 설명할때 사용하던 버전의 소스와 바이너리를 찾기가...

일요일에서 월요일 넘어가는 새벽 4시까지 삽질에 삽질을 했지만....
나의 허덥한만 확인 해야 했습니다.
-_-;;;;

휴..

출근해서 다음과같이 작업을 했습니다.
이클립스를 Eclipse 3.4.2 M20090211-1700으로 다시 인스톨했습니다.
RAP도 현재의 최신버전 1.2 M6 Milestone Build 로 수정하였습니다.

눈물만 주르르 ....

이것과 관련된 자료를 찾는중에 이것 자것 많이 구경하였네요.
버그질라와 버그 목록 블로그, EclipseSource등.. 갈길이 한참 멀었다는 생각만드네요.

아래는 성공적으로 동작한 모습입니다.

토요일, 3월 28, 2009

2009년 목표

이제 30대 중반이 되어 가고 있습니다.

이대로 나이 먹는 것에대해 나름 고민을 많이 했지요. 이렇게 나이를 먹어가는게 ....
고민해보았습니다. 스트래스가 좀 심했지요.

어제 집에 들어가서 맥주한잔 먹으며, 이래저래 생각했습니다.

이 허덥한 실력으로... -_-;;;;
아직도 초급도 못 땐 미숙한 능력으로 무엇을 할수 있을까나 싶었습니다.

그나마 하고있는 것, 조금이라도 경쟁력 있는 것..
몇년동안 고민했던 것...

Eclipse platform......

문득 이지만, 나도 Eclipse Commiter가 되봐야겠다고 생각했습니다.
2009년은 이것을 위해 노력해야겠습니다.

나의 개발인생의 전환점이 될거라 생각해봅니다.

어디서 부터 시작해야하는지도 모르겠지만, 되 보겠습니다.

금요일, 3월 27, 2009

가끔 카페에서 q/a를 하다보면 질문 내용중에 다음과 같은 내용이 있다.

.... 눈에 눈물이 날 정로도 봣는데도.. 모르겟어요. ....

나도 눈물이 나고 있다.
휴.. 몇시간동안 집중해서 보고 반복해봐도 되지 않는다.
어디가 잘못되었는지도 모르겟다.

젠장 어디 물어볼 곳이라도 속시원이 있었으면 좋겟다.

이것도 알게되겠지..
이 아는 사실을 다른이에게 알려줄때면 한마디 혹은 1분이면 끝날지도 모르겟다.

다른 누구보다 더 많은 눈물을 흘리는 것...
한두시간 헤메고 하루 이틀 헤메고.. 안될때도 허다하다.

개발을 처음 시작하시는 분들이라면.. 좀더 인내하고, 고민하고.. 논리적으로 생각해보라고 말해주고 싶다.

그나저나 휴..... 온몸이 오늘 해매고 있는것에 대해 보기를 거부하네요. -_-;;;;;;;;;;;

목요일, 3월 26, 2009

Eclipse Con 2009기간

어제 부터 Eclipse con기간 인가 봅니다.

지방에 사는 분이 서울을 부러워하듯..
서울에 사는 저는 미국이 부럽네요.

적어도 오늘은 미국에 사는 분들이 부럽기만 합니다.

여러권의 책과 문서들에서 보던 Jeff MacAffer의 강의도 듣고싶네요.
물런 온라인으로 볼수도 있겠습니다만...

젠장, 몇년전부터 가고싶다고 말만했는데...
영어도 안되고 돈도없으며, 시간도 안되네요.

괸시리 우울해 집니다. -_-;;;

음음음... 좀더 구체적인 계획을 세워서, 어캐든 ..................
끙..........................

.....................
.....................
.....................
.....................

a zest of life

수요일, 3월 25, 2009

RAP Keyevents

RAP에는 keyEvents가 없어서..
keyEvent가 없으면 키보드 이벤튼 어떻게하라고...

흠흠 이었더니 1.2 M4에서 수정된 사항이네요.
3.5에서나 구경할수있는 키 이벤트

http://www.eclipse.org/projects/project-plan.php?projectid=rt.rap

RAP의 좋은 점 혹은 나쁜 점 혹은 이상한 점

3주차 들어서는 RAP와의 관계를 생각해서 주관적인 글을 좀더 적어봐야할까 싶습니다.

좋은 점
1) RAP는 RCP의 subset이라고 표현합니다.
기존 PLUG-IN을 재사용할수 있으며(한계가 있지만), RCP가 가지고있는 자원을 재사용할수 있다는 이야기 입니다. 감이 안 오실 수도 있겠지만, 이것은 분명 커다란 장점입니다.
프리퍼런스는 기본 워크벤치들, 뷰어들, 헬프 로컬라이제인션, 다른 기존 rcp의 리소들 하며............

카페에 올린글을 추가해 봅니다.
<
RAP는 Rich Ajax Platform입니다.
RAP는 RCP의 서브셋입니다. RCP를 웹으로 가져온것이죠.
그래서 앞단에 Viewer들을 그대로 쓸수 있습니다.
퍼스팩티브도요.
워크벤치도요.
인트로나 에디트파트나 뷰파트도요.
헬프도요.
브랜딩도요.
기존에 만들었던 플러그인도 가져다 쓸수 있지요.

RAP가 한계가 있다는 말은 RCP가 한계가 있다는 말과 동일하다라고 생각되구요.
일반 웹에 비해 무거운 부분은 있는 듯(?) 합니다.

그것을 감수하고 쓸만한 충분한 매력이 존재합니다.
예를 들어 우리가 RCP개발하는 것처럼 테이블 뷰를 만들었다면, 웹에 그 테이블 뷰가 그대로 보여집니다.
테이블 뷰어의 쏘트나 필터, 레벨 프로바이더, 컨텐트프로바이더등을 그대로 사용하면 됩니다.

콜백 함수도 지원되구요.
이런 부분은 적어도 웹 개발하는 분들에게는 감동 그 자체일 것입니다.
>

저같은 경우 RAP UI디자인에 SWT Designer를 사용하여 디자인 합니다. 그만큼 RAP의 완성도가 있다는 이야기 이지요. 물런 에러나는건 있습니다만...

2) RAP는 웹브라우저에서 리치하게 동작합니다.
리치클라이언트에 대한 정의가 여러가지 있겠지만, 모양만 리치하지 않고 서비스도 리치하게 동작하지요.(??)

3) 원소스 멀티 유즈가 가능합니다. RCP와 RAP코드 재사용을 책에서는 100% 가능하게 개발하다고 합니다만...


나쁜 점

1) RAP는 웹컨테이너에서 동작합니다. tomcat 또는 jetty(이클립스에서 실행하면 jetty)위에서 동작 해야 합니다. 컨테이너가 주는 많은 서비스들이 있습니다. datasource나 이런 서비스들 이겠지요. 연동하기가 좀 까다롭습니다.

2) 1)번과 같은 맥락에서 이클립스에서 실제 테스트 할때부터 tomcat이나 상용 웹서버에 붙여서 해야하는데 쉽게 연결시키지 못하고 있습니다.
물런 실제 deploy할때는 braning하면 쉽게 된다고하지만...
좀더 확인해봐야할 부분입니다.

3) GC(Griphic Context)등을 지원하지 않습니다. GC는 어쩌면 ui에 절대 적인 존재인데 말입니다. draw2d... -_-;;;;

4) web도 rcp도 알아야한다.

1,2번은 시간을 좀더 들여서 테스트해보면 좋겟는데.. 여유가 없네요.

이상한 점
1) rich와 thin의 중간에서 어느것을 선택 해야 할지 이상합니다.
db연결할때 컨테이너에서 재공하는 자원을 사용할 것인지.. 등이지요.


이제 3주차 접어든 시점에서 너무 빠른 판단인지도 모르겠습니다.
나쁜 점은 몰라서 나쁜 점일것으로 생각되구요.(-_-;;)

어제부터 RAP위에 GEF를 올려보려고 삽질을 계속하는 중입니다.
브라우저위에 도형들이 돌아가는 모습을 언넝 보고 싶네요.

zset................................................

화요일, 3월 24, 2009

RAP에서 CSS사용하기

RAP에서 외부 모양을 꾸미기 위해서는 테마(확장점:org.eclipse.rap.themes)를 사용합니다.
이 테마는 RAP가 웹에서 동작하니 당연히 CSS를 사용하게 되지요.

좀더 부언하자면 다음과 같습니다.
Button의 모양을 CSS로 다음과 같이 정의 했다면
Button {
color: #705e42;
padding: 3px 6px 3px 4px;
font: bold 12px Arial, Helvetica, sans-serif;
}

다음과 같이 출력 됩니다.


이 CSS가 적용된 프로젝트에는 모든 버튼이 위와 같이 표시 됩니다.

- 지금까지 알 수 있는 사항은 다음과 같이 정의할수 있습니다.
대부분의 콘트롤을 CSS로 정의할 수 있습니다
RWT(RWT는 SWT와 같은 것으로 표준 Widget을 말합니다) Widget으로 화면에 정의된 모양과 CSS 정의된 타입이 중복 되었을 경우에는 RWT가 우선적로 적용되는 것으로 보입니다.

- RAP에서 CSS를 정의하는 방법은 다음과 같습니다.
1) Extensions에 org.eclipse.rap.themes를 추가 합니다.

위의 정의를 설명하면 다음과 같습니다.
프로젝트 내에 theme1/theme.css파일을 테마로 정의합니다.

처음 출발은 RAP 공식 데모인 org.eclipse.rap.demo에 적용된 css를 보면 CSS를 어떻게 정의 해야 하는지와 설명이 잘 되어 있습니다.

2) 적용된 CSS가 어떻게 보여질 것인지는 branding로 정의할 수 있습니다.

위의 정의를 설명하면 다음과 같습니다.
body는 body.html파일로 정의합니다. body로 정의하고 싶은 내용을 정의 합니다.
defaultEntrypointId으로 정의하는 기본 entry point를 정의 할 수 있습니다.(entry point는 RAP의 시작 포인트 입니다. 즉 RCP에서 IApplicstion과 같은 역활을 합니다)
exitConfirmationClass는 종료 시에 출력되는 클래스를 정의합니다.
favicon, title는 화면에 표시될 아이콘과 타이틀을 지정합니다.


id는 중복되지 않는 고유의 id를 정의합니다.
servletName은 호출될때 사용되는 이름을 정의합니다.
themeId는 호출될때 적용할 theme를 정의합니다. (위의 1에서 정의한 css를 정의 할수 있습니다.)

위와 같이 정의하고 프로그램을 호출하면(http://localhost:9090/ems) 위에 적용된 css가 출력됩니다.


전체 디테일한 메뉴얼은 다음을 참조하세요.
0) Eclipse help의 RAP Developer Guide -> Advance Guide -> theme부분 참조
http://help.eclipse.org/ganymede/topic/org.eclipse.rap.help/help/html/advanced/theming.html

1) http://www.ibm.com/developerworks/edu/os-dw-os-eclipse-ganymede-pt2.html중에 Theming the personal organizer 살표보세요.

2) Rich Ajax Platform: Bringing Rich Client to the Web (Firstpress) 6장 Changing RAP to Use a Different Theme부분을 참조하세요

일요일, 3월 22, 2009

미라이 공업이야기

신년사에서 고문님이 소개하셨던 미라이 공업이야기를 xper그룹의 어떤분이 이야기 하셨습니다.

그 중에 그 사장님의 말이 흥미롭습니다.

"
어디에나 있는것, 그런 건 안돼
어디든지 있는것은 안돼
그래서 어디든지 있는 것은 안돼니까 없는 것을 생각해야 하는거야
이것이 미라이 공업의 기반이야
"


지금 내가 하고 있는 것..
추구하는 것을 점검해보고 수정해 봐야겠습니다.

금요일, 3월 20, 2009

주말에 RAP에 GEF올려보는 셈플을 만들어 봐야겠습니다.
몇년만에 하는것인지 모르겠으나.. 잘 되겟지요.

RAP의 또 다른 가능성입니다.

애그 아래 게시물 쓴지 얼마나 됐다고.... 쯔쯔
혹시 하게 될지도 모르는 Eclipse Rich Client(RCP) PPT를 만드는 중입니다.
이번주에는 대강 목차는 잡았으니, 이미 절반을 시작한 셈 입니다.

나름 저번 SWT/JFace 스터디 처럼은 어떻게 해서든 안되야 겠다도 싶구요.
또 내가 해야할 별다른 이유도 발견하지 못한 상태입니다.
사실 별다른 의욕이 없어서 그냥 놔두고 있었지요.
네이버 이클립스 카페의 Q/A도 어찌됐든 하고 있는데, 그것도 이제 그만 해야 할지도 모르겠습니다.

요즘 보고 있는 책들도 많구요.
자바병렬프로그래밍, 톰켓최종분석,코드컴플릿, Eclipse Rich Ajax Platform등...
나름 정신없이 보내고 있지요.

병렬프로그래밍 책을 보는 중에 뒤통수 얻어 맞는것처럼, 나의 허덥한 코드와 얄팍한 지식에 눈물을 흘리기도했습니다. RAP책은 사실 좀더 깊이 있는 지식을 원했는데 아쉽기도했지요.

그나저나 이제 봄이고 인라인 시즌이 돌와 왔습니다.
가지고 다니던 노트북을 팔아버리고.... 노트북이 있으면 자꾸 보게 되고 타이핑하게 되고, 그냥 바보처럼 노트북 켜서 무언가 하고있는 나를 봅니다.............. 그냥 원시인으로 돌아가볼까도 싶습니다.


나를 좀 뒤집어야 할 때 입니다.

목요일, 3월 19, 2009

Eclipse Rich Ajax Platform: Bringing Rich Client to the Web (Firstpress)

RAP책은 오직 한권 Eclipse Rich Ajax Platform: Bringing Rich Client to the Web (Firstpress) (Paperback)(http://www.amazon.com/Eclipse-Rich-Ajax-Platform-Firstpress/dp/1430218835/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1237472867&sr=8-1) 만 출판되어 있다.


책 서문에 다음과 같은 구문이 있다.
Eclipse Rich Ajax Platform(RAP) ia a great technology; the only problem is that there is no book available about the technology and how to use it.

책의 저자도 나의 어려움을 아는 것이다.

지금 까지 RAP에 대해 힘든것은 다른 시스템과 연동하는 부분이다. 기존 시스템의 자원을 활용해야 한다면 전통적인 방법으로라면.. 애를 먹어야 하는가보다.


오늘의 떡밥이다. RAP에 테마를 입힌 모습이다. 이 테마는 CSS로 주는 것이지.. 헤헤 좀 폼나지요.
자주 느끼는 것 이지만, 나는 나의 직업에 잘 안어울리는 사람이다.
내가 느끼기에는 적어도 그렇다.

그저 어디 한적한 곳에서 소일거리를 하며 즐거움을 찾으면 되는 그런사람이다.
쓰면서 느끼는 바이지만, 위와 같은 사실을 알았다면 바로 행동할 것이지..
그러지도 못하는걸 보면 더욱 그렇다.

경력이 쌓여서 이제 이 직업에 대해 무엇인가 느끼는 바가 많을텐데...
그저 이렇게 시간을 보낼바에야 좀더 의미있거나 즐겁거나, 이렇게 인생을 소비해야하는데...

수요일, 3월 18, 2009

RAP(Rich Ajax Platform) 삽질

RAP에서 메모리 릭이 났다고 생각 했던 부분은 판단 미스 인듯하다.
Thread가 너무 짧은 간격으로 돌아서 데이터를 핸들링 해서 메모리 그래프가 너무 급격하게 요동쳤다. 대략 1초에 300건의 쿼리를 해서 300개의 데이터를 검증해서 조건에 맞게 리프레쉬해서인지도... 주말에 롱런 테스트를 다시 해봐겟다.



어제 배포버전을 만드려고 프러덕을 생성하는데.. 여간해도 되지 않았다.
메뉴얼에는 간단하게 되어 있었는데.. 흠냐...

결국은 못하고.. 집으로..
아침에와서 eclipse cvs에 demo가 최신 버전이 있어서 그 버전을 받을 요량으로 나의 workspace에 있던 demo project를 삭제하고 cvs에 있는 demo를 가져왔다. 몇가지를 참조하고..
개발중이던 프로젝트를 실행했다. javax.servlet 참조 되지 않았다고 실행되지 않는다. -_-;;;
결국은 어제 배포가 안돼었던것은 demo에 있는 환경을 참조하여 실행하였던 것이다. 지금까지 개발환경의 실행은 데모의 번들을 참조해서 실행했던 것이다.

이 문제는 rcp개발때부터 있었던 문제이다.. 개인적으로.. 이 부분이 rcp에서 xx 부분일지도 모르겟다. 이 부분을 좀더 개선하면 좋을텐데...

이제는 CSS도 볼줄 알아야 하는거다 한금이

금요일, 3월 13, 2009

구현중이 모형

RAP로 구현중이 시스템의 모형이다.
이제 시작이지만 아직은 만족스럽다.

물런, 아직도 헤쳐 나가야 할부분이 테반이지만..
웹으로 이렇게 구현될 수 있다는 것 자체가 흥미롭다.


오늘의 삽질기...

RAP로 만들고 있는 시스템에 폰트를 헤드 폰트의 크기와 종류 볼드등을 바꿔주고 싶었다.
그리하여. 평소에 하던데로 시스템 디폴트 폰트를 가져와서 출력해주고 싶었다.

Display.getSystemFont() 이런 메소드를 찾았지.. 라는 생각으로 Display 클래스를 들어가 보았다.
얼라리 안보인다. 음음.. 내 기억이 틀린건가...

이렇게 한참을 실갱이......
유유유유융융융
유유유유융융융
유유유유융융융
유유유유융융융
유유유유융융융
유유유유융융융

한참을 더 고민... 왜 메소드가 없지....
유유유유융융융
유유유유융융융
유유유유융융융
유유유유융융융

이건 웹이지...
아움아.. 같으면서도 다른 이 무서움이란.

목요일, 3월 12, 2009

아주 오랫만에 sql 을 써보는듯 하다.
주로 사용했떤 oracle, db2가 아니라 mysql 이어서인지 join문이 왜 이리 낫선지......

SELECT
LAAMLogMapping.LAAMLogID, b.companyID, c.companyName, b.customerName, LAAMLogMapping.serverName,
errLaamLog.procStatus, date_format(errLaamLog.occuDate, "%Y-%m-%d %H:%i") as occuDate, errLaamLog.seid,
(SELECT CONCAT(sename," ", sehphone) FROM semaster WHERE semaster.seid = errLaamLog.SEID) seinfo
FROM
LAAMLogMapping LEFT JOIN errLaamLog ON (LAAMLogMapping.LAAMLogID = errLaamLog.LAAMLogID AND errLaamLog.ProcStatus != '9'),
CustomerMaster b,
CompanyInfo c
WHERE
LAAMLogMapping.CustomerID = b.CustomerID
AND b.CompanyID = c.CompanyID
ORDER BY c.CompanyName, b.customerName
난 애기 개발자다.

이제 혼자 젖을 때고 있는 중인..
누군가의 도움이 없으면 죽을 수 밖에 없는 ..
애기 개발자다.

배고프다고 투정부리고 싶다.
누가 밥을주려나? 초롱초롱한 눈으로 다른곳을 응시해보고 싶네.

수요일, 3월 11, 2009

RAP, SQLMaP....

RAP에 셈플을 작성중이다.

데몬쓰레드를 만들어서 테이블뷰와 다른 파트에 이벤트 주는것을 하였다.
자 이건 잘 되므로 다음...
데몬쓰레드에 실제 데이터가 있는 디비 데이터를 가져와야한다.

SQLMap를 연결.... apache에 있는 SQLMap에는 DataSource에서 가져오는 것으로 되어 있다.
아음음.. 에러메시자가 엽기적으로 보여서 이 에러 찾는것만도 엄청 걸렸다는.

라이브러리 걸린걸 한참 찾다가는 mysql lib도 클래스패스에 안잡혔네. -_-_;;
아아아 이건 웹이 아니야라고 주문 걸면서 우선.. Apache DBCP, Pool을 클래스 패스로 걸어줌.

SqlMapConfig.xml에 datasource type을 dbcp로 바꾸어줌.



어제 퇴근 직전부터 시작했다곤 하지만... 은근히 짜증난다...........

월요일, 3월 09, 2009

RAP(Rich Ajax Platform) 관련정보

rap main
http://eclipse.org/rap

The update site is
http://download.eclipse.org/rt/rap/update-site

업데이트 받으시고 rap 시작하실때 target platform을 구성해야하는데요.
기존 mccs에 target platform과 틀리게 구성해야해서
저는 workspace를 따로 만들어서 진행하고 있습니다.

문서
http://www.eclipse.org/rap/buzz.php

아래쪽에 있는 문서들 보고있음.

demo site
http://www.eclipse.org/rap/demos.php

tomcat에 실행해 볼 수 있는 데모
http://www.eclipse.org/downloads/download.php?file=/technology/rap/rapdemo.war
실행은 http://localhost:8080/rapdemo/rap

금요일, 3월 06, 2009

RAP(Rich Ajax Platform)

RAP로 만들어보고 있는 셈플....

SWT/JFace Study 후기직전

SWT/JFace 스터디가 내일 마지막으로 5주 정확히는 4주차 일정이 끝납니다.

내일을 지내보고 정리하는 글을 적어야 하는데, 마음은 벌써 정리하는것으로 ...
결론을 내리고 싶어 하네요.

내일은 아무것도 준비된것 없이 각 조가 3시간 정도에 해결할수 있는 프로젝트를 하는 시간인데,.. 과연 진행될지 의문 스럽습니다.

스터디의 기획은 1,2,3 주차에 기본 강의를 한 후에 4주차 실습입니다.
1,2,3주차 후에 집에서 복습을 열심히 한다는 전제가 있어야 실습이 가능한 일입니다. 이것을 참여하는 분들에게 제대로 인지를 못 시킨듯 합니다.

결정적인것은 이 좋은(?) 기술을 참여한 분들에게 제대로 전달했는지 의문 스럽습니다.
좀더 준비하고 전달 할 수 있었지 않나 싶습니다. (물런 나름 많은 시간을 들여 준비를 했습니다.) 이런 말을 하는 이유는 내가 준비한것보다 참여한 분들의 이해가 적은듯해서 나를 탓하는 것 입니다. 전달을 잘 못했으니 이해가 적을 것입니다.
그리고, 이런 마음은 나와 나와같이 스터디를 하는 분들에게 좋은것 이지요.

RCP에 대한 문의도 몇분은 해주시는데...
RCP는 SWT/JFace위에 올라가는 것들이라... 난이도가 좀더 있습니다.
물런 제대로 설명할수있을지가 더 의문 스럽네요.

...... 나머지는 내일 스터디 끝나고 .........

목요일, 3월 05, 2009

RAP(Rich Ajax Platform)시작

어제 Eclipse RAP에 대해 자료를 보고 오늘부터 셈플을 만들어보기시작한다.

자료라고 해봐야 흠흠이지만...

rcp의 subset이라고 하니 rcp처럼 만들고있다.
그래도 잘 돌아가니 나름 만족하는중이다.
콘트롤이 많아지면 어떨까 염려스러운데 대략 400개정도를 콘트롤을 고정하게 올려봣는데 아직은 괸찮다. 이 콘트롤들을 동적으로 움직일수만 있다면 일단은 합격점인데...

코딩해보지않고 데모만 봣을때보다는 불안감이 확실히 덜하다.
이게과연나올까 염려스러운데, 나올때의 안도감이 있지만, 좀더 테스트해보고 그러면 괸찮겟지....
지금은 그저 신기할 따름.

화요일, 3월 03, 2009

기본기의 중요함

아침 출근부터 마소 3월호를 봤습니다.
30분동안 처음부터 끝까지 넘기면서 느낀점은..

마소를 2,3월 호만 몇년만에 보는지 기억도 못하겟지만, 몇 가지 느낀점은
마소가 점점 프로그래머세계(?)와 닮아가고 있다는것과...
어떤 주재이던 필자의 배경과 관련깊은 부분에 초점이 맞추어져 가고 있다는 것입니다.
이것은 당연 한 결과 이겠지요.

하지만 읽는 사람에게는 혼란입니다. 그 초점이 혼란이 되고 어느 부분을 보아야하는지 중심을 잃게 만듭니다. 무엇인가 하나 진득하게 보고 쌓아가야할 입문자들에게는 더욱 그렇지요.

대안은.
경력이 쌓이고 쌓였지만, 허접 탈피를 아직도 못하고 있는 상태이지만...
처음 vb로 시작해서 php -> jsp -> web -> struts -> swing -> rcp 이렇게 흘러온 나로서는 역시 기본기 중요함은 100만배라 생각됩니다.

좀 어렵고 개발자 찾기도 힘들다는 gmf, gef, ecf 이런거 백만번 잘한다고해도 항상 힘들고 막히는 부분은 기본이었던듯 합니다.

자신이 개발하려는 것들을 이해하고 그것을 구체화 하고 코드로 나오기까지의 어느정도 과정을 이해하는것이지 않을까 싶습니다.

월요일, 3월 02, 2009

환율도 1560원인 마당에...
점심 먹고왔는데 1590인데...

'이너 게임을 통해 기천 배우기 II'를 참여하고 싶은데, 시간이 겹친다.
역시나 이번 스터디는 어쩌면 참아야 했는지도 모른다.

친구는 키보드와 모니터 뿐(?)인지도 모르는데...
누군가와 의사 소통하고 이야기하는 연습, 내가 가지고 있는 생각을 다른 사람에게 이야기하고 듣는 연습이 필요한지도 모르겟다.

내일 부터는 인라인을 가지고 출퇴근을...
영어 학원 등록도 다시...
만들다가 만 것들과 시도하다 만 것들을 다시...

3월 한달을 알차게 보내봐야지

'좀 더 나은 사회를 위한 몇 가지 방법 –- 어쩌면 IT기술을 사용해서 ' 를 들었는데...
어쩌면이다. 어쩌면... 핑계를 대자면 어쩌면

화요일, 2월 24, 2009

multi ResourceBundle Editor수정~~

저번에 만든 multi ResourceBundle Editor를 몇가지 생각했던 기능과 검색 필터 등등을 추가할 요량으로 수정하는 중에 있습니다. 수정이 끝나념 plug-in central에 올려볼 요량으로...

여기서 좀 복잡 하다면 복잡하게 되어 버린 저장로직을 수정하는 중에.. 민ㅇ러ㅣㄴㅁㅇㄹ 이런 코드가 있는데요.

저장 로직만 3번째 바꿔서 코딩 중이지요.
첫 번째 코드는 tableViewer.getTableItem.. 으로 가져다가 저장하는 코드를 구현했습니다.
이것의 전재는 LabelProvider에서 보는 부분을 수정하지 않았다는 전재와 ViewerFilter가 없다는 것이 전재 이어야 합니다. Filter가 존재 하므로 문제가 되는 코드 이지요.

두번째 코드는 애초에 데이터를 가지고 왔던 Properties 데이터를 계속 동기화 하고 있으니 이것을 저장하는 방법이 있었습니다. 이 코드의 문제는 애초에 동기화 하고 있다는 것이 문제 입니다. ContentProvider에서 데이터를 계속 동기화 해주는데..... 동기화 해주는 로직이 만만치가 않습니다.

세번째 로직은 Table과 Resource를 함께 사용해서 저장하는 것이지요.

자 여기까지 머나먼 삽질입니다.

물런 저장하는부분에 좀 억지 스러운 요구(?)도 있었지만요.
왜 이렇게 저장 로직을 구현했을까 의아합니다.

아고 잠이나 자고 저장 로직은 내일이나 이번주에 천천히 완성해야 할지도 모르겠습니다.

월요일, 2월 23, 2009

자칼한금이

이클립스 개발을 몇년째 하고 있지만, 아직도 모르는것 투성입니다.
자잘한 메뉴하나를 말하는것이 아니라, 아주 큰 메뉴를 봐도 누가 물어보면 우물쭈물하기 일쑤이지요.

모르는것이 당연한 것일수도 있겠으나....

이클립스 메뉴하나도 이럴텐데, 그것을 개발하는 코드는 뭐라 더 말할수 있을까 싶습니다.
겨우 내가 아는것이라고는, 지금 개발하고 있는 제품 중에 내가 손을 담그고 있는 있는 작은 코드일 뿐이지요

카페에 어떤 분은 질문만 내리 몇 년째 하고 있습니다. 문득, 카페가 그분의 답변을 위해 존재하는 느낌이 들었습니다. 잘 알지도 못하지만, 귀찮아 집니다.

좀더 기린처럼~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
아직은 자칼~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

금요일, 2월 20, 2009

iGoogle에 이명박퇴임까지 몇일 남았는 보여주는 가젯을 추가했다.



1465일이나 남았는데

iGoogle을 볼때마다 씁쓸하다.
모두는 아닐지라도 많은 사람이 좋아하는 그런 대통령이었으면 좋겠는데....
많은 사람이 좋아 하지 않는.. 대통령인듯
경제, 경치, 교육등 많은 부분에서 후퇴를 경험하는 그런 대통령인듯

어느 글에서 무슨일만 있으면 대통령 탓한다고, 좀더 지켜봐주고 기다려 줄수 없느냐는
글이 있었는데...

얼마든지 기다려 줄수 있는데, 서로간의 신뢰가 필요하다.
나란 사람이랑 신뢰를 쌓을필요는 없을지도 모른다.
그렇지만, 나같은 사람, 서민, 대다수의 사람과는 신뢰가 필요하겠다.

이명박대통령 뿐만 아니라, 우리가 살고있는 다른 일에도 신뢰가 필요하다.

한금이 너는 어떤사람이니?

내아이를 위한 비폭력 대화라는 책을 보면서, 아이를 위한 어른들을 위한 책이 아니라
어른들을 위한 어른들의 책인듯 합니다.

사실 어른들의 행동또한 아이가 하는 행동을 좀더 어른스럽게 바뀐것일테니까요.

책을 읽는데, 요사이 문제인지 예전부터 문제인지 잘 모르겠지만...
책을 띠엄띠엄(?) 읽는 나를 발견하게 됩니다.
간혹 이해를 하지 못했는데도 그냥 넘어 간다든가 무의식중에 혼자 이해했다고 생각한다던가요?

나의 생활태도가 문제인건지....

나는 아직도 나를 탐색 중인가보네요. 한금이 너는 어떤사람이니?

화요일, 2월 17, 2009

예전부터 수첩에 적어 놓은 '내 아이를 위한 비폭력 대화'라는 책을 집어 들었습니다.
이제 머릿말 정도 읽었지만, 재미있는 책이네요.

아, 예전에 이책은 xper 그룹에 소개된 책이었고, 이런책이 그룹에서 논의되는것도 짐작못하고 당황스럽기도 했지요.

저는 대화라는 주재가 나올때마다 조금 어려움이 있습니다.

plugin spy

카페에서 누군가가 eclipse 3.3에서 plugin spy를 찾는 글이 있었다.
어제 겸사겸사 블로깅과 삽질을 햇으나 찾을수가 없었다.

하여 오기가 생기기 시작하였고..

결국은 3.4M4 소스에 있는 plug-in spy소스를 받아서 3.3에 포팅하였다.
메소드가 없어진 몇개를 그냥 주석 처리내지는 수정하고 올리니 그래도 돌아간다.
음, 5분정도만에 다 되버리니 좀 -_-;; 우울하다는

월요일, 2월 16, 2009

그디어 3주차 피티 화면만 공개.
Test, Debugging, Build, Packaging 이런 주재에 대해 알아 보는 시간이다.

저번 주까지 반이 끝나고 이제 반 남았으며, 사실 남은 반이 더 중요한지도 모르겟다.
실습시간까지 잘 진행되었으면...
실습시간에 시도하는 작은 코드가 한두 사람에게는 유용한 툴이 되었으면...
모두다 얻는 그런 시간이 되었으면...

작은 바램을...

plugin spy

누군가 필요에 의해 eclipse 3.3에서 동작하는 plug-in spy를 찾고 있습니다.

제일 먼저 3.3에서 돌아가나 확인했습니다.
홈페이지에서 3.3에서는 인큐베이터 였슴을 확인했습니다. 3.4에 오면서 탈출한 것이지요.
그럼 cvs에 들어가서 확인해 봤습니다. 헤더는 존재하는데 안에 소스가 존재하지 않습니다.
삭제된것이죠. Version, history어디에도 소스가 존재하지 않습니다. -_-;;;;;;;

우울한 Plug-in SPY....
결국은 구글링 도중에 한가지 단서를 찾았지요. 3.2.2에 plug-in spy가 포함 된듯한 로그를 보았습니다. 다운 받는데 한시간이 넘개 걸리네요. 속에 포함되어 있기를...
저번주 토요일 2주차 정리를 해야겟습니다.
음, 준비를 재대로 하지 못한게 티가 확나는 2주차 인듯 합니다.
나름 준비를 했으나, 참여하는 분들의 이해도가 많이 떨어진듯하기 때문에 더욱 그런듯합니다.

아무래도 2주차 JFace는 좀더 보강 내지는 새롭게 목차를 만들어야 할듯 싶네요.
쓰다보니 생각나는건데, 그걸 한번 듯고 이해하는 사람이 있으면 천재이겠지요.
그리고 이해해서 코드로 구현할수 있다면 천부적인 소질을 타고 났을지도 모르겠습니다.

좀더 이해할 수 있도록 보조 자료나 기타 부가 머시기를 준비 하는 것도 좋겠습니다.
스터디를 하시는 분들은 그리 걱정 안하시는듯한데, 나는 왜이리 걱정스러워 할까요?

음, 3주차 pt는 작성할게 거의 없습니다. Test부분만 좀 더 작성하도록 해봐야겠습니다.

금요일, 2월 13, 2009

xper그룹에서(http://xper.org/wiki/xp/) '개발자의 개발량의 편차가 매우 큰 경우' 주재로 글이 올라왔다.

팀을 운영하는 사람으로서는 고민일 것이고, 일을 하는 사람으로서도 고민일 것이다.
예전에 기본적인 검색 입력 수정을 하루에 하는 스케줄을 잡아서 일반적으로 적용한 적이 있었는데, 나름 욕먹었던 것과 프로젝트 일정에도 문제가 있었으며.. -_-;;;;;;

주제와 별로 상관없지만.. 이런생각이 들었지욤.
..
지금 일의 기준은 무엇일까 고민해 보게 된다.
..
일의 잘하고 못하고 속도가 빠름도 중요하겟다.
..
형평성도 중요하겟다.
..
팀웍도 중요하겟고
..
기다려 주면, 교육하고, 인내해주는것이 중요하지 않을까?
..
인격이 문제가 아니라면, 어려움을 이해하고, 함께 가는것이 중요하지 않을까?
..
이것이 팀웍이지 않을까?
..
마음을 들지 않고, 뒤떨이지기 때문에 xxx을 한다면, 팀웍이나 협동을 말해서는 안될것이다.

목요일, 2월 12, 2009

Life Season 2를 보고있다.
음음, 이 은근히 몬간 긴박하지 않으면서도 긴박하고 흥미있는 드라마다.
그치, 잔잔한 흥미가있는 드라마란 말이지요.

주인공인 형사과 약간은 이상한 그의 파트너.

그리고 그의 전처 은근한 매력과 흥미~~ ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

수요일, 2월 11, 2009

엇그제 석호님이 첫번째 스터디때 Eclipse platform전반에 대해 아주 잘 설명해 주셨습니다.
아시는 분도 많이 계시겠지만, 석호님은 일본에 계셔서 자연히 일본 상황을 물어보게 되었지요. 일본에 거주하는 외국 상사주재원(?)들이 본국으로 철수를 많이 해서 오히려 살만하다는(?) 이야기를 들었습니다.

저는 재작년에 외국에 나갈수 없을까? 이런 생각을 가지고 있었습니다.
나름 외국(영어권)에 대한 동경(?)이나 혹은 아이에게 좋은 경험이 될수 있겠다도 싶었지요.
세계경제나 이런 저런 사정으로 봐서는 외국에 나가서 몇년 살다 오는건 점점 멀어지는 이야기가 되는듯합니다.

나이도 나이인지라.. 주름만 늘어가고, 배에는 인격만 쌓이네요.
인생의 절정인 이때에 왜 이리 우울한 생각만 하는것인지.. ㅋㅋ 내가나를 봐도 좀 한심하네요.

쓰고 보니 가장 중요한 언어가 아직도 안되네요. ㅋㅋㅋ 게으른 인생한금이
저번주에 만들었던 manTech ResourceBundle Editor를 eclispe plug-in사이트에 올려보려고 한다.
모 기껏해야 sourceforge.net에 프로젝트를 하나 만들고 약간 메시지를 변경하는게 다 이겠지만... 하나쯤 올려보는것도 좋겟고, 이런것도 나름 소통(?) 이니 좋은 시도인지도 모르겟다.

일요일, 2월 08, 2009

어느 분의 조언을따라서 소설 읽기를 다시 시작했다.
오늘 출근해서인지 피곤하지만, ..

이외수님의 장외인간이란 소설인데.. 표현들이 어찌나 재미있는지..
토씨하나하나 살펴보며 웃는 중이다.

'초딩놈한테' 이런 표현이라던가.. 초딩을 놈으로 표현했다니.. ^^;; 푸힛...
예전에 '님좀 썅인듯' 이런 표현이 생각나서 더욱 웃겼으.........

하하..

읽다가 새로운 사실을 하나 발견했는데, 내가 어떤 사건 사물에 대해 무지 둔감한 사람이라는것. 좋은 표현으로 이렇게 말하는거고.. 나쁜 표현은 '바보'

이런것들을 생각할때 역시 나는 문학(?)이 지금보다 더 잘 어울릴지도 모르겟다.
물런 사회가 말하는 그런것 말고....

토요일, 2월 07, 2009

새백에 듣는 케논은 아주 들을만하다.
가벼운 클래식으로 머리를 식히는것도 좋은 방법이고...
하루 중 거의 유일하게 느낄수 있는 시간일지도 모르겟다.

사실 듣는 음악의 제목과 연주자등은 모른다. -_-;;; 그냥 좋다는 것이고...


음악정보 :
Title : Zigeunerweisen Op.20: Allegro Molto Vivace
Artist : Jascha Heifetz RCA Victor Symphony Orchestra conducted by William Steinberg (Recorded June 16, 1951)
Album : HEIFETZ bach chaconne

예전에 Car라는 에니메이션 DVD보셧을 분있을텐데, 시작하기전에 잠깐 나왔던 광대2명과 아이나왔을때 연주되던 곡입니다.

수요일, 2월 04, 2009

어제 감기때문에 오후내내 멍하니 모니터만 응시하다.
땡 퇴근하여 집으로 왔다.
결국 오늘은 병가를 내고...

건강이 재산인데.. 몸이 이래서야...

저녁에 있는 약속도 펑크이고..
이번주 부터 시작하게될 swt/jface 스터디도 있고...해서 스터디가 시작하기 전까지는 모든 pt준비는 맞쳐야하는데, 아직도 진행중이고.. 진도도 잘 나가지 않는다.

몸을 너무 혹사시키는건 아닌지, 견딜 만큼만 하고 쉬엄쉬엄 해야하는데...
1.2년안에 결론을 낼 일도 아니지 않는가?

화요일, 2월 03, 2009

SWT의 Table의 row height를 조절하는 코드를 만들다가, 결국은 지지를 쳣는데, 구굴링 도중에 다음과같은걸 발견했다.
왠지 나름 위로가 되는데... ㅋㅋㅋㅋ

http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html

manTech ResourceBundle Editor

어제 코딩량은 기록적일지도..
ResourceBundle Editor를 만든다고, 열라 머리를 굴렸더니..

자 대강 마쳣다는 생각이 드니 나름 정리가 필요하다.
우선 시간,
처음에는 반나절을 이야기했다가, 결국에는 이틀걸렸다.
그리고, 초기버전 개발 후 수정사항을 듣고 반영하는데 하루 걸렸으니, 총 3일걸린 ResourceBundle Editor이다. 정확이 2.5일 오바다. -_-;;

음, 초반에 반나절 걸린다고한 것은 나름 오버일지도 모른다.
그리고 하루를 다른 삽질로 날려 버리기도 하였고 말이다. 역시 과욕은 화를 부른다.
요새 같이 바쁜때에 나름 타격이다.

그리고 느끼는 거지만, 역시나 JFace의 Viewer는 멋지다.
아마도 Viewer가 아니었으면(Swing으로 구현했으면) 시간은 좀 더 걸렸을듯..

일요일, 2월 01, 2009

국제화 플러그인

국제화 작업하는데 좀더 편리하게 플러그인

아래 그림 처럼 국제화 관련 파일이 테이블 형식으로 나옵니다.
기존에 있는 국제화 관련 플러그인은 키값을 눌러야 하나씩 볼수 있었던 불편함을 해소 하였습니다.



사용법은 아래 그림처럼 Open With를 누르면 mantech ResourceBundle Editor가 보입니다.
그러면 해당 언어들이 그리드 형식으로 나오게 됩니다.
같은 언어 파일이라고 참조하는 것은 srcmessage_xx.properties 를 선택했다면, srcmessage로 시작하고 확장자가 properties인 파일을 모두 선택하여 출력해 줍니다.

추가나 삭제는 마우스 오른쪽 버튼을 누르면 추가 삭제가 나옵니다.


파일을 다운 받으시려면
http://cafe.naver.com/eclipseplugin/2914

1.0.2 Team -> history 에서 리소스 선택해서 오픈했을때 'manTech ResourceBundle Edit'가 열렸던 에러 수정
그리드로 출력될때 데이터 앞부분에 라이넘버 추가
1.0.3 화면에서 보이는것과 텍스트로 저장되는 순서가 틀렸는데, 이것을 동기화 함

1.0.5
1. 컬럼 별로 정렬기능 추가
2. 저장시 key순서대로저장기능 추가
3. column의 데이터가 여러 줄일 경우 column의 height사이즈 조절
좀문제가있는데, row마다 height가 조절이 어렵네요.
4. 저장시 workspace에 이벤트 날려줌
5. key값이 중복으로 입력되지 못하게 함
6. 아이콘 추가

요기까지 수정

2주차 pt

2주차 pt를 거의 마무리 해가는듯 하다.
사실 swt와 jface는 약간 모호한 관계인지도 모르겟다.


목요일, 1월 29, 2009

top 10 mstakes in eclipse plug in

http://blog.eclipse-tips.com/2009/01/top-10-mistakes-in-eclipse-plug-in.html글중에..

흠, 별로 중요하게 생각하지 않았던 부분, 미처 생각하지 못했던 부분도 보이고...

(10) Not reading the JavaDoc

(9) Forgetting to add a default constructor

(8) Not decomposing into different plugins

(7) Using "internal" code

(6) Directly setting the classpath

(5) Ignoring build.properties

(4) Empty dispose method

(3) Not honoring monitor.isCanceled()

(2) Blindly contributing to everywhere

(1) Executing a long running operation in Display thread

수요일, 1월 28, 2009

SWT/JFace에서 사용하게 될 pt를 만드는 중이다.
나름 많은 시간을 투자하여 만들고 있는 중이고, JFace에서 부분을 만드는 중이다.

벌써 몇 년간 개발해온 이 구조를 처음 보는것 마냥 어렵다. -_-;;
들으시는 분들에게 나름 좋은시간이 되려면, 설명하는 내가 바로 알고 있어야 하는데...

이 문제의 원인을 곰곰히 생각해 보는데, 역시나 예전에 awt, swing을 해와서 인지..
jface부분을 제대로 보지 않고 바로 rcp부분으로 넘어간 부분이 큰 듯하다.

흠냐, 나의 이 문제를 왜 이제야 발견했고, 또한 지금까지 개발은 어캐 해 왔는지
이런 나의태도는 문제다. -_-;;
또 어떤 부분을 이렇게 얼렁뚱땅 넘어갔을까?

일요일, 1월 25, 2009

그러니까, 아주 오랫만에 학교졸업 앨범을 꺼내 보았다.

아 풋풋한 얼굴들 하며, 함께 찍은 사진들 중에는 나를 잘 찾지 못하겟다.

시간이 많이 지났으니, 당연하지도 모르겟고...

예전 사진을 볼때마다, 왜 이리 후회되는 일이 많은지...
다시는 생각하고 싶지 않은 일과, 되돌아 가고 싶지 않은 일인듯..

나이를 먹어감에 예전의 20대 초반의 풋풋함으로 돌아가도 좋으련만...

지금을 살아가는 나는 나중에 어떤 모습으로 기억될까?
10년 정도 지난 다음에 오늘의 오늘도 같은 상황일까?

... 배고프네.. 자야겟어..

오늘은 1주차 pt를 완성했고.. 내일부터는 2주차를 시작해 보아야지

수요일, 1월 21, 2009

어제 용산에서 있었던 일 때문에.. 오늘도 아침부터 뉴스를 찾아 헤멘다.

죽은분들은 누굴까?
왜 죽어야 했을까?
죽을때 아팟을까? 등의 바보같은 질문만 내게 남기고...

명박정권에...
가끔씩 가는 곳과 어제 용산에서 벌여졌던 일은 다른 나라 일처럼 멀게만 느껴진다.
한쪽에서는 웃음과 즐거움 얻음이 있다면,
다른 한쪽에서는 절망과 두려움 공포, 나가서는 죽음뿐인...

왜 그래야 할까싶다.

SWT/JFace 교육

SWT/JFace Study게시판이 스터디/소모임쪽에 생겼습니다.

자자 관심 많이 가져주시고, 화이팅해주세요.
2월7일 오후1시부터 시작하려고 합니다.
장소는 맨택(3호선 매봉역)에서 진행 될 예정입니다.
참여 인원은 13명입니다.

장소가 좀 비좁을 듯 하지만, 최선이라 생각해 보렵니다.



1주차 목차는
- ?: javanese님(허락 못 받았지만... 받을수 있을것으로 굳게.. 믿쉽니다.)
- SWT는?
- Hello World 예제
- SWT 주요 Package 소개
- Dialog 소개
- Widget 소개
- Event 소개
- Layout 소개
- SWT Designer 소개
- 팀 만들기
- 실습

2주차 목차는
- 자수님(plugin 개발)
- JFace는?
- Hello World 예제
- JFace 주요 Package 소개
- Viewer 소개
- Action과 Contribute 소개
- Image와 Font Registry 소개
- Dialog와 Wizard소개
- 팀 회의
- 실습

3주차 목차는
- ?: 침묵님
- 국제화
- 패키징/배포
- 팀회의

4주차 목차는
- ?: 까꿍님
- 조별발표

화요일, 1월 20, 2009

할베의 글.
아마도 진짜 가짜 중요하겟으나(?)..

전에도 여러차례 얘기했지만 외국어 공부 열심히 하는데 특히 영어로 논리구사 하는
연습 많이해. 이젠 회화는 기본이고, 자신의 생각을 논리정연하게 표현하는 연습을
단문부터 시작해서 서서히 분량을 늘여나가는 연습을 매주 마다 토픽을 하나씩
정해놓고 해.

영어는 혀잘굴리고 그래머 완벽하게 하는 것 이상으로 논리정연한 표현력이 중요해.
한마디로 맥을 탁탁 짚어서 표현하는 연습...그게 중요해. 그리고 이 연습은 단순히 영어만의 연습이라고는 생각하지 마. 국어의 연습도 함꼐 하게 되느거지. 한마디로 자신의 뇌를 논리를 정연히 구사할 수 있는 길을 트는 연습이고 이게 언어로 표출되는게 국어든 영어든 아님 다른 2,3의 외국어든 그런게 되게하는거지. 이거 굉장히 중요한 말이거든? 흘려듣지 말고.

목요일, 1월 15, 2009

요새 새롭게 구매한 책들을 적어보아야겟다.

- 코드컴플릿 2
- 이클립스 SWT
- 톰켓최종분석
- 자바병렬프로그래밍
- 나쁜사마리아인
- 할베의 책
- 셜록홈즈 탐정소설(영어)

노트북 구매, 노트북 악세사리 구매, 영어학원등록, 영어학원

어느때보다 긴장하고 일하며 시간을 아껴야 할 때이다.
사랑하는 사람을 위해서 지켜야 할것들을 위해서...

월요일, 1월 12, 2009

드디어 일을 저질럿다.

http://cafe.naver.com/eclipseplugin/2875
강좌형식의 스터디를 진행해 보려고한다.

하나를 너무 오래(?) 하다보면 잊어버린 기본기와 무료함 혹은 나누며 사는것에 대해 나를 다시 일깨워 줄거라 생각한다.
내가 살면서 다른 누군가에게 배품을 배푸는 방식이기도 하다.

열심히 준비(?) 할것이고,
참여하는 본래의 목적에 맞게 잘 되었으면 좋겟다.

카페에 있는 전문
안녕하세요.

한금이 조현종입니다.
'
Eclipse platform으로 밥먹고 산지 이제 만 3년(?)이 되어 가는듯 합니다.

eclipse 2.0를 사용하기 시작하였고,
eclipse 매력이 빠져서 정말 허접한 rcp를 처음 만들었던듯 합니다.

2009년에는 작은 강좌를 시작해 보고자 합니다.
SWT/Jface 1개월 과정과정, RCP 1개월 과정을 해보려고 합니다.

철저히 실습 중심의 과정이 될 것입니다.
토요일 6시간씩 4주 과정이 되겠습니다.
1,2,3번째 주는 이론 4시간 실습 2시간으로 진행됩니다.
나머지 4번째 주는 조를 이루어 그동안 만든것을 발표하는 것으로 세션을 진행 할까 합니다.

금액은 민토,토즈 사용료 정도 입니다.(장소를 대여해 주실수 있으면 감사하겠습니다)
예상 인원은 10명 내로 해서 3팀을 만드는 것으로 하겠습니다.
기준은 java를 어느정도 능숙하게 사용하는 상태에서 SWT/Jface, rcp를 배우고자 하시는 분을 기준으로 하겠습니다.
아주 기초적인 부분을 할 것이기에 기존에 하시는 분들은 배제 하도록 하겠습니다.
시작은 2월 첫번째 주부터 시작하도록 하겠습니다.

참여를 원하시는 분은 댓글 부탁드리겠습니다.
참여 원하시는 분은
이름/이메일/전화번호
를 hangum@gmail.com 으로 메일 주세요.
'

목요일, 1월 08, 2009

Eclipse 기본이 되는 몇가지 개념을 잡아가는 듯 하다.
이제야 말이다. 사실 예전에도 많이 보아 왔고, 봤으며, 개발 했으며 알았을지도 모르겟다.

허나, 다시 보는데, 역시나 잘 못 알고 있었는지..

Workbench와 WorkbenchUI의 다른 점은?
혹은
WorkbenchAdvisor 와 WorkbenchAdvisorWindow의 다른 점은?

역시 개발적인 것과 용어 적인 것 개념적인게 섞여서 질문이 나오면 대답하기 여간 어렵다.

깊이있는 이해를 하지 못한것이 아니라,
초보적인 이해를 하지 못한것이다.

우리가 잘 쓰는 이클립스라는 공룡 앞에서 최소한 Workbench의 정의라도 알아둬야 할듯 하다.

월요일, 1월 05, 2009

예전에 현준이가 준 드럼 노래를 듣고있다.
이런 음악을 들으면 스트래스가 풀리는듯하다.

감기와 감기약, 잠, 오한, 영어, 와 싸웠는데... 음악들으니 쉼을 얻는듯하다.

이넘은 잘 지내고는 있는지...

일요일, 1월 04, 2009

그디어 x61s 7675-a29를 입양해 왔다.
비스타 64비트 울티메이트로 인스톨을 다시했고, 램 4기가를 주문한 상태

감기 몸살로 하루종일 몽롱하다.
감기약에 강력한 수면제가 든 것이라 생각해 보지만, 다시 생각해보는데... 감기때문에..

정철학원에 온라인 강의도 등록했고, 새롭게 산 책들도 있다.
카페에서 swt/jface, rcp이런 강의(?) 준비도 해야겟는데...

잠이 무작정 쏟아진다.