2015年12月29日火曜日

2015年の簡単な振り返り

2015年もお世話になりました。
shaseです。
仕事が納まっていませんが、簡単に振り返りを。

新年の抱負のほうは、別の所に書こうと思います。
というのも、bloggerから別のところに引っ越そうと思うからです。

今年を振り返ると、プライベートはほぼ結婚式、ハネムーン、引っ越し、それらの準備で忙殺されました。

仕事のほうは、マンガコンテンツ販売の為のサービス開発から、マンガコンテンツ供給の為のサービス開発に変化がありました。

技術的にはあまり見るべきものはなく、Goを少し仕事で使い始めたのと、Javaのバージョンを8にあげたり、AWSを少し使うようになったり、ぐらいでしょうか。

英語や、数学があまりできなかったな、という反省などもあります。

最後ですが、google bloggerにはお世話になりました。
また、どこかで宜しくお願いします。

2015年12月6日日曜日

CentOS6系に最新のgitを入れる

// 古いgitを入れる
sudo yum install git -y

cd /tmp
git clone git://git.kernel.org/pub/scm/git/git.git
sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker

// 古いgitを消しておく
sudo yum -y remove git

cd git
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install

// おわり
/usr/local/bin/git -version

まぁ、わざわざ最初のgit cloneのためにgit入れるのアホらしい気もしないでもない\(-o-)/

2015年11月21日土曜日

CentOS 6.6にruby 2.2をsoftwarecollections.orgから入れる

手順は、softwarecollections.orgに書いてるけどね。

// software collectionsのutilを入れる
$ sudo yum install scl-utils -y

// リポジトリのrpmをとってくる
// ここに書いてある:https://www.softwarecollections.org/en/scls/rhscl/rh-ruby22/
$ wget https://www.softwarecollections.org/en/scls/rhscl/rh-ruby22/epel-6-x86_64/download/rhscl-rh-ruby22-epel-6-x86_64.noarch.rpm

// リポジトリのパッケージ入れる
$ yum install rhscl-rh-ruby22-*.noarch.rpm -y

// ruby入れる
$ sudo yum install rh-ruby22 -y

// rh-ruby22を有効化
$ sudo scl enable rh-ruby22 bash

// ruby version見てみる
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]

おしまい\(-o-)/

追記

なんかエラーでた

// 別Userにスイッチして実行
$ /opt/rh/rh-ruby22/root/usr/bin/ruby
/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

なんかこれと同じ現象
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1280344

とりあえず、scl enable rh-ruby22 'ruby -v' とかしとけば動くが...

CentOS 6.6にJenkins入れる

// OpenJDK 8のinstall
$ sudo yum install java-1.8.0-openjdk -y

// jenkinsのリポジトリ追加
$ wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

// jenkinsのインストール
$ sudo yum install jenkins -y

// jenkins起動
$ sudo service start jenkins

// インストールしたマシンにブラウザでアクセス
http://host:8080/

おしまい\(-o-)/

2015年10月21日水曜日

mtr (My traceroute)で遊ぼう

むかーし、Windows使いのころ、お世話になったコマンドに、pathpingというコマンドがありまして、ネットワーク障害の時など多用しておりました(イントラのネットワークがしょぼい職場でした)。

さて、じゃあMac(というか、UNIX系)だと、何がpathpingにあたるかというと、mtrというコマンドが実はありまして、homebrewを使ってる人は、

$ brew install mtr

これだけです。(もちろんLinuxにもあります)。

詳しい説明は、英語版wikipediaに(予想外に)ありましたが、要するに、高機能なping + tracerouteみたいなものです。

たとえばこんな感じ

$ sudo /usr/local/Cellar/mtr/0.86/sbin/mtr --report 8.8.8.8

Start: Wed Oct 21 21:43:19 2015
HOST: hostname                     Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- x.x.x.x                           10.0%    10    1.4   3.2   1.4  11.9   3.4
(略)
 11.|-- google-public-dns-a.googl  0.0%    10    3.5   3.9   3.5   6.4   0.8

要するにicmpを利用して、見た目分かりやすくレイテンシを表示してくれるツールです。
(一応書いとくと、tracertと一緒でUDPモードもあります)

manを見るとわかりますが、オプションも少ないし、とりあえず、installして遊んでみるとよいかと(^v^)


2015年10月14日水曜日

shでヒアドキュメントを変数に代入

catをかませてみる。

QUERY=`cat <<'EOF'
select * from hoge_table
where id = 1
;
EOF`

まぁ、bash でいいじゃんという説も...。

2015年9月23日水曜日

JavaでProgram Arguments(Command Line Arguments)を取り出す

javaのアプリケーションなんかを実行する際に、

java -jar foobar.jar --arg1=true --arg2=false

なんてことをすることはよくあると思うんですが、arg1の値を使いたいとかのときは、
mainメソッドからだと、当然、public static void main(String.. args) {}のargsから取れるわけです。

じゃあ、mainメソッド以外から取り出すときに、よい取り出し方ってどうなんだろうと小一時間探してみたんですが、イマイチ見つからず、結果的にこんな感じで取り出してみました。

String command = System.getProperty("sun.java.command");
String[] args = command.split(" ", 0);


ほかにあったりしないのかな ( ´ー`)フゥー...

追記

ちなみに、Springの場合だと、

ConfigurableApplicationContext ctx = //どこかからapplicationContext取得
ConfigurableEnvironment ce = ctx.getEnvironment();
String arg = ce.getProperty("arg1");

とかでもいけます。