2014/12/28

ブログで振り返る2014年の俺

1月

1月1日付けを持って転職し、1月2日に単身赴任先のアパートに移動。到着したは良いもののガスは開通しねーし布団も電気もねーしで、カプセルホテルに宿泊しつつ家財道具を整える年明けとなった。この単身赴任は6月まで6ヶ月間続くことになる。1ヶ月10万(家賃光熱費込み)という限られた予算で暮らすのは相当厳しく、救援物資に頼って生きていた。その節はみなさん本当にありがとうございました。
1月はひたすらに新しい職場、新しい仕事に慣れることを念頭に暮らしていたので、特に遊ぶことも無く過ごしていた。1月25日にはSAアソシエイトに合格。久しぶりのIT資格取得だった。

2月

単身赴任2ヶ月目、ようやっと余裕が出てきて、勉強会に参加したり遊びに行ったり出来始めた。バレンタインデーには妻と長女からチョコレートが届くサプライズも。本当に嬉しかった。
とは言えまだまだ仕事に慣れず、多忙な毎日が続いていて、あっという間に終わってしまた感がある。ストレスは酒とランニングで解消してた。

3月

単身赴任3ヶ月目。なぜか誕生日に暗いポエムを書いており、多分寂しかったんだと思う。妻に誕生日プレゼントとしてヘッドホンを買ってもらい、これは今も愛用してる。
相変わらず仕事は多忙だったけど、JAWS DAYS 2014に参加して大量のレポート記事を書いたり、雑誌のインタビューでちょっと名前が載ったり、やっと慣れてきた感じ。新しい環境で自分のペースで仕事できるようになるには、やっぱり3ヶ月くらい必要だなと実感した。

4月

単身赴任4ヶ月目。自社のフットサル部に入部した。ここから定期的にフットサルするようになり、だいぶ楽しかった。
また生まれて初めて人間ドッグを受診し、えー、辛かったです。だいぶ。
それと、2月から書き始めていた「アジャイルデータサイエンス」の付録が書籍化された。ただの付録なんだけど、それでもオライリーの書籍に自分の名前が載るのは感慨深いというか、すごいなぁと思う。転職しなかったらこんな経験をすることは無かっただろうな。

5月

単身赴任5ヶ月目で、東京生活もラストスパートということで、よく遊んだ(1,2,3,4)。また札幌に戻った後のことを考えてサッカー4級審判を取得。会社ブログも11本書いたし、いろんな形で精力的に活動した一ヶ月だったと思う。
ゴールデンウィークは1週間帰省し、久しぶりに家族とゆっくり過ごせた。

6月

単身赴任ラスト!オフィスの立ち上げで予定より早く札幌に帰ってきた。家族と一緒い居られるというのは本当に幸せで大事なことだと思う。でも6ヶ月間の東京単身赴任生活でたくさんの事を学んだし、自分の考え方とか生き方が変わったし、とても良かった。寂しかったけどな!
札幌に戻ってきてからオフィス立ち上げの作業で忙殺されていた。

7月

無事に札幌オフィスが開設。東京本社とロケーションが離れるのでどうなることか...と思ったけど、別に大きな問題も無く順調でした。
それと京都出張があったので、仕事ついでに遊んできた。夏の京都は暑かったけど楽しかった。

8月

ぶっちゃけRSR楽しかったしか記憶がない。

9月

息子のサッカー少年団のコーチを始めることにした。ついでにフットサル4級審判を取得。
左足首をがっつり怪我してしばらく走ることもままならず、ここからだいぶ太った。今も+4kgをキープしており、なんとかせねばならぬ。
小樽酒商たかのを知ったのもこの時期。その後 月イチくらいで行ってる。本当にいい店である。

10月

来年中学生になる長男のためにクラブチームのセレクションを受ける、が、2敗。結果的に12月になってから別のクラブチームの入団が決定した。中学生になってからも頑張ってね。
そしてまさかの妻は俺の嫁をアップデート
Choiの新系列店が出来て、その後くんせいChoiは定期的に行ってる。

11月

re:Invent2014に参加(1,2,3,4,5,6)。初の海外は人生観変わる経験だった。マジおすすめ。
日帰り十勝出張して、株式会社ファームノートさんのオフィスにお邪魔してきた。ファームノートさん、応援してます。
SysOpsアソシエイトに合格。Devアソシエイトが残っているので、東京出張時にでも取得したい。

12月

Techmix Hokkaido 2014を開催。ノリでやってみただけのイベントなんだけどたくさんの人に参加してもらえたし、喜んでもらえたみたいなので、良かったと思う。特に次回開催は考えていなかったんだけど、またやってもいいかなって気分。
iPhone6が出たというのにiPhone5sに乗り換え。しかし全く不満がない。十分だと思う。

最後に



How Google WorksHow Google Works
エリック・シュミット,ジョナサン・ローゼンバーグ,アラン・イーグル,ラリー・ペイジ

日本経済新聞出版社
売り上げランキング : 31

Amazonで詳しく見る by AZlink

2014/12/26

株式会社インフィニットループさんの忘年会に参加してきた

ということで、タダ酒に釣られて株式会社インフィニットループさんの忘年会に参加してきました。ILさんありがとうございました。

数人の知り合いがいたので久しぶりにお会いしてご挨拶したり、社員さんのLT大会を聞いたり、近くに座っていた方といろいろおしゃべりさせて頂いたり、楽しかったです。飯も美味かった。

ついでにLT大会に飛び入り参加して、弊社の中で一番AWSぽさがある事例について喋ってきました。終わった後に数名の方から「面白かったです」と言われたので、酒の肴にはなったのかなと思います。よかった。

来年もILさんの会議室をお借りしてSapporo #golang Meetupをやったり、いろいろとお付き合いさせて頂くと思いますので、どうぞ宜しくお願い致します。


基礎からわかる Go言語基礎からわかる Go言語
古川 昇

シーアンドアール研究所
売り上げランキング : 101801

Amazonで詳しく見る by AZlink

2014/12/18

Amazon EC2 Container Serviceを試してみた

という記事を@takipone会社ブログに書いてると思うので、僕は自分のブログに書いてみるのであった。と言ってもAmazon Web ServiceブログEC2 Container Service実践という記事をそのまま試しただけです。

ECS CLI Previewのセットアップ

AWS CLIのECS CLIはまだ Previewなので、AWS CLIの最新版をインストールしたとしても含まれていない。なのでECS Getting StartedのページからECS CLI Previewをダウンロードしてくる。

ダウンロードしたファイルを展開。
$ tar xvzf amazon-ecs-cli-preview.tar.gz
$ cd ./amazon-ecs-cli-preview
$ ls -alF
total 9824
drwxr-xr-x@ 7 smokeymonkey smokeymonkey 238 12 18 17:14 ./
drwxr-xr-x+ 13 smokeymonkey smokeymonkey 442 12 18 17:13 ../
-rw-r--r--@ 1 smokeymonkey smokeymonkey 53249 12 17 16:34 2014-11-13.api.json
drwxr-xr-x@ 12 smokeymonkey smokeymonkey 408 12 17 16:34 AWS CLI Documentation/
-rw-r--r--@ 1 smokeymonkey smokeymonkey 2237 12 17 16:34 README
drwxr-xr-x@ 4 smokeymonkey smokeymonkey 136 12 17 15:12 awscli-bundle/
-rw-r--r--@ 1 smokeymonkey smokeymonkey 4965740 12 17 16:34 ecs-cli.zip
ecs-cli.zipを展開してinstallスクリプトを動かす。
$ unzip ecs-cli.zip
$ cd awscli-bundle/
$ ls
install packages
$ sudo ./install
Running cmd: /usr/local/opt/python/bin/python2.7 virtualenv.py --python /usr/local/opt/python/bin/python2.7 /Users/smokeymonkey/.local/lib/aws
Running cmd: /Users/smokeymonkey/.local/lib/aws/bin/pip install --no-index --find-links file:///Users/smokeymonkey/Downloads/amazon-ecs-cli-preview/awscli-bundle/packages awscli-1.6.5.tar.gz
You can now run: /Users/smokeymonkey/.local/lib/aws/bin/aws --version
バージョンを確認すると、1.6.5になっている。
$ /Users/smokeymonkey/.local/lib/aws/bin/aws --version
aws-cli/1.6.5 Python/2.7.8 Darwin/14.0.0
こんな感じでecsオプションが使えることがわかる。
$ /Users/smokeymonkey/.local/lib/aws/bin/aws ecs help
ECS() ECS()

