valid,invalid

関心を持てる事柄について

半年間、自分を騙しながらアウトプットに積極的になってみた

この半年間はソフトウェアエンジニアとしてのアウトプットに積極的になるよう意識的に行動してみたので振り返ってみます。長くなってしまったので3行でまとめるとこんな感じです。 成長と刺激を求めて OSS contribution や登壇やイベント運営を頑張ってみた …

Meguro.rb#19で『決済のトランザクション管理術』というタイトルでLTをしました

第19回 Meguro.rb に参加し、『決済のトランザクション管理術』というタイトルでLTをしました。 言い足りないことと反省 うーん、5分LTでやる内容じゃなかったかもしれないなぁと思っている。 だいぶ早口でザーッと喋ってようやく決済機能の開発に親しんでい…

ISUCON8にチーム"sayotan"で参加し、予選落ち (Best Score: 23,553, 最終結果: fail) でした

もう2週間も前のことというのに驚きつつ、ISUCON8に出場して予選敗退した記録。来年に向けたメモ。 チーム編成 メンバーは2人で、両名とも「ふだんやらないことをやりたい」という動機で初参加した。 @RyotaKatoh 機械学習エンジニア GoによるWebアプリも書…

誰がジュニアを育てるのか -出題編-

過熱する採用市場の盛り上がりにあわせて感じたことについて言語化を試みているが未だ納得解が得られずにいる。書きかけの Scrapbox は随時更新していくとして、現時点での dump をとっておく。 誰がジュニアを育てるのか - ohbarye 主にソフトウェアエンジ…

Engineering Manager Meetup #1 をやりました #em_meetup

Engineering Manager Meetup をやります - valid,invalidで宣言した通り Engineering Manager Meetup #1 をやりました。本記事では感想と振り返りを、イベント運営者と参加者の両視点から忘れないうちに記しておきたいと思います。 connpass.com 本記事の主…

はてなブックマーク側でタイトルやサムネイルが残念だったときの修正方法

具体例 あとは、サムネイルを貼り忘れたり意図しない画像がサムネイルになったりして困ることもよくある。 修正方法 http://b.hatena.ne.jp/entry/s/:url のページに行く。 この次がめちゃくちゃわかりにくいのだが、記事タイトルの枠の右上にマウスを持って…

#iOSDC で『サブスクリプションサービスにおけるIn-App Purchase再考』という発表をしてきました

iOSDC 2018 に参加しています。また、3日目の9/1に『サブスクリプションサービスにおけるIn-App Purchase再考』という発表をしました。 iosdc.jp 発表 資料 サーバサイドエンジニアとして In-App Purchase (IAP) とその他の決済手段を開発・運用してきた経験…

#roppongijs で『続・貢献できるOSSの見つけ方 -How to find "Good First Issues" part 2-』というLTをしてきました

第5回 Roppongi.js に参加し、『続・貢献できるOSSの見つけ方 -How to find "Good First Issues"-』というタイトルでLTをしました。 リンク付きの原稿はこちら https://ohbarye.github.io/slides/2018/roppongi.js-5/ 紹介したアプリケーション github.com h…

"まともなステージング環境"を考える

まともな(信頼できる)ステージング環境を用意できてるウェブ系企業、肌感だけど5%以下という印象— たにみち (@ttanimichi) 2018年8月20日 このツイートを見て弊社は5%に入れるかどうかを考えてみたいと思った。 が、そもそも何をステージング環境と呼ぶか…

Engineering Manager Meetup をやります

詳細の確認および参加申し込みは以下のページからお願いします。早速定員になってしまったようなのですが増枠も検討中です。 (追記) 40名に増枠しました。 connpass.com 動機 いちエンジニアリングマネージャとして、エンジニアリングマネージャ・エンジニア…

会社ブログでは固有の文脈・ユースケースにフォーカスした話を読みたい

いつもお世話になっている TechRacho の以下の記事を読んでいて気になったこと、思ったこと。 TechRacho(自社技術ブログ)に関連したあれこれ、2年毎日更新してみて感じたこと これだけ見てくれる人が増えたらちょっとは採用応募が増えるかなと期待している…

必要なときだけ Polyfill.io のCDN から polyfill を読み込むようにする

