토요일, 9월 30, 2006

JSR-82 BT 디버깅 일화

같은 팀의 모차장님께서 JSR-82 업무를 진행하시느라 여념이 없다. 황금 같은 9연속 징검다리 휴가도 반납하시고 개발에 여념이 없으신 것이다! - 한국은 이런 분이 많아야 잘먹고 잘살 수 있다 -

오늘 다시 알게되었지만 역시 적절한 도구를 사용한 업무 진행은 효율성을 극대화시킬 수 있다. 막말로 맨땅에 헤딩만 해서는 피만 흥건해진다는 것이다.

아무리 노력하고 열심히 해도 정확한 방향설정을 하고 덤벼드는 개발자에게는 100번 싸움을 걸어봐야 100번 질게 뻔한 것이다. ㅋㅋ 넘 장황하고 뻥튀켜진 느낌이군.

짧게 설명하면 BT 디버깅을 위해 Linux + BlueZ + HCIDUMP 프로그램을 사용하니 금상첨화였다는 것이다!

앞으로 내 스스로 BT 혹은 다른 업무를 진행하게될때도 위와 같은 찰떡궁합 - 시의 적절하고 편리한 도구를 손에 넣고 시작해야 겠다.

모두 즐거운 9일간의 휴일이 되시길! 해피 추석..,

금요일, 9월 29, 2006

비전 = 꿈?

난 좋은 신체를 가지고 있나? - 글쎄~ ^^
그럼 양심은 탄탄한가? - 별로... ^^
그러면 머리는 명석한가? - 조금 좋기는 한것 같지만 상위 5%에는 못들것 같은데 ㅋㅋ
가슴이 뜨거워지는 때가 얼마나 있었지? - 월드컵에서 한국이 이탈리아 역전승할 때 정도~

내가 정말 잘 할 수 있는게 뭘까?
내가 정말 하고싶은건 뭘까?
열정을 가지고 덤벼들 수 있는 것을 어떻게 찾을 수 있지?
정말 내 양심에 비추어 부끄럽지 않게 살아갈 수 있는 날이 올까?
평생 건강하게 활기차게 살아갈 수 있을까?

음... 이런 사항을 보면 좀 괴로워야할 것 같은데 괴롭지는 않고 가끔 답답하기는 하다.
뭐. 그래도 이 정도면 평균 이상의 삶은 살고 있잖아~ ^^
라고 생각하면서.

목요일, 9월 28, 2006

언제나 여행을 꿈꾸는 그대!

자극 좀 팍팍 받아보시라.

http://jazzulove.egloos.com/

news: NetBeans product 한국어 페이지

내가 짬날때 번역한 NetBeans 한국어 product page.

http://www.netbeans.org/products/index_ko.html

시간 날 때마다 조금씩 한국어 페이지를 작성해볼 예정임.

월요일, 9월 25, 2006

make: automatic variables

$@
target.
$%
$<
first prerequisite.
$?
newer prerequisites.
$^
all the prerequisites. without duplication.
$+
all the prerequisites. with duplicates.
$*
stem of the target.

All variabes has two variants like:

$(@D)
directory portion of the value
$(@F)
file portion of the value

목요일, 9월 21, 2006

사진: 이제야 알게된 Profile에 사진 올리기 방법

프로필에 사진 넣기 위해 그냥 올려본 사진.

관리: 프로젝트 관리 방법

프로젝트를 관리하는 7가지 절차.

1. Agree precise specification for the project.
프로젝트의 목적, 결과물, 각종 인자(비용, 시간, 권한 ...), 프로젝트의 진행 방법(주기적인 미팅, 중간 점검 시기 ...)등 표준을 정한다.

2. Plan the project - time, team, activities, resources, financials.
프로젝트에 수반되는 각종 행위들에 대한 계획을 수립한다. 소프트웨어 개발 업무의 경우라면 주로 개발 모듈 정의, 누가 언제까지 수행하는지, 필요한 지원등을 예로 생각해볼 수 있겠다. 각 행위의 상관관계 및 위험을 어떻게 회피할 수 있는지에 대해서도 확인하도록 한다.