NAME
ecs -
このままだと使いづらいので、alias貼っておく。
$ alias aws='/Users/smokeymonkey/.local/lib/aws/bin/aws'
$ alias
alias aws='/Users/smokeymonkey/.local/lib/aws/bin/aws'
それと、現時点ではECSはus-east-1でしか動かないので、aws cliのconfigファイルを書き換えておく。
$ vi ~/.aws/config
[default]
region = us-east-1

ECSを試してみる

では本題。さくっとClusterを作成する。
$ aws ecs create-cluster --cluster-name MyCluster
{
"cluster": {
"clusterName": "MyCluster",
"status": "ACTIVE",
"clusterArn": "arn:aws:ecs:us-east-1:1234567890:cluster/MyCluster"
}
}
そして、ここが微妙だなと思ったんだけど、ECSのクラスタとなるEC2インスタンスは手動で立ち上げておく必要があるらしい。今回はマネージメントコンソールからLaunchした。実際はaws cliからやるのが正解だろうな。使ったAMIはECSクラスタ用の「amzn-ami-2014.09.1-amazon-ecs-optimized-preview2 - ami-34ddbe5c」。Launch時のUserDataに以下のようにいれておく。
#!/bin/bash
echo ECS_CLUSTER=MyCluster >> /etc/ecs/ecs.config
EC2が起動した後に以下のコマンドでクラスタインスタンスを確認すると、ちゃんとMyClusterに2つのEC2インスタンスが登録されていることがわかる。
$ aws ecs list-container-instances --cluster MyCluster
{
"containerInstanceArns": [
"arn:aws:ecs:us-east-1:1234567890:container-instance/30b8c142-151f-4708-bcc7-5f1407abea6b",
"arn:aws:ecs:us-east-1:1234567890:container-instance/a604212a-3682-413e-83c2-21fbdbe666d4"
]
}
describe-container-instancesでクラスタインスタンスの情報が取得できる。
$ aws ecs describe-container-instances --cluster MyCluster --container-instances arn:aws:ecs:us-east-1:1234567890:container-instance/30b8c142-151f-4708-bcc7-5f1407abea6b
{
"failures": [],
"containerInstances": [
{
"status": "ACTIVE",
"registeredResources": [
{
"integerValue": 1024,
"longValue": 0,
"type": "INTEGER",
"name": "CPU",
"doubleValue": 0.0
},
{
"integerValue": 996,
"longValue": 0,
"type": "INTEGER",
"name": "MEMORY",
"doubleValue": 0.0
},
...
さて、実際にコンテナを立ち上げてみる。コンテナを立ち上げる前に、コンテナにやらせることをタスクとして作る。以下はEC2のドキュメントにあるタスクの内容そのまんま。
$ vi task.json
[
{
"environment": [],
"name": "sleep",
"image": "busybox",
"cpu": 10,
"portMappings": [],
"entryPoint": [
"/bin/sh"
],
"memory": 10,
"command": [
"sleep",
"360"
],
"essential": true
}
]
で、作成したタスクファイルを指定してregister-task-definitionすることで、タスクが登録される。
$ aws ecs register-task-definition --family sleep360 --container-definitions file://./task.json
{
"taskDefinition": {
"taskDefinitionArn": "arn:aws:ecs:us-east-1:1234567890:task-definition/sleep360:1",
"containerDefinitions": [
{
"environment": [],
"name": "sleep",
"image": "busybox",
"cpu": 10,
"portMappings": [],
"entryPoint": [
"/bin/sh"
],
"memory": 10,
"command": [
"sleep",
"360"
],
"essential": true
}
],
"family": "sleep360",
"revision": 1
}
}
10個のコンテナでタスクを実行してみる。
$ aws ecs run-task --cluster MyCluster --task-definition sleep360:1 --count 10
{
"tasks": [
{
"taskArn": "arn:aws:ecs:us-east-1:1234567890:task/bba3df13-fa23-47f9-943f-c4d45b860708",
"overrides": {
"containerOverrides": [
{
"name": "sleep"
}
]
},
"lastStatus": "PENDING",
タスクが実行されているコンテナを一覧表示。
$ aws ecs list-tasks --cluster MyCluster
{
"taskArns": [
"arn:aws:ecs:us-east-1:1234567890:task/2e073f60-8d86-4405-9e1c-df4164a2aa67",
"arn:aws:ecs:us-east-1:1234567890:task/3334a759-15bd-4305-9f4e-aed66c211efd",
"arn:aws:ecs:us-east-1:1234567890:task/56552e1d-0b81-45fe-b109-e8baa6fc23b9",
"arn:aws:ecs:us-east-1:1234567890:task/b0e550e6-1fef-44b5-9def-8afecb93ffb4",
"arn:aws:ecs:us-east-1:1234567890:task/b1275e5a-f6f2-43ab-bf8b-289d9c3126ee",
"arn:aws:ecs:us-east-1:1234567890:task/bba3df13-fa23-47f9-943f-c4d45b860708",
"arn:aws:ecs:us-east-1:1234567890:task/bbf3caca-3272-4485-8b94-dc8fe677cb79",
"arn:aws:ecs:us-east-1:1234567890:task/d046b9ed-c299-4df5-b2fb-8a9baabad6d4",
"arn:aws:ecs:us-east-1:1234567890:task/d96df087-89f2-4f75-aa2f-db649a6ccbe5",
"arn:aws:ecs:us-east-1:1234567890:task/f061e120-f82d-4d7b-9824-f42aae5bb9b6"
]
}

感想

EC2インスタンスを別に立ち上げなきゃいけないの面倒臭いなと思ったんだけど、ECSとEC2の役割を明確に分離したってことなのかなぁ。外部にサービス展開するときはELBとの組み合わせもちゃんと考えなきゃいけなさそうだ。勉強のキモになるのはタスクの書き方で、Dockerfileを指定することもできるようなので、この切り口で勉強しようと思う。

2014/12/16

12/16(火)のArduinoの勉強

今日も引き続き。とりあえず
  • Writeポート(+)からGND(-)に向かって電流が流れていくということ
  • 抵抗値=(電圧(Arduinoだと5V)-印加電圧)/定格電流
  • 直列に繋げる場合、抵抗はLEDの前でも後でも電圧をドロップしてくれるから、どっちでもいい
というあたりを覚えた。

これはボタンでLEDがON/OFF、押している間は明るさが変わる。analogWriteでカウントアップしていくやつ。

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

こっちは光センサでLEDの明るさを変える。

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

とりあえずLEDと光センサーのあたりはある程度やったので、会社にあるGroveのセンサーをつなげたいのと、Processingでシリアル通信をやりたい、というのが次の目標。



Arduinoをはじめよう 第2版 (Make:PROJECTS)Arduinoをはじめよう 第2版 (Make:PROJECTS)
Massimo Banzi,船田 巧

オライリージャパン
売り上げランキング : 1262

Amazonで詳しく見る by AZlink

Arduinoの勉強を始めました

同僚であるせーのにArduino UNOを借りたので勉強してみることにした。弊社では現在Intel Edisonが大人気なんだけど、なぜEdisonでは無くArduinoなのかと言うと、ジャンケンに負けて配給されたEdisonが当たらなかったためです...せーのさんありがとう。

借用したのはスイッチサイエンスのArduinoをはじめようキット。僕は電子工作に対する基礎知識が全く無い、というか電気に対する知識も既に無いので、とりあえず以下の教科書を読みながらやってみることにした。

Arduinoをはじめよう 第2版 (Make:PROJECTS)Arduinoをはじめよう 第2版 (Make:PROJECTS)
Massimo Banzi,船田 巧

オライリージャパン
売り上げランキング : 1224

Amazonで詳しく見る by AZlink

手元のMBAにArduino IDEをインストールし、本を読みながらとりあえずやったのがコレ。LEDを指して1秒置きにBLINKさせる。秒数を変えたりしながら、ちゃんとコンパイルしたコードが転送されて動くことを確認。自分が書いたコードでモノが物理的に動くってちょっと感動する。

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

次がこれ。ボタンスイッチを押した時だけLEDが光る。抵抗の読み方がわからず、長女(中学二年生)の技術家庭の教科書を借りた。確かに中学生の頃勉強した気がするけどまるで覚えてないよ...

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

Arduinoのプログラムコード自体はわりと単純なものなのでそんなに苦労しなそうだけど、まずはこの電気信号のあたりとか、ブレッドボードの仕組みとか、その辺をちゃんと勉強しなきゃなと思った。

本業とは別に、しばらく勉強を続けてみようと思う。将来的にはセンサーとか使って何かしたい。

2014/12/11

2014年道民部大忘年会は中止となりました

参加者の皆様にはこんなメールを投げました。
2014年道民部大忘年会にお申し込みの皆様
幹事の@smokeymonkeyです。
大変申し訳ございませんが、申込者少数のため、2014年道民部大忘年会は中止させて頂きます。楽しみにして頂いた皆様には大変申し訳ございません。幹事の力不足でございます。
また別の機会に、皆様と楽しい時間を過ごせればと思います。
今後とも、どうぞ宜しくお願い致します。
中止の理由は、貸切人数に満たなかったためです。20名から貸し切りでお店を用意したのですが、13名の申し込みであったため、中止の判断となりました。参加の申し込みをしてくれた皆さん、ほんとごめんなさい。

実際の所、忘年会はここ数年参加人数が減少傾向にあって、昨年が30人であったため今年はあんまりやる気が無かったんだけど、複数の方から「今年はやらないんですか」というアクションをもらったため企画はしてみたものの、やっぱり申し込みが少なかった、という状況です。

ただ、僕は個人的にはポジティブに捉えていて、8年前は札幌の中でSNSで繋がって遊ぶ、というようなイベントがほとんど無かったんだけど、そういう人たちも今や普通に友達になっていて日常的によく遊ぶようになってるから、わざわざ忘年会という形を取らなくて良くなったんだと思います。これはすごく良い事ですよね。

忘年会という形ではもうやらない(やる必要がない)と思うけど、たまにイベントのような形で飲み会をやるのは楽しいと思うので、また何か面白いことがあれば企画しようと思います。その時には皆さん是非一緒に遊びましょう。


札幌本 [雑誌] エイ出版社の街ラブ本札幌本 [雑誌] エイ出版社の街ラブ本
ムック編集部

エイ出版社
売り上げランキング : 37624

Amazonで詳しく見る by AZlink

2014/12/07

DoCoMoのGalaxy NoteからSoftbankのiPhone5sに乗り換えた

割と長いことDoCoMoユーザで、ガラケーとXi割で契約したGalaxy Noteの2台持ちを続けていたんだけれど、Xi割の2年縛りが終わることと、カケホーダイとか意味わかんねぇ通話なんかしねぇよという気持ちがあって、DoCoMo止めました。さようならDoCoMo。

Softbankを選んだのはかけ放題じゃない旧プランであるホワイトプランがまだ契約出来るから。夫婦間はメールしか使わないし、電話で話すような友達もいない(TwitterかFacebookかLINEがあれば事足りる)ので、通話し放題プランが全社一斉に出してきたの本当に意味がわからない。

それとiPhone6じゃなくわざわざiPhone5sにしたのは、えー、商品券がいっぱいもらえたから。DoCoMoの解約手数料とか、Xi割の25か月目の料金とか、新規契約の手数料とか、結局3万円以上飛んでくので、その辺が商品券で相殺できるのは家計的に助かります。あと僕そんな新機種とかに興味が無くて、ぶっちゃけTwitterかFacebookが出来れば十分なので、iPhone5でまるで不満無いんです。

iPhoneのケースはこれ買いました。僕すぐ落とすから。

ELECOM iPhone5/5S用 全方向衝撃吸収ケース ZEROSHOCKシリーズ シルバー PS-A12ZEROSVELECOM iPhone5/5S用 全方向衝撃吸収ケース ZEROSHOCKシリーズ シルバー PS-A12ZEROSV


エレコム
売り上げランキング : 36266

Amazonで詳しく見る by AZlink

併せて妻もSoftbankに乗り換え。ずっとガラケーを使っていたのですが初めてのスマホデビュー。「見た目がかっこいい」という理由でAQUOS CRYSTALを選びました。スマホ本体よりずっとでかいharman/kardon ONYX STUDIOというbluetoothスピーカーがセットについている、という謎仕様なんですが、このスピーカー結構音が良いし、iPhoneからでも簡単に音楽が流せるし、ということで僕がもらって自室に置きました。棚ボタです。妻は今初めてのスマホに苦戦中。まぁ、すぐ慣れるでしょう。

ということで、5年ぶりのiPhone生活を楽しもうと思います。

Techmix Hokkaido 2014を開催しました #techmix

昨日2014/12/6(土)、Techmix Hokkaido 2014を開催しました。


厳しい冷え込みの中、実に66名もの方にご参加頂きました。参加者の皆さん、本当にありがとうございました。ワクワクして頂けましたでしょうか?本イベントが皆さんのITエンジニアとしての生活に少しでも刺激になれば幸いです。

スピーカーの@kaznumさん、@sandinistさん、@ursmさん、@giginetさん、稲葉一紀さん、@rarereさん、@irasallyさん、@akai_inuさん、@cocominapさん、@h2hamさん、@niku_nameさん。「20分間好きなことを好きなように喋ってください。オーディエンスを置き去りにしてもらっていいです」という僕たちの無茶ぶりに見事なアンサーを返してくれて、本当にありがとうございました。僕自身非常に刺激を受けたし、そしてすごく楽しめました。

またWebサイトのデザインをしてくれた@marimelody11さん、本当にありがとうございました。マリメロさんのおかげで、たくさんの人に参加して頂けるような、キャッチーなイベントサイトになりました(一番最初に僕が手書きHTMLで作ったサイトは本当に酷かったのです)
また、マリメロさんのコードは素晴らしく、僕らが作っていたmiddlemanの仕組みとマージするのも、@kaznumがたった30分で出来ちゃうくらい、見やすく分かり易いものでした。


ここで少し振り返りを。本イベントは半年前に僕と@y_ogagagaが二人で酒を呑みながら
「最近札幌で勉強会少なくなっちゃったし、なんか面白いイベントやりたいね」
「何やる?」
「色んな分野から色んな人を呼びたいね」
「よし、ミックスしようぜ」
ということで始まったものになります。そして@kaznumを巻き込み、3人で手作りした結果がこういう形となりました。

イベントの途中で話したとおり、「インフラもアプリケーションも、サーバサイドもフロントエンドも関係ねぇ。俺らはITエンジニアだからITエンジニアリングという括りでワクワクしたいんだ」というのがきっかけにあり、そして技術分野の垣根を越えて隣のエンジニアが何をしているのか、どんなツールを使っているのかを知ることで共通言語が出来、それがエンジニア間のコミュニケーションを潤沢にすると思っています。そういう意味で多分野のエンジニアを一同に集めて話をしてもらえたのは、良かったと思います。

繰り返しになりますが、参加者の皆さんが僕と同じように、少しでも知らないことを知るきっかけになったのなら、本イベントをやった意味があったなと思っています。


最後に。@y_ogagagaが話した最後のスライドでお伝えしたとおり、Techmixの次回開催予定は未定です。今回参加して、自分たちでもやってみたいと思った人が、Techmixという名前を使っても良いし使わなくても良いし、好きにやれば良いと思います。今回取得したtechmix-hokkaido.comというドメインも欲しい人がいれば移譲します(ほっといたら多分来年夏に失効します)僕らは今回実施したことで満足したし、特にTechmixを長続きさせたいという気持ちもありません。ただただ僕たちは、たくさんの人に、北海道のITエンジニアにワクワクして欲しかっただけですから。


本当、皆さん、ありがとうございました!

2014/12/04

Meetupって良いよね、という話

古くから使われている「コミュニティの一生」というコピペがあるんですけど。
【コミュニティの一生】

面白い人が面白いことをする

面白いから凡人が集まってくる

住み着いた凡人が居場所を守るために主張し始める

面白い人が見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる

IT技術者の集まりがユーザ会→勉強会→Meetupみたいに遷移してきたのを考えると、まぁこのコピペの考え方にも一理あるんじゃないかなって思うんですよね。

要は、俺ら的には「あるモノが面白い→それ使ったら面白いことが出来た→みんなでそれで遊びたい」という風にモノを中心に遊んでたいだけなのでコミュニティなんて枠組はどうでもいいわけなんだけど、いつの間にか「そこにいる俺らが面白い」みたいな人たちが増えてきて、なんかそれってつまんねーから違うことで遊ぶかなー。みたいな。子供と一緒って言われたらそれまでなんですけど。趣味でやってることだから面白くないなら無理してやる必要無いし。

Meetupの良さは中心人物みたいなのが不要で、そこに面白いモノがあるからそれを使ってる人や使いたい人が集まって、そのモノで遊ぶだけの イベントだってこと。代表でーすとかスタッフでーすみたいなのいらない。毎回違っていい。やりたい人が声をあげて、好きな人が集まってもらえばいい。これって誰にとっても楽じゃないですか。だからここ1,2年はMeetup形式のイベントが(特に首都圏で)増えたんじゃないかなあと思うんですよね。

あ、この話に特にオチは無いですよ。Meetupって良いなぁと思っただけです。

2014/12/03

会社ブログに書いた記事一覧(2014年11月)

2014年11月は週刊Developers.IOを含めて26本書きました!
なお、個人ブログでも13本書いてるので、合計39本書いたことになります。多かったなぁ。re:Inventに行ったためにこういう結果となりましたが、今後もアウトプットはどんどんしていく方向で頑張りたいと思います。

Amazon Web Services 基礎からのネットワーク&サーバー構築Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川憲、片山暁雄、今井雄太

日経BP社
売り上げランキング : 1722

Amazonで詳しく見る by AZlink

2014/11/27

AWS lambdaでS3 Objectをコピーする

lambdaというか、JavaScriptの勉強的にこんなlambdaスクリプト作った。やりたかったのは、

  1. S3 BucketにObjectがPUTされる。
  2. 同じBucketに、ファイル名に"copy-"と付与して、コピーを置く。
ってだけ。

--------------
var async = require('async');
var AWS = require('aws-sdk');

var s3 = new AWS.S3();

exports.handler = function(event, context) {
  var Bucket = event.Records[0].s3.bucket.name;
  var srcKey = event.Records[0].s3.object.key;
  var dstKey = "copy-" + srcKey;

  if (srcKey.substr(0,5) ==  'copy-') {
    return;
  }

  async.waterfall([
    function download(callback) {
      console.log('download start:' + srcKey);
      s3.getObject({
        Bucket: Bucket,
        Key: srcKey
      }, function(err, data) {
           if (err) { callback(err); }
           try {
             callback(null, data);
           } catch (e) {
             callback(e);
           }
         }
      );
    },
    function upload(arg1, callback) {
      console.log('upload start:' + dstKey);
      console.log('data:' + arg1.Body);
      s3.putObject({
        Bucket: Bucket,
        Key: dstKey,
        Body: arg1.Body
      }, function(err, data) {
           if (err) { callback(err); }
           try {
             callback(null);
           } catch (e) {
             callback(e);
           }
         }
      );
    }
  ], function (err) {
    if (err) { console.log('Error:' + err); }
    console.log('all done. ');
  });
};
--------------
そしてファイルを置いたら勝手にコピーされる。


はい。

AWS lambdaで外部モジュールを使う

最近AWS lambdaをいろいろ触っていて、ネタ的なものがちゃんとできたら会社のブログに書こうと思ってるんだけど、とりあえず初歩的な動かすところまでーみたいなのはこっちに書こうと思う。

AWS lambdaではAWSマネージメントコンソール上で直接jsスクリプトを書く以外に、外部モジュールもまとめてzip化してアップロードすることができる。というのでやってみた。

スクリプトを作成するプロジェクトディレクトリを掘って、その中に移動する。
$ mkdir myfunc
$ cd myfunc
外部モジュールをプロジェクトにインストールする。
$ npm install async
そんんでスクリプトを書く。
$ vi index.js
内容はこんな感じ。
---
var async = require('async');

exports.handler = function(event, context) {
  async.series([
    function (callback) {
      console.log("one");
      callback(null, "one");
    },
    function (callback) {
      console.log("two");
      callback(null, "two");
    },
    function (callback) {
      console.log("three");
      callback(null, "three");
    }
  ], function (err, results) {
    if (err) {
        throw err;
    }
    console.log('all done. ' + results);
  });
};
---

したらば、zip化する。この時面倒臭がってプロジェクトディレクトリごとzip化すると、ファイルが見つからない(Can't find module)になっちゃうので、以下のようにファイルと外部モジュールディレクトリを指定してzip化する。
$ zip -r myfunc.zip index.js node_modules
あとはこのzipファイルをアップロードして実行したら以下のように動きます。
Logs
----
START RequestId: bf1f1533-75f5-11e4-a765-67c132e1225f
2014-11-27T05:24:52.586Z bf1f1533-75f5-11e4-a765-67c132e1225f one
2014-11-27T05:24:52.625Z bf1f1533-75f5-11e4-a765-67c132e1225f two
2014-11-27T05:24:52.625Z bf1f1533-75f5-11e4-a765-67c132e1225f three
2014-11-27T05:24:52.625Z bf1f1533-75f5-11e4-a765-67c132e1225f all done. one,two,three
Process exited before completing request

END RequestId: bf1f1533-75f5-11e4-a765-67c132e1225f
REPORT RequestId: bf1f1533-75f5-11e4-a765-67c132e1225f Duration: 220.41 ms Billed Duration: 300 ms  Memory Size: 128 MB Max Memory Used: 9 MB 

Message
-------
Process exited before completing request::

さて、次はちゃんと動くスクリプトを書こう。自宅からこの本持ってきました。


初めてのJavaScript 第2版初めてのJavaScript 第2版
Shelley Powers,武舎 広幸,武舎 るみ

オライリージャパン
売り上げランキング : 397774

Amazonで詳しく見る by AZlink

2014/11/25

初めてのnode.js

手元のMBAでとりあえずbrew installする。
$ brew install node
インストールができたことを確認。
$ node -v
v0.10.32
じゃあHello Worldしてみるか。
$ vi hello.js
console.log('Hello World');
実行。
$ node hello.js
Hello World
さて、ここからがスタートです。

2014/11/21

ここにドヤ顏があるじゃろ?(^ω^)


ImageMagickとRmagickをインストールするじゃろ?(^ω^)
$ sudo yum install ImageMagick ImageMagick-devel
$ sudo gem install rmagick
日本語フォントもインストールするじゃろ?(^ω^)
$ sudo yum install ipa-gothic-fonts
こんな感じのRubyスクリプトを書くじゃろ?(^ω^)
require "RMagick"

if ARGV[0] == nil then
puts "Error: please message."
exit
end

mess = ARGV[0]

img = Magick::ImageList.new("miyamoto.jpg")
text = Magick::Draw.new
text.annotate(img, 0, 0, 0, 60, mess) {
self.font = '/usr/share/fonts/ipa-gothic/ipag.ttf'
self.gravity = Magick::NorthWestGravity
self.pointsize = 30
self.fill = '#ff6600'
self.font_weight = Magick::BoldWeight
}
img.write('output.jpg')
実行するじゃろ?(^ω^)
$ ruby editpic.rb "EC2を使ったら負けだと思ってる"
するとこうじゃ(・ω・)

海外に行って一番大きかった経験はマイノリティを強く意識したこと

出張としてAWS re:Invent 2014に行っていた。その間の日記は本ブログに書いたので、カンファレンス自体の感想はそちらを参照。

これは僕にとって初めての海外遠征だったのだけれど、何よりも強く思ったのはマイノリティであることの辛さだった。

僕は正直なところ英語力が非常に低く、学生時代から赤点ばかりだった。今年一年iKnowで独学を続けていたけれど、結局会話力はあまり上がることが無かった。そして今回アメリカに行って、言葉が通じない、言語圏においてマイノリティであるということが、本当に辛かった。会話ができないから意思疎通ができないし、意思疎通ができないから周りの人が何を考えているのかわからなくて不安だった。気を使って優しく話しかけてくれる人もいるんだけど、その優しさに答えることができない。僕からも誰かに優しくすることができない。帰りの飛行機で乳幼児を抱えた女性に対してちょっと手助けをしたんだけれど、それもほぼ単語だけでコミュニケーションをとるしか無かった。

逆に考えてみると、僕がマイノリティじゃない世界=日本では、日本語が話せない人=日本語圏におけるマイノリティは、とても不安なんだろうと思う。そして僕の今の力では、そんな人たちの不安を取り除いたり、助けてあげることができない。英語ができないということは、単にコミュニケーションの問題だけでなく、誰か助けを求める人がいても助けられないことがある、ということだ。

僕の人生はもう半分くらい終わっちゃってるんだけど、これからはもっともっと英語を勉強して、いつか日本で困っている日本語が話せない人を助けることが出来たら良いな、と思う。


DUO 3.0DUO 3.0
鈴木 陽一

アイシーピー
売り上げランキング : 48

Amazonで詳しく見る by AZlink

2014/11/19

AWS認定SysOpsアドミニストレーター - アソシエイトレベルに合格しました

関連記事:AWS認定ソリューションアーキテクト-アソシエイトレベルに合格しました

SA合格が1 月25日なので、10ヶ月ぶりの資格取得です。総合スコアは89%。内容としてはそんなに難易度高くないんだけど、日本語が難しくて理解するのに時間がかかった。米国帰りで時差ぼけが取れず、かつ前日呑んだくれて二日酔いだったんだけど、ちゃんと合格出来てよかったです。

次はデベロッパー試験にチャレンジしたいんだけど、北海道には試験会場がないので、また東京出張の機会があったらチャレンジします。しばらくは無理だろうなぁ。早く北海道に試験会場が出来て欲しい。

ということで今夜は祝杯!といきたいところですが、今夜北海道に帰るので無理。家族の元に帰れることを一番の祝杯だと考えます。


Amazon Web Services 基礎からのネットワーク&サーバー構築Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川 憲,片山 暁雄,今井 雄太

日経BP社
売り上げランキング : 7206

Amazonで詳しく見る by AZlink

2014/11/16

AWS re:Invent 2014に参加してきた(6): ラスベガス→サンフランシスコ→成田→秋葉原 #reinvent

最終日からそのまま徹夜で帰路。現地時間11/15(土) 03:15amにThe Venetianのロビーに集合。
そしてバスでマッカラン国際空港まで移動。

チェックインもセキュリティチェックも特に問題なくスルー。行きの飛行機のセキュリティチェックで2度もトラブった 教訓が生かされました。

マッカラン国際空港からサンフランシスコ国際空港へ。飛行時間は1時間半。乗った瞬間に寝て、着陸と同時に起きました。死ぬほど怠かった。

サンフランシスコ国際空港で朝食。Andalé Mexican Restaurantでタコスを食べた。$10分の価値があるかというと、うーん。空港価格?ファーストフードくらいの値段なら満足したと思う。


乗り換えの荷物はそのまま成田行き飛行機に乗せ替えられたので、特に厳しいチェックも無く搭乗。そこから実に11時間のフライト。寝ては起きて寝ては起きてを繰り返し、肩は凝るは尻は痛いは、なかなか辛かった。



そして成田空港到着。借りていたWi-Fi機器を返却、財布に$5しか入ってなかったので両替はせず。京成スカイライナーで日暮里→秋葉原へ移動。京成スカイライナーは初めて乗ったんだけど、たった40分で日暮里まで到着するなんて本当にすごい。いつも鈍行で移動してたんだけど、2時間以上かかるからなぁ。すごく楽だった。

秋葉原のビジネスホテルに到着。

そして晩御飯につじ田のつけ麺。米国にいた時からラーメンが食いたくて食いたくて仕方がなかったので、ここつじ田に行けて良かった。まじうまかった。
そして今ホテルでビール飲んでます。今日はこのまま早く寝て、明日は本社に出社します。

これにて僕のre:Invent 2014は終了。お疲れ様でした!

2014/11/15

AWS re:Invent 2014に参加してきた(5): 最終日、セッション参加、観光、そして夜遊び #reinvent

re:Invent 2014も最終日。まずは朝食。昨日のre:Playで飲みすぎて胃が重たかったんだけど、普通に食べました。フルーツがデカくなった。昨日と同じくヨーグルトに打ち込んで食いました。



そしてセッションを聞いてブログを書いた。


もう1本、LambdaのReSessionを聞いた。個人的にLambdaはかなりアツいので、node.jsを覚えた上でいろいろ試そうと思う。最後にツアー振り返りセッションを聞いて、re:Inventは終了。

この数日間をまとめるとこういうことです。
昼飯はShake-n-Burgerのクォーターパウンドダブルベーコンバーガー。


そのあとCaesars Palaceに遊びに行って、


Fashion Show Mallに行って


Walgreensで大量のお土産を買い込んだ。締めて$110。やりすぎました。でもこれで家族に喜んでもらえるなら安いもんです。おかげで両替した$170をほぼ使いきりました。


夜はRoy'sで参加者懇親ディナー。楽しかったし、料理も美味かったです。


そのあと、同僚と最後のラスベガス夜遊び。
Bellagioで噴水のショーを見て、New York, New Yorkの自由の女神を見て、Excaliburを経由してLuxorに行き、そこからタクシーでStratosphereへ。X-Scream、Insanity、Big Shotで眠気を覚まし、部屋に帰還。

そして今、11/15(土) 2:32am。これからホテルを出てマッカラン国際空港を経由してサンフランシスコ国際空港から11時間かけて成田に戻ります。そのあとは秋葉原に宿泊し、11/19(水)に札幌に帰る予定。

基本的にはもう全日程終了、って感じなんだけど、まだ帰路という気の重たくなる行程があるので、頑張ってきます...

振り返ってみると、英語圏で会話するという経験はとても良かった。ほぼ出来なかったけどね。度胸と、ポイントというか、この言葉がわかれば会話が成り立つみたいなところが感じられた。でも、今後今の僕の英語力ではまるで足りないし、例えば将来妻と海外旅行に行ったときに英語で喋ってかっこつけたいので、英会話は本格的に習おうと思う。

それにしても楽しい1週間であった。AWSの文化や考え方、先に見てるものって、日本のイベントやAWS関係者の発言や、またはWebなどの媒体でわかっているつもりだったけど、re:Inventのような場でKeynoteとして聞くと、体への染み渡り方が全然違う。グっとくる強さが違う。感動したって言っても良い。何度も言うけど、本当に楽しい1週間であった。


2014/11/14

AWS re:Invent 2014に参加してきた(4): keynote 2、またブログを書き続ける日、re:Playで遊んできた #reinvent

久しぶりに7時間ほど寝てだいぶ回復。まずは朝飯から。フルーツをヨーグルトに入れて食べると美味い、という発見をした。


そのままKeynote2で、昨日に続いてリアルタイムレポートやりました。
そしてブログを書き続けた。

昼飯はこちら。アメリカの人はサラダにオリーブオイルとバルサミコ酢をかけて食べるのが好きらしい。あとコーラはデフォルト。


夕方はPublic HouseでCertificate Receptionがあったのでそちらに。日本人が少なかったので、あまり話したことがない人たちとお話しして盛り上がりました。

そこからre:Play。DJはjack novakとskrillex。超面白かった。酔っ払った。綺麗なおねーさんに話しかけられたけど僕の英語力が無さすぎて会話が成り立たず悔しい思いをした。俺本当に帰ったら英会話習うわ。

そして部屋に戻ってきたのち、ちょっと散歩して、1時過ぎにバタンキュー。今日も楽しい1日であった。

2014/11/13

AWS re:Invent 2014に参加してきた(3): keynote 1、ブログを書き続ける日、Pub Crawlで遊んできた #reinvent

昨晩0時に寝て、なぜか4時半に目が覚めてしまい、6時半まで悶々と過ごす。7時に社長と一緒に部屋を出たらばったりJeff Barと遭遇。記念写真してもらった。
同僚と合流してイベント提供の朝食。


アメリカの朝飯はひたすらモサモサしている。口の中の水分が全部持っていかれる感じ。ヨーグルトにフルーツを入れて食べるのは美味い。

そのまま9時スタートのKeynote 1に参加、リアルタイムレポートを書きました。


そして昼飯。アメリカンジョークで「アメリカの飯は3種類の味付けしかない。甘いか、しょっぱいか、デカイかだ」ってのがあるけど、まさにその通り。だいたい肉とケーキしか食ってない。あとコーラとビール。


ここからはひたすらセッションレポートを書き続ける。


そのあとは同僚と合流し、Pub Crawlへ。最初にMadame Tussauds Las Vegasに行ってみた。いろんな有名人の人形があったのと、アベンジャーズの4Dシネマが観れた。すごく面白かった。ドリンクはフリーなのだけど1ドルのチップを渡すとお姉さんがいい笑顔してくれた。


次にTAOへ。特に写真は無し。ナイトクラブちっくで面白かった。
そのあとShake-n-Burgerでダブルベーコンチーズバーガーを食す。確かにデカイ。コーラもシネコンサイズ。ポテトはあげただけで味がなく、ケチャップをつけないと食えたもんじゃない。日本のポテトは塩味ついてるからケチャップいらないけど、こういう違いがあるんだなと思った。


そして今、部屋でBLUE MOONビールを飲みながらブログ書いてます。今日も楽しかった。明日もKeynote 2があり、セッションがあり、夜はre:Partyがあります。楽しんできます!

2014/11/12

AWS re:Invent 2014に参加してきた(2): 初日、Global APN Summit、プレミアコンサルティングパートナーになった #reinvent

7:00起床。
そのままRegistorationに行き、登録して、re:Inventジャンバーをもらって、朝飯に。
この辺は会社ブログに書いた。

とりあえず暇だったので自室に戻ってブログを書き上げ、ちょっと一人でお買い物へ。初めての一人お買い物。ちゃんとできました。とりあず"cash,please." "thank you"って言えばなんとかなるのがわかった。
その後同僚と合流し、Global APN Summitへ。内容は NDAなので秘密です(社内共有だけしました)が、サプライズとして、弊社がプレミアコンサルティングパートナーになりました。
これは事前情報が一切なしで、隣にいた社長が「はぁ?まじで?」って言ったくらいの知らなさでした。同僚4人で体の震えがくる瞬間で、なんというか、この時点で僕らのre:Inventは8割くらい終わったと思う。

ランチはカンファレンスで提供。これがまた甘くてしょっぱくてデカい。特に右上のチョコレートケーキみたいなのがクソ甘かった。タイ米のピラフとビーフシチューみたいなのはまぁまぁ。アメリカ来て特に思うんだけど、肉だろうとサラダだろうととにかく味付けが濃くて甘くて塩っぱい。これは本当に文化の違いだと思う。
その後1時間くらい寝て、APN Receptionへ。DockerのTシャツとか、 TrendmicroのT
シャツとかAnsibleのキャップとか、そういうのをもらってなかなか面白かったです。明日明後日も暇見つけてまた行こう。あ、あとビールが美味しかったです。


そのあとはツアーの人たちで集まるJapan Nightへ。たくさんの人たちとご挨拶させていただきました。本当にありがとうございました。


あとJapan Nightにあった肉やばかった。
最後に社長に連れられて、The Venetianの1階にあるNoodle Asiaへ。出汁のスープが大変に美味かった、というか、味が濃くなくて甘くなくて脂っこく無いものを久しぶりに食べた。海外で日本食を食べるのは難しいけれど中華料理があるというのは本当に助かる。

あとは寝るだけです。おやすみなさい。

2014/11/10

AWS re:Invent 2014に参加してきた(1): 新千歳発成田経由サンフランシスコ経由ラスベガス行 #reinvent

AWS re:Invent 2014に参加してきた。というか参加中です。続編は随時リリース予定。

11/10(月)、新千歳空港からジェットスターで成田空港に移動。成田空港で2万円をUSDに両替したら$170になり、なんか損した気分。全部円安のせい。



成田空港で同僚(,)と合流。Nikon D40にセットしたWi-Fiが調子悪くて、成田空港のローソンでSDカードを新調。予備を持ってこれば良かった。

手続きをしてツアー結団式が行われ、飛行機が遅延したので成田空港でビール飲みながら1本目のブログをリリース。「どこでもブログ書いてる会社の人だ」という扱いを受ける。いや、その通りです。

出国手続きは滞りなく完了。この辺まではほぼ日本と一緒。飛行機も日本語が喋れる客室乗務員さんが多くてほぼ困らず。機内食は...まぁ、美味くはないけど食えないわけじゃない。そこそこ。


時差ぼけを解消すべくとりあえず寝ようとしたんだけど、なんか眠りは浅かったな。冷房が効いてて辛かった。あと首マクラは意外と快適じゃない。無いほうが楽。こっちは朝飯。これもまぁ、うん。こんなもんだろう。


現地時間で11/10(月)の昼にサンフランシスコ空港に到着。入国審査超怖かった。


これは初めての海外で浮かれている俺。余談なんだけどアメリカのパブリックなトイレ、小便器は位置が高いし、個室は隣と下の部分が繋がってる(というか開いてる)ので、超落ち着かない。


サンフランシスコ空港からラスベガスに乗り換えだったのだけど、機材のトラブルでラスベガス行きの飛行機が遅延しまくり(13:20 -> 14:20 -> 15:15 -> 16:00 -> 16:15) 。さらに国内線のセキュリティチェックで怒られまくる。
ラスベガス(McCarran空港)に到着したのが18時くらい。この空港はとても広くて、荷物受け取りのターンテーブルまで地下鉄で移動する。

そしてバスで移動し、The Venetianに到着。なんと7000室あるそうです。北海道の過疎自治体なら丸ごと泊まれるぞおい。
部屋は全室スイートってことで。なんかすごい。女子と来たかった。社長と相部屋です。


晩飯は社長、同僚、ツアー同行のみなさんとPhil's Italian Steak Houseで20ozのTポーンステーキを食った。すごかった。こんなに肉を食ったの初めてじゃないだろうか。みなさんは途中で飽きて醤油をもらったりしていたけど、僕はアメリカンソースだけで十分食えました。僕の舌はアメリカの食事でも特に困らないらしい。


最後に部屋に戻ってシャワーを浴びてbtnq。だいぶしんどい1日(というか2日)でした。

2014/11/06

日帰り十勝の旅に行ってきた

仕事で。

まずは芽室へ。芽室といえばB級グルメとして有名な十勝芽室コーン炒飯。ファミリーとんかつの店 あかずきんで頂きました。注文したのはコーン炒飯Bセット(とんかつが乗ってる)で¥980。さすがとんかつのお店なだけに肉はもちろん美味かった。掛かっているソースは味噌です。何よりこのコーンの量な。スイートコーンをこんなに大量に食べることってそうそう無いので面白かったし、美味しかった。これはなかなか良いです。ちょっと高いかも知れないけど。


そのあと株式会社ファームノートさんのオフィスにお邪魔して、帰りは帯広駅で豚丼。帯広駅直結の豚はげ本店で、豚肉4枚で¥920。久しぶりに食べたけど、まぁ、文句無しに美味いですね。


そんな感じで日帰り強行の旅は終わりです。


2014/10/31

Choiの新系列店×2に独りで行ってきた

立喰酒場Choiの新系列店が2店舗オープンしたので、ご祝儀がてら行ってきた。ちょうど北海道に来ていた社長とジンギスカンを食ったあとだったので、軽く。

どちらも日本酒が揃っているので、日本酒好きの僕には万々歳です。

くんせいChoiはその名の通り燻製がメイン。これは3種盛り。たらこの燻製がめちゃくちゃ美味しかった。日本酒が進む進む。


chikoは店長さん(ぽちこさん)が一人で切り盛りしているんだけど、お酒を燗でも出してくれるところが僕の好み。他のお客さんともちょっとお話したけど、とてもいい人ばかりでした。これは店長さんお手製のぬか漬け。これがまためちゃくちゃ美味かった。人参が日本酒に合う合う。思わず燗酒お分かりしちゃったよ。


ということで、独りで軽く一杯サクっと飲むのも、親しい友人とたっぷり飲むのも、いいお店だと思います。ごちそうさまでした!また来ます!

会社ブログに書いた記事一覧(2014年10月)

2014年10月は週刊Developers.IOを含めて15本書きました!→急遽1本追加して16本になりました!
久しぶりの中で Dockerが流行ったのでDockerの記事を4本書きました。来月もこのへんを攻めたいと思います。


Amazon Web Services 基礎からのネットワーク&サーバー構築Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川憲、片山暁雄、今井雄太

日経BP社
売り上げランキング : 1722

Amazonで詳しく見る by AZlink

2014/10/28

fastladderが動くDockerイメージを作った

会社のブログに書こうと思ってやってんたんだけど結果的にうまくいかなかったのでこっちに書く。ちょっと思い立ってMac OS X上でfastladderを動かしてみた。

(1)boot2dockerを起動する。
$ boot2docker start
(2)フォルダを掘る。
$ mkdir flodoc
$ cd flodoc
(3)Dockerfileを作成する。
$ vi Dockerfile
----
FROM centos
MAINTAINER smokeymonkey@gmail.com

RUN yum update  -y
RUN yum install -y ruby-devel rubygems git gcc gcc-c++ make build-essential libxml2-devel libxslt-devel libcurl-devel sqlite sqlite-devel

WORKDIR /opt
RUN git clone git://github.com/fastladder/fastladder.git

WORKDIR /opt/fastladder
RUN echo "gem 'therubyracer'" >> ./Gemfile
RUN cp config/database.yml.sqlite3 config/database.yml

RUN adduser docker
RUN chown -R docker:docker .
USER docker
ENV PATH $PATH:/home/docker/.local/bin:/home/docker/bin

RUN gem install bundler --no-ri --no-rdoc

RUN bundle config build.nokogiri --use-system-libraries
RUN bundle install
RUN bundle exec rake db:create db:migrate
RUN bundle exec rake setup # Setup files for development

RUN bundle exec ruby script/crawler --daemon
CMD bundle exec rails server -p 3000

EXPOSE 3000
----

(4)buildする。
$ docker build -t local/fastladder .
Successfully built b1ac79c34a97
$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
local/fastladder           latest              b1ac79c34a97        3 days ago          876.9 MB
(5)起動。
$ docker run -d -p 3000:3000 local/fastladder
71893613f8955dcb433518aabc28241ad35ff156985c1a96dca7275ec609bede
$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                    NAMES
71893613f895        local/fastladder:latest   "/bin/sh -c 'bundle    3 days ago          Up 50 seconds       0.0.0.0:3000->3000/tcp   pensive_sinoussi
(6)boot2docker ipで接続先IPアドレスを確認。
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
(7)接続する。

(8)Create new accountしたらログインされる。


ここまでは良いんだけど、よく考えたらコンテナを停止したら設定が全部飛ぶんでした。だからDBを外に出さないとダメだった。
アホか俺は。


Docker入門 Immutable Infrastructureを実現するDocker入門 Immutable Infrastructureを実現する
松原豊,米林正明

技術評論社
売り上げランキング : 4902

Amazonで詳しく見る by AZlink

2014/10/23

北海道におけるIT勉強会の沈滞について考えてみる

IT勉強会がブームだと言われていたのが2008年〜2010年。勉強会がコミュニティとなり、立ち上がり、時には無くなりといった動乱の時期でした。とりあえず僕がパッと思いついた勉強会コミュニティの設立時期を見てみると...
  • Ruby札幌 ... 2007年
  • Sapporo.php(元LOCAL PHP部) ... 2008年
  • 北海道情報セキュリティ勉強会 ... 2008年
  • 札幌Javaコミュニティ ... 2009年
  • Hokkaido.pm ... 2010年
  • Sapporo.js ... 2011年
と、まぁ大体その頃ですね。

で、北海道IT勉強会カレンダーで、取れるだけのデータ(2011年以降)を取ってみて、北海道のIT勉強会の開催数を数えてみました、というのがこのグラフです。


2012年まではほぼ毎月10回以上のIT勉強会が開催されていたのですが、2013年以降すぱっと減っています。時々多い月がありますが、オープンソースカンファレンス in Hokkaidoの開催月だったり、ベンダイベントが重なったりしています。

さて、タイトルでは沈滞と書きましたがちょっと言い過ぎです。乱立していたものが淘汰され落ち着いたという見方も出来るかも知れません。しかし新しい技術的興味の入り口や 人との出会いの場が少なくなっていることが、若いITエンジニアの経験を削ぐことになっていないか?ということを不安に思っています。半年間東京に単身赴任してIT勉強会が活発に開催されていることを身近に経験し、北海道のIT勉強会はずいぶん落ち着いちゃったなぁと感じました。

もちろんこれはただのおっさんの懐古なのかも知れません。僕自身はIT勉強会やコミュニティで技術やコミュニケーションや人脈や、様々なものを学んだと思っていますが、今の若いITエンジニアには不要なのかも知れません。別にオフラインで出会わなくてもオンラインだけで充分スキルアップが出来ているのかも知れません。でももしそれを必要としているのであれば、それを与えることが出来ていない僕たちシニアなエンジニアには責任があるんじゃないだろうかと思います。

そろそろ真面目に、北海道の IT勉強会の行く末、北海道のITエンジニアの将来を、皆で考える時なのかも知れません。

2014/10/21

大人が必ず正しいとは限らない、という話

昨日、長男がこんなことを言いました。

「サッカーしている時に、自分が出来る訳でもない、上手い訳でもない大人たちが、横からあーだこーだ口出してくるのが腹が立つ」


そこで僕はこんな話を長男に聞かせました。

僕は中学生の頃サッカー部に所属していたのですが、中学2年生の3学期末で顧問の先生が転勤することになりました。その顧問の先生は学生時代からずっとサッカーをプレイしてきた若い先生で、実際にとても上手で、指導も僕たち部員が満足するレベルのものでした。部として強くは無かったのだけれど、皆で楽しくやれていましたし、みんなその顧問の先生のことを慕っていました。

さて、僕たち2年生は、3年生という中学最後の年に顧問の先生がいなくなってしまうことになります。残念なことに中学校の中にはサッカーの指導が出来るような先生はいませんでした。せめて名前だけ登録してくれれば自分たちで練習ができますので、全ての先生に頭を下げに行ったのですが、担当してくれそうな先生は誰もいません。唯一保健室の先生(養護教諭さん、年配の女性)だけが「どうしてもいなかったら名前だけ貸してあげる」と言ってくれました。

そんな中、僕たちが3年生になった年に、他校から転勤してきた先生がいました。元々バトミントン部の指導を長くしてきたそうなのですが、僕たちの中学校にはバトミントン部が無く、また転勤してきたばかりなので担当の部活を持っていませんでした。

そこで部員全員でその先生に顧問をしてくれるようお願いしたところ「お前たちが全員坊主頭にしてきたらやってやる」とのお言葉。超ムカついたのですが、僕たちはサッカーがしたかったので、黙って坊主頭にしてもう一度お願いしに行きました(坊主頭にすることに反発して辞めた友人もいます)

ところが、まーコイツの指導が酷い。サッカーをロクに知らんくせに口ばっかりだしてきて、意味のない練習ばかりさせる。僕と友人たちは小学生6年間ずーっとサッカー少年団にいたので、基礎はわかっています。しかしコイツの指導はそもそも基礎がわかってない。

結局皆のモチベーションが上がらないまま、中体連はボコボコの酷い結果で、そのまま中学時代のサッカーを卒業しました。今考えても、僕のサッカーに対する情熱はこの時に一度死んだと思います。なお、その後その先生は痴漢だか援助交際だかで新聞の社会面を飾りました。


さて、この話をした後、僕は長男にこう言いました。

「大人は子供より長く生きていてたくさんの経験をしているから、子供より間違いを知っているし、その間違いを正してあげたり、より良いやり方を教えてあげることが出来る。これは勉強もサッカーも、それ以外の生き方全般に対してそうだ。
でも大人だって出来ることと出来ないことがあるし、間違うこともある。だから大人に言われたからって黙ってハイハイ話を聞くことは無い。大人の方が間違ってると思うならなんで間違ってると思うのかをちゃんと言いなさい。それも聞かずに一方的に意見を押し付けてくるなら、そんな大人の言うことは聞かなくていい」


で、我が身を振り返ってみるわけだ。
僕はちゃんと子供と話をしているだろうか。子供の話を聞けているだろうか?子供が何故それをしたいのか、そう思うのかを聞かずに「いいからやれ」「いいからやめなさい」と言ってないだろうか?うーん、出来る限り頑張ってるつもりだけど、たまに「いいから ◯◯しなさい」と言っちゃっている気がする。

僕はもう30代半ばで、子供も三人いて、世間一般では大人であり親であるわけだけど、それでもまだまだだ間違いを犯すし、間違ったことを言っちゃうことがある。
そんな時にちゃんと間違いを正したり、子供に間違いを指摘された時に「ごめん、それはパパが悪かった」って言えるような、そういう風にありたいなぁと、改めて思いました。



サッカーで子どもをぐんぐん伸ばす11の魔法 (edu book)サッカーで子どもをぐんぐん伸ばす11の魔法 (edu book)
池上 正

小学館
売り上げランキング : 4310

Amazonで詳しく見る by AZlink

2014/10/15

長男と「コンサドーレ札幌U-15」 2015年度入団選手セレクションに行ってきた

長男と「コンサドーレ札幌U-15」 2015年度入団選手セレクションに行ってきた。コンサドーレU-15の入団の厳しさは知っていたので、長男と相談して「まぁお金掛かる訳じゃないし、人生で一回しか受けられないんだから、どんなことやるのか行ってみよう」ということで。

実際にセレクションに参加した感想。いやーレベル高い。全体的に各チームのエース級が揃い踏みって感じで、全員がすごく上手でした。その中でもやっぱりパッと光って見える選手が10人に2人くらいいて、こういうタイプが入団出来るんだろうなぁと思った。そしてそういう子はやっぱり背が大きかったりとても足が早かったりと、体格が恵まれている子が多い。長男も小学校ではリレーの選手だし、試合に出ていてもかなり足が早いほうだと思うんだけど、それでも全く追いつけないくらい早い子がいた。

とはいえ長男が全くついていけなかったかと言うとそんなことも無く、まぁ真ん中くらいかなぁ。パスやドリブルでの技術チェックのときも、ゲームのときも、付いてはいけていたと思う。親の贔屓目はあるかも知れないけど。

長男曰く「上手過ぎて怖い」とのことで、確かにスピードでもパワーでも、あと技術でも勝てない人たちがたくさんいたけれど、そんな中で自分がどのくらい出来るのか、どの程度の位置づけなのか、自分より上手い人たちがどんなにたくさんいるのか、どういったことが分かったのは、とても良い機会であったと思う。

あ、あと費用についても教えてもらったので書いておこう。

  • 年会費¥10,000、月会費¥12,000(確か)
  • 入団時に揃いのジャージやピステなどを買う。これが¥100,000くらい。
  • 道外遠征が年2回、大体1回¥50,000くらい。飛行機代はオフィシャルスポンサー様であるJAL様が提供してるとのこと。
  • 練習は週5回。場所は札幌アミューズメントパーク。冬場はきたえーるとかつどーむとかをたまに使う。
  • 練習場の札幌アミューズメントパークまで、平日はJR札幌駅からバスが出る。オフィシャルスポンサー様であるJR北海道様が提供しているとのこと。
  • ユニフォームは貸出なので購入は無し。

思ってたよりかからない、という印象。

スタッフの皆さんありがとうございました。勉強になりました。


コンサドーレ札幌オフィシャル・ガイドブック2014コンサドーレ札幌オフィシャル・ガイドブック2014
北海道フットボールクラブ

北海道新聞社
売り上げランキング : 565987

Amazonで詳しく見る by AZlink