投稿

2015の投稿を表示しています

AmazonLinuxにErlang+Elixir+Phoenixをインストールしてみた

仕事で Phoenixという、Elixirというプログラム言語で作られたWebアプリケーションフレームワークの構築検証した時のメモです。
Elixirは、Erlangという早くて 低いレイヤ向けのプログラム言語に、Ruby風の着ぐるみ(と言っていいのかわかりませんが…)を着せて、Rubyができるエンジニアが低い学習コストで高速なアプリを作れるように開発された、今時のプログラム言語です。
とりあえず今回は、サンプル画面が動いた!というレベルです。
ここからデプロイだったりチューニングだったり運用だったりを整えていかないといけないのですが、その辺はまだキャッチアップできていないので、出来次第ブログに書ければと思います。
感想としては、登場人物(プログラム)が多くて、最初はインストールするのがすごくめんどくさく感じます。 brunch.io という html/css のファイル管理ツールもつかっているため、Node.jsとかもインストールしなければいけません。

EPELリポジトリのインストール後述する inotifywait をインストールするために、EPELリポジトリを追加します。
sudo yum install epel-release Gitのインストールnode.jsのバージョン管理ツールであるnvmをインストールするために、Gitをインストールします。
sudo yum install git Erlang被依存パッケージのインストールsudo yum install ncurses ncurses-devel openssl openssl-devel gcc-c++ unixODBC unixODBC-devel fop java-1.6.0-openjdk-devel Erlangのインストールwget http://www.erlang.org/download/otp_src_18.0.tar.gz tar xvzf otp_src_18.0.tar.gz cd otp_src_18.0 ./configure 以下は出力されても無視します。GUI開発用とのことで、今回は利用しないためです。 ********************************************************************* ****************…

プログラミング初心者がGoに入門しようとしてサンプルアプリのテキストwikiを動かすまで

この記事は Go その2 Advent Calendar 2015 の5日目の記事です。

4日目:golangでセンサーデータをMQTTで受けてloggerする 6日目:glide - パッケージ管理のお困りの方へ -

日付変更と共に公開できず、しかも内容も他の方の記事に比べてショボくて申し訳ありませんが、タイトルの通りサンプルとしてWeb上に公開されているテキストwikiが動くまでにやったことの記録です。

動機 同僚のリードプログラマがGo言語を使ってシステムに機能追加を行いました。
私はサーバ構築をサポートしましたが、ミドルウェアやフレームワークなど、まだまだ彼にGo言語プロダクトの責任が偏っています。そしてそもそもGoのソースコードは1ミリもわかりません…。
今後はチームとしてスマートに動けるように、責任を平準化し、ソースコードや開発手法について議論を深めたいので、私もGoを学んでみようと思いました。
成果物 結論としてはたった2ファイル
https://github.com/TearTheSky/golangStudy/blob/master/textwiki/textwiki.go
https://github.com/TearTheSky/dotfiles/blob/master/.vimrc

textwiki.go というgoプログラムができました。
これをWebサーバに持って行って起動し、Webサーバへのアクセスを127.0.0.1:9000に渡すように設定変更してあげればテキストwikiが利用できました。
Webサーバにはnginxを使っています。
ローカルでもできるやろそれ、と言われそう(実際言われました)が、netライブラリあたりが原因なのか、うまく使えなかったので、ローカルで動く版も作りたいと思います…。



やったこと Goのインストール 最近はMacを使っています。Macの場合はhomebrewですぐにGoをインストールして環境構築を始めることができます。
brew install go で、Go1.4がインストールされ、brew update と brew upgrade を行うと1.5にバージョンアップしました。
安易にbrew upgrade していいのかちょっと怪しいですが、せっかく最新になったので使っていこうと思います。

NeoBundl…

filemeal.com で好き勝手にリストを作ってみた

イメージ
この記事は、filemeal Advent Calendar 2015 の1日目の記事です。

filemealとは? フォローしている @ohashimasaki さんが開発したWebサービス「filemeal」を使ってみました。
filemealは「一般の(非Techな)人々はウェブサイトやデータベースを意識していないし、意識しなくて良いようなデータ編集・公開プラットフォームがあるべき」という発想で開発されたようです。
(たしか開発中にそんな感じのことを呟いてたような…)

何ができるの? まず、今回のブログを書くにあたって私が作ってみたリストがこちらです。
コーヒーの淹れ方について簡単にまとめてみました。
ブログなどに埋め込むこともできるようですので、下に埋め込んでみます。


