けんちゃんくんさんの Web日記

Web日記のDocker化とhttps化

このWeb日記は kenchan/tdnm: tdnm is simple weblog tool という自作のRailsアプリで、さすがにそろそろhttps化しないと恥ずかしいのでついでにDocker化もしてみた。

Docker化する

RailsアプリのDocker化については、jokerさんのQiita が参考になると思う。

最初は開発環境もDockerにしようかと思っていたのだけど、Gemfile にpath指定したいときに困る&Dockerの旨味がなくなると感じたので、開発はローカルでやることにした。(2017年をキャッチアップする 三種の神器 / ghq_gem-src_and_bundler // Speaker Deck)

本番環境のイメージについては、静的ファイルの扱いを一旦おいておいて、bundle installrails assets:precompileをしたイメージを作ることにした。

ベースのイメージは ruby:2.4-alpine にして、必要な依存関係をとかをバシバシいれていく。

  • nativeビルドで必要なものは事前に入れておく
  • bundle install --deployment オプション便利
  • bundle installとgccやmake等のインストールをワンラインでやるとイメージは小さくなるが、nativeビルドに失敗した時にやり直しに時間かかる

というあたりが発見だろうか。

現時点で最終的なイメージが130MBくらい。

kenchan/tdnm - Docker Hub

https-portalでhttps化する

https化は docker で全自動 Let's encrypt - Qiita がめちゃくちゃ便利だった。

特に何も考えなくてもローカルでのオレオレ証明書での検証と、本番でのLet's encryptでの運用ができる。

一回ハマったのは、FORCE_RENEWオプションをつけたまま本番で何回かビルドしなおしたせいでLet's encrypt側の制限で証明書の取得が失敗するようになってしまったところ。たまたま過去のコンテナを雑に消したあとだったのでめっちゃ困った…結局、Railsを80番で直接出すことで1週間ほどをしのいだ。

docker-composeとデプロイ

ここはめっちゃ雑にやっている。dockerだけをインストールしたVMをConoHaに立てていて、その中に本番用のdocker-compose.ymlがある。

デプロイは、瞬断しても困らないのでイメージをpullしてrestartという感じ。

Docker Cloud使ってみたかったんだけど、母艦をArch Linuxで立ててしまったのでサポート外だと言われて使えなかった…Ubuntuで作り直そうかな…

バックアップとか

まだ特に何もやってないので、今壊れると何日か分のWeb日記消失することになる。これから考える。

まとめ

先月から少しずつDocker化、Ruby2.4化、https化を進めてみた。モダンな感じには程遠いが、実際自分で試してみると辛いポイントや工夫のしどころがわかって勉強になった。

2017年3月25日

昼前くらいに起きてお昼を食べて、息子が3時から公園で友達と約束しているからというので引率。

ポケモン交換をしたいとのことだったが、時間になっても友達はこなかったので別の子と1時間くらい遊んでおしまい。

公園行くだけだったら勝手に行かせてるんだけど、DS持っていくとなるとまだ心配なので一応ついていっている。他の家はこのあたりどうしてるのかなぁ。友達の家に持っていくなら全然気にしないけど、外だとちょっと心配。

2017年3月24日

星さんと1on1っぽいもの

星さん(@glover) と久しぶりにいろいろ話して、ECに来てから感じていた課題や、やらないことを決めようということについて、たぶん1時間くらい話していた。

見えるものが多くなると気が散ってしまうことが増えたり、自分のほうがうまくやれると思いこんで手を出してしまうことが多くなりがちなので、定期的にやってることや、続けるべきかどうかというのを見直さないといけない。

ショップオーナーさんとお話

たくさん面白いお話が聞けてよかった。また、正攻法では難しいと感じていた機能やアプローチについてヒントを見つけられたので収穫がとっても多かった。

カラーミーショップのお客様は「インターネットで何かを売っている」という以上の共通点はないので、個別のカスタマイズというのはなかなか難しい。ただ、その課題と解決方法を抽象化して機能として提供することで、より多くの価値が生み出せるというのが、こういうサービスに関わっている醍醐味とも言えるだろう。

汎用的な機能と個別のカスタマイズ、これを両立できるようにアーキテクチャと機能を練っていく。やっていくしかない!

送別会

春は出会いと別れの季節。今後のご活躍をお祈り申し上げます!

庄やの二階の治安が壊滅していたし、終電ダッシュして辛かった…

WordPressの初期パスワード生成のコード

コードは https://github.com/WordPress/WordPress/blob/96b2923e625606aa174f3a2dc845e5483571dccd/wp-includes/pluggable.php#L2158 のあたり。

なんてことはないシンプルな実装。random_passwordフィルターはコアでは登録されていないようなので、このfilterを加えるとパスワードの生成ロジックをいろいろいじれるっぽい。

ランダムなパスワードを雑に生成して、それと強度と一緒にユーザに提示するというのは確かによいロジックのように思った。ついついちゃんと文字種が入っているかとかチェックしたくなってしまうんだけど、強度を見せておけばバリデーション自体はゆるくしておいてもいいのかもな、と。

2017年3月21日

Nougat 7.1.2

5Xに降ってきた。最近すこぶる調子が悪いので安定してくれるといいな。周りでは文鎮化してる人も増えてきたので毎日ドキドキしてる。

yatteiki.fm 21 & dex.fm 20

itopoidさんが盛り上がっている様子がよかった。中村氏の生活レベルの高さがやばい。京都行きたい。

メルカリのA/Bテストフレームワークの話( mercari/siberi-android: A/B testing library for Android )と、iPhoneは(?)振るとデバッグモードに入るというのが面白かった。モバイルアプリ全然わからんのでまずいなーと毎回聞きながら思う。

大江戸Ruby会議06

大江戸Ruby会議06 という素晴らしい会に参加してきたので感想等。

Docker時代の分散RSpec環境の作り方

Docker時代の分散RSpec環境の作り方 // Speaker Deck

起床に微妙に失敗したので途中から。

jokerさんの新作の紹介。テストの分散実行は、以下の3点がポイントだと考えている。

  • アプリケーション(とテスト)の実行環境のポータビリティ
  • テストを分散させるルール
  • テスト結果の集約

それらの課題について、まずはDockerを前提とすることでポータビリティを確保。その上で、ECS・スポットインスタンス・S3をうまく利用することによって、分散ルールを単純にした上で妥当な金額の金で殴るという発想が面白かった。

My Open Source Journey

My Open Source Journey // Speaker Deck

3月から恵比寿に住むC社のjuanitoさん。

自身がどのようにOSS開発とか関わってきたのかを踏まえて、4つのフェーズ(?)においてどのように振る舞うとよいか・何を気をつけるべきかというのがとても参考になった。

また仕事とOSSについて、オープンにできるところを見つけて積極的にやっていくことは価値があり、今の自分にも求められているところだなと強く感じたのでやっていこう。

Text Editing in Ruby

shugo/oedo06: Slides for oedo06

(宇宙の均衡のために)Rubyでエディタを作っていて、プレゼンも自作エディタのプラグインという圧倒的な実装力を目の当たりに。

自分がほしいと思ったものをすぐに手を動かして作り、その過程でRubyの知らなかった機能を見つけたり、処理系への改善提案までやれるという、圧倒的で理想的な開発だなと強く感じた。

Ruby考古学II 1993~1997

基調講演のsorahさんが産まれるまでのRubyの歴史を掘り起こすということだったが、初期のRubyの文法は今のものはかなり違っていたというのがとても興味深かった。

今の文法になった時期や、コミッタ陣がMLに現れた時期など、こういう機会でないと知ることができない歴史ばかりで大満足。

また、yuguiさんの以下のツイートはとても考えさせられた。

多相型、推論、Ruby

多相型、推論、Ruby // Speaker Deck

Rubyに型を入れるために「何を犠牲にするのか」というのを、理想の型システムから考えて落としところを見つけていく過程がとてもおもしろかった。

とても丁寧に説明してくださっていたので、自分でも型がちょっとわかった気になってしまった。

その中でも、「anyを導入した上で型を絶対に書かないということは、anyの広がりをとめることができない」という話は、それこそ言われればその通りなんだけどなるほど~と口に出しそうになってしまった。

esaとRubyistと私

esaとRubyistとわたし // Speaker Deck

pplog、いつもお世話になっています!

デザイナーとしてというよりは、PdMとしてとても大事なことがたくさん詰まっているように感じて、資料公開されたら社の人たちに配って歩きたい。

Rationalを(もうちょっと)最適化してみた

こういった改善が日々のRubyの速度改善を支えてると思うと「本当にありがとうございます」という気持ちが溢れてくる。

Rationalは日常的には使わない側の人なので、直接の恩恵は受けられないとのことだったが、改善のプロセスを含めて勉強になった。

フルタイムコミッター対戦

超難問早押しクイズ大会。難しすぎるけど、コミッタ陣が唸る姿を眺めて楽しかったw

このために作ったシステムも面白そうだ。asakusarb/hayaoshi: 大江戸Ruby会議06の『フルタイムコミッター大戦』で使用した早押しクイズアプリ

高濃度雑談

thats-done-2017-03-20-oedork06-ujihisa - Google スライド

タイトルと導入の通りかなりのカオス。Cooking for Geeks と 発酵の技法 はやっぱり読まねばなと思った。

会場に thincaさん がいたそうなので、いつも一方的にお世話になっているとご挨拶したかった…次の機会に。

Ruby 2.4 Internals

笹田さんのドヤリングタイム。

Cは全くかけないといってもいいので理解が追いつかないところがおおいけど、いつか少しはわかるようになりたいな。

如何にして若き天才コミッタは生まれるのか

内輪のノリの中にしっかりとしたメッセージがあって、内容だけじゃなくてそのスタイルにもとても感動した。

育成においては、「密度を上げて時間でなぐる」というのは本当にそのとおりだと強く感じたので、身近なところからはじめていこうと思った。

あと、マジで優秀な若者たちは本当にやばいという危機感が強く残った…

Keynote

Keynote (Oedo RubyKaigi 06) // Speaker Deck

sorah氏の自慢話。rosylilly氏の話と合わせて聞くことで、ただの自慢ではなくて、正しく半生のふりかえりになったように思った。

インターネットを始める話、すごすぎて振り切られたけど応援していますw

まとめ

生活発表会という大江戸Ruby会議のコンセプト(?)はとても最高で、いつも最高の発表が聞けてありがとうございます。

そう。生活の中でこれだけのことをやっている人たちがいるってのをたまに忘れてしまうことがあるので、自分も生活発表できるような生活をしていかないとなと参加する度に思う。

去年くらいからいろいろやって軸がなくなってきたり、なんか文章やコードを継続的に書くこともできていないので、このあたりで一回リセットしてやりなおしていくぞ!

毎回ですが、こんな素晴らしい会をひらいてくれているAsakusa.rbのみなさんありがとうございました!

2017年3月18日

黒いカプ・コケコ

ゲームで! カードゲームで! カプ・コケコ キャンペーン開催! | ポケットモンスターオフィシャルサイト

息子と一緒にセブンイレブンにいって受け取ってきた。セブンスポット限定だと勘違いしていて、買い物の帰りというとくに買うものもない状態で入店してしばらく居座ってしまった。

掃除と出品

開かずの間とは言わないけど、それなりに雑多なものを投げ込んでいる収納を整理して、いくつかメルカリに出したりしていた。

はじめて自分で買ったPC(Dynabook SSの最初の方のやつ)とか、Qiの充電器とかいろいろ。

無接点充電また盛り上がってこないかなぁ。

散髪ログ

前回の記録がない…多分2ヶ月くらいかなぁ。

家でぐっさんの応援をしてから、今回は一人で行ってきた。来月改装があるらしく、息子はどうするかなぁという感じ。

2017/01に読んだ本

もうちょっと読んだ気になっていたけど全然だった。生産性は良い内容だったな。

shucreamの本棚 - 2017年01月 (4作品)
入門 考える技術・書く技術【スライド編】

生産性―――マッキンゼーが組織と人材に求め続けるもの

鴻池剛と猫のぽんた ニャアアアン! 2

「わかりやすい」文章を書く全技術100

powered by Booklog

ホームベーカリーが届いたのでパンを焼いた

去年の年末パーティーのくじ引きで当たったホームベーカリー が届いたのでパンを焼いている。

自宅でパン焼く場合、パン切り包丁や、パンを同じ厚さに切るための器具が必要ということで、それらはニトリで購入した。器具については、おそらく同じものがamazonでも売っていて、使い勝手については大体レビューにある通りの感想。

焼き立てのパンが家で食べれるの、思っていたよりもだいぶよい体験なのとでどんどん使っていこうと思う。

EC事業部新年会

ペパカレ1期生のぬまっちをCTL(Chief Takoyaki Lead)に任命しました。

意味がわからないツイートは一つだけだったので、一定の治安は維持されていたのではないだろうか。庄やは4時に閉店、始発は5時前。覚えた。

あと、初めてモーメント作ってみたけど、これはつまりtoget(ty

2016年ふりかえり

昨年のふりかえりは 2015ふりかえり の通り。 今年は目標については あけおめ | けんちゃんくんさんの Web日記 にあるように手帳に書いていました。

技術面

今年は年始から ハンドメイド・手作り作品の通販、販売 tetote(テトテ) の技術支援をやっていたけれど、初めてのPythonで苦労していたような記憶がうっすらとあります。 Railsだったらこうするってのがなかなかすっきり書けなくてもやもやしながら、そういう面はチャンスだったにも関わらず、コードの量も質も今ひとつでした。 Githubの芝は去年より白い…

9月に EC事業部のCTLに就任 してからは、まずはキャッチアップと組織作りで3ヶ月が終わってしまったような感覚です。(ある程度は技術面も手をだせてはいるけど…)

発表等

社内含めて8本。複数回やっているのもありますが、純粋な技術という面ではPHP BLTのみなのでもっとがんばりましょう。

その他

2015~2016年はProduct Manager的な方々とお話させてもらう機会が沢山あったのですが、2017年は自分の今の職務により近いEngineering Managerの方と沢山話をしたいと思い、まずは場を作りました。

エンジニアリングマネージャー(とその周辺に関心がある人)が集まるSlackチームを作りました | けんちゃんくんさんの Web日記

現在、54名の方がjoinくださっています。来年はもっと盛り上げていきたいので、同じような職務を担っている方、興味のある方はjoin us!

まとめ

今年は完璧やりきったという感覚が薄い1年だったので、来年はバーンとしたと言い切れるように頑張って行こうと思います。

今年一年お世話になった皆様、ありがとうございました。来年も引き続きよろしくお願いします。

エンジニアリングマネージャー(とその周辺に関心がある人)が集まるSlackチームを作りました

昨日、第1回 エンジニアリングマネージャー勉強会 - connpassが盛況のうちに終了しました。

特に懇親会の後半では、みんなでマイクを回しながら現状の課題や疑問を全員に問いかけ、それに全員で答えるというスタイルになり、今まで経験したことがないような盛り上がりを見せていました。

しかしながら、そのような状況でしたのでまだまだ話し足らない方や、登壇者に質問しきれなかった方もいらっしゃったのではないでしょうか。

そこで、エンジニアリングマネージャーの役割を担っている方や、そういった分野に関心のある方が集まるSlackチームを作成しました。

第2回を開催しようという機運も高まっておりますので、みなさん奮ってご参加ください!!1

プロダクトオーナー祭り2016

プロダクトオーナー祭り2016 ~世界を創るのは俺たちだ!~ 2016/11/26(土) - POStudy ~アジャイル・プロダクトマネジメント研究会~ | Doorkeeper にスタッフTシャツと労働力を提供しました。

当日のスポンサートークでも紹介させてもらいましたが、今回のイベントグッズは POStudyのSUZURIアカウント で一般販売もしていますので是非お買い求めください。

今年も、運営関連は相変わらず fullvirtueさん さんのパワーで押し切った感じがあるので、来年はもっと仕事を奪っていきたいと思うのでした。

登壇者の皆さん、参加者のみなさん、会場提供&スタッフのgloopsさん、ありがとうございました。

Speee Cafe Meetup #03

「基盤開発における各社の取り組み」というテーマで4社のエンジニアが登壇するイベントがあり、そこでこの2年間でやってきたことを踏まえて、GMOペパボの技術基盤開発について自分が考えていることを話してきた。

会社の規模やステージが違う4社があつまると、当然のように技術基盤開発メンバーに求められるというものが違っているのがとてもおもしろかった。

懇親会ではSpeeeのみなさんといろいろお話して、たまたま自分が過去に経験したことのあるトピックだったので、その時のアプローチをお伝えしたりした。

次回お会いしたときにはどうだったか聞いてみたいので、同じようなテーマで勉強会をやるときは是非また声をかけてください!

Speee Cafe Meetup #03 - connpass

※ 資料を作りながら、「この内容はむしろ社内の人に読んでもらいたい!」と強く感じたので、ペパボ社の人は目を通してくれるとうれしい。

HUE/360 で日記の配色を調整した

すぐバキバキの配色になってしまうからなるべく色を調整するのをやめていたんだけど、ノンデザイナーのための配色理論 を見直してリンクの色から調整してみることにした。

ついでにはてなブログとかLINEブログをみてマージンやline-heightも調整したのでちょっと読みやすくなったんじゃないだろうか。

[ HUE / 360 ] The Color Scheme Application

Ruby on Rails Tech Meetupに参加してきた

しばらくRuby界隈から離れていたのでリハビリを兼ねて。

CW社のElixir使い(@h3_poteto)や、@cesare と社内システムやdockerやデータ可視化の話を色々できたのでよかった。

秘匿情報を隠したビューを容易しておいて、そっちにSQLを投げることで閲覧権限を管理してるって話を聞いて試してみようと思ったのであった。

会場&スタッフの皆さんありがとうございました!

Ruby on Rails Tech Meetup - CrowdWorks Tech Meetup | Doorkeeper

散髪ログ

前回が7/31だったので、3ヶ月位切ってなかったのか。息子と二人でばっさり。

交通安全フェスタに行ってきた

津田沼の自動車教習所で毎年やってるらしい、交通安全フェスタ なるものに行ってきた。

息子がどこかから300円分のチケットがついたビラをもらってきていたんだけど、行ってみるとそのビラを数十枚持った小学生がウロウロしていたり、リアルチーバくんの描かれた警察車両(下図)があったり、なぜか津田沼のお祭り的なものにいつもいる千葉工大の鉄サークルがミニSLを走らせていたりと、ふつうのお祭りっぽい雰囲気だった。

リアルなチーバくん…

Kenichi TAKAHASHIさん(@_kenchan)が投稿した写真 -

自動車メーカーやJAFのブースでは車の整備体験やドライブシミュレータ、緊急車両のブースでは「はしご車」に乗る権利に長蛇の列がでてたり、ちゃんとしたスタントマンを使った事故の実演(?)などおもしろコンテンツがそれなりにあったので親子共々楽しめた。が、いかんせん暑すぎた…

結構人数制限のきついコンテンツがおおいので、来年は計画的にブースを回ってファストパスのようなものを取ったほうがいいだろうなと思った。

AtCoder CODE FESTIVAL 2016 qual A で撃沈した

CODE FESTIVAL 2016 qual A - CODE FESTIVAL 2016 qual A | AtCoder

たまたま9時前に家事が終わったので半年ぶりくらいに参加。

A問題はいいとして、B問題の回答を何度かAにsubmitとしてしまい混乱していた。

C問題は先頭から「a」にできるものをどんどんしていって、余ったものは最後に消費すればいいというのはわかったけど、途中に「a」があったときに26消費してしまうようなコードになっていて落ちたり、それを直したら最後に大量に余っているときを考慮していなくて時間オーバーになったり、自分にとっては程よい難易度だったと思う。

D問題は「これ手でも解けなくね?」という感じで、とりあえず入力をパースするところまで書いてから、紙で考えているうちにタイムアップ。

悔しいので 解説 を読んで理解出来るくらいにはなりたいぞ。

GitHubのメモリポジトリを集約した

GitHubの自分のリポジトリを整理しようと思い立って、幾つかのリポジトリを https://github.com/kenchan/memory に集約した。

例えば、atcoderをやっていたときのコードをmemory/atcoderに集約したければ、git subtree で以下のように指定すればOK。

$git subtree add --prefix=atcoder ../atcoder/ master

--prefix はなくても良きに計らってくれるらしいけど、変にマージされてもこまるので一応指定する。

もうちょっとあるかなとおもってたけど、残しておきたいと思うものは2個位しかなかったのでさっと集約しておしまい。

VS Codeを使ってみる

リリースされた当時はAtomのほうが良さそうだなーと思ったんだけど、最近どんどん良くなてる感をがでてるのでもう一度チャレンジ。

Atomはコードを書いてカスタマイズしたり、Electronで遊ぶというところまで行くと楽しそうだけど、「使う」ということだとVS Codeはよくできてるなーと感じる。

中々良さそうなのでしばらく使っていくぞい。

PAY Conference #00 に参加してきた

仕事でPAY.JPを使う予定があるわけではないけれど、「決済」をどういう風に捉えるのがよいのか、そのヒントがあるかもしれないと思い、PAY Conference #00 - connpass に参加してきた。

そういった自分の動機にピッタリの内容でとても満足出来たように思う。

新プラン発表 & PAY ID10万件突破と今後の展望

3つの新しい発表とone more thingは、スタートアップや新しくサービスを自分で作りたいと思っている人にはとても魅力的なプランだと感じたが、それよりも今後の展望やPAYIDを含めた展望のほうがとても興味深かった。

クレジットカードのお金の流れは古くからの利権が絡んでおり、そこに切り込んでいくという大変だが、「CtoCのシームレスな価値交換」「与信のあり方を変える」というキーワードは決済に取り組む本気度をうかがい知る事ができたように思う。

情報セキュリティ

事業領域から見てもかなり重要なトピックである情報セキュリティについて、専属のセキュリティエンジニアの方から苦労している点など。

PCI DSS v3.1に準拠するためにどういう条件があって、それらをどうやって実現しているかについてという話が中心だった。

セキュリティエンジニアは精神的にもとてもつらいが、それを技術で解決しオープンにしていくことで、自分たちのやり方をスタンダードとして広めたいというのはとても共感できるし、さらにOSSを積極的に使い、そして貢献していこうと考えているとのことで、これからも注目していきたい。

『現金が消えた街』 〜決済・送金・与信の全て電子化され、"現金"が消えた世界の物語〜

今日のイベントのベストトーク。PAY.JPの技術顧問をしている 井上 恭輔(@kyoro353)さん | Twitter

趣味が「決済」ということで(?)、海外と日本国内での決済の状況を整理した上で、今後どうなっていくと考えているかの考察があり、話し方もとてもおもしろく、聞き入ってしまっていた。

「決済は体験の一部」というのはとても説得力があったし、決済についての考え方を改めないと強く感じた。また、「現金を扱うのは実は高コスト」というのも、言われてみるとハッとするところで、様々な地域・国で生活をしているからこそ実感できる視点なのだなと感じた。

PAY.JP 導入ライブコーディング

ライブコーディングらしいアクシデントがあったり、使用感がとても良く分かる内容でよかった。質問も沢山でていて、自分も知りたい内容だったので満足満足。

懇親会

大量の唐揚げとおにぎりとビールをいただきつつ、帰り際にきたえふしんさんにご挨拶できたのでミッション完了。

おわりに

決済の未来についてはPAY.JPをウォッチしていけば良さそうと思える、とてもよいカンファレンスだった。会場も綺麗だったし、次回も是非参加したいし、それまでにサービスを作ってPAY.JP使ってみたい気持ちになった。