3. Communicate the project plan to your project team.
프로젝트 구성원들과 수립한 계획에 대해 논의하도록 한다.

4. Agree and delegate project actions.
정확한 위임 절차에 따라 업무를 위임하도록 한다.

5. Manage, motivate, inform, encourage, enable the project team.
칭찬은 크게! 추궁은 부드럽게~ 결국 프로젝트의 실패는 관리자의 책임이라는 것을 기억할 것!

6. Check, measure, review project progress; adjust project plans, and inform the project team and others.
주기적으로 계획 대비 실행결과를 확인하도록 한다. 주기적인 팀 미팅을 가지는 것이 좋겠다. 확인 결과에 따라 프로젝트 계획을 수정하고 전체 팀원들과 공유하도록 한다.

7. Complete project; review and report on project performance; give praise and thanks to the project team.
프로젝트를 완료하면 실패/성공 요인에 대해 분석하고 리포트를 작성한다. 프로젝트 성공에 대한 감사의 말을 팀원들에게 꼭 전달하도록!

더 자세한 내용은 여기를 참조하시길~

관리: 무엇을 먼저 해야하나? - 4분면 방법

수많은 해야할 일들과 바쁜 일정, 계속 쪼아대는 상사 및 부하직원들의 요청.
위와 같은 상황이 계속되다보면 도대체 내가 지금 뭘 해야하나 갈팡질팡하다가 정작 중요한 일은 손틈으로 빠져나가 버리는 비극적(?)인 상태가 되어버릴 수 있다.

그렇다면 어떻게 여러 일들을 정리하여 당장 해야할 일들을 결정할 수 있을까?
간단한 4분면 정리 방법이 있다. (원본 내용은 여기를 참조하기 바란다.)

아래 표를 보면 모든 일을 "중요도"와 "시급도"로 나누어 지금 할일, 계획하여 할 일, 하지않도록 설명해야할 일, 무조건 하면 안되는 일로 나누고 있다.

자신의 시간 관리가 잘되고 있다면 2분면에 많은 시간을 할애할 수 있을 것이고 최악의 경우는 4분면에 많은 시간을 사용하는 경우일 것이다.


urgent not urgent
important 1 - DO NOW
  • emergencies, complaints and crisis issues
  • demands from superiors or customers
  • planned tasks or project work now due
  • meetings and appointments
  • reports and other submissions
  • staff issues or needs
  • problem resolution, fire-fighting, fixes

Subject to confirming the importance and the urgency of these tasks, do these tasks now. Prioritise according to their relative urgency.
2 - PLAN TO DO
  • planning, preparation, scheduling
  • research, investigation, designing, testing
  • networking relationship building
  • thinking, creating, modelling, designing
  • systems and process development
  • anticipation and prevention
  • developing change, direction, strategy

Critical to success: planning, strategic thinking, deciding direction and aims, etc. Plan time-slots and personal space for these tasks.
not important 3 - REJECT AND EXPLAIN

  • trivial requests from others
  • apparent emergencies
  • ad-hoc interruptions and distractions
  • misunderstandings appearing as complaints
  • pointless routines or activities
  • accumulated unresolved trivia
  • boss's whims or tantrums

Scrutinise and probe demands. Help originators to re-assess. Wherever possible reject and avoid these tasks sensitively and immediately.
4 - RESIST AND CEASE

  • 'comfort' activities, computer games, net surfing, excessive cigarette breaks
  • chat, gossip, social communications
  • daydreaming, doodling, over-long breaks
  • reading nonsense or irrelevant material
  • unnecessary adjusting equipment etc.
  • embellishment and over-production

Habitual 'comforters' not true tasks. Non-productive, de-motivational. Minimise or cease altogether. Plan to avoid them.

bash: 간단한 sed 사용법

