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

Webブラウザ側にPoodle脆弱性があるかをチェックしてくれる"SSLv3 Poodle Attack Check"

Poodle脆弱性についてはこちら。
で、Webbブラウザ側のPoodle脆弱性をチェックしてくれるサイトが登場している。
(後日追記:最初逆に書いてました。ごめんなさい)

手もとのFirefox(v32.0)でアクセスするとこんな感じ。


Google Chromeでアクセスするとこんな感じ。

Twitter廃人をRedshift + Tableau Desktopで丸裸にする

やってはみたけど会社のブログに書くには微妙だったシリーズ。

皆さんご存知かも知れませんが、当方Tweet数20万オーバーのTwitter廃人です。


さて、Twitterには自アカウントの過去の全ツイートを取得できる機能があります。取得は[Settings]-[Account]-[Your Twitter Archive]から[Request Your Archive]ボタンを押すことで、登録してあるメールアドレスに対しダウンロードリンクが通知される仕組み。で、このアーカイブには全ツイートがCSVとして格納されています。

このCSVをAmazon Redshiftに突っ込んでTableau Desktopで分析してやるぜ、というのが今日の主旨です。

前提条件

この辺は特に説明しません。

  1. Redshiftを普通に構築しておきます。Database名は"Twitter"で。
  2. Redshiftにpsqlコマンドで接続可能なようにしておきます。ローカル環境でもEC2でも構いません。
  3. Redshiftに接続可能なIAMアカウントを用意しておきます。
  4. S3のバケットにダウンロードしたCSV(tweets.csv)を配置しておきます。

Redshiftにデータを突っ込む

Redshiftにpsqlコマンドで接続します。
$ psql -h myredshift.xxxxx.ap-northeast-1.redshift.amazonaws.com -U admin -d twitter -p 5439
ユーザ admin のパスワード:
psql (9.2.9, サーバー 8.0.2)
注意: psql バージョン 9.2, サーバーバージョン 8.0.
         psql の機能の中で、動作しないものがあるかもしれません。