以下のような script tag を HTML の最初の script tag として埋め込む。 <script> ( function(doc){ if([].find&&window.fetch)return; var firstScript = doc.getElementsByTagName('script')[0]; var scriptToInsert = doc.createElement('script'); scriptToInse…

gem install することなく Slim, Haml, Pug を HTML に変換する

Rails の view を React で書き直したときに使った脱 Slim のやり方 各種 gem を install して手元でコマンド叩いてもできるけど面倒くさい場合に使える 結論 converter - How can I convert html.slim files to html or html.erb? - Stack Overflow この回…

「○○の経験したこと無いくせに」と経験者が語ることについて

「○○の経験したこと無いくせに」 「○○したことないからわからないんだよ」 という言説を見聞きしたり、この論旨で「論破してやったわ」みたいなの Twitter で見るたびげんなりしてしまう。 「恋愛したこと無いくせにラブストーリーとかwwww」っていうの…

⌘+shift+d で"開いているすべてのタブをブックマークとして新しいフォルダに保存する" on Google Chrome

登壇のために Google Chrome 上で開いているタブをすべて閉じて片付けたいが後で一発で戻したい。そんなときに ⌘+shift+d が使える support.google.com で見つけた。 単純に閉じて再起動すれば? => Google Slides で発表するのでブラウザを立ち上げたままに…

「Quipperが実践する、定量データに基づく意思決定と開発」という話を Rails Developer Meetup 2018 Day 3 extreme でしてきました

してきました。 techplay.jp スライド データ周りや意思決定の話は専門ではないのであまり主語を大きくして叩かれないようにわりと渋めのタイトルにしました。ちょっと局所的すぎたかもしれません。 トーク 20分のトークは初めてだったので勝手がわからず86…

monorepo 構成の Git repository の sub directory を Netlify にデプロイする

以下のように Git root directory ではなく sub directory にデプロイしたいアプリケーションが存在する場合を想定。 $ tree -L 2 . ├── .git ├── frontend │ ├── README.md │ ├── config │ ├── images.d.ts │ ├── node_modules │ ├── package.json │ ├── pu…

monorepo 構成の Git repository の sub directory を heroku にデプロイする

(追記) sub directory をデプロイしたり、いちレポジトリで multi applications のデプロイをサポートする buildpack があると元同僚の id:kamatama41 から教えてもらったので追記しました。ありがとうございます! 以下のように Git root directory ではな…

最近の構成 (backend: Rails + PostgreSQL, frontend: React + TypeScript) を docker-compose で立ち上げる boilerplate 作った

TL;DR 現プロジェクトと近似した構成で素振り出来るよう Rails + PostgreSQL による backend と React + TypeScript による frontend を docker-compose で立ち上げる boilerplate 作ったhttps://t.co/iCqMc2TWrD— 広島の粗大ゴミ (@ohbarye) 2018年7月7日 g…

Roppongi.jsで『貢献できるOSSの見つけ方 -How to find "Good First Issues"-』についてLTをしてきました

第4回 Roppongi.js に参加し、『貢献できるOSSの見つけ方 -How to find "Good First Issues"-』というタイトルでLTをしました。 リンク付きの原稿はこちら https://ohbarye.github.io/slides/2018/roppongi.js-4/ 紹介したスクリプト github.com Good first …

Cybozu Meetup で聞いた各社の技術ブログ運用の話と、Quipper のブログ再開について

Cybozu Meetup で聞いた採用文脈でのブログ運用の話と、Quipper のブログ再開の話です。*1 Quipper のブログ再開 所属する Quipper でも最近プロダクトチームのブログを再開しました。 quipper.hatenablog.com 自分も早速記事を書き、本日公開されました。 q…

Roppongi.jsで『エンジニアも気にしたい色のアクセシビリティ』についてLTをしてきました

第3回 Roppongi.js に参加し、『エンジニアも気にしたい色のアクセシビリティ』というタイトルでLTをしました。 スライドのタイトルを575にしたかったものの「エンジニア アクセシビリティ 気にしよう」のような駄作しか生まれなかったために断念しました。 …

Rails のフロントエンドのレベル上げ

第15回 Meguro.rb に参加し、『フロントエンドのレベル上げ 〜Rails エンジニアが Webpacker を使う場合〜』というタイトルでLTをしました。 お気付きの通りスライドと本記事のタイトルが違いますが、スライドのタイトルを575にし忘れるという痛恨のミスがあ…

Generative Art を始めて7日間、作品を毎日公開した記録

ゴールデンウィーク(以下、GW)の途中で以下の記事を読んで Generative Art (ジェネレーティブアート - Wikipedia)*1 なるものを知り、試しに触ってみたら面白かった。 ジェネラティブアートを始めよう|なめらかサンショウウオ|note Generative Art with …

GitHub GraphQL API v4 を JavaScript から利用する

TL;DR 開発している Slack bot で発生する N+1 問題を解消するために GitHub GraphQL API v4 を利用した クライアントサイド(今回は JavaScript)側から使ってみただけだが、かなり開発体験が良かった 背景: review-waiting-list-bot について review-waiti…

babel-eslint を使って非標準仕様でも lint できるようにする

Parsing error on ESLint review-waiting-list-bot の実装中に以下のようなオブジェクトの分割代入するコードを書いたら eslint で parse error が起きるようになってしまった。 const { authors, ...conditions } = { authors: [], owner: '', repo: '' } $…

技術的負債を抱えながら突っ走る -日々15分の改善活動-

開発しているシステムが大規模かつ老朽化しかけていることもあり、最近は負債の返却を念頭に置いて普段の開発をしている。 前提として、個人的には負債を返す頻度は多いほど良い*1と考えている。 この立場に立つときに生まれる問い、「では、日々の開発のス…

package.json の dependencies を JavaScript のコード内で参照する

package.json に書かれた、依存しているライブラリの名前 (dependencies) を JavaScript のコード内で参照するやり方。 import pkg from './package.json'; const dependencies = Object.keys(pkg.dependencies) const devDependencies = Object.keys(pkg.de…

brew cleanup でディスクの空き容量を増やす

brew は古くなった formula を自動的に消してくれないので、使い続けるほどにインストールしたパッケージが積もってディスクを圧迫する。 FAQ — Homebrew Documentation に書いてある brew cleanup を試したら 4GB ほどの空き領域を得られた。 How to use br…

スプレッド構文と Object.assign の違い

JavaScript の Object の spread operator (スプレッド構文) と Object.assign の違いを調べてわかった気になるが何度も忘れるので整理 結論 実質ほぼ同じことが実現できるが互換性の問題があるので Babel や TypeScript でトランスパイルするなら spread op…