使ってみてわかったメリットを簡単に紹介すると、
すぐにリストを作って公開できるそれなりにオシャレな見た目のページがすぐに公開できる入れ子の作り方さえ覚えれば自分だけのオリジナルWikiが簡単に作れるWikipediaのように公共性や中立性のないドキュメントを書いて怒られることがない作ったリストをiframeタグで埋め込んだり、プログラムで外部から呼び出したりできる といった点があります。

使い方 アカウント登録はしていたものの、使い方がイマイチわかっていなかったので、せっかくだしスクリーンショットをとってゆっくり覚えていきたいと思いました。

ということで、以下使い方の簡単な説明になります。

まず、アカウント登録してログインしてみると、下のようなページになります。


これだけじゃなにができるのかよくわかりません…とりあえず自分のアイコンを変更してみます。
アイコンの変更は、右上の「設定」を押すと行えます。


ついでに背景色も変更してみました。落ち着いた色が多くて良いですね。個人的には黒板のような深い緑が欲しいです先生…。でもこの色も好き。


さて、アイコンを変更したら早速リストを作ってみましょう。とりあえず右下の「リストを作成する」をクリックして、名前を入力します。今回はなんとなく「コーヒーの淹れ方」にしました。


するとこんな感じで「コーヒーの淹れ方」ができます。
できたら、それをクリックしてみてください。


クリックするとこんな風に「コーヒーの淹れ方」のページに進むことができます。
ここにはまだなにもありませ…

#ISUCON 5に参加して普通に予選敗退しましたが楽しかったです

チーム名「恵比寿ローラーコラボ」でISUCON5に参加しました。

ISUCONは全員が初めてで、GCPも全員が初めてだったので、はっきり言ってどうなるかわからない、すごく情けない結果で終わるのではないか、ということで、記念受験のつもりで気楽にいこう、という意識と、お昼は半額のドミノピザにしようという2つのコンセンサスだけ得た上で臨みました。

結果としてはベストスコア 8387 、最終スコア 7806でベスト20入れず…でした。
しかしもともと1000未満くらいのスコアで終わってしまうのではと思っていたので、打ち上げでHUBで飲んでいた時には、「思ったよりスコア取れてよかったよね」とか、「次はランク20以内とかに入りたいね」なんていうかなり前向きな言葉が出てきて気持ち良くビールをいただくことができました。

こんな楽しいイベントを企画していただき、実装していただいた運営者の皆様には深くお礼申し上げます。とても楽しかったし、勉強になりました。ありがとうございました。

スコア遷移
score 状況 546 初期状態で起動されてるrubyのアプリがベンチマークに通る 702 Goのアプリに変えてベンチマーク 983 ググりながらDBにインデックスを貼る。この時点ではみなさん初回ベンチマーク通過に苦戦しておりなんと暫定4位!W 1042 MySQLにバッファプールの設定などを追加して再起動。この時点で12時すぎ。みんなでドミノピザを食べる。このときたしがギリギリ19位。 1030 プログラム方面の解析でまだ具体的な変更を出せないのでMySQL周りを引き続きいじるも結果でず 1008 同上。 1041 同上。 1031 同上。この辺りから(たいしてスキルもないのに)ミドルのチューニングじゃもう稼げないかななどと思い始める。 0 インデックス貼り直し中にベンチマークしてしまいCPUが耐えられずfail 7 アプリの改修がうまくいっておらずfail 7 思いついた案がことごとくfail 7 つらい 1114 そんなさなかNginxの設定を見直してハイスコア更新。希望の光がほんのり戻る。15時くらい。このころはもう20位が70…

AmazonLinuxにZabbix2.4をPostgreSQLを使ってインストール

最近は業務でAWSをよく使っており、AmazonLinuxを操作することが増えてきました。 Zabbixは業務で使う可能性が出てきたので、模索しながらインストール手順をまとめました。必要最低限レベルですが、なんとか自分で構築したZabbixにログインして管理画面を拝むことができました。 使ったAMIは amzn-ami-hvm-2015.03.0.x86_64-gp2 (ami-cbf90ecb) です。
AmazonLinuxを使う時は、RHELもしくはCentOSの6だと思って色々適用してみるとよさそうですね、ベースとしてCentOSを使っているということですし。

