diff --git a/authors.html b/authors.html index 9073a6cc..a7537343 100644 --- a/authors.html +++ b/authors.html @@ -4,34 +4,38 @@ 잘 밤에 쓸데없는 생각하기 - Authors + + - - - -

Authors on 잘 밤에 쓸데없는 생각하기

+ +
+

잘 밤에 쓸데없는 생각하기

Anythink, Everythink!

+ +
+
+

Authors on 잘 밤에 쓸데없는 생각하기

- +
+ \ No newline at end of file diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index 3ec0b80a..781f1978 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -7090,1224 +7090,4 @@ Sphinx로 문서를 컴파일 할꺼라는 소리가 있어서... 배워봐야 넣어놓는건지.;;;</p> <p>그리고 첫번째때 주의해야할 것들도 있고, 그것때문에 한번 날렸다가 다시 만들었...</p> <p>이제 산적해있는 것들이나 빨리 써야겠다.</p> -TI에서 베터리를 가장 적게 먹는 칩 출시2015-03-16T23:56:00+09:002015-04-02T23:05:00+09:00ujuctag:ujuc.github.io,2015-03-16:/2015/03/16/ti-lowpwoer-soc-release/<p class="first last">뉴스가 나왔다. 베터리가 필요없는 SOC가 나왔다고, 믿지는 않았다. 그래서 -찾아봤다. 역시나... 그져 대기시에만 오랫동안 지낼수 있도록 가장 적은 -전력을 사용할뿐...</p> -<p><a class="reference external" href="http://www.kidd.co.kr/news/178946">산업일보</a> 에 &quot;TI, 베터리 없는 IoT 커넥티비티 구현&quot; 이라는 뉴스가 올라왔다. -뭔일인가 해서 봤더니만... SimpleLink라는 초전력 플랫폼을 개발했다는 소리였다.</p> -<p>기본 코어는 ARM® Cortext®-M3 MCU를 사용했고, 플래시 / RAM, ADC, 이것 저것들을 -같이 묶은 것에 통신은 <a class="reference external" href="http://en.wikipedia.org/wiki/Bluetooth_low_energy">Bluetooth Low Energy(BLE)</a>, <a class="reference external" href="http://en.wikipedia.org/wiki/ZigBee">ZigBee®</a>, <a class="reference external" href="http://en.wikipedia.org/wiki/6LoWPAN">6LoWPAN</a>, -sub-1GHz, <a class="reference external" href="https://docs.zigbee.org/zigbee-docs/dcn/09/docs-09-5231-03-rmwg-understanding-zigbee-rf4ce.pdf">ZigBee RF4CE™</a>, 최대 5Mbps 고유모드로 지원한다고 한다.</p> -<p>제목에서는 베터리가 없다고 말을 했지만.. 침 설계된 내용들을 확인해보면...</p> -<ul class="simple"> -<li>Active-mode RX: 5.9 mA</li> -<li>Active-mode TX at 0 dBm: 6.1 mA</li> -<li>Active-mode Tx at +5 dBm: 9.1 mA</li> -<li>Active-mode MCU: 61 µA/MHz</li> -<li>Active-mode MCU: 48.5 CoreMark/mA</li> -<li>Active-mode Sensor Controller: 8.2 µA/MHz</li> -<li>Standby: 1 µA (RTC Running and RAM/CPU Retention)</li> -<li>shutdown: 100 nA (Wakeup on External Events)</li> -</ul> -<p>...</p> -<p>적게 먹기는 한다. 전력은 조금 먹지만, 전압이 1.8에서 3.8V라고 적혀있는 걸보면... -건전지 2개는 들어가야되는...</p> -<p>이 아이드은 셈플로 몇개 받을 수 있는지 한번 알아볼까... 최대 GPIO도 31개면 -괜찮은데...</p> -<ul class="simple"> -<li><a class="reference external" href="http://www.ti.com/product/cc2630">CC2630</a> : ZigBee, 6LoWPAN</li> -<li><a class="reference external" href="http://www.ti.com/product/cc2640">CC2640</a> : Bluetooth Smart</li> -<li><a class="reference external" href="http://www.ti.com/product/cc2650">CC2650</a> : Bluetooth Smart, ZigBee, 6LoWPAN, ZigBee RF4CE</li> -<li><a class="reference external" href="http://www.ti.com/product/cc1310">CC1310</a> : Sub-1GHz</li> -<li><a class="reference external" href="http://www.ti.com/product/cc2620">CC2620</a> : ZigBee RF4CE</li> -</ul> -xonsh?2015-03-16T23:50:00+09:002015-04-03T00:23:00+09:00ujuctag:ujuc.github.io,2015-03-16:/2015/03/16/xonsh/<p class="first last">Python으로 만든 Shell...</p> -<p><a class="reference external" href="http://xonsh.org/index.html">xonsh</a></p> -<p>Python-ish, BASHwards-compatible shell language and command prompt.라고...</p> -<p>저장용. Zsh을 쓰고 있어서 이것을 사용할 일이... -그리고 기본이 3.4라... 실질적으로 사용하기에는 쉽지 않을듯. 몇몇 3.x 버전을 -기본으로 장착한 배포판의 경우엔 다르겠지만.</p> -sys.json2015-03-10T13:52:00+09:002015-04-02T22:30:00+09:00ujuctag:ujuc.github.io,2015-03-10:/2015/03/10/sys-json/<p class="first last">system에 관련된 내용들을 json 형태로 웹으로 뿌려줄 수 있다. -Linux의 <cite>proc</cite> 쪽에서 관련 내용을 가져온다.</p> -<p><a class="reference external" href="https://github.com/EricR/sys.json">EricR/sys.json</a></p> -<p>좀 독특하다고 해야되나?</p> -<p>Golang을 이용해서 웹을 간단히 띄우고, <tt class="docutils literal">proc</tt> 를 이용해서 내용들을 불러와 JSON -형태로 뽑아주도록 되어있다.</p> -<p>몇몇 부분을 수정하거나 작업을 해야되긴 하겠지만 이 정도로 작은 아이를 띄워 -무리없이 가져올 수 있다면 그것도 좋은 방법이 아닐까...</p> -<div class="section" id="section-1"> -<h2>내가 생각하는 비슷한 패키지</h2> -<p><a class="reference external" href="https://github.com/nicolargo/glances">nicolargo/glances</a> - Python으로 구성되어있으며, 서버 형식으로 API들을 뽑아 올 -수 있다. 물론 간단한 웹으로도 가능하다.</p> -</div> -git-ftp로 ftp 클라이언트를!2015-03-04T00:00:00+09:002015-04-02T00:48:00+09:00ujuctag:ujuc.github.io,2015-03-04:/2015/03/04/git-ftp/<p class="first last">ftp만 열려있고 ssh가 안되는 웹 호스팅에서 작업하는 개발자를 위해...</p> -<p>백수 3개월 들어가지는지라 깃 배회중... 누군가 스타를 누른 <a class="reference external" href="https://github.com/git-ftp/git-ftp">git-ftp</a>. git을 -이용해서 FTP 클라잉너트를 만들었다.</p> -<p>뭔짓이지...</p> -<p>암튼... 만든 이유가 FTP만 지원하는 웹호스팅 때문에 만들었다고 <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>... 역시 다른 -구멍을 파는 사람들이 있구나...</p> -<p>변화점까지 확인할 수 있다는건 git의 장점을 가져왔구나.</p> -<div class="section" id="section-1"> -<h2><a class="reference external" href="https://github.com/git-ftp/git-ftp/blob/develop/INSTALL.md">설치</a></h2> -<ul class="simple"> -<li>기본 설치</li> -</ul> -<pre class="code bash literal-block"> -$<span class="w"> </span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/git-ftp/git-ftp.git<span class="w"> -</span>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>git-ftp<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>tag<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>checkout<span class="w"> </span>&lt;tag&gt;<span class="w"> -</span>$<span class="w"> </span>sudo<span class="w"> </span>make<span class="w"> </span>install -</pre> -<ul class="simple"> -<li>업그레이드의 경우</li> -</ul> -<pre class="code bash literal-block"> -$<span class="w"> </span>git<span class="w"> </span>pull<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>tag<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>checkout<span class="w"> </span>&lt;tag&gt;<span class="w"> -</span>$<span class="w"> </span>sudo<span class="w"> </span>make<span class="w"> </span>install -</pre> -<ul class="simple"> -<li>Mac OS X</li> -</ul> -<pre class="code bash literal-block"> -$<span class="w"> </span>brew<span class="w"> </span>install<span class="w"> </span>git<span class="w"> -</span>$<span class="w"> </span>brew<span class="w"> </span>install<span class="w"> </span>curl<span class="w"> </span>--with-ssl<span class="w"> </span>--with-libssh2<span class="w"> -</span>$<span class="w"> </span>brew<span class="w"> </span>install<span class="w"> </span>git-ftp -</pre> -<ul class="simple"> -<li><tt class="docutils literal">curl</tt> 을 기본으로 설치했는데 <tt class="docutils literal">ssl</tt>, <tt class="docutils literal">libssh2</tt> 를 사용할 수 있도록 설정이 -필요한 갑다.</li> -<li>git이 <tt class="docutils literal">ssl</tt> 을 사용하긴 한다만...</li> -</ul> -</div> -<div class="section" id="section-2"> -<h2>사용법</h2> -<pre class="code bash literal-block"> -<span class="c1"># Pushing for the fist time -</span>$<span class="w"> </span>git<span class="w"> </span>ftp<span class="w"> </span>init<span class="w"> </span>-u<span class="w"> </span>&lt;user&gt;<span class="w"> </span>-P<span class="w"> </span>ftp://host.example.com/public_html<span class="w"> - -</span><span class="c1"># using -</span>$<span class="w"> </span>git<span class="w"> </span>ftp<span class="w"> </span>push<span class="w"> </span>-u<span class="w"> </span>&lt;user&gt;<span class="w"> </span>-P<span class="w"> </span>ftp://host.example.com/public_html -</pre> -<ul class="simple"> -<li>더 자세한 내용은 <a class="reference external" href="https://gitub.com/git-ftp/git-ftp/blob/develop/man/git-ftp.1.md">man page</a>.</li> -</ul> -</div> -<div class="section" id="section-3"> -<h2>제한 사항</h2> -<ul class="simple"> -<li>윈도우와 OS X에서는 테스트를 많이 안했으니 관련된 버그가 있으면 말해 줄 것.</li> -<li>배포 도구로 만들어지지 않아서... 커밋이나 체크 아웃 같은건 알아서... 조심히...</li> -</ul> -<table class="docutils footnote" frame="void" id="footnote-1" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><a class="reference external" href="https://github.com/git-ftp/git-ftp/blob/develop/README.md#about">https://github.com/git-ftp/git-ftp/blob/develop/README.md#about</a></td></tr> -</tbody> -</table> -</div> -OpenStack rootwrap2015-03-04T00:00:00+09:002015-04-02T21:18:00+09:00ujuctag:ujuc.github.io,2015-03-04:/2015/03/04/openstack-rootwrap/<p class="first last">OpenStack의 Oslo에는 root권한을 얻긱위한 rootwrap이라는 라이브러리가 -존재한다.</p> -<p>OpenStack 프로젝트들에서 사용되는 것들 중... <strong>root</strong> 와 관련된 작업을 -진행해야하는 경우가 있다. 그럴때 사용하려고 만들어둔 <a class="reference external" href="https://wiki.openstack.org/wiki/Rootwrap">rootwrap</a></p> -<p>Wiki에서는 이 <a class="reference external" href="https://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/">블로그</a> 에 작성된 문제를 해결하기 위해서 만들어졌다고 한다.</p> -<p>짧은 내기억으로는 간단한 팡리로만 존재했던 것같은데. (아닐 가능성 100%라논 -소리...), 지금은 oslo 패키지로 관리되고 있다. <a class="reference external" href="https://github.com/openstack/oslo.rootwrap">github repo</a></p> -<div class="section" id="section-1"> -<h2>사용자용</h2> -<p><tt class="docutils literal">nova.conf</tt> 에 다음 문구 추가하도록...</p> -<pre class="literal-block"> -rootwrap_config=/etc/nova/rootwrap.conf -</pre> -</div> -<div class="section" id="section-2"> -<h2>배포용 패키지를 만드는 사람용</h2> -<div class="section" id="suduers"> -<h3>Suduers 설정</h3> -<p><tt class="docutils literal">sudoers</tt> 에 다음 문구를 추가하도록...</p> -<pre class="literal-block"> -nova ALL = (root) NOPASSWD: /usr/bin/nova-rootwrap /etc/nova/rootwrap.conf * -</pre> -</div> -<div class="section" id="section-3"> -<h3>필터 위치 설정</h3> -<p><tt class="docutils literal">rootwrap</tt> 으로 <tt class="docutils literal"><span class="pre">Nova-provided</span></tt> 필터 파일을 로드하고, <tt class="docutils literal">rootwrap.d</tt> 로 확장 -사용자의 필터 파일을 로드하도록 설정해 줄것.</p> -<pre class="literal-block"> -[DEFAULT] -filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap -</pre> -</div> -<div class="section" id="section-4"> -<h3>필터 정의</h3> -<p>각 노드마다 설치를... 해줘야된다고.</p> -</div> -</div> -<div class="section" id="section-5"> -<h2>플러그인 작성자용</h2> -<div class="section" id="run-as-root"> -<h3>새로운 <tt class="docutils literal"><span class="pre">run-as-root</span></tt> 명령을 추가</h3> -<p>root로 동작시킬 것이 있을 경우.</p> -<ul class="simple"> -<li><tt class="docutils literal">nova.utils.execute(run_as_root=True)</tt> 를 사용할 것.</li> -<li>관련 필터 내용은 <tt class="docutils literal">/etc/nova/rootwrap.d/foobar.filters</tt> 에 추가해둘 것.</li> -</ul> -</div> -</div> -<div class="section" id="section-6"> -<h2>프로젝트 개발자용</h2> -<div class="section" id="run-as-root-1"> -<h3>새로운 <tt class="docutils literal"><span class="pre">run-as-root</span></tt> 명령을 추가</h3> -<ul class="simple"> -<li><tt class="docutils literal">nova.utils.execute(run_as_root=True)</tt> 를 사용할 것.</li> -<li>Nova 코드에서 <tt class="docutils literal"><span class="pre">/etc/nova/rootwrap.d/{filter_name}.ilters</span></tt> 파일에 관련된 내용을 -추가해줄 것.<ul> -<li>예로 Compute 노드에서 작동하는 소스라면 -<tt class="docutils literal">/etc/nova/rootwrap.d/compute.filters</tt> 에다가 추가하도록.</li> -</ul> -</li> -</ul> -</div> -</div> -<div class="section" id="section-7"> -<h2>상위 필터 타입 추가</h2> -<ul class="simple"> -<li>기본 필터 타입은 <tt class="docutils literal">CommandFilter</tt> 임.</li> -<li>새로운 타입을 만들거나 지금 존재하는 타입을 확인하고 싶다면 <a class="reference external" href="https://github.com/openstack/oslo.rootwrap/blob/master/oslo_rootwrap/filters.py">filters.py</a> 를 -보면 된다. - <a class="reference external" href="https://wiki.openstack.org/wiki/Rootwrap#Available_Filter_classes">Available Filter Classes</a> 가 아닌걸로도 볼 수 있다.</li> -</ul> -</div> -vim을 IDE처럼 만드는 법을 알아보자.2015-03-03T00:00:00+09:002015-04-01T23:52:00+09:00ujuctag:ujuc.github.io,2015-03-03:/2015/03/03/vim-to-ide/<p class="first last">vimrc를 만드는 방법에대해서...</p> -<p>메일로 Github에서 흥하는 레포들을 소개해주는 서비스가 존재한다. 거기서 오랜만에 -vim에 관련된 내용이 올라왔다.</p> -<p><a class="reference external" href="https://github.com/jez/vim-as-an-ide">jez/vim-as-an-ide</a></p> -<p>뭐 특별한 것은 없어 보이지만, Vim을 설정하는 것들에대해 커밋을 통해서 작성해 -뒀다. 그래서 더 좋다. 이렇게하면 나중에 누군가에게 vim을 설정하는 방법에 대해서 -알려주는 방법에서도 좋을 듯함.</p> -<div class="section" id="section-1"> -<h2>아쉬운것</h2> -<ul class="simple"> -<li><a class="reference external" href="https://github.com/gmarik/Vundle.vim">Vundle</a> 을 사용해서 플러그인을 설치한다.</li> -</ul> -<p>그냥 아쉽다. 다른 것들도 많다. <a class="reference external" href="https://github.com/Shougo/neobundle.vim">NeoVundle</a>, <a class="reference external" href="https://github.com/junegunn/vim-plug">Plug</a>. 이정도가 내가 아는 플러그인 -설치를 도와주는 것들이다.</p> -<p>뭐 Vundle을 사용하는 방법을 안다면 쉽게 작업을 진행할 수 있으니 필요한 것들을 -확인해서 설치하는게 필요할듯.</p> -<p>다른 것들은 나도 보면서 배워야할 것들이다. 플러그인들이 많이 설치되는 것들을 -설치해서 사용은 하고 있지만... 그렇게 많은 기능들을 다 사용하지 않는 이상... -조금씩 덜어내는 것도 필요할 듯.</p> -</div> -timesheet.js??2015-03-02T00:00:00+09:002015-04-01T22:21:00+09:00ujuctag:ujuc.github.io,2015-03-02:/2015/03/02/timesheet-js/<p class="first last">timesheet.js라는 연대표를 그려주는 JS 라이브러리</p> -<p>놀다 보니 이것저것 보는 것들도 많다. 그런것들이라도 간단히 적어둬야지...</p> -<p>노트에다가 작성을 해놓고 넣어두는 것도 한 방법이지만, 봤을때 좋은거라 생각한다면 -그것으로 작업이 가능하지 않을까 하여...</p> -<div class="section" id="timesheet-js-1"> -<h2>timesheet.js</h2> -<ul class="simple"> -<li>홈페이지: <a class="reference external" href="https://github.com/sbstjn/timesheet.js">sbstjn/timesheet.js</a></li> -<li>손을 좀 대서 자세하게 보이거나 이것저것 손을 볼 수 있을 것같은데...</li> -</ul> -</div> -<div class="section" id="section-1"> -<h2>예제</h2> -<p>HTML 태그를 쓸수 없다는게 rst의 단점...</p> -<p>그래서 <a class="reference external" href="http://jsfiddle.net/fujstt3s/1/">예제</a> 는 링크로.... OTL</p> -</div> -<div class="section" id="section-2"> -<h2>특이점</h2> -<ul class="simple"> -<li>소스파일로 되어있는기.. <a class="reference external" href="http://haml.info/">haml</a> 로 되어있고, <a class="reference external" href="http://sass-lang.com/">sass</a> 는 첨가.<ul> -<li>sass는 CSS를 더 변수, 함수, 확장 / 상속 등의 기능을 추가해서 쉽게 만들고, -쉽게 유지보수 할 수 있도록 되어있다고 한다. 여러 종류가 있다고... <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a></li> -<li>haml은 HTML abstraction markup language라고 하는걸 줄였다고, 작성을 해놨네. -HTML 태그를 작성하기 더 쉽게 되어있긴한데... 태그를 변수로 주는게 특이하다.</li> -</ul> -</li> -<li>조금이나 더 짧게 쓰고 조금이나마 더 버전 관리가 쉽게 하도록 하는걸 보면, 점점 -더 바닥을 아는 사람들이 없어져가고, 그것들을 알 수 있는 방법들도 -없어져가는건 안좋은 점 중 하나다.</li> -</ul> -<table class="docutils footnote" frame="void" id="footnote-1" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><a class="reference external" href="http://windtale.net/blog/why-i-choose-sass/">http://windtale.net/blog/why-i-choose-sass/</a></td></tr> -</tbody> -</table> -</div> -Clojure 개발 환경 구축2015-03-01T00:00:00+09:002015-04-01T21:30:00+09:00ujuctag:ujuc.github.io,2015-03-01:/2015/03/01/clojure-development-env/<p class="first last">Clojure 개발 환경 구축... <a class="reference external" href="https://www.facebook.com/weweirdmeetup">#이상한 모임</a> 에서 웹 작업을 진행하는데 -있어서... 내가 불편하여...</p> -<div class="section" id="section-1"> -<h2>1. 개요</h2> -<p>Clojure를 공부하려하는데... 이것 저것 작업을 하려하니 짧은 기억력으로는 계속 -봐야되는지라. 이렇게 작성을 해놔야 나중에 볼 듯하고, 또 어딘가에 넣어둔다고해도 -찾을때는 잘 못찾는 지라...</p> -<div class="section" id="section-2"> -<h3>1. 전재</h3> -<p>OSX를 기반으로 한다. <tt class="docutils literal">brew</tt> 를 패키지로 모두 작성된다. 만약 Linux에서 -작업하게되면 관련해서 문서는 추가로 작성할 예정임. 문제는 언제될지 모르겠다.</p> -</div> -</div> -<div class="section" id="section-3"> -<h2>2. 설치할 것들</h2> -<div class="section" id="jdk"> -<h3>1. JDK 설치</h3> -<ul class="simple"> -<li>검색해서 JDK를 다운받으면 된다.</li> -<li>Apple에서 기본적으로 주는걸 써도 될 듯.</li> -<li>8으로 설치했는데 작업하는데는 아무런 이상없다.</li> -<li>그래서 그냥 쓴다.</li> -<li>그리고 <tt class="docutils literal"><span class="pre">brew-cask</span></tt> 에 JDK가 있다는...</li> -</ul> -</div> -</div> -<div class="section" id="leiningen"> -<h2>2. Leiningen 설치</h2> -<ul class="simple"> -<li><tt class="docutils literal">brew install leiningen</tt> 으로 설치.</li> -<li>딱히 설정할 것 없음.</li> -</ul> -</div> -<div class="section" id="lein"> -<h2>3. lein 사용</h2> -<ul class="simple"> -<li>이거 쓸려고 넘많이 적었다...</li> -</ul> -<pre class="code bash literal-block"> -$<span class="w"> </span>lein<span class="w"> - </span>Leiningen<span class="w"> </span>is<span class="w"> </span>a<span class="w"> </span>tool<span class="w"> </span><span class="k">for</span><span class="w"> </span>working<span class="w"> </span>with<span class="w"> </span>Clojure<span class="w"> </span>projects.<span class="w"> - - </span>Several<span class="w"> </span>tasks<span class="w"> </span>are<span class="w"> </span>available:<span class="w"> - </span>change<span class="w"> </span>Rewrite<span class="w"> </span>project.clj<span class="w"> </span>by<span class="w"> </span>applying<span class="w"> </span>a<span class="w"> </span><span class="k">function</span>.<span class="w"> - </span>check<span class="w"> </span>Check<span class="w"> </span>syntax<span class="w"> </span>and<span class="w"> </span>warn<span class="w"> </span>on<span class="w"> </span>reflection.<span class="w"> - </span>classpath<span class="w"> </span>Print<span class="w"> </span>the<span class="w"> </span>classpath<span class="w"> </span>of<span class="w"> </span>the<span class="w"> </span>current<span class="w"> </span>project.<span class="w"> - </span>clean<span class="w"> </span>Remove<span class="w"> </span>all<span class="w"> </span>files<span class="w"> </span>from<span class="w"> </span>project<span class="s1">'s target-path. - compile Compile Clojure source into .class files. - deploy Build and deploy jar to remote repository. - deps Download all dependencies. - do Higher-order task to perform other tasks in succession. - help Display a list of tasks or help for a given task. - install Install the current project to the local repository. - jar Package up all the project'</span>s<span class="w"> </span>files<span class="w"> </span>into<span class="w"> </span>a<span class="w"> </span>jar<span class="w"> </span>file.<span class="w"> - </span>javac<span class="w"> </span>Compile<span class="w"> </span>Java<span class="w"> </span><span class="nb">source</span><span class="w"> </span>files.<span class="w"> - </span>new<span class="w"> </span>Generate<span class="w"> </span>project<span class="w"> </span>scaffolding<span class="w"> </span>based<span class="w"> </span>on<span class="w"> </span>a<span class="w"> </span>template.<span class="w"> - </span>plugin<span class="w"> </span>DEPRECATED.<span class="w"> </span>Please<span class="w"> </span>use<span class="w"> </span>the<span class="w"> </span>:user<span class="w"> </span>profile<span class="w"> </span>instead.<span class="w"> - </span>pom<span class="w"> </span>Write<span class="w"> </span>a<span class="w"> </span>pom.xml<span class="w"> </span>file<span class="w"> </span>to<span class="w"> </span>disk<span class="w"> </span><span class="k">for</span><span class="w"> </span>Maven<span class="w"> </span>interoperability.<span class="w"> - </span>release<span class="w"> </span>Perform<span class="w"> </span>:release-tasks.<span class="w"> - </span>repl<span class="w"> </span>Start<span class="w"> </span>a<span class="w"> </span>repl<span class="w"> </span>session<span class="w"> </span>either<span class="w"> </span>with<span class="w"> </span>the<span class="w"> </span>current<span class="w"> </span>project<span class="w"> </span>or<span class="w"> </span>standalone.<span class="w"> - </span>retest<span class="w"> </span>Run<span class="w"> </span>only<span class="w"> </span>the<span class="w"> </span><span class="nb">test</span><span class="w"> </span>namespaces<span class="w"> </span>which<span class="w"> </span>failed<span class="w"> </span>last<span class="w"> </span><span class="nb">time</span><span class="w"> </span>around.<span class="w"> - </span>run<span class="w"> </span>Run<span class="w"> </span>a<span class="w"> </span>-main<span class="w"> </span><span class="k">function</span><span class="w"> </span>with<span class="w"> </span>optional<span class="w"> </span>command-line<span class="w"> </span>arguments.<span class="w"> - </span>search<span class="w"> </span>Search<span class="w"> </span>remote<span class="w"> </span>maven<span class="w"> </span>repositories<span class="w"> </span><span class="k">for</span><span class="w"> </span>matching<span class="w"> </span>jars.<span class="w"> - </span>show-profiles<span class="w"> </span>List<span class="w"> </span>all<span class="w"> </span>available<span class="w"> </span>profiles<span class="w"> </span>or<span class="w"> </span>display<span class="w"> </span>one<span class="w"> </span><span class="k">if</span><span class="w"> </span>given<span class="w"> </span>an<span class="w"> </span>argument.<span class="w"> - </span><span class="nb">test</span><span class="w"> </span>Run<span class="w"> </span>the<span class="w"> </span>project<span class="s1">'s tests. - trampoline Run a task without nesting the project'</span>s<span class="w"> </span>JVM<span class="w"> </span>inside<span class="w"> </span>Leiningen<span class="s1">'s. - uberjar Package up the project files and dependencies into a jar file. - update-in Perform arbitrary transformations on your project map. - upgrade Upgrade Leiningen to specified version or latest stable. - vcs Interact with the version control system. - version Print version for Leiningen and the current JVM. - with-profile Apply the given task with the profile(s) specified. - - Run `lein help $TASK` for details. - - Global Options: - -o Run a task offline. - -U Run a task after forcing update of snapshots. - -h, --help Print this help or help for a specific task. - -v, --version Print Leiningen'</span>s<span class="w"> </span>version.<span class="w"> - - </span>See<span class="w"> </span>also:<span class="w"> </span>readme,<span class="w"> </span>faq,<span class="w"> </span>tutorial,<span class="w"> </span>news,<span class="w"> </span>sample,<span class="w"> </span>profiles,<span class="w"> </span>deploying,<span class="w"> </span>gpg,<span class="w"> - </span>mixed-source,<span class="w"> </span>templates,<span class="w"> </span>and<span class="w"> </span>copying. -</pre> -<div class="section" id="project"> -<h3>1. project 생성</h3> -<pre class="code bash literal-block"> -lein<span class="w"> </span>new<span class="w"> </span>myproject -</pre> -<ul class="simple"> -<li><tt class="docutils literal">project.clj</tt> 에 프로젝트에 관련된 내용들을 작성한다.<ul> -<li>필요한 것들이 있다면 여기다가 차곡차곡 넣어준다.</li> -<li>그리고 이곳에 <tt class="docutils literal">main</tt> 으로 사용할 코드의 위치를 작성해 줘야된다.<ul> -<li>키워드는 <tt class="docutils literal">:main</tt> 이다.</li> -</ul> -</li> -</ul> -</li> -</ul> -</div> -<div class="section" id="section-4"> -<h3>2. 의존하는 라이브러리 다운로드</h3> -<pre class="code bash literal-block"> -lein<span class="w"> </span>deps -</pre> -<p>위에서 작성해준 패키지들을 받아와서 실행해준다. 그러니 왠만해서는 설치하고 하자.</p> -</div> -<div class="section" id="section-5"> -<h3>3. 코드 작성</h3> -<p><tt class="docutils literal">src/myproject/core.clj</tt> 가 있다. 이곳에다가 코드를 작성해주면 된다.</p> -</div> -<div class="section" id="section-6"> -<h3>4. 실행</h3> -<pre class="code bash literal-block"> -lein<span class="w"> </span>run -</pre> -<p>쉽게 실행해서 나오는 것을 볼 수 있다. 뭐 간단하네...</p> -</div> -<div class="section" id="section-7"> -<h3>5. 패키징</h3> -<p>역시 Java라고 해야될까... jar 로 만들어두면 멀티 플랫폼에서도 작동이 가능하다는 -것이지. 그리고 그것을 묶어서 보여준다. 나중에가서 설정을 좀 해줘야되는 부분이 -발생하겠지만, 지금은 그렇게까지는 나올 필요가 없으니...</p> -<pre class="code bash literal-block"> -lein<span class="w"> </span>uberjar -</pre> -</div> -<div class="section" id="section-8"> -<h3>6. 라이브러리 검색</h3> -<p>필요한 라이브러리들을 검색 하는건데... 검색하는게 더 빠를듯... 너무 많이 -나온다. 그리고 가끔 인덱스를 업데이트를 해주긴 해야되는데... 오래걸려... -너무 오래...</p> -<pre class="code bash literal-block"> -lein<span class="w"> </span>search<span class="w"> </span>ring -</pre> -<p>불편하게... 페이지별로 나오니. 이름은 정확히 입력하자. 그리고 동일한 페키지 -이름으로 버전들이 쭉~~ 나오니 그것도하나 염두해둘 것... 버전 정보는 명령어를 -하나더 쳐서 확인하게 해야지... 저렇게 다 보여줄 필요가 있나...</p> -</div> -<div class="section" id="section-9"> -<h3>7. 패치 설정</h3> -<p>자동으로 잡아준다. 그래도 추가해야된다면 <tt class="docutils literal">proejct.clj</tt> 에 키워드 -<tt class="docutils literal"><span class="pre">:extra-classpath-dirs</span></tt> 를 사용하여 리스트 형식으로 추가해주면 된다.</p> -</div> -<div class="section" id="section-10"> -<h3>8. 인터프리터 실행</h3> -<p>인터프리터를 실행해서 작성한 내요이 맞는지 확인이 가능하다.</p> -<pre class="code bash literal-block"> -lein<span class="w"> </span>repl -</pre> -</div> -</div> -<div class="section" id="section-11"> -<h2>참고 사이트!</h2> -<dl class="docutils"> -<dt><a class="reference external" href="http://english4u.kr/clojure-memo/index.html">Clojure 강좌 - 김영태</a></dt> -<dd>emacs로 되어있는 부부만 제외했...</dd> -</dl> -</div> -oh-my-vim 설치후 오류 (OSX)2015-02-26T00:00:00+09:002015-04-01T21:14:00+09:00ujuctag:ujuc.github.io,2015-02-26:/2015/02/26/oh-my-vim-error-osx/<p class="first last">oh-my-vim 설치하고나면 오류가 난다. 그것때문에 작성한글이다. 혹시나 -동일한 것이 있으면 수정합세...</p> -<p><a class="reference external" href="https://github.com/liangxianzhe/oh-my-vim">oh-my-vim</a> 으로 vim 플러그인 설정에 관련된 기본 프로그램을 바꿨다 (이것저것 -변경하고 있긴하다만...). 달라진게 없다. 좀 더 화려해지고 플러그인들로 인해서 -IDE급으로 에디터가 변경됐을 뿐이다. 단지 80라인 와랩이 필요했을뿐인데...</p> -<p>암튼 그렇게 쓰다보니 실행할때마다 에러가 뜬다.</p> -<pre class="literal-block"> -neocomplete does work this version of Vim. -It requires &quot;if_lua&quot; enabled Vim(7.3.885 or above). -</pre> -<p>혹시나 해서 검색을 해봤다. 매번 실행할 때마다 엔터 3번은 너무 오래걸려서...</p> -<p><a class="reference external" href="https://github.com/Shougo/neocomplete.vim/issues/237">neocomplete.vim - Vim version and lua</a> 에서는 실행후 <tt class="docutils literal">:version</tt> 으로 <tt class="docutils literal">lua</tt> 가 -<tt class="docutils literal">-</tt> 인지 <tt class="docutils literal">+</tt> 인지 확인을 하라고 말을 한다.</p> -<p>여기서는 <tt class="docutils literal"><span class="pre">-lua</span></tt> 면 <tt class="docutils literal">lua</tt> 사용 옵션이 빠져있는 것이 되기에 vim 설치시 그에 대한 -옵션을 설정해줘야된다는 말을...</p> -<p>OSX 사용자들에게만 나온는 것같은데... Linux에 대한 오류가 없는 걸보면...</p> -<p>암튼 그것을 수정하는 방법은 <tt class="docutils literal">brew</tt> 로 설치할때 옵션을 걸어주고 설치하면 된다. -물론 설치했다면, 다시 설치하면된다. 난 삭제하고 다시 설치... (적다보니... 자동화 -스크립트에 작성해둔거 변경을 해줘야겠다...)</p> -<pre class="code bash literal-block"> -$<span class="w"> </span>brew<span class="w"> </span>install<span class="w"> </span>vim<span class="w"> </span>--with-cscope<span class="w"> </span>--with-lua<span class="w"> </span>--override-system-vim -</pre> -<p>설치해주면된다. 그러면 자연스럽게 넘어가고 에러는 밑으로 나올꺼니 엔터칠 일이 -줄었다.!!!</p> -Pycharm에서 iPython notebook 사용2015-02-23T00:00:00+09:002015-04-01T21:07:00+09:00ujuctag:ujuc.github.io,2015-02-23:/2015/02/23/using-ipython-notebook-on-pycharm/<p class="first last">Pycharm이 4.0으로 판올림되면서 iPython notebook을 사용할 수 있도록 -되었다. 아직 불편한감이 없지않아 있음.</p> -<p>Pycharm iPython notebook 지원은 4.0에서부터 지원하기 시작했다. 아직 버전업이 -안됐으니 작년인듯...</p> -<p>iPython을 설치하고 Pycharm에서 설치하려고 봤더니 제대로 돌아가질 않는다. -그렇다고 오류가 보이지도 않아서 직접 터미널에서 쳤더니...</p> -<p><strong>패키지가 없어서 안된다!!!</strong> 라는 비명을 볼 수 있었다.</p> -<p>설치해줘야되는 패키지는 <tt class="docutils literal">pyzmq</tt>, <tt class="docutils literal">tornado</tt>, (<tt class="docutils literal">certifi</tt> 는 <tt class="docutils literal">torando</tt> 설치시 같이 -설치가되니 넘어간다.). 편한 방법으로 설치해주고 작동시키면 돌아가는 것을 확인할 -수 있다만...</p> -<p>Pycharm의 iPython notebook 입력기 UI가 너무 안좋다. 그냥 서버를 띄우고 Web에서 -작동하는 것이 입력하기도 쉽고 값들을 확인하면서 작성하기가 더 쉽게 되어있으니 -사용자가 알아서... 나는 안쓸꺼임...</p> -<p>아마 업데이트 하면... 괜찮아질꺼야... 그럴꺼야...</p> -OpenStack Commit2015-02-13T00:00:00+09:002015-03-31T22:29:00+09:00ujuctag:ujuc.github.io,2015-02-13:/2015/02/13/openstack-commit/<p class="first last">OpenStack 커밋에 대한 내용. 이번에 커멋히면서 정리한 글.</p> -<p>기본적인 흐름은 <a class="reference external" href="http://docs.openstack.org/infra/manual/developers.html">Developer's Guide</a> 를 보고서 따라하면 쉽게 작업을 할 수 있다. -그런데.... 왜이리 어려운거지....</p> -<p>신경 써야될 곳은 파란색으로 되어있는 곳만 신경 쓰면되는 그런... 어렵지 않을 -것같아 시작...</p> -<div class="section" id="section-1"> -<h2>준비 해야될 것</h2> -<ol class="arabic simple"> -<li><a class="reference external" href="https://launchpad.net/+login">Launchpad</a> 계정<ul> -<li>버그리포팅을 위해서는 Launchpad 계정이 있어야한다.</li> -<li>그리고 왠만한 OpenID를 이걸로 다 할 수 있다.</li> -</ul> -</li> -<li><a class="reference external" href="https://review.openstack.org">OpenStack Review</a> 가입<ul> -<li>리뷰를 무조건 타야된다...</li> -<li>그러니 만들어야....</li> -<li>그리고 ssh key등록을 해두는게...</li> -<li>그리고 메일링은 꺼두는게... 너무 많이와...</li> -</ul> -</li> -</ol> -</div> -<div class="section" id="individual-contributor-license-agreement"> -<h2>Individual Contributor License Agreement 결재</h2> -<ol class="arabic simple"> -<li><a class="reference external" href="https://review.openstack.org/#/settings/agreements">Individual Contributor License Agreement</a> 간단하게 작성하고..</li> -<li>회사 대신 기여하거나 단체로 한다면 <a class="reference external" href="https://secure.echosign.com/public/hostedForm?formid=56JUVGT95E78X5">Corporate Contributor License Agreement</a> -도 한장... 작성하고 보니 난 이걸 왜했지...</li> -</ol> -</div> -<div class="section" id="git-review"> -<h2><tt class="docutils literal"><span class="pre">git-review</span></tt> 설치</h2> -<ul class="simple"> -<li>맥은 그냥 <tt class="docutils literal">brew</tt> 로 통일시켜서 설치하는게 편한듯...</li> -<li>문서상으로는 <tt class="docutils literal">pip</tt> 로 설치하라고 했지만...</li> -<li>설치하고 제대로 됐는지 확인을 하기위해서는<ul> -<li>하나를 클론하고</li> -<li><tt class="docutils literal">git review <span class="pre">-s</span></tt> 를 해서 <tt class="docutils literal">review.openstack.org</tt> 에 제대로 접속했는지를 체크를 -해준다.</li> -<li>이때 <tt class="docutils literal">gitreview.username</tt> 을 <tt class="docutils literal">.gitconfig</tt> 파일에 작성해두지 않았다면 -설정하라고 뜸.</li> -</ul> -</li> -</ul> -</div> -<div class="section" id="section-2"> -<h2>작업 플로워</h2> -<div class="section" id="section-3"> -<h3>버그일 경우</h3> -<ul class="simple"> -<li>우선 <tt class="docutils literal"><span class="pre">bugs.launchpad.net/&lt;projectname&gt;</span></tt> 으로 접속하여 버그 리포팅.<ul> -<li>이때 4가지로 테스크가 나뉘는데,<ol class="arabic"> -<li>새로운 버그 확인: &quot;New&quot;로 표기된 버그를 &quot;Confirmed&quot;로 변경 가능한 상태. -거의 초기를 말한다고 보면됨.</li> -<li>버그 수정 : 버그를 할당하고, &quot;In Progress&quot;로 등록.</li> -<li>리뷰중 : &quot;Incomplete&quot;로 표기되고 리뷰가 진행되는 상태를 말함. 최대 -4주까지 걸린다고 함.</li> -<li>버그가 또다시 발견된 경우 : 그렇다고함... (뭐라말하기가... 그냥 나같은 -경우엔 리오픈으로 적고 프로세스 해버림...)</li> -</ol> -</li> -</ul> -</li> -<li>커밋할때 버그 진행상태를 남겨둘 수 있음. 자세한건 <a class="reference external" href="https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references">Including external -references</a> 를 보면됨.</li> -</ul> -</div> -<div class="section" id="section-4"> -<h3>청사진으로 새로운 기능을 붙일 경우</h3> -<ul class="simple"> -<li>이건 그냥 <a class="reference external" href="https://wiki.openstack.org/wiki/Blueprints">Blueprints - wiki</a> 를 보자.</li> -<li>관심 없고, 내가 딱히 추가할 내용도 별로 없어서... 우선은.. 빈칸...</li> -</ul> -</div> -<div class="section" id="section-5"> -<h3>변경을 시작해볼까~~~</h3> -<ul class="simple"> -<li>첫 클론을 떠온거라면 상관없지만... 뜬지 꽤됐으면 업스트림이랑 코드를 맞춰줘야 -된다.<ul> -<li>안하면 일 두번하는 생긴다... OTL</li> -<li>내가 이글을 쓰고 있는 이유기도 하다...</li> -</ul> -</li> -</ul> -<pre class="code bash literal-block"> -$<span class="w"> </span>git<span class="w"> </span>remote<span class="w"> </span>update<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>checkout<span class="w"> </span>master<span class="w"> -</span>$<span class="w"> </span>git<span class="w"> </span>pull<span class="w"> </span>--ff-only<span class="w"> </span>origin<span class="w"> </span>master -</pre> -<ul class="simple"> -<li>그리고 브런치를 따는데, Blueprint는 <tt class="docutils literal"><span class="pre">bp/&lt;blueprint_name&gt;</span></tt>, Bug는 -<tt class="docutils literal"><span class="pre">bug/&lt;bug-number&gt;</span></tt> 로 따주면된다.</li> -</ul> -<pre class="code bash literal-block"> -git<span class="w"> </span>checkout<span class="w"> </span>-b<span class="w"> </span>TOPIC-BRANCH -</pre> -</div> -<div class="section" id="section-6"> -<h3>변경 사항 커밋</h3> -<ul class="simple"> -<li>제목은 50자 이내로 작성하고, 한줄 띄우고 내용을 작성해줘야된다.</li> -<li>자세한 내용은 <a class="reference external" href="https://wiki.openstack.org/wiki/GitCommitMessages">Git commit messages</a> 참고.</li> -</ul> -<pre class="code text literal-block"> -summary - -brrrrrrbrrrrrra - -&lt;if blueprint&gt; -Implements: blueprint &lt;blueprint_name&gt; -&lt;if bug&gt; -Closes-Bug: #&lt;bug_number&gt; -</pre> -<ul class="simple"> -<li><tt class="docutils literal"><span class="pre">Change-id</span></tt> 는 <tt class="docutils literal">git review</tt> 로 올린뒤에 알아서 붙여주는거라 따로 적을 필요는 -없다.</li> -<li>리뷰에 반려가되어서 다시 커밋을 해야되는 경우에는 <tt class="docutils literal">git commit <span class="pre">--amend</span></tt> -오셤으로 해주면된다.</li> -</ul> -</div> -<div class="section" id="section-7"> -<h3>리뷰 등록</h3> -<ul class="simple"> -<li><tt class="docutils literal">git reivew</tt> 로 하면 <tt class="docutils literal">review.openstack.org</tt> 에 올라가 있는 것을 확인할 수 -있다.</li> -</ul> -</div> -<div class="section" id="section-8"> -<h3>변경사항이 있을때</h3> -<ul class="simple"> -<li>커밋 메시지에 <tt class="docutils literal"><span class="pre">Change-Id</span></tt> 가없을때는 붙여넣기 해준 다음 <tt class="docutils literal"><span class="pre">--amend</span></tt> 로 커밋.</li> -</ul> -<p>나머지 자세한 것들은 <a class="reference external" href="http://docs.openstack.org/infra/manual/developers.html">Developer's Guide</a> 를 확인하도록하자. 이것도 뭐... 내가 -까먹으니까 작성한 것이기도하지만...</p> -</div> -</div> -RAM 리뷰에서 본 버전별 특성2015-02-09T00:00:00+09:002015-03-31T21:47:00+09:00ujuctag:ujuc.github.io,2015-02-09:/2015/02/09/RAM-reive/<p class="first last">RAM 사양에 대한 내용들로 그냥 기억용임.</p> -<p>RSS에서 <a class="reference external" href="http://www.anandtech.com/show/8959/ddr4-haswell-e-scaling-review-2133-to-3200-with-gskill-corsair-adata-and-crucial">DDR4 Haswell-E Scaling Review</a>: 2133 to 3200 with G.Skill, Gorsair, -ADATA and Crucial 에서 글이올라왔길레 봤는데...</p> -<p>어떤분께서 그렇게 말씀하시던 RAM이 버전업되면서 달라지 내용과 다른 점이 보여서 -머릿속 내용을 업데이트하는 겸해서 작성해두는 내용이다.</p> -<div class="section" id="dram-comparison"> -<h2>DRAM Comparison</h2> -<table border="1" class="docutils"> -<colgroup> -<col width="10%" /> -<col width="22%" /> -<col width="31%" /> -<col width="36%" /> -</colgroup> -<thead valign="bottom"> -<tr><th class="head">&nbsp;</th> -<th class="head">Low Voltage</th> -<th class="head">Standard Voltage</th> -<th class="head">Performance Voltage</th> -</tr> -</thead> -<tbody valign="top"> -<tr><td>DDR</td> -<td>1.80V</td> -<td>2.50V</td> -<td>&nbsp;</td> -</tr> -<tr><td>DDR2</td> -<td>&nbsp;</td> -<td>1.80V</td> -<td>1.90V</td> -</tr> -<tr><td>DDR3</td> -<td>1.35V</td> -<td>1.50V</td> -<td>1.65V</td> -</tr> -<tr><td>DDR4</td> -<td>1.05V</td> -<td>1.20V</td> -<td>1.35V</td> -</tr> -</tbody> -</table> -</div> -<div class="section" id="bandwidth-comparison"> -<h2>Bandwidth Comparison</h2> -<table border="1" class="docutils"> -<colgroup> -<col width="7%" /> -<col width="19%" /> -<col width="19%" /> -<col width="12%" /> -<col width="20%" /> -<col width="23%" /> -</colgroup> -<thead valign="bottom"> -<tr><th class="head">&nbsp;</th> -<th class="head">Bus Clock</th> -<th class="head">Internal Rate</th> -<th class="head">Prefetch</th> -<th class="head">Transfer Rate</th> -<th class="head">Channel Bandwidth</th> -</tr> -</thead> -<tbody valign="top"> -<tr><td>DDR</td> -<td>100-200 MHz</td> -<td>100-200 MHz</td> -<td>2n</td> -<td>0.20-0.40 GT/s</td> -<td>1.60-3.20 GBps</td> -</tr> -<tr><td>DDR2</td> -<td>200-533 MHz</td> -<td>100-266 MHz</td> -<td>4n</td> -<td>0.40-1.06 GT/s</td> -<td>3.20-8.50 GBps</td> -</tr> -<tr><td>DDR3</td> -<td>400-1066 MHz</td> -<td>100-266 MHz</td> -<td>8n</td> -<td>0.80-2.13 GT/s</td> -<td>6.40-17.0 GBps</td> -</tr> -<tr><td>DDR4</td> -<td>1066-2133 MHz</td> -<td>100-266 MHz</td> -<td>8n</td> -<td>2.13-4.26 GT/s</td> -<td>12.80-25.60 GBps</td> -</tr> -</tbody> -</table> -<p>전압량은 진화될수록 더 낮아져 전력 소비량은 낮아졌고, 속도는 높아졌다. 그런데 -어떤분은 전압 부분만 말씀하시던데... 물론 이 내용은 특정 벤더사의 내용일 수도 -있지만, 그래도 많은 부분 수정이 된것은 맞은듯. RAM PCB를 보면 특정 핀의 길이가 -다른 핀보다 0.5mm만큼 긴것도 특이하다. 특히, 일정 구간에서는 늘어나는 모습을 -보여주는 것도...</p> -<p>자세한건 기사내용을 보는 것이 더 좋은듯.</p> -</div> -gitworkflows(7)에대한 이야기2015-02-02T00:00:00+09:002015-03-31T00:13:00+09:00ujuctag:ujuc.github.io,2015-02-02:/2015/02/02/gitworkflows7/<p class="first last">Git workflow 7 에대한 이야기</p> -<p>페이스북의 <a class="reference external" href="https://www.facebook.com/groups/kgugs">Korea Git User Group</a> 에 <tt class="docutils literal">gitworkflows</tt> 에 대한 내용을 -이야기하면서 슬라이드 <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> 를 하나 올려주셨다.</p> -<p><a class="reference external" href="http://www.slideshare.net/ktateish/the-gitworkflows7-illustrated">The gitworkflows(7) illustrated</a></p> -<p>정말 슬라이드를 이렇게까지 만들어주는건 정말 좋은듯. 특히 발표 당시에 그것을 -못들었다고 해도 이 슬라이드만 보고도 알 수 있어서 더 좋음. 물론 발표용이라면 -이것보다는 간단히 구성하는게 맞겠지만...</p> -<p>그렇다고 이걸 쓰고 싶지는 않다. 뭔가 복잡하다. 이게 어디서 좋은거지 라는 -생각이든다.</p> -<p>브런치 전략은 <a class="reference external" href="http://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html">git-flow</a> 가 가장 쉽게 접근 할 수 잇는듯...</p> -<p><a class="reference external" href="http://git-scm.com/docs/gitworkflows/1.8.2.1">gitworkflows(7) Manual Page</a> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a> 를 확인하도록하자.</p> -<table class="docutils footnote" frame="void" id="footnote-1" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>원문이 일어로 보인다. <a class="reference external" href="(http://www.slideshare.net/ktateish/gitworkflows7)">図解gitworkflows(7)</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="footnote-2" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>문서가 1.8.2.1 이전과 이후로 많은 부분이 변경된 것으로 보인다. 그만큼 -길어졌고 추가된 기능들이 많은것을 볼수 있으니, 관련해서 한번 찾아보는 것이 -필요.</td></tr> -</tbody> -</table> -단장 완료2015-01-31T04:10:00+09:002015-03-30T00:00:00+09:00ujuctag:ujuc.github.io,2015-01-31:/2015/01/31/단장-완료/<p class="first last">jekyll 로 변경하면서 작성.</p> -<p>간단하게 작업을 진행해서 뭐 넣은 것 없는 그런페이지가 만들어진듯...</p> -<p>여기다 아무리 무겁게 글을 써도 불러오는 속도가 빠르니 뭐 간다낳게 작성하기는 -좋을듯.</p> -[Google Cloud Platfrom] Google Cloud Endpoints2014-11-14T15:05:00+09:002016-03-01T00:38:00+09:00ujuctag:ujuc.github.io,2014-11-14:/2014/11/14/google-cloud-platform-google-cloud-endpoints/<p>Google Cloud Endpoints 간략하게 확인하기.</p><ul> -<li>App의 API를 구성하기 쉽도록 제공하는 서비스</li> -<li>Remote Procedure Call(RPC)를 이용하여 작업을 진행할 수 있도록 구성.</li> -</ul> -<h2 id="_1">사용</h2> -<ul> -<li>2가지 방법이 존재<ul> -<li>RPC의 <code>message</code> 클래스를 이용하는 방법.</li> -<li>RPC를 통하지 않고 직접 작업하는 방법. </li> -<li>사용은 RPC를 통하지 않는 방법이 간단하긴하다.</li> -</ul> -</li> -</ul> -<h2 id="_2">예제</h2> -<ol> -<li><a href="https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-python">appengine-endpoints-helloendpoints-python</a><ul> -<li>RPC <code>message</code> 클래스를 이용하도록 되어있음.</li> -<li>랩핑하는 것에 대한 내용이 포함.</li> -</ul> -</li> -<li><a href="https://github.com/GoogleCloudPlatform/appengine-endpoints-angular-todos-python">appengine-endpoints-angular-todos-python</a><ul> -<li>RPC <code>message</code> 클래스를 사용하지 않음.</li> -<li>Angular.js를 이용하도록 예제가 되어있어서 확인해보면 될듯함.</li> -</ul> -</li> -<li><a href="https://github.com/GoogleCloudPlatform/appengine-endpoints-tictactoe-python">appengine-endpoints-tictactoe-python</a><ul> -<li>게임 예제로 보이나 아직 테스트해보지 않음.</li> -</ul> -</li> -</ol> -<h2 id="_3">필요 패키지</h2> -<ul> -<li><a href="https://github.com/GoogleCloudPlatform/endpoints-proto-datastore">endpoints-proto-datastore</a></li> -<li>ProtoRPC 를 사용하지 않아도 된다고 함. <sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup></li> -<li>지금은 NDB만 지원. 추후 DB지원은 모르겠음.</li> -<li>DB를 사용하려면 전부 분해하고 설정하는 것이 필요할 것으로 보임.</li> -</ul> -<h2 id="api">API 구성</h2> -<ul> -<li><code>/_ah/spi/.*</code> URL은 <code>app.yaml</code> 파일에 하나만 가능함.</li> -<li> -<p>여러 API를 사용하고 싶으면 <code>main.py</code> 에 일반 예제들처럼 API클래스를 생성하고 다음과 같이 설정해주면됨.</p> -<div class="highlight"><pre><span></span><code><span class="c1"># app.yaml</span> -<span class="o">-</span> <span class="n">url</span><span class="p">:</span> <span class="o">/</span><span class="n">_ah</span><span class="o">/</span><span class="n">spi</span><span class="o">/.*</span> - <span class="n">script</span><span class="p">:</span> <span class="n">main</span><span class="o">.</span><span class="n">application</span> - -<span class="c1"># main.py</span> -<span class="n">application</span> <span class="o">=</span> <span class="n">endpoints</span><span class="o">.</span><span class="n">api_server</span><span class="p">([</span><span class="n">App1_api</span><span class="p">,</span> <span class="n">App2_api</span><span class="p">,</span> <span class="o">...</span><span class="p">])</span> -</code></pre></div> - -</li> -<li> -<p>하나의 API에 여러 클래스를 두고 싶다면 아래의 방법으로 구성</p> -<div class="highlight"><pre><span></span><code><span class="c1"># API를 종류별로 나눔 </span> -<span class="n">test_api_v1</span> <span class="o">=</span> <span class="n">endpoints</span><span class="o">.</span><span class="n">api</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;test&#39;</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;v1.0&#39;</span><span class="p">)</span> -<span class="n">test1_api_v1</span> <span class="o">=</span> <span class="n">endpoints</span><span class="o">.</span><span class="n">api</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;test1&#39;</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="s1">&#39;v1.0&#39;</span><span class="p">)</span> - -<span class="c1"># API를 처리할 Class구성</span> -<span class="nd">@test_api_v1</span><span class="o">.</span><span class="n">api_class</span><span class="p">(</span><span class="n">resource_name</span><span class="o">=</span><span class="s1">&#39;hello&#39;</span><span class="p">)</span> -<span class="k">class</span> <span class="nc">Hello</span><span class="p">(</span><span class="n">remote</span><span class="o">.</span><span class="n">Service</span><span class="p">):</span> - <span class="k">pass</span> - -<span class="nd">@test_api_v1</span><span class="o">.</span><span class="n">api_class</span><span class="p">(</span><span class="n">resource_name</span><span class="o">=</span><span class="s1">&#39;bye&#39;</span><span class="p">)</span> -<span class="k">class</span> <span class="nc">Bye</span><span class="p">(</span><span class="n">remote</span><span class="o">.</span><span class="n">Service</span><span class="p">):</span> - <span class="k">pass</span> - -<span class="nd">@test1_api_v1</span><span class="o">.</span><span class="n">api_class</span><span class="p">(</span><span class="n">resource_name</span><span class="o">=</span><span class="s1">&#39;todo&#39;</span><span class="p">)</span> -<span class="k">class</span> <span class="nc">Todo</span><span class="p">(</span><span class="n">remote</span><span class="o">.</span><span class="n">Service</span><span class="p">):</span> - <span class="k">pass</span> - -<span class="nd">@test1_api_v1</span><span class="o">.</span><span class="n">api_class</span><span class="p">(</span><span class="n">resource_name</span><span class="o">=</span><span class="s1">&#39;plan&#39;</span><span class="p">)</span> -<span class="k">class</span> <span class="nc">Plan</span><span class="p">(</span><span class="n">remote</span><span class="o">.</span><span class="n">Service</span><span class="p">):</span> - <span class="k">pass</span> - -<span class="n">application</span> <span class="o">=</span> <span class="n">endpoints</span><span class="o">.</span><span class="n">api_server</span><span class="p">([</span><span class="n">Hello</span><span class="p">,</span> <span class="n">Bye</span><span class="p">,</span> <span class="n">Todo</span><span class="p">,</span> <span class="n">Plan</span><span class="p">])</span> -</code></pre></div> - -</li> -</ul> -<h2 id="api_1">API 등록확인</h2> -<ul> -<li><code>project-id.appspot.com/_ah/api/explorer</code> 로 접근하여 확인.</li> -<li>업로드되어 표시되는 시간이 오래걸리니(최소 5분은 걸리는듯.) 올라갔는지 확인을 하려면 Google Developers Console에서 로그로 확인하면된다.</li> -<li>올라갔다면 아래와 같이 표시된다.<div class="highlight"><pre><span></span><code>https://1-dot-project-id.appspot.com/_ah/api/test@v1.0<span class="w"> </span>Saved -https://1-dot-project-id.appspot.com/_ah/api/test1@v1.0<span class="w"> </span>Saved -</code></pre></div> - -</li> -</ul> -<div class="footnote"> -<hr> -<ol> -<li id="fn:1"> -<p>http://endpoints-proto-datastore.appspot.com/&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p> -</li> -</ol> -</div>[Google App Engine] NDB - Properties2014-11-10T18:05:00+09:002016-03-03T21:47:00+09:00ujuctag:ujuc.github.io,2014-11-10:/2014/11/10/google-app-engine-ndb-properties/<p>NDB 문서를 번역해놓은 것.</p><ul> -<li>관련해서 한글로되 문서가 없어서 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties">2014/10/27일자 문서</a>를 가지고서 정리하였다.</li> -</ul> -<h2 id="_1">소개</h2> -<p><code>Model</code>에서 사용할 수 있는 데이터 모델을 말한다. 모델 타입으로 생각하면 쉽겠다. 어려울 것도 없다만.</p> -<h2 id="type">Type</h2> -<table> -<thead> -<tr> -<th>Property type</th> -<th>설명</th> -</tr> -</thead> -<tbody> -<tr> -<td><code>IntegerProperty</code></td> -<td>64-bit signed 정수 값</td> -</tr> -<tr> -<td><code>FloatProperty</code></td> -<td>Double-precision 부동 소수점 숫자 값</td> -</tr> -<tr> -<td><code>BooleanProperty</code></td> -<td>Boolean 값</td> -</tr> -<tr> -<td><code>StringProperty</code></td> -<td>유니코드 스트링 값, 500자까지 가능, 인덱스 가능</td> -</tr> -<tr> -<td><code>TextProperty</code></td> -<td>유니코드 스트링 값, 길이 제한 없음, 인덱스 기능 없음</td> -</tr> -<tr> -<td><code>BlobProperty</code></td> -<td>해석되지 않은 (Uninterpreted) 바이트 스트링, <code>indexed=True</code>로 설정하게되면 500자로 제한, 인덱스 가능. <br>하지만 <code>False</code>(기본 값)으로 설정하게 되면, 길이 제한 없으며, 인덱스 기능 없음. (추가 속성으로 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#compressed"><code>compressed</code></a>를 사용할 수 있음)</td> -</tr> -<tr> -<td><code>DateTimeProperty</code></td> -<td>날짜와 시간 (자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#Date_and_Time">Date and Time Properties</a>에서 확인)</td> -</tr> -<tr> -<td><code>DateProperty</code></td> -<td>날짜 (자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#Date_and_Time">Date and Time Properties</a>에서 확인)</td> -</tr> -<tr> -<td><code>TimeProperty</code></td> -<td>시간 (자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#Date_and_Time">Date and Time Propertyes</a>에서 확인)</td> -</tr> -<tr> -<td><code>GeoPtProperty</code></td> -<td>지리적 정보데이터를 입력 받음. <code>ndb.GeoPt</code>객체인데, <code>lat</code>, <code>lon</code> 값(둘다 부동소수점으로 표기)을 가지고서 작업을 진행.<br>예, <code>ndb.GeoPt(52.37, 4.88)</code> or <code>ndb.GeoPt("52.37", "4.88")</code>형식.<br>(<a href="https://cloud.google.com/appengine/docs/python/datastore/typesandpropertyclasses#GeoP"><code>db.GeoPt</code></a>와 동일한 객체.)</td> -</tr> -<tr> -<td><code>KeyProperty</code></td> -<td>Datastore key 값<br>선택 키워드로 kind=<em>kind</em> 형식으로 나오며, 할당된 키는 항상 kind를 지정해야함.<br>문자열이거나, 모델 클레스가 될수도 있음.</td> -</tr> -<tr> -<td><code>BlobKeyProperty</code></td> -<td><code>Blobstore</code> 키 값<br>이전 DB API의 <code>BlobReferenceProperty</code>에 해당.<br><code>BlobInfo</code>대신 <code>BlobKey</code>로 속성 값을 사용. <code>BlobInfo(blobkey)</code>를 사용하여 <code>BlobInfo</code>를 구성할 수 있긴함.</td> -</tr> -<tr> -<td><code>UserProperty</code></td> -<td>유저 객체.<br>Google의 사용자 로그인으로 관련된 내용을 저장하여 사용할때 쓴다.</td> -</tr> -<tr> -<td><code>StructuredProperty</code></td> -<td>하나의 kind 내부에 다른 모델을 추가하는 것.<br><code>C</code>의 구조체와 비슷하다고 생각하자.<br>여러번 중복이 가능하고 값을 불러오게되면 JSON방식으로 불러오는 것이 편하다.<br>자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#structured">Structured Properties</a>에서 확인</td> -</tr> -<tr> -<td><code>LocalStructuredProperty</code></td> -<td><code>StructuredProperty</code>와 비슷하게 사용할 수 있으나, 인덱싱이 안된다. 자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#structured">Structured Properties</a>에서 확인.<br>추가 속성: <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#compressed"><code>compressed</code></a></td> -</tr> -<tr> -<td><code>JsonProperty</code></td> -<td>파이썬 객체(리스트, 딕셔너리, 스트링) 값을 파이썬 <code>json</code>모듈을 이용하여 직열화함.<br>Datastore에서는 blob로 json 직렬화하여 저장.<br>인덱스 안됨.<br>추가 속성: <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#compressed"><code>compressed</code></a></td> -</tr> -<tr> -<td><code>PickleProperty</code></td> -<td>파이썬 객체(리스트, 딕셔너리, 스트링) 값을 파이썬 pickle 프로토콜을 이용하여 직열화함.<br>Datastore에서는 blob로 pickle 직렬화하여 저장.<br>인덱스 안됨.<br>추가 속성: <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#compressed"><code>compressed</code></a></td> -</tr> -<tr> -<td><code>GenericProperty</code></td> -<td>기본 값.<br><a href="https://cloud.google.com/appengine/docs/python/ndb/entities#expando">Expando</a>클래스에서 주로 사용되지만, 명시적으로 사용하기도함.<br>어떤 형식으로도 가능. (<code>int</code>, <code>long</code>, <code>float</code>, <code>bool</code>, <code>str</code>, <code>unicode</code>, <code>datetime</code>, <code>Key</code>, <code>BlobKey</code>, <code>GeoPt</code>, <code>User</code>, <code>None</code>)</td> -</tr> -<tr> -<td><code>ComputeProperty</code></td> -<td>사용자가 정의한 함수에서 계산 값들을 처리하여 저장.<br>자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/properties#computed">Computed Properties</a></td> -</tr> -</tbody> -</table> -<ul> -<li><code>compressed</code> 옵션: <code>True</code>로 설정시, gzip으로 압축하여 디스크에 저장함. 이때 CPU 인/디코딩하는데 IO를 사용을 함. </li> -</ul> -<h2 id="property-options">Property Options</h2> -<table> -<thead> -<tr> -<th>Argument</th> -<th>Type</th> -<th>Default</th> -<th>설명</th> -</tr> -</thead> -<tbody> -<tr> -<td><code>indexed</code></td> -<td><code>bool</code></td> -<td>사용하는 것만 <code>True</code></td> -<td><code>False</code>로 설정시 쿼리는 불가능해지나 쓰기 속도가 높아짐.<br>다 사용가능한건 아님.<br>인덱스 안하는게 인덱스하는 것보다 write 코스트가 적음.</td> -</tr> -<tr> -<td><code>repeated</code></td> -<td><code>bool</code></td> -<td><code>False</code></td> -<td>파이썬 리스트 형식으로 값으로 표현.<br>중복이 필요한 작업에 사용.<br><a href="https://cloud.google.com/appengine/docs/python/ndb/properties#repeated">Repeated Properties</a></td> -</tr> -<tr> -<td><code>required</code></td> -<td><code>bool</code></td> -<td><code>False</code></td> -<td>꼭 필요한 값으로 표기.<br><code>repeated=True</code>와 같이 사용하지 못하며, <code>default=True</code>와는 같이 사용할 수 있음.</td> -</tr> -<tr> -<td><code>default</code></td> -<td>Property 기본 유형</td> -<td><code>None</code></td> -<td>아무것도 지정하지 않을경우, 기본으로 들어감.<br><code>repeated=True</code>와 같이 사용하지 못하며, <code>required=True</code>와 같이 사용할 수 있음</td> -</tr> -<tr> -<td><code>choices</code></td> -<td>기본 유형의 값 목록</td> -<td><code>None</code></td> -<td>값을 선택할 수 있는 목록</td> -</tr> -<tr> -<td><code>validator</code></td> -<td>함수</td> -<td><code>None</code></td> -<td>값을 함수에 맞게 검증하고 그것으로 입력하도록 설정합니다.<br>자세한 내용은 <a href="https://cloud.google.com/appengine/docs/python/ndb/subclassprop">Writing Property Subclasses</a></td> -</tr> -<tr> -<td><code>verbose_name</code></td> -<td>문자열</td> -<td><code>None</code></td> -<td>Jinja2와 같은 웹프레임 워크에서 사용되는 HTML label을 나타냄</td> -</tr> -</tbody> -</table> -<ul> -<li>이후 내용은 그냥 홈피보자.<ul> -<li>딱히 적을 내용도 없음.</li> -</ul> -</li> -</ul>Uubntu에서 Nabi 툴바를 tray에 넣기2014-11-09T00:44:00+09:002015-04-12T14:12:00+09:00ujuctag:ujuc.github.io,2014-11-09:/2014/11/09/nabi-toolbar-in-tray-on-ubuntu/<p class="first last">Ubuntu에서 nabi를 입력기로 사용한다. 그런데 언제부터인가. tray로 -들어가지 않는 문제가 발생했다. 거의 업데이트가 안되고 있어서 -그런것같기도 하지만, 그것에 대한 내용이다.</p> -<p>오랜만에 Ubuntu를 설치하고 <tt class="docutils literal">ibus</tt> 가 조금 불편할뻔하다가... -쓰던거 쓰자해서 <tt class="docutils literal">nabi</tt> 를 설치했는데.. 이놈의 tray에 들어갈려고 하지 않는다.</p> -<p>그래서 조금 검색을 했더니... -<tt class="docutils literal">gsettings get com.canonical.Unity.Panel <span class="pre">systray-whitelist</span></tt> 라는 걸로 추가를 -해줘야한다고 하는데... 이넘은 14.10에는 없다. 조금더 찾아보니, 13.04부터는 아예 -빠져있었다.</p> -<p>다시 검색어를 <tt class="docutils literal"><span class="pre">systray-whitelist</span></tt> 로 검색중 <strong>Web UPD8</strong> 에 올라온 글을 확인.</p> -<p><a class="reference external" href="http://www.webupd8.org/2013/05/how-to-get-systray-whitelist-back-in.html">How to whitelist systray apps in ubuntu 14.04 or 14.10(W/unity)</a></p> -<ul class="simple"> -<li>나같은 경우에는 14.10을 설치했으니.</li> -</ul> -<pre class="code bash literal-block"> -sudo<span class="w"> </span>apt-add-repository<span class="w"> </span>ppa:guran/systray-utopic<span class="w"> -</span>sudo<span class="w"> </span>apt-get<span class="w"> </span>update<span class="p">;</span><span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>upgrade -</pre> -<p>그리고 <tt class="docutils literal">Alt + F2</tt> 를 눌러 <tt class="docutils literal">unity</tt> 를 찾아 클릭해주면 알아서 unity가 재시작되면서 -nabi가 트레이에 들어가게 된다.</p> -<ul class="simple"> -<li>덧. 아래에보면 관련 ppa를 삭제하는 방법이 나오는데 따로 패키지를 설치할 -필요없이 아래의 명령어로 삭제가 가능하다.</li> -</ul> -<pre class="code bash literal-block"> -sudo<span class="w"> </span>apt-add-repository<span class="w"> </span>-r<span class="w"> </span>ppa:guran/systray-utopic<span class="w"> -</span>sudo<span class="w"> </span>apt-get<span class="w"> </span>update<span class="p">;</span><span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>autoremove -</pre> -[Python] Paramiko2014-04-07T01:56:00+09:002016-03-03T22:00:00+09:00ujuctag:ujuc.github.io,2014-04-07:/2014/04/07/python-paramiko/<p>Python ssh 모듈인 paramiko에 대한 내용을 작성함.</p><p>한글로된 글이 없어서 우선 내가 알아낸 곳과 사용한 곳까지 작성을 해둘려고한다.</p> -<h1 id="paramiko"><a href="http://www.paramiko.org/">Paramiko</a></h1> -<ul> -<li>Python 2.6+, 3.3+에서 사용할 수 있는 SSHv2 구현체이다.</li> -<li>물론 Client, Server를 둘다 사용이 가능하다.</li> -<li>저 레벨 암호화를 위해서 <a href="http://pycrypto.org/">PyCrypro</a>(이부분은 Python C 확장으로 구현)를 제외한 나머지 부분들은 전부 Python으로만 구현되어있다.</li> -</ul> -<h2 id="_1">사용</h2> -<h3 id="1">1. 사용 예제</h3> -<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">paramiko</span> - -<span class="n">ssh</span> <span class="o">=</span> <span class="n">paramiko</span><span class="o">.</span><span class="n">SSHClient</span><span class="p">()</span> -<span class="n">ssh</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="n">username</span><span class="o">=</span><span class="s1">&#39;ujuc&#39;</span><span class="p">,</span> <span class="n">password</span><span class="o">=</span><span class="s1">&#39;lol&#39;</span><span class="p">)</span> -</code></pre></div> - -<h3 id="2-host-keys">2. Host Keys</h3> -<ul> -<li>첫 접근시 받아오는 Host Keys가 있다. 이것을 받아서 저장하던 날려먹던 상관은 하지 않지만 있어야지 접근이 가능하다.</li> -<li>처음 <code>ssh</code>로 접근시 무의식적으로 <code>yes</code>를 누르는 그것!!</li> -<li>그러다보니 여기서도 그것에 관련된 내용을 사용할 수 있다. </li> -<li><code>set_missing_host_key_policy(policy)</code>를 이용하여 host keys를 받아 저장할 것인지 아닌지를 판단하게 되는데. 기본값은 <code>RejectPolicy</code>로 되어있으며, <code>yes</code>를 받아와야한다면 <code>AutoAddPolicy</code>를 사용하도록 한다.</li> -</ul> -<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">paramiko</span> - -<span class="n">ssh</span> <span class="o">=</span> <span class="n">paramiko</span><span class="o">.</span><span class="n">SSHClient</span><span class="p">()</span> -<span class="n">ssh</span><span class="o">.</span><span class="n">set_missing_host_key_policy</span><span class="p">(</span><span class="n">paramiko</span><span class="o">.</span><span class="n">AutoAddPolicy</span><span class="p">())</span> -<span class="n">ssh</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="n">username</span><span class="o">=</span><span class="s1">&#39;ujuc&#39;</span><span class="p">,</span> <span class="n">password</span><span class="o">=</span><span class="s1">&#39;lol&#39;</span><span class="p">)</span> -</code></pre></div> - -<ul> -<li>물론 Public key를 이용해서 비밀번호 없이 접근이 가능하도록 할 수 있을듯 한데 그건 좀 확인이 필요할듯.</li> -</ul> -<h3 id="3">3. 실행</h3> -<ul> -<li>실행 명령어 <code>exec_command</code>를 실행하게되면, 값을 3개를 <code>tuple</code>로 받아온다.</li> -<li><code>stdin</code>, <code>stdout</code>, <code>stderr</code>이다.<br> -*명령어에 대한 값들을 받아와 확인할때는 아래와 같이 작성을 하면된다.</li> -</ul> -<div class="highlight"><pre><span></span><code><span class="n">stdin</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span> <span class="o">=</span> <span class="n">ssh</span><span class="o">.</span><span class="n">exec_command</span><span class="p">()</span> -<span class="n">stdout</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span> -<span class="p">[</span><span class="s1">&#39;test</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">]</span> -</code></pre></div> - -<ul> -<li>만약 <code>sudo</code>명령어가 필요한 경우,</li> -</ul> -<div class="highlight"><pre><span></span><code><span class="n">stdin</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span> <span class="o">=</span> <span class="n">ssh</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="s1">&#39;sudo&#39;</span><span class="p">)</span> -<span class="n">stdin</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;lol</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span> -<span class="n">stdin</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> -<span class="n">data</span> <span class="o">=</span> <span class="n">stdout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> -</code></pre></div> - -<ul> -<li>위와 같이하여 작성을 하도록 한다.</li> -<li>그리고 <code>write</code>다음에는 <code>flush</code>를 꼭 해줘야 작동을 하니 그점은 주의하도록 한다. 관련 내용은 <a href="http://docs.paramiko.org/en/latest/api/file.html#paramiko.file.BufferedFile.write">여기</a>에 있다</li> -</ul> -<h3 id="4">4. 연결 끊기</h3> -<ul> -<li>작업이 끝났으면 연결을 끊어야된다.</li> -<li>그냥 <code>close()</code>를 불러오면 알아서 끊어준다.</li> -</ul> -<h3 id="5-sftp">5. SFTP 사용.</h3> -<ul> -<li>어찌보면 <code>ssh</code>를 사용하면서 편했던 것이 <code>sftp</code>의 사용이다. 간단한 사용방법과 <code>ssh</code>가 설치가되어있으면 따로 <code>ftp</code>를 생성하지 않더라도 간단한 파일을 주고 받을 수 있도록 되어있기 때문이다.</li> -<li>먼저 <code>ssh</code>로 접속한 다음, <code>open_sftp()</code>후 파일을 가져올때는 <code>get('localfile.py', 'remotefile.py')</code>를 이용하고, 올려둘때는 <code>put('localfile.py', 'remotefile.py')</code>를 사용하면된다.</li> -</ul> -<h2 id="_2">참고 자료</h2> -<ul> -<li><a href="http://www.paramiko.org/">Paramiko Homepage</a></li> -<li><a href="http://docs.paramiko.org/en/latest/index.html">Docs paramiko</a></li> -<li><a href="http://jessenoller.com/blog/2009/02/05/ssh-programming-with-paramiko-completely-different">SSH Programming With Paramiko | Completely Different</a></li> -<li><a href="http://segfault.in/2010/03/paramiko-ssh-and-sftp-with-python/">Paramiko: SSH and SFTP With Python</a></li> -</ul>[Monitoring] SkwiSSH 설치 및 구성2014-02-28T21:46:00+09:002016-03-03T22:08:00+09:00ujuctag:ujuc.github.io,2014-02-28:/2014/02/28/skwissh-install-n-config/<p>Django App으로 ssh를 이용하여 서버 모니터링이 가능하다. 개발이 멈춘지 너무 오래됐다.</p><h1 id="skwissh"><a href="https://github.com/rsaikali/django-skwissh">SkwiSSH</a></h1> -<p>오늘 Facebook에 공유가된 Monitoring Tool. Django에서 App으로 돌릴 수 있고, 참 깔ㄹ끔하기에 회사에서 서버 볼 때 사용할까하여 구성해봤다.</p> -<p>코드로는 Django v1.5와 v1.5.1을 지원한다고 작성해놨는데 <code>setup.py</code>를 사용하여 구성하게 되면 Django v1.6을 설치하라며 에러문구가 발생한다.</p> -<p>그리고 외부 서버를 추가하기 위해서 <code>server_ip:22</code>를 입력해줘야지 외부 서버에 ssh로 접근하여 값들을 읽어오게 된다.</p> -<p>아직은 부족한 점이 많다.</p> -<ul> -<li>Sensor(명령어를 날려서 값을 받아오는 worker를 의미한다.) 추가하고 변경하려면 변경사항이 적용이 안되는 현상.</li> -<li>Sensor들의 정렬을 임의로 할 수 없다는 것. (오름차순으로 구성되어있다.)</li> -<li>기본 명령어 날리는게 1분간격으로 수정할만한 탭이 안보인다.</li> -<li>기본 DB로 SQLite3 파일을 사용하는데 점점 커지는 모습을 확인 할 수 있다.</li> -<li>bash를 사용할 줄 안다면 정말 쉽게 사용이 가능하다.<ul> -<li>명령을 SSH로 날리기에 그쪽 서버 콘솔로 리턴값을 넘길 수 있는 프로그램이라면 어떻게든 사용하면된다.</li> -</ul> -</li> -</ul> -<p>이 글에서는 Sensor에 명령어와 파셔 세팅은 작성하지 않았다.</p> -<h2 id="_1">기본 구성</h2> -<ul> -<li>OS: Ubuntu 12.04.4 server</li> -<li>Install Package</li> -</ul> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>python-pip -</code></pre></div> - -<h3 id="_2">패키지 설치</h3> -<h4 id="django">Django 설치</h4> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>pip<span class="w"> </span>isntall<span class="w"> </span>Django -</code></pre></div> - -<h4 id="django-skwissh">Django-skwissh 설치</h4> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>buid-essential<span class="w"> </span>python-dev -$<span class="w"> </span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/rsaikali/django-skwissh.git -$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>django-skwissh -$<span class="w"> </span>sudo<span class="w"> </span>python<span class="w"> </span>setup.py<span class="w"> </span>install -</code></pre></div> - -<h3 id="django_1">Django 설정</h3> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>django-admin.py<span class="w"> </span>startproject<span class="w"> </span>mysite -$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>mysite -$<span class="w"> </span>vi<span class="w"> </span>mysql/settings.py - -<span class="nv">INSTALL_APPS</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">(</span> -<span class="w"> </span><span class="s1">&#39;kronos&#39;</span>, -<span class="w"> </span><span class="s1">&#39;skwissh&#39;</span>, -<span class="o">)</span> - -$<span class="w"> </span>vi<span class="w"> </span>mysite/urls.py - -<span class="c1"># Skwissh</span> -url<span class="o">(</span><span class="s1">&#39;skwissh&#39;</span>,<span class="w"> </span>include<span class="o">(</span><span class="s1">&#39;skwissh.urls&#39;</span><span class="o">))</span>, -</code></pre></div> - -<ul> -<li>데이터 베이스 설정</li> -</ul> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>manage.p<span class="w"> </span>syncdb -</code></pre></div> - -<ul> -<li>Skwissh 테스트 설치</li> -<li>이작업을 하면 crontab에 테스크가 등록된다.</li> -</ul> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>manage.py<span class="w"> </span>installtask -<span class="c1"># crontab에 등록되었는지 확인</span> -$<span class="w"> </span>crontab<span class="w"> </span>-l -</code></pre></div> - -<ul> -<li>Django 서버 작동</li> -</ul> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>mange.py<span class="w"> </span>runserver<span class="w"> </span><span class="m">0</span>.0.0.0:8000 -</code></pre></div> - -<h2 id="_3">참고 페이지</h2> -<ul> -<li><a href="https://github.com/rsaikali/django-skwissh">Github</a></li> -<li><a href="http://rsaikali.github.io/django-skwissh/">Gitpage</a></li> -</ul>pylint2014-02-23T11:14:35+09:002018-03-11T11:14:35+09:00ujuctag:ujuc.github.io,2014-02-23:/2014/02/23/pylint/<p>PyLint 간략 사용법에 대해서 작성한다.</p><ul> -<li><a href="http://www.pylint.org">pylint 홈페이지</a></li> -</ul> -<h2 id="_1">설치</h2> -<div class="highlight"><pre><span></span><code>pip install pylint -</code></pre></div> - -<h2 id="_2">사용</h2> -<div class="highlight"><pre><span></span><code>pylint filename.py -pylint-gui -</code></pre></div> - -<ul> -<li>GUI를 사용하게 되면 쉽게 확인이 가능하다.</li> -<li>콘솔에서 표기되는 내용들을 탭별로 보여준다.</li> -</ul> -<h2 id="_3">좋은점</h2> -<ul> -<li>IDE를 사용해서 코드를 작성하면 Python PEP8에 작성된 내용과 비슷하게는 되는데 못잡아주는 것도 있어서 이걸 사용하면된다.</li> -<li>모듈 이름도 가이드해주더라.</li> -<li>함수내에 뭔짓을 이렇게 많이 하고 있느냐도 물어봐주고</li> -<li>코드를 작게 줄일 수 있도로 도와주는 역활도 함.</li> -</ul> -<h2 id="_4">단점</h2> -<ul> -<li>귀찮다&hellip;</li> -<li>자동화가 필요하다&hellip;</li> -</ul>Python setup.py unilnstall 방법2013-11-22T11:22:23+09:002018-03-11T11:22:23+09:00ujuctag:ujuc.github.io,2013-11-22:/2013/11/22/python_setup.py_unilnstall_bang-beob/<p>setup.py를 이용하여 uninstall 하는 방법에 대해서 간략 정리.</p><p><a href="http://stackoverflow.com/questions/1550226/python-setup-py-uninstall">Python setup.py uninstall</a></p> -<p>삭제하는 방법은 모든걸 지워 버려야된다는 것.</p> -<p>우선 <code>setup.py</code>로 설치하는 경로를 파일로 받는다.</p> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>setup.,py<span class="w"> </span>install<span class="w"> </span>--record<span class="w"> </span>files.txt -</code></pre></div> - -<p>그러고 난 뒤 그 내용에 있는 것들을 모두 다 지워주면 되는데. 이때, 폴더 내부만 삭제할뿐 생성된 파일이 삭제되지 않으니 유의해서 삭제할 수 있도록 조정해주면 된다.</p> -<div class="highlight"><pre><span></span><code>$<span class="w"> </span>cat<span class="w"> </span>files.txt<span class="w"> </span><span class="p">|</span><span class="w"> </span>xargs<span class="w"> </span>rm<span class="w"> </span>-rf -</code></pre></div>KVM on ARM project2013-10-14T11:29:17+09:002018-03-11T11:29:17+09:00ujuctag:ujuc.github.io,2013-10-14:/2013/10/14/kvm_on_arm_project/<p>ARM 칩에서 KVM을 사용하는 프로젝트가 있어서 정리한다.</p><p><a href="http://systems.cs.columbia.edu/projects/kvm-arm/">Project homepage</a></p> -<p>ARM 프로세스에서 지원하는 Virtualization을 이용하여 KVM을 올리는 프로젝트 Cortex-15A에서 작업한 내용이 있음. ARM Core는 ARMv7.</p> -<p>Virtual Open Systems is an innovative, agile and dynamic start-up company operating in embedded Linux, Android, SMP Virtualization and Cloud Computing. 이란다.</p> -<p>얼마전에 ARMv8에서 KVM을 사용하는 방법도 추가해놨다. (4월에 추가되고 7월에 업데이트 됨.)</p> -<p>삼성 Exynos 5250를 사용하는 Arndale Board에서 KVM을 이용하여 올렸는데 보면 QEMU가 작동하는 것을 볼 수 있다. 그러나 확실히 속도는 빠르다. 몇배속으로 돌린것인지 아니면 내가 봐왔던 ARM이 느렸던건지..</p> -<p><a href="http://youtu.be/yB8bdA2hjYg">Youtube 동영상</a></p> -<p>덧. 2013.01.11에 작성한 글을 옮기면서 변경사항들이 있어 추가함.</p>PCIutils2013-02-21T12:00:45+09:002018-03-11T12:00:45+09:00ujuctag:ujuc.github.io,2013-02-21:/2013/02/21/pciutils/<p><code>pciutils</code> 패키지에 대해서 알아본다.</p><p><a href="http://mj.ucw.cz/sw/pciutils/">홈페이지</a> 에서 말하는 건 아래의 영문내용!</p> -<blockquote> -<blockquote> -<p>The PCI Utilities are a collection of programs for inspecting and manipulating configuration of PCI devices, all based on a common portable library libpci which offers access to the PCI configuration space on a variety of operating systems.</p> -</blockquote> -</blockquote> -<p>PCI 구성을 위한 것도 이것이 해주고, PCI 관련된 프로그램 모음들도 가지고있는. 그런 페키지 pciuils 여기서 정해주지 않으면 아무리 컴퓨터에 좋은걸 끼웠거나… 이전에 사용하지 않았던 제품을 끼웠다고 해서 리눅스에서 먹어주는 것은 아니다.</p> -<p><a href="http://pci-ids.ucw.cz/v2.2/pci.ids">4월 9일자 pci.ids</a> 를 검색해보면 아마.. 지원하는 부품들 안에 자신이 사용하는 보드나 이름들이 없다면… 우리 리눅스 버전업을 그만두자.ㅡ.ㅡ…</p> -<p>PCI 슬롯에서 못읽어들이는데 어쩔수 있냐…..</p> -<p>뭐 따로 받아서 저것을 추가 해준다면야 사용이 가능하겠지만…………<br> - 왠지 외국에서는 해줄 것같은데.. 우리나라에서는…………</p> -<p><em>만약에 추가가 안되어있으면, 내가 추가하면 되겠네?</em>라는 생각이 문득들어…<br> -찾아봤다. <code>/usr/share/misc/pci.ids</code> 여기에 있다. 그런데.. 이것만 바꿔주면 되는 것일까??</p> -<p>음.. 또 찾았다. 어디냐면..</p> -<p>pciutils 최신버전을 다운받아서 풀었더니 <code>update_pciids.sh</code>가 있다.ㅡ.ㅡ<br> -그냥 이걸 실행시켜주면 알아서 설치가 될듯한데..</p>Screen 명령어를 통해서 Serial 통신2013-01-09T11:39:40+09:002018-03-11T11:39:40+09:00ujuctag:ujuc.github.io,2013-01-09:/2013/01/09/screen_myeong-ryeong-eo-reur_tong-hae-seo_serial_tong-sin/<p>screen으로 serial 통신을 하는 프로그램으로 사용하자.</p><p>발단은 Coolterm이라는 Serial 통신 프로그램에서 Vi의 값을 변경할 수 없는 상황이 발생하여…</p> -<p>여기 저기 찾다가. <code>Screen</code>을 이용하여 Serial 통신을 할 수 있다는 포스팅을 찾아서 해보니.. 괜찮다.. 복잡하게 설정을 하지 않아도 되는 상황에서는 이것을 이용하는 편이 가장 편할 듯. <code>minicom</code>도 필요없다.</p> -<p>명령어 사용법 : <code>screen ‘디바이스 위치’ ‘전송속도’</code></p> -<div class="highlight"><pre><span></span><code># Mac -screen /dev/tty.XXX 115200 -# Linux -screen /dev/ttyXXX 115200 -</code></pre></div> - -<p>종료할때는 <Crtl>+<A> &lt;Crtl+&lt;&gt;로 종료할 수 있다.</p>Eclipse + AVR Plug-in Development Environment Setting2012-10-24T11:34:15+09:002018-03-11T11:34:15+09:00ujuctag:ujuc.github.io,2012-10-24:/2012/10/24/eclipse_+_arm_plug-in_development_environment_setting/<p>Eclipse를 이용해서 AVR 코딩할 수 있는 환경 만들기.</p><p>Eclipse로 AVR 프로그램을 코딩할 수 있다는 소리를 듣고서 곧장 검색을 해서 필요한 것들을 깔았었다.<br> -그런데 뭔가 프로젝트에 x표가 나타나서 신경쓰이게 하던것을 한 블로그에서 찾았다!!!!</p> -<p>그래서 이렇게 남긴다. 까먹을까봐서..</p> -<p><a href="http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin">공식 홈페이지</a></p> -<p>리눅스에서는 기본적으로 컴파일러는 gcc를 이용해서 작동을 시키게 된다.</p> -<div class="highlight"><pre><span></span><code>yaourt -S gcc-avr avr-libc avrdude binutils-avr -</code></pre></div> - -<p>을 설치해줬다. Arch Linux에서는 이렇게 해주고 더 필요한 패키지들이 있으면,</p> -<div class="highlight"><pre><span></span><code>yaourt -Ss avr -</code></pre></div> - -<p>로 해줘 찾을 수 있다.</p> -<p>Eclipse를 설치 해주는데 이때 Eclipse는 C/C++용으로 설치해준다.<br> -그리고서 프로젝트 만드는 것은</p> -<p><a href="http://hoyoung2.blogspot.com/2010/07/avr-developement-environment-setting.html">Don’t panic! WinAVR + Eclipse + AVR Plug-in Developement Environment Setting</a></p> -<p>에서 확인하면 끝…</p> \ No newline at end of file + \ No newline at end of file diff --git a/feeds/rss.xml b/feeds/rss.xml index c2c2e02d..d490ff90 100644 --- a/feeds/rss.xml +++ b/feeds/rss.xml @@ -12,28 +12,4 @@ ujucWed, 13 May 2015 22:46:00 +0900tag:ujuc.github.io,2015-05-13:/2015/05/13/edison-초기-설정/Developedison개발embedded임베디드inteliotStatus bar & Title bar 숨기기https://ujuc.github.io/2015/04/23/status-bar-&-title-bar-%EC%88%A8%EA%B8%B0%EA%B8%B0/<p class="first last">Android 다 안다는 Status bar, Title bar 숨기기.</p> ujucThu, 23 Apr 2015 01:25:00 +0900tag:ujuc.github.io,2015-04-23:/2015/04/23/status-bar-&-title-bar-숨기기/Developandroid기본난 모르겠다.Odin is?https://ujuc.github.io/2015/04/10/odin-is/<p class="first last">Parallels에서 이번에 새롭게 런칭한 Cloud 서비스 Odin.</p> ujucFri, 10 Apr 2015 01:00:00 +0900tag:ujuc.github.io,2015-04-10:/2015/04/10/odin-is/Cloudopenstackcloudparallels백업 완료https://ujuc.github.io/2015/04/03/%EB%B0%B1%EC%97%85-%EC%99%84%EB%A3%8C/<p class="first last">이제 다시 시작. Jekyll &gt; Octopress &gt; Pelican 정착기.</p> -ujucFri, 03 Apr 2015 00:57:00 +0900tag:ujuc.github.io,2015-04-03:/2015/04/03/백업-완료/Chat백업완료TI에서 베터리를 가장 적게 먹는 칩 출시https://ujuc.github.io/2015/03/16/ti-lowpwoer-soc-release/<p class="first last">뉴스가 나왔다. 베터리가 필요없는 SOC가 나왔다고, 믿지는 않았다. 그래서 -찾아봤다. 역시나... 그져 대기시에만 오랫동안 지낼수 있도록 가장 적은 -전력을 사용할뿐...</p> -ujucMon, 16 Mar 2015 23:56:00 +0900tag:ujuc.github.io,2015-03-16:/2015/03/16/ti-lowpwoer-soc-release/Hardwaretichipiotm3armblelow energyxonsh?https://ujuc.github.io/2015/03/16/xonsh/<p class="first last">Python으로 만든 Shell...</p> -ujucMon, 16 Mar 2015 23:50:00 +0900tag:ujuc.github.io,2015-03-16:/2015/03/16/xonsh/Softwarepythonshellsys.jsonhttps://ujuc.github.io/2015/03/10/sys-json/<p class="first last">system에 관련된 내용들을 json 형태로 웹으로 뿌려줄 수 있다. -Linux의 <cite>proc</cite> 쪽에서 관련 내용을 가져온다.</p> -ujucTue, 10 Mar 2015 13:52:00 +0900tag:ujuc.github.io,2015-03-10:/2015/03/10/sys-json/Developgojsonapigit-ftp로 ftp 클라이언트를!https://ujuc.github.io/2015/03/04/git-ftp/<p class="first last">ftp만 열려있고 ssh가 안되는 웹 호스팅에서 작업하는 개발자를 위해...</p> -ujucWed, 04 Mar 2015 00:00:00 +0900tag:ujuc.github.io,2015-03-04:/2015/03/04/git-ftp/SoftwaregitftpshellclibashOpenStack rootwraphttps://ujuc.github.io/2015/03/04/openstack-rootwrap/<p class="first last">OpenStack의 Oslo에는 root권한을 얻긱위한 rootwrap이라는 라이브러리가 -존재한다.</p> -ujucWed, 04 Mar 2015 00:00:00 +0900tag:ujuc.github.io,2015-03-04:/2015/03/04/openstack-rootwrap/Developopenstackoslovim을 IDE처럼 만드는 법을 알아보자.https://ujuc.github.io/2015/03/03/vim-to-ide/<p class="first last">vimrc를 만드는 방법에대해서...</p> -ujucTue, 03 Mar 2015 00:00:00 +0900tag:ujuc.github.io,2015-03-03:/2015/03/03/vim-to-ide/Developvimvimrcidetimesheet.js??https://ujuc.github.io/2015/03/02/timesheet-js/<p class="first last">timesheet.js라는 연대표를 그려주는 JS 라이브러리</p> -ujucMon, 02 Mar 2015 00:00:00 +0900tag:ujuc.github.io,2015-03-02:/2015/03/02/timesheet-js/DevelopjavascriptjsClojure 개발 환경 구축https://ujuc.github.io/2015/03/01/clojure-development-env/<p class="first last">Clojure 개발 환경 구축... <a class="reference external" href="https://www.facebook.com/weweirdmeetup">#이상한 모임</a> 에서 웹 작업을 진행하는데 -있어서... 내가 불편하여...</p> -ujucSun, 01 Mar 2015 00:00:00 +0900tag:ujuc.github.io,2015-03-01:/2015/03/01/clojure-development-env/Developclojure개발 환경leinoh-my-vim 설치후 오류 (OSX)https://ujuc.github.io/2015/02/26/oh-my-vim-error-osx/<p class="first last">oh-my-vim 설치하고나면 오류가 난다. 그것때문에 작성한글이다. 혹시나 -동일한 것이 있으면 수정합세...</p> -ujucThu, 26 Feb 2015 00:00:00 +0900tag:ujuc.github.io,2015-02-26:/2015/02/26/oh-my-vim-error-osx/DevelopvimsettingPycharm에서 iPython notebook 사용https://ujuc.github.io/2015/02/23/using-ipython-notebook-on-pycharm/<p class="first last">Pycharm이 4.0으로 판올림되면서 iPython notebook을 사용할 수 있도록 -되었다. 아직 불편한감이 없지않아 있음.</p> -ujucMon, 23 Feb 2015 00:00:00 +0900tag:ujuc.github.io,2015-02-23:/2015/02/23/using-ipython-notebook-on-pycharm/DeveloppycharmipythonnotebookOpenStack Commithttps://ujuc.github.io/2015/02/13/openstack-commit/<p class="first last">OpenStack 커밋에 대한 내용. 이번에 커멋히면서 정리한 글.</p> -ujucFri, 13 Feb 2015 00:00:00 +0900tag:ujuc.github.io,2015-02-13:/2015/02/13/openstack-commit/DevelopopenstackcommitRAM 리뷰에서 본 버전별 특성https://ujuc.github.io/2015/02/09/RAM-reive/<p class="first last">RAM 사양에 대한 내용들로 그냥 기억용임.</p> -ujucMon, 09 Feb 2015 00:00:00 +0900tag:ujuc.github.io,2015-02-09:/2015/02/09/RAM-reive/Hardwareramhw하드웨어gitworkflows(7)에대한 이야기https://ujuc.github.io/2015/02/02/gitworkflows7/<p class="first last">Git workflow 7 에대한 이야기</p> -ujucMon, 02 Feb 2015 00:00:00 +0900tag:ujuc.github.io,2015-02-02:/2015/02/02/gitworkflows7/Developgitworkflow단장 완료https://ujuc.github.io/2015/01/31/%EB%8B%A8%EC%9E%A5-%EC%99%84%EB%A3%8C/<p class="first last">jekyll 로 변경하면서 작성.</p> -ujucSat, 31 Jan 2015 04:10:00 +0900tag:ujuc.github.io,2015-01-31:/2015/01/31/단장-완료/Chat시작[Google Cloud Platfrom] Google Cloud Endpointshttps://ujuc.github.io/2014/11/14/google-cloud-platform-google-cloud-endpoints/<p>Google Cloud Endpoints 간략하게 확인하기.</p>ujucFri, 14 Nov 2014 15:05:00 +0900tag:ujuc.github.io,2014-11-14:/2014/11/14/google-cloud-platform-google-cloud-endpoints/Developgooglecloudgcpgoogle cloud platformgoogle cloud endpoint[Google App Engine] NDB - Propertieshttps://ujuc.github.io/2014/11/10/google-app-engine-ndb-properties/<p>NDB 문서를 번역해놓은 것.</p>ujucMon, 10 Nov 2014 18:05:00 +0900tag:ujuc.github.io,2014-11-10:/2014/11/10/google-app-engine-ndb-properties/Developgooglecloudgcpgoogle cloud platformndbUubntu에서 Nabi 툴바를 tray에 넣기https://ujuc.github.io/2014/11/09/nabi-toolbar-in-tray-on-ubuntu/<p class="first last">Ubuntu에서 nabi를 입력기로 사용한다. 그런데 언제부터인가. tray로 -들어가지 않는 문제가 발생했다. 거의 업데이트가 안되고 있어서 -그런것같기도 하지만, 그것에 대한 내용이다.</p> -ujucSun, 09 Nov 2014 00:44:00 +0900tag:ujuc.github.io,2014-11-09:/2014/11/09/nabi-toolbar-in-tray-on-ubuntu/Softwarelinuxubuntunabisetting[Python] Paramikohttps://ujuc.github.io/2014/04/07/python-paramiko/<p>Python ssh 모듈인 paramiko에 대한 내용을 작성함.</p>ujucMon, 07 Apr 2014 01:56:00 +0900tag:ujuc.github.io,2014-04-07:/2014/04/07/python-paramiko/Developpythonparamikosshlib[Monitoring] SkwiSSH 설치 및 구성https://ujuc.github.io/2014/02/28/skwissh-install-n-config/<p>Django App으로 ssh를 이용하여 서버 모니터링이 가능하다. 개발이 멈춘지 너무 오래됐다.</p>ujucFri, 28 Feb 2014 21:46:00 +0900tag:ujuc.github.io,2014-02-28:/2014/02/28/skwissh-install-n-config/Operationpythonmonitoringsshdjangopylinthttps://ujuc.github.io/2014/02/23/pylint/<p>PyLint 간략 사용법에 대해서 작성한다.</p>ujucSun, 23 Feb 2014 11:14:35 +0900tag:ujuc.github.io,2014-02-23:/2014/02/23/pylint/Developpythonlintpylintcode conventionPython setup.py unilnstall 방법https://ujuc.github.io/2013/11/22/python_setup.py_unilnstall_bang-beob/<p>setup.py를 이용하여 uninstall 하는 방법에 대해서 간략 정리.</p>ujucFri, 22 Nov 2013 11:22:23 +0900tag:ujuc.github.io,2013-11-22:/2013/11/22/python_setup.py_unilnstall_bang-beob/Developpythonsetup.pysetuptoolKVM on ARM projecthttps://ujuc.github.io/2013/10/14/kvm_on_arm_project/<p>ARM 칩에서 KVM을 사용하는 프로젝트가 있어서 정리한다.</p>ujucMon, 14 Oct 2013 11:29:17 +0900tag:ujuc.github.io,2013-10-14:/2013/10/14/kvm_on_arm_project/HardwarearmkvmhypervisorPCIutilshttps://ujuc.github.io/2013/02/21/pciutils/<p><code>pciutils</code> 패키지에 대해서 알아본다.</p>ujucThu, 21 Feb 2013 12:00:45 +0900tag:ujuc.github.io,2013-02-21:/2013/02/21/pciutils/HardwarepcilinuxScreen 명령어를 통해서 Serial 통신https://ujuc.github.io/2013/01/09/screen_myeong-ryeong-eo-reur_tong-hae-seo_serial_tong-sin/<p>screen으로 serial 통신을 하는 프로그램으로 사용하자.</p>ujucWed, 09 Jan 2013 11:39:40 +0900tag:ujuc.github.io,2013-01-09:/2013/01/09/screen_myeong-ryeong-eo-reur_tong-hae-seo_serial_tong-sin/OperationscreenserialEclipse + AVR Plug-in Development Environment Settinghttps://ujuc.github.io/2012/10/24/eclipse_+_arm_plug-in_development_environment_setting/<p>Eclipse를 이용해서 AVR 코딩할 수 있는 환경 만들기.</p>ujucWed, 24 Oct 2012 11:34:15 +0900tag:ujuc.github.io,2012-10-24:/2012/10/24/eclipse_+_arm_plug-in_development_environment_setting/Developavreclipsedevelopment environmentenvironmentarch \ No newline at end of file +ujucFri, 03 Apr 2015 00:57:00 +0900tag:ujuc.github.io,2015-04-03:/2015/04/03/백업-완료/Chat백업완료 \ No newline at end of file