Obsidianで管理しているノートの中から、公開対象のものを Quartzで公開しているサイトです。 竹内仁が運用しています。
Shiori - Simple bookmark manager built with Go
About go-shiori/shiori: Simple bookmark manager built with Go Go言語で書かれたブックマークマネージャー。Pocketのように指定したURLとコンテンツをタグ、コメントとともに保存できる。 コマンドラインアプリケーションとしても、ウェブアプリケーションとしても使用可能で、単一のバイナリとして配布されているのでインストールも簡単。 主な機能 基本的なブックマーク管理(追加、編集、削除、検索など) Netscape Bookmarkファイルからのブックマークのインポート
Hugoのショートコード入力を支援するChrome拡張
自分用に[[notes/Hugo|Hugo]]のショートコードの入力を支援するChrome拡張を書いた。 htakeuchi/HugoShortcoder: Chrome extension to copy Hugo shortcode to clipboard according to open URL. 機能 たとえばHugoの公式ショートコードでTweetを引用しようとすると、 URLからユーザIDとTweet ID?を調べる。 URLがhttps://twitter.com/SanDiegoZoo/status/1453110110599868418だとすると {{< tweet user="SanDiegoZoo" id="1453110110599868418" >
MacからWindowsへRDP接続する際にキーボードがUS配列になる場合
MacのMicrosoft Remote Desktop」らWindowsにRDP接続する際、キーボードがUS(英語)配列で認識される場合の解消方法。 MacからWindowsへRDP接続するとキーボードがJISではなくUS配列になるとき | 晴耕雨読からの引用です。 自分の環境では3.の前にWindowsを再起動する必要があった。 対処方法 接続先のWindowsで以下の作業を行います。 Win+R で regedit を入力してレジストリエディタ
Hugoのショートコードをうまく使い回す方法
Hugoには他のCMSではよくある、機能を拡張するためのプラグインを提供する仕組みがない。 このため、あるテーマの中に便利なショートコードがあったとして、それを別のテーマで使用しようとした場合、 テーマディレクトリ/layouts/shortcodes配下のショートコードのソースを、別のテーマの/layouts/shortcodes配下、またはルート配下の/layouts/shortcodesへコピー
Hugoメモ
[[notes/Hugo|静的サイトジェネレータHugo]]に関するメモです。基本的に 公式ドキュメントから抜粋しています。 設定ファイル 主要な設定項目 config.tomlの主要項目を All configuration settingsより抜粋。テーマによっては指定しても意味がない場合があるので注意。 設定項目 説明 例 baseURL 公開サイトの絶対URL。末尾は' https://example.com contentDir コンテンツを配置するディレクトリ 省略時はcontent defaultContentLanguage デフォルトの言語 省略時は
Haml
Hamlとは Haml (HTML Abstraction Markup Language) はRubyのテンプレートエンジンの一つで、HTMLを簡潔に読みやすく書くためのマークアップ言語であり、以下の特徴がある。 簡潔な記述: インデント(スペースやタブの数)を使ってHTMLの要素のネスト(入れ子)を表現する。これにより閉じるタグが不要となりコードが簡潔になる。 Rubyの組み込み: Rubyのコードを直接埋め込むことができる。 自動的なエスケープ デフォルトでHTMLエスケー
Rubyのワンライナー
Webサーバー httpd ruby -run -e httpd . --port 1313 WEBrick ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => "./", :Port => 1313).start'
Hugoのテーマを作成する
Bookmarklet Maker【ブックマークレット変換サービス】 - Kujipedia hugo new theme bento cd theme/bento gohugoio/hugoBasicExample: Example site to use with Hugo & Hugo Themes git clone https://github.com/gohugoio/hugoBasicExample.git cd hugoBasicExample hugo serve -t ../
インディーウェブ
IndieWebとは 独自のドメインを所有し、それを主要なアイデンティティとして使用する自分のサイトで公開する (オプションで他の場所にシンジケートする)、自分のデータを所有するという原則に基づいて、単純な標準によって接続された独立した個人の Web サイト IndieWeb
TwitterのURLをHugoのショートコードに変換するブックマークレット
ChatGPT(GPT-4) が書いたもの。 javascript:(function() { function twitterUrlToHugoShortcode(url) { const urlParts = url.split("/"); const userName = urlParts[3]; const tweetId = urlParts[5]; return ``; } const url = window.location.href; navigator.clipboard.writeText(twitterUrlToHugoShortcode(url)) .then(() => alert('Hugo shortcode has been copied to clipboard!')) .catch(err => alert('Failed to copy Hugo shortcode: ', err)); })();
Mastodonのプロフィールで設定するURLを認証済みにする
所有するサイトのヘッダにrel="me"を設定する。 <link rel="me" href="https://social.namaraii.com/@htakeuchi">
本サイト向けQuartzカスタマイズ内容
本サイトはObsidianで管理しているノートを Quartzを使って公開しているが、本サイト向けにカスタマイズした内容をまとめておく。 トップページ 最近更新されたノート一覧の表示 gitのcommit日時を更新日時として取り扱って、新しい順に表示する設定にした。 enableGitInfo = true HugoでGit情報を扱うための設定 enableRecentNotes:trueScrapboxのようなカードビュー 更新日時の新しい順に
GitHubパーソナルアクセストークン
GitHubへHTTPSで接続する際のリモートパスワード認証は2021年8月13日に廃止された パーソナルアクセストークンを使えば、引き続きHTTPSでリポジトリへ接続することができる 個人用アクセス トークンの作成 - GitHub Docs settings - Developer settings - Personal access tokens - Fine-grained tokens - Generate new toke
Git submodule管理しているリポジトリの更新
サブモジュールで管理しているディレクトリ配下のファイルの更新について サブモジュールで管理しているディレクトリ配下のファイルの更新は、サブモジュール自体の更新と同様に扱う。 つまり、サブモジュール内で行われた変更を親プロジェクトで反映させるには、サブモジュールに移動してから変更を行い、それをコミットしてプッシュする。 その後、親プロジェクトに戻ってサブモジュールの新しいリビジョンを指すように更新し、それ
OAuthでアクセストークンを取得するスクリプト
OAuthでアクセストークン、アクセストークンシークレットを取得するサンプル。毎回、同じようなスクリプトを書いて使い捨てにするのはムダなのでメモしておく。 ブラウザで表示されるURLへアクセスする リダイレクトされたURLのoauth_verifierの値を入力 access_token.token、access_token.secretが表示される require 'oauth' URL = "https://www.tumblr.com" consumer_key = 'Cls**********yaqV4' consumer_secret = 'RG****3KwFy' oauth = OAuth::Consumer.new(consumer_key, consumer_secret, site: URL) request = oauth.get_request_token(exclude_callback: true) puts "Access this URL: #{request.authorize_url}" print
Macで定期実行(launchd)
用途によって配置するフォルダを選ぶ フォルダ 使用法 /System/Library/LaunchDaemons Appleが提供するシステムデーモン /System/Library/LaunchAgents Appleが提供するエージェント。すべてのユーザに対してユーザごとに適用されます /Library/LaunchDaemons システムデーモン /Library/LaunchAgents すべてのユーザに対してユーザごとに適用されます ~/Library/LaunchAgents ログイン中のユーザにのみ適用されます LaunchAgentsはログイン前提、LaunchDaemonsはログインに依存せず実行される。 有効化・無効化 有効化 launchctl load /path/to/your.plist 無効
Git Sumbodule
Gitのサブモジュール(submodules)は、外部のGitリポジトリを現在のリポジトリのサブディレクトリに組み込むための仕組み。これにより、外部のプロジェクトやライブラリを現在のプロジェクト内で使うことができる。 サブモジュールは、親プロジェクトから独立している。つまり、親プロジェクトをクローンしたときにサブモジュールは自動的にはクローンされない。これを行うためには git clone --recursive <project> を使用する必要がある。
Windows11にStable Diffusion WebUIをインストールする
インストール 画像生成AI「Stable Diffusion」を4GBのGPUでも動作OK&自分の絵柄を学習させるなどいろいろな機能を簡単にGoogle ColaboやWindowsで動かせる決定版「Stable Diffusion web UI(AUTOMATIC1111版)」インストール方法まとめ - GIGAZINE 上記URLを参考に 自作PCへ必要なものをインストールした。 StableDiffusion WebUI 各項目の意味まとめ | Code Wizardry インストールしたモデル mdjrny-v4.ckpt prompthero/openjourney · Hugging Face mdjrny-v4 style stable-diffusion-2-1 v2-1_768-ema-pruned.safetensors
tweepy-authlib
tweepy-authlib Twitter Web Appの内部 API を使い、 Tweepy でスクリーンネームとパスワードで認証するためのライブラリ。取得した Cookie などの認証情報で Twitter API v1.1 にアクセスできる。 (2023/02/07) Twitter APIの有料化に備えてテスト
Obsidian TODOの表示色調整
色弱のため、Obsidianのベーステーマをダークにすると[[notes/obsidian-todo-plugin|obsidian-todo-plugin]]の未来タスクの日付表示が読みにくいためCSSを調整した。 49 50 51 52 div.todo-item-view-item span.due-date.future-due { background-color: #111144; border-color: #111144; }
使ったことのあるObsidianのプラグイン
[[notes/obsidian-plugin-abcjs|obsidian-plugin-abcjs]] ★ [[notes/abc_notation|ABC記譜法]]で書いた内容を楽譜で表示する [[notes/obsidian_advanced_tables|Advanced Tables]] ★ テーブルの作成を支援する [[notes/obsidian_calendar|Calendar]] ★ カレンダーの表示。デイリーノートとの連携 [[Emoji Toolbar]] ★ [[notes/obsidian-excalidraw]]★ Excalidrawで図を描ける [[notes/obsidian_orphaned|Find orphaned files and broken links]] 孤立したファイル、デッドリンクなどの検索 [[notes/obsidian-front-matter-title|Front Matter Title]] ★ ファイルエクスプローラーやグラフで表示されるファイル名を、FrontMatte
Stable Diffusionのプロンプト生成を支援するサービス
Lexica 気に入った作例のプロンプトを参照できる Stable Diffusion Prompt Generator 書きたいものを入力するとプロンプト案を生成してくれる PromptHero - Search prompts for Stable Diffusion, DALL-E & Midjourney Promptist - a Hugging Face Space by microsoft
Obsidianのノートを外部公開する場合のデッドリンク問題
ページタイトル変更時の問題 [[notes/obsidian|Obsidian]]でノート名(ファイル名)を変更した場合、そのノートに張られているリンクは自動的に修正される。このため、Obsidian単体で使っている限りは気軽にノート名を変更して問題ない。 ページの内容が変化した場合、それにあわせてノート名を変更したくなるのは自然なことで、Obsidianはそれをアプリケーションの機能として実現してい
ObsidianがサポートしているMarkdown
サポートしている形式 ObsidianではCommonMarkとGitHub Flavored Markdown (GFM)をサポートしている。 CommonMark GitHub Flavored Markdown Spec Obsidianの独自記法 Features - Obsidianにあるように、Obsidian独自の記法として以下のものがある。 タグ記法 本文中に#タグ名を書くとタグとして扱われる。 LaTeX記法 数式を$$で挟みLaTeX記法を記述できる。 $$\sum_{k=1}^\infty{\frac{1}{n^s}}$$ $$\sum_{k=1}^\infty{\frac{1}{n^s}}$$ 脚注 脚注[^1]をサポートしています。 [^1]: 書物などの本文の下
obsidian-tracker
pyrochlore/obsidian-tracker: A plugin tracks occurrences and numbers in your notes ノートの情報をグラフで可視化する[[notes/obsidian|Obsidian]]のプラグイン。
AlfredからObsidianの保管庫を検索する
Obsidianにアクセスするための[[Alfred]]ワークフローがいくつか公開されている。 chrisgrieser/shimmering-obsidian: Alfred Workflow for various enhancements of Obsidian. hauselin/obsidian-alfred: Alfred workflow for Obsidian note-taking app. Open vaults and files in Obsidian. 単純に特定の保管庫を検索するだけであれば、AlfredのWeb Search機能へ[[notes/obsidian_url|ObsidianのURLスキーム]]をもとに設定するだけで良い。 SearchURL obsidian://search?vault=保管庫名&query
TemplaterプラグインのテンプレートからMoment.jsを使用する
[[notes/obsidian|Obsidian]]の[[notes/Templater|Templater]]プラグインでデイリーノートを生成しているが、テンプレートでは Introduction - Templaterを参考に前後のデイリーノートへ移動するためのリンクを追加するようにしていた。1 << [ [2023-01-24]] | [ [2023-01-26]] >>` 上記のテンプレートでは、当日のデイリーノート作成ではうまくいくが、未来や過去日付のデイリーノートを作成した場合、
obsidian-todo-plugin
GitHub - larslockefeer/obsidian-plugin-todo 複数のノートに書いたタスクを集約して表示できるプラグイン。TODO専用のノートを準備が不要なところが良い 一覧表示したタスクから書いてあるノートへジャンプできるのも便利
Obsidianのデイリーノートへ追記するTextwellのアクション
[[notes/obsidian|Obsidian]]のデイリーノートへ[[notes/Textwell|Textwell]] から追記するためのアクション。 TextwellからObsidianのデイリーノートを書く方法 - Jazzと読書の日々を参考にさせていただき以下の修正を行った。 デイリーノートのディレクトリ構成(YYYY/MM/YYYY-MM-DD.mdとした) 新規作成ではなく追記に変更 1 2 3 4
ReazonSpeech
約19,000時間の放送音声からなるラベル付き日本語音声コーパス。 音声コーパスに加えて、コーパスを構築するためのツールキット及び学習済みモデルを 自由なライセンスで公開している。 ReazonSpeech - Reazon Human Interaction Lab
Pocketに保存したページを読み上げてPodcastとして配信
PocketへWebページを保存するとページの本文らしき部分を抽出し、 Text-to-Speechでそれを読み上げた音声ファイルを作り、プライベートなPodcastとして配信するしかけを作った。 音声合成エンジンとして VOICEVOXも試したが、手元の環境で安定して動作させるところまでいけず断念。 システムの概要 flowchart TD Podcastアプリ[/Podcastアプリ\] -- |参照|nginx Pocket[/Pocket\] -- |新規保存|I
Webページから本文らしき部分を抽出する
さまざまなパターンの日本語文章をデータとして欲しいケースがあったので、指定したURLから本文らしき内容を抽出するスクリプトを書いた。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 require 'playwright' require 'readability' require 'html2text' # 指定したURLから本文らしき内容を抽出して返却する def html2text(url) Playwright.create(playwright_cli_executable_path: 'npx playwright') do |playwright| playwright.chromium.launch(headless: true) do |browser| begin page = browser.new_page page.goto(url, waitUntil: 'load') doc = Readability::Document.new(page.content) sleep 1 return {:title => page.title, :content => Html2Text.convert(doc.content) } rescue return {:title => nil, :content => nil } end end end end url = ARGV.shift doc = html2text(url) puts "#{doc[:title]}\n#{doc[:content]}" Javascriptでコンテンツを生成するページに対
Mastodon API gemを使ってTootする
mastodon/mastodon-api: A ruby interface for the Mastodon API #!/usr/bin/env ruby require 'mastodon' require 'oauth2' require 'dotenv' Dotenv.load client = Mastodon::REST::Client.new(base_url: ENV["MASTODON_URL"], bearer_token: ENV["MASTODON_ACCESS_TOKEN"]) message = "Hello, World!" response = client.create_status(message) アクセストークンを取得していれば↑のコードだけでTootできるはずだが、手持ちの環境ではmastodon-api gemの中でFrozenErrorになってしまう。(ruby 3.0.1p64)
ソフトウェアアーキテクチャのためのC4モデル
C4モデルとは ソフトウェアのアーキテクチャを表現するためのモデル。 コンテキスト(context) コンテナ(containers) コンポーネント(components) コード(code) で構成される。 C4モデルは特別な表記法を規定していない。以下、ダイアグラムの図は The C4 model for visualising software architectureを参考に作成した。 flowchart TD ソフトウェアシステム:::system ソフトウェアシステム -- container
RとRStudioのインストール(Mac)
brewでインストール(したことの備忘録) $ brew install r $ brew install --cask rstudio インストールしたパッケージ RStudioのコンソールからinstall.packages("パッケージ名")として以下のパッケージをインストールした。 data.table データフレームの高速化 devtools GitHubからのインストールなど tidyverse データ分析を行うためのパッケージ群。データの読み込み、抽出、加工、可視化などを効率的に行うためのさまざまな機
ObsidianのURLスキーム
Using obsidian URI - Obsidian Help ノートを開く open obsidian://open?vault=my%20vault&file=path%2Fto%2Fmy%20note my vaultのpath/to/my noteを開く ノートを検索する search obsidian://search?vault=my%20vault&query=MOC my vaultでMOCを検索する ノートを作成する new obsidian://new?vault=my%20vault&path=path%2Fto%2Fmy%20note my vaultのpath/to/my note`を新規に作成する オプション vaultボールト名またはボールト ID のいずれか name作成するファイル名。これが指定されている場合、ファイルの場所は「新しいメモのデフォルトの場所」になる file名前を含むボールトの絶
ChatGPT
ChatGPTはAIを利用した自然言語処理ツール。自然言語で会話できる。AI研究企業のOpenAIが開発し2022年11月30日に公開された。 ChatGPT: Optimizing Language Models for Dialogue [!question] Question ChatGPTについて説明してください。 [!quote] ChatGPT ChatGPT(GPT とも呼ばれます)は、トランスファー学習を使用してトレーニングされた自然言語処理モデルです。GPT は、大規模なテキストコーパスを学習し、人間のように文章を生成することができます。
コーディング時のChatGPTユースケース
11 ways you can use ChatGPT to write code 11 ways you can use ChatGPT to write code | Santiagoにコーディング時の[[notes/ChatGPT|ChatGPT]]ユースケースが紹介されていた。 コードの説明 理解したいコードをChatGPTに説明してもらう。 コードの改善 ChatGPTにコードの改善を依頼する。 正しいスタイルでコードを書き直す プログラミング言語ごとの一般的な命名規則を使用するように書き直す。 慣用的な構成を使ってコードを書き換え