jqコマンド入門:コマンドラインでJSONを自在に操る技術

はじめに:なぜjqを学ぶのか

私は日頃からさまざまなワークフローの自動化を試みています。その中で繰り返し登場するのが、JSONデータの処理という課題です。

たとえば、YouTube動画のメタデータを取得して整形したり、APIのレスポンスから必要な情報だけを抜き出したり。こうした作業を手作業で行うのは現実的ではありません。かといって、毎回Pythonスクリプトを書くのも少々重たい。

そこで活躍するのが jq です。

jqは「コマンドラインのJSON処理ツール」と表現されることが多いのですが、私はむしろ「JSONに対するSQL」のようなものだと捉えています。データベースからSQLでデータを抽出するように、jqはJSONから必要な情報を抽出・変換・整形できます。

この記事では、jqの基本概念から実践的な使い方までを解説します。これを読むと、シェルスクリプトとjqを組み合わせた効率的なワークフローを構築できるようになるはずです。

続きを読む

視覚的コンテキストの自動生成:Antigravityでブログのアイキャッチ作成を自動化する

アイキャッチ画像を作成するのは面倒

私は文章を書くことそのものには喜びを感じますが、それをWeb上の「記事」としてパッケージングする工程、とりわけアイキャッチ画像の選定には、常に一種の精神的摩擦を感じてきました。 (端的に言えば「めんどくさい」の一言です)

テキストエディタで文章を書いた後に、画像素材サイトを開き、検索窓にキーワードを打ち込む。あるいは、画像編集ソフトを立ち上げて文字を配置する。その瞬間、脳のモードは「論理的構築(Writer)」から「視覚的作業(Designer)」へと強制的に切り替えられます。このコンテキストスイッチこそが、執筆のフロー状態を断ち切る最大のノイズではないかと、常々感じていたのです。(繰り返しになりますが、端的に言えば「めんどくさい」の一言です。そして私には画像編集のセンスがないのであります)

Nano Banana Proを使えば、一貫性を保ったうえで、文字も含んだ画像生成ができる

これまでの画像生成AIは「きれいな絵」を作ることは得意でしたが、ブログのアイキャッチとして使うには2つの大きな壁がありました。

  1. 文字の壁: AIは意味のある文字列を描写するのが苦手で、結局あとからPhotoshopなどでタイトルを入れる必要があった。
  2. 一貫性の壁: 毎回画風が変わり、ブログとしてのブランドイメージ(トンマナ)が定まらない。

しかし、Antigravityに搭載されているモデル「Nano Banana Pro」を検証する中で、これらの壁が技術的に突破されていることに気づきました。

1. 「言葉」をそのまま描く能力

Nano Banana Proは、プロンプトに指定した日本語テキストを、驚くほど正確に画像内にレンダリングします。「上から文字を合成する」のではなく、「画像の一部として文字を生成する」のです。これにより、光の反射や質感を含んだ、違和感のないタイポグラフィが自動で完成します。

2. アバターによる「自己」の投影

さらに、自分自身の化身であるアバター(VRMキャラクターのレンダリング画像)を参照画像として渡すことで、生成される世界の中に「私」を存在させることができます。

これは単なる合成ではありません。AIは「ノートPCを操作する」という文脈を理解し、私のキャラクターにその演技をさせ、背景のサイバーパンクな世界観と馴染ませます。結果として、「テックブログである」という雰囲気を一貫して保てるようになります。

Application:ミニマリストのための自動化ワークフロー

私は以下のシンプルなワークフローを構築しました。複雑な画像編集ソフトはもう開きません。

  1. Prompting (Antigravity): 記事のタイトルと、私のキャラクター画像をAntigravityに渡します。「未来的なAIの世界で、このキャラクターがノートPCを操作している。中央に『視覚的コンテキストの自動生成』と書いて」と指示するだけです。

  2. Generation (Nano Banana Pro): 数秒後、文字入り・キャラクター入りの正方形画像が生成されます。

  3. Refining (Python Script): 16:9比率に合わせるため、Pythonスクリプト(create_eyecatch.py)を走らせます。これは単純なクロップ処理を行うだけの軽量なツールです。

