<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>ikspres.com 으로 블로그를 이전하였습니다.</title>
	<link>http://ikspres.egloos.com</link>
	<description>ikspres.com 으로 블로그를 이전하였습니다.</description>
	<language>ko</language>
	<pubDate>Mon, 01 Jan 2007 07:38:02 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>ikspres.com 으로 블로그를 이전하였습니다.</title>
		<url>http://pds1.egloos.com/logo/1/200606/07/23/d0010423.png</url>
		<link>http://ikspres.egloos.com</link>
		<width>80</width>
		<height>94</height>
		<description>ikspres.com 으로 블로그를 이전하였습니다.</description>
	</image>
  	<item>
		<title><![CDATA[ 네이버 지도 서비스 + 다음 지도 서비스 ]]> </title>
		<link>http://ikspres.egloos.com/739020</link>
		<guid>http://ikspres.egloos.com/739020</guid>
		<description>
			<![CDATA[ 
  <div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200612/28/23/d0010423_09120853.png" width="459" height="433" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200612/28/23/d0010423_09120853.png');" /></div><br />
<p>&nbsp;</p><p>어떤 계기로 여러 사이트들의 Open API들을 살펴보다가 네이버의 지도 Open API를 이용한 억지 지도&nbsp;검색 기능을&nbsp; 한 번&nbsp;만들어봤습니다.&nbsp;(&nbsp;<a href="http://ikspres.koruby.com/map/map">http://ikspres.koruby.com/map/map</a>&nbsp;)</p><p>그런데 네이버의&nbsp;지도 자체는 휼륭하지만,&nbsp; 검색 기능이 좀 그렇더군요. 예를 들어 '선릉역' 과 같은 단어로는 검색이 안되고 '대치4동' 같은 행정명으로만 검색이 됩니다.</p><p>그래서 일반 명칭 검색도 가능하면서, 지도의 좌표를 알려주는 곳이 없는 지&nbsp;찾다가 &nbsp;Daum의 지도 서비스에&nbsp;검색 기능을 이용해 보기로 했습니다. <a href="http://local.daum.net/map/">http://local.daum.net/map/</a>&nbsp; </p><p>사실 이 부분은 open api로 제공되는 것이 아니므로 form posting을 직접 하고 그 결과 html을 파싱했습니다. html 파싱에는 <a href="http://code.whytheluckystiff.net/hpricot/">why 의 hpricot </a>이 최고더군요.&nbsp; </p><p>만들면서 또 하나의&nbsp;문제를 만났는데, 그것은&nbsp;다음과 네이버가 사용하는 좌표계가 서로 다르다는 것이었습니다.&nbsp; 다행히도 앞서서 네이버 지도와 구글 지도를 하나로 합쳐서 보여주는 meshup 서비스를 몇 분이 개발하면서 지도 좌표계 변환에 대해서는 어느 정도 정리가 잘되어 있더군요.&nbsp;덕분에 좌표계에 대해서도&nbsp;배웠습니다.&nbsp; aero님이 정리하신 내용이 가장&nbsp;상세한 것 같습니다. &nbsp;<a href="http://advance.sarang.net/~aero/map/analysis.html">http://advance.sarang.net/~aero/map/analysis.html</a></p><p>P.S &nbsp;어떤 이유인지 모르지만 제 호스팅 계정의 rails가 좀 이상하군요. 가끔 application error가 나는데 몇 번 reloading을 하면 괜챦아지네요. </p><p>P.S2 혹시나 하여 말씀드리면, 제가&nbsp;이번에 만든 것은&nbsp;상업적 목적으로 만든 것이 전혀 아니며,&nbsp;개인 수준에서 그냥 한번 해본 것입니다.&nbsp;공개한 링크도 곧&nbsp; 내릴 예정이므로 혹시 다음에 계신 분이 보시더라도 너무 기분나빠하지 말아주세요.)</p>			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/739020#comments</comments>
		<pubDate>Thu, 28 Dec 2006 12:36:13 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 부장님 아마존에도 Ruby On Rails로 만든 사이트가 있어요 ]]> </title>
		<link>http://ikspres.egloos.com/619802</link>
		<guid>http://ikspres.egloos.com/619802</guid>
		<description>
			<![CDATA[ 
  드디어 높으신 분들이 알만한 곳에 레일스 레퍼런스가 생겼네요.<br />
<br />
<a href="http://unspun.amazon.com">http://unspun.amazon.com</a><br />
<br />
사용자들이 자유롭게 올리는 주제들에 대해서 순위 매기기 같은 consensus 서비스를 제공합니다.<br />
<br />
예를 들어 <a href="http://unspun.amazon.com/list/show/1028?referrer=popular">최고의 영화 속 인물</a> ('Movie Character')은 인디아나 존스, 제임스 본드, 다스 베이더 순이네요.<br />
그런데 <a href="http://unspun.amazon.com/list/show/420?referrer=popular">최고의 맥주</a> 1위는 도대체...&nbsp; Warm Piss 라니^^			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/619802#comments</comments>
		<pubDate>Thu, 30 Nov 2006 04:20:50 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ RubySeminar 후기  ]]> </title>
		<link>http://ikspres.egloos.com/617321</link>
		<guid>http://ikspres.egloos.com/617321</guid>
		<description>
			<![CDATA[ 
  <a href="http://wiki.rubykr.org/show/RubySeminar">&nbsp;루비세미나</a>에 다녀왔습니다. 예상했던 20명보다 훨씬 더 많은 분들이 참석해주셨습니다. 덕분에 세미나실이 좁게 느껴졌지만 오히려 기분이 좋더군요.<br />
<br />
발표 내용 중에서 개인적으로는 유니코드 지원에 대한 문제에 대해서 명쾌한 설명을 해주신 nohmad님의 발표가 가장 기억에 남습니다. 발표자료가 있었다면 훨씬 더 좋았을 텐데요. <br />
<a href="http://myruby.net">딥블루님</a>과 <a href="http://beyond.daesan.com">대산님</a>의 발표는 역시 기대를 저버리지 않는 재밌있는 내용이었고, <a href="http://pds3.egloos.com">정목님</a>은 비 IT전공자라는 것이 믿기지 않는 깊이 있는 내용으로 Capistrano를 소개해 주셨습니다. <a href="http://codian.net">Codian</a>님의 현재 개발하시고 있다는 내용에 대해서는&nbsp; 흥미로운 구조의 시도라는 생각이 들었는데 시간이 부족하여 많이 아쉬웠습니다.<br />
<br />
저는 최근 제가 사용해왔던 UJS Rails Plugin을 소개했습니다.<br />
<br />
UJS Plugin은 CSS Selector 로&nbsp; HTML element 나 element의 event 를 지정하여 behavior를 지정할 수 있게 해줍니다.<br />
또 자바스크립트 코드들은 HTML 코드와 섞여있지 않고 자동으로 만들어지는 JS파일에 들어가게 됩니다.<br />
UJS Plugin을 사용하면 그 동안 자바스크립트가 넘실대는 HTML 소스를 보면서 느끼던 죄책감에서 깔끔하게 벗어날 수 있습니다. <br />
<br />
<a href="http://ikspres.koruby.com/ruby_seminar/ujs.xul">저의 발표자료</a>는 '다카하시 방식'을 위장한 '게으른 자의 방식'이므로 거의 유용하지 않습니다.<br />
<a href="http://www.google.co.kr/url?sa=t&amp;ct=res&amp;cd=2&amp;url=http%3A%2F%2Fwww.danwebb.net%2Frailsconf2006%2Fujs_railsconf.pdf&amp;ei=o25tRc2gLYqysAKby9nlCQ&amp;usg=___2YqZcslVHoMXafglSxHcWuomAY=&amp;sig2=1u8QzQzQxHWwOZuUhz6Kvw">Dan이 rails2006에서 발표한 자료</a>를 보시기를 권합니다.<br />
<br />
<br />
deepblue님 말씀처럼 루비 세미나가 앞으로 정기적으로 열린다면,&nbsp; 한국의&nbsp; 루비 커뮤니티가 더 성장하는 하나의 계기가 될 것이라고 생각됩니다. <br />
			 ]]> 
		</description>

		<comments>http://ikspres.egloos.com/617321#comments</comments>
		<pubDate>Wed, 29 Nov 2006 11:29:15 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ RubySeminar 가 열립니다. ]]> </title>
		<link>http://ikspres.egloos.com/558449</link>
		<guid>http://ikspres.egloos.com/558449</guid>
		<description>
			<![CDATA[ 
  11월 25일 루비를 사랑하는 사람들이 모이는 세미나가 열리게 되었습니다.<br />
장소는 분당 오픈마루 사무실.<br />
<br />
<br />
루비와 레일스에 대한 단순 소개 수준을 조금 넘어서,&nbsp;여러가지 재미있는&nbsp;내용들의 발표와 지식 공유의 시간이 될 것입니다.<br />
<br />
현재 선착순 20명 받고 있습니다. 발표주제 및 참가 신청은 아래에서...<br />
<br />
<a href="http://wiki.rubykr.org/show/RubySeminar">http://wiki.rubykr.org/show/RubySeminar</a> 			 ]]> 
		</description>

		<comments>http://ikspres.egloos.com/558449#comments</comments>
		<pubDate>Thu, 16 Nov 2006 06:14:30 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ ruby on rails 로 만든 todo list ]]> </title>
		<link>http://ikspres.egloos.com/542913</link>
		<guid>http://ikspres.egloos.com/542913</guid>
		<description>
			<![CDATA[ 
  todo list 관리 툴을&nbsp;rails로 한 번 만들어 봤습니다. 사실 todo 관리의 방식은 각 개인마다 차이가 있기 마련이기에 자신에게 맞는 툴을 찾기는 쉽지 않습니다. 그래서 제 개인적인 요구사항들을 반영해서 만들었고&nbsp; 아직 완성도는 떨어지나&nbsp;&nbsp;나름대로 만족하며&nbsp;사용하고 있습니다.<br />
<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200611/12/23/d0010423_04112152.png" width="460" height="299" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200611/12/23/d0010423_04112152.png');" /></div><br />
<br />
제가 꼭 필요하다고 생각했던 요소들은 다음과 같습니다.<br />
<br />
<ul><li>Online : 집에서도, 회사에서도 사용할 수 있어야 한다. </li><li>CLI : 코딩을 하다가 shell에서 바로 사용 가능해야 한다.</li><li>Tagging : 쉽게 분류하고 찾을 수 있어야 한다.</li></ul><p><br />
<br />
어제 <a href="http://jania902.egloos.com/2741373">jania님이 비슷한 내용을 javascript로 만드신 것</a>을 보고 제 것도 한 번 공개해봅니다. <a href="http://todotxt.com/">todo.txt</a> 에서 concept를 가져온 것이 공통점이네요. 사실&nbsp;todo 관리는 웹같은 GUI 보다는 CLI(Command Line Interface)&nbsp;기반이&nbsp;훨씬 편리한 것 같습니다. todo list 관리를 할 때마다&nbsp; 브라우저를 기동하고(실행 중인 브라우저가&nbsp;없다면) 해당 웹사이트로 접속해야 한다면 너무 불편할 겁니다.</p><p><br />
pyvnc2swf(정말 멋진 툴입니다.)로&nbsp;<a href="http://ikspres.koruby.com/tododemo/">사용법 동영상도</a>&nbsp;한 번 만들어 봤습니다.&nbsp;아무나 한 번 사용해보시라고 오픈해 둔&nbsp;&nbsp;<a href="http://서/">웹 사이트에서</a> 직접&nbsp;해 보시거나, CLI 클라이언트를 <a href="http://ikspres.koruby.com/tododemo/t.exe">다운로드</a> 받아서 해 보실 수 있습니다. 클라이언트는 원래 ruby스크립트인데 몇가지 gem도 있어야 하고 해서 rubyscript2exe 를 이용해서 exe를 만들었습니다.</p><p>다른 분들은 Todo 관리를 어떻게 하시는 지 궁금하네요. 어떤 기능들이 더 있다면 좋을까요?</p>			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/542913#comments</comments>
		<pubDate>Sat, 11 Nov 2006 15:55:00 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 구글 북마크 에서 del.icio.us 로 돌아갑니다. ]]> </title>
		<link>http://ikspres.egloos.com/491990</link>
		<guid>http://ikspres.egloos.com/491990</guid>
		<description>
			<![CDATA[ 
  구글 북마크를 처음 봤을 때 <a href="http://ikspres.com/90711">Delicious를 위협할 수 있는 서비스가 될 것</a>이라고 생각했고, 마침 당시의 del.icio.us 속도가 너무나 느렸기에 그 이후로 구글 북마크를 주로 사용해 왔습니다. 그런데 곧 개선될 것으로 믿었던 불편한 점들이 그동한 거의 개선되지 않아서 다시 del.icio.us로 돌아갑니다.<br />
<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds2.egloos.com/pds/200610/29/23/d0010423_02101910.png" width="274" height="630" onclick="Control.Modal.openDialog(this, event, 'http://pds2.egloos.com/pds/200610/29/23/d0010423_02101910.png');" /></div>(이 길고 긴 리스트를 보세요. 화살표에 있는 버튼을 눌러서 한 참 스크롤을 해야 원하는 tag를 찾을 수 있습니다.)<br />
<br />
제가 사용하면서 느낀 불편한 점은 다음과 같습니다. 우선 저장해놓은 북마크들에 대해서 tag 기반으로 검색을 할 수 없습니다. 제대로 된 tag기반 북마크 시스템이 아니라는 얘깁니다.&nbsp; 일반적인 검색은 할 수 있으나 구글 툴바에서 직접할 수는 없고 구글 북마트 사이트로 일단 이동해야 합니다. 이렇게 되면 del.icio.us보다&nbsp; 더 나은 점이 정말 없는 게 됩니다. <br />
<br />
그런데 오늘 del.icio.us로 다시 돌아가려고 하다가 또 한번 실망했습니다. 구글 북마크에서는 export를 지원하지 않는군요. 이런이런 요즘같은 세상에 이런 닫힌 서비스가... 혀를 차면서 이리저리 찾아보다가 Firefox에서 구글 북마크를 이용할 수 있게 해주는 플러그인의 하나인 <a href="https://addons.mozilla.org/firefox/2888/">Gmarks</a>에서 export를 지원하는 것을 알게되었습니다. 출력 포맷은 OPML 같은 표준 방식은 아니고 HTML 이군요. 그래도 참 다행입니다.&nbsp; 이 놈을 IE나 Firefox같은 브라우저의 Local bookmark export 포맷으로 변환한 후에 delicious에서 import 하면 되겠군요.<br />
<br />
다행히 저는 구글 북마크에 저장된 링크가 많지 않고,&nbsp; 필요없는 링크도 상당 수 있어서 이번 참에 필터링도 한 번 할 겸하여 그냥 수동으로 이사했습니다.&nbsp; 수동으로 이사할 때도 Gmarks에서 만들어준 html을 열어놓고 작업하니 훨씬 편리하고 빠르더군요.<br />
<br />
그리고 오늘 예전부터 delicious에서 가장 불편하게 생각했던 점을 해결했습니다.<br />
브라우저에서 delicious에&nbsp; 북마크를 바로 추가하는 것은 한 번에 가능한데(delicious에서는 지원하는 브라우저용 플러그인이 제공하는 버튼 사용) 저장해둔 북마크들 중에 하나를 찾으려면 delicious로 일단 가야 한다는 사실이 저는 참 불편했습니다.&nbsp; 이 문제를 어떻게 해결 하는 방법이 없을까 알아보다가&nbsp; '구글' 툴바에서 제공하는 '<a href="http://toolbar.google.com/buttons/intl/ko/apis/started.html">사용자 정의 검색 생성</a> 이라는 기능을 사용하면 구글 툴바의 검색 유형에 delicious에 있는 나의 북마크들에 대한 검색을 추가할 수 있다는 것을 알게 되었습니다. <br />
<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds3.egloos.com/pds/200610/29/23/d0010423_02100285.png" width="244" height="356" onclick="Control.Modal.openDialog(this, event, 'http://pds3.egloos.com/pds/200610/29/23/d0010423_02100285.png');" /></div><br />
<br />
<br />
ㅎㅎ 아이러니입니다. 'delicious를 위협한다'고 생각했던 구글이 delicious를 도와주는 꼴이 되었습니다.			 ]]> 
		</description>
		<category>google</category>

		<comments>http://ikspres.egloos.com/491990#comments</comments>
		<pubDate>Sat, 28 Oct 2006 17:19:02 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Ruby GUI 의 한 가지 대안 Html Application  ]]> </title>
		<link>http://ikspres.egloos.com/467430</link>
		<guid>http://ikspres.egloos.com/467430</guid>
		<description>
			<![CDATA[ 
  아주 간단히 설명하면 <a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/hta/overview/htaoverview.asp">HTA(HTML Application)</a>은 html 파일의 확장자를 hta 로 바꾼 것입니다. 따라서 hta에서는 기존에 사용하던 HTML/XHTML, CSS, Javascript를 모두 사용할 수 있습니다. 하지만 주목해야 할 사실은 hta는 로컬에서 실행되는 것이 보장되기 때문에 외부 프로그램 실행과 로컬 파일들의 입출력이 자유스럽다는 점입니다.(이러한 작업들은 주로 <a href="http://www.microsoft.com/technet/scriptcenter/guide/default.mspx?mfr=true">Windows Script</a> 에서 제공하는 기능들을 이용하여 가능합니다.)<br />
<br />
요 몇일간 개인적으로 사용하던 루비 스크립트에 GUI를 추가하고 싶어서 마땅한 GUI툴을 <a href="http://www.codecomments.com/archive327-2005-12-728856.html">또 다시 조사</a>해보다가 갑자기 'html, css, javascript'를 이용해서 만든 페이지를 루비의 GUI로 사용할 수 있다면 좋겠다는 생각이 들었습니다. 그리고 곧 hta라는 것이 있다는 사실을 알게되었고 약간의 시행착오 끝에 상당히 마음에 드는 GUI를 만들 수 있게 되었습니다.<br />
<br />
HTML를 GUI로 사용하겠다는 생각이 든 것은 다음과 같은 이유 때문입니다.<br />
현재 루비의 GUI 환경로는 qt-ruby, wxruby2, ruby-gtk2, fxruby, tk 등 여러 가지가 있지만&nbsp; 아직은 이 것이다라고 할 만큼 널리 사용되거나 안정적이고 문서화가 잘된 것이 없습니다.&nbsp; 따라서 이들 중 하나를 사용하기 위해서는 초기에 상당한 노력과 시행착오가 필요하게 됩니다.&nbsp; 그런데 다들 아시겠지만 정적인 화면 구성만 가능했던 예전과 달리 이제는 CSS와 Javascript 기술을 잘 사용하면 HTML을 가지고도&nbsp; GUI를 충분히 잘 만들 수 있습니다. 따라서 HTA로 GUI를 개발 한다면&nbsp; 새로운&nbsp; GUI 개발 환경을 익히는데&nbsp; 노력을 투자할 필요없이, 웹 UI 개발 기술(HTML+CSS+Javascript) 한 가지에 집중할 수 있게 됩니다. <br />
<br />
그런데 간과할 수 없는 하나의 큰 문제점이 있습니다. 그것은 HTA는 MS의&nbsp; IE에서만 지원하므로 Windows기반에서만 사용할 수 있다는 사실입니다. <br />
<br />
하지만 저는 앞에서의 장점이 꽤나 마음에 들고, 또 개인적으로 사용하는 프로그램의 경우에는 다양한 OS에서 수행할 필요가 없으므로 당분간은 루비의 GUI는 HTA를 이용해서 해볼 생각입니다. <br />
<br />
<br />
조만간 Ruby의 GUI를 HTA로 만든 기본 방식과 샘플을 올려보도록 하겠습니다.			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/467430#comments</comments>
		<pubDate>Sat, 21 Oct 2006 18:19:18 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 간결한 HTML을 유지하면서 둥근 모서리 박스 만들기 ]]> </title>
		<link>http://ikspres.egloos.com/438604</link>
		<guid>http://ikspres.egloos.com/438604</guid>
		<description>
			<![CDATA[ 
  <a href="http://goodhyun.com/archives/2006/04/536.php">WEB 2.0 디자인</a>에서 자주 사용되는 rounded box 를 제대로 구현하는 것은 그&nbsp;심플한 모양과는 달리&nbsp;꽤나 복잡합니다.<br />
여기서&nbsp;'제대로'라 함은 박스의 크기가 그 내용에 따라 자유자재로 늘어나거나 줄어들 수 있음을 의미합니다.(왜 늘어나는 박스를 사용해야 하는 지와 어떻게 구현 하는 지에 대해서는 친절한&nbsp;<a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8989975891">방탄웹</a>에 잘 나와 있습니다.)<br />
<br />
<br />
보통 많이 사용되는&nbsp;박스는 다음과 같은 모양입니다.<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds2.egloos.com/pds/200610/14/23/d0010423_03100125.jpg" width="264" height="90" onclick="Control.Modal.openDialog(this, event, 'http://pds2.egloos.com/pds/200610/14/23/d0010423_03100125.jpg');" /></div>구현은 여러가지로 가능하겠지만, 방탄웹등 여기 저기의 내용을 참조하여 처음으로 만들어 본 HTML코드는 다음과 같았습니다. <br />
<blockquote><p>&nbsp;/* HTML */</p><p>&lt;div class='filled_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='rbox_top'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='rbox_content'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 1&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&nbsp;item 2&nbsp;&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&nbsp;item 3&nbsp;&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='rbox_bottom'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;<br />
&nbsp;&lt;/div&gt;<br />
</p><p>/* CSS */</p><p>/* four rounded corner images */</p><p>.rbox_top {<br />
&nbsp;&nbsp;&nbsp; height: 5px;<br />
&nbsp;&nbsp;&nbsp; background: #B5EDBC url(images/corner_tl.gif) no-repeat top left;<br />
}</p><p>.rbox_top div{<br />
&nbsp;&nbsp;&nbsp; font-size: 1px;<br />
&nbsp;&nbsp;&nbsp; line-height:0;<br />
&nbsp;&nbsp;&nbsp; height: 5px;<br />
&nbsp;&nbsp;&nbsp; background: url(images/corner_tr.gif) no-repeat top right;<br />
}</p><p>.rbox_bottom {<br />
&nbsp;&nbsp;&nbsp; height: 5px;<br />
&nbsp;&nbsp;&nbsp; background: #B5EDBC url(images/corner_bl.gif) no-repeat bottom left;<br />
}</p><p>.rbox_bottom div{<br />
&nbsp;&nbsp;&nbsp; font-size: 1px;<br />
&nbsp;&nbsp;&nbsp; line-height:0;<br />
&nbsp;&nbsp;&nbsp; height: 5px;<br />
&nbsp;&nbsp;&nbsp; background: url(images/corner_br.gif) no-repeat bottom right;<br />
}</p><p><br />
.filled_rounded_box {<br />
&nbsp;&nbsp;&nbsp; background: #B5EDBC;<br />
}</p><p>/* rbox_content for border in for b_rbox and t_rbox */<br />
.rbox_content {<br />
&nbsp;&nbsp;&nbsp; border-left: #b5EDBC 4px solid;<br />
&nbsp;&nbsp;&nbsp; border-right: #b5EDBC 4px solid;<br />
}</p><p>.rbox_content p {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin: 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-left: 5px;<br />
}</p></blockquote><p>먼저&nbsp;위의 &nbsp;CSS에 대해서는 생각하지 말고 HTML에 대해서만 생각해봅시다.</p><blockquote><p>&nbsp;/* HTML */</p><p>&lt;div class='filled_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(255, 0, 0);">&lt;div class='rbox_top'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='rbox_content'&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 1&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&nbsp;item 2&nbsp;&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&nbsp;item 3&nbsp;&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(255, 0, 0);">&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='rbox_bottom'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</span><br />
&nbsp;&lt;/div&gt;</p></blockquote><p>실제 박스에 나오는 내용은 item1, item2, item3 와 같이 간단한 내용인데 HTML의 내용은 꽤나 복잡합니다. 그 이유는&nbsp;바로 네 귀퉁이의 둥근 모서리 이미지를 표현하기 위해서입니다. </p><p>각 모서리를 하나의 background-image로 표현했고, 이 4개의&nbsp;모서리 이미지를 배경이미지로 달기 위해서는 &nbsp;실제&nbsp;내용과는&nbsp;상관없는&nbsp; 여러개의 div 들이 추가로 필요하게 된 것입니다.(위에서 빨갛게 표시한 부분)&nbsp;</p><p>이런 식으로 구현하다보니 HTML 속에 data가 아닌 design 요소들이 들어가게 되어버렸습니다. &nbsp; CSS는 제껴두고서라도 아래의 복잡한 HTML의 내용을 보고&nbsp;화면에 표시될 내용이 뭔지 파악하는 것이 쉽지 않습니다.</p><p>그런데 똑같은 박스의 표현이 가능하도록 하면서 HTML의 내용을&nbsp;간결하게 할 수는 없을까요?</p><blockquote>&lt;div class='fIlled_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 1 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 2 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 3 &lt;/p&gt;<br />
&nbsp;&lt;/div&gt;</blockquote><blockquote><p>&nbsp;</p></blockquote><p>이렇게만&nbsp;된다면 멋지겠군요.&nbsp;화면에 표시될 내용의 묶음인 div의&nbsp;class에 표시할 박스의 모양을 적어주는 것으로 끝입니다. </p><p>이것을 가능하게 하려면&nbsp;javascript의 도움이 필요합니다. </p><blockquote><p>var init = function {<br />
&nbsp;&nbsp;var prefix =&nbsp; "&lt;div class='rbox_top'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;" + "&lt;div class='rbox_content'&gt;";<br />
&nbsp; var postfix =&nbsp;&nbsp;&nbsp; "&lt;/div&gt;" + "&lt;div class='rbox_bottom'&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;";</p><p><br />
&nbsp; var list = document.getElementsByClassName('filled_rounded_box');<br />
&nbsp;&nbsp;&nbsp;&nbsp; listt.each( function(b) { b.innerHTML = prefix + b.innerHTML + postfix; });<br />
}<br />
</p></blockquote><p>코드가 짧지만 좀 복잡합니다. 간단히 설명하면 클래스가 'filled_rounded_box'인&nbsp;놈들을 모두&nbsp;뽑아서 list에 집어 넣습니다.</p><p>list에 있는&nbsp;각각에 대해서 그 innerHTML의 앞 뒤로 필요한 div들을(앞에서&nbsp;빨갛게 표시했던 부분)&nbsp;붙여주는 겁니다. (아참!&nbsp;이 코드는 prootype.js 를 사용했기 때문에 getElementByClassName이나 each 같은 멋진 함수들을 사용할 수 있었습니다.)</p><p>위의 자바스크립트를 cssbox.js 에 담아두고 html의 body tag를 &lt;body onload="init()"&gt;&nbsp;처럼&nbsp;&nbsp;해주면 페이지가 로딩되자마자&nbsp; 위의 코드가 살행되면서 그 페이지내에 있는 모든 박스들의 모양을 만들어줍니다.</p><p>멋지지 않나요? 같은 테크닉으로 다른 모양의 박스도 만들어 봤습니다.</p><p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds2.egloos.com/pds/200610/14/23/d0010423_03100831.jpg" width="201" height="475" onclick="Control.Modal.openDialog(this, event, 'http://pds2.egloos.com/pds/200610/14/23/d0010423_03100831.jpg');" /></div><br />
</p><p>&nbsp;</p><p>이런 박스들을 포함하는&nbsp;페이지의 HTML 소스&nbsp;아래와 같이&nbsp;간결합니다.</p><p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt; Filled Box &lt;/h2&gt;</p><blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='filled_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 1 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 2 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 3 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;</p><p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br /&gt;</p><p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt; Bordered Box &lt;/h2&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='bordered_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 1 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 2 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; item 3 &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;</p><p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br /&gt;</p><p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt; Titled Box &lt;/h2&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class='titled_rounded_box'&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h3&gt; Long and Very Loooong title &lt;/h3&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; titled box &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; titled box &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt; titled box &lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;</p></blockquote><p>&nbsp;</p><p>솔직히 고백하자면 디자인이 그렇게 마음에 들지는 않고&nbsp;기능적으로도 아직 몇 군데 손볼 데가 있지만 그런대로 쓸만한 박스가 된 것 같습니다. (조금만 더 손보면 Titled Box에 조그만 삼각형을 클릭해서&nbsp;제목 아래의 내용을 닫았다 열었다&nbsp;하도록 할 수 있을 겁니다.)</p><p>실제 동작하는 페이지와 HTML, CSS, Javascript 코드들은&nbsp;&nbsp;<a href="http://ikspres.koruby.com/cssbox">여기</a>에서 보실 수 있습니다.</p><p>끝으로 위의 설명에서는 생략했지만, IE에서는 높이가 20px미만인 div를 그냥 만들어지지 않기 때문에 실제 코드에서는 div 본문에 &amp;nbsp;를 넣고 font-size 와 line-height를 지정하는 hack을 사용했습니다.</p><p>&nbsp;</p><p>업데이트: &nbsp;codian님이 소개하신 <a href="http://codian.net/wp/archives/409">이미지를 사용하지 않는 둥근 모서리 박스</a>는&nbsp;기발한 아이디어로군요.&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>			 ]]> 
		</description>
		<category>web</category>

		<comments>http://ikspres.egloos.com/438604#comments</comments>
		<pubDate>Fri, 13 Oct 2006 19:13:27 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ vi(vim)에서 ri 직접 실행하는 방법 ]]> </title>
		<link>http://ikspres.egloos.com/419560</link>
		<guid>http://ikspres.egloos.com/419560</guid>
		<description>
			<![CDATA[ 
  아직도 mac과 textmate을 사용하지 못하고 있는 저는 여전히 vi(vim)을 사용합니다. 그래서 vi에서 ruby 또는&nbsp; rails 작업을 도와주는&nbsp;팁이나 플러그인에 관심이 많습니다.&nbsp;오늘 vi 사용 중에 ruby interactive help 인 ri&nbsp;를 편리하게&nbsp;사용하는 법을&nbsp;알게되어&nbsp;소개해 봅니다.<br />
<br />
먼저 .vimrc 파일에 다음의 내용을 추가합니다 .<br />
<blockquote>function Ri()<br />
let b:x = system("ri '" . input("ri: ") . "' &gt; /tmp/ri_output")<br />
sp /tmp/ri_output<br />
endfunction<br />
map &lt;F2&gt; :call Ri()&lt;CR&gt;</blockquote><br />
<br />
(내용을 가만히 들여다 보면 굳이 vim 매크로 언어를 몰라도 이해하는 것이 그리 어렵지 않습니다.&nbsp; 이 패턴을 잘 기억했다가 외부 명령어를 vi 내에서 호출할 때 사용하면 좋을 듯.)<br />
<br />
사용법은&nbsp; vi 내에서 F2 키를 치며, 하단 명령어줄에 " ri:" 라고 나오며, 여기에 조회하고자 하는 클래스나 메소드 이름을 입력하면 됩니다.. <br />
<blockquote><p>&nbsp;</p></blockquote>			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/419560#comments</comments>
		<pubDate>Sun, 08 Oct 2006 11:29:27 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Framework 2.1  후기 ]]> </title>
		<link>http://ikspres.egloos.com/388302</link>
		<guid>http://ikspres.egloos.com/388302</guid>
		<description>
			<![CDATA[ 
  대안 언어 축제에 이어서 열린&nbsp;<a href="http://altlang.org/fest/Framework2.1">Framwork 2.1</a>&nbsp;에 다녀왔습니다.<br />
<br />
항상 궁금하기만 했던 Django 에 대해서 배울 수 있는 좋은 기회였고, 무엇보다&nbsp;대안언어와 대안 프레임워크에 대해 관심과 열정을 공유한 사람들이 만나는 자리에 참석하는 것 자체가 즐거운 경험이었습니다.<br />
<br />
먼저 발표내용에 대한 소감을 간단히 말하자면,<br />
대산님의 <a href="http://www.egloos.com/egloo/www.rubyonrails.org">레일스</a>&nbsp;<a href="http://beyond.daesan.com/files/rails_framework21.pdf">발표</a>는 언제나처럼 깔끔하고 멋졌습니다. Rails의 기본적인 특징들을 일일이 잘 설명해주셔서 많은 개발자들이 감명을 받았을 것으로 보입니다.<br />
<br />
'<a href="http://www.egloos.com/egloo/www.djangoproject.com">쟁고</a>'의 <a href="http://biohackers.net/wikiattach/DjangoOnFramework2(2e)1/attachments/Django.ppt">발표</a>도 재미있고 유익했습니다. 두 분이 페어로 발표하는 독특한 형태로 진행되었는데 많은 준비를 하신 것을 느낄 수 있었고 실제 개발을 해보신 경험을 기반으로 설명을 해주셔서 더 실감나는 발표였습니다. 특히 '쟁고'의 admin 쪽은 Rails에서도 일부 도입할 필요가 있을 것 같습니다. 기존에 Scaffold를 그냥 한번 만들었다가 개발이 진행되면서 버리는 것으로만 사용하지 말고&nbsp; 쟁고의&nbsp;admin 처럼 계속 유지할 수 있도록 하는 것이 좋겠다는 생각이 듭니다.<br />
<br />
다음 기회에 진행예정인 파이썬의 TurboGears와 스몰토크의 Seaside에 대한 예고편도 정말 재미있었습니다. 언제나 그렇지만 스몰토크에서는&nbsp;강한 '포스'가 느껴집니다.<br />
<br />
하나의 작은 세미나실에서 진행된 행사였지만, 앞으로 이런 행사들이&nbsp;점점 더 자주 더 큰&nbsp; 규모로 열리기를 &nbsp;기대합니다.<br />
<br />
특히나 레일스에 대한 관심들이 대단하다고 느꼈고 한 사람의 <a href="http://www.egloos.com/egloo/preview.ruby-lang.org/kr">루비스트</a>로서 뿌듯했고, 곧 레일스 단독 세미나라도 열리면 좋지 않을까 생각했습니다. 레일스의 단순한 소개 수준을 넘어서 좀 더 깊이 있는 주제들을 발표하고,&nbsp;각 자가 만들어 본 재미있는 내용들을 소개하고 개발 상의 고민들을 나누며 앞으로의 동향이나 소식도 나누는 그런 자리가&nbsp;한국에서도 열릴 수 있다면 참 좋겠습니다.<br />
<br />
10월에는 &nbsp;<a href="http://www.egloos.com/egloo/barcamp.org/BarCampSeoul">BarCampSeoul</a> 과 같은 행사가&nbsp;열린다고 하는데, 루비스트 여러분! 우리도 &nbsp;RubyCampSeoul 이나 RailsCampSeoul 을 한 번 해보면 어떨까요.<br />
<br />
&nbsp; <br /><br />			 ]]> 
		</description>
		<category>ruby</category>

		<comments>http://ikspres.egloos.com/388302#comments</comments>
		<pubDate>Thu, 28 Sep 2006 00:05:55 GMT</pubDate>
		<dc:creator>ikspres</dc:creator>
	</item>
</channel>
</rss>
