転職記事書いてから全く書いてなかった三浦です。

あけましておめでとうございます。

もう2014年になっちゃったけど、2013年の振り返り

買ってよかったもの

iPad mini Retina

  • もっぱらKindleしか使ってないからKindleで良かった説は否めないが、Webページ見たり映画みたりで活躍してるので買ってよかった
  • 容量はいつも悩むけど正直そんないらんのだよな…

PS3

  • ASBをやるために買ったけど…ASB…….

torne と HDMIケーブル

  • HDMI綺麗、torne便利。nasneも買ってもいいかもなぁと思った

SONY ステレオヘッドホン MDR-7506

  • お薦めされたので買っちゃった。職場で集中する時用

ジョジョの奇妙な冒険1部〜7部(電子書籍)

  • 大人買い

ダーツ

  • 練習中

ソルティライチ1.5L * 8本セット * 14

  • 2013/12/22: 2
  • 2013/11/22: 2
  • 2013/10/28: 2
  • 2013/09/23: 2
  • 2013/08/22: 2
  • 2013/07/01: 1
  • 2013/04/01: 1
  • 2013/02/13: 1
  • 2013/01/20: 1 買いすぎですね

転職

  • 2013年の7月に転職しました。 photo

この辺の話はまた別の記事にしよう。Zzz…

全然振り返ってないや…

三浦、会社やめるってよ

私事ですが2013/07/14に株式会社オプティムを退職しました。

新卒として入社して4年と少しの間、とても濃密な時間を過ごし、多くの人と一緒に色々なことができました。

苦しい時間もいっぱいありましたが、とても楽しい時間を素敵な仲間と過ごせたと思います。

自分自身が叩いたrails newコマンドで作られたプロダクトが何個も世に出ました。 これらは自分の子供らのようなものだと思うので、とても思い入れが深いです。 それ故に、政治的な事情で技術的負債を抱え続けなければならなくなったりすると思いをぶつけたり、不貞腐れたりしました(笑)

次第にコードを書く時間が減ってきて、一日中メールを書いていたり、レビューしたり、割り込みに対する対応を1日中やっていて本質的な問題の技術的解決もできなくなってき、やりたいことが公私共にできなくなってきて自分らしくないなと思い始めていました。 1年とモヤモヤしたまま時が過ぎて、多くの先輩と話をしてきて、短い人生なのだから今やりたいことをやらなければいけないなと思い、転職に至りました。

いつやるの?今でしょ。


何をやっていたか

  • 主にRailsでのWeb開発
  • 火消し
  • 広報
  • 社内勉強会
  • リーダー
  • 社内ツール作成
  • Bot作成
  • etc…

品質保証であったり、研究開発だったり幅広く経験させてもらえました。 基本的にはRuby、Rubyしていたと思います。

Railsのバージョンを上げる仕事をしたり、image_pathとかこのへんのメソッドを上書きする暗黒プロジェクトを経験したり 新規でプロダクトを開発したり、残念なブランチが切られないようにRails Engine化したり、色々と試行錯誤して、成長してきたんじゃないかな


戦友たちへ

どうもありがとう。

何個か経験した炎上案件、正直肉体的に苦しかったことが多かった気がする。

でも精神的に苦しかったかというと、うん、苦しかったな。

その中でも一緒に苦しい時間を共にした戦友が何人かいる。

ボロボロになりながら、製品を作って、それを納品した日の達成感を今でも覚えています。

本当にありがとう。そして、お互い身体に気をつけよう。

今後

オプティムで学んだ事を活かして、BtoBから少し離れたところで挑戦します。

photo

今まで以上にコミュニティでの活動はしていきたいと思っているのでこの狭い業界のどこかであったらよろしくお願いします。

wishlistも晒しておきますね。

オプティムのみなさん、社外のみなさん、ありがとうございました。

ではでは、次回作にご期待ください。

Life is short!

Rails4アプリでファイルの変更を検知し、RSpecを実行するようにする。 テストの結果はGrowlにて通知するようにする

環境

  • Ruby 2.0.0
  • Rails 4.0.0
  • Mac OS X 10.8

利用するもの

  • Rspec
  • BDDフレームワーク
  • Guard
  • 監視・実行の管理
  • Growl
  • 通知
  • Spring
  • 事前にアプリを立て、コマンドの実行を高速化する

準備

Gemfileの更新