完成したのが、この記事のトップにある画像です。

まとめ

私たちは今、「素材を探して加工する」時代から、「意味を伝えて生成する」時代へと移行しています。

文字入れも、キャラクターの配置も、AIが処理してくれます。これにより、執筆者は純粋な思考の出力に、より深く没入できるようになるのではないでしょうか。 (もっと記事を書きたい気持ちになれるといいな)


以下、 create_eyecatch.py の内容です。

#!/usr/bin/env python3
import sys
import os
from PIL import Image

# Usage: python3 create_eyecatch.py <input_image> <output_image>

def create_eyecatch(input_path, output_path):
    try:
        img = Image.open(input_path).convert("RGBA")
    except Exception as e:
        print(f"Error opening image: {e}")
        return

    w, h = img.size
    
    # Target 16:9
    target_ratio = 16/9
    
    # We want to keep the center, so we crop evenly from top/bottom
    # A 1024x1024 image cropped to 16:9 would be 1024x576
    
    new_h = w / target_ratio
    if new_h > h:
        # Image is too wide (unlikely for square), crop width
        new_w = h * target_ratio
        left = (w - new_w) / 2
        img = img.crop((left, 0, left + new_w, h))
    else:
        # Image is too tall (square case), crop height
        top = (h - new_h) / 2
        img = img.crop((0, top, w, top + new_h))
    
    # Resize to HD (1280x720) for consistency
    if hasattr(Image, 'Resampling'):
        resample_method = Image.Resampling.LANCZOS
    else:
        resample_method = Image.LANCZOS

    img = img.resize((1280, 720), resample_method)
    
    # Save
    img.save(output_path)
    print(f"Successfully saved 16:9 eyecatch to {output_path}")

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Usage: python3 create_eyecatch.py <input> <output>")
        sys.exit(1)
        
    input_f = sys.argv[1]
    output_f = sys.argv[2]
    
    create_eyecatch(input_f, output_f)

知識の自動化:AntigravityでYouTube動画をObsidianノートに変換

「あとで見る」リストに溜まっていくYouTube動画たち。 良質なコンテンツが増えた現代において、これらを消化しきれないことは、多くの人にとって共通の悩みではないでしょうか。私もその一人です。

ただ動画を流し見するだけでは、知識として定着しません。かといって、毎回メモを取りながら見るのは時間がかかりすぎる。 そこで今回は、Google DeepmindのAIエージェント「Antigravity」の手を借りて、YouTube動画を半自動的に「使える知識(Obsidianノート)」に変換するワークフローを構築してみました。

これが予想以上に快適だったので、備忘録としてまとめておきます。

続きを読む

10年前に仕事をゲームにたとえて書いていたことが今でも結構使えるなと思った件

10年から15年ほど前に自分が書いたブログを読み返す機会がありました。『信長の野望』や『ジンギスカン』、果ては『遙かなる時空の中で』や『金色のコルダ』(光栄のゲームばっかりや…)を持ち出して、仕事の進め方をとらえようとしていた自分の姿がそこにはありました。

今、ゲームのルールは少し変わったかもしれませんし、SlackやTeamsでのコミュニケーションが主になり、働き場所も自由になりました。けれど、仕事という「ゲーム」の根幹にあるOSのようなものは、実は何も変わっていないのではないか、と。

そこで今回は、あの頃の自分が書き散らした3つの記事を、一本の「統合版」としてまとめてみたいと思います。

yourpalm.jubenoum.com

yourpalm.jubenoum.com

yourpalm.jubenoum.com

続きを読む

Windows 11を買ったら最初にやるべき無効化設定:通知・広告・OneDriveを黙らせる

Windows 11をクリーンインストールした後、あるいは新しいPCを使い始めたとき、Microsoft 365のサブスクリプションやOneDriveの容量拡張など、さまざまな「おすすめ」が表示されることがあります。便利な機能の紹介である一方、不要な人にとっては毎回表示を断るのが面倒に感じることもあるでしょう。(もう見飽きたともいう…)

