MkDocsでmainブランチを利用する

昨今、技術界隈でもポリコレが重要視されている気がする世の中です. GitHubのデフォルトブランチがmainブランチに変更されていますが、MkDocsではmasterブランチがデフォルトのままです. この場合、生成されたHTMLの編集リンクはmasterブランチが参照されるため、GitHubで管理されている場合は404ページが表示されてしまいます.

そこで今回は、MkDocsでmainブランチの編集画面を開く設定を書いておきます.

TL; DR

  • mkdocs.ymlにedit_uri: edit/main/docs/ を追記する

mainブランチの編集画面を開く

公式ドキュメントのedit_uriが今回利用する設定になります. 他の設定値よりも色々と書かれていますが、GitHubで管理しているリポジトリがmainブランチという前提で話を勧めているのため、

f:id:corrupt952:20210226054427p:plain

の部分を参考にしてedit_uriを追記します.

On GitHub and GitLab, the default "edit" path (edit/master/docs/) opens the page in the online editor.

GitHubとGitLabは、edit_uriedit/master/docs/がデフォルトで設定されるということが分かります. というわけで、値のmaster部分をmainに変更して値をmkdocs.ymlに追記すればOKです.

以下がその例です.

site_name: In Docs - MkDocs Prj Templates
repo_url: https://github.com/corrupt952/mkdocs-prj-templates
# これを追記
edit_uri: edit/main/docs/

2021年買ってよかったもの

2021年に買ってよかったものを書いておきます。

オカムラ - Contessa Ⅱ(コンテッサ セコンダ)

12月に届いたばかりですが、既に買ってよかったと実感しています。

休日にゲームをする際、12時間ぶっ続けで椅子に座ってることもありますが、疲れもないしコリすら皆無でした。
また、作業部屋ではレオパを飼育しており、1年中26度の室温を保つようにしています。
そのため、座面と背もたれがメッシュであれば、蒸れにくく快適に作業ができました。

気になっている方は、何度も試座して確認することをオススメします。
「高い椅子=自分に合う椅子」ではないですし。

メリット

  • 長時間座っていても疲れづらい
  • メッシュだと蒸れない
  • 可動肘なので腕の位置をある程度自由にできる

デメリット

  • リクライニングが浅く感じる(かもしれない)
  • 価格が高い

PFU - HHKB Professional HYBRID Type-S

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

HHKB Professional HYBRID Type-S 英語配列/墨
価格:35200円(税込、送料無料) (2021/12/20時点)

購入の決め手は、元々HHKB Professinal2を使っていたということと、無線キーボードが欲しいという気持ちが2年間ぐらい続いたことです。
実際に使ってみると、思っていたよりも使いやすく電池の持ちも問題なさそうでした。

メリット

  • Type-Sモデルなので通常のHHKBと比べて静かなタイプ音
  • リモートワークで複数PCを使っているけれど、PC間の切り替えが容易に行える
  • HHKB慣れしてるので入力しやすい

デメリット

  • Type-S全般の話だけど、タイプ音が特徴的なので気に入らない人はいる
  • 値段が高い

日立 - 洗濯乾燥機 ビッグドラム BD-SX110FL

同僚からオススメされたという経緯もあり、引越し後即購入してみました。
気になる点はありますが、便利なので洗濯乾燥機は是非購入検討をしてみて良よさそうです。

臭い戻りが気になるという口コミを見かけますが、対策することで防げます。
心配な方は日立以外のメーカーをしていた方が良さそうです。

メリット

  • 乾燥機能がついている
  • 洗剤・柔軟剤の自動投入

デメリット

  • フィルター関連は都度掃除しなければならない

サンワサプライ - ケーブルトレ

電源タップとこのケーブルトレイを使って、昇降デスクで昇降しても卓上にある家電のコンセントの長さを意識しなくても良くしています。
クランプ式の方を購入しましたが、設置も楽でかなり快適です。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ケーブルトレー(メッシュ・汎用タイプ)
価格:5790円(税込、送料無料) (2021/12/20時点)

メリット

  • クランプ式なので設置が楽
  • 大型のタップでも問題なく収納可能

デメリット

  • ケーブルトレー自体ではないが、タップを使う場合はトラッキングに気をつける必要がある
  • クランプ式なのでクランプが卓上で目立つ(かもしれない)