参考にさせていただいたページBuena Vista de la Tecnología: Zabbix2.2のインストール with PostgreSQLhttp://daiti0804.blogspot.com/2014/02/zabbix22-with-postgresql.htmlAmazon LinuxにZabbix2.0.9をインストールしてみた | Developers.IOhttp://dev.classmethod.jp/cloud/aws/zabbix2_0_9-on-amazon-linux/4 Installation from sources https://www.zabbix.com/documentation/2.4/manual/installation/install
Zabbix以外の必要プログラムのインストールシステム系プログラムのアップデートsudo yum update -y Apacheのインストールsudo yum install -y httpd24 PostgreSQLのインストールsudo yum install -y postgresql93 postgresql93-server postgresql93-devel postgresql-93-libs
Zabbixのインストールsudo rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
sudo yum install -y zabbix-server-pgsql z…

すっごい遅くなったけど、@opera_jp さんから コラプシブルボトル をいただきました。

イメージ
一ヶ月ぐらい前に、 @opera_jp さんが、こんなツイートをしていたので、勢いでおねだりしてみました。


http://t.co/rTJQjxEHTF blog 書きました。コラプシブル・ウォーター・ボトルと言うそうです。@opera_jp を付けてツイートして下さればダイレクトメッセージで詳細をおうかがいします。 よろしくお願いします。 pic.twitter.com/BCIbZjanC5 — Opera Software Japan (@opera_jp) 2015, 5月 28

そしたら、ちゃんと送っていただけました!すばらしい!



膨らませると、500ml弱ぐらいは入るんじゃないかな?という程度になって、自立しました。
自立するっていいですね。
最初に膨らませるのに、結構肺活量がいりました…w

20個希望して8個いただきました。社内で欲しいと挙手してくれた方に優先して配りました。
何気に非IT系の女性社員にウケが良かったです。赤いボトルは結構アクティブ感があっておしゃれかもしれません。

で、肝心のOperaブラウザですが、ボトルの応募を出してからすぐに仕事用のMacと自分のAndroidに入れてみました。
Macからだとニコニコ動画が見れない(フラッシュプレイヤーが古いと言われて動画が再生できない)ため、メイン使いはちょっとあきらめて、サブブラウザとして使うことにしました。

一方スマートフォンの場合だと、動画を見たい場合は専用アプリを使うので、その辺気になりません。メインのブラウザにして、サクサクブラウジングしています。

8個は全部社内で配ってしまったので、もしあまってたらまた欲しいですw
白ワインでも入れて飲みながら河川敷をだらだら歩きたい…w
なんか思いついたらスマートフォンからOperaを開いて検索したり。

そう思うと、早く梅雨が明けてほしいですね!



CentOS7で特定のプロセスを全部消す

お久しぶりでございます。

先日、CentOS7で、ある時間になったら特定のプロセスを全部削除したいというタスクをこなすことになりました。特定のプロセスとは、今回の場合はwgetです。
バックアップ的な理由で毎日wgetをサーバで実行しているのですが、万が一に備えて、朝の業務開始前までに終わっていないプロセスがあったら、それを削除して中断することにしました。

killコマンドで消せることぐらいしか理解できていなかったので、以下のようにpsコマンドでプロセスを探してパイプでつないでkillすることを思いつきました。



ps -e | grep 任意のコマンド | awk '{system(kill -9 $1)}' 便利だなー
— TearTheSky (@TearTheSky) 2015, 3月 23


するとこんなご指導が。


@TearTheSky その使い方でしたらkillallが使えませんでしょうか
— 塩味 プリン (@sioazike) 2015, 3月 23

"killall 任意のコマンド" だけでいいのか
— TearTheSky (@TearTheSky) 2015, 3月 23
リプライいただいたように、Linuxにはkillallというありがたいコマンドがあるため、無駄にパイプをつながなくても、 killall プロセス名 で、特定の名前のプロセスをすべて削除できるのでした。

ということで、さっそく実験。しかし、コマンドが無いと言われてしまいました…。

あれ、CentOS7にKillallって無いの…?

こういうのはきっとすでに先人が解決してくれているに違いないと思ってググってみました。

Centos 7, Where is killall? : CentOS http://t.co/WhlGCoJCEt あれ、CentOS7にkillallって無い?
— TearTheSky (@TearTheSky) 2015, 3月 23
あ、とりあえずデフォでは使えないんですね…?
killallは、psmisc という、プロセスに関するコマンド群の追加パッケージとしてスタメンから左遷されちゃったみたいです。

