RubyKaigi 2018
に、行ってきたんだけど今日は疲れてるのでとりあえずPOSTするだけ。 書くの忘れてた。
Rails Developers Meetup 2018
今かよってタイミングだけど、そろそろRubyKaigiだし下書きに残ってるままだったのでPOSTします。
railsdm.github.io Rails Developer Meetup2018に行ってきました! 今ではYoutubeで各セッションを見られるようになってますね。 以下、小並感。
Day1
1日目はマイクロサービスをテーマにしたセッションが多かったのが印象に残りました。
- モノリシックなサービスをマイクロサービスに移行した話。
- モノリシックなサービスになってしまった現状と今マイクロサービスに移行している話。
- マイクロサービス否定派・肯定派。
あたりの話を一通り聞いたら、日本のウェブ業界で実装されているマイクロサービスの現実がイメージ出来ました。 名言、「分断されたモノリス」は良いフレーズなので個人的に使っていこうと思いました。
Day2
2日目はDockerでRailsの開発を進める時の悩みや技術的負債を半年かけて返済したなど、現場ですぐに活かせそうなノウハウが多めでした。 ただ、やっぱりメインは基調公演「これからの Ruby on Rails」ですね。 日本人のRails commiter3人による鼎談。内容は書いていいのか不明なので書きませんが、今後のRailsが楽しみになる素晴らしい内容でした。
まとめ
業務でRailsを使っているエンジニア向けのMeetupということもあり、発表される内容に実際の業務での泥臭い部分が見え隠れしているところがリアルで良かったです。 最高のMeetupだった。
近況報告
5月末までで
例のリスト → http://amzn.asia/eMWwoKf
例のリストのCV
- 出版社/メーカー: Blenheim Bottling Company
- メディア: その他
- この商品を含むブログ (1件) を見る
lumière douce 珪藻土バスマット 風呂マット 足ふきマット 消臭 速乾 防カビ 防ダニ 約60cm×39cm オフホワイト ピンク 二色 (オフホワイト)
- 出版社/メーカー: lumière douce
- メディア:
- この商品を含むブログを見る
リーダブルコード
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (138件) を見る
有名な本だけれど読んでなかったのだが、某所で話題になったのをきっかけに一気に読んでみた。
正直、10数年ソフトウェアエンジニアとして生きてきたオッサンにとっては「まあそうだよね」という内容で、95%以上の部分は本書を読む前から自然とやっている内容でした・・・・・と言うならお前の書くコードはリーダブルコードに出てくる内容を全て網羅した綺麗なコードばかりなんだろうな?と言われるとそうとは言い切れないですし、同じテーマで本なりブログなり書いてみろよと言われても、本書の内容をサラサラ書いていくことは出来ないと思います。これらの内容を言語化し、うまくまとめたことに価値がある。
書かれているノウハウに反論したくなるような部分はほぼ無く、リーダブルなコードを(書きたい || 書くべき)プログラマ全員に読んでもらいたい名書であることは間違いありません。
本書を一通り読んでみて思ったのは、ある一つの事を意識していれば最終的にはリーダブルなコードに行き着くんだなということ。それは「自分以外のエンジニアが理解出来るコードを書く」ということです。
新卒でも理解できるか?即戦力のエンジニアが見たらどう思う?自分が今置かれている環境で想定できるエンジニアをイメージし、その人が初見でも読める実装を目指す。そうやって数年コードを書き続けていれば本書は不要かもしれません。
しかし本書は、
- 若手
- 同僚にお前のコード汚くて読めないと罵られた
- なんか俺が作った部分は俺以外のエンジニアが触りたがらないなー、なんでだろう?と日々思っている
といったエンジニアが読めば、最速でリーダブルなコードを書けるようになる一冊であることは間違いありません。
MacBookAirのバッテリーを交換した
今のMacBookAir(2012mid)を使い続けて5年。 ついにバッテリーの表示が「バッテリーの交換修理」となってしまいました。 最近やたらとバッテリーが切れる時間が早いので嫌な予感はしていたけど、ついにこの時が来た。 通常であればAppleストアに持ち込むんですが、バッテリーの交換をすると12,800円〜もかかってしまう。 流石に来年にはMBPに買い換えようと思っているので、今のタイミングでこの金額をかけるのは微妙。 というわけで自分でバッテリーを交換することにしました。 Amazonで探すと5,299円!想像以上に安かったので速攻でポチりました。
届いてみると専用のドライバーも付属しており、すぐに交換できるようになっていました。 MacBookAirの中身は想像以上にシンプルな作りで、バッテリーを単純に外して差し込むだけで終了しました。 自前でバッテリーを交換したのは初めてだったけど、想像以上に簡単だったので今後も自分で交換しようと思いました。
対応している型番は以下の通り。
(A1369,Macbook Air3,2) - only for Late-2010 version
MC503xx/AMBAIR 13.3/1.86/2/128FLASH MC504xx/AMBAIR 13.3/1.86/2/256FLASH
(A1369,Macbook Air4,2) - only for Mid-2011version
MC965xx/AMBAIR 13.3/1.7/4/128FLASH MC966xx/AMBAIR 13.3/1.7/4/256FLASH
(A1466,Macbook Air5,2) - only for Mid-2012 version
MD231xx/AMBAIR 13.3/1.8/4/128FLASH MD232xx/AMBAIR 13.3/2.0/4/256FLASH
(A1466,Macbook Air6,2) - only for Mid-2013 version
MD760xx/AMBAIR 13.3/1.3/4/128FLASH MD761xx/AMBAIR 13.3/1.3/4/256FLASH
(A1466,Macbook Air6,2) - only for Mid-2014 version
MD760xx/BMBAIR 13.3/1.4/4/128FLASH MD761xx/BMBAIR 13.3/1.4/4/256FLASH
(A1466,Macbook Air7,2) - only for Early-2015 version
MJVE2LL/A MBAIR 13.3/1.6/4/128FLASH MJVG2LL/A MBAIR 13.3/1.6/4/256FLASH
※Macbook Air 13-inch A1369/A1466 (2011/2012/2 13/2014/2015年発売)ノートパソコンに適用されます。 Macbook Air 11-inch A1370/A1495 ノートパソコンは適用されません。
Elasticsearch2.3.3から5.4.3への移行作業
去年からElasticsearchをいじってたんだけど、全くブログなどに書いてなかったので書いてみる。 ツッコミとか大歓迎です。
あらすじ
HerokuのAdd-onsでElastic Cloudを使っているのですが、ある日、Elasticsearch 2.3 のサポート期限終了のお知らせが届きました。
Elasticsearch 2.3 reaches end of life (EOL) on September 30
This is a friendly reminder that Elasticsearch 2.3 reaches end of life on September 30, 2017. According to our records, you are still running one or more Elastic Cloud clusters using Elasticsearch version 2.3. Before that date, you need to upgrade your clusters to a more recent version. We highly recommend you to upgrade to the latest version which is Elasticsearch 5.4. Please note that if you upgrade from an Elasticsearch version prior to version 5 make sure you read the documentation on how to Upgrade to Elasticsearch 5.x.
If you have not upgraded your clusters by September 30, we will upgrade the clusters to the latest available version on the 2.x branch for you. As of today, this is Elasticsearch 2.4.
If you have a Cloud Gold or Platinum subscription, our support engineers can help you with this upgrade. Open a case to get started.
Kind Regards,
Your Elastic Cloud Team
サポートの終了がちょっと早い気もしたけど、古いバージョンをいつまでもサポートするのは良くない文明派なので素直にバージョンアップすることにしました。
状況
- Heroku
- Elasticserch(2.3.3)をHeroku Add-onsから利用中
- indexの元ネタはPostgresqlから1日1回インポート
- バージョン5.4.3へダウンタイムゼロで移行したい
バージョンアップ前の確認
Elasticsearch Migration Helperというバージョンアップ前のチェックツールが公式より提供されています。 Elastic Cloudでは標準でこれがインストール済みなので確認します。
自分の環境ではオールグリーン。 でも実際は1.xの時に作成した未使用のindexが残っていて、初回はレッドになりました。indexの1.x→5.xへの移行はできないんですね。これは削除するだけの対応で終了となりました。
Blue-Greenデプロイをしたい
Elasticsearchはメジャーバージョンアップを行う場合、Full cluster restart upgradeでバージョンアップを行わなければならない為、一定の時間クラスタが停止してしまいます。 そこで、ダウンタイムゼロでの移行を実現する為Blue-Greenデプロイをしようと考えました。リモートクラスタからもデータ参照が可能になったReindex APIを使えば簡単にできそうだなと予測。 しかし、複数クラスタを起動しようとしたところ、Heroku Add-onsのElastic Cloudだと単一のクラスタしか起動できない(Elastic Cloud単体で契約すると複数クラスタの起動可能)事に気付きました。これではBlue-Greenデプロイ出来ない。
別のappを使ってBlue-Greenデプロイ
そこで、ステージング環境として使っていたappで起動しているElasticsearchのクラスタを5.4.3に移行し、一時的にプロダクションからステージングのElasticsearchを参照させ、その間にプロダクションのバージョンを上げ、Elasticsearchの向き先を戻す・・・という手順で移行しました。
Elasticsearch(production-app)
↑ 通常はこっちを参照
WebServer(production-app)
↓ 一時的にこちらを参照させる
Elasticsearch(staging-app)
なんかイマイチだけど、まあこんなもんですね。
こうしておけば良かったこと
HerokuのAdd-onsではなく、Elastic Cloud単体で契約しておけばよかったなと。 Elastic Cloudは素晴らしいサービスなんだけども、HerokuのAdd-onsだと複数クラスタの運用が出来ないことだけが残念でした。今後の複数クラスタ起動対応に期待。