<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hytgbn</title>
	<atom:link href="http://hytgbn.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://hytgbn.net</link>
	<description>about...</description>
	<lastBuildDate>Thu, 10 Jan 2013 08:38:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>Semaphore vs. Mutex</title>
		<link>http://hytgbn.net/2012/12/semaphore-vs-mutex/</link>
		<comments>http://hytgbn.net/2012/12/semaphore-vs-mutex/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 07:28:14 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Mutex]]></category>
		<category><![CDATA[Semaphore]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=378</guid>
		<description><![CDATA[Good posts about Semaphore vs. Mutex MUTEX VS. SEMAPHORES – PART 1: SEMAPHORES MUTEX VS. SEMAPHORES – PART 2: THE MUTEX MUTEX VS. SEMAPHORES – PART 3 (FINAL PART): MUTUAL EXCLUSION PROBLEMS MUTEX IS NOT THE SAME AS BINARY SEMAPHORES. Important difference between Mutex and Semaphore. - Mutex lock is released by the thread which [...]]]></description>
				<content:encoded><![CDATA[<p>Good posts about Semaphore vs. Mutex</p>
<ul>
<li><a href="http://www.feabhas.com/blog/2009/09/mutex-vs-semaphores-%E2%80%93-part-1-semaphores/" target="_blank">MUTEX VS. SEMAPHORES – PART 1: SEMAPHORES</a></li>
<li><a href="http://www.feabhas.com/blog/2009/09/mutex-vs-semaphores-%E2%80%93-part-2-the-mutex/" target="_blank">MUTEX VS. SEMAPHORES – PART 2: THE MUTEX</a></li>
<li><a href="http://www.feabhas.com/blog/2009/10/mutex-vs-semaphores-%E2%80%93-part-3-final-part-mutual-exclusion-problems/" target="_blank">MUTEX VS. SEMAPHORES – PART 3 (FINAL PART): MUTUAL EXCLUSION PROBLEMS</a></li>
</ul>
<p>MUTEX IS NOT THE SAME AS BINARY SEMAPHORES.</p>
<p>Important difference between Mutex and Semaphore.</p>
<p>- Mutex lock is released by the thread which have acquired the lock.</p>
<p>- Semaphore can be released by other threads.</p>
<p>Semaphore is suitable for producer &amp; consumer pattern.</p>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2012/12/semaphore-vs-mutex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install python and openCV to windows7</title>
		<link>http://hytgbn.net/2012/11/install-python-and-opencv-to-windows7/</link>
		<comments>http://hytgbn.net/2012/11/install-python-and-opencv-to-windows7/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 17:54:43 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=375</guid>
		<description><![CDATA[reference : http://imky.egloos.com/2969966 http://www.davidhampgonsalves.com/2011/05/OpenCV-Python-and-Windows-7-setup-in-5-minutes-or-less http://mitchtech.net/opencv-python/ Prerequisites Python 2.7 - http://www.python.org/ NumPy(Numerical Python) - http://sourceforge.net/projects/numpy/files/ SciPy - http://sourceforge.net/projects/scipy/files/scipy/ Download openCV with .exe from http://opencv.org Install it to c:\openCV copy c:\openCV\build\python\2.7\cv2.pyd c:\Python27\Lib\site-packages\ test by running C:\openCV\samples\python\drawing.py]]></description>
				<content:encoded><![CDATA[<p>reference :</p>
<p><a href="http://imky.egloos.com/2969966" target="_blank">http://imky.egloos.com/2969966</a></p>
<p><a href="http://www.davidhampgonsalves.com/2011/05/OpenCV-Python-and-Windows-7-setup-in-5-minutes-or-less">http://www.davidhampgonsalves.com/2011/05/OpenCV-Python-and-Windows-7-setup-in-5-minutes-or-less</a></p>
<p><a href="http://www.davidhampgonsalves.com/2011/05/OpenCV-Python-and-Windows-7-setup-in-5-minutes-or-less"></a><a href="http://mitchtech.net/opencv-python/">http://mitchtech.net/opencv-python/</a></p>
<p>Prerequisites</p>
<p>Python 2.7 - <a href="http://www.python.org/">http://www.python.org/</a></p>
<p><a href="http://www.python.org/"></a>NumPy(Numerical Python) - <a href="http://sourceforge.net/projects/numpy/files/" target="_blank">http://sourceforge.net/projects/numpy/files/</a></p>
<p><a href="http://sourceforge.net/projects/numpy/files/" target="_blank"></a>SciPy - <a href="http://sourceforge.net/projects/scipy/files/scipy/">http://sourceforge.net/projects/scipy/files/scipy/</a></p>
<p>Download openCV with .exe from <a href="http://opencv.org" target="_blank">http://opencv.org</a></p>
<p>Install it to c:\openCV</p>
<div id="_mcePaste">copy c:\openCV\build\python\2.7\cv2.pyd c:\Python27\Lib\site-packages\</div>
<div>test by running C:\openCV\samples\python\drawing.py</div>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2012/11/install-python-and-opencv-to-windows7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JD-GUI bug, it dropped explicit casts</title>
		<link>http://hytgbn.net/2012/03/jd-gui-bug-it-dropped-explicit-casts/</link>
		<comments>http://hytgbn.net/2012/03/jd-gui-bug-it-dropped-explicit-casts/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 13:52:02 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[jad]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jd-gui]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=370</guid>
		<description><![CDATA[최근에, framework 을 수정할 일이 있었는데, 큰 문제를 일으킬뻔 한 jd-gui 버그가 있어 글로 정리.. 1. 시스템이 여러개라 메인시스템을 제외하고 framework library 의 소스가 따로 관리되지 않고 있었음. 2. framework 의 개선이 있어서 작업을 하고 메인시스템 외의 시스템은 decompile 해서 해당 함수 수정하고 다시 compile 해서 jar로 생성 후 반영 위와 같은 작업을 하고 있었는데 [...]]]></description>
				<content:encoded><![CDATA[<p>최근에, framework 을 수정할 일이 있었는데, 큰 문제를 일으킬뻔 한 jd-gui 버그가 있어 글로 정리..</p>
<p>1. 시스템이 여러개라 메인시스템을 제외하고 framework library 의 소스가 따로 관리되지 않고 있었음.</p>
<p>2. framework 의 개선이 있어서 작업을 하고 메인시스템 외의 시스템은</p>
<p>decompile 해서 해당 함수 수정하고 다시 compile 해서 jar로 생성 후 반영</p>
<p>위와 같은 작업을 하고 있었는데 decompiler 로 jd-gui를 사용했다. jar 전체를 java 소스로 뽑아주는 기능이 있었기 때문이다.</p>
<p>전체 소스를 비교하면서 작업을 꼼꼼히 하기 위해서 사용했었는데..</p>
<p>문제는 이것.</p>
<h3><strong>원 소스 :</strong></h3>
<pre class="brush: actionscript3; gutter: true">public class TestClass {

	public int ceil(int a, int b) {
		return (int) Math.ceil((double)a/(double)b);
	}
}</pre>
<h3><strong>jd-gui가 de-compile 한 java (BUG!)</strong></h3>
<pre class="brush: java; gutter: true"></pre>
<pre class="brush: actionscript3; gutter: true">public class TestClass
{
  public int ceil(int a, int b)
  {
    return (int)Math.ceil(a/b);
  }
}</pre>
<h3><strong>jad.exe가 de-compile 한 java</strong></h3>
<pre class="brush: java; gutter: true"></pre>
<pre class="brush: actionscript3; gutter: true">public class TestClass
{

    public TestClass()
    {
    }

    public int ceil(int a, int b)
    {
        return (int)Math.ceil((double)a / (double)b);
    }
}</pre>
<p>jd-gui가 명시적 casting을 날려먹음..</p>
<p>결과.. 2, 100 이 파라미터로 넘어가면..</p>
<p>원함수는 1을 리턴했으나, jd-gui를 믿었다면 0을 리턴하게 되므로 로직이 변경됨..</p>
<p>주의하세요 !</p>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2012/03/jd-gui-bug-it-dropped-explicit-casts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tip of uploading images to tumblr using OAuth on iOS</title>
		<link>http://hytgbn.net/2012/02/tip-of-uploading-images-to-tumblr-using-oauth-on-ios/</link>
		<comments>http://hytgbn.net/2012/02/tip-of-uploading-images-to-tumblr-using-oauth-on-ios/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 02:28:09 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=350</guid>
		<description><![CDATA[To make my app, merge&#38;share, I had to use OAuth to upload multiple services including tumblr. There&#8217;s some problem, and I still don&#8217;t know which one is problem between OAuthConsumer library and tumblr. OAuthConsumer Library makes authorization header using all parameters and if I include NSData, it may not work correctly. - OR - Tumblr [...]]]></description>
				<content:encoded><![CDATA[<p>To make my app, merge&amp;share, I had to use OAuth to upload multiple services including tumblr.</p>
<p>There&#8217;s some problem, and I still don&#8217;t know which one is problem between OAuthConsumer library and tumblr.</p>
<p>OAuthConsumer Library makes authorization header using all parameters and if I include NSData, it may not work correctly.</p>
<p>- OR -</p>
<p>Tumblr doesn&#8217;t recognize the authorization header that OAuthConsumer made correct.</p>
<p>Therefore, I makes different approach to upload tumblr.</p>
<p>Step 1. Create OAuthHeader with only string parameters</p>
<p>Step 2. Create another request by using ASIFormDataRequest again and set header directly</p>
<p>here&#8217;s code</p>
<pre class="brush: cpp; gutter: true">- (void)exportImage:(NSData *)image message:(NSString *)message withAccount:(Account *)account {

    OAToken *token = [[[OAToken alloc] initWithKey:account.token secret:account.key] autorelease];
    OAConsumer *consumer = [[[OAConsumer alloc] initWithKey:TUMBLR_API_KEY secret:TUMBLR_API_SECRET] autorelease];

    NSString *baseHost = [[account.album stringByReplacingOccurrencesOfString:@&quot;http://&quot; withString:@&quot;&quot;]
                          stringByReplacingOccurrencesOfString:@&quot;https://&quot; withString:@&quot;&quot;];

    NSString *requestUrl =

    [NSString stringWithFormat:@&quot;http://api.tumblr.com/v2/blog/%@post&quot;, baseHost];

    OAMutableURLRequest *request = [[[OAMutableURLRequest alloc] initWithURL:[NSURL URLWithString:requestUrl]
                                                                    consumer:consumer
                                                                       token:token
                                                                       realm:@&quot;http://api.tumblr.com&quot;
                                                           signatureProvider:nil] autorelease];

    [request setHTTPMethod:@&quot;POST&quot;];

    [request setParameters:[NSArray arrayWithObjects:
                            [OARequestParameter requestParameter:@&quot;type&quot; value:@&quot;photo&quot;],
                            [OARequestParameter requestParameter:@&quot;caption&quot; value:message],
                            nil]];
    [request prepare];
    NSString *oAuthHeader = [request valueForHTTPHeaderField:@&quot;Authorization&quot;];
    DLog(@&quot;OAuthHeader : %@&quot;, oAuthHeader);

    ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:requestUrl]];

    [req setRequestMethod:@&quot;POST&quot;];
    [req addRequestHeader:@&quot;Authorization&quot; value:oAuthHeader];
    [req addPostValue:@&quot;photo&quot; forKey:@&quot;type&quot;];
    [req addPostValue:message forKey:@&quot;caption&quot;];
    //    [req addPostValue:@&quot;photo.jpg&quot; forKey:@&quot;file&quot;];
    [req addData:image withFileName:@&quot;photo.jpg&quot; andContentType:@&quot;image/jpeg&quot; forKey:@&quot;data&quot;];

    [req startSynchronous];
    int statusCode = [req responseStatusCode];
    DLog(@&quot;sending completed with status code : %d&quot;, statusCode);
    DLog(@&quot;RESP : %@&quot;, [req responseString]);

    NSData *respData = [req responseData];

    [req release];

    if( statusCode != 201 ) {
        @throw [NSException exceptionWithName:NSLocalizedString(@&quot;Error&quot;, @&quot;&quot;)
                                       reason:[NSString stringWithFormat:@&quot;status : %d&quot;, statusCode]
                                     userInfo:nil];

    }

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2012/02/tip-of-uploading-images-to-tumblr-using-oauth-on-ios/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>rails 설치중 zlib 오류 발생시 &#8211; ubuntu</title>
		<link>http://hytgbn.net/2011/04/rails-%ec%84%a4%ec%b9%98%ec%a4%91-zlib-%ec%98%a4%eb%a5%98-%eb%b0%9c%ec%83%9d%ec%8b%9c-ubuntu/</link>
		<comments>http://hytgbn.net/2011/04/rails-%ec%84%a4%ec%b9%98%ec%a4%91-zlib-%ec%98%a4%eb%a5%98-%eb%b0%9c%ec%83%9d%ec%8b%9c-ubuntu/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 16:14:11 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=316</guid>
		<description><![CDATA[cd ruby-1.9.2-p0/ext/zlib ruby extconf.rb make sudo make install sudo gem install rails http://stackoverflow.com/questions/769496/ubuntu-noob-rails-install-fails-on-zlib]]></description>
				<content:encoded><![CDATA[<p>cd ruby-1.9.2-p0/ext/zlib<br />
ruby extconf.rb<br />
make<br />
sudo make install<br />
sudo gem install rails</p>
<p>http://stackoverflow.com/questions/769496/ubuntu-noob-rails-install-fails-on-zlib</p>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2011/04/rails-%ec%84%a4%ec%b9%98%ec%a4%91-zlib-%ec%98%a4%eb%a5%98-%eb%b0%9c%ec%83%9d%ec%8b%9c-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache &#8211; tomcat 연동 virtualhost 사용</title>
		<link>http://hytgbn.net/2011/04/apache-tomcat-%ec%97%b0%eb%8f%99-virtualhost-%ec%82%ac%ec%9a%a9/</link>
		<comments>http://hytgbn.net/2011/04/apache-tomcat-%ec%97%b0%eb%8f%99-virtualhost-%ec%82%ac%ec%9a%a9/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 11:19:55 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=314</guid>
		<description><![CDATA[mod_jk를 사용하여 apache와 톰캣을 연동한다. mod_jk 다운로드 : http://tomcat.apache.org/download-connectors.cgi httpd.conf #TOMCAT LoadModule jk_module /ssw/apps/apache/modules/mod_jk-1.2.31-httpd-2.2.x.so &#60;IfModule jk_module&#62; JkWorkersFile /ssw/apps/apache/modules/jk_module/workers.properties JkShmFile    /ssw/log/apache/mod_jk/mod_jk.shm JkLogFile    /ssw/log/apache/mod_jk/mod_jk.log JkLogLevel   trace JkLogStampFormat &#34;[%a %b %d %H:%M:%S %Y]&#34; #JkMount /*.jsp worker1 #JkMountCopy On &#60;/IfModule&#62; httpd-vhosts.conf &#60;VirtualHost *:80&#62; ServerAdmin admin@adonsocial.com DocumentRoot &#34;/ssw/web/docs/dev&#34; ServerName dev.adonsocial.com ErrorLog &#34;/ssw/log/apache/docs/dev/error_log&#34; CustomLog &#34;/ssw/log/apache/docs/dev/access_log&#34; common JkMount /*.jsp worker1 JkMountCopy On [...]]]></description>
				<content:encoded><![CDATA[<p>mod_jk를 사용하여 apache와 톰캣을 연동한다.</p>
<p>mod_jk 다운로드 : http://tomcat.apache.org/download-connectors.cgi</p>
<p>httpd.conf</p>
<pre class="brush: shell;">#TOMCAT
LoadModule jk_module /ssw/apps/apache/modules/mod_jk-1.2.31-httpd-2.2.x.so

&lt;IfModule jk_module&gt;
JkWorkersFile /ssw/apps/apache/modules/jk_module/workers.properties
JkShmFile    /ssw/log/apache/mod_jk/mod_jk.shm
JkLogFile    /ssw/log/apache/mod_jk/mod_jk.log
JkLogLevel   trace
JkLogStampFormat &quot;[%a %b %d %H:%M:%S %Y]&quot;
#JkMount /*.jsp worker1
#JkMountCopy On
&lt;/IfModule&gt;</pre>
<p>httpd-vhosts.conf</p>
<pre class="brush:shell;">
&lt;VirtualHost *:80&gt;
ServerAdmin admin@adonsocial.com
DocumentRoot &quot;/ssw/web/docs/dev&quot;
ServerName dev.adonsocial.com
ErrorLog &quot;/ssw/log/apache/docs/dev/error_log&quot;
CustomLog &quot;/ssw/log/apache/docs/dev/access_log&quot; common
JkMount /*.jsp worker1
JkMountCopy On
&lt;/VirtualHost&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2011/04/apache-tomcat-%ec%97%b0%eb%8f%99-virtualhost-%ec%82%ac%ec%9a%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>install ruby on rails and redmine on ubuntu</title>
		<link>http://hytgbn.net/2011/03/install-ruby-on-rails-and-redmine-on-ubuntu/</link>
		<comments>http://hytgbn.net/2011/03/install-ruby-on-rails-and-redmine-on-ubuntu/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 18:00:22 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[redmine]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=309</guid>
		<description><![CDATA[1. used source files ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz ( 최신버전으로 1.6.x를 설치해보았으니 rubygem 1.6과 redmine 1.1.2와 호환되지 않는듯 http://rubyforge.org/frs/download.php/74419/redmine-1.1.2.tar.gz 2. ruby ruby 압축을 풀고 &#62;./configure &#62;make &#62;make install 3. rubygems 설치 압축을 풀고 &#62;ruby setup.rb ( 필요한 경우 sudo ) 4. Rails 설치 &#38;gt;gem install rake &#38;gt;gem install rails -v=2.3.5 &#60;code&#62;&#38;gt;gem install rack -v=1.0.1&#60;/code&#62; &#60;code&#62; &#60;/code&#62; 5. Mysql [...]]]></description>
				<content:encoded><![CDATA[<h3>1. used source files</h3>
<pre>ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz

http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz

( 최신버전으로 1.6.x를 설치해보았으니 rubygem 1.6과 redmine 1.1.2와 호환되지 않는듯

http://rubyforge.org/frs/download.php/74419/redmine-1.1.2.tar.gz</pre>
<h3>2. ruby</h3>
<pre>ruby 압축을 풀고
&gt;./configure
&gt;make
&gt;make install</pre>
<h3>3. rubygems 설치</h3>
<pre>압축을 풀고</pre>
<pre>&gt;ruby setup.rb ( 필요한 경우 sudo )</pre>
<h3>4. Rails 설치</h3>
<pre>&amp;gt;gem install rake
&amp;gt;gem install rails -v=2.3.5
&lt;code&gt;&amp;gt;gem install rack -v=1.0.1&lt;/code&gt;</pre>
<pre>&lt;code&gt;
&lt;/code&gt;</pre>
<h3><span style="font-family: monospace;">5. Mysql 구성</span></h3>
<pre>&gt;mysql -u root mysql -p</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">mysql&amp;gt; create database redmine character set utf8;
mysql&amp;gt; create user &#039;redmine&#039;@&#039;localhost&#039; identified by &#039;암호;
mysql&amp;gt; grant all privileges on redmine.* to &#039;redmine&#039;@&#039;localhost&#039;;

&lt;strong&gt;6.Redmine 구성&lt;/strong&gt;</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&gt;cd /usr/local/
&gt;tar xvfz /usr/local/src/redmine-1.1.2.tar.gz
&gt;cd redmine-1.1.2/
&gt;config/database.yml.example config/database.yml
&gt;nano config/database.yml
   production:
   adapter: mysql
   database: redmine
   host: localhost
   username: redmine
   password:암호
   encoding: utf8</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
&lt;pre id=&quot;aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown&quot;&gt;&amp;gt;gem install -v=0.4.2 i18n</pre>
<p>&gt;RAILS_ENV=production rake config/initializers/session_store.rb</p>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&amp;gt;apt-get install libmysqlclient15-dev (MySql 4.x 인 경우 libmysqlclient12-dev)
&lt;pre id=&quot;aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown&quot;&gt;&amp;gt;gem install mysql</pre>
<p>&gt;RAILS_ENV=production rake db:migrate</p>
<p>&gt;RAILS_ENV=production rake redmine:load_default_data</p>
<p>&gt;ruby script/server webrick -e production</p>
<p>http://IP:3000/으로 확인</p>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">서버 종료시 Ctrl+C 사용

&lt;strong&gt;7. Passenger 사용하여 Rails 프로젝트 Apache에 연결&lt;/strong&gt;</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown"> * 참고사이트 : http://srue.net/91</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&gt; gem install passenger</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">  잘 안되는 경우에는 rm -r ~/.gem</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&gt; passenger-install-apache2-module</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">  시키는대로 설치한다.</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">  apache가 다른 경로에 있는 경우에는 path에 추가 후 실행한다.</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&gt; export PATH=/usr/local/apache2/bin:$PATH</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">  PATH를 지정해도 안되는 경우에 sudo 명령을 사용하지 말고 디렉토리 권한을 변경 후 다시 시도해본다.</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">  설치가 완료되면 Apache를 어떻게 수정하라고 알려준다. 알려준대로 수정 후 아파치 리스타트</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">* 가상호스트 없이 접속하는 방법으로</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">&lt;a href=&quot;http://mattconnolly.wordpress.com/2010/09/19/redmine-ruby-on-rails-without-virtual-hosts/&quot;&gt;http://mattconnolly.wordpress.com/2010/09/19/redmine-ruby-on-rails-without-virtual-hosts/&lt;/a&gt;</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">를 참조하였으나 뭔가 오류 발생</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
&lt;div id=&quot;_mcePaste&quot;&gt;*** Exception SecurityError in spawn manager (Insecure operation - exist?) (process 27151, thread #&amp;lt;Thread:0xb781a1ac&amp;gt;):&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/utils/tmpdir.rb:51:in `exist?&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/utils/tmpdir.rb:51:in `passenger_tmpdir&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/utils/tmpdir.rb:31:in `passenger_tmpdir&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:119:in `initialize&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/classic_rails/application_spawner.rb:117:in `initialize&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:201:in `new&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:201:in `spawn_rails_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:215:in `call&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:215:in `spawn_rails_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `__send__&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously&#039;&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;from /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/helper-scripts/passenger-spawn-server:99&lt;/div&gt;</pre>
<pre id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">아직 원인 해결 못함.. ㅠㅗㅜ</pre>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2011/03/install-ruby-on-rails-and-redmine-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>check directory size on linux</title>
		<link>http://hytgbn.net/2011/01/check-directory-size-on-linux/</link>
		<comments>http://hytgbn.net/2011/01/check-directory-size-on-linux/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 16:15:21 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[du]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[size]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=293</guid>
		<description><![CDATA[du -h &#8211;apparent-size &#8211;max-depth=1 ./]]></description>
				<content:encoded><![CDATA[<div id="_mcePaste"></div>
<div>du -h &#8211;apparent-size &#8211;max-depth=1 ./</div>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2011/01/check-directory-size-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DismissingAlertView</title>
		<link>http://hytgbn.net/2010/11/dismissingalertview/</link>
		<comments>http://hytgbn.net/2010/11/dismissingalertview/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 02:53:34 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[dismissing]]></category>
		<category><![CDATA[DismissingAlertView]]></category>
		<category><![CDATA[UIAlertView]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=282</guid>
		<description><![CDATA[Automatically dismissing UIAlertView. DismissingAlertView.h // // DismissingAlertView.h // // Created by hytgbn on 10. 4. 29.. // Copyright 2010 hytgbn. All rights reserved. // #import &#60;Foundation/Foundation.h&#62; @protocol DismissingAlertViewDelegate -(void)onDismissingAlertView:(id)control; @end @interface DismissingAlertView : UIAlertView &#60;UIAlertViewDelegate&#62; { id&#60;DismissingAlertViewDelegate&#62; dismissingDelegate; } @property(nonatomic, assign) id&#60;DismissingAlertViewDelegate&#62; dismissingDelegate; + (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti delegate:(id&#60;DismissingAlertViewDelegate&#62;)obj; + (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti; @end [...]]]></description>
				<content:encoded><![CDATA[<p>Automatically dismissing UIAlertView.</p>
<p>DismissingAlertView.h</p>
<pre class="brush:cpp">
//
//  DismissingAlertView.h
//
//  Created by hytgbn on 10. 4. 29..
//  Copyright 2010 hytgbn. All rights reserved.
//

#import &lt;Foundation/Foundation.h&gt;

@protocol DismissingAlertViewDelegate 

-(void)onDismissingAlertView:(id)control;

@end

@interface DismissingAlertView : UIAlertView &lt;UIAlertViewDelegate&gt; {
	id&lt;DismissingAlertViewDelegate&gt; dismissingDelegate;
}

@property(nonatomic, assign) id&lt;DismissingAlertViewDelegate&gt; dismissingDelegate;

+ (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti delegate:(id&lt;DismissingAlertViewDelegate&gt;)obj;
+ (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti;

@end
</pre>
<p>DismissingAlertView.m</p>
<pre class="brush:cpp">
//
//  DismissingAlertView.m
//
//  Created by hytgbn on 10. 4. 29..
//  Copyright 2010 hytgbn. All rights reserved.
//

#import &quot;DismissingAlertView.h&quot;


@implementation DismissingAlertView

@synthesize dismissingDelegate;

+ (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti delegate:(id&lt;DismissingAlertViewDelegate&gt;)obj {
	DismissingAlertView *alertView = nil;
	if( alertView = [[super alloc] initWithTitle:title message:msg delegate:self cancelButtonTitle:nil otherButtonTitles:nil] ) {
		
		[NSTimer scheduledTimerWithTimeInterval:2 target:alertView selector:@selector(hideUI:) userInfo:nil repeats:NO];
		[alertView setDismissingDelegate:obj];
		[alertView show];
		
	}
	return [alertView autorelease];
}

+ (id)alertWithTitle:(NSString *)title message:(NSString*)msg interval:(NSTimeInterval)ti {
	return [DismissingAlertView alertWithTitle:title message:msg interval:ti delegate:nil];
}

- (void)hideUI:(NSTimer *)timer {
	[self dismissWithClickedButtonIndex:0 animated:NO];	 
	
	if( dismissingDelegate != nil ) {
		[dismissingDelegate onDismissingAlertView:self];
	}
}

@end
</pre>
<p>Usage :</p>
<pre class="brush:cpp">
    [DismissingAlertView alertWithTitle:@&quot;Error&quot; message:@&quot;You got the error!&quot; interval:3.0];
</pre>
<p>Also you can get dismissing event.<br />
self implements DismissingAlertViewDelegate</p>
<pre class="brush:cpp">
    [DismissingAlertView alertWithTitle:@&quot;Error&quot; message:@&quot;You got the error!&quot; interval:3.0 delegate:self];
</pre>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2010/11/dismissingalertview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wget으로 cookie가 필요한 다운로드 콘솔에서 하기</title>
		<link>http://hytgbn.net/2010/11/wget%ec%9c%bc%eb%a1%9c-cooki%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-%eb%8b%a4%ec%9a%b4%eb%a1%9c%eb%93%9c-%ec%bd%98%ec%86%94%ec%97%90%ec%84%9c-%ed%95%98%ea%b8%b0/</link>
		<comments>http://hytgbn.net/2010/11/wget%ec%9c%bc%eb%a1%9c-cooki%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-%eb%8b%a4%ec%9a%b4%eb%a1%9c%eb%93%9c-%ec%bd%98%ec%86%94%ec%97%90%ec%84%9c-%ed%95%98%ea%b8%b0/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 02:36:28 +0000</pubDate>
		<dc:creator>hytgbn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[xcode3.2.5]]></category>

		<guid isPermaLink="false">http://hytgbn.net/?p=276</guid>
		<description><![CDATA[쿠키가 필요한 다운로드 콘솔에서 하기 xcode 3.2.5를 다운로드 하려다가 거대한 용량 3.5G와&#8230; 지긋지긋한 속도때문에;; 당췌 다운로드가 되질 않았다. 속도가 나올때는 괜찮았는데 느려서 그런지 몇시간씩 다운로드 걸고 있으면 에러가 나있기도 하고 wget 을 쓸 순 없을까.. 하는 생각에 찾아보니 cookie를 이용한 방법을 찾았다. ( http://omegadelta.net/2010/11/24/downloading-ios-iphone-sdks-on-bad-connections/ ) firefox에서 Cookie Exporter라는 add-on을 설치하면 현재 브라우저의 쿠키를 파일로 저장해준다. [...]]]></description>
				<content:encoded><![CDATA[<p>쿠키가 필요한 다운로드 콘솔에서 하기</p>
<p>xcode 3.2.5를 다운로드 하려다가</p>
<p>거대한 용량 3.5G와&#8230; 지긋지긋한 속도때문에;; 당췌 다운로드가 되질 않았다.</p>
<p>속도가 나올때는 괜찮았는데 느려서 그런지 몇시간씩 다운로드 걸고 있으면 에러가 나있기도 하고</p>
<p>wget 을 쓸 순 없을까.. 하는 생각에 찾아보니</p>
<p>cookie를 이용한 방법을 찾았다. ( http://omegadelta.net/2010/11/24/downloading-ios-iphone-sdks-on-bad-connections/ )</p>
<p>firefox에서 <a href="https://addons.mozilla.org/en-US/firefox/addon/66579/" target="_blank">Cookie Exporter</a>라는 add-on을 설치하면 현재 브라우저의 쿠키를 파일로 저장해준다.</p>
<p>아래와 같이 하면 쿠키파일을 이용해서 로그인 상태로 받을 수 있다.</p>
<pre class="brush:bash">
 wget --server-response --continue --no-check-certificate --load-cookies=cookies.txt [다운로드경로]
</pre>
<p>nohup등을 이용하면 더욱 편리하게 받을 수 있다.</p>
<p>이렇게 하면 </p>
]]></content:encoded>
			<wfw:commentRss>http://hytgbn.net/2010/11/wget%ec%9c%bc%eb%a1%9c-cooki%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c-%eb%8b%a4%ec%9a%b4%eb%a1%9c%eb%93%9c-%ec%bd%98%ec%86%94%ec%97%90%ec%84%9c-%ed%95%98%ea%b8%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
