tag:blogger.com,1999:blog-58525167159167006092024-03-13T10:59:36.316+09:00ビットの海Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.comBlogger101125tag:blogger.com,1999:blog-5852516715916700609.post-17632213801789485652016-01-10T16:52:00.002+09:002016-01-14T16:39:35.164+09:00移転しましたこちらに移転しました。<br />
<a href="http://shase428.hatenablog.jp/">http://shase428.hatenablog.jp</a><br />
<br />
ここは更新されることはないと思いますが、特に消す予定もありません。Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-40745332558358542822015-12-29T21:37:00.003+09:002015-12-29T21:40:53.780+09:002015年の簡単な振り返り2015年もお世話になりました。<br />
shaseです。<br />
仕事が納まっていませんが、簡単に振り返りを。<br />
<br />
新年の抱負のほうは、別の所に書こうと思います。<br />
というのも、bloggerから別のところに引っ越そうと思うからです。<br />
<br />
今年を振り返ると、プライベートはほぼ結婚式、ハネムーン、引っ越し、それらの準備で忙殺されました。<br />
<br />
仕事のほうは、マンガコンテンツ販売の為のサービス開発から、マンガコンテンツ供給の為のサービス開発に変化がありました。<br />
<br />
技術的にはあまり見るべきものはなく、Goを少し仕事で使い始めたのと、Javaのバージョンを8にあげたり、AWSを少し使うようになったり、ぐらいでしょうか。<br />
<br />
英語や、数学があまりできなかったな、という反省などもあります。<br />
<br />
最後ですが、google bloggerにはお世話になりました。<br />
また、どこかで宜しくお願いします。Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-54387793348917912072015-12-06T15:36:00.000+09:002015-12-06T15:36:11.899+09:00CentOS6系に最新のgitを入れる<div class="line number52 index51 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">// 古いgitを入れる</code></div>
<div class="line number52 index51 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">sudo yum install git -y</code></div>
<div class="line number52 index51 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><br /></code></div>
<div class="line number53 index52 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">cd /tmp</code></div>
<div class="line number54 index53 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">git clone git:</code><code class="java comments" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(63, 95, 191) !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">//git.kernel.org/pub/scm/git/git.git</code></div>
<div class="line number55 index54 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker</code></div>
<div class="line number56 index55 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><br /></code></div>
<div class="line number56 index55 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">// 古いgitを消しておく</code></div>
<div class="line number56 index55 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">sudo yum -y remove git</code></div>
<div class="line number56 index55 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;"><br /></code></div>
<div class="line number57 index56 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">cd git</code></div>
<div class="line number58 index57 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">sudo make prefix=/usr/local all</code></div>
<div class="line number59 index58 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">sudo make prefix=/usr/local install</code></div>
<div class="line number59 index58 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<br /></div>
<div class="line number59 index58 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
// おわり</div>
<div class="line number60 index59 alt1" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">/usr/local/bin/git -version</code></div>
<div class="line number61 index60 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<br /></div>
<div class="line number61 index60 alt2" style="background: none white !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; height: auto !important; left: auto !important; line-height: 20px; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: nowrap !important; width: auto !important;">
<code class="java plain" style="background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: black !important; float: none !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; height: auto !important; left: auto !important; margin: 0px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;">まぁ、わざわざ最初のgit cloneのためにgit入れるのアホらしい気もしないでもない\(-o-)/</code></div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-83313282899038244562015-11-21T21:59:00.002+09:002015-11-21T22:13:32.861+09:00CentOS 6.6にruby 2.2をsoftwarecollections.orgから入れる手順は、softwarecollections.orgに書いてるけどね。<br />
<br />
// software collectionsのutilを入れる<br />
$ sudo yum install scl-utils -y<br />
<br />
// リポジトリのrpmをとってくる<br />
// ここに書いてある:https://www.softwarecollections.org/en/scls/rhscl/rh-ruby22/<br />
$ wget https://www.softwarecollections.org/en/scls/rhscl/rh-ruby22/epel-6-x86_64/download/rhscl-rh-ruby22-epel-6-x86_64.noarch.rpm<br />
<br />
// リポジトリのパッケージ入れる<br />
$ yum install rhscl-rh-ruby22-*.noarch.rpm -y<br />
<br />
// ruby入れる<br />
$ sudo yum install rh-ruby22 -y<br />
<br />
// rh-ruby22を有効化<br />
$ sudo scl enable rh-ruby22 bash<br />
<br />
// ruby version見てみる<br />
$ ruby -v<br />
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]<br />
<br />
おしまい\(-o-)/<br />
<br />
<b>追記</b><br />
<br />
なんかエラーでた<br />
<br />
// 別Userにスイッチして実行<br />
$ /opt/rh/rh-ruby22/root/usr/bin/ruby<br />
/opt/rh/rh-ruby22/root/usr/bin/ruby: error while loading shared libraries: libruby.so.2.2: cannot open shared object file: No such file or directory<br />
<br />
なんかこれと同じ現象<br />
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1280344<br />
<br />
とりあえず、scl enable rh-ruby22 'ruby -v' とかしとけば動くが...Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-35951697862220108522015-11-21T21:51:00.001+09:002015-11-27T16:49:24.410+09:00CentOS 6.6にJenkins入れる// OpenJDK 8のinstall<br />
$ sudo yum install java-1.8.0-openjdk -y<br />
<br />
// jenkinsのリポジトリ追加<br />
$ wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo<br />
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key<br />
<br />
// jenkinsのインストール<br />
$ sudo yum install jenkins -y<br />
<br />
// jenkins起動<br />
$ sudo service start jenkins<br />
<br />
// インストールしたマシンにブラウザでアクセス<br />
http://host:8080/<br />
<br />
おしまい\(-o-)/Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-16197550536649858592015-10-21T21:59:00.003+09:002015-11-20T20:58:54.809+09:00mtr (My traceroute)で遊ぼうむかーし、Windows使いのころ、お世話になったコマンドに、pathpingというコマンドがありまして、ネットワーク障害の時など多用しておりました(イントラのネットワークがしょぼい職場でした)。<br />
<br />
さて、じゃあMac(というか、UNIX系)だと、何がpathpingにあたるかというと、mtrというコマンドが実はありまして、homebrewを使ってる人は、<br />
<br />
$ brew install mtr<br />
<br />
これだけです。(もちろんLinuxにもあります)。<br />
<br />
詳しい説明は、<a href="https://en.wikipedia.org/wiki/MTR_(software)" target="_blank">英語版wikipedia</a>に(予想外に)ありましたが、要するに、高機能なping + tracerouteみたいなものです。<br />
<br />
たとえばこんな感じ<br />
<br />
$ sudo /usr/local/Cellar/mtr/0.86/sbin/mtr --report 8.8.8.8<br />
<br />
Start: Wed Oct 21 21:43:19 2015<br />
<blockquote class="tr_bq">
HOST: hostname Loss% Snt Last Avg Best Wrst StDev<br />
1.|-- x.x.x.x 10.0% 10 1.4 3.2 1.4 11.9 3.4<br />
(略)<br />
11.|-- google-public-dns-a.googl 0.0% 10 3.5 3.9 3.5 6.4 0.8</blockquote>
<br />
要するにicmpを利用して、見た目分かりやすくレイテンシを表示してくれるツールです。<br />
(一応書いとくと、tracertと一緒でUDPモードもあります)<br />
<br />
<a href="http://linux.die.net/man/8/mtr" target="_blank">man</a>を見るとわかりますが、オプションも少ないし、とりあえず、installして遊んでみるとよいかと(^v^)<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-72156060707066798432015-10-14T20:39:00.003+09:002015-10-14T20:44:58.290+09:00shでヒアドキュメントを変数に代入catをかませてみる。<br />
<br />
<blockquote class="tr_bq">
QUERY=`cat <<'EOF'<br />
select * from hoge_table<br />
where id = 1<br />
;<br />
EOF`</blockquote>
<br />
まぁ、bash でいいじゃんという説も...。Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-71964425054924213982015-09-23T14:35:00.000+09:002015-09-25T11:08:57.855+09:00JavaでProgram Arguments(Command Line Arguments)を取り出すjavaのアプリケーションなんかを実行する際に、<br />
<br />
<blockquote class="tr_bq">
java -jar foobar.jar --arg1=true --arg2=false</blockquote>
<br />
なんてことをすることはよくあると思うんですが、arg1の値を使いたいとかのときは、<br />
mainメソッドからだと、当然、public static void main(String.. args) {}のargsから取れるわけです。<br />
<br />
じゃあ、mainメソッド以外から取り出すときに、よい取り出し方ってどうなんだろうと小一時間探してみたんですが、イマイチ見つからず、結果的にこんな感じで取り出してみました。<br />
<br />
<blockquote class="tr_bq">
String command = System.getProperty("sun.java.command");<br />
String[] args = command.split(" ", 0);<br />
<br /></blockquote>
<br />
ほかにあったりしないのかな ( ´ー`)フゥー...<br />
<br />
追記<br />
<br />
ちなみに、Springの場合だと、<br />
<br />
<blockquote class="tr_bq">
ConfigurableApplicationContext ctx = //どこかからapplicationContext取得<br />ConfigurableEnvironment ce = ctx.getEnvironment();<br />String arg = ce.getProperty("arg1");</blockquote>
<br />
とかでもいけます。Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-22697832282255200142015-08-28T23:39:00.002+09:002015-08-29T21:42:25.352+09:00Spring in Summer 雑感これいってきました<br />
<br />
Spring in Summer ~ 夏なのにSpring<br />
<a href="https://jsug.doorkeeper.jp/events/27682">https://jsug.doorkeeper.jp/events/27682</a><br />
<br />
最初のほうと、最後のほうは所要で外したんだけど、午後のセッションはだいたい聴くことができた。<br />
<br />
その中でも、やっぱり、pivotalのJosh Long氏の話が面白くて時間作って行ってよかったなーと思った。(同時通訳の方も早口なのにすごい翻訳だった)<br />
<br />
Josh Long氏は地球の裏側からきたばっかりらしいんだけど、3つのセッションを大変パワフルにこなしてました。<br />
<br />
<b>The Macro of Microservices</b><br />
概念的な話。アジャイルでDevOpsでCIでねーみたいな。<br />
pivotalは、開発とデリバリーの溝を埋めたい。<br />
プラットフォームを作りたいという顧客がいる。これはクレイジーだと思う。<br />
ソフトウェア企業だったら、ソフトウェアに注力しようよ。チップを製造したりはしないでしょ?<br />
Art of scalability読んでみてね。いい本だよ。子どもにも読み聞かせよう(笑うとこ)<br />
Netflixすごいよ話。アメリカ人めっちゃ見てるよ。<br />
コンウェイの法則として知られる法則「ソフトウェアを開発する組織は、その構造をそっくりまねた構造の設計を生み出す」<br />
オープンソースを開発している組織は、分散アーキテクチャになるけど、<br />
クローズドソースで開発している組織は、同じ部屋で開発して、モノリシック化してしまう。<br />
<br />
ほかいろいろ<br />
<br />
<b>The Bootiful Application</b><br />
ライブコーディングセッション#1<br />
Spring bootてきな。<br />
<br />
<b>The Bootiful Microservice</b><br />
ライブコーディングセッション#2<br />
Spring Cloudてきな。<br />
<br />
以下、あんまり細かくメモはとってないので超ざっくりと雑感。<br />
(細かいところは、twitterのhash tagをみるとよいかと:<a href="https://twitter.com/hashtag/jsug_sis?src=hash">https://twitter.com/hashtag/jsug_sis?src=hash</a>)<br />
<br />
マイクロサービスアーキテクチャ(以下、MSA)について、よく日本のネット界隈で言われてることって、ガラパゴス、とまでは言わないけど、ちょっと断片的だったり、ポイントがずれていたりするのかな、って思ったりした。<br />
<br />
特に、実装面で、よくMSAとして言われてるのは単にAPIの集合みたいなケースが多いように思うんだけど、実際、netflixはこんな感じで(逸れるけど、netflixのgithubすごいよね)、我々の、spring bootとspring cloudで(netflixのOSSの力も使って)、こんな風に実現できるんだぜ、みたいな。<br />
<br />
見せ方がうまいなーと思うのもあるけど、やっぱり概念だけじゃなくて、実装を見ると、SOAと言われてた時に、分散アーキテクチャとしてこういう要素要るよね、って言われてた内容が、MSAでも、こういうの必要だよね、ってなってリアリティがでてきた。<br />
<br />
the Macro of Microservices by Josh Long<br />
<a href="https://speakerdeck.com/joshlong/the-macro-of-microservices">https://speakerdeck.com/joshlong/the-macro-of-microservices</a><br />
<br />
<br />
ライブコーディングの一部はここにあるっぽい<br />
<a href="https://github.com/joshlong/bootiful-microservices">https://github.com/joshlong/bootiful-microservices</a><br />
<br />
勉強しないとなーという気になったので、行ってよかった。とりあえず、netflixとspring cloudのリポジトリみてみなきゃ。<br />
<br />
おしまい٩(๑❛ᴗ❛๑)۶<br />
<br />
<br />
見かけた公開資料<br />
<b><br /></b>
マイクロサービスアーキテクチャの設計<br />
<a href="http://www.slideshare.net/yusuke/jug2015">http://www.slideshare.net/yusuke/jug2015</a><br />
<br />
Spring Framework / Boot / Data 徹底活用 〜Spring Data Redis 編〜<br />
<a href="http://www.slideshare.net/yoshidanaohiro52/spring-framework-boot-data-spring-data-redis">http://www.slideshare.net/yoshidanaohiro52/spring-framework-boot-data-spring-data-redis</a><br />
<br />
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス<br />
<a href="http://www.slideshare.net/Yoichi-KIKUCHI/jsug2015-summer-spring">http://www.slideshare.net/Yoichi-KIKUCHI/jsug2015-summer-spring</a><br />
<br />
20150828 JSUG Spring in Summer 2015 - Spring BootアプリケーションをAmazon Elastic Beanstalkに一発でデプロイしてみよう<br />
<a href="http://www.slideshare.net/daisuke_m/20150828-jsug-spring-in-summer-2015-spring-bootamazon-elastic-beanstalk">http://www.slideshare.net/daisuke_m/20150828-jsug-spring-in-summer-2015-spring-bootamazon-elastic-beanstalk</a>Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-19964637703711790952015-08-26T23:07:00.000+09:002015-08-26T23:15:28.006+09:00golang1.5 + gb + gojiでhello world 3分クッキングgojiを試しつつ、ginのほうが好きかも...<br />
<br />
// 適当にpathを設定<br />
$ export GOPATH=~/go<br />
<br />
// gb落とす<br />
$ go get github.com/constabulary/gb/...<br />
<br />
// プロジェクトのディレクトリ掘る<br />
$ mkdir -p example-project/src/hello<br />
<br />
// ここ(<a href="https://github.com/zenazn/goji/blob/master/README.md">https://github.com/zenazn/goji/blob/master/README.md</a>)に書いてあるexampleをとりあえず動かしてみる<br />
$ vim ./<span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px;">example-project/</span>src/hello/main.go<br />
<br />
// これ通さないとだめっぽい("don't run this binary directly, it is meant to be run as 'gb vendor ...'" って怒られる)<br />
export GB_PROJECT_DIR=./example-project<br />
<br />
// fetchする(vendorディレクトリがつくられる)<br />
$ cd ./example-project<br />
$ ~/go/bin/gb-vendor fetch github.com/zenazn/goji<br />
$ ~/go/bin/gb-vendor fetch github.com/zenazn/goji/web<br />
<br />
// buildする<br />
<div>
$ ~/go/bin/gb build</div>
<br />
// 実行<br />
$ ./bin/hello<br />
<br />
// アクセスしてみよう<br />
http://localhost:8000/hello/shase<br />
<br />
おしまい٩(๑❛ᴗ❛๑)۶Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-87166914832743817822015-07-11T16:33:00.000+09:002015-07-11T16:34:53.902+09:00今年も半分終わった半分終わったし、振り返り。<br />
(今週体調悪かったし。なんかそういう時って、振り返りモードなりません?)<br />
<br />
<h2>
生活</h2>
今年の6月まで、ライフイベント関連のあれやこれやでバタバタしていた記憶しかなく、でもそれはある意味予定通りでして。<br />
<br />
5月あたまの結婚式の準備と、6月の引っ越関連で、ほぼなにかしたらそれに関することを毎週末やっていたような気がします。<br />
<br />
ほんと、今週ぐらいから、前の家のあれこれが終わったりして、新居とかそういうの考えられるようになった感じです。<br />
<br />
<h2>
仕事</h2>
あんまり書けることないけどw、やって良かったかなぁと思ったのは、春に、稼働中のサービスをJava7から、Java8に置き換えできたことかなぁ、と思います(課外活動的な感じで)。<br />
<br />
まだ、実装は手探り手探りやってますけど、チームのエンジニア的にOpportunityになればなーと思います。運用中のサービスの仕事って、結構マンネリ化しやすいですしね。<br />
<br />
プロジェクト的には、とある新規のしごとの山場を迎えている感じで、今年の夏は、これ関連のことをずっとやっていそうな雰囲気。当分忙しそう。<br />
<br />
<h2>
学び</h2>
<div>
<a href="http://blogger.shase.info/2015/02/2015.html" target="_blank">2015年やること</a> を書いてはみたものの、書いてる時から、今年前半はあれこれするのは無理であろうと、予想したとおりになった感じですねw<br />
<br />
多少英語とかやってたりしたんですけど、今年の後半戦から改めて取り組もう、という感じです。<br />
<br />
ほんとにチラ裏でした\(^o^)/</div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-31432302571105443572015-05-19T22:22:00.001+09:002015-05-19T22:22:53.939+09:00MacにMySQLインストール後の状態<br />
oracleさんから拾ってきてインストール後の状態<br />
<br />
<h2>
Target</h2>
<div>
<ul>
<li>MySQL 5.6 </li>
<li>MacOSX mavericks</li>
</ul>
</div>
<div>
<br /></div>
<h2>
初期状態のメモ</h2>
<ul>
<li>起動 / 停止</li>
<ul>
<li>$ sudo /usr/local/mysql/support-files/mysql.server start</li>
</ul>
<li>scokファイルの場所</li>
<ul>
<li>/tmp/mysql.sock</li>
</ul>
<li>コンソールログイン</li>
<ul>
<li> /usr/local/mysql/bin/mysql -uroot -S /tmp/mysql.sock</li>
</ul>
<li>mysql home(ソフトリンク)</li>
<ul>
<li>/usr/local/mysql</li>
</ul>
</ul>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-56580760834472799942015-05-08T13:12:00.001+09:002015-05-08T13:14:46.399+09:00RestTemplateで使用するTLSのバージョンを指定する昨日書いたこれは<br />
<br />
Java8で使用するTLSのバージョン事情<br />
<a href="http://blogger.shase.info/2015/05/java8tls.html">http://blogger.shase.info/2015/05/java8tls.html</a><br />
<br />
あたりまえだけど、全部に適用されてしまうわけでして。<br />
<br />
特定の通信だけ明示的に指定したいケースを考えてみる。<br />
<br />
<h2>
環境</h2>
Spring 4.1.x<br />
Java 8.x<br />
apache httpclient 4.4.x<br />
<br />
とりあえずfactoryのところ変えてみたよ、って感じ。<br />
SimpleClientHttpRequestFactoryはjavaの設定そのままなので、HttpComponentsClientHttpRequestFactoryを使ってみました。<br />
<br />
<h2>
before</h2>
<div>
<pre class="prettyprint">// request factoryの生成
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory() {
};
// factoryになんかセットしたりする
// リクエスト
HttpEntity<String> request = new HttpEntity<String>(requestHeaders);
String url = "https://localhost"
RestTemplate restTemplate = new RestTemplate(factory);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
</pre>
<h2>
after</h2>
<pre class="prettyprint"> // request factoryの生成
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
SSLContext sslContext = null;
try {
sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);
} catch (Exception e) {
//todo:
}
SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(sslContext);
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sf).setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
factory.setHttpClient(httpClient);
// リクエスト
HttpEntity<String> request = new HttpEntity<String>(requestHeaders);
String url = "https://localhost"
RestTemplate restTemplate = new RestTemplate(factory);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
</pre>
<h2>
参考にした</h2>
<a href="http://www.baeldung.com/httpclient-ssl">http://www.baeldung.com/httpclient-ssl</a><br />
<br />
<br />
gistとか貼ったほうが見やすいね。(。-人-。) ゴメーン</div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-81380910562060055212015-05-07T23:16:00.000+09:002015-05-08T01:04:27.288+09:00Java8で使用するTLSのバージョン事情<h2>
Java 7のとき</h2>
<br />
TLSv1をデフォルトで使用するようになっている。<br />
SSLv3については、例のpoodle事件の影響で、JDK 7u75リリース以降無効になっている。<br />
https://www.java.com/ja/download/faq/release7_changes.xml<br />
<br />
TLS1.2も使えるが明示的に有効にしないと使えない。<br />
<br />
<h2>
Java 8</h2>
<div>
<br /></div>
<div>
TLSv1.2をデフォルトで利用。</div>
<div>
通信相手が対応してなかったりするとTLSv1で通信したりする。</div>
<br />
そこをやんごとなき事情があって、1.2を使いたくないとか、そんなときの設定。<br />
プロパティに下記を設定<br />
(起動パラメータの場合はおなじみ、-Dhttps.protocols="" -Djdk.tls.client.protocols="" 記法)<br />
<br />
https.protocols=TLSv1,TLSv1.1<br />
jdk.tls.client.protocols=TLSv1,TLSv1.1<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-83684321138014846542015-04-16T03:02:00.000+09:002015-04-16T03:06:33.295+09:00Windows Server 2003のおもいでWindows Server 2003がやっとサポート終了を迎えるらしい。<br />
<br />
<b>プレス発表「3か月後に控えたWindows Server 2003のサポート終了に関する注意喚起」</b><br />
<a href="http://www.ipa.go.jp/about/press/20150414.html">http://www.ipa.go.jp/about/press/20150414.html</a><br />
<br />
学生時代FreeBSDで過ごして、社会人になって出会ったこの商用サーバーOSは、自分にとって、二度とWindowsで仕事はするまい、と思わせてくれる存在だった。<br />
<br />
その後、Windows Serverと疎遠になったこともあって、後継の2008などに触れることもなく、平和な生活を過ごしている。<br />
<br />
ここでは、もう2度と使われない知識を供養する意味でいろいろ書いておこうと思う。<br />
(インストーラーでF6押してドライバ読み込むとか、drwtsn32でドクターワトソン起動とか...)<br />
<br />
<h2>
イメージ</h2>
<div>
エポックメイキングな、2000という存在があって、それを成熟させたのが2003だったと理解している。NT -> 2000ぐらいで圧倒的な存在となって、ライバル(Netwareとかそのへん)をエンタープライズ界隈で寄せ付けない感じになっていた。</div>
<div>
<br /></div>
<div>
同じ会社のおじさんが、NetwareはCUIで、NTはGUIだったので、総務兼情シスみたいなユーザーにとって、NTは使いやすかったのでは?みたいなことを言っていたのが記憶に残っている。</div>
<div>
<br /></div>
<h2>
ActiveDirectory : AD</h2>
<div>
以下AD。言わずと知れたAD。</div>
<div>
<br /></div>
<div>
たぶん、当時所属していたところが、ActiveDirectoryとPC(当時Windows XP)の導入、運用でお金を貰うビジネスをしていたので、嫌だなーと思いつつ、すげー触った。</div>
<div>
<br /></div>
<div>
最初、概念的にまったく理解できなかったんだけど、これは要するにディレクトリサービスに必要なものをあれこれつけたAll in one ですよ、ってことなんだと思う。</div>
<div>
<br /></div>
<div>
Windows Server 2003の時代だと、2000で構築した環境のリプレイス案件が多かった気がする。ntdsutil、dcpromoいろいろ覚えてたけどもう忘れた。</div>
<div>
<br /></div>
<h2>
DNSサービス(サーバー)</h2>
<div>
MS 標準のDNSサーバーが役に立たねー、って記憶が一番つよい。BINDを基準で考えると、DNSサーバーとして圧倒的に機能が足りないので。</div>
<div>
<br /></div>
<div>
ただ、AD + BINDの運用ってレコードの管理とかが超かったるいので、そういう感じで運用している現場をぼくは見たことがなかった。</div>
<div>
<br /></div>
<div>
あと、DNSサーバーのroot hintって、Windows Updateとかで更新されてるのかと思いやそんなこともなく、root hintが更新されてない環境が多かったように記憶している。</div>
<div>
<br /></div>
<h2>
Microsoft Cluster Service : MSCS</h2>
<div>
いわゆるHAクラスタリングソフトなんだけど、MS謹製なので、MSのサーバー(サービス)と相性がよく、CIFSのファイルサーバーなんかを、MSCS + NAS(or SAN)で組むことが身近では多かった。</div>
<div>
<br /></div>
<div>
なんか、これを組めると出来る人、みたいな扱いをされてたけど、当時から結構ネット上に情報もあったし、お手軽なクラスタリングソフトだったと思う。</div>
<div>
<br /></div>
<div>
変なところではDHCPdとかそういうのにも使ったりしているところがあった。</div>
<div>
<br /></div>
<h2>
NTP</h2>
<div>
AD環境の場合、クライアントPCとかは、FSMOロールのサーバーの時刻に同期していなければならない(kerberos認証の都合上)。</div>
<div>
<br /></div>
<div>
なので、ADのドメインに参加すると、クライアントは自動でNTPの設定をFSMOに合わせるようになる(microsoft.comじゃなくてね)</div>
<div>
<br /></div>
<div>
なんだけど、自分が見た現場はへぼいのが多くて、FSMOの時刻が外部のNTPを見てるかとおもいきや、system localしか見ていなかったり(FSMOのサーバーがどんどん時刻が遅延していくと、クライアントPC全部がどんどん遅れていく)とか、そういうのが多かった。</div>
<div>
<br /></div>
<h2>
NT backup</h2>
<div>
Windowsの標準のバックアップツールでメジャーな奴といえば、これ。</div>
<div>
<br /></div>
<div>
仕事で使ったケースだと、backup先をCIFSマウントした(へぼい)NASとかにすると、なんか失敗するケースがあって、テープメディア前提のソフトウェアの悲しさみたいなものを感じた(適当に言ってます)。</div>
<div>
<br /></div>
<div>
あと、Windowsのレジストリのバックアップって結構めんどくさくて、安全なバックアップとしてNT backupをつかう、というノウハウもあった。</div>
<div>
<br /></div>
<div>
<b>レジストリのバックアップにレジストリエディタの .reg ファイル書き出し機能を使うのは危険</b></div>
<div>
<a href="http://d.hatena.ne.jp/softether/20091027">http://d.hatena.ne.jp/softether/20091027</a></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
イベントログ</h2>
<div>
今はどうか知らんが、Windowsのログといえばイベントログで、これがまた扱いにく(UNIXの文化から来ると)。フラットファイルじゃないからね。</div>
<div>
<br /></div>
<div>
syslogサーバーとかに載せたいときは、NT-syslogとか使ってた気がする。</div>
<div>
<br /></div>
<div>
あと、コマンドでいうと、eventtriggersとかが、2003/XPからはあって、重宝してた気がする。</div>
<div>
<br /></div>
<h2>
bat / WSH</h2>
<div>
有名なActivePerlも実はWSH上で動いている。が、本番サーバーで使ってる現場に出会ううことはなかった。</div>
<div>
<br /></div>
<div>
vbsの文法が好きになれなくて、自分で書くのはjscriptにしてたんだけど、引き継ぎできねーって怒られたのを記憶している。</div>
<div>
<br /></div>
<div>
@echo off 懐かしい</div>
<div>
<br /></div>
<h2>
当時、参考にしていたドキュメント</h2>
<div>
リソースキット(本)は、インフラの基本的なことが書いていて勉強になった…かもしれない。</div>
<div>
<br /></div>
<div>
あと、MSのサポートだったり、kbばかり見ていた気がする。</div>
<div>
<br /></div>
<div>
市販の本でいうと、</div>
<div>
アンドキュメンテッドMicrosoftネットワーク</div>
<div>
WINDOWS SERVER2003完全技術解説</div>
<div>
インサイド MS WINDOWS</div>
<div>
<br /></div>
<div>
あたりが記憶に残っている。</div>
<div>
<br /></div>
<div>
アンドキュメンテッド~はwiresharkで、SMB/CIFSの解析をするのに非常に助かったりした。</div>
<div>
<br /></div>
<h2>
その他</h2>
<div>
Sysinternalsとか、リソースキットのツールとか、このへんの便利ツールがデフォルトで入っていないのが本当に使えないなぁ、と思っていて。</div>
<div>
<br /></div>
<div>
受託で仕事をしていると、サーバーに便利ツールを入れるのも、非常に面倒なプロセスを踏む必要があって、萎えた。<br />
<br />
アプリケーション・サーバーは触ってなかったのでASP.netとかIISはぜんぜん知らない。</div>
<div>
<br /></div>
<div>
netshコマンドは使いこなせた気がしない。あれ、MSとCiscoが仲良かった頃の名残なんだよね。</div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-25869813712519798482015-04-07T13:04:00.000+09:002015-04-07T13:04:04.570+09:00VarnishでBANメソッドを定義する公式見ながら設定したりしたが、挙動は確認できたけどいまいち自信なし<br />
<br />
一応Javaから叩いている<br />
<a href="http://blogger.shase.info/2015/01/javavarnishhttpmethod-ban-client.html">ex)JavaでVarnish用のHttpMethod BANを発行してみる</a><br />
<br />
localhost以外からcallしたいときは、acl purgeメソッドのところにIPなりhostなりを追加すればよい<br />
<br />
以下vcl<br />
<br />
backend default {<br />
.host = "example.com";<br />
.port = "80";<br />
}<br />
<br />
acl purge {<br />
"localhost";<br />
}<br />
<br />
sub vcl_recv {<br />
<br />
if (req.request == "BAN") {<br />
if (!client.ip ~ purge) {<br />
error 405 "Not allowed.";<br />
}<br />
<br />
ban("obj.http.x-url ~ " + req.url);<br />
error 200 "Banned.";<br />
}<br />
}<br />
<br />
sub vcl_fetch {<br />
set beresp.http.x-url = req.url;<br />
}<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-14792226935585402102015-04-07T11:35:00.001+09:002015-04-07T12:51:07.280+09:00CommonsDBCPでminIdle以下のコネクション数になっちゃう時はtimeBetweenEvictionRunsMillis設定しようタイトルまま。<br />
<br />
ex) そもそものCommonsDBCPの設定の話はこのへんでもみてね<br />
http://www.atmarkit.co.jp/ait/articles/0709/25/news149_3.html<br />
<br />
netstatをみたときに、Tomcatのコネクションプーリングのコネクション数が、minIdle以下になってることがあって。<br />
<br />
例えばminIdle 5にしたときに、netstat叩いたとして、<br />
<br />
$ netstat -an |grep "DBのIPアドレス":3306|grep ESTABLISHED |wc -l<br />
が<br />
1<br />
みたいな。<br />
<br />
で、どうもアイドル状態のコネクションは、検証し続けないとminIdle以下になっちゃうらしいんですね。アクセスが多くなるとmaxIdleまでは増えてくれるんだけど、コネクション生成コストもばかにならないので、minIdle数ぐらいは、常に貼っておいてほしいと。<br />
<br />
そんなときは、timeBetweenEvictionRunsMillisを明示的に設定すればよくて(デフォルト値は-1なのでなんもしてない)、これを設定すると、idle中の検証をしてくれるので、minIdle以下のコネクションになることがなくなった(^○^)<br />
<br />
手元の環境では、60000(ミリ秒)と設定している。<br />
<br />
おわり<br />
<br />
<b>追記1</b><br />
<b><br /></b>
timeBetweenEvictionRunsMillisを明示的に設定したら、もう1ついいことがあった。<br />
<br />
ピーク帯にコネクション数が、DBCPで設定してある、maxIdleぐらいまで達するんだけど、そのあと、負荷が下がっても、コネクション数が、mysqlのwait_timeout(デフォルト8時間)ぐらい維持されてたんだよね。<br />
<br />
timeBetweenEvictionRunsMillisを設定したら、上記の8時間ぐらい増えた分が維持されていたコネクションが、すみやかに使わなくなったらcloseするようになった。<br />
<br />
良いことでした。<br />
<br />
٩(๑❛ᴗ❛๑)۶<br />
<div>
<br /></div>
<br />
<b>追記2</b><br />
<b><br /></b>
http://www.atmarkit.co.jp/ait/articles/0709/25/news149_3.html<br />
これみたら<br />
<br />
<blockquote class="tr_bq">
testWhileIdle以降はプール内でアイドル状態のコネクションを検証するかどうかのパラメータだ。この機能を使用するときには、validationQueryパラメータが設定されている必要がある。</blockquote>
<br />
って書いてたんだけど、このへんのソースみた感じ<br />
http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java<br />
<br />
特にvalidationQueryにtimeBetweenEvictionRunsMillisが依存してる感じはない(なんか見落としてたらごめん)。<br />
<br />
ソース読みきれないので推測入るんだけど、アイドル接続の有効性を確認(クエリを投げての検証)は、validationQueryが必要っぽいんだけど、アイドル接続の生存期間を確認するだけなら、minEvictableIdleTimeMillisのデフォ値で見てくれているので今回は期待した挙動(追記1)になったんだと思う。<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-57670654804516379192015-02-27T03:22:00.000+09:002015-03-06T12:52:19.533+09:00コマンドでOphcrack(Windows7対象)基本的にWindowsは使ってないんだけど、身内がWindows7でパスワード忘れたわーわーってなってたので、久しぶりにOphcrackでパスワードリセットしたのでメモ。<br />
<br />
なんか、LiveCDのisoをusbメモリに書き込んでbootさせたんだけど、なんかXがうまく立ち上がってくれなかったので、コマンドラインで実行してみた。<br />
<br />
対象環境<br />
Windows 7<br />
<br />
流れ<br />
<br />
1. ここ(<a href="http://ophcrack.sourceforge.net/download.php?type=livecd">http://ophcrack.sourceforge.net/download.php?type=livecd</a>)から<br />
「ophcrack-vista-livecd-3.6.0.iso」をダウンロード<br />
<br />
2. ここ(<a href="http://ophcrack.sourceforge.net/tables.php">http://ophcrack.sourceforge.net/tables.php</a>)から「Vista free」をダウンロード<br />
<br />
3. 1をbootableな形式でusbメモリに書き込む。2もusbメモリに書き込む(別のusbメモリにするか、別パーティションにするとよい)<br />
<br />
4. 3で作ったusbメモリで作業対象のPCをboot(BIOSでboot順序を変えておく)<br />
<br />
5. Xが起動せずにシェルが起動した場合はsuしてrootになっておく(公式サイトによれば、suのpasswordは"root")<br />
<br />
6. 2のvista freeのテーブルディレクトリをマウントしておく<br />
<br />
例)# mount /dev/sdb2s2 /mnt<br />
<br />
<br />
7. こんなコマンドを実行。おしまい<br />
<br />
例)# ophcrack -g -t /mnt/table -w /media/sda3/Windows/System32/config<br />
<br />
オプションの意味<br />
-g : GUIを起動しない<br />
-t : テーブルファイルの置き場を指定。今回は6でマウントした場所になっている<br />
-w:windowsのCドライブをマウントしているところを指定して、System32のconfigを指定<br />
<br />
まぁ、tableファイルいろいろあるけど、そんな長くないパスワードだったらVista Freeのテーブルだけで、5分ぐらいでいけると思う<br />
<br />
( ´ー`)フゥー...<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-60157712521401870792015-02-24T21:53:00.001+09:002015-02-24T21:53:37.934+09:00Rのチートシート<br />
RとRubyによるデータ解析入門<br />
<a href="http://www.amazon.co.jp/dp/4873116155">http://www.amazon.co.jp/dp/4873116155</a><br />
2章を参考に。<br />
<br />
<br />
<h2>
環境周り</h2>
<br />
<b>Rの導入(macportsで)</b><br />
sudo port install R<br />
<br />
<b>ファイルをコマンドラインから実行</b><br />
R --vanilla --slave < hoge.R<br />
<br />
--vanilla : Rがこれまでに保存していたオブジェクトを読み込まない<br />
--slave : 標準出力に表示を出さない<br />
<br />
<b>パッケージのインストール</b><br />
install.packages('tree')<br />
<br />
<b>インストール済パッケージ一覧</b><br />
installed.packages()<br />
<br />
<b>パッケージのアンインストール</b><br />
remove.packages('hoge')<br />
<br />
<b>パッケージの使用</b><br />
library(tree)<br />
<br />
<h2>
Rのシンタックス</h2>
<b>コメント</b><br />
#<br />
<br />
<b>代入演算子</b><br />
<br />
x <-1<br />
or<br />
1 -> x<br />
or<br />
mean(x = 1:10)<br />
<br />
=はトップレベルでのみ使うことができて、関数内で使った場合はスコープが関数内になる。<br />
x <- 1:10<br />
とすると関数外でも使うことができる。<br />
<br />
<b>関数定義</b><br />
<br />
my_function <- function(x,y) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
}<br />
<br />
<br />
関数作成時に初期値を設定するには下記のようにする<br />
<br />
my_function <- function(x,y=5) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
}<br />
<br />
<b>関数呼び出し</b><br />
<br />
my_function(1,2)<br />
<br />
引数に初期値がある場合は、すべての引数を指定しなくても良い<br />
<br />
my_function(1)<br />
<br />
<br />
<b>条件文とループ</b><br />
<br />
<br />
条件文の例<br />
<br />
x <- 10<br />
if (x > 20) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>print("x is greater than 20")<br />
} else {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>print(x is less than 20")<br />
}<br />
<br />
<b>ループ3つ</b><br />
<br />
repeat {}<br />
<br />
breakないと止まらないお<br />
<br />
<br />
while () {}<br />
<br />
for ( x in 1:10) {}<br />
<br />
<br />
<b>データ構造</b><br />
<br />
ベクトル(1次元配列)<br />
<br />
// 結合関数cでつくる<br />
> height <- c(1,2,3)<br />
<br />
// :演算子でつくる<br />
> 1:10<br />
<br />
// seq関数でつくる<br />
> seq(0,100,by=10)<br />
<br />
// ベクトルの長さを取る<br />
> length(height)<br />
<br />
// ベクトルにアクセス<br />
> length[1]<br />
<br />
ベクトルのインデックスは0からではなく、1からはじまる<br />
<br />
// 複数要素を取ることもできる<br />
> length[2,3]<br />
<br />
<br />
<b>リスト</b><br />
<br />
// key/value的な感じ<br />
> peater <- list(name='Peter', age=30, glasses=TRUE)<br />
<br />
// 参照は、位置もしくは、名前<br />
> peater[1]<br />
<br />
> peater['name']<br />
<br />
// exact=FALSEにすると、名前の部分一致でもアリらしい<br />
> petaer['na',exact=FALSE]<br />
<br />
<br />
<b>行例</b><br />
<br />
> m <- matrix(1:20,nrow=5,ncol=4)<br />
<br />
// デフォルトは列方向につくられるので、行方向につくりたいとき<br />
> m <- matrix(1:20,nrow=5,ncol=4,byrow=TRUE)<br />
<br />
<br />
<b>アクセス</b><br />
<br />
// 10番目、の意<br />
m[10]<br />
<br />
// 位置<br />
m[3,4]<br />
<br />
// 行列3~5行目,2~3列目<br />
m[3:5,2:3]<br />
<br />
<br />
<b>配列</b><br />
<br />
ベクトルを2次元以上へ拡張したもの。array()で作成する。<br />
行列を複数つくる感じ<br />
<br />
> a <- array(1:24,c(2,3,4))<br />
<br />
<br />
<b>ファクタ</b><br />
<br />
値には、名義値、順序値、連続値がある。<br />
名義値と順序値をつくりたいためのファクタ。<br />
<br />
<br />
> colors <- c('green', 'red', 'blue')<br />
> factor(colors)<br />
[1] green red blue<br />
Levels: blue green red<br />
<br />
デフォルトではabc順。factor作成時に順序指定することもできる。<br />
> factor(colors, order=TRUE, levels=colors)<br />
<br />
<br />
<b>データフレーム</b><br />
<br />
名前のついた複数のベクトルからなるリスト<br />
<br />
ちょい書きかけ...<br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-43422487381654054192015-02-22T16:35:00.004+09:002015-02-24T21:31:53.533+09:00MacOSXでの複数Java環境の管理yosemiteにて<br />
<br />
<h2>
インストールされているJava一覧</h2>
<br />
<pre class="prettyprint">$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2): 1.8.0_25, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home 1.7.0_40, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
</pre>
<br />
<h2>
いまのJavaHome</h2>
<pre class="prettyprint">$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
</pre>
<h2>
</h2>
<h2>
余談</h2>
JavaHomeの切り替えなんだけど、<br />
<br />
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_25`
<br />
<br />
みたいなversion指定で切り替えられるんだけど、個人的には、<br />
<br />
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home /usr/local/java8<br />
<br />
みたいにソフトリンクのほうが、<br />
共存させててるときにわかりやすいなのでなんとなくそうしてるAnonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-36934190051614044132015-02-20T19:40:00.004+09:002015-02-25T10:01:20.060+09:00MySQLでデッドロック検知したときに、とりあえず見るところお手本はこちら。<br />
<a href="http://d.hatena.ne.jp/sh2/20090618">http://d.hatena.ne.jp/sh2/20090618</a><br />
<br />
これはただの自分用のメモです。<br />
5.5 later想定<br />
<br />
<b>デットロックが監視にひっかかったら!!</b><br />
<br />
<br />
<ul>
<li>心を落ち着かせる</li>
<li>show full process list;</li>
<ul>
<li>今流れてるクエリを眺める</li>
</ul>
<li>show engine innodb status\G</li>
<ul>
<li>LATEST DETECTED DEADLOCKのあたりを見よう</li>
</ul>
<li>select * from information_schema.INNODB_TRX order by trx_id;</li>
<ul>
<li>limitとかwhereとか適当に効かせて</li>
<li>ロックを引き起こしてる輩:information_schema.INNODB_LOCKSをみる</li>
<li>ロックで待たされちゃってる輩:information_schema.INNODB_LOCK_WAITS</li>
</ul>
<li>( ´ー`)フゥー...</li>
</ul>
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-70343841021681926282015-02-06T13:50:00.001+09:002015-02-06T13:57:39.438+09:002015年やること1月中、いろんなことを調べたり、試したりしていて、今年やることを(今更)決めたので、残しておこうと思う。これはただのチラ裏。<br />
<div>
<div>
<br /></div>
<div>
いろいろ考えていたのは、今年というか、30代のテーマどうしようかなーと思っているのがあって、なかなかもやもやしていたのだった。</div>
<div>
<br /></div>
<div>
やることってか、学ぼうリストみたいな感じですね(言ったからにはやろうというか)</div>
<div>
<br /></div>
<h2>
今年やること</h2>
<div>
<br /></div>
<h3>
英語</h3>
<div>
いい加減Google翻訳に頼る生活辞めたい。普通にTOEICの勉強しようと思う。</div>
<div>
<br /></div>
<h3>
数学(統計)</h3>
<div>
ECサイトにいることもあって、手元にデータなんかいろいろあるので、いっちょセクシィなアウトプットを目指す。</div>
<div>
<br /></div>
<h3>
Ruby</h3>
<div>
仕事は相変わらずJavaを書いてる気がするんだけど、趣味のものはなるべくRuby使おうかな、と。もう少し慣れたい。Rubyで仕事をしたいかというと特にそういうのもないんだけど。</div>
<div>
<br /></div>
<h3>
関数型言語(Haskell ?) </h3>
<div>
最近、情報が多いのがHaskellなので、これかなー</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
今年やるかも?</h2>
<div>
<br /></div>
<h3>
Go</h3>
<div>
swiftはたぶんやらない</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
ほか、仕事で必要になった知識は別途是是非でやっていくということで。<br />
<br /></div>
</div>
<div>
人生上の大きなイベントが昨年から今年にかけて多いので、勉強の時間取るのをうまくやっていかないとね。</div>
<div>
<br /></div>
<div>
おしまい</div>
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-87454541359607909212015-02-02T20:49:00.000+09:002015-02-02T22:26:33.333+09:00固定長リストへ循環アクセスするサンプルタイトルまま<br />
<br />
<br />
<br />
コード
<pre class="prettyprint">
package hoge;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class TestTest {
@Test
public void test1() {
List<String> list = Arrays.asList("a","b","c","d","e","f","g");
for(int i=0;i< 10;i++) {
System.out.println(list.get(i % list.size()));
}
}
}
</pre>
実行結果
<pre class="prettyprint">
a
b
c
d
e
f
g
a
b
c
</pre>Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-81189032109787677922015-01-16T21:10:00.000+09:002015-01-17T00:04:16.767+09:00【補足あり】JavaCVでPixel操作サンプルさて、昨日つくった環境で<br />
<a href="http://blogger.shase.info/2015/01/javacv.html">http://blogger.shase.info/2015/01/javacv.html</a><br />
公式のサンプル(といっても結局c++なんだけど…)っぽいことをしてみる。<br />
<br />
<a href="https://code.google.com/p/javacv/wiki/OpenCV2_Cookbook_Examples_Chapter_2#Accessing_Pixel_Values">https://code.google.com/p/javacv/wiki/OpenCV2_Cookbook_Examples_Chapter_2#Accessing_Pixel_Values</a><br />
ここにある、Accessing Pixel Values ってやつ。<br />
<br />
元画像<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-gexaU7UC70A/VLj9FRG3FDI/AAAAAAAAACY/hLUEsw_n9tw/s1600/abc.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-gexaU7UC70A/VLj9FRG3FDI/AAAAAAAAACY/hLUEsw_n9tw/s1600/abc.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
加工後</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-OOVrowvKU_E/VLj9FSUvmrI/AAAAAAAAACc/Wr0j-kz-_nA/s1600/abc2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-OOVrowvKU_E/VLj9FSUvmrI/AAAAAAAAACc/Wr0j-kz-_nA/s1600/abc2.jpg" height="240" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
コード</div>
<pre class="prettyprint">package hoge;
import org.junit.Test;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_highgui.*;
public class HogeTest {
@Test
public void test1() {
IplImage image = cvLoadImage("abc.jpg");
CvMat cvMat = new CvMat();
cvGetMat(image, cvMat);
int div = 100;
int nbElements = cvMat.rows() * cvMat.cols() * cvMat.channels();
for (int i = 0; i < nbElements; i++) {
double v = (int) cvMat.get(i);
double newV = v / div * div + div / 2;
cvMat.put(i, newV);
}
IplImage image2 = new IplImage(cvMat);
cvSaveImage("abc2.jpg", image2);
cvReleaseImage(image);
}
}
</pre>
<br />
CvMatのgetとputがduplicatedってどーゆーことー ?_?
<br />
<br />
<br />
【補足】<br />
get,putの代わりにcvGet2Dとか、cvSet2Dとかあるのでこれでよいですね。<br />
と、ここまで、やって、OpenCV使うにしてもJavaCVいろいろ微妙なんじゃないかな、と思い始めた俺ががいる。Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0tag:blogger.com,1999:blog-5852516715916700609.post-64589428129855776482015-01-16T00:19:00.000+09:002015-01-16T16:25:58.800+09:00MacOSでJavaCVが動かなくて悲しい思いをした環境は、Mac OS<br />
<br />
OpenCVやりたいー。<br />
Javaだから、JavaCV使って見ようと思って、pom.xmlに追加するじゃないですか。<br />
<br />
<a href="https://github.com/bytedeco/javacv">https://github.com/bytedeco/javacv</a><br />
<br />
<pre class="prettyprint"> <dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>0.10</version>
</dependency></pre>
<br />
公式サイトの通り。<br />
で、公式サイトの通りテストプログラムを書いてみる。<br />
<br />
<br />
<pre class="prettyprint">import org.junit.Test;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_highgui.*;
public class HogeTest {
@Test
public void test1() {
IplImage image = cvLoadImage("/Users/hoge.jpg");
if (image != null) {
cvSmooth(image, image);
cvSaveImage("/Users/hoge2.jpg", image);
cvReleaseImage(image);
}
}
}
</pre>
でもこんなエラーになるわけです。
<br />
<pre class="prettyprint">java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
at org.bytedeco.javacpp.Loader.load(Loader.java:410)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.bytedeco.javacpp.Loader.load(Loader.java:385)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.opencv_highgui.<clinit>(opencv_highgui.java:13)
at jp.co.cyberagent.dokusho.service.HogeTest.test1(HogeTest.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_core in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
at org.bytedeco.javacpp.Loader.load(Loader.java:401)
... 31 more
</clinit></clinit></pre>
<br />
悲しい。
結論から言うと、コイツ、いろんなjarが足りないらしい。ひどい!
で、それらの足りないものを補ってくれるものが公開されてます。
<br />
<br />
ずばりここに書いてあった。<br />
<br />
Making Computer Vision actually work<br />
<a href="http://marellbox.marell.se/?p=687">http://marellbox.marell.se/?p=687</a><br />
<br />
で、書いてある回避用リポジトリをpom.xmlに追加すると動いたー。<br />
<br />
<br />
<pre class="prettyprint"><dependency>
<groupid>org.bytedeco</groupid>
<artifactid>javacv</artifactid>
<version>0.10</version>
</dependency>
<dependency>
<groupid>se.marell</groupid>
<artifactid>opencv-macosx-x86_64</artifactid>
<version>2.4.10-0.10</version>
<scope>runtime</scope>
</dependency>
...
<repository>
<id>marell</id>
<url>http://marell.se/nexus/content/repositories/releases/</url>
</repository></pre>
<br />
( ´ー`)フゥー...
Anonymoushttp://www.blogger.com/profile/11429181140905001782noreply@blogger.com0