なんだか疲れ切って何もやる気ないなぁというとき、最近はYouTubeを見ることが多くなってきました。 限られた可処分時間をYouTubeに捧げるのも良し悪しはあるのですが、 自分の興味がある分野を集中して学べるプラットフォームは魅力があります。 ぼくは100…
会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSRE本をマル…
仕事でGraphQLに関わる予兆があるのですが、なかなかGraphQLに馴染みがなかったので、まずは「はじめてのGraphQL」を読みました。 感想を一言でいうと、本当に読んで良かったという読後感です。 ぼくの悪い癖として、新しい技術を学ぶときはRFCや公式仕様/ド…
昨年12月に、デュアルモニタ用のモニターアームを使い始めました。 ぼくにとっては初のモニターアームだったのですが、かなり良いです。良い。 購入したもの 購入したのは、Amazonベーシックのこちらのアームです。 Amazonベーシック デスクマウント デュア…
モノリス的なJavaアプリケーションにおいて、各クラス・メソッドがどのように依存し合っているのかを見極めたいというのは しばしば生じるニーズです。 アプリケーションが巨大になれば分割したいと考えるのは自然の摂理でもあり、 分割面がどこなのかを見極…
ChromeやChromiumをNode.jsから操作できるライブラリとしてPuppetterがあります。 これを使うと、Chromeでできるさまざまな事柄が自動化できます。 一方で、PuppetterはChromeを内蔵しており、Lambda関数化したとしてもそのサイズは非常に大きくなります。 L…
テストを書こうと言っても、精神論ではなかなかその文化は育ちません。 これを行おうとすると、自分の記述したテストがどのようにプロジェクトやチームに貢献しているのかを可視化する必要があります。 今日のゴールは2つあり、1つはMerge Requestのファイル…
CheckstyleやSpotBugsのエラーを、Reviewdogを使ってGitLabのMerge Requestにコメントできるようにしました。 それぞれハマりポイントがあって、かなり苦戦しました。このため、それぞれに関する内容を記載しておきます。 Checkstyle Reviewdog自体はネイテ…
CIで実行した静的解析の結果をMerge Requestのコメントとして書き込みたいというニーズは多くあります。 これを容易に叶えてくれるプロダクトがreviewdogです。 問題 このreviewdogをGitLab CI/CDに設定したのですが、以下の様なエラーが出て失敗してしまう…
問題 GitLabを使ってJavaのプロジェクトのCIを回す時、Mavenによるアーティファクトのダウンロード時間が問題になります。 CIにおいては、これはMavenのローカルリポジトリをキャッシュすることによって解決される問題です。 ぼくは.gitlab-ci.ymlに以下の様…
何をするにも「わかりやすく表示する」というのは重要です。 Checkstyleについても、その結果をGitLabやGithubでわかりやすく表示できれば、「これは直さないと」とチーム内で共有できるでしょう。 GitLabでCheckstyleのレポートを表示できるようにする 実現…
基本的にJavaのエンジニアの多い会社に勤めているはずなのですが、そういえばCheckstyleを自分で設定したことがありませんでした。 Checkstyleは、プロジェクトで定めたコーディング標準に従っているかを機械的にチェックしていくツールですね。 というわけ…
メタデータであるCreation Timeを削除したQuickTimeファイルから、Creation Dateを読み出そうとすると例外が発生するように実装しました。 使用しているライブラリはこちらです。 public class QuickTimeCreationTimeKeyMapper implements MovieFileKeyMappe…
Twilioで「受けた」電話を録音するサンプルは色んなところに転がっています。 ただ、なかなか「架けた」電話を録音するサンプルがなかったので、確認してみました。 結論 非常に簡単で、電話をかけるときのTwiMLにRecord Verbを指定するだけで良いです。 電…
業務上でTwilioとお友達になる必要があるので、すこし使ってみました。 サインアップ とりあえずサインアップするだけならすぐにできます。 Twilioは電話番号を起点とするサービスになっていますが、 日本ではローカル電話番号の取得はかなり厳密になってお…
MarkdownファイルをPandocでHTML化する際、どのような指定が良いかを迷っていたのですが、いまのところ以下のようなオプションで落ち着きました。 HTMLテンプレート Table of Contents(TOC)の作成 画像ファイルの同梱 $ pandoc \ --standalone \ --self-cont…
最近のドキュメントはもっぱらMarkdownで書くという方も多いのではないでしょうか。 markdownlintやtextlintといったツール群によって、文章の構成環境も整えやすくなってきました。 ここで、GitLab Flavored MarkdownやGitHub Flavored Markdownにおいて脚…
アジャイルで進めるプロジェクトにおいて、どこまで各スプリントでテストを実施しておくべきかというのは、どのプロジェクトにおいても頭を悩ませる話題でした。 スクラムガイドからの読み取り 毎スプリント出荷可能にするための負荷 アジャイルテストの四象…
動画ファイルをクラウドにアップロードしたいのですが、どこで撮影したのかというGPS情報は削除したい、ということがあります。このあたりをツールでサッと実施するにはExifToolが良さそうです。 例えば、iPhoneで撮影したQuickTime movieのファイルをExifTo…
いろいろと撮影した動画が溜まってきたので管理をしたい。そこで必要になるのが撮影日付です。 なんとかシステマチックに抽出できないかと思って、試しておりました。 コマンドラインで抽出する ffmpegを使うと、対照ファイルからmetadataが抽出できます。 …
そういえば日本学生支援機構(JASSO)から借りていた奨学金を先日に全額完済していました。 これまできちんと振り返って計算したこともなかったけれど、総額で500万円ほど借りていたようです。 学校 金額 高専 1,704,000円 大学 (3年次編入) 1,200,000円 大学…
新規事業の実践論を読みました。 新規事業の実践論 (NewsPicksパブリッシング)作者:麻生要一ニューズピックスAmazon この本は、いわゆるスタートアップではなく「社内起業」に関する実践的なノウハウを扱ったものです。 勤める会社を飛び出して自ら事業を起…
これまでTerraformに関するCIとしてはGitLab CI/CDを使っていました。 最近はプライベートでGitHubを利用しTerraform周りのコードを管理しており、GitHub上でのCIを色々試行錯誤しています。 ようやく以下のように、terraform planの結果等をPull Requestへ…
Terraformをローカルで実行するときには正常でも、いざGitHub ActionsやGitLab CI/CDでTerraformを実行すると以下のようなエラーと遭遇するケースがあります。 │ Error: Failed to install provider │ │ Error while installing hashicorp/aws v3.68.0: the …
これまでGitHub ActionsからAWSのリソース操作しようとすると、以下のような対応が必要でした。 権限を絞ったロールを付与したIAMユーザを作成する そのアクセスキーIDをGitHub Actionsに登録し、Jobから利用できるようにする しかし、GitHub ActionsがOIDC…
プライベートでもAWSを使っているのですが、そういえばAWS Budgetsを設定しようと思って忘れていました。 AWS Budgetsとは AWS Budgetsは、コストや使用量を追跡し、予実の可視化やコスト等が閾値を突破したときのアラートを通知してくれたりするサービスで…
日本でiPhone 3Gが発売されて以来、ずっとiPhoneユーザとして生きてきました。 それでもずっと問題だったのが、いわゆるホーム画面のアプリ1軍問題です。 ホーム画面には少数のアプリ(1軍アプリ)しか配置できず、それ以外の2軍以降のアプリは他画面に配置す…
手動でいちいちpandocを実行するのは面倒です。 Merge Requestの作成やそのbranchに変更が入ったタイミングで、Markdownファイルをdocxファイルに変換し、リポジトリにアップロードしたい。 実際にこれを実装すると、以下のようにMerge Requestに紐づく形で…
GitLabにはPackage Registryという機能があり、様々な言語のパッケージをホストできます。 Maven packages in the Package Repository | GitLab npm packages in the Package Registry | GitLab PyPI packages in the Package Registry | GitLab 一方で、言…
MarkdownのファイルをベースにPull/Merge Requestでやりとりすることが難しいケースというのは存在します。 そういった場合、指摘やそれに対する修正は、変更履歴の保存の容易なWord形式を使うのが楽でしょう。 Word での変更履歴の記録 そして、こういった…