<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>dig, dig and dig</title>
	<atom:link href="http://bzpalm.net/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://bzpalm.net/wordpress</link>
	<description>about linux system</description>
	<pubDate>Mon, 06 Sep 2010 15:41:22 +0000</pubDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CentOS 의 nokogiri 오동작 문제.</title>
		<link>http://bzpalm.net/wordpress/archives/221</link>
		<comments>http://bzpalm.net/wordpress/archives/221#comments</comments>
		<pubDate>Tue, 17 Aug 2010 07:49:54 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[centos]]></category>

		<category><![CDATA[nokogiri]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=221</guid>
		<description><![CDATA[다른 회사와 협업을 하면서, 웹 서버를 세팅할 일이 생겼다.
OS는 내가 제일 싫어하는 CentOS..;; (Fedora 는 그래도 패키지 업데이트라도 빠르지..)
우격다짐(?)으로 rvm, rails 환경을 설치하고..
rails application 에서 필요한 library 설치까지 완료!! (물론.. bundler 가 알아서..ㅋㅋ)
그런데..
트위터 사용자 번호(user_id)를 크롤하는 코드가 자꾸만 nil 을 반환하는 것이다.
코드상의 문제인줄 알았으나..
알고보니 centos 의 libxml2, libxslt 라이브러리의 문제였던 것이다.
즉, nokogiri 로 url 를 [...]]]></description>
			<content:encoded><![CDATA[<p>다른 회사와 협업을 하면서, 웹 서버를 세팅할 일이 생겼다.<br />
OS는 내가 제일 싫어하는 CentOS..;; (Fedora 는 그래도 패키지 업데이트라도 빠르지..)</p>
<p>우격다짐(?)으로 rvm, rails 환경을 설치하고..<br />
rails application 에서 필요한 library 설치까지 완료!! (물론.. bundler 가 알아서..ㅋㅋ)</p>
<p>그런데..<br />
트위터 사용자 번호(user_id)를 크롤하는 코드가 자꾸만 nil 을 반환하는 것이다.</p>
<p>코드상의 문제인줄 알았으나..<br />
알고보니 centos 의 libxml2, libxslt 라이브러리의 문제였던 것이다.</p>
<p>즉, nokogiri 로 url 를 파싱하려 하면,<br />
HTML 문서 전체를 못가져 오고, Head 의 일부만 가져오는 문제였던 것이다.</p>
<p>참고: <a href="http://nokogiri.org/tutorials/installing_nokogiri.html">http://nokogiri.org/tutorials/installing_nokogiri.html</a></p>
<p>먼저 패키지로 설치된 libxml2-devel, libxslt-devl 을 제거한다.</p>
<blockquote><p># yum remove libxml2-devel libxslt-devel</p></blockquote>
<p>그리고, libxml2, libxslt 순서로 컴파일을 한다. ㅡ.ㅡ</p>
<blockquote><p># ./configure &#8211;prefix=/usr<br />
&#8230;<br />
# make &#038;&#038; make install
</p></blockquote>
<p><strong>&#8211;prefix 옵션을 /usr 로 줘야, include, lib 패스에 추가해주는 노가다를 줄일수 있다.</strong><br />
<strong>libxslt 가 libxml2 를 의존하기 때문에 libxml2 를 먼저 컴파일해야 한다.</strong></p>
<p>설치가 잘 되었다면..<br />
nokogiri 를 다시 설치해주자. (아니면, bundle install)</p>
<blockquote><p>gem uninstall nokogiri<br />
&#8230;<br />
gem install nokogiri
</p></blockquote>
<p>이젠, 정상적으로 동작할 것이다.</p>
<p>교훈은.. R.T.F.M!! ㅋㅋ</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/221/feed</wfw:commentRss>
		</item>
		<item>
		<title>mongodb installation on Debian Lenny</title>
		<link>http://bzpalm.net/wordpress/archives/219</link>
		<comments>http://bzpalm.net/wordpress/archives/219#comments</comments>
		<pubDate>Mon, 02 Aug 2010 06:36:11 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[debian]]></category>

		<category><![CDATA[mongodb]]></category>

		<category><![CDATA[gpg]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=219</guid>
		<description><![CDATA[요즘 프로젝트로 인해 MongoDB를 다룰일이 잦은데,
설치할때마다 GPG Error 를 만나게 된다.
해결하는 방법이 어렵지는 않으나, 매번 검색하기도 귀찮고..
10번정도 다뤄본것 같으니, 외워질때도 된것 같아 블로그에 기록을 남겨본다.
개인적으로 별도로 소스를 컴파일 해서 사용하기보단, mongodb 에서 제공하는 Debian 패키지를 사용하는 것을 선호한다. 이유는&#8230; 편해서..;;;
http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages
이 문서를 한번 훑어본뒤,
/etc/apt/source.list 파일에 
&#8230;
deb http://downloads.mongodb.org/distros/debian 5.0 10gen
을 추가하고,
apt-get update 를 실행시키면 GPG Error 를 [...]]]></description>
			<content:encoded><![CDATA[<p>요즘 프로젝트로 인해 <a href="http://www.mongodb.org/">MongoDB</a>를 다룰일이 잦은데,<br />
설치할때마다 GPG Error 를 만나게 된다.</p>
<p>해결하는 방법이 어렵지는 않으나, 매번 검색하기도 귀찮고..<br />
10번정도 다뤄본것 같으니, 외워질때도 된것 같아 블로그에 기록을 남겨본다.</p>
<p>개인적으로 별도로 소스를 컴파일 해서 사용하기보단, mongodb 에서 제공하는 Debian 패키지를 사용하는 것을 선호한다. 이유는&#8230; 편해서..;;;</p>
<p><a href="http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages">http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages</a><br />
이 문서를 한번 훑어본뒤,</p>
<p>/etc/apt/source.list 파일에 </p>
<blockquote><p>&#8230;<br />
deb http://downloads.mongodb.org/distros/debian 5.0 10gen</p></blockquote>
<p>을 추가하고,<br />
apt-get update 를 실행시키면 GPG Error 를 만나게 될 것이다.</p>
<p>그럴때면..</p>
<blockquote><p>sudo apt-key adv &#8211;keyserver keyserver.ubuntu.com &#8211;recv [KEY_VALUE]</p></blockquote>
<p>[KEY_VALUE] 에는 에러메시지에 기록된 KEY 값을 적어주면 될것이다.</p>
<p>그리고선, apt-get update 후,<br />
apt-get install mongodb-stable 명령으로 설치가 가능할 것이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/219/feed</wfw:commentRss>
		</item>
		<item>
		<title>xmodmap 을 이용해서 CapsLock 키를 Ctrl 키로 사용하기.</title>
		<link>http://bzpalm.net/wordpress/archives/216</link>
		<comments>http://bzpalm.net/wordpress/archives/216#comments</comments>
		<pubDate>Tue, 06 Jul 2010 05:16:50 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[commands]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[capslock]]></category>

		<category><![CDATA[ctrl]]></category>

		<category><![CDATA[xmodmap]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=216</guid>
		<description><![CDATA[2년 전까지는 HHK 를 잘 사용하다가, 랩탑을 주로 사용하게 되면서 HHK 를 잘 안쓰게 되었다.
그러다 보니, 손꼬락이 컨트롤 키에 적응을 해서 이젠 캡스락 키에 놓는것이 좀 어색하게 되었다.
아무튼, 안쓰는 캡스락을 없애고, 왼쪽 새끼 손꼬락에 건강을(?) 되찾아 주자.
HOME 디렉토리에 .xmodmap 파일을 만들고,
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
라고 적어주면, X 가 시작될때 xmodmap [...]]]></description>
			<content:encoded><![CDATA[<p>2년 전까지는 HHK 를 잘 사용하다가, 랩탑을 주로 사용하게 되면서 HHK 를 잘 안쓰게 되었다.<br />
그러다 보니, 손꼬락이 컨트롤 키에 적응을 해서 이젠 캡스락 키에 놓는것이 좀 어색하게 되었다.</p>
<p>아무튼, 안쓰는 캡스락을 없애고, 왼쪽 새끼 손꼬락에 건강을(?) 되찾아 주자.</p>
<p>HOME 디렉토리에 .xmodmap 파일을 만들고,</p>
<blockquote><p>remove Lock = Caps_Lock<br />
keysym Caps_Lock = Control_L<br />
add Control = Control_L</p></blockquote>
<p>라고 적어주면, X 가 시작될때 xmodmap 을 읽어들이고 스크립트를 실행하게 된다.</p>
<p>스크립트가 하는 일은 Caps_Lock 을 제거했다가,<br />
Caps_Lock 에 Control_L 을 연결하고,<br />
다시 Control 을 추가하는 것이다.</p>
<p>참고: <a href="http://www.manicai.net/comp/swap-caps-ctrl.html">Swapping Capslock and Control Keys</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/216/feed</wfw:commentRss>
		</item>
		<item>
		<title>Flash plugin 과 curl 의 관계.</title>
		<link>http://bzpalm.net/wordpress/archives/213</link>
		<comments>http://bzpalm.net/wordpress/archives/213#comments</comments>
		<pubDate>Thu, 03 Jun 2010 04:37:42 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[google-chrome]]></category>

		<category><![CDATA[chrome]]></category>

		<category><![CDATA[curl]]></category>

		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=213</guid>
		<description><![CDATA[그동안 Debian Lenny(Stable) 을 쓰다가..
아주 가끔(?) Sid(Unstable) 소스트리에서 패키지를 설치를 했더니.. 의존성이 꼬이기 시작했다.
그래서 6월 2일(지방선거 - 임시공휴일)에 투철한 삽질정신으로 Sid 로 패키지 업그레이드를 시도했다.
오호~ 모두 순조롭게 잘 진행되었고..
xorg 설정도 어느정도 맞추었고,
듀얼모니터 설정도 잘 되어서 작업을 시작해 보려고 했더니..
노트북 스크린에서 LCD 모니터로 마우스 커서가 한번 넘어가면, 절대 돌아오지 않는 망측한 버그가 있는 것이었다.
몇시간 삽질을 했지만, [...]]]></description>
			<content:encoded><![CDATA[<p>그동안 Debian Lenny(Stable) 을 쓰다가..<br />
아주 가끔(?) Sid(Unstable) 소스트리에서 패키지를 설치를 했더니.. 의존성이 꼬이기 시작했다.<br />
그래서 6월 2일(지방선거 - 임시공휴일)에 투철한 삽질정신으로 Sid 로 패키지 업그레이드를 시도했다.</p>
<p>오호~ 모두 순조롭게 잘 진행되었고..<br />
xorg 설정도 어느정도 맞추었고,<br />
듀얼모니터 설정도 잘 되어서 작업을 시작해 보려고 했더니..<br />
노트북 스크린에서 LCD 모니터로 마우스 커서가 한번 넘어가면, 절대 돌아오지 않는 망측한 버그가 있는 것이었다.<br />
몇시간 삽질을 했지만, 해결하기엔 너무 문제가 커졌고, Sid 의 명성을 경험해본이상.. Stable 로 돌아가야 겠다고 마음먹고 downgrade 를 시도했으나, libc6 관련 라이브러리와 의존성이 모두 파괴!!</p>
<p>하품을 머금고..<br />
24GB 의 안쓰고 남겨두었던 파티션을 하나 할당해서 Stable 버전으로 설치.<br />
기존의 망가진 파티션은 그냥.. home 파티션으로 할당해서 기존 개발환경은 다 복구했다.</p>
<p>아무튼, 삽질의 과정중에<br />
linux 용 google chrome 안정버전을 설치할 수 있다는 정보를 얻고, 기존 베타버전을 제거한뒤, 설치를 했다.</p>
<p>그리고, flash plugin 도 10.1 rc51 로 받아서 chrome 의 plugins 디렉토리에 넣었는데..<br />
flash 가 들어간 사이트에선 전혀 플래시가 보이지 않는 문제가 발생했다.</p>
<p>그래서.. 콘솔에서 명령으로 실행을 해봤더니..</p>
<blockquote><p>Adobe Flash Player error: could not load cURL library<br />
Adobe Flash Player error: could not load cURL library<br />
Adobe Flash Player error: could not load cURL library</p></blockquote>
<p>라는 오류를 열심히 뱉고 있었던 것이었다.</p>
<p>그렇다!!</p>
<p>curl libray 가 필요했던 것이다.</p>
<blockquote><p>sudo apt-get install curl</p></blockquote>
<p>로 상황종료!!</p>
<p>플래시에서 curl library 를 사용하는것을 처음 알게 되었다.</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/213/feed</wfw:commentRss>
		</item>
		<item>
		<title>Linux cron 관련 팁(?)</title>
		<link>http://bzpalm.net/wordpress/archives/211</link>
		<comments>http://bzpalm.net/wordpress/archives/211#comments</comments>
		<pubDate>Tue, 18 May 2010 08:02:26 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[bash]]></category>

		<category><![CDATA[commands]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[system]]></category>

		<category><![CDATA[cron]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=211</guid>
		<description><![CDATA[1시간 마다 페이스북 API를 호출해서 업데이트 여부를 체크한뒤,
DB에 쌓으려고 cron 으로 작업을 등록시켜놓았다.
그런데.. 페이스북은 업데이트가 되었지만, DB는 업데이트가 안되는 것이다.!!
ruby 버전이 의심이 되어서 logger 를 이용해서 version 정보를 로그로 남게 해보니,
역시나 1.9.3-dev 로 나와야 하는데, 1.8.7로 찍히는 것이다.
환경설정 문제인데.. 검색을 해보니 환경설정을 다시 읽어들이게 하라는 것이다.
보안관련 이슈라는데.. 좀 더 찾아봐야겠다.
아무튼, 호출되는 스크립트 상단에서 source /home/eunchul/.bashrc [...]]]></description>
			<content:encoded><![CDATA[<p>1시간 마다 페이스북 API를 호출해서 업데이트 여부를 체크한뒤,<br />
DB에 쌓으려고 cron 으로 작업을 등록시켜놓았다.<br />
그런데.. 페이스북은 업데이트가 되었지만, DB는 업데이트가 안되는 것이다.!!</p>
<p>ruby 버전이 의심이 되어서 logger 를 이용해서 version 정보를 로그로 남게 해보니,<br />
역시나 1.9.3-dev 로 나와야 하는데, 1.8.7로 찍히는 것이다.<br />
환경설정 문제인데.. 검색을 해보니 환경설정을 다시 읽어들이게 하라는 것이다.<br />
보안관련 이슈라는데.. 좀 더 찾아봐야겠다.</p>
<p>아무튼, 호출되는 스크립트 상단에서 source /home/eunchul/.bashrc 를 추가해줌으로 해결!</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/211/feed</wfw:commentRss>
		</item>
		<item>
		<title>Passenger 설정으로 Rails 응답속도 개선하기.</title>
		<link>http://bzpalm.net/wordpress/archives/209</link>
		<comments>http://bzpalm.net/wordpress/archives/209#comments</comments>
		<pubDate>Tue, 18 May 2010 02:40:42 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[system]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[passenger]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=209</guid>
		<description><![CDATA[새벽에 잠이 안와서 미루고 미뤄뒀던, passenger 세부 설정을 살펴보았다.
문제는, 한동안 접속이 없다가 페이지 접속을 시도하면 처음 응답까지 대략 10여초는 족히 걸리는 것이다.
한번 접속한뒤에는 메모리에 올라와서 응답속도가 정상으로 돌아오지만..
환경: Debian Lenny amd64, Memory 256MB, ruby-1.9.3-dev, rails3-beta3, passenger-2.2.11, apache2.2
우선 Configuration Phusion Passenger 를 읽어보고, 서버 환경에 맞게끔 수치를 조절하면서 적용을 시켜보면 될것이다.
Global server configuration
&#8230;
PassengerMaxPoolSize 4
PassengerPoolIdleTime 0
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime [...]]]></description>
			<content:encoded><![CDATA[<p>새벽에 잠이 안와서 미루고 미뤄뒀던, passenger 세부 설정을 살펴보았다.</p>
<p>문제는, 한동안 접속이 없다가 페이지 접속을 시도하면 처음 응답까지 대략 10여초는 족히 걸리는 것이다.<br />
한번 접속한뒤에는 메모리에 올라와서 응답속도가 정상으로 돌아오지만..</p>
<p>환경: Debian Lenny amd64, Memory 256MB, ruby-1.9.3-dev, rails3-beta3, passenger-2.2.11, apache2.2</p>
<p>우선 <a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html#_configuring_phusion_passenger">Configuration Phusion Passenger</a> 를 읽어보고, 서버 환경에 맞게끔 수치를 조절하면서 적용을 시켜보면 될것이다.</p>
<p>Global server configuration</p>
<blockquote><p>&#8230;<br />
PassengerMaxPoolSize 4<br />
PassengerPoolIdleTime 0<br />
RailsFrameworkSpawnerIdleTime 0<br />
RailsAppSpawnerIdleTime 0<br />
&#8230;</p></blockquote>
<p><strong>PassengerMaxPoolSize</strong><br />
Rails 나 Rack 애플리케이션 인스턴스이 동시에 활성화 되는 최대 갯수.<br />
숫자가 클수록 더 많은 메모리를 사용하게 되지만, HTTP client 를 동시에 처리하는 능력은 향상된다.<br />
문서에서는 2G 메모리의 경우 30 으로,<br />
VPS환경에 256MB 이며, MySQL 같은 서비스를 같이 사용하면 (나의 경우..;;;) 2 정도로 추천하고 있다.</p>
<p><strong>PassengerPoolIdleTime</strong><br />
애플리케이션 인스턴스가 유휴상태로 되는데 걸리는 시간(초 단위)을 설정한다.<br />
즉, 일정시간(설정된 초)후에도 어떠한 트래픽이 없다면 메모리 보호(확보)를 위해 shutdown 된다.<br />
문서상에선 공유되지 않는 호스트에 몇몇 애플리케이션만 동작하고, 언제나 사용가능하려면 0 을 추천한다.</p>
<p><strong>RailsFrameworkSpawnerIdleTime</strong><br />
FrameworkSpawner 서버는 idle timeout 를 가지고 있다.<br />
일정 시간(초) 어떤 요청을 받지 않으면 자동으로 shutdown 이 될것이다.<br />
유휴상태가 되게 하지 않으려면, 0 값으로 설정하라.</p>
<p><strong>RailsAppSpawnerIdleTime</strong><br />
RailsFrameworkSpawnerIdleTime 과 비슷하다.<br />
차이점은 FrameworkSpawner 서버가 아닌 ApplicationSpawner 서버가 해당된다는 점.</p>
<p>문서를 대충 보고, 필요하다 생각되는 설정만 추가했으나,<br />
시간을 두고 서버를 운영하면서 최적의 값을 찾아가야 겠다.</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/209/feed</wfw:commentRss>
		</item>
		<item>
		<title>NateConnect 시스템을 이용해서 싸이월드에 게시물 스크랩하기.</title>
		<link>http://bzpalm.net/wordpress/archives/206</link>
		<comments>http://bzpalm.net/wordpress/archives/206#comments</comments>
		<pubDate>Fri, 14 May 2010 16:10:17 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[cyword]]></category>

		<category><![CDATA[nate-connect]]></category>

		<category><![CDATA[opensocial]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=206</guid>
		<description><![CDATA[페이스북에 저장된 데이터를 싸이월드 클럽에 스크랩을 하려한다.
API 사용할 수 있는 인증키를 발급받는 것 외에는 큰 어려움은 없었다.
싸이트가 완성도가 부족하다고 처음에는 퇴짜를 맞았었다. 그래서 부랴부랴 꾸미고 신청을 하니 하루가 못되서 발급받았다.
openAuth 처럼 클라이언트에서도 뭔가 처리되는 부분이 필요할 줄 알았으나, 팝업창 하나 띄우는 것으로 끝!!
게시판 스크랩 API 개발 가이드를 참고하면, 큰 어려움은 없다.
단순하게 javascript 로 팝업창 하나 [...]]]></description>
			<content:encoded><![CDATA[<p>페이스북에 저장된 데이터를 싸이월드 클럽에 스크랩을 하려한다.<br />
API 사용할 수 있는 인증키를 발급받는 것 외에는 큰 어려움은 없었다.<br />
싸이트가 완성도가 부족하다고 처음에는 퇴짜를 맞았었다. 그래서 부랴부랴 꾸미고 신청을 하니 하루가 못되서 발급받았다.</p>
<p>openAuth 처럼 클라이언트에서도 뭔가 처리되는 부분이 필요할 줄 알았으나, 팝업창 하나 띄우는 것으로 끝!!</p>
<p><a href="http://devsquare.nate.com/nateConnect/PostScrapAPIGuide">게시판 스크랩 API 개발 가이드</a>를 참고하면, 큰 어려움은 없다.<br />
단순하게 javascript 로 팝업창 하나 띄우는 수고와 XML 유효성 검사만 통과되면, 대부분 잘 동작한다.</p>
<p>주의할 것은 각 요소들의 순서까지 체크를 한다는 것이다.<br />
즉, OriginPhotoLink01 의 하위요소들중에서 Url, Height, Width 순으로 구성하지 않는경우 유효성에 위배가 된다는것이다.</p>
<p>몇건 테스트를 해본결과, 큰 문제 없이 잘 스크랩이 되고,<br />
참 간단(?)하게 스크랩을 할 수 있게 되어있다.</p>
<p>그나저나, 싸이월드로 스크랩되고 나면, 싸구려틱한 느낌이 드는 이유는 무엇일까&#8230;;;;</p>
<p>결과물은 <a href="http://joseph.regex.pe.kr">http://joseph.regex.pe.kr</a>에서 볼 수 있다.</p>
<p>참고: <a href="http://devsquare.nate.com/nateConnect/PostScrapAPIGuide">게시판 스크랩 API 개발 가이드</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/206/feed</wfw:commentRss>
		</item>
		<item>
		<title>RVM 설치부터 Passenger 설정까지..</title>
		<link>http://bzpalm.net/wordpress/archives/203</link>
		<comments>http://bzpalm.net/wordpress/archives/203#comments</comments>
		<pubDate>Tue, 11 May 2010 04:55:13 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[apache2]]></category>

		<category><![CDATA[passenger]]></category>

		<category><![CDATA[rails3]]></category>

		<category><![CDATA[ruby-head]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=203</guid>
		<description><![CDATA[ruby 1.9.1 과 rails3-beta, 그리고 passenger 설정까지..
꽤 많은 삽질을 거듭하면서, 어느정도 설치/설정에 대한 감이 잡혔다.
참고: ruby-1.9.1 과 rails3-beta3 의 맞지않는 조합
사전준비
개발환경 준비
apt-get install build-essential bison
아파치 설치
apt-get install apache2
아파치 헤더 설치(thread, fork 방식에 따라서 선택해서 설치)
Thread
apt-get install apache2-threaded-dev
Prefork
apt-get install apache2-prefork-dev
RVM 설치
참고: Installing RVM
다음 명령으로 rvm 을 설치한다.
bash < ]]></description>
			<content:encoded><![CDATA[<p>ruby 1.9.1 과 rails3-beta, 그리고 passenger 설정까지..<br />
꽤 많은 삽질을 거듭하면서, 어느정도 설치/설정에 대한 감이 잡혔다.</p>
<p>참고: ruby-1.9.1 과 rails3-beta3 의 <a href="https://rails.lighthouseapp.com/projects/8994/tickets/4414-rails3-segmentation-fault-remove_methodrb-when-you-have-a-library-module">맞지않는 조합</a></p>
<p><strong>사전준비</strong></p>
<p>개발환경 준비</p>
<blockquote><p>apt-get install build-essential bison</p></blockquote>
<p>아파치 설치</p>
<blockquote><p>apt-get install apache2</p></blockquote>
<p>아파치 헤더 설치(thread, fork 방식에 따라서 선택해서 설치)</p>
<p>Thread</p>
<blockquote><p>apt-get install apache2-threaded-dev</p></blockquote>
<p>Prefork</p>
<blockquote><p>apt-get install apache2-prefork-dev</p></blockquote>
<p><strong>RVM 설치</strong><br />
참고: <a href="http://rvm.beginrescueend.com/rvm/install/">Installing RVM</a></p>
<p>다음 명령으로 rvm 을 설치한다.</p>
<blockquote><p>bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )</p></blockquote>
<p>설치후, ~/.bashrc 파일 하단에 아래 스크립트를 추가한다.</p>
<blockquote><p># ~/.bashrc<br />
if [[ -s ${HOME}/.rvm/scripts/rvm ]]; then<br />
    source ${HOME}/.rvm/scripts/rvm<br />
fi</p></blockquote>
<p>추가한다음에, source ~/.bashrc 로 환경설정을 다시 읽어들인다.</p>
<p>rvm list 를 해보면, System Ruby 만 보일것이다.</p>
<p><strong>Ruby 설치</strong><br />
참고: <a href="http://rvm.beginrescueend.com/rubies/installing/">Installing Rubies</a><br />
설치하려는 버전은 rvm repository 에서 제공(?)하는 ruby-head 버전이다.<br />
(현시점에서는 1.9.3-dev 로 설치가 된다.)</p>
<p>readline 관련 오류가 종종 발생하기 때문에, readline 을 먼저 설치한다.</p>
<blockquote><p>rvm package install readline</p></blockquote>
<blockquote><p>rvm install ruby-head -C &#8211;enable-shared,&#8211;with-readline-dir=$HOME/.rvm/usr</p></blockquote>
<p>빌드 과정에서 에러가 없이 설치가 완료가 되면 rvm list 명령으로 설치된 ruby 버전을 확인할 수 있다.<br />
아마 ruby-head 가 추가되어있을 것이다.</p>
<p>기본으로 ruby-head 를 지정하도록 한다.</p>
<blockquote><p>rvm ruby-head &#8211;default</p></blockquote>
<p>이제는 셸에서 ruby &#8211;version 으로 버전을 확인하면, ruby-1.9.3-dev 어쩌구&#8230; 라고 나올것이다.</p>
<p><strong>Rails3-Beta3 설치</strong><br />
ruby 설치만 잘 되면, rails3 설치는 큰 문제가 없을것이다.</p>
<blockquote><p>gem install rails &#8211;pre</p></blockquote>
<p>설치가 완료된후, rails &#8211;version 으로 버전을 확인해 보고,<br />
간단한 application 을 만들어봐서 잘 동작하는지 테스트를 해본다.</p>
<p><strong>Passenger 설치</strong><br />
참고: <a href="http://rvm.beginrescueend.com/integration/passenger/">Using RVM rubies with Passenger</a></p>
<blockquote><p>rvm ruby-head &#8211;passenger<br />
rvm ruby-head<br />
gem install passenger<br />
rvmsudo passenger-install-apache2-module
</p></blockquote>
<p>순조롭게(?) 잘 진행될 것이다.<br />
passenger 모듈 컴파일이 끝나고 나오는 메시지를 따라서, 아파치 모듈 로드할때 passenger 를 적재시킬수 있도록 해준다.</p>
<p>/etc/apache2/mod-available 디렉토리로 가서 passenger.load 파일을 만들고,</p>
<blockquote><p>LoadModule passenger_module /home/eunchul/.rvm/gems/ruby-head/gems/passenger-2.2.11/ext/apache2/mod_passenger.so<br />
PassengerRoot /home/eunchul/.rvm/gems/ruby-head/gems/passenger-2.2.11<br />
#PassengerRuby /home/eunchul/.rvm/rubies/ruby-head/bin/ruby<br />
PassengerRuby /home/eunchul/.rvm/bin/passenger_ruby
</p></blockquote>
<p>* PassengerRuby 경로를 ~/.rvm/bin/passenger_ruby 로 바꿔주도록 한다. ruby 경로를 그대로 적어줄경우, rails3 와 연동될때 no such file to load &#8212; rack 이라는 오류를 만나게 될 것이다.<br />
참고: <a href="http://www.ruby-forum.com/topic/207346">http://www.ruby-forum.com/topic/207346</a></p>
<p>rails3-beta3, ruby, apache2&#8230;<br />
깨지기 쉬운(?) 관계에 있는듯..</p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/203/feed</wfw:commentRss>
		</item>
		<item>
		<title>절세 TIP</title>
		<link>http://bzpalm.net/wordpress/archives/200</link>
		<comments>http://bzpalm.net/wordpress/archives/200#comments</comments>
		<pubDate>Thu, 08 Apr 2010 03:50:00 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[창업]]></category>

		<category><![CDATA[세금]]></category>

		<category><![CDATA[절세]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=200</guid>
		<description><![CDATA[세무강의때 들은 몇가지 팁들..

지출증빙(영수증)을 확실히 챙겨라.
사업과 관련된 부분의 현금 영수증을 확실히 챙겨라.
거래는 금융거래를 이용하라.
세금 납부는 못하더라도 신고는 반드시 하라.
접대비 한도초과를 확인하라. - 접대비 한도초과는 수익이 되어서 매출에 포함된다.
가짜 세금계산서는 받지 말라.
조세 지원 제도를 활용하라.
사업자 등록 명의를 대용하지 말라.
미리 전문가와 상의하라.
억울한 세금에 대해서는 조세 불복제도가 있다.

]]></description>
			<content:encoded><![CDATA[<p>세무강의때 들은 몇가지 팁들..</p>
<ol>
<li>지출증빙(영수증)을 확실히 챙겨라.</li>
<li>사업과 관련된 부분의 현금 영수증을 확실히 챙겨라.</li>
<li>거래는 금융거래를 이용하라.</li>
<li>세금 납부는 못하더라도 신고는 반드시 하라.</li>
<li>접대비 한도초과를 확인하라. - 접대비 한도초과는 수익이 되어서 매출에 포함된다.</li>
<li>가짜 세금계산서는 받지 말라.</li>
<li>조세 지원 제도를 활용하라.</li>
<li>사업자 등록 명의를 대용하지 말라.</li>
<li>미리 전문가와 상의하라.</li>
<li>억울한 세금에 대해서는 조세 불복제도가 있다.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/200/feed</wfw:commentRss>
		</item>
		<item>
		<title>Linux 에서 adb devices 결과가 no permissions 인경우 해결방법.</title>
		<link>http://bzpalm.net/wordpress/archives/192</link>
		<comments>http://bzpalm.net/wordpress/archives/192#comments</comments>
		<pubDate>Fri, 05 Mar 2010 13:54:40 +0000</pubDate>
		<dc:creator>eunchul</dc:creator>
		
		<category><![CDATA[android]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[adb]]></category>

		<category><![CDATA[motoroi]]></category>

		<category><![CDATA[permissions]]></category>

		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://bzpalm.net/wordpress/?p=192</guid>
		<description><![CDATA[Debian Lenny (5.0.3)에서 adb devices 를 했더니&#8230;
$ adb devices
List of devices attached
????????????    no permissions

검색을 해보니.. /etc/udev/rules.d/99-android.rules 에 디바이스 정보를 넣으라고 한다.
그러나.. 여전히 no permissions 이다.
좀더 찾아보니&#8230;
adb kill-server
adb start-server 를 root 권한으로 실행해보란다.
$ adb kill-server
$ adb start-server
* daemon not running. starting it now *
* daemon started successfully *
$ adb devices
List of devices attached
0403766B11005015 [...]]]></description>
			<content:encoded><![CDATA[<p>Debian Lenny (5.0.3)에서 adb devices 를 했더니&#8230;</p>
<blockquote><p>$ adb devices<br />
List of devices attached<br />
????????????    no permissions
</p></blockquote>
<p>검색을 해보니.. /etc/udev/rules.d/99-android.rules 에 디바이스 정보를 넣으라고 한다.<br />
그러나.. 여전히 no permissions 이다.</p>
<p>좀더 찾아보니&#8230;</p>
<p>adb kill-server<br />
adb start-server 를 root 권한으로 실행해보란다.</p>
<blockquote><p>$ adb kill-server<br />
$ adb start-server<br />
* daemon not running. starting it now *<br />
* daemon started successfully *<br />
$ adb devices<br />
List of devices attached<br />
0403766B11005015        device
</p></blockquote>
<p>잘되네.. ㅡ.ㅡ</p>
<p>eclipse 에서도 application 실행도 잘 된다. <img src='http://bzpalm.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>매번 저걸 넣기는 귀찮으니.. udev 에 룰을 등록하자.</p>
<p>먼저 장치가 연결될때 실행할 스크립트를 작성하자.</p>
<blockquote><p>#!/bin/sh</p>
<p>TOOL_DIR=/home/eunchul/apps/android-sdk-linux_86/tools<br />
${TOOL_DIR}/adb kill-server<br />
${TOOL_DIR}/adb start-server
</p></blockquote>
<p>이 파일을 init_motoroi.sh 라 저장하고 적당한 디렉토리에 위치 시킨다. (나는 /home/eunchul/sbin/init_motoroi.sh)<br />
이제는 udev 의 룰을 작성하자.</p>
<p>이 작업은 root 로 해야 한다.</p>
<blockquote><p># cd /etc/udev/rules.d<br />
# touch 99-android.rules
</p></blockquote>
<p>99-android.rules 의 내용은..</p>
<blockquote><p># android<br />
#</p>
<p># motoroi<br />
SUBSYSTEM==&#8221;usb&#8221;,ATTR{idVendor}==&#8221;22b8&#8243;,ATTR{idProduct}==&#8221;41db&#8221;,SYMLINK+=&#8221;motoroi_adb&#8221;,MODE=&#8221;0666&#8243;,RUN+=&#8221;/home/eunchul/sbin/init_motoroi.sh&#8221;
</p></blockquote>
<p>ATTR{idVendor} 과 ATTR{idProduct} 의 값은 lsusb 를 했을때 장치의 아이디 값이다.</p>
<blockquote><p>#  lsusb<br />
Bus 007 Device 009: ID 22b8:41db Motorola PCS Motorola Droid (USB Debug)<br />
Bus 007 Device 003: ID 05a9:2640 OmniVision Technologies, Inc. OV2640 Webcam<br />
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 004 Device 002: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse<br />
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />
Bus 001 Device 004: ID 0a5c:4503 Broadcom Corp.<br />
Bus 001 Device 003: ID 0a5c:4502 Broadcom Corp. Keyboard (Boot Interface Subclass)<br />
Bus 001 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)<br />
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
</p></blockquote>
<p>이제는 udev 데몬을 재시작 해주면 된다.</p>
<blockquote><p># /etc/init.d/udev restart
</p></blockquote>
<p>이렇게 되면, usb 에 motoroi 가 연결이 될때마다 /home/eunchul/sbin/init_motoroi.sh 를 실행해준다.</p>
<p>참고: <a href="http://developer.android.com/guide/developing/device.html">Developing on a Device</a>, <a href="http://www.google.co.uk/support/forum/p/android/thread?tid=08945730bbd7b22b&#038;hl=en">Nexus One Help Fourm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bzpalm.net/wordpress/archives/192/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