この記事では、Windows 11の各所に表示される「おすすめ」や「ヒント」といった通知を無効化し、よりシンプルなデスクトップ環境を構築するための設定手順を、備忘録としてまとめておきます。

続きを読む

As We May Think 我々が思考するように その8

yourpalm.jubenoum.com

その7の続き

元の英文テキスト https://www.w3.org/History/1945/vbush/vbush.txt

トレイルブレイザー


全く新しい形式の百科事典が登場するであろう。それらには連想の軌跡(トレイル)の網が張り巡らされており、memexに投入されてそこで増幅される準備ができている。弁護士は、彼の全経験、そして友人や権威者の経験からなる関連する意見や決定をすぐに手にすることができる。特許弁理士は、何百万もの発行済み特許に即座にアクセスでき、クライアントの関心のあらゆる点への使い慣れた軌跡を持っている。患者の反応に戸惑う医師は、以前の同様の症例を研究する際に確立された軌跡をたどり、関連する解剖学や組織学の古典へのサイドリファレンスとともに、類似の症例履歴を迅速に駆け巡る。有機化合物の合成に苦労している化学者は、彼の研究室で彼の前にあるすべての化学文献を持ち、化合物の類似性をたどる軌跡と、それらの物理的および化学的挙動へのサイドトレイルを持っている。

ある人々の広大な年代記を持つ歴史家は、それを顕著な項目でのみ停止するスキップトレイルと並行させ、特定の時代における文明の至る所に彼を導く同時代の軌跡(トレイル)をいつでもたどることができる。共通の記録の膨大な塊を通して有用な軌跡(トレイル)を確立する作業に喜びを見出す人々、トレイルブレイザーという新しい職業がある。師からの継承は、世界の記録への彼の追加だけでなく、彼の弟子たちにとっては、それらが構築された足場全体になる。

このようにして、科学は、人間が人種の記録を作成し、保存し、参照する方法を実装するかもしれない。ここで述べたように、現在知られており急速に発展している方法と要素に固執するのではなく、未来の手段をより壮観に概説することは印象的かもしれない。あらゆる種類の技術的な困難は確かに無視されてきたが、熱電子管の出現がそうであったように、技術の進歩を激しく加速させるかもしれないまだ知られていない手段も無視されている。既知のものの拡張に基づく予言には実体があるが、未知のものに基づく予言は二重に複雑な推測にすぎないため、絵があまりにもありふれたものにならないように、そのような可能性を1つ言及しておくのがよいであろう。予言するためではなく、単に示唆するためである。

記録の資料を作成または吸収する私たちのすべてのステップは、キーを触るときの触覚、話したり聞いたりするときの口頭、読んだりするときの視覚という、五感の1つを通して進む。いつの日か、その経路がより直接的に確立される可能性はないであろうか。

私たちは、目が見るとき、結果として生じるすべての情報が視神経のチャネル内の電気的振動によって脳に送信されることを知っている。これは、テレビセットのケーブルで発生する電気的振動との正確な類似性である。それらは、それを見る光電池から、それが放送されるラジオ送信機へと画像を伝える。さらに、適切な機器でそのケーブルに近づくことができれば、それに触れる必要はないことを私たちは知っている。電気誘導によってそれらの振動を拾い、送信されているシーンを発見して再現することができる。ちょうど電話線がそのメッセージを盗聴されることがあるようにである。

タイピストの腕の神経を流れるインパルスは、指が適切なキーを打つように、彼女の目や耳に届く翻訳された情報を彼女の指に伝える。これらの電流は、情報が脳に伝えられる元の形式で、またはそれが手に向かう驚くほど変形した形式で、傍受されることはないであろうか。

骨伝導によって、私たちはすでに聴覚障害者の神経チャネルに音を導入して、彼らが聞くことができるようにしている。電気的振動を機械的なものに最初に変換し、それを人体のメカニズムがすぐに電気的な形に戻すという現在の面倒くささなしに、それらを導入することを学ぶことは不可能ではないであろうか。頭蓋骨に2つの電極を置くと、脳波計は現在、脳自体で起こっている電気現象と何らかの関係があるペンとインクの軌跡を生成する。確かに、その記録は、大脳メカニズムの特定の重大な機能不全を指摘する場合を除いて、理解不能である。しかし、今、そのようなものがどこにつながるかに境界を置く人はいるであろうか。

外の世界では、音であれ視覚であれ、あらゆる形式の知性は、送信されるために電気回路内の変化する電流の形に還元されてきた。人体の内部でも、まったく同じ種類のプロセスが発生する。ある電気現象から別の電気現象に進むために、私たちは常に機械的な動きに変換しなければならないのであろうか。それは示唆に富む考えであるが、現実と即時性との接触を失うことなく予測を保証するものではほとんどない。

おそらく、人間が自分の怪しげな過去をよりよくレビューし、現在の問題をより完全かつ客観的に分析できれば、彼の精神は高揚するはずである。彼は非常に複雑な文明を築き上げたので、彼の実験を論理的な結論にまで押し進め、限られた記憶を酷使することによって途中で行き詰まるだけでなく、彼の記録をより完全に機械化する必要がある。彼がすぐに手元に置く必要のない多くのことを忘れる特権を再取得でき、それらが重要であることが判明した場合に再び見つけられるというある程度の保証があれば、彼の小旅行はより楽しいものになるかもしれない。

科学の応用は、人間に十分に供給された家を建て、そこで健康に暮らすことを教えている。それらは、彼が残酷な武器で大勢の人々を互いにぶつけ合うことを可能にした。それらは、彼が真に偉大な記録を包含し、人種の経験の知恵において成長することをまだ可能にするかもしれない。彼は、その記録を真の善のために振るうことを学ぶ前に、紛争で滅びるかもしれない。しかし、人間のニーズと欲望への科学の応用において、プロセスを終了したり、結果について希望を失ったりするには、まだ早い段階であるように思われる。


解説

トレイルブレイザー

前のセクションで「連想的インデックス付け」と「トレイル」の概念は現代のキュレーションの基礎となる考え方です。このセクションで導入される「トレイルブレーザー」の概念は、まさに現代の「キュレーター」の役割を定義しています。

彼らは、膨大な情報の中から意味のある経路(トレイル)を見つけ出し、整理し、新たな価値を付与して提示する専門家として描かれています。これは、現代のキュレーターが、情報の海の中から特定のテーマや目的に沿ってコンテンツを選定・編集し、ユーザーに提供する活動と本質的に同じです。 マスターの「遺産」が単なる情報だけでなく、その情報がどのように体系化され、結びつけられたかという「足場全体」であるという記述は、キュレーションが単なる情報の羅列ではなく、キュレーターの視点や解釈、思考プロセス自体に価値があることを示唆しています。 このように、memexの技術が社会に与える具体的な影響と、それが生み出す新しい知識労働者の姿を提示することで、現代のキュレーション活動の原型を明確に描き出しています。

実現可能性には疑問符が付く『示唆』

知識の創造や吸収が人間の感覚器を介さずに、より直接的な経路で確立される可能性について言及している部分は、文中でも「それは示唆に富む考えであるが、現実と即時性との接触を失うことなく予測を保証するものではほとんどない。」とされている通り、当時の技術の延長に基づくものとは異なるように区別されています。

ただ、2025年現在だと「マルチモーダル」という形で、機械のほうでは実装できていそうですね。 私たちの脳が、AIと直結するほうが先にくる未来なのかもしれません。

その1に戻る

yourpalm.jubenoum.com

As We May Think 我々が思考するように その7

yourpalm.jubenoum.com

その6の続き

元の英文テキスト https://www.w3.org/History/1945/vbush/vbush.txt

複数のトレイルが合流する

7

これらはすべて、現代のメカニズムやガジェットを未来に投影したものであり、従来型である。しかし、それは連想索引への即時のステップを提供する。その基本的な考え方は、どの項目も意のままに即座に自動的に別の項目を選択させることができるようにする規定である。これがmemexの本質的な特徴である。2つの項目を結びつけるプロセスが重要なのである。

ユーザーが軌跡(トレイル)を構築しているとき、彼はそれに名前を付け、その名前をコードブックに挿入し、キーボードでそれを打ち出す。彼の前には、隣接する表示位置に投影された、結合される2つの項目がある。それぞれの底には多数の空白のコードスペースがあり、ポインターが各項目のこれらの1つを示すように設定されている。ユーザーが1つのキーをタップすると、項目は永久に結合される。各コードスペースにはコードワードが表示される。見えないところに、しかしコードスペースにも、光電池で表示するための一連のドットが挿入される。そして、各項目でこれらのドットは、その位置によって他の項目のインデックス番号を指定する。

その後、いつでも、これらの項目の1つが表示されているときに、対応するコードスペースの下のボタンをタップするだけで、もう一方を即座に呼び出すことができる。さらに、多数の項目がこのように結合されて軌跡(トレイル)を形成した場合、本のページをめくるために使用されるようなレバーを倒すことによって、順番に、速くまたはゆっくりとレビューすることができる。それは、物理的な項目が新しい本を形成するために集められたかのようである。それ以上である。なぜなら、どの項目も多数の軌跡に結合できるからである。

memexの所有者は、弓矢の起源と特性に興味があるとしよう。具体的には、十字軍の小競り合いで、なぜ短いトルコの弓がイギリスの長弓よりも明らかに優れていたのかを研究している。彼はmemexに何十冊もの関連する可能性のある本や記事を持っている。まず、彼は百科事典をざっと読み、興味深いが大雑把な記事を見つけ、それを投影したままにする。次に、歴史書で、別の関連する項目を見つけ、2つを結びつける。このようにして、彼は多くの項目の軌跡(トレイル)を構築していく。時々、彼は自分のコメントを挿入し、それを主要な軌跡にリンクさせるか、特定の項目へのサイドトレイルで結合する。利用可能な材料の弾性特性が弓に大きく関係していたことが明らかになると、彼は弾性に関する教科書や物理定数の表を通り抜けるサイドトレイルに分岐する。彼は自分の手書きの分析のページを挿入する。このようにして、彼は利用可能な資料の迷路を通して、彼の興味の軌跡を構築する。

そして、彼の軌跡(トレイル)は消えない。数年後、友人との会話が、人々が革新に抵抗する奇妙な方法、たとえそれが極めて重要であっても、という話になる。彼には例がある。射程で劣るヨーロッパ人が、それでもトルコの弓を採用しなかったという事実である。実際、彼はそれに関する軌跡(トレイル)を持っている。タッチするとコードブックが表示される。いくつかのキーをタップすると、軌跡の先頭が投影される。レバーで意のままにそれを駆け巡り、興味深い項目で停止し、脇道にそれていく。それは興味深い軌跡(トレイル)であり、議論に関連している。そこで彼は複製機を作動させ、軌跡全体を写真撮影し、それを友人に渡して彼自身のmemexに挿入させ、そこでより一般的な軌跡(トレイル)にリンクさせる。


解説

このセクションではmemexが単なる情報貯蔵庫ではなく、個人の思考プロセスを模倣し、情報を連想的に結びつけることで、知識の探求と創造を支援する強力なツールとなる可能性を詳細に描写しています。

そして図書館的な索引ではなくより思考プロセスに近い「連想的インデックス付け(associative indexing)」**について詳しく解説されています。これは、既存の機械や技術の単なる延長ではなく、情報を組織化し、アクセスする方法に根本的な変革をもたらすものとして提示されています。

ブッシュ博士が第7章で提唱するmemexの「連想的インデックス付け」と「トレイル」の概念は、現代の「キュレーション(Curation)」の思想と実践に非常に近いものであり、その先駆けとも言えそうです。 現代のキュレーションとは、インターネット上の膨大な情報の中から、特定の目的やテーマに基づいて価値のある情報を選び出し、整理し、独自の視点や文脈を加えて共有する活動を指します。memexの機能は、まさにこのプロセスを機械的に支援するものでした。

その8に続く

yourpalm.jubenoum.com