1
2
3
4
5
6
7
group :development, :test do
  gem 'rspec-rails'
  gem 'spring'
  gem 'guard'
  gem 'guard-rspec'
  gem 'growl'
end

bundle install

rspec:install

1
spring g rspec:install

spec/spec_helper.rbなどが作成される

guard init

1
gurad init

GuardfileというGuardの設定を記述するファイルが生成される

guard rspecでspringを使うようにする

guard :rspec doという記述をguard :rspec, spring: true doに変更する これによってguardでrspecが動く場合にspringで立てたテスト用のプロセスで実行されるようになる

基本的に作業はこれだけ。 あとはファイルを更新してテストが走ったり、通知がいくことを確認できれば問題なし。

かなり簡単に自動でテストが回る環境が作れた。 無意識にテストが実行されフィードバックが返ってくるのはとてもよい。

Rails4が出たということでdatabase_cleanerを始め開発環境を再度整えて行きたい

個人的にとても見やすいフォントのRictyをHomebrewで手軽にインストールできるみたいですね。

こちらのとおりに

1
2
brew tap sanemat/font
brew install ricty

しばらくするとインストールが終わるので、表示されるメッセージに従ってコマンドを実行

1
2
3
4
5
6
7
8
9
10
11
***************************************************
Generated files:
  /usr/local/Cellar/ricty/3.2.1/share/fonts/Ricty-Bold.ttf
  /usr/local/Cellar/ricty/3.2.1/share/fonts/Ricty-Regular.ttf
  /usr/local/Cellar/ricty/3.2.1/share/fonts/RictyDiscord-Bold.ttf
  /usr/local/Cellar/ricty/3.2.1/share/fonts/RictyDiscord-Regular.ttf
***************************************************
To install Ricty:
  $ cp -f /usr/local/Cellar/ricty/3.2.1/share/fonts/Ricty*.ttf ~/Library/Fonts/
  $ fc-cache -vf
***************************************************

こんなメッセージが出ていました。

1
brew info ricty

で再度見れます。

便利便利

6/25 Rails4.0.0がリリースされました。

ということで早速Rails4でプロジェクトを作成。

  • Ruby 2.0.0-p247
  • Rails 4.0.0
  • Mac OS X 10.8.7
1
gem install rails

プロジェクトの作成

1
rails new your_project_name -B -T -d mysql
  • rails new後のbundle installがとても嫌いなのでskip-bundleをしたいので-Bオプションを付与
  • test-unitではなくRspecを使いたいので-TでTest::Unitのファイルが作成されるのを回避
  • 今回はDBをMySQLにしたかったので-d mysql
  • デフォルトはsqlite3

tree

作られたファイルの確認

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
.
├── Gemfile
├── README.rdoc
├── Rakefile
├── app
│   ├── assets
│   │   ├── images
│   │   ├── javascripts
│   │   │   └── application.js
│   │   └── stylesheets
│   │       └── application.css
│   ├── controllers
│   │   ├── application_controller.rb
│   │   └── concerns
│   ├── helpers
│   │   └── application_helper.rb
│   ├── mailers
│   ├── models
│   │   └── concerns
│   └── views
│       └── layouts
│           └── application.html.erb
├── bin
│   ├── bundle
│   ├── rails
│   └── rake
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   │   ├── development.rb
│   │   ├── production.rb
│   │   └── test.rb
│   ├── initializers
│   │   ├── backtrace_silencers.rb
│   │   ├── filter_parameter_logging.rb
│   │   ├── inflections.rb
│   │   ├── mime_types.rb
│   │   ├── secret_token.rb
│   │   ├── session_store.rb
│   │   └── wrap_parameters.rb
│   ├── locales
│   │   └── en.yml
│   └── routes.rb
├── config.ru
├── db
│   └── seeds.rb
├── lib
│   ├── assets
│   └── tasks
├── log
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── favicon.ico
│   └── robots.txt
├── tmp
│   └── cache
│       └── assets
└── vendor
    └── assets
        ├── javascripts
        └── stylesheets

31 directories, 34 files

binやapp/models/concernsなどが増えていますね!

rspec-railsの導入

rspec/rspec-railsに従って

1
2
3
4
# Gemfileに追加
group :development, :test do
  gem 'rspec-rails', '~> 2.0'
end
1
bundle
1
rails g rspec:install

db:create

1
rake db:crate

server start

1
rails s

そんな訳でとりあえず起動した。

rspecのくだりは別にいらなかったね。