SSL 接続 (暗号化方式: ECDHE-RSA-AES256-SHA, ビット長: 256)
"help" でヘルプを表示します. 
とりあえずcreate tableします。Twitterのtimestampは[2014-07-09 02:59:12 +0000]みたいな感じになっているので、RedshiftのDate型にはそのまま入りません。面倒臭いのでとりあえずvarcharで突っ込んでおきます。
twitter=# create table tweet (
twitter(# tweet_id bigint,
twitter(# in_reply_to_status_id bigint,
twitter(# in_reply_to_user_id bigint,
twitter(# timestamp varchar,
twitter(# source varchar,
twitter(# text varchar,
twitter(# retweeted_status_id bigint,
twitter(# retweeted_status_user_id bigint,
twitter(# retweeted_status_timestamp varchar  ,
twitter(# expanded_urls varchar);
CREATE TABLE
作ったtableにcsvをcopyコマンドでぶっ込みます。IGNOREHEADERで1行目のヘッダ行は読み込まない、空のカラムはNULLとして入れておく、ってことをしてます。
twitter=# COPY tweet FROM 's3://mybucket/tweets.csv'
twitter-# CREDENTIALS 'aws_access_key_id=%ACCESSKEY%;aws_secret_access_key=%SECRETKEY%'
twitter-# CSV
twitter-# TRUNCATECOLUMNS
twitter-# IGNOREHEADER AS 1
twitter-# EMPTYASNULL;
INFO:  Load into table 'tweet' completed, 202324 record(s) loaded successfully.
COPY
そんでcommit。
twitter=# commit;
COMMIT

Tableau DesktopからRedshiftに接続する

さて、Tableau Desktopを立ち上げてみます。なおTableau Desktopは全機能利用可能な無償トライアル版があります。Redshift接続用のドライバをインストールする必要があるのでこちらからダウンロードしてインストールしましょう。

Tableau Desktopを立ち上げて、[データに接続]をクリック。


接続先サーバから[Amazon Redshift]をクリック。


Amazon Redshiftへの接続情報を入力して[接続]ボタンをクリック。


[スキーマ]から"Public"を選択、[表]の"tweet"を右上にドラッグします。

 すると下欄にデータが表示されます。前述の通り、timestampが文字列として格納されているので、Tableau Desktopの力で変換してしまいます。


該当行で[日付と時刻]を選択。


するとtimestampがちゃんと日付と時刻として表示されます。


分析してみる

例えば月ごとのtweet数を集計してみる。2010年4月の5192tweetが最大。1日100以上tweetしてることになります。バカじゃないか俺


さらにユーザ毎のリプライ数を集計してみます。2位3位に圧倒的な差をつけていたのが@koiwa仲良過ぎじゃないのか


まとめ

20万レコードくらいなら一瞬でグラフ表示してくれます。よく「Redshift + Tableauの組み合せ最強」と言われるけど、こりゃ確かに簡単ですね。今回は簡単な集計しかしていないけれど、Tableauの計算フィールドを使うことでより高度な分析が可能だし、データインポートのバッチの中で付加レコードを作ってもいいでしょう。例えばtext項目を形態素解析して別テーブルに突っ込むことで、どの時期にどんな単語をtweetしているのかを分析すれば、僕の趣味嗜好の傾向が分かって面白そうだなぁ。

ってことで、面白いですよ、Tableau。

2014/10/09

「妻は俺の嫁」出版1周年記念でアップデートしました

もう既に誰もが存在を忘れているであろう、僕が自分で出版した電子書籍「妻は俺の嫁」ですが、2013年10月の出版から1年経ったのを機に、まさかのアップデートしました。誰も第2版になるとは思っていなかったに違いない。フフフ。

妻は俺の嫁妻は俺の嫁


smokeymonkey
売り上げランキング : 12497

Amazonで詳しく見る by AZlink

具体的には表紙を差し替えた上で、この1年間分のtweetを追加してます。書籍の更新のダウンロードはお金が掛かる訳じゃないので、既に購入した方々には勝手にダウンロードされると思います。

半年間の単身赴任から戻ってきてからのここ数ヶ月はいろんな意味で家庭がとても落ち着いていて、あんまりらぶらぶした感じじゃない(まぁこれまでと一緒だな)んですが、相変わらず妻のことは大好きですので、たまに惚気たりもしたいと思いますので皆さん我慢して下さい。

Techmix Hokkaido 2014を開催します


DATE2014/12/06(Sat)
TIMEOpen-13:00 Start-13:30 End-19:00
PlACE札幌市民ホール(札幌市中央区北1条西1丁目) 第1会議室 
PRICE会場費用として¥500頂いております。宜しくお願いします。
STAFF@y_ogagaga @smokeymonkey @kaznum

2014/10/08

「サッカーで子どもをぐんぐん伸ばす11の魔法」読了、そして反省した

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

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

Amazonで詳しく見る by AZlink

(本書まえがきより抜粋)
 少年サッカーの指導を見直すべきです。日本の少年サッカーは変わらなくてはならないと私は強く思います。
私はJリーグ中、最年長の少年サッカーコーチだと自負しています。28年もの間、小学生を指導してきました。大会にも行きますが、そこで見かけるコーチの姿は明らかにスペインで見たものとは違います。常に選手を煽り「シュート!」「寄せろ!」と指示命令が飛び交います。自分で考える時間も、機会も、与えません。なので、ピンチになると子どもは全員ベンチを見るのです。親たちも、わが子に期待するあまり顔をゆがませて怒っています。
 30年近い指導経験の中で、このような大人につぶされていく選手、才能を伸ばしてもらえない子どもたちをたくさん見てきました。日本の少年サッカーを変えていくには、まず大人が変わらなければならないと痛切に感じています。
 育て方さえ間違わなければ、日本の子どもたちはもっと伸びます。今、子どもたちに足らないもの、大人たちが改めるべきものは何でしょうか。

転職してからオフの時間を有効活用出来るようになったので、最近サッカー少年団の指導のお手伝いをしているんだけど、コーチと子供たち、あるいはコーチと親、あるいは親と子供たちの間でたまにトラブルの種を感じることがあった。例えばコーチと合わない子供がいたり、親が厳しく怒り過ぎて泣いてしまう子供がいたり...
僕自身少年団からのサッカー経験者なのでテクニカルなことはある程度教えられるのだけれど、親としてはまだまだ14年くらいしかやってない未熟者だし、特に他人の子供に対してどう接するべきか?というところに不安を持っていた。

そこでその辺をうまいこと教えてくれる本は無いかなぁとAmazonで探していたところこの本を見つけて、その評価の高さから購入。結果から言うと、とても良い本だった。

怒らないで育てる、褒めて育てるというのはドラッカー本とも共通の考え方だと思うんだけど、特に読了後に反省をしたのは「自立性を高めるための努力をしているか、口出し過ぎていないか」という点。子供たちに考えさせる、行動させる、やれと言わずにやらないと自分が困るということを分からせる、など、教育関係の人にとっては当たり前なのかも知れないけれど僕はまだまだ出来ていなかったんだなぁと思った。

例えば僕が指導しているサッカー少年団だと、コーチや親が子供たちに口を出すことがとても多い。よく考えてみると小学校高学年に対して言い過ぎているなぁと思った事が、

  • 準備
  • 片付け
  • 試合前のトイレの声掛け
とか、よく考えたら幼稚園児でもないのになんでいちいち言ってるんだろうと...
「やらないと困る」ということを自分たちで認識して、自発的に出来るようにするべきだったのに、大人が子供の思考を制限してしまっていたんだなぁと、強く反省した次第です。

これから更に本格的に関わっていくことになりそうなのですが、「自立性」を強く意識しながら指導していきたいなぁと思います。

2014/10/03

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

2014年9月は週刊Developers.IOを含めて16本書きました!


10月も10本越え出来るかなー。


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

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

Amazonで詳しく見る by AZlink