ビットの海

ゆるふわソフトウェアエンジニアしゃぜのブログ

MySQLのEnumは、デフォルトが設定されていないNotNull だとEnum Index の 1番を暗黙的に使う

と、マニュアルに書いてある

If an ENUM column is declared to permit NULL, the NULL value is a valid value for the column, and the default value is NULL. If an ENUM column is declared NOT NULL, its default value is the first element of the list of permitted values.

ENUM 列が NULL を許可するように宣言されている場合、NULL 値は列の有効な値であり、デフォルト値は NULL です。ENUM 列が NOT NULL として宣言されている場合、そのデフォルト値は許可された値のリストの最初の要素です。

MySQL :: MySQL 8.0 Reference Manual :: 13.3.5 The ENUM Type

Goland で使うショートカット

環境

テスト

  • 開いてるファイルのテスト実行
    • ctrl + shift + r

編集

  • リネーム(リファクタリング
    • shift + f6
  • go fmt
    • cmd + option + l (で、通常はできそうなんだが、自分が cmd + l に独自に割当してるせいか動かない...)
    • cmd + option + shift + f / の Reformat with Prettierアクション は動くのでとりあえずこれで...

コードジャンプ

  • 定義ジャンプ
    • cmd + b
  • ジャンプから戻る
    • cmd + ]

検索

  • ファイル検索
    • cmd + shift + o

その他基本的なもの

  • undo
    • cmd + z

参考

IntelliJ IDEA プロジェクト内移動を使いこなす - ぺい

VSCode, IntelliJ IDEAショートカット対応表 自分用メモ (Mac, Windows)

Golandでよく使うショートカット - LayerX エンジニアブログ

みまもりGPS Botトーク(新型)はいいぞ、という話

背景

  • 小2の息子
  • 学校はケータイ禁止なので見守りGPSを代わりに持たせている
  • 小1のころは、旧型Botトークを使っていて、小2から新型Botトークに切り替えた
  • ランドセルに装着している。行動範囲としては、自宅 -> 学校 -> 学童 -> 自宅

Bot トークとは

これ。いわゆる見守りGPS。個人的に感じるメリットは

  • GPS精度が良い -> みちびきなどに対応している為
  • 液晶画面が良い -> 時計にもなるし、トーク機能(後述)の際も使いやすい
  • 通知機能が便利 -> そろそろ帰ってくるな、というのがわかる(帰ってこない場合ちょっとしたトラブルだった、後述)

通常のユースケース

みまもりと通知

  • GPS見守りはどれでもそうだと思うが、現在地を地図にプロットしてくれるので、今どのへんにいるかがだいたい把握できる
  • また、学習機能と通知機能があるので「息子くんが小学校を出発しました」みたいなPUSH通知を送ってくれる

トーク機能

  • これは実用性というよりは、子どもの精神安定(いつでも連絡がつく)のために便利だなと感じている
  • 最初、学童なんかはガラケーのようなものをもたせようかなと思ったが、電話は知らない人からの着信があったりするので嫌だ、とのこと
  • Botトークは文字起こしをしてくれるのと(精度はさほど...)、メッセージ送信時にメニューが豊富なのが気に入っている

  • トークは送信してから1~2分で相手の端末に反映される。まぁまぁタイムラグがあるが、使えないことはない。

液晶モニタ

  • 新型に切り替えた主な理由がこれ
  • 時計表示と、ボイスメッセージの表示が圧倒的にわかりやすくなった

その他

  • バッテリの持ちなどはさほど気になっていない
    • 高頻度モードと低頻度モードがあり前者はバッテリ消費が速いがそれでも1週間ぐらいはいまのところ余裕
    • また、バッテリが無くなってくるとPUSH通知が来る

見守りGPSがなければ大変だった事件

我が家の場合だと、いくつかGPSが無いと大変だった事件がありました...。

事件1: 息子の道草

  • 帰宅時間になっても息子が家に帰ってこない。
  • GPSで現在地を確認したら勝手に卒園した保育園(近辺)に遊びに行っていた...。
  • GPSがなければ気付けなかったケース