mac, vim

MacのVimは初期状態でclipboardが有効になっていなくて辛いのでvimからclipboardが使えるようにする

1
vim --version |grep clipboard

結果

1
2
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
 -xterm_clipboard -xterm_save

現時点ではHomebrewのVimのFormulaはclipboardに対するオプションがないみたいなのでMercurialからソースを持ってきて対応する

1. hgコマンドを使えるようにする

1
brew install hg

2. vimをinstall

1
2
3
4
5
6
hg clone https://vim.googlecode.com/hg/ /tmp/vim
cd /tmp/vim
make clean
./configure --prefix=/usr/local --enable-multibyte --enable-xim --enable-fontset --enable-rubyinterp --enable-perlinterp --with-features=huge --disable-selinux
make
make install

3. 確認

1
/usr/local/vim --version |grep clipboard

+clipboardが含まれていればOK

configureに与えるものは各自必要なものを指定すること

6/15に行われた高専カンファレンス5周年記念パーティーに参加してきた。

高専カンファレンスで人生を(良い意味で)狂わされた自分自身としては、5周年というのはとても感慨深いものがあるなぁと老害オーラを出していた。

なんだかんだでいつも発表したり運営側にいるので、今回は1パーティーの参加者としておとなしくしていようと思ったのだが、なんというか会場の空気にやられて飛び入りLTをさせていただいた。(運営のみなさん、ありがとうございました)

心地良い空気

全然準備できなかったので、ネタもなにもないし、〆方も失敗した。

伝えたかったのは「空気」の話

高専カンファレンスに限った話じゃないが、いろんなイベントやいろんなコミュニティがあって、そこには様々な雰囲気があって、多くの楽しさや、問題があると思う。

僕はあの空気が好きだし、バカみたいなことをしているのを見ていてもそれなりに楽しい。

あの場には多くのエンターテイナーがいてコンテンツが充実していて楽しい。

ネットワーク職人だったり、配信職人もいるためUstreamで配信を見ていれば十分楽しいというのもわかる。

でも、Ustreamじゃ空気が伝わらない。

参加してみないと分からないものがあるから、試しに1度参加してみてもらいたい。

「高専カンファレンスに参加しにくい。」というのもわかる。

誰も知らない、何も知らない状態で参加しようとするのは勇気がいるなぁと思う。

それだけ、高専カンファレンスは浸透してきているし、複数回参加したことがある人が増えたり、TwitterやFacebookを始めとして参加者間でコミュニケーションが取られているのが事実としてあるので、内輪感が出てしまう。

(内輪感がないメジャーな勉強会をそんなに知らないので高専カンファレンス特有かはわからないが)

でも、あのコミュニティは暖かいから、ぜひ参加してみてほしい。

その上で、あの空気が好きだったら、ぜひ作る側になってほしい。

内輪感を作るなというのも難しい話だから、そこはできてしまうものとして考えた上で、初めて参加してくれる人への配慮を運営を含めた参加者ができるととても素敵だなぁと思う。

さいごに

運営のみなさん、会場を提供していただいたVOYAGE GROUPさん、参加者のみなさん

素敵な空気と時間をありがとうございました。とても楽しかったです。

Happy anniversary!

2013/03/23にRails寺子屋というイベントを開催し、講師という立場で参加した。

午前10時という時間から開始ということで、寝坊だったり、遠方からの参加者は朝から東京に投げ出され大変そうだった印象。

あと、鉄道のICカード統一で駅が大変なことになっていた。速い人は5時くらいから並んでいるとか…

さて、寺子屋ですが

@RooandQoo ちゃんと一緒に1グループ担当しました。この日のために服装を揃えました(嘘です)

P3233335

午前

午前中は環境構築をする時間として設けていて環境構築をしつつ、終わったメンバーと対談したりRubyで簡単なプログラムを書いてみたりしてました。

  • RubyでFizzBuzzしてみたり
1
puts 100.times.map { |i| (s = ((i % 3).zero? ? 'Fizz' : '') + ((i % 5).zero? ? 'Buzz' : '')).empty? ? i : s }
  • 与えた文字をランダムで利用して140文字の文字列を作る遊びなど (下の例ではsを与える文字にしてます)
1
2
s = "みうらたくみ"
puts 140.times.map { s.chars.sample }.join

午後

ワークショップのメインということでRailsを使って簡単なアプリケーションを作ってみようというコーナーでした ここではRails Girlsというイベントの教材を使って、Herokuにアプリケーションをデプロイするところまでやりました。