なので、yum install psmisc をして psmisc をインストールすると使えるようになります。

DNSの移行方法について

お仕事の話ですが、最近、DNSを自社で保持しているBINDから、Amazon Web Services の Route53 にゾーン情報を移行しました。DNSに関する知識がほとんど無いところからやったので色々調べまくったりして大変でした。
その上で分かったDNSサーバの移行(ゾーン情報の移行)の方法について、今後の自分のためにメモを残しておきたいと思います。 覚えておきたい基礎知識 下記のようなサイトを見て学習しました。まずは「○○レコードってなんぞや?」というところを理解する必要があります。その次に、「じゃあ、具体的にどういう流れで移行すればいいんだ?」というところを調べていきます。
SOAレコードには何が記述されている? [[http://www.atmarkit.co.jp/fnetwork/dnstips/014.html]]主なDNSレコードの種類 [[http://www.atmarkit.co.jp/fnetwork/rensai/dns01/dns-record.html]]DNSサーバーの引っ越し~トラブル発生を未然に防ぐ [[http://jprs.jp/related-info/guide/019.pdf]]ネームサーバ移行 ~虎の巻~ [[http://qiita.com/YamaguchiRei/items/280eb9cdd75842c418bd]]LT資料 (夏のDNS祭り 2014 ~入門セミナ&ハンズオン~) [[http://qiita.com/tukiyo3/items/18411315a05b80e574bc]]
1.移行元ゾーンの様々なTTLを怒られない程度に短くする(移行2日前など) まずは自社のBIND内のゾーンの色んなTTLを可能な限り短くします。
AレコードやNSレコードはもちろんのこと、SOAレコードのTTLも短くしてください。
目安としては、AレコードやNSレコードは300秒程度まで減らしてください。
SOAレコードは複数種類のTTLがありますが、それぞれ10分の1程度まで減らします。
個体差はあると思いますが、1日もあれば短くなったTTLで各DNSサーバの情報が書き換わっている(更新した情報が浸透できている)と思いますので、変更作業実施予定日の2日前ぐらいにはやっておきたいところです。 変更値の目安(これくらいまで短…

2014年の個人的な目標の達成度合いを確認してみた。

あけましておめでとうございます。
皆様にとって2014年はいかがでしたでしょうか?
私にとってはとても荒波にもまれた一年でした。いやー辛かった!
正直死ぬかと思いました。でも死にませんでした。
今年も精一杯頑張ろうと思います。
今年もよろしくお願いします。

もしよろしければ、元旦に投げ銭をお願いします!
Kindleでさくっと見れる写真集になっています。
内容としてはちょっと悲しい感じの、寂れた地方の写真集なのですが、ちょっと大きな志をお持ちの方にとっては刺激になる内容だと思います。「地方はこんなに寂れているのか!再生しなければ!」的な。あと海綺麗です。




ということで、新年最初の投稿は、去年の目標の結果を確認してみましたという内容です。
相変わらず目標(というか希望)を書くだけ書いて定期チェックとかしていない模様。


No目標結果コメント1月に1回この目標の進捗状況を確認する✕確認していなかった。212kg痩せろ✕夏は痩せてたんだけど今は去年の正月と同じぐらいまでに戻っていてまずい。3入院しない○入院しなかった。4視力悪化させない○極端に悪くなってメガネをかけたりはしなかった。現状維持できたと言える。5月間残業時間平均30時間位内✕無理6ノリで仕事せずに帰る○転職してからは帰ることができていたけど、年末はちょっとノリで仕事してた。7技術書を月に1冊以上読む○Google Analyticsなど、ちょっと軽めのものもあったけど、年に12冊は読むことが出来た。8一年で40冊以上本を読む△27冊でした。一応記録更新。9年始と年末で積み本の数を比較する✕比較していなかったので比較する10Androidアプリを完成させる✕やってない11GooglePlayに開発者アカウント開設してアプリ公開✕やってない12Kindleで技術書を出す✕やってない13IT技術系スライドを1個以上うp✕やってない14自分のvim設定ファイルを作って管理する✕クライアントエディタとしてVim使ってない。15WindowsServer2012R2のブログ記事20個✕Windows Server 触らなくなったから書いてない16PowerShellのブログ記事10個✕書いてない17windowsでメールサーバを立てられるようになる✕できた18Linuxでメールサーバを立てられるようになる○できた19sys…