요즘 SVN repository에서 현재 수정된 부분을 비교하여 보여주는 내부 개발 스크립트를 분석하고 있는데 이 bash 스크립트에서 sed를 많이 사용하고 있어 sed에 대한 사용법을 간략하게 소개한 아래 페이지를 참고하고 있다.

http://wiki.kldp.org/wiki.php/DocbookSgml/Sed-TRANS

좀 더 공부한 후 스스로 정리한 내용을 올리도록 하겠다.

화요일, 9월 19, 2006

뉴스: Sun Tech Day 개최

http://kr.sun.com/developers/techdays/index.html

11월 8일~10일 Java, NetBeans, Solaris에 관한 개발자 세미나가 개최된다고한다.
사전등록하면 참가비도 3만원밖에 안한다.

월요일, 9월 18, 2006

책: Learning the bash shell (3rd)


원래 친 MS파였던 나로서는 bash shell을 따로 살펴보게되리라고는 생각도 안하고 살았다. 그런데, 인생이 어째 저째 하다보니 UNIX의 대부(?)격 회사에서 일하게 되었고 UNIX와는 관계없는 Java 개발자로 일하고 있어도 다른 개발자들이 shell script를 워낙 잘짜서 사용하다 보니 관심을 안가질 수 없는 사항이 되었다.
그리하여, 오렐리의 bash관련 서적을 한권 독파하였는데 현재 수준으로서는 이 이상의 공력은 필요치 않다고 생각되며 요정도의 얕은 지식으로 회사 업무를 잘 해쳐나가야 겠다. ^^

수요일, 9월 13, 2006

관리: the steps of successful delegation

This document came from 'www.businessballs.com'

the steps of successful delegation

1 Define the task
Confirm in your own mind that the task is suitable to be delegated. Does it meet the criteria for delegating?

2 Select the individual or team
What are your reasons for delegating to this person or team? What are they going to get out of it? What are you going to get out of it?

3 Assess ability and training needs
Is the other person or people capable of doing the task? Do they understand what needs to be done. If not, you can't delegate.

4 Explain the reasons
You must explain why the job or responsibility is being delegated. And why to that person or people? What is its importance and relevance? Where does it fit in the overall scheme of things?

5 State required results
What must be achieved? Clarify understanding by getting feedback from the other person. How will the task be measured? Make sure they know how you intend to decide that the job is being successfully done.

6 Consider resources required
Discuss and agree what is required to get the job done. Consider people, location, premises, equipment, money, materials, other related activities and services.

7 Agree deadlines
When must the job be finished? Or if an ongoing duty, when are the review dates? When are the reports due? And if the task is complex and has parts or stages, what are the priorities?

8 Support and communicate
Think about who else needs to know what's going on, and inform them. Involve the other person in considering this so they can see beyond the issue at hand. Do not leave the person to inform your own peers of their new responsibility. Warn the person about any awkward matters of politics or protocol. Inform your own boss if the task is important, and of sufficient profile.

9 Feedback on results
It is essential to let the person know how they are doing, and whether they have achieved their aims. If not, you must review with them why things did not go to plan, and deal with the problems. You must absorb the consequences of failure, and pass on the credit for success.


화요일, 9월 12, 2006

Emacs: 특정 buffer를 별도의 frame으로 여는 방법

cscope를 이용하여 찾은 symbol의 내용을 window가 아닌 별도의 frame으로 독립적으로 보여주기 위해서는 어떻게 하면 될까?

(setq special-display-buffer-names
(append special-display-buffer-names (list "*sscope*")))

위와 같은 내용은 .emacs 파일에 추가하면 된다. 마찬가지로 Emacs Manual을 별도의 frame에 표시하고자 한다면 위 내용에서 *cscope* 부분을 *info* 로 변경해주면 된다.

월요일, 9월 11, 2006

음악: 坂本真綾(Sakamoto Maaya)

坂本真綾 (Sakamoto Maaya)

Album - 夕凪LOOP

1. Hello
작사: 坂本真綾 / 편곡: 中西亮輔
작곡: Shusui, Robin Fredrikson, Ola Larsson, Fredrik Hult

