吉祥寺.pm 18で「はじめてのB2B SaaSデータモデリング」というテーマで発表してきました

5/17に吉祥寺.pm 18のアンカンファレンス枠で登壇させていただきました。 時間の関係で「なぜこのテーマで発表したのか」について詳しく説明できなかったのでその補足をしつつ、吉祥寺pmの感想を書こうとおもいます。 発表資料 speakerdeck.com そもそも吉祥…

エンジニア副業Nightで「副業を始めるときにぶち当たった壁とその超え方」というテーマでLTしてきました。

本日、サイボウズ社にて開催されたエンジニア副業Nightに参加してきました。 ちょうど勤務先のSpeeeでも副業申請が可能になったこともあり、今までの自分の副業経験を元に 「副業を始めるときにぶち当たった壁とその超え方」 というテーマでLTしてきました。…

Railsで定数を参照するときは完全修飾名を使った方が良い

発端 とある機能を開発していたところ、以下のエラーが出てwebsocketサーバーが起動しなくなりました。 NameError: uninitialized constant Concerns::XXXable エラーの発生箇所は、とあるController内の include Concerns::XXXable でした。 Concerns::XXXa…

Lean DiagramをWebで書きたい!ので10plateでテンプレート作った

あけましておめでとうございます。 新年早々、初詣もそこそこにサブプロジェクトとして開発中のプロダクトの要件定義やコンセプトメイキングをしていました。 Lean Startupのやり方を参考に進めていたところ、Problem/Solution Fitを達成するために使うLean …

AWS WAFで環境毎にCDN(CloudFront+S3)を立てた

この記事は Speeeアドベントカレンダー 18日目 の記事になります。 昨日(一昨日)は、@bino98さんによる、「Slackでヘタクソな日本語/英語の校正をしてくれる「Botlint」を作ってる」でした。 この記事ではAWS WAFを使って環境ごとにCDN環境を構築する方法に…

Bootstrap Night! Vol.2 に参加しました。

12/12(火)に開催されたselfreeさん主催のBootstrap Night! vol.2に参加してきました。 selfree.connpass.com esa.ioの人の発表の中で イベント参加後にblog書くのは比較的ハードルが低いし、主催者側うれしいし(略)オススメ というお話があったのでその気…

フォアグラウンドでコマンドを実行した後でバックグラウンドジョブに変更する

バッチの手動実行など終了まで長時間かかるコマンドを実行する場合、 おそらくnohupでSIGHUPを受け付けないようにしてバックグラウンドジョブとして実行すると思います。 しかし、フォアグラウンドジョブとしてコマンドを実行した後で気付くことがたまにある…

電話番号をうまく扱うライブラリ(libphonenumber)の活用方法を考えてみる

1. 背景 社内で共有された以下の資料で、Googleが作成しているlibphonenumberという電話番号のバリデーションができるライブラリが紹介されていました。 自分が担当しているサービスは電話番号の入力が必須であり何かしら使えそうだということで活用方法を考…

Dockerをawsコマンド実行環境として使いS3からファイルをディレクトリごとダウンロードする

結論 AWSのS3から特定のディレクトリ以下をごっそりダウンロードするにはawscliを使う必要があります。 ただ、awscliを用意するのが面倒だったので、awsコマンド実行環境としてDockerを使用するワンライナーを書きました。 docker run -it --rm -v ~/docker/…

AWS LambdaでAWSの障害をslackにメンション付きで通知する

担当しているシステムのエラーの通知や障害の通知まわりで、その問題点と解決策を整理したのでメモしておきます。 背景 エラー通知があふれ見逃す危険があった 担当しているシステムではRailsやJSでExceptionが発生したときや、AWSでなんらかのイベントが発…

itamaeのgitリソースでエラーが起きたからメモ

itamaeのgitリソースを実行したところ「deployブランチがすでに存在しているためcheckoutできませんでした」という旨のエラーが出ました。 その原因を調べたのでメモとして残しておきます。 エラーの原因 itamaeでgitリソースを実行するときに以下をともに満…

Kotlinのtraitとabstractの違い

Kotlinを勉強していたらtraitという機能がでてきて、「abstractと何が違うねん」と思ったのでその違いを調べました。 (至極当たり前の内容です) 結論 abstractは単一継承しかできないが、traitは多重継承(Mixin)できる。 Kotlinのtraitとは Kotlinのtraitはa…

pandas公式サイトのデータ構造のセクションを和訳してみました

pandasの使い方を調べるためにpandas公式サイトの英語のドキュメントを読みました。 英語の知識が大学受験時代で止まっている僕にとって英語のドキュメントを読むことは大変な苦行だったので、みなさんが同じ思いをしないように和訳をしてみました。 今回はp…

nginxがunicornに接続できなくなったのでログローテーション設定の見直しをした。

発生したnginxのエラー プライベートで運営しているメディアのnginxで 以下のエラーが発生し、unicornに接続できなくなりました。 [error] 13645#0: *624 connect() to unix:/tmp/unicorn.sock failed (111: Connection refused) while connecting to upstre…

jQueryやJavascriptの書籍にでてくる表現、配下と直下の違い

jQueryやJavascriptの書籍で度々出てくるDOMの表現、配下と直下 これらの意味が合っているか不安だったので、まとめました。 配下 - 祖先要素と子孫要素の関係 結論 ある要素に含まれる要素すべてのこと 具体例 <body id="me"> <p id="child"> 配下に含まれる </p> <div> <p class="grandchild"> 配下に含まれる ※ </p> </div> </body> 上…