yigarashiのブログ

学んだことや考えていることを書きます

embulk gem installはインストールに失敗してもexit statusが0になる

embulk gemコマンドとembulk bundleコマンドは失敗してもexit statusが0になってしまいます。DockerでEmbulkを動かしている場合は、サイレントにイメージビルドが失敗するといった事故に遭う可能性があります。

embulk-input-mysqlでCommunications link failureになる時の原因と解決方法

EmbulkでMySQLからデータを読み出す際に、MySQL Connector/JのsocketTimeoutに起因するエラーが発生することがあります。本記事ではその原因と解決方法を簡潔にまとめます。

『ふりかえりガイドブック』に学ぶワンランク上のふりかえりのポイント

自分の中のふりかえりの知見を再構成するために「アジャイルなチームをつくる ふりかえりガイドブック」を読みました。全体を通してふりかえりのエッセンスが詰まっており、特に「小さく具体的なアクションから始める」「メタなふりかえりを重視する」という…

上手にカイゼンタスクを依頼してチームの自己組織化をアジャイルに進める

上手にタスクを依頼すると、依頼された側は目的に対して自律的に行動できるようになります。これは小規模な自己組織化に他なりません。スクラムチームとしての自己組織化にこの現象を応用することで、アジャイルに自己組織化を進める実験を試みています。

ふりかえりは必ずポジティブなコーナーから始める

ふりかえりは少なからず自分たちの悪いところを明らかにするプロセスを含むので、痛みを伴います。そして、チームが真面目で向上心があるほど、その痛みに立ち向かって改善を推し進めようとします。しかし痛みは痛みです。大小あれどストレスを感じて落ち込…

プルリクエストが大きくなると判断が歪むことに気付いた

僕の個人的な話で、一般の話ではありません。もし心当たりがあれば一緒に気付きましょう。 とある日、大きめの実装タスクがアサインされました。大きめというのは実営業日で1週間ちょっとかかるイメージです。内容はそこまで難しくなく、なんとなく書いて大…

『DMM.comを支えるデータ駆動戦略』を読んだ

最近はエンジニアとして事業への貢献度を高めたくなっていて、同僚が本書をオススメしていたので読んでみました。チームや社内でデータ駆動の意思決定がどんどん盛り上がっていたこともあり、データを軸にしたアジャイル開発について、一度まとまった知見を…

『正しいものを正しくつくる』を読んだ

会社の人がおすすめしていた正しいものを正しくつくるを読みました。その読書感想文です。 本書のざっくりとした主張としては、仮説検証を繰り返すことによって「正しいもの」つまりユーザーにとって価値のあるプロダクトを探索し、それを「正しく」つまり不…

GraphQL API を悪意あるクエリから守る手法

実サービスで GraphQL API をインターネットに公開する際は、悪意あるクエリに対する防衛が欠かせません。この記事における「悪意あるクエリ」とはサービスに意図的に負荷をかけるクエリのことです。GraphQL では 、木構造や再帰的な構造を利用して、一回の…

エンジニア8人チームで"効果的に"タスクをアサインするために検討した8つの軸

最近、締め切りのある大きめなプロジェクトでWebアプリケーションエンジニア兼プロジェクトマネージャーとして仕事をしました。一年目なので当然プロジェクト管理の経験はなく、本を読んで知識を得たり、チームメンバーに助けられたりと、だいぶ手探りでの挑…

見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察

昨年の10月頃から締め切りのある大きなプロジェクトに参加し、部分的にではありますがプロジェクトマネジメントを担当しました。この記事では、その業務を通して得た見積もりに関する知見をまとめます。教科書的な知識は「アジャイルな見積もりと計画づくり…

【React】カスタムフックでstatefulなコンポーネントを整理する

こんにちは。最近は仕事で React を書き始めました。数年前に React を触った時は class component をせっせと書いた覚えがあるのですが、最近は functional component と react hooks を組み合わせて書くこともできるようです。react hooks の概要は公式ド…

Apollo ClientのInMemoryCacheとMutationに関する調査・考察

Apollo Client は、Apollo プラットフォームが提供する JavaScript で実装された GraphQL クライアントです。Apollo Client には InMemoryCache という強力なキャッシュ機構が用意されており、クエリの結果をキャッシュすることができます。本記事では、この…

Python処理系入門 〜1 + 1 で学ぶ処理系解読の基礎〜

Pythonの最も主要な処理系であるCPythonの入門記事です.はじめに,CPython で用いられているデータ構造とプログラムの実行方式について簡単に解説します.その後で,「処理系を改造して 1 + 1 = 3 にする」という課題を通して,実際に CPython のコードを読…

漸進的型付けの未来を考える

TypeScript や Python に導入されている「漸進的型付け」ですが,理論と実際の言語の間には大きなギャップが存在します.この記事では,そうしたギャップをプログラマの言葉でわかりやすく解説し,TypeScript や Python といったプログラミング言語の未来を…

型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜

この記事は CAMPHOR- Advent Calendar 18日目の記事です. 「Typing Haskell in Haskell (通称 thih)」から型クラスを含んだ型推論のエッセンスを紹介したいと思います. 多少専門的な内容ですが,なるべく多くの人に理解してもらえるように頑張ります. 論…

System F をHaskellとPythonで実装した

無事夏休みに突入して時間ができたので再びTaPLを読み始めました.半年触っていなくても進行,保存の証明が書けるあたり,春の自分はずいぶんしっかりと勉強していたようです.春は22章の型再構築まで読んでいたので,ひとまず23章のSystem Fから読んでサク…

Haskellで簡単な正規表現を実装した【KMCアドベントカレンダー8日目】

KMCアドベントカレンダー8日目の記事です。講義で正規表現とかオートマトンをちゃんと学んだので、Haskellの修行も兼ねて簡単な正規表現を実装しました。理論とか実装とかダルいと思うので、おまけだけ読むと楽しいかも知れません。