눈을뜨기 힘든 가을 보다 높은 저 하늘이 기분 좋아
휴일 아침이면 나를깨운 전화 오늘은 어디서 무얼 할까
창밖에 앉은 바람 한점에도 사랑은 가득한걸
널 만난 세상 더는 소원없어 바램은 죄가 될테니까
가끔 두려워져 지난 밤 꿈처럼 사라질까 기도해
매일 너를 보고 너의 손을 잡고 내 곁에 있는 너를 확인해
창밖에 앉은 바람 한점에도 사랑은 가득한걸
널 만난 세상 더는 소원없어 바램은 죄가 될테니까
살아가는 이유 꿈을 꾸는 이유 모두가 너라는걸
네가 있는 세상 살아가는 동안 더 좋은 것은 없을꺼야
시월의 어느 멋진날에
2009-12-22
시월의 어느 멋진 날에
2009-12-01
xper 11월 모임 회고
지금 일기를 쓰고 있지만 이 일기가 쌓이다 보면 나도 언젠가 이런 고민의 결과를 나눌 수 있지 않을까 기대해 본다. 멀지 않다.
http://parkpd.egloos.com/1973182
참조:
"
민신현님은 다음과 같은 문제점을 해결하고자 하셨습니다.
기존의 방법론은 실제 눈에 보여지는 결과물이 나오기 까지 너무 올래걸립니다.
현재 내 위치를 알수가 없습니다. (얼마나 더해야 끝나는지..)
바보 개발자를 양산하고 있습니다. (요구사항에 없는건 신경도 안쓰는..)
산더미 같은 문서를 생산합니다. (프로그램 개발이 아닌 문서 개발.. 감리를 위한 산출물)
서로 이해되지 않는 말로 커뮤니케이션 합니다. (공동체 의식이 없는 팀..)
그리고 재미를 부여하고자 했습니다. (한국 개발자의 재미 = ownership + 칼퇴근..ㅋㅋㅋ)
그럼 어떻게 해결하셨을까요?
6개월, 1년의 스케쥴은 예측하기 어렵습니다. 짧게 예측하자! 2~3주 이터레이션~
설계 중간중간에 테스트 케이스를 작성 합니다(class diagram, use case 단계) - 자동화 테스트
자동화 테스트만 믿을 수 없습니다. 수동 유저 테스트
기반 시스템 가동합니다 - CI 서버(Hudson) 운영(데일리 빌드, 테스트 자동화), Trac, Doxygen
정말 필요한 문서를 만듭니다. 위키를 통한 프로젝트 진행 사항 공유~ 및 문서화(링크)
개발자들에게 고객과 개발된 프로그램으로 대화하라고 주문합니다~
Wireframe 방식의 GUI prototype 방식에서 user experience가 가능한 prototype 방식으로 변경(프로그램 구매)했습니다
SI 특성상 매 프로젝트마다 인원이 바뀌기 때문에 프로젝트 초반에 교육에 치중하였습니다
매번 이터레이션마다 개발자들을 쉬게 하였습니다. (빨리 끝내는 개발자는 칼퇴근! 추후에는 동료들을 도와준다는.. 하지만 나중에는ㅋㅋ - PM이 지고가야할 짐이라고 하십니다..멋있다ㅠㅠ)
매일 아침 30분간의 티타임~ 우리가 남이 아니다라는 것을 알게됩니다.
고객과의 합의를 통해 새로운 프로세스를 적용하였습니다. (고객 설득 -> 감리 설득)
궂이 애자일이라고 표현할 필요는 없을 것 같습니다. 엄청난 고민과 개선의 결과라고 생각됩니다. (실제로 매우 성공적인 프로젝트를 진행하셨다고 합니다. 참여한 개발자들이 고맙다고 인사하고 선물까지 주셨더라는...)"
- 청하는 애자일 개발자 :: xper 11월 정기모임 회고 (Google 사이드위키에서 보기)
커뮤니케이션 만족도를 평가에 넣자
이런 아이디어는 도대체 어디서 얻는 것일까? 기발하다.
참조:"커뮤니케이션의 만족도"
- 테스팅 히치하이커를 위한 안내서 : xper 11월 정기 모임에 다녀와서 (Google 사이드위키에서 보기)
2009-11-11
미래를 위해 오늘의 행복을 저당잡힌 사회
진정 그러하다. 내 삶의 주권을 회복하고 지금 당장 행복해지기 위한 플랜을 수립해야 한다.
참조: [권태선칼럼] 내 삶의 주권 찾기 : 칼럼 : 사설.칼럼 : 뉴스 : 한겨레 (Google 사이드위키에서 보기)2009-10-31
설계의 본질
설계에 관한 중요한 통찰...
참조:"설계란 과학적이거나 합리적인 무엇이 아니다. 오히려 시도해보고 피드백을 통해 대안을 찾아가는 반복적인 과정이다. 여러 연구 결과로부터 얻을 수 있는 교훈은 설계의 적절성 여부를 판단하기 위한 가장 중요한 피드백은 설계를 구현으로 옮기는 과정에서 얻어 진다는 점이다. 따라서 구현 전에 설계를 고정시킬 경우 실패 극복을 통해 대안을 찾아가는 탐구 과정인 설계의 본질이 손상되며 구현 과정에서 개발자들은 설계를 무시하거나 효과적인 설계를 포기하는 극단적인 선택을 취하게 된다."
- Eternity's Chit-Chat : 설계의 본질, 그리고 UML - 2부 (Google 사이드위키에서 보기)
2009-10-23
윈도우의 아쉬운 2%를 채워주는 프리웨어 Top 10
..
참조:"윈도우의 아쉬운 2%를 채워주는 프리웨어 Top 10"
- 윈도우의 아쉬운 2%를 채워주는 프리웨어 Top 10 :: 웹초보의 Tech 2.1 (Google 사이드위키에서 보기)
2009-10-19
Scala
The Scala Experience
- Safe Programming Can Be Fun!
2009-10-17
대우나 조선이나...
실제 이런 프로젝트를 했다는 사실이 너무 놀랍다. 이걸 설마 대우 혼자 한 건 아니겠쥐?
참조:"대우가 마다가스카르 농토의 절반 이상을 99년 임대한다는 프로그램을 그곳 독재정부와 협상을 거쳐서 거의 실현하기 직전까지 가기도 했다. 마다가스카르 정부는 자기 농민들의 땅을 사실상 빼앗아 외국자본에 넘겨주면서도 지역민들에게 아무런 의논도 동의도 구하지 않고 협상을 진행하다가 그 사실이 영국의 <파이낸셜타임스>등에 의해서 폭로되자, 폭동이 일어났고, 결국 정권이 바뀌는 바람에 대우의 계획은 무산되어버렸다. 비록 실패한 계획이지만, 이것은 사실상 토지강탈 행위이다. 외국의 언론이 이런 각도에서 신식민주의적 정책이라고 비판을 하지만, 우리나라 언론은 이에 대해 이렇다할 관심을 보이지 않는다. 어쩌다가 기사나 논평을 쓰면 기껏 한다는 소리가 외국 사람들이 한국이 잘되는 꼴 보기 싫어서 하는 비판이라는 식으로 대응하는 게 고작이다.실제로 <조선일보>에서 그런 논평이 나왔다. 서양인들이 한국에 대해 시기심을 품고 있다는 것이다. 아무리 국익 우선이라고 하지만, 이것은 인간성과 윤리를 아예 망각한 자세라고 할 수밖에 없다. 한때 우리가 남의 식민지가 되어서 그렇게 인간적인 모욕을 당하고 그 후유증으로 아직도 고통을 당하고 있는데, 이처럼 약육강식의 논리를 거리낌 없이 옹호한다는 것은 역사에서 아무것도 배운 게 없다는 것을 드러내는 것이다. 최소한 역사에서 배운 게 있다면 세계의 양심과 보편주의적 입장에 약간은 서보려는 노력을 해봐야 할 게 아닌가."
- "국가가 잘 되면 행복해진다? 더 이상 속지 말자" - 프레시안 (Google 사이드위키에서 보기)
DDD
미루고 있다가 오늘에야 결심하고 읽었네.
* 도메인 객체가 repository를 가지고 있다는 점은...
2009-10-16
2009-10-15
aggregate 개념
글쿤...
참조:"따라서 주문, 주문 항목은 하나의 객체 클러스터를 구성하며, 고객, 상품은 주문 클러스터에 속하지 않는 독립적인 객체로 존재한다. 이처럼 변경에 대한 불변식을 유지하기 위해 하나의 단위로 취급되면서 변경의 빈도가 비슷하고, 동시 접근에 대한 잠금의 단위가 되는 객체의 집합을 AGGREGATE라고 한다."
- Eternity's Chit-Chat : Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 1부 (Google 사이드위키에서 보기)
Web Dynpro가 괜찮아 지고 있다...
iFrame을 지원한다니...
sap bpm이 web dynpro 이외에는 UI 요소를 지원할 수 있는 방법이 없기 때문에 web dynpro의 성공이 bpm 성공에 큰 역할을 하게 될 것이다.
2009-10-08
2009-10-01
마야 - 나를 외치다
새벽이 오는 소리
눈을 비비고 일어나
곁에 잠든 너의 얼굴 보면서...
힘을내야지
절대 쓰러질 순 없어
그런 마음으로
하룰 시작하는데
꿈도 꾸었었지
뜨거웠던 가슴으로
하지만 시간이 나를 버린걸까...
두근거리는 나의 심장은
아직도 이렇게 뛰는데~
절대로
약해지면 안된다는 말대신
뒤쳐지면 안된다는 말대신
오! 지금 이 순간 끝이 아니라~
나의 길을 가고 있다고 외치면 돼~
지쳐버린 어깨
거울속에 비친 내가
어쩌면 이렇게 초라해보일까
똑같은 시간 똑같은 공간에
왜이렇게 변해버린 걸까
끝이 있는걸까
시작뿐인 내 인생에
걱정이 앞서는건 또 왜일까
강해지자고
뒤돌아보지말자고
앞만보고 달려가자고
절대로
약해지면 안된다는 말대신
뒤쳐지면 안된다는 말대신
오! 지금 이 순간 끝이 아니라
나의 길을 가고 있다고
외치면 돼~~
오! 지금 이 순간
끝이 아니라~
나의 길을 가고 있다고
외치면 돼~
(약해지면 안된다는 말대신)
(뒤쳐지면 안된다는 말대신)
끝이 아니라~~
(약해지면 안된다는 말대신)
(뒤쳐지면 안된다는 말대신)
나의 길을 간다고...
Noop
- dependency injection
- testability
- immutability
그 동안 내가 생각해 왔던 프랙티스의 덕목과 유사하군...
고수는 인재등용에 남다른 철학이 있다
돈이 돈을 번다고도 하지만
돈을 버는 것은 돈이나 권력이 아니라 사람이다.
나는 내 일생을 통해서 한 80%는
인재를 모으고 기르고 육성시키는데 보냈다.
삼성이 발전한 것도 유능한 인재를 많이 기용한 결과이다.
- 이병철 삼성 창업회장 (이금룡 회장, ‘고수는 확신으로 승부한다’에서)
고(故) 이병철 회장이 밝힌 인재관은 다음과 같습니다.
‘자기를 나타내는 것보다 조직 자체를 키우고,
조직이 크는 것으로 자기만족을 느끼고,
눈에 잘 띄지 않지만 일은 틀림없이 해내고,
자기의 공을 내세우기 보다는 다른 사람의 공을 이야기하고,
자기 절제를 잘하고,
아래 사람을 키우는 사람이 회사에 필요한 사람이다’
2009.10.1 행복한 경영이야기 메일에서...
2009-09-30
영문 글꼴에 없는 한글 글꼴 지정하기
내가 적용한 방식은 레지스트리 수정.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]에 해당하는 영문 글꼴의 영문 이름(예를 들어 Consolas)을 다중 문자열 값으로 추가한 다음 다음과 같이 지정할 한글 글꼴을 지정한다. 일본어를 지정해도 된다.
SEGOEUI.TTF, Malgun Gothic gulim.ttc,gulim MSGOTHIC.TTC,MS UI Gothic SimSun.TTC,SimSun mingliu.ttc,PMingLiU한글 글꼴 파일 이름, 글꼴명 순서로 쓴다. 적용되려면 재부팅 필요.
2009-09-29
Chrome Frame
요즘 RSS를 잘 안 읽다 보니 이런게 나왔는지도 몰랐네. 정말 구글답다. IE6를 끝까지 고집하는 사람들을 위해 이런걸 만들다니...
이 넘은 IE에 깔리는 Browser Helper Object인데, 이게 뭔지 모르면 그냥 ActiveX라고 생각하면 된다.
웹사이트가 이 기능을 이용하도록 하면 사용자가 IE7이나 IE8로 업그레이드 할 필요 없이 플래시처럼 이게 깔리면서 최신의 웹표준을 사용할 수 있도록 해준다. HTML5, CSS3, canvas and SVG features 머 이런 것들이란다.
2009-09-28
Trac 에서 권한이 있는데 볼 수 없을 때
Account Manager에서 EmailVerificationModule 을 빼시오. 혹은 그 사용자더러 이메일을 확인하도록 하시오.
2009-09-24
TortoiseSvn 과 Trac 통합
- XML-RPC plugin and you need XML_RPC-permissions.
- When you use AccountManagerPlugin together with form based authentication, you must also install the HttpAuthPlugin
Trac 실행 명령어
sudo trac-admin /path/to/trac/project initenv sudo chown www-data:www-data -R /path/to/trac/project sudo trac-admin /path/to/trac/project permission add admin TRAC_ADMIN이제 svn 커밋할 때에, 티켓 번호와 연동해야 하는데...
Subversion의 mailer.py 스크립트에서 Gmail SMTP 사용하기
http://www.pyrasis.com/blog/entry/SubversionMailerPyScriptForGmailSMTP
sudo apt-get install subversion-tools
mailer.conf 에서는
# mail_command = /usr/sbin/sendmail smtp_hostname = smtp.gmail.com:587 smtp_username = someuser@your.domain smtp_password = yourpassword from_addr = someuser@your.domain to_addr = your@mailing.list reply_to = your@mailing.list
from_addr세팅을 안했더니 안간다. 이것 때매 시간 좀 썼다. 그리고 위에서 mail_command 는 코멘트 처리 했다. 이게 있으면 SMTP로 직접 쏘는게 아니라 sendmail을 이용해서 보낸다는거다.
mailer.py 에서는 class SMTPOutput 의 finish() 에서
if self.cfg.is_set('general.smtp_username'): server.ehlo() server.starttls() server.ehlo() server.login(self.cfg.general.smtp_username, self.cfg.general.smtp_password)
와 같이 수정한다.
2009-09-20
2009-09-16
LazyInitializationException 처리
XXX x = aaaService.getXXX(); bbbService.doSomething(x); bbbService.doSomething(XXX x) { x.getYYY(); <-- 여기서 LazyInitializationException }즉 XXX x 객체가 세션의 바운더리를 넘어서 이동할 경우 Detached 상태가 된다는 것이 문제의 원인일 것 같아.
그러므로 해결책은 1) detached된 객체를 re-attach하거나 2) 위 두 서비스의 호출을 하나의 Unit of Work로 묶어주거나.
2번이 애플리케이션 설계 측면에서 더 매력적일 듯.
인터넷에 있는 해결책들은 대부분 lazy=false 를 사용하라 되어 있던데 이것도 좀 그래. 왜냐하면 난 대부분의 경우 lazy=true 기능을 쓰고 싶단 말이지. 그리고 lazy=false로 하지 않아도 쿼리시에 eager fetch를 하면 되니까.
이상은 모두 추측. ㅎ (문서를 상세히 읽지 않았음)
2009-09-15
프로젝트 시작 전에
- http://www.ibm.com/developerworks/kr/library/s_issue/20070703/?ca=drs-kr
- Ship it. 이건 프로젝트중에 팀원 모두가 항상 참고하자.
2009-09-10
javascript로 다른 도메인 호출
<script> document.domain = "example.net"; $(document).ready(function() { $('#call0').bind('click', function(event) { alert("loading..."); // $('#a').load('http://no.example.net/a.php'); try { $.get('http://no.example.net/a.php', function(data) { alert(data); }); } catch (e) { alert(e); } alert("done..."); }); }); var globalVar; // This will be called by c.js function assignGlobal(val) { globalVar = val; alert(globalVar); } $(document).ready(function() { $('#call1').bind('click', function(event) { $(document.createElement('script')) .attr('src', 'http://no.example.net/c.js').appendTo('head'); }); }); $(document).ready(function() { $('#call2').bind('click', function(event) { frames['f'].func(); }); }); </script> <body> <ul> <li><a href="#" id="call0">Click: ajax loading. not work.</a> <li><a href="#" id="call1">Click: script insert</a> <li><a href="#" id="call2">Click: iframe(requires document.domain setting on both side)</a> </ul> <iframe name="f" id="f" src="a.php" width="100" height="50"></iframe>a.php
<script> document.domain = 'example.net'; function func() { alert('alert from func in a'); } </script>c.js
alert('alert from c.js'); assignGlobal('OOOOOOO');AJAX로 하는 것은 동작하지 않는다. domain을 조절할 수 없다. 위에서 jquery로 script태그를 생성했는데, 이것을 plain javascript로 바꾸면 다음과 같다.
var h = document.getElementsByTagName('head').item(0); var js = document.createElement('script'); js.setAttribute('src', 'http://no.example.net/c.js'); h.appendChild(js);
2009-09-09
신입사원 가이드
DB: sql, ORM
Web: javascript + html + css
- 네이버에서 신문 보는 것으로 시간 때우지 말 것.
- IT뉴스 및 트렌드: dzone rss
- RSS 볼 때, Open source에 특히 관심을 가질 것.
- 타 운영체제에도 관심을: 리눅스, 솔라리스도 스스로 학습 할 것. (vmware, virtual box로 쉽게 접근할 수 있음)
- 책을 가까이 할 것. 출퇴근 시간에 항상 책을 읽을 것. 업무시간에도 책을 읽을 것. 무의미하게 모니터를 바라보고 있지 말것.
2009-09-04
2009-09-03
Ubuntu boot시 glassfish 자동 실행
#!/bin/sh -e GLASSFISH_HOME=/home/glassfishv3-prelude case $1 in start) ${GLASSFISH_HOME}/bin/asadmin start-domain --user admin $2 ;; stop) ${GLASSFISH_HOME}/bin/asadmin stop-domain --user admin $2 ;; restart) ${GLASSFISH_HOME}/bin/asadmin stop-domain --user admin $2 ${GLASSFISH_HOME}/bin/asadmin start-domain --user admin $2 ;; *) echo $"Usage: $0 {start|stop|restart} [domain]" exit 1 ;; esac그런 다음 /etc/rc.local에 /etc/init.d/glassfish start domain1 한 줄 추가로 끝.
glassfish asadmin login
apache reverse proxy
mods-enables에 아래와 같이 symbolic link생성
- proxy.conf -> ../mods-available/proxy.conf
- proxy_http.load -> ../mods-available/proxy_http.load
- proxy.load -> ../mods-available/proxy.load
자신의 site 파일에 다음을 설정
ProxyRequests OffOrder deny,allow Allow from all ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/
glassfish domain 생성
root@buy-0448:/home/glassfishv3-prelude/bin# ./asadmin create-domain --portbase 9000 mydomain Enter admin user name[Enter to accept default]> Using port 9048 for Admin. Using port 9080 for HTTP Instance. Using port 9076 for JMS. Using port 9037 for IIOP. Using port 9081 for HTTP_SSL. Using port 9038 for IIOP_SSL. Using port 9039 for IIOP_MUTUALAUTH. Using port 9086 for JMX_ADMIN. Distinguished Name of the self-signed X.509 Server Certificate is: [CN=mysite.example.com,OU=GlassFish,O=Sun Microsystems,L=Santa Clara,ST=California,C=US] Domain jabberstory created. Command create-domain executed successfully.portbase 값에 따라 여러 port들이 정해진다.
Ubuntu virtual host, site
<VirtualHost *:80> DocumentRoot /home/rnd/www ServerName rnd.example.net ErrorLog /var/log/apache2/rnd.example.net-error_log CustomLog /var/log/apache2/rnd.example.net-access_log combined </VirtualHost>sudo a2ensite newsite를 실행한다. a2dissite명령어도 있다.
2009-09-01
Ubuntu에서 ssh root login
$ sudo vi /etc/ssh/sshd_config PermitRootLogin yes $ sudo /etc/init.d/ssh restart $ sudo passwd root <-- root password setting $ sudo -s <-- switch to root 아래도 참고 $ sudo vi /etc/gdm/gdm.conf allowRoot = true
2009-08-26
2009-08-21
log
- There's always a way out http://agile.egloos.com/5087880
- 파랑새 신드롬 http://www.ibm.com/developerworks/kr/library/dwclm/20081021/
2009-08-20
2009-08-14
Applet에서 Modal dialog 열기
(Frame)SwingUtilities.getAncestorOfClass(Frame.cla ss, myApplet) and use it as owner for the dialog.
textcube
Eclipse P2를 위한 URL
- Galileo http://download.eclipse.org/releases/galileo
- The Eclipse Project Updates http://download.eclipse.org/eclipse/updates/3.5
- Subversive SVN connector http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/
- Scala Update Site http://www.scala-lang.org/scala-eclipse-plugin
2009-08-12
오늘의 로그
- Animation library for java applications http://kenai.com/projects/trident/pages/Home
- Property Edit http://propedit.sourceforge.jp/
2009-08-07
Selecting Development Infrastructure
- Subversion for SCM
- Trac for bugtracking
- Hudson for CI
- Sonar for Quality Reporting
- Nexus, a Maven repository
2009-08-06
2009-08-04
2009-07-31
사랑하라. 한번도 상처받지 않은 것처럼 -알프레드 디 수자-
비전이 있는 사람과 몽상가의 차이
2009-07-30
2009-07-24
JNA (Java Native Access)
2009-07-22
2009-07-21
생각한 대로 살지 않으면 사는 대로 생각하게 된다
2009-07-20
2009-07-17
구글이 한국에서 성공할 수 없는 이유
2009-07-16
Presentation Zen - 1
세련미의 극치는 단순함이다. - 레오나르도 다 빈치
- 디자인으로 승부하라 (기능만으로는 안된다)
- 스토리를 겸비해야 한다 (단순한 주장은 부족하다)
- 조화를 이루어야 한다 (집중만으로는 안된다)
- 공감이 필요하다 (논리만으로는 안된다)
- 놀이도 필요하다 (진지함만으로는 안된다)
- 의미를 찾아야 한다 (물질의 축적만으로는 안된다)
- 강연을 보완하는 슬라이드를 만들어야지 내뱉은 말을 문자 그대로 반복하는 슬라이드는 필요 없다.
- 수준 낮은 삽화는 집어치워라.
- 조잡한 화면 전환 효과는 사용하지 말라. 단순함이 최고다.
- 꼭 유인물을 만들어 놓자. 상세내용. 발표 후에 나눠 주겠노라고 하라.
명확한 생각과 스스로에 대한 절제는 대단한 힘이 있다. - 제임스 러셀 로웰/미국의 시인
엄격한 틀 안에서 작품을 쓸 때 상상력이 최고로 발휘되며 아이디어도 넘친다. 자유가 지나치면 작품은 응집력을 잃고 만다. - T.S. 엘리엇
- 여러분의 컴퓨터는 지성을 위한 자전거입니까?
- 종이, 칠판, 나무 막대기
- 펜과 종이, 화이트보드, 포스트잇
- 속도를 줄여라. 고독에 대한 갈망: 사람들을 통해 영감을 얻고, 정보를 통해 아이디어를 구하며, 연습을 통해 실력이 향상된다. 하지만 현상황을 파악하고 새로운 발견을 이끌어내며 자신만의 고유한 해답을 찾아내기 위해서는 혼자만의 고요한 시간이 필요하다. -에스터 부흐홀츠
창의력을 배가시키려면, 고독을 발전적으로 활용할 수 있어야 한다. 고독에 대한 두려움을 극복해야 한다. - 롤로 메이 / 미국의 실존분석학자
- 슬라이드
- 발표자를 위한 메모지
- 청중에게 나눠줄 자료 (유인물)
2009-07-10
신현배 뜨다 ! ㅎ
언젠가는...
청년에게는 무엇이든 해낼 열정이 있으나 넉넉함이 허락되지 않고, 그토록 바라마지 않던 여유를 얻게 되는 때가 오면 어느새 열정이 온데 간데 없다.
젊은 날엔 젊음을 모르고, 사랑할 땐 사랑이 보이지 않았네
하지만, 이제 뒤돌아 보니 젊음도 사랑도 아주 소중했구나
눈물 같은 시간의 강 위에 떠내려 가는 건 한 다발의 추억 ... 언젠가는 우리 다시 만나리, 헤어진 모습 이대로
2009-07-03
iframe 높이를 내용 크기에 맞추기
<iframe id="trac" width="100%" src="http://www.google.com" style="border-width:0;" frameborder="0" scrolling="no"></iframe> <script> var trac = document.getElementById("trac"); trac.onload = function() { trac.height = trac.contentWindow.document.body.scrollHeight; } </script>
2009-07-02
자바 글꼴 설정
# monospaced.plain.alphabetic=Courier New monospaced.plain.alphabetic=Consolas ... # monospaced.bold.alphabetic=Courier New Bold monospaced.bold.alphabetic=Consolas Bold ...예쁘다. Java6 이후 버전이라 그런지 이제 스윙도 예쁘다는 느낌이다. 실행속도도 제법 빠르고... 이제 스윙을 다시 해보는 것도 나쁘지 않은 느낌? ㅎ 굳이 swt나 jface를 같이 들고 갈 필요가 없으니 그것도 좋을 것이고... 문제는 jnlp나 애플릿으로 배포할 경우는 방법이 없다. 저 설정을 프로그래밍할 수 있으면 좋을텐데 말이지... RFE: Means to specify a Font with fallbacks for additional code point coverage 참고. 다음 링크도 참고하자