サンワサプライ - HDMI切替器

画面出力したい家電が増えてきたので、このHDMI切替器で必要に応じて切り替えて使っています。
私が使いたい用途では問題ありませんが、気になっている人は出力するHDMIの規格と、この製品の規格があっているか、違っていても問題ないかはチェックしておいた方が良いです。

メリット

  • 切り替えをリモコンでできる

デメリット

特になし

ニトリ - 着脱ハンドル鍋フライパン4点セット

自宅にあるフライパンの寿命がきたので、DECO HOMEで見かけたこの4点セットを購入してみました。
値段が安めなので耐久性に不安を持っていましたが、半年ほど経った今でも問題なく使えています。

6点セットではなく4点セットを購入した理由ですが、鍋の大きさです。
6点セットでは20cm鍋ですが、4点セットだと18cm鍋で少し小さめになっています。
インスタント麺を茹でたり、ベーグルを茹でるときは18cmの方が扱いやすいため、4点セットの方を選びました。

メリット

  • 着脱式にしては安価
  • 意外と耐久性が高い
  • 18cm鍋は小柄で良い

デメリット

  • 着脱する時にワンタッチではできない

Crucial - Ballistix RGB 32GB Kit (2 x 16GB) DDR4-3600 Desktop Gaming Memory (Black)

メインPCで開発している時にメモリアクセス速度が気になったので購入しました。
不満は皆無ですが、現時点で在庫はなさそうなので追加購入ができないのが難点です。

www.crucial.jp

メリット

デメリット

  • 買えない

Fractal Design - Lumen S28 RGB 簡易水冷CPUクーラー RGBファン搭載 280mm

メインPCのCPUクーラーが冷えなくなってきたので、ケースに合わせてFractal Designの簡易水冷を購入しました。
現時点では、しっかりと冷えてくれているので可もなく不可もなくといったところです。

メリット

  • 光り方がシンプル

デメリット

  • ホースの配線がケースによっては難しい

FOSTEX - アクティブ・スピーカー PM0.3H(& SUBminin2)

デスクトップ周りの音響を見直すために、予算内でPM0.3Hを購入しました。
この値段でこの音のモニタースピーカーであれば文句なしですね。

ただし、付属のケーブルでは音があまりよく感じられないので、別途良いケーブルを買って付け替えると良いです。
また低音が物足りなく感じる人は、プラスでSUBminin2といったサブウーファーを入れるとより楽しめます。

メリット

  • モニタースピーカーとしては値段相応で良い
  • 見た目がカッコいい

デメリット

  • 付属のケーブルだと本領発揮には程遠い
  • 音量つまみが背面なので頻繁に切り替える場合は面倒くさい
  • アクティブスピーカーあるあるだけど左右の音量が微妙に異なる(慣れる)

東芝 - 石窯ドーム ER-WD3000

パンを生地から捏ねて焼く生活に10年ぶりぐらいに戻ってきたので購入しました。
パンやお菓子を焼くのは問題なく焼けています。 オーブンレンジなので自動あたためがほぼ使えないようなものですが、マニュアルであたためすれば問題ないです。

www.toshiba-lifestyle.com

メリット

  • 5分間だけだが300℃で焼ける(ピザは良い)
  • 2段で同時に焼くことができる
  • 発酵メニューが30℃、35℃、40℃から選べる

デメリット

  • 自動であたためる機能や解凍は信用ならないので手動でやる(オーブンレンジ全般)
  • オーブン機能を使うと再度使えるようになるまで一度冷やさなければならない

Panasonic - ホームベーカリー SD-MDX102

ER-WD3000と同様にパンを焼く為に購入しました。 手捏ねは大変面倒くさいので捏ねるためにかったようなものですが、単体でも食パンが美味しく焼けたり、コンポートやジャムも作れて大変重宝しています。

panasonic.jp

メリット

  • レーズンなどの具材やイースト自動投入機能が便利
  • パン以外のメニューもあり豊富

デメリット

  • 一斤しか焼けない

Hugo向けのDockerfile最新版

個人サイトの www.khasegawa.net からブログをはてなブログに切り出したことで、テーマも変更しました.
それに伴いコンテナイメージを作り直したので、その時のDockerfileを書いておきます.

ちなみに最近のHugoのテーマでは、Sass/SCSSのコンパイルが必要になる場合もあるため、 インストールするHugoはextendedバージョンをインストールしています.

