$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

2018-01-01から1年間の記事一覧

「仮説思考」読んだ

仮説思考 BCG流 問題発見・解決の発想法作者:内田 和成東洋経済新報社Amazon施策を考えるときは、情報を網羅的に調べ上げて何をするか決めるのではなくて、今手元にある情報から自分が最も確からしいと感じる仮説を立ててから、その検証をするのだということ…

あー憂鬱になってきたと思ったら

どうせまた時期だろうなと思って、自分のブログを検索したら異常にに正確なリズムで、逆に面白くなってしまった。http://blog.shibayu36.org/search?q=憂鬱なんか唐突に自信なくなってきたけど、五月だからだろうなー— 柴崎優季 (@shiba_yu36) 2018年4月27日…

CloudFormationのクロススタック参照を利用してネットワーク設定とWebサーバ設定を分ける

「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」でAWSサーバ構築とCloudFormationに入門した - $shibayu36->blog;で、サーバ構築を1ファイルで行い、CloudFormationの1スタックでネットワーク設定もWebサーバ設定もDBサーバ設定も書い…

「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」でAWSサーバ構築とCloudFormationに入門した

AWSのネットワークやサーバ構築の基本知識が欲しかったのと、CloudFormationでどうAWSの構成を作るかについて知りたかったので、「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」を読みながらCloudFormationの設定を作るということをや…

CloudFormationで立ち上げたEC2に自動でApacheをインストールして起動するようにした

CloudFormationでVPCを構築し、CloudFormationに入門する方法を知った - $shibayu36->blog;、CloudFormationでEC2の立ち上げをした - $shibayu36->blog; の続き。今回は「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」のChapter4に従っ…

CloudFormationでEC2の立ち上げをした

CloudFormationでVPCを構築し、CloudFormationに入門する方法を知った - $shibayu36->blog; の続き。今回は「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」のChapter3に従って、EC2の立ち上げとセキュリティグループの設定をした。Amaz…

CloudFormationでVPCを構築し、CloudFormationに入門する方法を知った

最近CloudFormationに入門しようとしている。それで、AWS CloudFormation への入門に「Amazon Web Services 基礎からのネットワーク&サーバー構築」を使ってみた - えいのうにっきの記事をみて、これはいい入門の仕方だなあと思い、「Amazon Web Services 基…

PostgreSQLでSQLチューニングや障害状況調査に使ったクエリ達まとめ

最近PostgreSQLでSQLチューニングや、DBが詰まった時の状況調査をいろいろやった。その時に便利だったクエリ達をまとめていく。PostgreSQLのバージョンは9.6系です。 SQLチューニングなどに便利だったクエリ達 それ以降に実行するSQLの実行時間を表示する。…

「内部構造から学ぶPostgreSQL」読んだ

最近PostgreSQLに発行するクエリのパフォーマンスチューニングや、PostgreSQLの調査を行うことが多かったので、ちゃんと学ぼうと思って読んだ。内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)作者:勝俣 智成,佐伯 昌樹,原田 登志…

PostgreSQLでauto_explainを使ってどのクエリが遅いか把握する

ある機能が重いなどといった理由で、DBのどのクエリが遅いか把握したいことはよくあります。そんな時、PostgreSQLのauto_explainが便利だったので紹介。auto_explainを使うと、指定した実行時間以上を利用しているクエリに対して、自動で実行計画をログファ…

自分たち夫婦のことや育児のことをインタビューされました

東洋経済の、ほしいのは「つかれない家族」という連載で、夫婦での生活のことや育児のことについてインタビューされました。結構なボリュームになってしまったらしく、3記事に分割されて掲載されました。toyokeizai.net toyokeizai.net toyokeizai.net toyok…

技術的負債のパターンと悪影響・原因・返却方法について考える

先日飲み会で技術的負債についての雑談をしていた。結構いろいろな側面の話をしていたのだけど、技術的負債って一括りにしているのが今はあんまり良くなくて、負債の性質によって技術的奨学金、技術的FX、技術的年金などと言葉を変えると良いのではみたいな…

sbtが依存管理に使っているivyのローカルレポジトリやキャッシュについて調べた

自作のScalaライブラリをpublishLocalしながら手元でリリース前に最終確認する - $shibayu36->blog; で、手元で自作ライブラリの最終確認をするにはpublishLocalすれば良いことを書いた。この時にsbtが依存管理に使っているivyについてもついでに調べたので…

「エンジニアリング組織論への招待」はいろんな立場の人に読んで欲しい

最近メンタリング制度のことや、技術組織のことについて興味がある。最近「エンジニアリング組織論への招待」という本が出版されて話題になっていたので読んでみた。エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング作者:広…

自作ScalaライブラリをMaven Centralにリリースする手順メモ

