Satoryu's Diary

Rubyが好きな貧乏プログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2017年12月12日 [長年日記]

_ ディスプレイアームを買った。

24991206_10212562636393350_6551893345108640012_n

Amazonのサイバーマンデーセールで3,980円で売られていたので、買ってみた。
アフィリエイトで稼いだギフト券をボーンっと投入して、すぐに届いたので設置してみたところ、かなりQoLが上がった気がする。

モブプログラミングの配置として、ディスプレイを右側に置いている。
たまに別々の作業をする時に正面に置きたくなるのだけど、この移動が面倒くさい。で、ディスプレイアームにしてみたら、正面に近づけられるし、側面にも置けるし、高さも変えられる。首や肩にかなり優しい。

宣伝

今モブプロをしているチームのメンバーが書いた記事が12月23日発売のWEB+DB Press に掲載されますのお知らせ*1

仕事でモブプロをガチでやってる姿とか、モブプロでどういった効果があるのかが書いてあるので、気になってる方は是非手にとってみてください。

*1 僕は書いてませんw


2017年10月28日 [長年日記]

_ 楽天テクノロジーカンファレンス2017 に少しだけ参加してきた。 #rakutentech #rtech_unconf

娘の塾の送り迎えと被ってて参加が難しかったのだけど、漆原さんの話を聞きたくて、参加してきた。

IMG_4376

今年で36になってから、この先どう進んでいこうか考えている。
今後もエンジニアとしてやっていきたいが、周りにモデルとなる人がいない。
誰かと同じパスを通りたいという訳ではないが、参考になる人が身近にいない*1
エンジニアではなくマネージメントとして進んだ人、直接コードを書かずに上流工程のみで食べていっている人と様々だが、コードやプロダクトを目の前にしているエンジニアで居続けている人は身近に見当たらない。そんな状況の自分にとって、このセッションタイトルはとても魅力的だったし、自分の考えとすごく合うところだった。

漆原さんの仰る「世代を越えて繋がる」というのは大切だと思った。
当たり前だけど、年を取っていったら仕事で関わる人は、年下の方が多くなる。そんな中で、新しい技術やビジネスに携わっているのも下の方が多くなる。
そういった人たちとどう関わっていくかで自分自身の技術にも影響していくんだと思う。そのために漆原さんが取っているアクションとして、若い世代へコミットする、そして(勝手に)若い人を自分のメンターとする、というのがすごいと思った。年功序列というか、日本的な考えというか、なかなか若い人に教えを請うというのが難しい。自分は年齢とか気にしたことは無いが、出来ているかというとなかなか怪しい。

そして、一貫して言っていたのが「楽しいは最強」ということだ。
RubyKaigi 2011で情熱プログラマーのサイン会でチャド・ファウラーが書いてくれたメッセージが「Keep it fun!」。そして、Rakuten Technology Conference 2013でデイブ・トーマスが達人プログラマーにサインしてくれた時にくれたメッセージが「Make it fun!」。楽しいことはやはり重要なんだとあらためて思った。逆に言えば、楽しいと思えなくなった時にエンジニアの辞め時なんだろう。

  • 今繋がっている人たちで若い世代とつながれているか
  • 会いたいと思った人に会えているか
  • メンターと思える人がいるか

といったことを都度振り替ってみようと思った。
これからも楽しくエンジニアとして生きていくために。

*1 後から考えてみると、身近にいないだけで、SNSで繋がっていて、ちょっと遠くにはいる。


2017年10月09日 [長年日記]

_ 「ピープルウェア」を読んだ。

何かのセールで購入したピープルウェアを読み終えた。「働き方改革」という言葉が出回っている今に読むと良い本だと思った。

ソフトウェア開発のための良い環境とは何かということが、著者のトム・デマルコ氏や氏の関係者らのコメントを交えながら書かれていた。おそらく、エンジニアとしてコードを書いて長らく仕事をしたことがある人なら、この本に書かれていること読めば、「そうだそうだ」と頷くのだと思う。
ソフトウェア開発に限らず、複数人で1つの目的に向かってチームで仕事をしている人たちにも、同じことが言えるのだと思うので、ITに関わらない人たちも読んで欲しいです。ITに関わる人たち、特にオフィスの環境やコミュニケーションの設計に関わる人は読んでください。

この本の初版が30年前に書かれてるのに、それに共感してるのってまだまだ自分の周りがその頃から進んでないってことなんじゃないかと思うと残念な感じがする。


2017年10月08日 [長年日記]

_ OSS Gate 東京ワークショップ PHPカンファレンス2017会場編にサポーターとして参加してきた。 #oss_gate #phpcon2017

毎年この時期に大田区PiOで開催されるPHPカンファレンス の中で1会議室をお借りして開催できることになったので、サポーターとして参加してきた。ビギナーが8名、サポーターが4名。カンファレンスと同時開催ということで、参加人数がどれだけ来るか心配だったが、昨年に東京Ruby会議で開催したときと同じくらいで安心した。