FROM ubuntu:20.04
RUN apt-get update \
    && apt-get install -y --no-install-recommends wget ca-certificates git bash make \
    && wget -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.81.0/hugo_extended_0.81.0_Linux-64bit.deb \
    && dpkg -i hugo.deb \
    && rm hugo.deb \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /app

個人ブログをはてなブログに移行しました

ほぼ毎年ブログを変えてるような気がしますが、今回は落ち着くことになりそうです.

以前、個人ブログを変更した時の話はこれ

khasegawa.hatenablog.com

Hugoを使っていて不便に感じたこと

元々Hugoを使ってブログの記事内容を含めてwww.khasegawa.netを管理していたのですが、
Hugoを使ってブログを管理する際に1点だけデメリットがありました.

それはブログ記事に画像を埋め込むときです.

恐らくこれmacOSを使っている人は多少マシだとは思いますが、
私の普段の開発環境はWindows+WSL2(Ubuntu)になります.
この環境で画像入りのブログ記事を作る場合にどういった手順が必要になるのかと言うと、

  1. 記事作成スクリプトを実行(画像置き場も作成される)
  2. 記事を書く
  3. Windows側にあるファイルをWSL側にある画像置き場にmvなどで移動する
  4. 記事内にfigureなどのショートコードを利用して画像を参照させる

といった手順になります.
そこまで面倒じゃないように思えるかもしれませんが、3と4の中では移動したりファイル名を変更したり、パスを考えてfigureを呼び出したりと
意外と作業が多く画像を埋め込みたい時にかなり面倒に感じていました.
はてなブログに移行したとは言っても完全に解消されるわけではありませんが、
今の運用よりは圧倒的に楽になりそうです.

NewRelicの新料金プランについてまとめる

昨年の夏頃にNewRelicでは新料金プランを打ち出していました.

newrelic.com

この頃は私が関わっているところでは、料金プランの変更が次回更新時だったため詳細について見るのを後回しにしていました.
そしてそろそろ更新タイミングに差し掛かるため、新料金プランがどういった料金体系や仕組みになっているのかをまとめます.
間違っているところもあるかしれないのでそこはご注意ください.

料金について

旧料金プランでは、利用する製品ごとにホスト数やAU数による従量課金でした.
新料金プランでは、Full userというユーザ数課金と、無料枠を越えた場合の従量課金の2軸になっています.
料金の詳細についてはNewRelicのページを見てほしい.

newrelic.com

無料枠を越えた場合の従量課金については、どれぐらいになるのかが想定できないので端折りますが、
ユーザ数課金は1開発者として考えるとかなり高くなる可能性があります.
新しい料金プランでは、Basic userとFull userという2種類のユーザモデルが存在しており、
Basic userは無料で使えるが、Full userはそのユーザ数分の料金が請求されます.
恐らく大部分の開発者はFull userでないと困る可能性が高く、開発者が多い組織では開発者数分の料金が徴収されます.
具体的にどれぐらいの料金なのかはページに表示されていないため、ここでは触れないが組織によっては驚くような徴収額になる可能性が高いです.
とはいえ、利用できる機能や管理しているサービスやホスト数によっては全然ペイできるとは思う価格帯だとは私は思っています.

ちなみに本家の方のページには日本のページにはないStandardなるプランがあります.

newrelic.com

Basic userとFull userの違いについて

NewRelic公式ドキュメントにユーザモデルの違いについてのページがあります.

https://docs.newrelic.co.jp/docs/accounts/accounts-billing/new-relic-one-user-management/new-relic-one-user-model-understand-user-structure

それぞれのユーザでできることを見る限り、APMやBrowserなどでパフォーマンスやエラーなどをチェックする人というか、
基本的に開発者はFull userでなければNewRelicを導入する意味はないです.

下にドキュメントから抜粋しておきます.

Full-Stack Observability

機能 Full user Basic user
Application perfomance monitoring(APM) UI
Infrastructure monitoring UI
Digital Experience Monitoring(Browser, Mobile, Synthetics) UI
Serverless monitoring UI
Logs in context with other UI experiences
Synthetics checks
New Relic Edge with Infinite Tracing (tail-based sampling)
Subscribe to New Relic One catalog apps
Assorted curated UI experiences (distributed tracing, Kubernetes cluster explorer, workloads, etc.)

