理系学生日記

おまえはいつまで学生気分なのか

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

GitLabでJavaのソースコードのテストカバレッジを可視化する

テストを書こうと言っても、精神論ではなかなかその文化は育ちません。 これを行おうとすると、自分の記述したテストがどのようにプロジェクトやチームに貢献しているのかを可視化する必要があります。 今日のゴールは2つあり、1つはMerge Requestのファイル…

Checkstyle、SpotBugsのエラー(Violation)を、Reviewdogを使ってGitLabのMergeRequestにコメントする

CheckstyleやSpotBugsのエラーを、Reviewdogを使ってGitLabのMerge Requestにコメントできるようにしました。 それぞれハマりポイントがあって、かなり苦戦しました。このため、それぞれに関する内容を記載しておきます。 Checkstyle Reviewdog自体はネイテ…

ReviewdogをGitLabで使うときに`failed to get merge-base commit`が発生する

CIで実行した静的解析の結果をMerge Requestのコメントとして書き込みたいというニーズは多くあります。 これを容易に叶えてくれるプロダクトがreviewdogです。 問題 このreviewdogをGitLab CI/CDに設定したのですが、以下の様なエラーが出て失敗してしまう…

GitLabでMavenのローカルリポジトリをcacheしようとすると`WARNING: .m2/repository: no matching files`でキャッシュが効かない

問題 GitLabを使ってJavaのプロジェクトのCIを回す時、Mavenによるアーティファクトのダウンロード時間が問題になります。 CIにおいては、これはMavenのローカルリポジトリをキャッシュすることによって解決される問題です。 ぼくは.gitlab-ci.ymlに以下の様…

GitLab CI/CDのCode QualityでCheckstyleのレポートを表示する

何をするにも「わかりやすく表示する」というのは重要です。 Checkstyleについても、その結果をGitLabやGithubでわかりやすく表示できれば、「これは直さないと」とチーム内で共有できるでしょう。 GitLabでCheckstyleのレポートを表示できるようにする 実現…

MavenへのCheckstyleの組み込み

基本的にJavaのエンジニアの多い会社に勤めているはずなのですが、そういえばCheckstyleを自分で設定したことがありませんでした。 Checkstyleは、プロジェクトで定めたコーディング標準に従っているかを機械的にチェックしていくツールですね。 というわけ…

QuickTimeの日時情報は32-bit integerであり未設定の場合は1904/01/01 00:00:00 (UTC)扱いになる

メタデータであるCreation Timeを削除したQuickTimeファイルから、Creation Dateを読み出そうとすると例外が発生するように実装しました。 使用しているライブラリはこちらです。 public class QuickTimeCreationTimeKeyMapper implements MovieFileKeyMappe…

Twilioで架電した電話を録音する

Twilioで「受けた」電話を録音するサンプルは色んなところに転がっています。 ただ、なかなか「架けた」電話を録音するサンプルがなかったので、確認してみました。 結論 非常に簡単で、電話をかけるときのTwiMLにRecord Verbを指定するだけで良いです。 電…

Twilioで電話をかけてみる

業務上でTwilioとお友達になる必要があるので、すこし使ってみました。 サインアップ とりあえずサインアップするだけならすぐにできます。 Twilioは電話番号を起点とするサービスになっていますが、 日本ではローカル電話番号の取得はかなり厳密になってお…

MarkdownをpandocでHTML化するときのノウハウ

MarkdownファイルをPandocでHTML化する際、どのような指定が良いかを迷っていたのですが、いまのところ以下のようなオプションで落ち着きました。 HTMLテンプレート Table of Contents(TOC)の作成 画像ファイルの同梱 $ pandoc \ --standalone \ --self-cont…

Markdownにおける脚注番号の重複を検知する

最近のドキュメントはもっぱらMarkdownで書くという方も多いのではないでしょうか。 markdownlintやtextlintといったツール群によって、文章の構成環境も整えやすくなってきました。 ここで、GitLab Flavored MarkdownやGitHub Flavored Markdownにおいて脚…

スクラムプロジェクトでどこまで毎スプリントのテストをすべきか

アジャイルで進めるプロジェクトにおいて、どこまで各スプリントでテストを実施しておくべきかというのは、どのプロジェクトにおいても頭を悩ませる話題でした。 スクラムガイドからの読み取り 毎スプリント出荷可能にするための負荷 アジャイルテストの四象…

動画ファイルからGPS情報を削除する

動画ファイルをクラウドにアップロードしたいのですが、どこで撮影したのかというGPS情報は削除したい、ということがあります。このあたりをツールでサッと実施するにはExifToolが良さそうです。 例えば、iPhoneで撮影したQuickTime movieのファイルをExifTo…

MOVファイルから撮影日時を抽出する

いろいろと撮影した動画が溜まってきたので管理をしたい。そこで必要になるのが撮影日付です。 なんとかシステマチックに抽出できないかと思って、試しておりました。 コマンドラインで抽出する ffmpegを使うと、対照ファイルからmetadataが抽出できます。 …

奨学金を完済していた

そういえば日本学生支援機構(JASSO)から借りていた奨学金を先日に全額完済していました。 これまできちんと振り返って計算したこともなかったけれど、総額で500万円ほど借りていたようです。 学校 金額 高専 1,704,000円 大学 (3年次編入) 1,200,000円 大学…