$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

tech

git commit時に自動perltidy & emacsからperltidy実行

最近業務で久々にPerlを書いている。最近社内ではperltidyをちゃんと使っているようで、自分の開発環境が追いついてなかったので、git commit時に自動perltidy & emacsから手動でperltidyを実行できる環境を整えてみた。 git commit時に自動perltidy git pre…

React + Apolloを使ったコンポーネントのテストをする

Reactを使ったコンポーネントのテストのやり方を知らなかったので、やってみた内容をメモ。hatena/go-Intern-Diaryをお試し環境として利用した。結果は https://github.com/shibayu36/go-Intern-Diary/pull/5/files テスト概要 – Reactを最初の資料としなが…

Nodeのイベントループを理解するために遊んだ & Apolloのテストでawait wait(0)するとなぜデータがロードされるか

Apolloを触っていて、テストをするために https://www.apollographql.com/docs/react/development-testing/testing/#testing-final-state を読んでいた。その文章の中で、 MockedProviderをrenderした時はloading状態になる データがロードされた最終状態に…

React Hooksを学んだ

React学習メモ - $shibayu36->blog;にてReactを学習したので、続いてReact Hooksを学んだ。Reactのドキュメントはわかりやすくて良い... 以下メモ書き。 全体を通して感じたこと 基本React Hooksの方が非常に見通しが良くなりそうだけど、今後クラス型コンポ…

TypeScript + Apollo ClientでGraphQLのデータに型を付ける

TypeScript + Apollo Clientで、useQueryなどを用いてGraphQLのクエリを発行する際に、クエリのvariablesやレスポンスのデータに型を付けたい。やり方が少々分かりづらかったのでメモを残す。 型をつけるためにやることは以下の通り。 apollo.config.jsを定…

Apollo platformのチュートリアルをやった

Hatena-Textbook 2018学習日記(5) - GraphQL編 - $shibayu36->blog;のようにHatena-Textbookを用いて最近のモダンなWebアプリケーション開発の学習をしているのだけど、TypeScript + GraphQL + Apollo Client + Reactの部分でそれぞれの技術の基本知識を理解…

GraphQLのクエリについて学んだ

Apollo Clientについて学ぼうと思い、0. Introduction - Apollo Basics - Apollo GraphQL Docsをやっていた。しかし、これをやる中でGraphQLのクエリ言語についてあまり分かってないことに気づいたので、Queries and Mutations | GraphQLを見て、クエリにつ…

Hatena-Textbook 2018学習日記(5) - GraphQL編

Hatena-Textbook 2018 学習日記(4) - $shibayu36->blog;の続き。https://github.com/shibayu36/go-Intern-Diary/pull/3 で、GraphQLを使って以下の操作ができるように実装した。 現在のログインユーザーの取得 user_id指定でユーザーを取得 diary_id指定でダ…

React学習メモ

最近のWeb開発わからん...って思って勉強してる。Reactは公式のチュートリアルやドキュメントがわかりやすく、そちらを進めると入門しやすかった。 チュートリアルやったレポジトリ https://github.com/shibayu36/react-tutorial/tree/84f44577d4bc29efe41ca…

実践的な採用施策の具体的な事例を学ぶ - 「採用に強い会社は何をしているか」を読んだ

採用に強い会社は何をしているか ~52の事例から読み解く採用の原理原則作者: 青田努出版社/メーカー: ダイヤモンド社発売日: 2019/04/11メディア: 単行本(ソフトカバー)この商品を含むブログを見る採用について学習をするために読んだ。この本良かった。以…

Hatena-Textbook 2018 学習日記(4)

Hatena-Textbook 2018 学習日記(3) - $shibayu36->blog;の続き。https://github.com/shibayu36/go-Intern-Diary/pull/2 で、ダイアリー作成とダイアリー一覧まで作った。記事作成系は出来てないけど、とりあえずここまでやれば次のGraphQLやReactあたりの学…

Hatena-Textbook 2018 学習日記(3)

Hatena-Textbook 2018 学習日記(2) - $shibayu36->blog; の続きです。今回は https://github.com/shibayu36/go-Intern-Diary/compare/01b1518eb0159b4a6d410188fd70ca1901a0e0ef...dca88a611ca9bf338f7fc901a11c1ebbe063ec56 あたりまで。ユーザー名からユー…

Hatena-Textbook 2018 学習日記(2)

Hatena-Textbook 2018 学習日記(1) - $shibayu36->blog; の続きです。今回は https://github.com/shibayu36/go-Intern-Diary/compare/ddef40c003464b410ea73cfd6787995c2484136f...01b1518eb0159b4a6d410188fd70ca1901a0e0ef あたりまで。とりあえず登録ペー…

GolangのHTTP Middlewareをテストする

ほぼ Unit Testing Golang HTTP Middleware – Kyle Purdon – Medium のまんまだけど、自分用にメモ。GolangのHTTP Middlewareというのは Goで始めるMiddleware - Qiita に紹介されているようなもの。PerlだとPlack Middleware、RubyだとRack Middlewareと概…

Hatena-Textbook 2018 学習日記(1)

最近Webアプリケーションを開発していないこともあって、最近のモダンなWebアプリケーション開発についていけていないことに危機感を感じたので、2018年のHatena-Textbookを使って再学習している。今日は以下の3つのcommitをした。 https://github.com/shiba…

「エンジニアメンター制度の効果的な運用を目指して」という発表をEngineering Manager Meetup #5でしました