最近Scalaの勉強も兼ねてjoda-time-fakeというScalaライブラリをMaven Central Repositoryにリリースしてみた。今回はその手順を忘れないようにメモとして残しておく。 今回の手順でできたこと com.github.shibayu36 organizationにjoda-time-fakeとしてライ…

自作のScalaライブラリをpublishLocalしながら手元でリリース前に最終確認する

joda-time-fakeを作りながら、リリースする前に手元で最終確認したいと思い、やり方を調べていた。調べてみると、publishLocalというものを使えば、ローカルのivy repositoryに成果物をpublishすることができ、そうすることで他のプロジェクトから参照できる…

良かったことは良かったとはっきりフィードバックする

最近心がけていることとして、「良かったことは良かったとはっきりフィードバックする」ということがある。自分がリーダーやマネージャのポジションになった時に、方針やメッセージを打ち出す、チームの開発フローを改善するなどを行うことがあった。この時…

【Scala】テスト時にjoda-timeの現在時刻を変更できるjoda-time-fakeを作りました

テストをしようとすると、現在時刻を変更したくなることがよくある。現在のプロジェクトではjoda-timeを使っているので、joda-timeのDateTime.nowが返す時刻を変更したい。ということで、それを簡単にできるjoda-time-fakeというライブラリを作りました。 ht…

sbtで複数のScalaのバージョンでビルドする

ライブラリを作っていて、2.11と2.12両方共でビルドしたかったので、sbtでどうやるか調べた。 方法は非常に簡単で、https://www.scala-sbt.org/1.0/docs/Cross-Build.html#Cross-Building+a+Project を参考にすれば良い。まずbuild.sbtにcrossScalaVersions…

マスタリングTCP/IP 入門編を読んだ

最近ホームネットワークで調子が悪いことがあったのだけど、その理由の調査が一切できずに困っていた。また、これまでネットワークが一切分からない状態で、インフラ周りを触る時に完全に他人におまかせだったり、そもそも共通言語で話せなかったりして、そ…

project/build.propertiesのsbt.versionでプロジェクトのsbtのバージョンを決められる

Scalaでビルドツールであるsbtを使っていて、そういえばsbtコマンドはグローバルのものを使っているけど、プロジェクトごとにバージョンを変えたかったらどうすればいいんだろうと疑問に思っていた。よくよく調べてみると、そもそもsbtの標準機能としてプロ…

HTTP GETしたときのTCPパケットの様子を理解する

どうやってIPからMACアドレスを解決するか - ARPの挙動を調べた - $shibayu36->blog;はデータリンク層、tracerouteの仕組みをtcpdumpとwiresharkで理解する - $shibayu36->blog;はネットワーク層について実践してみたので、続いてトランスポート層について実…

tracerouteの仕組みをtcpdumpとwiresharkで理解する

どうやってIPからMACアドレスを解決するか - ARPの挙動を調べた - $shibayu36->blog; に続き、マスタリングTCP/IPで気になったことの実践。tracerouteではIPヘッダのttlの値とICMPをうまく利用して、経路を教えてくれるというのを見たので、今回はそのパケッ…

どうやってIPからMACアドレスを解決するか - ARPの挙動を調べた

自分はアプリケーションエンジニアでネットワークを触ることは少ないのだけど、ネットワークも関わるタスクや障害が現れた時に話についていけないのは良くないと思い、マスタリングTCP/IP 入門編を今読んでいる。データリンク層の章まで読み、この章ではデー…

Mackerelの思想や出来ることを知る - Mackerelサーバ監視実践入門を読んだ

最近Mackerelを触ることが多く、Mackerelで何が出来るのかを知りたいと思い、Mackerelサーバ監視実践入門を読んだ。Mackerel サーバ監視[実践]入門作者:井上 大輔,粕谷 大輔,杉山 広通,田中 慎司,坪内 佑樹,松木 雅幸技術評論社Amazonこの本では、Mackerelに…

Scalaのテスト中にJoda-Timeのnowの時刻を固定する

今回はScalaのテストの話。時刻まわりが関わる実装をテストしたい時、テスト中だけ現在時刻を固定したり、現在時刻を過去にしたりなどといったことをやりたいことはよくある。Joda-TimeのDateTime.nowを使って現在時刻を取得している場合、時刻をfakeして固…

gitのcommit日時順にファイル一覧を表示する

レポジトリ内でドキュメントを探している時に、特定ディレクトリの中のファイルをgitのcommit日の順に並べて新しめのファイルを見つけたいなーと思ったことがあったのでやってみた。例えば https://github.com/golang/go のdoc/以下にある全てのファイルをco…

golangでAPIなど外部にアクセスするロジックのテストをする

golangで、例えばGithubのAPIを叩くような、特定のAPIにアクセスするロジックを書いた時、何も考えずにテストを書くと、テストを実行する際にもそのまま外部のAPIにアクセスしてしまう。この場合、色んなパターンのテストを書きづらい、依存している外部サー…