いつものワークショップは午前と午後の1日コースだけれど、今回はおよそ2時間の短縮モードでやった。各ビギナーの方々には事前に対象とするOSSを選んでもらっていたので、導入はスムーズだったと思う。やはり、カンファレンスのPHP関連のOSSが多かった。短縮モードではあったが、いつもの手順でもくもくと進めて、プルリクを送ったり、Issueを送ったりするビギナーがいた。その他のビギナーも、フィードバックは時間内にできなくても、ネタは見つけて、後は整理して送るだけという状態にまでたどり着いたようで何より。

このOSS GateはたまたまRubyコミュニティの人から始まっただけなので、PHPや他の言語のコミュニティでも広まっていくといいなぁ、ということを帰り際にサポーター陣で話をした。
そのためには、まずは自分からPHPコミュニティってどんな人達がいるのか入っていってみよう。


2017年10月04日 [長年日記]

_ 「初めての自動テスト」を読んだ。

この本は、アジャイルサムライのJonathan Rasmussonが書いた、ウェブアプリケーションエンジニア向けの自動テストの入門書だ。アジャイルサムライのように可愛らしいキャラクターと共に、一部対話を交えながら、自動テストの全体観を知ることができる。
エンジニア向けのテストの本というと、テスト駆動開発が有名だが、この本はそれだけでなく結合テストやUIのテスト、そしてそれらの自動化についてカバーしている。

この本のすごいところは、自動テストを書くにあたり必要な基礎知識がわかりやすく書かれている。HTTPやRESTfulなど、それぞれで深く掘り下げて本が書けるものが、この240ページほどの中に収められている。なので、テストコードを書くことになったり、自動化を任された新人が読むのに最適だと思う。エンジニアに限らず、普段コードを書いていないけど開発に関わる人、例えばマネージャーやプロダクトオーナーの方々にも読んで欲しいと思った。


2017年09月23日 [長年日記]

_ libv8 のバージョンについて知る。

久しぶりに少し前のRailsアプリを触ることになって、bundle installしたところ、よくつまづく代表格であるlibv8 のインストールで失敗した。

環境は、

  • macOS 10.12.6
  • Rails 4.2.8
  • Ruby 2.2.2
  • libv8 3.16.14.3

である。ここで関係してくるのは、macOSであることとlibv8のバージョンのみ。

調べてみると、いくつかQiitaの投稿やブログを見つけ、それらの手順はこんな感じ。

$ brew uninstall v8
$ brew tap homebrew/versions
$ brew install v8-315
$ bundle config --local build.libv8 --with-system-v8
$ bundle config --local therubyracer --with-v8-dir=/usr/local/opt/v8@3.1.5
$ bundle install

つまり、インストール済みの最新のv8をアンインストールして、古いバージョンをインストールすると、libv8とtherubyracerをインストールできるということだ。

いままで自分が見つけた解決法に関する記事の中から、上の方法でなぜ解決できるのかを書いているものを見つけられなかったので、調べてみた。

で、タイトルにあるように、バージョンの問題ということがわかった。
そして、そんなに深く調べるとか必要なく、libv8のREADMEにちゃんと書いてあった。

Versions of the libv8 gem track the version of V8 itself, adding its own point release after the main V8 version. So libv8 5.0.71.35.5 and 5.0.71.35.14 both correspond to V8 version 5.0.71.35. Another way to think about it would be that 5.0.71.35.14 is the 14th release of the libv8 rubygem based on V8 version 5.0.71.35

つまり、libv8のバージョンは対応しているv8のバージョンと同じということ。
で、それが違う組み合わせになると、動作するかどうかは互換性が維持されてるかどうかになっていて、メジャーバージョンが違ってたりするとそれが顕著に出るということ。実際に、それまでインストールしてたv8のバージョンを調べてみると、

$ brew info v8
v8: stable 5.1.281.47 (bottled)
Google's JavaScript engine
https://github.com/v8/v8/wiki
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/v8.rb
==> Dependencies
Optional: readline ✔
==> Requirements
Build: python ✔, git ✔
Required: macOS >= 10.7 ✔
==> Options
--with-readline
        Use readline instead of libedit

ということで、やはり違うバージョンだったのでエラーが起きていたことがわかった。

もし今後、v8のインストールで失敗した時は、バージョンを確認することでサクッと解決できるかもしれないので、チェックしてみましょう。


2017年09月17日 [長年日記]

_ rakuten_web_service 1.7.0 リリース

楽天の提供するウェブAPI「楽天ウェブサービス」のオフィシャルRubyクライアントであるrakuten_web_serviceの1.7.0をリリースしました。
明日からRubyKaigi 2017ということで、なんとなくそれに合わせてのリリースです。

変更点

  • RakutenWebService::SearchResultRakutenWebService::Response にページングのためのメソッドを追加しました。
  • gemspecに定義されている開発用gemから、Visual Studio CodeのためのものをGemfileに移しました。
  • README.ja.md の一部内容が古いので直してもらいました。
    • jinco13さん、ありがとうございました!

詳細はCHANGELOG からご確認ください。

参考