事件2: 息子の失踪

  • 帰宅時間にスーパーに出かけていたところ、連絡もなく誰もいなかった息子がプチパニックで、勝手に親の行きそうな場所に向かう事件が発生
  • これもGPSを持っていなければ場所を特定できなかったケース

Bot トークに期待する改善点

  • アプリPUSH通知以外の通知方法がほしい(メールなど)
    • そこから更に自動化などができるので。
  • トーク機能の音声toテキスト機能の精度向上

さいごに

  • さほど不満はなく、見守りという大事な仕事を任せられるツールです!

Google Workspace の世界で完結する、Markdown の非公開メモは、Google Colaboratory で良いかもしれない

markdown editor 的なものを試したが、いまいちハマらず。 以下の設定はする

vim キーバインド

「ツール」→「設定」→「エディタ」で、「エディタのキーバインド」でvimを選択

Chrome 拡張の Checker Plus for Google Calendar で他のGoogle Workspace 組織のカレンダーを表示

背景

  • 元々所属していたGWSの組織(組織A)に加えて、別組織(組織B)のアカウントも発行され、そちらのカレンダーにもスケジュールが入ってくるようになった。
  • 組織BのGoogleカレンダーの公開設定が、「予定の表示(時間枠のみ、詳細は非表示)」になっているので、組織Aのカレンダーで、組織Bのカレンダーをサブスクライブしても、詳細が表示されない(なにか予定がある、ということしかわからない)
  • やりたいことは、1つのブラウザ画面で、組織Bのカレンダーの予定の詳細を確認すること
  • 一般的にはカレンダー統合ツールや、予定の同期ツールを使うところだが、そこまでやれない(やらない)場合の選択肢として、Chrome拡張で、組織Bのカレンダーを表示するだけの機能がアレばよいと思い、「Checker Plus for Google Calendar」を採用した。

やること

使い方イメージ

  • Chrome の拡張ボタンをクリックすると、組織BのGoogleカレンダーの詳細を見ることができる
  • 組織AのGoogleカレンダーを開いている状態で、組織Bのカレンダーをサブスクライブして、詳細が非表示なんじゃろってなったときに、Checker Plus をぽちって組織Bカレンダーの詳細をチェックする、という使い方です。

自分のキャリアについて内省した2025年のメモ

キャリアについて最近考えることが多かったので、少し内省してみた。 とりとめがないものです。

属性

  • アラフォーエンジニア
  • SIer と事業会社を数社経験

仕事そのものに対する関心がある程度高くないと続かない

例えば、かつてやっていて比較的長くやっていたのは

  • Webサービスのインフラ担当としての仕事
  • 電子書籍のバックエンド開発担当としての仕事
  • データエンジニアとしてDWHとかの開発をする仕事

などだけど、これらは比較的関心が長続きするようなものだったので、長くやることができたと思う。 逆に

  • 受託で企業のインフラをあれこれする仕事
  • 大きい開発組織で業務委託中心にマネジメントするような仕事

は、まったく仕事内容に興味が出ないので続かなかった。

個々のプロジェクトでもそうだし、ポジションでもそうだが、「関心があることをやる」というのがとても大事そう。そのベースが無いと、リーダーシップを発揮するとか、フォロワーシップを発揮するとかの考えにも至らない感じ。

関心が高いことをする、ためには、関心を事前に広く持っておくことが必要

そうじゃないと、関心領域が狭まってしまって、やりたいことが無くなってしまう。 から、日頃から関心領域を広げるような活動(勉強会、インプット、etc...)が必要なんだと思う。

関心があることをやっているときは、ポジションはあまり気にしていない

リーダー的な関与をするのか、メンバー的な関与をするのか、そのへんは関心がある場合はあまり気にしていないらしい。

権力欲みたいなものがまったくない

ほんとうに無い。

地に足がついている、実務的なものが好き

手触り感というか、そういうのがないと関心を持てないのだろうな、というのは感じる。

担当プロダクトへの愛着があると、行動がよくなる

そのまんま