MavenEclipseWTP은 뭔가 삽스러웠다. 그래서 정석으로 파고들기 시도~ 준비물 eclipse 3.0+ 설치 maven 2.0+ 설치 http://maven.apache.org 윈도의 시스템 PATH 등록 m2eclipse 플러그인 설치 http://m2eclipse.codehaus.org/update-dev/ m2wtp 플러그인 설치 http://m2wtp.googlecode.com/svn/trunk/kr.javanese.devtools.m2wtp.update 명령행(cmd)에서 C:\workspace>mvn archetype:create -DgroupId=com.thinkfree.ajax -DartifactId=test -DarchetypeArtifactId=maven-archetype-web..
이거 어디서 퍼왔더라-.-;; 원 출처를 까먹었다.출처: http://livingash.wordpress.com/2007/08/13/back-to-the-future-when-eclispe-wtp-20-meets-maven-2/ 구질구질하긴 하지만... 뭐 어때~ 잘 돌아간다! 기본적인 절차는 대충 이렇다: 이클립스를 띄우고, "Dynamic Web Application" 프로젝트를 하나 만들고, 표준 maven 프로젝트를 기본 archetype으로 만들고, 모든 이클립스 설정 파일들을 maven 프로젝트로 복사한 다음, 프로젝트에 맞게 수정한다. 준비물: 이클립스 3.3 + WTP 2.0. M2Eclipse 플러그인(http://m2eclipse.codehaus.org/) 서블릿 컨테이너 런타임.(톰캣..
블로그라인에서 새 버전을 dojo만들고 있다고 해서... 후다닥 들어가 봤는데... 이게 생각보다 꽤 쓸만~ @..@ 구글 리더를 버리기로 결정~ P.S. C+U를 눌렀더니(직업병?)... 요런게 보인다~ Welcome to _ _ _ _ | |__ | | ___ __ _| (_)_ __ ___ ___ | '_ \| |/ _ \ / _` | | | '_ \ / _ \/ __| | |_) | | (_) | (_| | | | | | | __/\__ \ |_.__/|_|\___/ \__, |_|_|_| |_|\___||___/ |___/ v3.0 (beta) Proudly Made On Earth! 나도 따라해봐야쥐~
싱글톤 패턴의 전형적인 자바 구현: public class Singleton { static Singleton instance; public static synchronized Singleton getInstance() { if (instance == null) { instance == new Singleton(); } return instance; } } 위의 구현의 문제점은 getInstance가 synchronized는 것이다. 그래서 좀 지저분하지만 현실적인 해결책으로: public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instanc..
오늘 삽질하다가... 발견한 Sun의 Java6의 javax.xml.stream.?XMLOutputFactory 소스의 일부... -.-;;;;; public abstract class XMLOutputFactory { ... /** * Create a new instance of the factory using the default factory location * mechanism (check env. variable, jaxp.properties, jar services manifest, * in this order) * * @throws FactoryConfigurationError if an instance of this factory cannot be loaded */ public static..
거의 한 달동안 정체 불명의 스펙들 속에서 허우적 거리고 있다. DOM과 SAX로 모든걸 해결하던 배고픈 시절은 갔다고 굳게 믿었다. 넘쳐나는 스펙들을 보며 만세를 불렀다. 그리고, 그 스펙들의 공수표에 좌절하고 있다. 한달 동안 뒤적거린 XML 관련 스펙들을 나열해보자: DOM:굳이 설명이 필요없을 듯. SAX:상동 XSLT:상동 XPATH: 1.0 스펙까진 어느 정도 알고 있었다. 2.0은 그야말로.. 경천동지~ 상전벽해~ 말로만 하는거면 뭘 못하냐고-.-. ?XQuery:궁극의 해결책이라고 믿었다. 천만의 말씀 만만의 콩떡이더라. ?XUpdate:처음 봤을땐 이건 어디서 굴러먹던 개뼈다귀냐라고 생각했었지만... 정말 개뼈다귀다. -.-; ?XmlDb (XAPI): 정말 개뼈다귀다. -.-;; ?XQ..
지난 프로젝트에서는 IE6를 우선 타겟으로 삼고, IE7을 위한 온갖 꽁수들을 동원했었다. 영미권에서는 진작부터 IE7에 대한 강제 업데이트가 시작되었고, 브라우져 점유율 통계에서도 IE7의 점유율이 IE6를 앞지르기 시작했다. 우리나라도 올 2/4분기에는 강제 업데이트가 시작될거라고 하는데... 지금 진행중인 프로젝트의 첫번째 퍼블릭 릴리즈가 2/4분기... 예상되는 실 서비스 적용 시점은 3/4분기 이후... IE6를 지원하겠다고 마음을 먹고 덤비면, 지원하는게 어려운 일은 아니다. 귀찮을 뿐... 그리고 지저분할 뿐... 게다가 IE6를 지원하겠다고 마음을 먹고나면 ?IE5.x도 슬그머니 고개를 내민다. OS를 기준으로 생각해보면 ?IE5.x라면 win95도 지원한다는 것이고, IE6라면 win98..
기뻐할 일인가, 슬퍼할 일인가... 회사의 누구 말마따나 아직 Java5 공부도 다 못했는데... ㅠ.ㅠ 뭐가 달라졌나... 한 번 구경이나 해보세~ 웹서비스: 웹서비스 클라이언트 제작에 필요한 API. 스크립팅: 다양한 스크립트 언어 지원을 위한 프레임웍 + Rhino 자바스크립트 런타임. 데이터베이스: JDBC 4.0, SQLXML 그리고 ?JavaDB(derby)! 향상된 스윙: ?SwingWorker, 향상된 ?JTable 소팅/필터링, ?GroupLayout. 좀 더 빨라지고 예뻐진(?) 스윙. Vista에서 제대로 돌아감. 개선된 JMX와 ?JConsole 그리고 ?DTrace 연동! 컴파일러 API? javac 컴파일러를 프로그램을 통해 제어할 수 있다. 이제와서 33스럽게.. 그냥 ecj쓸..
출처: http://ajaxian.com/archives/css-evolution (트랙백 하고 싶지만, 영어 블로그에 한글 트랙백 달아서 어쩌겠는가... 아직 web2가 넘어할 벽이 많다.) 아무튼 semantic과 presentation의 분리와 재결합(?)을 통한 방탄웹의 오묘함을 느껴보시라~ 결론은.... CSS고 나발이고, 저 상단의 배경에 쓰인 멋진 그림을 골라낼 수 있는 센스~ 적절한 글꼴과 글자 색과 배경 색을 선택할 수 있는 센스~ 그게 필요하다는 거 Orz
gnome.or.kr의 서버의 IP가 바뀌어서.. DNS에 새로 설정했는데... 며칠이 지났는데도 여전히 안된다는 연락이 왔다. 지금 쓰는 DNS 서버는 bind9. 7에서 올린지도 반년이 넘었고 그동안 아무 문제도 없었다. 게다가 이번에 바꾼건 IP뿐이었는데... 라고 생각했었다. 그래도 뭔가 잘못했으니 안되는 거려니 하고 이리저리 뒤적이다... 그게 아니라는 사실을 알았다. Serial 필드를 같이 바꾼 것이다. 그리고... 그것이 문제가 됐으리라고 꿈에도(!) 생각하지 못했다. 새로 입력한 시리얼은 200611061146(년월일시분을 쭈욱 붙여 쓴 것으로, 흔히 쓰는 방법이다). 이 녀석이 "out of range"였던 것이다. 32bit 정수의 한계 범위까지는 조금 남아있긴 한데... bind 개..
JAVA가 마침내 GPL로 공개됐다. 많은 사람들이 오해하는 사실 중의 하나는 "지금까지 썬에서만 배포하고 있던 JRE/JDK를 마음대로 배포할 수 있을 것이다"라고 생각한다는 것인데... 그것은 사실과 다르다. 소스가 GPL이 된것이지 JRE/JDK의 설치 패키지가 GPL인 것은 아니기 때문이다. 다만 썬이 공개한 소스를(GPL에 의거하여) 컴파일하고 나름대로 패키징해서 배포하는 것은 무방하다. 비유하자면, RHEL는 GPL이지만 레드햇이 지정된 경로를 통해서만 배포할 수 있지만, 레드햇이 공개한 소스를(GPL에 의거하여) 컴파일하고 나름대로 패키징해서 나름대로의 이름으로 배포하는 ?CentOS같은 변종들이 있는 것과 같다. 단, 이 과정에서 썬이 공개한 소스에 수정을 가했다면, 그 소스도 GPL로 공..
DWR을 사용해서(자바용 AJAX 라이브러리) 받아온 결과를 여러 개의 TR태그로 만들어서 미리 만들어져 있는 TBODY의 innerHTML에 밀어넣는 코드를 만들었었다. 작업은 주로 리눅스에서 했고 파이어폭스 1.5 / 2.0에서 잘 돌아갔다. QA팀의 테스트에 임박해서야 IE에서 처음으로 테스트 했는데.. 웬걸.. 완전 먹통인 것이다. 처음에는 DWR의 문제라고 생각했다. 일단 DWR이 만들어는 응답 메시지가 구질구질했기 때문이다. DWR을 걷어내야겠다고 맘만 먹고 일단 퇴근... 그러나... 좀 아깝긴 하다 -.-; DWR 같이 거져먹는(써본 사람들은 이 표현에 동의할 것이라고 확신한다) 라이브러리를 포기한다는 건 말처럼 쉬운 일이 아니다. 집에만 설치되어 있는 IE용 자바스크립트 디버거(Micro..
YouTube 유사품으로 동영상 대신 프리젠테이션을 공유하는 사이트가 등장했다. 꽤 오래전에 만든 슬라이드를 시험삼아 올려보았다. 사실 회사에서도 나름대로 준비하고 있는 부분이었는데.. 선수를 뺏겨서 조금 당황스럽긴 하다. 아직 SlideShare 가 성공했다고 보기는 힘들지만, 최소한 야후나 구글의 인수 대상임에는 틀림없다. 그리고 그런 전도유망한 회사에게 인수당하는 것은 유력한 성공 모델 아니던가. 기술적으론 회사에 서 준비하고 있는 것이 나쁘지 않고, 오히려 앞선 부분도 많지만... 그것 만이 전부는 아닌 세상... 사업적 성공이 기술만으로 이루어지는것이 아님을 깨닫기 위해 한 번의 실패를 했다. 오히려 돈과 타이밍이 더 중요하다는 것을 깨닫기 위해 또 한 번의 실패를 했다. 그리고 돈과 타이밍은 ..
구글이 최근 JotSpot을 인수했다. 발음하기도 참 므흣한 JotSpot... "잣스팟"이라고 읽는다 JotSpot 은 말하자면 위키와 웹오피스(?)가 결합된 포스트 모던한 위키 호스팅 서비스를 제공하는 회사다. 즉, 구글이 위키의 비지니스 모델에 눈을 돌리고 있다는 얘긴데.. 일찍이 많은 회사들이 위키 비지니스를 시도했었지만, 다들 위키스러움과 사용성이라는 두마리의 토끼 사이에서 헤매다가 소리 소문없이 사라졌었다. (네이버의 지식인에 대항(!)하기위해 야후가 시도했던 위키 백과 서비스를 기억하는가?) 일단, 단기적으로는 GoogleDocs과의 결합을 예상할 수 있겠지만, 문제는 그 뒤다. 뻔한 녀석들도 구글이 손대면 달리지곤 한다. 이번에도 구글의 마법이 계속될까? 아니면, 구글도 실패한 위키 비지니..
오늘 얘기는 Zimbra의 블로그에서 퍼 온 몇 장의 그래프... 먼저 IE 6 vs IE 7 vs FF 1.5. 그림 아래의 세부항목을 볼 수 없어서 아쉽지만... 요는 막대기가 짧은 놈이 장땡이고, 고로 FF 1.5가 장땡이다: 다음은, IE 7 vs FF 2.0. 역시 그림 아래의 세부항목의 의미는 모르겠지만... 역시 막대기가 짧은 놈이 장땡이고, 고로 FF 2.0이 장땡이다: 계속 해서, IE 7의 월별 성능 변천사. 10/15~17일 사이에 무슨 일이 있었던 걸까? 아무튼 격차가 상당히 좁혀졌다: 마지막으로, FF 1.5 vs FF 2.0. 흠... FF 1.5와 IE 7은 차이가 거의 없을 것이라는 것을 유추할 수 있겠다: 헤비한 ?JavaScript 코딩을 해본 사람들은 알겠지만, IE 6..
블로그를 쓰십니까? 위키도 쓰십니까? 블로그에서 위키문법을 쓰고 싶으신가요? 그렇다면 MoniBlog가 좋은 선택일 수 있습니다. MoniWiki의 블로그 관련 기능을 잘 활용하면 멋진 블로그를 만들 수 있습니다. 지금 보고 있는 이 블로그가 바로 MoniBlog입니다. MoniWiki의 블로그 관련 기능을 활용해서 멋진 블로그를 만드는 방법을 알아보겠습니다. 처음엔 조금 귀찮고, 어색한데.. 그런가 보다 하고 쓰시면 금방 익숙해집니다. 일단 블로그 분류 체계부터 잡아보죠. 일반적인 블로그에서의 분류는 모니 블로그에서 하나의 페이지로 표현됩니다. 즉 분류를 만들려면 페이지를 만들면 됩니다. 단 이 페이지는 블로그로 표현되어야 한다는 것을 알려줘야 합니다. 또, 이러한 블로그용 페이지들에 특정한 분류 태그..
그걸로 끝인 줄 알았다. 천만의 말씀 만만의 콩떡이더라...-.-; 디스크만 커졌지 파티션은 그대로였다. diskpart로 어떻게 해볼려고 하니까... 지원하지 않는 볼륨이란다. 그리하여 구글님께 물어본 결과: http://gparted.sourceforge.net/livecd.php 이런 멋진게 있더라. (자매품 gparted liveusb 도 있어요~.~) vmx파일을 살짝 수정해서 다운받은 gparted livecd iso로 바꿔주고 vmware power on~ 재빨리~ esc를 딱! 한 번만 눌러주자! (주의: 이 충고를 무시하면... 수십회의 재부팅을 경험하게 될 것이다.) livecd가 부팅하면 엔터키 다음에 메뉴가 한번 더 나온다. manual video card setting과 xvesa..
원래 2G파티션 만들어서 IE로 테스트이 필요할때만 썼는데, 회사에서 쓰는 그룹웨어가 activex를 쓰고, 그 activex가 무려! HWP를 요구하는 관계로...(뷁!) 암튼 디스크 크기를 바꾸는 건 vmware에 workstation버전 평가판을 다운로드 받아서 그 안에 있는 vmware-vdiskmanager를 쓰면 된다. 설치할 필요도 없다. 그냥 tar.gz버전 받아서 대충 풀어놓고 실행시켜도 잘 돌아간다. 사실, 설치하려고해도 다른 버전 깔려있다고 거부한다. $ ./vmware-vdiskmanager -x 10Gb ~/vmware/xp/hda1.vmdk 잠깐~! 10Gb의 b는 필수!
말하자면 보통 데스크탑의 listview 위젯처럼 동작하길 원하는 건데... 짧은 글로 쓰려니 어렵다. -.-; col1col2col3data1data2data3data1data2data3data1data2data3data1data2data3data1data2data3data1data2data3data1data2data3data1data2data3 핵심은 이건데... 흠.. 크기를 고정시키지 않고는 어떻게 안될꺼나... 거기다 IE는...-.-; 암튼 삽질 중.
~/.smb/smb.conf 파일에 다음과 같이 적어보자: [global] workgroup = Workgroup unix charset = UTF8 dos charset = CP949 security = share socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=81 출처: http://gnome.or.kr/irc/index.php?day=2004.09.23#682 상구옹 만쉐! 특급옹 만쉐! (그냥 예의상 해봤다)
?JavaKernel 이라는 이름으로 Java7에 포함될 듯... 말하자면, "처음으로" 애플릿을 실행하기 위해 필요한 런타임(JRE 플러그인 버전)의 용량을 줄이기 위해 rt.jar를 쪼개고, 그걸 on-demand로 다운로드 할 수 있도록 한다는 얘기다. 현재 Java6 런타임이 15M정도인데, 이렇게 하면 콘솔 버전 HelloWorld 정도를 돌리는 데는 2.6M, AWT 버전을 돌리는 데는 3.5M 정도면 된단다. 멋지군! 멋져! 그런데... 자바가 찬밥을 먹는 것이 런타임의 크기 때문일까? 크기 때문에... 윈도를 설치할 때 플래시와 함께 설치되지 않는 걸까? (조만간 리눅스는 gcj/classpath가 기본 설치될 것 같지만...) 주변에서 OSX을 쓰는 사람들을 살펴보면 (클래식부터 써온 x..
* http://blog.guykawasaki.com/2006/04/the_top_ten_lie.html (막 번역이라... 원래 글과 뜻이 다를 수 있으니, 법적 대응같은 거 생각하지 마세요.) 1. "이제 곧 베타 테스트에 들어갈꺼예요" 언제 베타 테스트을 시작하는 지 알게 뭐야. 끝나기는 하냐? 그런 얘기해봐야 별 의미가 없다구. 요즘은 베타 테스트를 끝내야 할 유일한 마감 시한이 "돈이 떨어지기 전"이니까.. 옛날이 좋았지. 그땐 말이지, "알파"는 "제대로 동작하지는 않지만 그럭저럭 모든 기능을 다 구현하긴 했다"라는 뜻이였고, "베타"는 "더이상 똑같은 버그들이 튀어나오진 않는다"는 뜻이였거든. 요즘 말하는 베타는 "이 정도까지 했으니 투자자들과 약속한 출시일을 좀 넘겨도 되겠지"라는 뜻이 더..
http://gimp.or.kr 홈페이지를 오픈했습니다. 홈페이지 주소는 gimp.or.kr이지만, 딱히 김프만을 위한 사이트는 아닙니다. 김프와 잉크스케이프, 블렌더를 포함한 오픈 소스 그래픽스를 위한 작은 커뮤니티가 되었으면 하는 바램입니다. 아직은 그냥 게시판과 위키, 갤러리를 엮어놓은 것에 불과하지만... 많이 모여서 이런 저런 얘기를 나누다 보면... 좋은 커뮤니티가 될 수 있지 않을까 생각합니다. ?HanIRC에 상주 중인 분들은 #gimp도 들러주세요(아무도 없더라도... 놀라지는 마세요) 라고 http://kldp.org 에 광고하고 홈페이지 첫화면에도 올렸다. ... 같은 내용을 서로 다른 세군데 울궈먹는 이 뻔뻔함...-.-; 어찌됐건 이건 내 블로그니까 한마디 더 하면... gimp...
?Java6 "mustang"의 베타가 릴됐다. 빠르다...-.-; http://java.sun.com/javase/webnotes/6/features.html 아직 ?Java5의 새기능이 뭔지도 다 모르는데... 1.2 이후로 계속 뒤떨어지고 있는 느낌... 과연 또 뭐가 얼마나 달라졌을까... 일단, 대충 쭉 보니.. 클라이언트 쪽이 많이 개선된거 같고... JMX와 관련된 부분들도 좀 바뀌고 추가된거 같고... 웹서비스와 관련된 일부 확장 API들이 코어로 내려왔고... 에... 또... VM 성능 향상이 있는 것 같고... 오~ 재밌는거(중요한거 절때! 아님)~ 소형 웹서버가 추가되었고... 배열 재할당(만쉐!)이 추가되었네... 뭐 시간이 지나면(?Java7이나 ?Java8이 나올때 쯤?)이면 ..
?SeeAlso http://mail.gnome.org/archives/gtk-devel-list/2005-December/msg00187.html GTK 메일링에 const char *str을 const char str[]이렇게 바꾸는 기여를 하겠다는 사람이 나타났다. 응? 물론 나도 후자를 좋아한다. 다만 내가 후자를 좋아하는 이유는 그것이 더 명확하기 때문이다. 심지어 char str[]보다 char[] str을 선호한다. 즉, str이라는 변수는 배열이며, 그 배열의 요소는 char라는 사실이 더욱 명확하다는 거다. 그런데, 메일링의 얘기는 그것과 다른 이유에서 였다. 후자가 더 효율적이라는 것이다. 응? 뭐가? 라고 궁금해하는 것은 나만이 아니었다. C도 나름대로 쓴다고 생각했지만... 그것은 ..
?UbuntuBreezy부터 새로 추가된 usplash용 이미지를 한번 만들어 보았다. 이런 저런 부가조건이 있어서 생각보다 귀찮지만~ 심심하신 분들 한번 해 보시길~ 일단 GIMP를 이용해서 640x480 16컬러 이미지를 만들어야 한다. 단, 그 중에서 6개의 색은 다음과 같이 인덱스와 용도가 정해져있다. 팔레트 인덱스용도 0배경색 1진행 막대 색 2오른쪽 메시지 글자 색 4진행 막대 배경색 8왼쪽 메시지 글자 색 13실패 메시지 색 요걸 GIMP에서 어떻게 잘 요리할 것인가가 오늘의 주제~ 여러가지 방법이 있겠지만... 가장 단순 무식한 방법을 설명하겠다.(그래~ 나 공대나왔다~) 팔레트를 미리 만들어 두고 그 팔레트에 맞춰서 그림을 그리는 방법인데, 절차는 간단하지만 약간의(?) 그림 솜씨와 (도..
- Total
- Today
- Yesterday
- Prototype
- ***1/2
- Dojo
- 책
- JavaScript
- web
- docker
- 자바스크립트
- CSS
- 영화
- 땅끝마을
- 독후감
- Java
- **
- 여행
- maven
- HTML5
- Ajax
- ****
- ***
- DeveloperWorks
- 노래
- 자전거
- webapp
- jQuery
- 장필순
- nodejs
- 해남
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |