ちょっとしたメモを Alfred for Mac から一発で TaskPaper ファイルに挿入したい。Packal 上に TaskPaper のための多機能な Alfred Workflow があるので入れたんだけれど、うまくタスク追加ができないことがあるので、自前でスクリプトを作って Alfred から呼ぶことにした。
TaskPaper ファイルはテキストファイルなので書き慣れている Perl でスクリプトを書いてもいいんだけれど、 編集の競合が避けられるし parser も書かなくて済むしということで TaskPaper の API を使うことにした。
JavaScript for Automation (JXA) を使えば JavaScript コードで TaskPaper API を呼べるっぽい。
以下指定した TaskPaper ファイルに Inbox: プロジェクトがなければ追加した上でその子供としてノートを挿入するコード(エラー処理割愛。実際にはタイムスタンプとかもノートにつけるようにした)。
#!/usr/bin/env osascript -l JavaScript function TaskPaperContext(editor, options) { let inbox = editor.outline.evaluateItemPath("//Inbox:")[0]; if (!inbox) { inbox = editor.outline.createItem("Inbox:"); let projects = editor.outline.evaluateItemPath('@type = project') if (projects.length == 0) { editor.outline.root.appendChildren(inbox) } else { editor.outline.root.insertChildrenBefore(inbox, projects[0]); } } let items = ItemSerializer.deserializeItems(options.text, editor.outline, ItemSerializer.TEXTMimeType) editor.setCollapsed(items[0]) inbox.appendChildren(items, inbox.firstChild) } function run(argv) { Application('TaskPaper').open(argv[0]).evaluate({ script:TaskPaperContext.toString(), withOptions: {text: argv[1]} }) }
これを inbox.scpt というファイルで保存し実行権限を与えれば
./inbox.scpt $HOME/tmp/test.taskpaper こんにちはこんにちは!!
という感じで呼び出せるようになる。
あとは Alfred Workflow を作ってそこからこのスクリプトを実行すれば OK だ。
Slack コール(ビデオ通話)では動画表示用の小さいウインドウが最前面で表示される。これを MacBook Pro 内蔵ディスプレイの上部中央、内蔵カメラの直下に配置すると自然とカメラの方に視線が行くようになる。 one-on-one ミーティングなど視線を大切にしたい時に便利だ。
一方最近使っているビデオ会議ツール Google Meet (旧 Google Hangouts Meet) は Google Chrome でアクセスして使う形(Mac)のため同じことができない(Meet を開いているウィンドウは Chrome の装飾がついて大きいし、特定の Chrome のウィンドウだけを最前面に置くこともできない)。
なんかいい方法ないかなと思っていたところ Picture-in-Picture Extension (by Google) という Google Chrome 拡張機能を発見。
Google 公式の拡張機能だ。これを使うと Picture-in-Picture Web API に対応している YouTube などのサービスの動画部分をフローティングウインドウとして最前面に表示させることができる。Google Meet のビデオ会議ページで使ってみたところ、動画部分をフローティングさせられた。1対1で画面共有無しの場合はこれでいけるぞ。
拡張子 md の Markdown ファイルを「バックアップと同期」アプリで新規に同期したり、 Web 版の Google ドライブでアップロードしたりすると MIME タイプが text/markdown となり全文検索対象にならない。不便。
StackEdit は Google ドライブに送る時の MIME タイプを設定で text/plain を選べるようにすることで問題を回避しているようだ。
クラウドストレージ上のファイルを管理するためのコマンドラインプログラム rclone でアップロードするとどうだろうと思ってやってみたところ、ちょっと設定をいじれば拡張子 md の Markdown ファイルを text/plain で Google ドライブにアップロードできることがわかった。
rclone では Google Drive API で新しいファイルを作成する際に、rclone 側で MIME タイプを判定している。内部的には Go の mime パッケージを使っている。
このパッケージは UNIX 系の環境では mime.type ファイルがあれば参照するようになっていたので macOS Catalina にあった /etc/apache2/mime.type ファイルの text/plain 行に md を追加して試したところ、めでたく text/plain として Google ドライブにアップロードできた。全文検索対象になることも確認。
ちなみに「バックアップと同期」アプリは /etc/apache2/mime.type 変更の影響を受けなかった。
rclone での方法が分かったわけだけれど、実際のところ Markdown ファイルの Google ドライブとの同期や読み書きを rclone だけに限定するわけにもいかないな。引き続き拡張子 txt で管理するのが現実的のようだ。
Obsidian Sync と Obsidian Publish を早期割引購入が2021年9月30日までとのアナウンスがあった。Obsidian Publish は2月に購入し便利に使って満足している。
Obsidian vault の同期は Dropbox で済ませてきたので Obsidian Sync は見送ってきたのだけれど、将来使いたくなった時に「早期割引で購入していればよかった」なったら悔しいので、検討の上購入しちゃうことにした。
$48/年。クレジットカード決済での換算レート112.711円で、支払い額は5,410円だ。
個人的なノートは信頼できそうなクラウドサービスとだけ同期したい。まだ信頼できるに至っていない場合は暗号化して同期したい。確認したら Obsidian Sync は end-to-end encryption とのことなのでクリア。
Android デバイスで Obsidian を使うのに FolderSync Pro で同期をしてきたのだけれど、いろいろ気を使うことが多いのが不満だった。
と工夫してきたけれど、それでも競合の心配は尽きなかった。
Obsidian Sync だとアプリを起動したタイミングで同期 & 編集中にセミリアルタイムで同期される。デスクトップアプリと Android アプリの両方で同じノートを開いて一方で編集すると、何秒か置いて他方に反映されていく。ヘルプによれば約10秒毎にバージョン履歴が保存されるとのことだ。競合の心配が減るのが嬉しい。
Dropbox 等のクラウドストレージへの同期だと(多分大丈夫だと思うけれど) API 利用のリミットレートが気になってしまうけれど、 Obsidian 純正のサービスだとその心配をしなくてもいいというのもあるね。
Obsidian for Android の同期の選択肢は Obsidian Sync かデバイスのローカルストレージと同期できるクラウドストレージ。一方 Obsidian for iOS は Obsidian Sync か iCloud Drive が選択肢。
併用したいとなった時には Obsidian Sync が必要になるんだよね。実際そこがネックで iPhone では Obsidian を使っていなかったんだけれど、 Obsidian Sync を買ったのでこれからは両方使えるようになった。そのうち iPhone でも使ってみようかな。
Obsidian を起動して vault を開いていれば、ノートを iA Writer で編集したりスクリプトで書き換えたりしても検知してちゃんと同期してくれる。良い。
一方 vault を開いていないと同期されない。うっかり開き忘れていて同期されてなかったというのはありそう。そこが Dropbox などと違うところなのでちょっと注意が必要だ。
早期割引とはいえ同期だけで $4 はなかなかいいお値段である。
これで合計 $194/年、110円/ドル計算だと 21,340円/年だ。ひえー。
[ サブスクリプションサービス ]
Twitter API v2 と v1.1 の無料アクセスサポートを2023年2月9日に終了するとの発表があり、大騒ぎになっている。終了までの期間が短いという点で大事ではあるが、ソーシャルメディア事業者としての総合的な判断なのだろうと受け止めている。
13年ぐらい前から1時間に1回自分の Tweets を取得させていたスクリプトもついに止まるのかな。確認すると連携アプリとして許可したのは2009年12月28日だった。その前はフィード取得で実現していたはず。 Tweets の Web 日記化を手動でやるのはちょっと時間がもったないしどうしたものか。
振り返ってみると2007年4月6日に Twitter アカウントを作成し、翌日にはiモード経由で Tweet するプログラムを書いたりしていたんだな。
4月最初の平日な月曜日。ビルのエントランスロビーに上がるエレベーターがいつになく混んでいた。春。
いよいよ今月下旬に無料で Twitter API を使って自分の Tweets を取得できなくなる。日々の記録も兼ねた Tweets もあるので、今後も保存していきたいのだけれどどうしようかなあ。
1日の Tweets がめちゃくちゃ多い訳ではないので、手でコピーしていくこともできるのだけれどちょっと時間がもったいない気がする。
Twitter Analytics から By Tweet でデータをエクスポート (CSV 形式) して加工するというのもありかな。Twitter Analytics はたまに集計不具合があったりするので、エクスポートデータに漏れがあるのではという懸念があるけれど。
2007年4月6日に Twitter のアカウントを作ったので今日で丸16年。昨年10月27日にイーロン・マスク氏により Twitter, Inc が買収されるなど、Twitter の経営体制とサービス内容が目まぐるしく変わった年だった。
16年の #MyTwitterAnniversary は無いのかな、もしかして。https://t.co/6dEwXIoc49
— Naney (@Naney) April 6, 2023
そういえば16年の #MyTwitterAnniversary は無いのかな。楽しみにしていたけれど通知こず。
人員削減で Twitter の運営・保守が難しくなるのではという雰囲気になったのが昨年11月頃。 Twitter を使い続けたいなと思いつつも止まってしまった時の行き場所を考えなければとなったのもこの時だ。
Mastodon のアカウントと環境を見直したり、オープンプロトコル Nostr を触ってみたり、Misskey.io に新規登録してみたりした。 Bluesky も気になっているけれど、招待が必要なのでまだ触れておらず。止まったら、あるいはみんな移住してしまったらという時の準備なので、今のところ投稿は Twitter で継続中だ。
それから念のためTwitterデータも半年に1度はダウンロードしておくことにした。
1月11日についに日本でも Twitter Blue の提供が始まった。15年以上ずっと無料で使ってきたのでプレミアム会員サービスが始まったらお金を払おうと思っていたので、即日サブスクリプション購入した。
ヘビーユーザーが多いからかフォローしているアカウントの Twitter Blue 率は10%を超えている。あくまでもフォローしている範囲だけれど、解約する人も少なく顧客維持率は高いな。
機能としては
を便利に使っている。話題の「ツイート編集」機能は全く使っていない。削除して Tweet し直す方がタイムラインがきれいなので。「長いツイート」機能については肯定的だけれど 140文字を超える Tweet はほとんどしていない。長い文章はストックとして Web 日記に書くことが多いからかな。
切望していたブックマークフォルダは結局あまり使いこなしていない。ブックマーク自体はちょこちょこ使っているけれど。
青いチェックマークは自己顕示欲を満たすのにちょっぴり貢献しているが、フォロワーが増えるとかいいね・Retweets が増えるとかいった実益は今のところ特に無し。
サブスクリプション購入初月の間に年間プランが始まったので、月間プランを解約し年間プランで購入し直したのだが、その際にデータ不整合でも発生したのか Twitter Blue 機能が有効にならなくなってしまった。問い合わせ対応で解消したものの、青いチェックマークはその後も付くことはなかったのね。
年払いしたのに Twitter Blue 全特典が有効にならないのは悲しい。粘り強く何度も問い合わせた結果、最後にようやく不具合と認識してもらえたようで対応してもらえた。アカウントが確認され青いチェックマークが再度表示されるようになるまで47日かかった。
2023年1月19日発効で Twitter の Developer Agreement が改定され、Twitter によるライセンス素材を使って Twitter アプリケーションの代替や類似となるサービス/プロダクトを作ることが制限されることになった。
これにより愛用していた twitcle plus が使えなくなった。少し前にライセンス購入した Tweetbot 3 for Mac も動かなくなった。
選択肢が無くなったので今はスマートフォンでは公式アプリを使っている。Retweets 非表示機能が無いのが残念ではあるが、 Twitter 公式の機能が全部使えるわけだし慣れれば公式アプリでいいかなとなっている。
PC では旧 TweetDeck を継続利用中だ。
もうひとつの大騒ぎな出来事はTwitter API 無料アクセスサポート終了の発表だった。その後 Free/Basic/Enterprise というアクセスレベルが用意されることになった。 Twitter 連携を使っているサービスのほとんどが対応を迫られ、新プランが見合わなければサービス終了せざるを得ない状況になっている。
サードパーティクライアントの件と Twitter API の件、どちらもインパクトが大きく不満の声が多く飛び交っているわけであるが、個人的にはまあそうせざるを得ない事情があるのだろうなと受け止められている。
サードパーティクライアントと API 無料提供は、収益・プロダクト機能変更・健全化・インフラコスト・運用コストなど多くの点で足かせとなる。ユーザーへの価値提供と利用促進とにつながるプラス面と天秤にかけ、ユーザー離反・顧客離反のリスクも鑑みた上で意思決定していくのは事業経営としては当然であるしね。
さて、自分の Tweets を取得するため1時間に1回動かしている自作スクリプトもそのうち止まることになる。 Tweets を記録するのどうしようかなあ。
Twitter の動向やイーロン・マスク氏の発言にに対する不満の Tweets が毎日流れてくるのがちょっと切ない。普段冷静に考えていそうな人が Twitter の動きに対して、すべて否定的に捉えていたり全部がイーロン・マスク氏の思惑だと思い込んだりしている発言をしてるように見てとれたりする (思い込みかもしれないけれど)。新型コロナウイルス感染が拡大し始めた2020年の時の怒りが溢れていたタイムラインを思い出してしまった。
17年経った来年には落ち着いているといいな。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。