Obsidian使用1週間

Obsidianを仕事でも使い始めて1週間ほどが経過した。

まだ目覚ましい成果というほどのものが出ているわけではないが、デイリーノートを起点として業務をまとめていく形が徐々に作られている気がする。

タグとかそういうものを利用していくと、これまで散らばっていた情報が整理され、集約されていくので生産性が上がっている気がする。

一方で弊害も出始めている。

疲れるのだ。

これまで結構適当に過ごしていたので、何かの情報が抜け落ちていることがよくあった。
特に先週はいろいろなことが連続しておき、かなり頭を使うことを要求される感じだった。
その中で、デイリーノートを中心にやることを書いてあるので、抜け漏れが少なくなったせいでずっと頭を働かせているような感じ。

違う。
そんな真面目なキャラじゃないんだ、私は。

Obsidian。。。恐ろしい子

Fly.io のAppを削除する

Obsidian の Self-hosted LiveSync をFly.ioで作ろうとしたものの、App作成スクリプトの使い方を誤っていたようで、作り直す必要が生じてしまった。

基本的にFly.ioはCLIからの操作になるのだが、削除自体はDashboardからできるようだった

ログインすると、登録されているAppが表示されている。
Obsidian用に1GBのDBが構築されているのがわかる

Appを選択して、左下の「Settings」を選択する

「Delete app」を選択すれば削除ができる。

アプリケーションの削除が設定ページにあるという発送に思いつかず、結構探し回ってしまった。

これで削除が完了して、余計なインスタンスを維持する必要もなくなって安心。安心。

Software Design 2月号

Software Design の2月号が発売されました!

ソフトウェアデザイン 2025年2月号

今月の特集はPython。

ちょこちょこと書いてはいますが、しっかりと勉強したことはなく、なんとなくなのでこれを機会として基本を抑えておきたいところ。

そしてちょっとおもしろかったのは「実践データベースリファクタリング」の連載。
このあたりのテーブル設計に関しては、どの段階でどこまで考慮するのか?
どの段階で見直すのか?は非常に悩ましいところですね。

コードのリファクタリングと異なり、DBのリファクタは正直言って想像したくない作業です。
規模によってはそれこそ現実的には思えないものの、そもそもアプリケーションが目的を達成しないのであれば存在する価値がないわけで、やらなければいけないシーンは出てくるのでしょう。

頭の体操として、こういったケースを考えるのは面白いです。

Obsidian でノート内の未チェックタスクをリストアップする

Obsidianがこれまで愛用していたメモサービスであるdynalistのチームが開発しているという事を知って、非常に驚くとともにうれしくなりました。

徐々にObsidianを使いこなせればと思っています。
業務PCにいれる許可も取れたのでどういう単位でノートを作っていくかや、どういうふうにリンクを作っていくと効果的なのか。
考え始めるとあれこれ出てきそうですが、そのあたりに凝りすぎて肝心の仕事が進まないと手段の目的化になってしまうので注意が必要です。

ひとまず、”案件”というフォルダを作ってその中になんとなくの単位でノートを作り、作業ログ的にメモ書きを走らせています。

メモ書きを走らせていく中で、その中からTODOが生まれたときにはチェックボックスをつけるのですが、ノートが長くなってくるとなんのTODOが残っているのかが分かりづらいです。

そこで、同じノート内で未チェックのものをノート上部に置くようにしてみました

```dataview
TASK
from "案件"
where file.name = this.file.name and !completed
```

使ったPlug-Inは”Dataview”というもの

多少のタイムラグはあるけれど、現在の内容を下にクエリを走らせて表示してくれる。

しかもDataview中のチェックボックスをOn/OffすることができるのでメモからのTODOリストが自然と出来上がる。

いいじゃないか。

もう一度言う

いいじゃないか。

Obsidianの使い方に関しては先人がいっぱいいるので、いろいろなやり方を試して取り入れていければと思う。