まずは、この教材の出来がとてもよい。

反日でRailsアプリを1つ作り、Herokuにデプロイし1サービスの提供者になれる。

基本的に教材にそってやっていき、都度必要な説明を講師陣で加えていくという形で行なって行きました。

無事全員がHerokuにデプロイするところまで行きました。素敵

懇親会

みんなでピザを頬張り、ワイワイしてました。

感想

Rails Girlsの教材はとてもよい。

Railsの手軽さは体験してもらうことはできたと思う。

ただし、学習コストが高いRailsなのでアフターサポート的なものがあるとよいのかなぁと思いました。

気軽に@mitakuまでどうぞ!

参加者のみなさん、講師の皆さん、たくさんの関係者のみなさんありがとうございました!

楽しいRailsライフを!!

もうすぐ社会人になってから4年が経とうとしている。

その社会人生活の中で「Ruby」という素晴らしいツールと触れていた時間がとても多かった

振り返ってみたので、形に残そうと思う。

長文になっちゃいそうだ

ボクはRubyが好きだ

Rubyをキメると気持ちいい

RubyKaigi2008のときにまつもとゆきひろさんの名言

Rubyを書いていると楽しい

Rubyっぽく書けたらすごく嬉しい

ボクはRubyが好きだ。

Rubyを使っている人たちも好きだ

Rubyコミュニティが好きだ

仕事の武器としてのRuby

現在Rubyを1つの武器として、仕事をしている。

最近の嬉しいニュースとして

2012年の12月に片手間で進んだプロジェクトが最近リリースされ、はじめてのユーザーがついたらしい。嬉しい。

学生時代はRubyを触ったことなんかなかったが、今や立派な武器になっている。

きっかけ

2009年の4月、アルバイトをしていた現在の会社に新入社員として入社した。

当時は日本の家庭に配布されるWindowsアプリケーションの検証作業をしていた。

大黒柱的な存在のプロジェクトの一員として時間を過ごしていた。(はず)

ただ、Excelの表を埋める作業というのはボクは好きになれず、楽しくはないのでモヤモヤしてた。

風通しのよい職場なので日報や呑み会の席で「コード書きたい!」的なことを延々と言ってた。

時には社長に、時には開発の責任者に、時にはプロジェクトのマネージャに

今思うと、よく言ってたなぁ

そしたら6月の夜中に、当時のマネージャから異動の話をもらった。

そのシーンがすごく印象的で今でも覚えている。Rubyと付き合い始めるきっかけである。

異動先のプロジェクトは研究開発プロジェクト。

そこでRuby on Railsを使って世界を変えるアプリケーションの開発をすることになった。

挑戦と野望

  • 当時のスキルセット
  • C/C++ (学校で習う程度)
  • C# (趣味でアプリケーション作る程度)
  • Windows (Win32 API叩いて遊ぶ程度)
  • Linux (基本的な操作がCUIでできる程度)
  • HTML/CSS/Javascript (趣味でホームページ作る程度)

そこはとても苦しく、楽しい世界だった。

  • Ruby
  • Ruby on Rails
  • Webアプリケーション
  • MVC
  • MySQL

全てが新鮮で、全てが力不足で、全てが刺激的だった.

環境構築には当たり前のように躓き、貧弱な.vimrcで戦っていたなぁ…

当時はbundlerなんてなかったから、アプリケーションの起動にすら苦労した記憶がある

若いメンバーで構成されているプロジェクトで、社内にRubyのエンジニアはほとんどいなかった。

なるべくして、Rails Wayから外れたアプリケーションになっていた。

ボクとしては、すごくチャンスに感じていて

これなら、社内で(Ruby on Railsの)エンジニアとしてトップに立てるんじゃないかと思って、そこからRubyとの激しい付き合いが始まった。

社内で勉強会を開催したり、趣味でアプリケーションを作ってみたり、来週作るであろう機能を家でプロトタイピングしてみたり

とにかく手を動かしていた印象がある。

未熟者のボクに多くのことを教えてくださった、

プロジェクトのメインプログラマの人たちがやめるタイミングが1つの進化のきっかけだったのかもしれない。

よりRubyやRailsの知識が求められるようになって、より高度なことを任せてもらえるようになった。

疑問の答えを持っている人が社内にいなくなったときに、外の世界へ飛び出した。

  • RubyKaigi
  • Coffee.rb
  • デブサミ
  • etc…