2. ハニー・カム
작사: 浜崎貴司 / 작·편곡: h-wonder
3. ループ
작사: h's / 작·편곡: h-wonder
4. 若葉
작사: 坂本真綾 / 작곡: 周水 / 편곡: 中西亮輔
5. パプリカ
작사: 岩里祐穂 / 작·편곡: 中塚 武
6. My Favorite Books
작사: h's / 작·편곡: 吉俣 良
7. 月と走りながら
작사·작곡·편곡: 浜崎貴司
8. NO FEAR / あいすること
작사·작곡·편곡: 鈴木祥子
9. ユニゾン
작사: 岩里祐穂 / 작곡: 周水 / 편곡: 中西亮輔
10. 冬ですか
작사: 坂本真綾 / 작·편곡: h-wonder
11. 夕凪LOOP
작사: 坂本真綾 / 작·편곡: 中塚 武
12. a happy ending
작사: 坂本真綾 / 작·편곡: 鈴木祥子

금요일, 9월 08, 2006

책: 내몸개혁 6개월 프로젝트


날로 건강에 대한 관심이 깊어가고 있는 요즘. 나 자신 건강에 소흘했음을 깊게 반성하며 큰 뜻을 세우기 위해 책 한권을 독파하였다. 유태우 교수의 "내몸개혁 6개월 프로젝트"!
읽어보면 당연하지~ 싶은 6가지 신신당부의 내용이 있는데 하나씩 살펴보면 다음과 같다.


1. 예민한 몸에서 둔한 몸으로.
미련 곰탱이가 되라? 라는 말은 아니지만 예민한 성격을 고쳐 둔감한 성격이 되라는 말씀. 어떻게 가능할지는 모르겠으나 책에 의하면 노력하면 변한단다. 한 예로 시간에 늦어도 일부러라도 더 천천히 행동할 것과 같은 지침이 있다. 잘못하면 칼 맞을지도 ^^

2. 금주 6개월
이장은 그냥 안보고 지나쳤다. ㅋㅋ



3. 운동을 지배하라!
역쉬 운동량이 부족한 나로서는 뼈저린 아픔으로 다가오는 내용이었다. 그래서, 오늘 부터라도 활동량을 늘리기 위해 아침 출근 시 일부러 좀 먼길을 걸어 다니기로 작심하였다.

4. 흡연? 안돼~~
어차피 나도 담배는 백해무익이라고 생각하고 있으니까. Pass.

5. 그만 좀 먹엇!
요즘 현대인들은 과영양상태란다. 무조건 먹는 양을 줄이고 정상 체중으로 돌아갈 것을 적극 권장한다. 나는 177cm의 신장이니까 68KG정도가 적당한 체중이라고 한다. 앞으로 ?? kg을 감량해야 하니 저녁 식사는 대충 대체식품으로 때울까 생각중이다.

6. 3달에 5kg 감량
아~ 그래야할텐데 ^^

7. 약발 잘받는다고 계속 Go하면 패가망신
ㅋㅋ 약 좀 그만 먹으란다. 역쉬 해당사항 없음.

NetBeans: Default platform 없이 빌드하는 방법?

Need research...

수요일, 9월 06, 2006

Emacs: (Windows) Emacs에서 한글 입력 하는 방법

나와 같이 Emacs 소스 코드를 다운 받아 Windows (2000 or XP)에서 Build하여 사용하는 경우라면 아래와 같은 방법을 따른면 된다.

0) 우선 Visual C++가 설치되어 있어야 한다.
1) Leim 다운로드: http://ftp.gnu.org/pub/gnu/emacs/
2) Emacs 폴더에 Leim 압축을 푼다.
3) Leim 폴더로 이동하여 nmake를 수행한다.
4) 다시 nmake /f "makefile.nt" all 을 수행한다.
- 이 경우 내 PC 환경에서는 문제가 있어 'C:\emacs-21.4\src' 아래의 'obj-spd' 폴더의 이름을 'obj'로 변경하여 빌드하였다.
5) nmake /f "makefile.nt" install 을 수행한다.