Obsidian の デイリーノートに前日の未実施TODOを引き継ぎたい

少しずつ使い始めている Obsidian 。
まだ使いこなしていると言うには程遠いですが。。。

ToDoをいわゆるAsanaやBacklogなどタスク管理ツール、プロジェクト管理ツールで管理している人もいるとは思うのですが、もう少し細かいタスク。
プロジェクトになっていないようなタスクは基本的にこれまではテキストベースで書いていました。

今回、Obsidianを利用するにあたってデイリーノートの仕組みがせっかくあるので有効活用したいところなのですが、デイリーノートは毎回作り直されてしまうので引き継げません。

コピペすればいい話ではありますが、完了済みのタスクもペーストされてしまうので地味に面倒です。

なんとかならないかな?と見ていたら、良さげなプラグインが。

Templaterを導入

コミュニティプラグインからフィルタでTemplaterを探し出してインストールを押下します。

インストールが終わったら忘れずに有効化します。

続いて、有効化したTemplaterプラグインの設定の中から必要なものを有効化します

有効化する設定としては下記となります

Trigger Templater on new file creation
→テンプレートから新規ファイルを作成した際にTemplaterプラグインのルールに従って内容を作り上げます。今回でいうと、前回のTODOを引っ張ってくる処理を動かすわけですね

引き継ぎの実施

引き継ぎ処理の仕様としては、一旦下記とした

  • ”Work In Progress”セクションから”Memo”セクションまでの間が対象範囲
  • その中でチェックが入っていない行を引き継ぐ
  • 毎日必ずしもデイリーノートを作るとは限らないので、1週間分まで遡って最初に見つけたノートを引き継ぐ

テンプレートへの記載内容は下記となる。
セクション名は適宜変更してほしい。