外の世界は刺激的で、何かを患っている人がいっぱいいて、仲間がいて、楽しかった。

暗黒魔法

Ruby on RailsにはPluginという機構がある。

事業の拡大とともにアプリケーションを使ってくれる人が増え、要望も増え

ブランチ開発にも飽きたのでプラグインで差分を吸収できるようにしたかった。

Pluginを使うにはRails2.3に上げる必要があったので、脱線しているRailsレガシープロジェクトを2.3に上げる必要が出てきた。

すげー苦しかった。(笑)

  • そもそもアプリケーションが起動しない
  • ありがちなメソッド名のヘルパーがRailsに追加されて(プロジェクトで使ってて)動かなかった
  • 動かないGemは出てきてモンキーパッチを当てる
  • そもそも通ってないテストコードがいっぱいいた
  • 嘘をついているコメント
  • 意図が分からないコード

こんな状態なので作業自体が見積もれなくて、進捗も分からなかったし有識者もいなくて、困った。

結果的にプロジェクトへの理解は深まったし、Railsにも少し詳しくなれた気がする。

そうそう、この時のハイライトといったらとある目的を達成するために

image_pathとかimage_tagalias_method_chainとかしてる当たりがエグい

黒魔術とかそういう次元じゃなくて暗黒魔法だった。今もそれを利用されてて、泣きたい。

自由な空

2年目の3月に大きな挑戦のチャンスをもらえた。

スマートフォンの法人利用が増えてきて、新たなビジネスの波が生まれた。

そのとき、以前から関わっているプロジェクトのスマートフォン対応が必要になった。

ユースケースも、機能も違うこともあり、レガシープロジェクトにそれをのっけるよりは

新たなプロジェクトとして1から作ることになった。

当時でてきたRails3での初プロジェクト、多くの部分を開発させてもらえた。

多少の不安と、ワクワク、ドキドキに支配された時間だった。

なにより、足枷がない、フットワークが軽い状態の開発は初めてで、とても幸せな時間を過ごしていたんだなと、今になって思う。

当然エンジニアがいないから、開発は楽じゃなかったけどこの経験は今の生活にも活きてきている。

この時バージョン管理はGitになったし、Hamlを標準で使うようになったし、Hudson(現Jenkins)を導入した。

進化の速度

作ったプロダクトが基盤となって、いろんなプロダクトが生まれた。

当時の流行りは今の流行りじゃないことが多くて、そのまま利用されると少し恥ずかしさが残ってしまう。

ただ、進化が速いところはとても好きだ。

Ruby on RailsやWebはいつでもボクを挑戦者にしてくれる。

2ヶ月前のbetterは今のdefactだったり、オワコンだったりと怠けるとすぐに時代遅れになってしまう。

とても楽しい世界だ

楽をする

人生は短い

自分のやりたいことをやるに人生は短すぎる。

ボクには面倒な作業で楽をするためのツールとしてRubyがいた

毎日5分かかってた作業が30秒で終わるようになったらそれはとても素晴らしいことで

素晴らしいことを大好きなRubyで行えるということはとても素晴らしいことだと思う。

毎日の退屈な5分間を無くすために、好きなエディタ、好きな言語で楽しくプログラミングをして、時間を使うのはとても有意義だ。

テスト用のアプリ、オレオレ7つ道具、Rubyで解決できる問題も手段もいっぱいある。

なぜRubyだったんだろう まとめ

  • まとまらない
  • Ruby on Railsで社内でトップになれるんじゃないかという野望
  • Rubyを取り巻く環境が好き
  • Rubyを書いていると楽しい
  • 継続は力なり
  • 人生は短い!
  • これからもRubyと付き合って行きたい

全然まとまらなかった。

とりあえずこのへんで

押忍!!

Google Readerのサービス終了予告から、数日が経ちました。

ボクも情報収集の起点には「Google Reader」がいて、 1つの大きな穴が開いてしまった感覚に襲われた。

穴が開きっぱなしだとやっぱり困るので、

補修をすべくFeedspotというサービスを試している.

穴は当分埋めれなそうだけど…

よい機会なのでRSSの整理を始めた。

本題

はてなブログをRSS登録しようとしたら、ぱっとfeed飛ばしてそうなURLを見つけれなかったのでメモ

http://XXXX.hatenablog.jp/feed

で良いみたい。