Applied Intelligence (AI)

機能 Full user Basic user
Proactive Detection ✔(read-only)
Incident Intelligence ✔(read-only)

Telemetry Data Platform

機能 Full user Basic user
Data ingest from any source (Metrics, Events, Logs, Traces)
Alerts and notifications
Interactive query interface
Custom charts and dashboards (not New Relic-built)
Encryption at rest
Standard data retention
NerdGraph (GraphQL) API
Security and compliance
Integrations
Data management
Logs UI
Build custom New Relic One apps

おわりに

実際にNewRelicの方と話をして実際にいくらになるのかは、事前に見積りを取っておくことをオススメします.
もしも、見積もりをとった上でペイできないような料金になりそうであれば、開発体制の見直しや別サービスの導入をする時間があった方が良いはずですからね.

CloudWatchアラーム一覧を表示する

どのリージョンにどんなCloudWatch Alarmがあるのかを知りたかったので、Bashスクリプトを書きました. 利用するツールは、jqとAWS CLIv2の2つ.

#!/usr/bin/env bash

# 利用可能なリージョンを取得
get_regions() {
    aws ec2 describe-regions | jq -r '.Regions[].RegionName'
}

# 指定されたリージョンのアラームを取得し、「リージョン\tアラーム名」というTSV形式で出力
get_alarms() {
    local region="$1"
    aws --region $region cloudwatch describe-alarms | jq --arg REGION "$region" -r '.MetricAlarms[] | [$REGION, .AlarmName] | @tsv'
}

main() {
    for region in $(get_regions); do
        local alarms=$(get_alarms $region)
        if [ -n "$alarms" ]; then
            echo "$alarms"
        fi
    done
}
main $*

個人事業主としての活動を始めるまでにやったこと

私が2020年に副業として個人事業主としての活動を始めようとした時にやった作業を振り返ります.

  • 「個人事業の開業届」と「所得税青色申告承認申請手続き」を税務署に提出する
  • 個人事業用の預金口座を用意する
  • クラウド会計ソフトを導入する
  • 事業で利用するためのPCを用意する

他にも事業用のクレジットカードを作っても良いかもしれませんが、私は2020年度には作成していません.

「個人事業の開業・廃業等届出書」と「所得税青色申告承認申請手続き」を税務署に提出する

開業してから1ヶ月以内に「開業個人事業の開業・廃業等届出書」を税務署に提出・郵送する必要があります.
また青色申告をするためには事前に「所得税青色申告承認申請手続き」を提出・郵送しておく必要があります.
白色申告の場合は、開業届だけで問題ありません.

e-Taxでの提出にも対応しているようなので、気になる人は検索してやり方を調べると良いかもしれません.
私は、開業時に住んでいた場所が税務署に近かったので散歩がてらに直接提出してきました.

開業届などの申告書類は開業freeeを利用して作成したので、あまりつまづかなかった記憶があります.

事業用の預金口座を開設する

プライベート用の口座を事業利用すると

といったデメリットがほぼ100%発生します.
確定申告時に慌てたり、仕訳の手間を減らすためにも事業用の口座を別途作成しておいいたほうが良いのは間違いないです.

また、口座に紐づくデビットカードもあれば間違いなく仕訳が楽になります.

私はジャパンネット銀行で口座を開設しましたが、自分の利用用途と使いたいクラウド会計ソフトとの連携ができるかどうかで選ぶのが良いかもしれません.
※ 屋号がある場合は屋号付き口座が良いようです.

クラウド会計ソフトを導入する

私は会計freeを利用していますが、口座やクレカとの連携をしておくことで自動仕訳なども利用可能で非常に便利です.
クラウド会計ソフトはいくつか種類がありますが、自分に合いそうなソフトをいくつか試してみたりすると良いかもしれません.

freeeが良いというわけでもないので、絶対に自分に合いそうなツールを探したほうが良いです.

事業で利用するためのPCを用意する

事業で利用するためのPCを用意しておきます.
自分の利用用途にあった、1世代ぐらい型落ちの中古PCがコスパもよく個人的にはオススメです.

私はゲームや開発をするために元々自作していたPCがあったので、それを利用することにしました.
正直、これだと経費としては落とせないですが、ある程度事業資金が貯まったら利用用途に合いそうなPCを買おうと思っています!