Lazuli

らずり

継続的デリバリーを読んだ

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

ようやく読み終わった。
コミットからビルド、テスト、デプロイまでのパイプラインをとにかく自動化しろと言われる本だった。
意識高い本だったから意識高めて頑張って実務に活かしたいですね。
良い本なのでお勧めです。

Serverspec 本を読んだ

Serverspec

Serverspec

読んだ。Serverspec 使う機会が多くなってきたからほうほうと読めた。
mizzy さん、プロジェクトに対してめっちゃストイックですごい。

Kindle 版はないから電子書籍で欲しい人はオライリーから買おう。
俺はオライリーで買った。

GitHub のトレンドをチャットに投稿して遊んでる

GitHub にはいま話題になってるリポジトリが見れるページがある。

github.com

ここでトレンドを拾ってチャットにポストするのが結構おもしろい。
昼休みにポストしてだらだら中身見るとかやってる。


Post GitHub trends to Chatwork

GAS で動かしてる。
トレンドページからリポジトリ名を拾ってチャットにポストするだけ。
GitHub API にはトレンドを拾うやつがないから正規表現で泥臭く拾う感じ。

会社のチャットは Chatwork 使ってるんだけど、最近メッセージが取れる API が出来たらしいから Hubot 使ってやるほうがおしゃれではあると思う。


ポストされている様子。
f:id:app2641:20150516181707p:plain

Apple Store の付近をうろつく機会があったから新しい Mac Book がどんなもんか触ってきた。簡単に感想を。
Apple Watch は興味がないので見てない。

Apple - MacBook

キーボード

キーボードはバタフライ構造というやつ。Mac のキーボードは比較的打鍵を感じない作りのものが多いが、より軽く打鍵出来るようになっていた。キーを押すというより触っている感覚に近い。文字を打つのが気持ちいい。横いっぱいになったキーボード配置も特に気にならなかった。

トラックパッド

トラックパッドは感圧タッチ。これも良い。従来のはタップで押しこむ場合、トラックパッドの下部でしか反応がなかった。感圧式になってトラックパッド全体で反応があるようになっている。押した後の跳ね返りといえばいいのか、タップ後の感触もなめらかでこれも触っていて気持ちがよかった。

USB Type-C

表裏がないのは良い。しかしそれだけだと思う。まだ普及してないから当分は古いポートのガジェット類を使うために変換アダプタがいる。その上、Apple の出してる変換アダプタは見た目がねぇ。
あと、装着脱着が面倒くさい。今までの電源アダプタはマグネットで吸着してたから付けやすく取り外しやすかった。USB になって簡単に抜き差しがしにくくなっている。ぐりぐりやらねばならん。

ディスプレイ

Retina は綺麗。Mac Book で付くなら MBA にも付けてほしい。

カラー

ゴールドは良くなかった。iPhone はええやん〜って思ってたけどラップトップになると色がきつく感じる。スペースグレイがシックで良かった。買うならこれがいいと思う。

重さ

訓練された林檎信者にとっては軽く感じるだろう。一般人にはあの薄さでこの重量は重い。いつも通り。

発熱

冷却ファンがなくなって熱はどうなってるかと気になってた。まあ、熱い。キーボードやらを触ってる分には気にならないが、底を触ると普通に熱い。特に CPU 使わずにあれだから重い処理をしたらどうなるのか。

まとめ

スペックそれほど良くないし、開発やゲームするのに買うのはやめたほうがいいと思う。Rebuild でも言ってたようにネットサーフィン用という感じだった。高級 Chromebook だな。そういう意味では USB がひとつでも支障はなさそう。
実験的な機能が多いから新しい物好きは買っても良いと思う。

浜松Ruby会議01に参加した

regional.rubykaigi.org

これ。
幅広い内容の話が聞けて楽しかった。
みんなスキル高いよな。Ruby のみならず素養からして。

お酒も飲んで良い気分で帰宅。

React を使ってみた感想

最近、個人でウェブサービスを作ってる。まだ全然出来ていないけど。
どうせだし新しい技術を試す機会にしようと React を使ってみることにした。

facebook.github.io

近年の JavaScript フレームワークは Angular, Backbone, Vue と乱立しててぐへえとなるしかない状況でまるで触る気が起きなかった。しかし React はそれらのフレームワークとはアプローチが違ってエポックメイキングなフレームワークになる、と思う。いやもう博打に近い感覚だが。

Virtual DOM

React の話をする上でよく言われるのは仮想 DOM (Virtual DOM) という機構で React の内部で DOM ツリー構造のような仮想のツリー構造体を保持し、イベントの発生など DOM を書き換える場面になったら新しい仮想 DOM と既存の仮想 DOM との差分を導き生の DOM として生成して書き換える、という役割を持っている。たぶん。
実際にユーザが React を触る際に仮想 DOM がいまこうなってるはずだから〜などいちいち考える必要はなく、 React 内部に隠蔽されいるため特に意識する必要はない。意識する必要はないんだけど、DOM の書き換えは前述のとおり仮想 DOM の機構ですべて行うようになるため今までのように jQuery 使って DOM をグリグリいじくり回すとのはご法度になる。外部から DOM をいじってしまうと 仮想 DOM の diff が壊れてしまい正しく動かない。なので今まで培ってきた jQuery の DOM 操作プラクティスは使えないということになる。ただ、逆に言えば DOM さえ触らなければ良くて、 $.ajax 使うとかそういうのは問題ない。Ajax 使うために jQuery を選ぶというのはちょっともにょるが。

と、ここまで仮想 DOM について書いたけど個人的にそれほどすげえなと思ったわけではなくて、フロントエンド詳しくないし、は?JSX?なにそれ謎と言った感想が次々と湧いてきてようやくそういうことねと分かってきた感じ。bower とかいうのも初めて使ったけどやはりどの言語でもパッケージツールは便利やで…

コンポーネントの書き方

React 良いなと思ったのはコンポーネントの書き方だった。Angular とか使ってないからそこら辺のフレームワークがどうなってるか知らないけど jQuery でぐりぐりいじってた頃と比べると格段にイベントの管理がしやすい。
jQuery だとこの DOM のイベントはどこにあって、いつ書き換えられるのか、いまどういう状態なのかというのが全然分からない。ソース読めば分かるんだけど全体を読まないと分からないというか、イベントが飛び散ってるんだよな。それが React だとコンポーネントの中にイベントを書くしかなくて探す必要がなくなる。DOM の状態も仮想 DOM が吸収してよしなにしてくれるから気にする必要もない。このコンポーネントの動きが知りたいと思ったらコンポーネントのソースだけを見れば動きがすぐ分かるという感じ。見通しが良くてこれには琴線に触れるものがあった。
ここでひとつ、実際に見やすさをソースとして示しておきたいところだが、React の知識が多少ないとソースは読めないと思うし、知識がある人がソース見ても既に知ってることだからなんら感動を得ないと思う。自分で調べるとよろしい。

Flux について

React が採用してる新しいアーキテクチャMVC を破壊する!という話を聞いたけどまだ実態がよく分かってない。
これから理解していきたいですねー。

学び方

とりあえず React を学びたいのであればこのアドベントカレンダーを読むのは欠かせないと思う。

qiita.com

まだ途中までしか読んでいないけど、丁寧に親切に分かりやすく書いてある。この一人で布教する熱量たるや、やはり React 来るで…と思わせるものがある(本当か?)
まあそんな感じでReact 触るの面白いからもう少し勉強してみようと思う。実務で使う可能性は限りなくゼロに近いが。