「エンジニアメンター制度の効果的な運用を目指して」という発表をEngineering Manager Meetup #5でしました Engineering Manager Meetup #5で「エンジニアメンター制度の効果的な運用を目指して」という発表をしてきました。自分も久々の発表で緊張しました…

採用手法の良し悪しを判断するための基礎知識を身に付ける - 「人事と採用のセオリー」を読んだ

今後採用に積極的に携わることになったので、じゃあ基礎知識を自分が身につけておかないと人事の人にも信頼されないよなと思い、社内の人事の方に紹介された「人事と採用のセオリー」という本を読んだ。人事と採用のセオリー 成長企業に共通する組織運営の原…

入門 考える技術・書く技術を読んだ

人に分かりやすく伝える技術が不足していると感じたので読んだ。入門 考える技術・書く技術――日本人のロジカルシンキング実践法作者: 山崎康司出版社/メーカー: ダイヤモンド社発売日: 2011/04/08メディア: 単行本(ソフトカバー)購入: 15人 クリック: 71回…

Gotanda.EM #1 で「グレードイメージ具体化のため昇格理由を公開する」という発表をしてきました

Gotanda.EM #1 - connpassというイベントが開催されたので、「グレードイメージ具体化のため昇格理由を公開する」という発表をしてきました。発表内容を要約すると グレード役割定義だけでは、グレードごとに期待される具体的な行動やスキルが分からないとい…

notify-issues-to-slackをdockerhubに公開しました

先日notify-issues-to-slackを公開しました。 blog.shibayu36.org本日それをdockerhubに登録したので、docker pullするだけでご利用いただけます。 $ docker pull shibayu36/notify-issues-to-slack $ docker run --rm shibayu36/notify-issues-to-slack -he…

レビュータイムや定期的なissueチェックのためにGithubのissueを検索してSlackに投稿するCLIツールを作った

https://github.com/shibayu36/notify-issues-to-slack というツールを作ったので紹介です。 背景 はてな社内では各チームでレビュータイムという時間を設けていることが多い。その時間にチーム内のissueやPull Requestを全部見るという心がけをしている。レ…

問題意識を感じたときに「効率的に良い状況に変える」ためのアクションリスト

自分の置かれた環境で問題意識を感じることってありますよね。例えば 上司全然ちゃんとやってくれないじゃん!最悪! 会社にこういう問題あるじゃん!なんで直らないの!最悪! みたいな感じ。昔はこういう問題意識を持った時、自分で「良い状況に変える」こ…

アプリケーションは全員で監視する - 「入門 監視」を読んだ

最近話題になっていた「入門 監視」を読んだ。アプリケーションの監視をするための実践的なノウハウが詰まっていて非常に参考になる書籍だった。入門 監視 ―モダンなモニタリングのためのデザインパターン作者: Mike Julian,松浦隼人出版社/メーカー: オライ…

「実践Scala入門」読んだ

実践Scala入門作者: 瀬良和弘,水島宏太,河内崇,麻植泰輔,青山直紀出版社/メーカー: 技術評論社発売日: 2018/10/27メディア: 単行本(ソフトカバー)この商品を含むブログを見る読んだ。この本は「コンパクトなコップ本」を目指したと最初に書かれているとお…

jstatを使うとJVMのメモリ使用状況が分かる

最近頻繁に手元で起動したsbtがjava.lang.OutOfMemoryError: Metaspaceで死ぬので、メモリ使用状況を確認するコマンドを調べた。備忘録として残しておく。 jstatを使用したJavaアプリのメモリ計測 - Qiita Java開発の性能改善! その1 jstatによるヒープ/GC…

epochをISO8601のフォーマットに変換するコマンド

エンジニアをしているとepoch秒をよく見るが、epoch秒だと頭でいつの時間か理解するのは難しい。ISO8601のフォーマットだとシュッと理解できる。つまり epoch秒の1547018800 ISO8601の2019-01-09T16:26:40+0900 epoch秒が出てきた時にシュッとISO8601のフォ…

Emacsを26.1にアップグレードした

eglotというlspのクライアントを使いたくてEmacs 26.1を入れた。なんかめっちゃ苦労した。辛いのでvscodeとかに脱出したくはあるが、慣れ親しんでいて完全脱出は無理かもしれない。 インストール 最初はEmacs 25.3/26.1 を EMP版で快適に使う - Qiitaを参考…

エンジニアと1on1をするときの事前面談シートテンプレート

はてなのチーム横断のエンジニアメンター制度 - Hatena Developer Blog で紹介していますが、はてなにはチーム横断のエンジニアメンター制度があります。僕も最近までメンターとして5~6人ほどのメンティーを持っていました(今は事情があってメンターをやって…

Karabinar-Elementsを使って特定のアプリケーションの時だけキーを入れ替える

IntelliJ IDEAを使っていて、バックスラッシュを入力したいのに円マークになって困っていた。また対応方法として、 IntelliJでバックスラッシュ - トミールの技術系日記 JetbrainsのIDEでバックスラッシュがデフォルト入力にならない - Qiita あたりの記事も…

sbtでjava.lang.OutOfMemoryError: Metaspaceで死んだ時は

自分用の雑なメモ。正確性は不明。 原因 sbt -helpしてみると、sbtは-memのデフォルトが以下のように設定されている。 -mem <integer> set memory options (default: 1024, which is -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxMetaspaceSize=256m)</integer>…