정상적으로 설치가 되었다면 Emacs를 수행하고 Shift + SPACE를 입력하면 한글 입력 모드가 활성화된다.

다음 Web 페이지 참조: http://kldp.org/node/57470

Emacs: TAB키를 이용하여 자동 완성(auto complete) 기능 활용하기

이 내용은 "http://www.emacswiki.org/cgi-bin/wiki?EmacsNiftyTricks" 의 내용을 참조한 것입니다.

M-/ 자동 완성 기능을 사용하면 코드 작성 중에 입력하는 긴 변수명이라든가 함수 명등을 자동으로 완성시킬 수 있다. 예를 들면,

expectedFreeSize 라는 변수 명을 사용하였다면 다음 번 이 변수명을 입력 시 exp 와 같은 앞 부분 문자열을 입력 후 M-/ 키를 입력하여 자동 완성 시킬 수 있다.

이러한 기능을 키에 Mapping하면 더욱 직관적으로 사용할 수 있다. 아래와 같은 스크립트를 .emacs 파일에 추가하면 된다.
(defun indent-or-complete ()
"Complete if point is at end of a word, otherwise indent line."
(interactive)
(if (looking-at "\\>")
(dabbrev-expand nil)
(indent-for-tab-command)
))

(add-hook 'c-mode-common-hook
(function (lambda ()
(local-set-key (kbd "") 'indent-or-complete)
)))
만일 Java에도 적용하고자 한다면 add-hook에 추가하면 된다. 이렇게 설정 후 Emacs를 재가동하면 문자열 입력 중 가장 끝 에서 을 입력하면 자동 완성 기능이 동작한다.

화요일, 9월 05, 2006

bash: how to rename all '*.old' file to '*.new' file.

UNIX PowerTools 책을 참조해보면 아래와 같은 명령어를 이용하여 *.old 파일을 *.new로 변경할 수 있다고 되어 있다.

ls -d *.old | sed "s/\(*\).old/mv & \1.new/" | sh

그러나, 유감스럽게도 Cygwin에서 실행해보면 정상적으로 동작하지 않는다. 대신...

ls -d *.old | sed "s/\([!-~]*\).old/mv & \1.new/" | sh

위와 같이 수행하면 원하는 결과를 얻을 수 있다. 이 복잡한 명령문에 대한 설명은 우리 Team의 모차장님의 명쾌한 설명을 첨부하는 바이다.

sed 에 유용한 meta tag 들이 있네요
& 는 s/orginatl/change/ 에서 1st pattern (original) 을 의미합니다.
\( ... \) 로 묶게 되면 meta tag 를 mark 하는 것이구요, 이걸 나중에 \number 로 해서 사용할 수가 있습니다. meta tag mark 는 \(\)로 복수로 가능하고, 이걸 mark 순서대로 1, 2, 3... 이렇게 사용한다고 하네요.

Emacs: how to use bash from Windows

Add the below elisp to .emacs file.
Original scripts came from 'http://www.khngai.com/emacs/cygwin.php'.
You can download cygwin-mount.el file from 'http://www.khngai.com/emacs/cygwin-mount.el'.

One more TIP. During my cscope setup from Windows Emacs, I found it did not work properly if I did not set bash as my shell from Emacs. I can't sure what is the cause of it.

(setenv "PATH" (concat "d:/cygwin/bin;" (getenv "PATH")))
(setq exec-path (cons "d:/cygwin/bin/" exec-path))
(require 'cygwin-mount)
(cygwin-mount-activate)

(add-hook 'comint-output-filter-functions
'shell-strip-ctrl-m nil t)
(add-hook 'comint-output-filter-functions
'comint-watch-for-password-prompt nil t)
(setq explicit-shell-file-name "bash.exe")
;; For subprocesses invoked via the shell
;; (e.g., "shell -c command")
(setq shell-file-name explicit-shell-file-name)
(setq default-process-coding-system '(undecided-dos . undecided-unix))