## Work In Progress
<%*
let addRest = 0; // サブテンプレートから差し込むかどうか
for (let i = 1; i <= 7; i++) {
	const yesterday = tp.date.now("YYYY-MM-DD(dd)[.md]", (i*-1), tp.file.title, "YYYY-MM-DD(dd)[.md]"); // 前回の日付のファイル名を生成
	const yesterdayFile = tp.file.find_tfile(yesterday); // 前日のファイルを取得

	if(yesterdayFile){
		const content = await tp.file.include(yesterdayFile); // ファイルの内容を読み込む
		// "## Work In Progress"から"## Memo"までのテキストを抽出するための正規表現
		const wipOld = content.match(/## Work In Progress([\s\S]*?)\n## Memo/);

		if (wipOld && wipOld[1]) {
		    const taskLists = wipOld[1].match(/^(\s*)- \[ \] .*/gm);
		    if (taskLists && taskLists.length > 0) {
			    uncheckedTasks = taskLists.join('\n');
			    tR += uncheckedTasks;
			    addRest = 1;
		    }
		}
		break;
	}
}
if (addRest == 0) {
  // 進捗部分がない場合はサブテンプレートを書き出す
  tR += await tp.file.include("[[daily-todo]]");
}
%>

## Memo

これで、前回未完了分をコピペし直さなくて良くなって満足だ。

『カレー移民の謎』から見える日本の今 – インドカレー店の向こう側

室橋裕和著「カレー移民の謎」を読んだ

カレー移民の謎 日本を制覇する「インネパ」 (集英社新書)

私の住む街にも、いくつものインドカレー店があります。
実は「インド」カレー店と呼んでいますが、その多くはネパール人が経営しているということをご存知でしょうか?今回は『カレー移民の謎 日本を制覇する「インネパ」』(集英社新書)を読んで、普段何気なく利用している「インドカレー店」の背景にある興味深い物語と、そこから見える日本の課題について考えてみたいと思います。

気づかなかった「インネパ」の存在

私の近所のカレー店では、チーズナンが安価で絶品です。最近都内で食べたハニーチーズナンの美味しさにもびっくりしました。メニューにはネパールのビールまであったような…。ふと立ち止まって考えてみると、「インド」カレー店なのになぜネパールのビールがあるのか?そもそも、チーズナンやハニーチーズナンって本場にもあるのだろうか?

考えれば考えるほど、私たちは「インドカレー」という枠組みで単純に捉えすぎていたことに気づかされます。実は、日本全国で見かける多くの「インド」カレー店は、ネパール人が経営する「インネパ」と呼ばれるものなのです。

移民という視点から見える日本の課題

この本を読み進めていくと、単なる飲食店の話を超えて、現代日本が直面している重要な課題が見えてきます。例えば:

  1. ビザや在留資格の問題
  2. 外国人労働者の子どもたちの教育
  3. 多文化共生の現実

特に印象的だったのは夜間中学の存在です。私の地元千葉市には「千葉市立真砂中学校かがやき分校」という夜間中学があり、国籍を問わず受け入れているそうです。日本語指導から始まり、基礎教育まで行っている。これは知らない人も多いのではないでしょうか。

見えてきた違和感の正体

カレー店が閉店しても、すぐに似たような店が開店する。メニューも店名も似ていて、本当に店が変わったのかどうかさえわかりにくい…。この「違和感」の正体は、実は日本における外国人労働者受け入れの現状を映し出す鏡だったのかもしれません。

少子高齢化が進む日本。外国人労働者への依存度は確実に高まっていますが、その一方で、明確な移民政策が示されていないのが現状です。さらに最近では、日本から出ていく外国人も増えているというニュースも目にします。

これからの日本社会に向けて

この本を読んで、普段何気なく食べているカレーの向こう側には、現代日本の抱える大きな課題が詰まっていることを知りました。これからは外国料理店を訪れる際、その料理や文化背景により深い関心を持って接してみようと思います。

そして何より、日本は移民政策について、どのような未来を描きたいのか。この問いに向き合う時期に来ているのではないでしょうか。カレーという身近な食べ物を通じて、こんなにも深い社会問題について考えさせられる一冊でした。

チーズナンは?

ちなみにチーズナンは別にインドであったわけではないようです。
ネパール人が日本で提供していくうえでより日本にあったものをということで開発されたのかもしれませんね。

なにはともあれ、カロリーには気をつけながらもチーズナン大好き人間としては開発してくれた人にありがとうを言いたいところです。

HYPERSPEED 4 を手に入れたぞ!

長い事頑張ってくれたHYPER SPEED 3 ももうすぐ2400kmに到達しそう。

破れたフロント部分を妻に縫ってもらったとはいえ、もう流石に。。。ということで、HYPER SPEED 4 を購入しました!

色は、メンズらしからぬShooting Seaというパステル調の薄い青。
なんかちょっとエロいように感じてしまうのは私だけだろうか。

シースルーな感じで中が見えているのがなんとも言えない。

HYPER SPEED 3 と比較してみる。

こちらは内側。
流石に全体的に靴底がすり減っている。特にこうやって比較するとつま先あたりの減りが激しいように見える

写真では見えづらいが、HYPER SPEED 3 は内側がしわしわになっている。
全体的に靴が内側に倒れ込んでいるような感じがします

こちらは外側を見比べた形。

外側は正直言ってそれほど大きな違いは見て取れなかった。
もちろん、全体的に靴底がすり減ってはいるけれど、内側から見たときよりも違いがわからない。

早速走ってみて。。。と思ったのですがちょうど雨が降ってきてしまい断念。
走り始めはお預けとなりました。

なぜ HYPER SPEED

さて、今回は既存の HYPER SPEED 3 の後継である HYPER SPEED 4 を選択しましたが、理由としては価格が一番大きいです。

先日のGARMIN RUNで試着させてもらったアディゼロジャパンも非常に気になる一足ではあります。
しかし、アディゼロジャパン9はAmazonで17,600円。。。
先日いただいたクーポンで公式ショップであれば20%OFFになるとはいえ、それでもいいお値段なんですよね。。。

最新のアディゼロジャパン9ではなく、型落ちとなっているシューズでも十分なのでしょうけれど、悩ましい。
トレーニングシューズとしては、用途別に持っている人も多いようなので、そういう形で揃えていくというのは憧れではあるのですが。。。

なんとなく、もう少し走力が上がってからそういうことに取り組むべきなのでは!?って思ってしまうんですよね。

サブ3.5なら今のままで。サブ3が狙えるようになってきた頃に考えるようにしよう。

MyFitnessPalインストール時の注意

年末から始めているMyFitnessPal。
アプリ自体がいいのか?は諸説あるかもしれませんが、こういう記録を続けることでの食生活に対して意識を向けるということは非常にいいと感じています。

これまでは、思うがままに会社帰りに買い食いしていたりしたのですが、それらのカロリーを見て、うーん、、、と思いとどまること数しれず。

なんだか大きな楽しみが減ってしまった感はなくはないですが、私ももういい歳だと考えると我慢するべきときは我慢するべきなのだろうと。。。
旅行などで食べるんだ!

アカウント作成時の注意

MyFitnessPalを起動するとアカウント登録を促されます。
iOS上での登録する選択肢としては、下記画像のとおりです。

選択肢としては3つ。メールアドレスによる登録かGoogle、Appleそれぞれのプラットフォームベンダーアカウントですね。

特にこだわりはないのですが、私はこの手の選択肢が出てきた際にはAppleのダミーアカウントによるアカウント登録を選択していました。
今回もダミーメールアドレスを用いたアカウント登録で問題なく進めました。

GarminConnectとの接続

MyFitnessPalを選んだ一番大きな理由としては、GarminConnectとの接続ができるという点です。

MyFitnessPalで入力した情報はアプリ連携を行うことでGarmin Connectに連携され、ワークアウトで消費されたカロリーなどを考慮して、あとどのくらい接種可能かが算出されます

GarminとMyFitnessPal、それぞれに連携されている割に残りの接種可能カロリー計算が異なることはかなり疑問が生じます、、、目安として考えたほうがいいですね。

アカウントの作成はメールアドレスかGoogleが推奨

この連携を行うためには、MyFitnessPalのWebページ側でGarmin Connectを認証して上げる必要があります。

その際にはMyFitnessPalのWebページにログインしないといけないのですが、、、Appleアカウントのパスワードがわかりません。。。

ダミーメールアドレス自体は調べることができるのですが、パスワードを調べる方法は私は見つけることが出来ませんでした。
仕組みとしては、Webページ側でAppleログインに対応してくれていれば苦労はしないのですが、見てみると

まさかのAppleがなくてFacebookがあります。
統一感のかけらもないですね。。。

もしかするとAndroidアプリ側はFacebookでのログインが対応されているのかもしれません。

途方にくれてしまいましたが、連携することに魅力を感じていたのでこのまま続けるメリットを感じられず、Appleアカウントを諦めてメールアドレスによるアカウントを作成して連携することにしました。
まだ、これに気がついたのが入れたばかりだったので、失われるデータも対してなかったのですが、すでにそれなりに使っていたらどうしていたか、迷うところです。

このあたりの作りの統一感というモノ。改めて大事だなと思い知らされました。

余談:ABテスト?

ちょっと気になったのですが、Appleアカウントでログインした場合とメールアドレスアカウントでログインした場合でアプリのUIが異なっていました

上がAppleアカウントでログインしたUI。下がメールアドレスでのログイン時の画面でした。

メニューの選択肢が大きく変わっています。
私としてはAppleアカウントで続けるメリットはゼロだったのでもうそちらのUIを使うことはないですし、下のUIのほうがいいように感じるので現状に不満はありません。

ただ、実際にこういうふうに異なるUIを提示されるというのに出くわされると、ちょっとおもしろいなと思いました。

努力革命を読んだ

伊藤羊一、尾原和啓著「努力革命」を読んだ

努力革命 ラクをするから成果が出る! アフターGPTの成長術 (幻冬舎単行本)

概要

主にはChatGPTを使った形ではあるが、昨今のLLMをどうやって使っていくのか。
これまでの世界観とこれからの世界観で何が変わっていき、何を認識していかなければいけないのかが著者二人によって語られている。

LLMが登場したことによって、多くの仕事の仕方が変わってくる。
物の考え方や仕事の覚え方、進め方、それらが大きくゲームチェンジしていっているのが今この瞬間。
その中で、今を生きる人間としてどうやっていくのか。
著者がどういう使い方をしているのか、具体的な事例を参考に考えることができる一冊と認識しています

LLMへのこれまでのつきあ方

ChatGPTに関しては、公開当初に触ってその凄さは衝撃を受けたものの、自分自身として使いこなしているかと言われると使いこなせていませんでした。

仕事として使うとなるとどうしても会社の規則的なものが立ちはだかりますし、それに抵触しない範囲。
つまり、プロンプトに入力できる範囲として当たり障りないところで留めるとなるとどうしても制限が出る。
非常に悩ましく、変なリスクを背負うくらいであればってことで選択肢から取り入れていませんでした。

調べごととしても、当時のChatGPTは最新情報へのアクセスが出来ないということも大きかったと思います。

再考

ちょうど本書を手に取ったタイミングで、似たようなテーマの話を聞いたり別の本を読み始めたりしまして、大きな危機感を感じることになりました。

これら技術の現在を正しく理解し、使いこなすこと。
そして、これら技術がある前提において自分が何を考えて取り組んでいかなければいけないのか?ということを考える必要があるな、と。

まさに本書から、努力の方向性を見直さないと行けないという提言だと。

エンジニアとしての自己研鑽や教育

エンジニアとして考えた場合、新しい言語を勉強するということは大事な認識ではいます。
ただ、プログラミング言語は結局のところアプリケーションを作るうえでの手段であって、言語そのものが目的ではない。
AIによって生成されたコードがそのまま使える、使えないはあるのですが、CLineに代表されるツールと言うか仕組みもどんどん進化していっている。

その中で、プログラミングを習得する方法というのが、従来と同じやり方で泥臭く行くのが本当に現代においてもいいやり方なんだっけ?は振り返る必要がありそう。

どうしていくと生産性を上げることができるのか。
もしくは、AIがコードを生成するような世界になったときに我々は何に力点をおいて取り組んでいくべきなのか

楽なようで難しい世界になっていくものだな、と改めて感じました。

タビオの靴下を買ったよ

先日の Garmin RUN JAPAN 2025 で少し会話させてもらった、タビオ

Tabio
https://tabio.com/jp

早速ですがレーシング用シューズと。。。面白そうと思ってツボ押しギフトセットを買ってみました。

本来であればこのギフトセットあh父の日とかでプレゼント何でしょうけれど、くれないので自分で買います

さて、このツボ押し靴下。
狙いとしてはこれを履いて、横になって、子どもたちに押して貰うという未来を夢見ているわけですが、考えてみるとお風呂に入るのが一番最後になることが多く、私がお風呂から上がる頃には子どもたちは寝室に行ってしまっている。。。

タイミングがない!

しょうがないので自分で押します

そして気が付きました。

このツボ押しで押せば、ツボだろうとツボじゃなかろうと痛い。
更にいうと、強く押すと靴下、そのうち突き破って穴あきそうで怖い。

これは!!どうしたらいいんだ!

しょうがないので指で押すことにしました。。。
このツボ押しスティックはもう少し改良の余地がありそうですね。

[タビオ] メンズ ツボ押し五本指ショートソックスギフトセット 日本製 五本指ソックス

[タビオ] レーシングラン五本指ソックス