ブログのアクセス制限

2025/9/25 [09:08:41] (木) 天気

去年あたりから、たぶんAIがらみでのコンテンツ収集と思うんだけど、クローラーやBOT=人間以外のアクセスが増えている。

当ブログのエントリを秒刻みで地引き網してるんで、さすがにそれどうなの?ということで今月からアクセス制限することにした。


今日時点でブログのエントリ数は3000ちょっとで、さらに個別、年月日別、カテゴリ別等々、リンク数はエントリ数の何倍かは多い。同じエントリなのに、リンクが違うといちいちアクセスすることになる。

この程度のボリュームで負荷どうこうはないはずだけど、レンタルサーバーに間借りしてる立場だし、ちょっと意識したほうがいいよなあ、と。


てことで。

アクセスのremote addrからhostnameを引いて、ドメインが取得できないもの、ccTLD(国別のドメイン)で日本語話者ではなさそうな国のドメインなど、かなりがっつり制限をかけた。


それらのアクセスはすべてホームページ「On Golden Pond」へ、301リダイレクト。


ホームページの方は、各ページが全部ペラ一枚の静的ページだし、アクセスが集中したところで表示速度に影響が出るようなこともないだろうし。


AIにコンテンツを収集されることに対して、特に問題とは思ってなくて、むしろ、ウチのイイ加減なデタラメをどっさり食べて、元気に育っておくれ、なんだけど!


アクセス頻度というかアクセスのやりかたを考えていただけませんかねえ。


image

ActivityPubサーバーに引用を実装

2025/9/22 [07:47:02] (月) 天気

自作実装のActivityPubサーバーに「引用」を実装した。


引用ってナニ?

気になる投稿を見かけて、その投稿についてコメントをつけたい、なんて思った時にその投稿を自分の投稿に埋めこむ、文字通り「引用」する機能。

XなどのSNSではすでに利用されていて、フェディバースでもMisskeyやFedibird、kmyblueなどのサーバーでは実装されている。


なんで今さら?

つい先日、フェディバースでもっともポピュラーなMastodonというサーバーがこの「引用」を実装して運用を始めたから。


「引用」はXなんかのSNSでよく見られる「どれどれ、おれさまがモノ申してやろう」によく使われている。

投稿主の意図とは関係なく「晒しあげ」に使われることが多い、という問題を抱えているんで、Mastodonは引用の導入に消極的だという話があった。

てこともあってのことだと思うけど、引用の導入については、引用する該当の投稿が引用を許可しているか、偽装されていないかなど、ハードルを設けている。


わたしの場合、「おれさまがモノ申す」するような、みっともないマネはしたくない、でも、自分の過去投稿を引用したいことは「言い足したい」などでけっこうある。


ということで、ウチに実装する「引用」は、自分の投稿を自分で引用する「自己完結型」引用とする。



という無駄に長い前置き…老人の特権で勘弁してください。


で、引用の実装。

https://codeberg.org/fediverse/fep/src/branch/main/fep/044f/fep-044f.md

↑Mastodonの引用について

これがすべて。


・引用の許可

投稿のJSONに「引用を許可します」を明記する

"interactionPolicy":{"canQuote":{"automaticApproval":["https://www.w3.org/ns/activitystreams#Public"]}}

「interactionPolicy」というそのまんまの要素に、「canQuote」というそのまんまのキー。この値に「public」が指定されていると誰でも引用できる投稿となる。


・投稿を引用する

引用が許可された投稿を引用する

"quote": "https://tokoroten.doncha.net/t2aki/items/05829-20250921",
"quoteUrl": "https://tokoroten.doncha.net/t2aki/items/05829-20250921",
"quoteUri": "https://tokoroten.doncha.net/t2aki/items/05829-20250921",
"_misskey_quote": "https://tokoroten.doncha.net/t2aki/items/05829-20250921",

引用する投稿をJSONに記載する。Mastodonは「quote」だけど、すでに実装済みのサーバーとの互換のために「_misskey_quote」なども記載しておく。


この投稿には引用がついていて、引用する投稿のURLを書いておくね、ということになる、かな。


・引用のチェック

引用を含んだ投稿を受け取ったサーバーは、その引用が「正しいのか/表示していいのか」を確認する必要がある。

引用を含んだ投稿には、引用する投稿のURLのほかに「quoteAuthorization」のURLを記載する。

"quoteAuthorization": "https://tokoroten.doncha.net/t2aki/quote_auth/05833",

このURLにGETでリクエストして、返ってくるJSONで引用の整合性を確認する。


以下が「quoteAuthorization」が返すJSON

{
  "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "quoteAuthorization": {
           "@id": "https://w3id.org/fep/044f#quoteAuthorization",
           "@type": "@id"
        },
        "interactingObject": {
           "@id": "gts:interactingObject"
        },
        "interactionTarget": {
           "@id": "gts:interactionTarget"
        }
      }
  ],
  "id": "https://tokoroten.doncha.net/t2aki/quote_auth/05833",
  "type": "QuoteAuthorization",
  "attributedTo": "https://tokoroten.doncha.net/t2aki",
  "interactingObject": "https://tokoroten.doncha.net/t2aki/items/05833-20250921",
  "interactionTarget": "https://tokoroten.doncha.net/t2aki/items/05829-20250921"
}

以下すべての一致が確認できたら引用として表示される。

・idと引用投稿の「quoteAuthorization」

・attributedToと引用される投稿のattributedTo

・interactionObjectと引用投稿のid

・interactionTargetと引用される投稿のid


以上で最低限、自己完結型引用を投稿できる

image

↑mastodon.socialで引用投稿を表示


上記はいろいろ省略してる。

contextに記載するものもそうだけど、自己完結じゃない場合、ひとさまの投稿を引用する時にはリクエストのキャッチボールが生じるので対応が必要となる。


その投稿を引用したい!

・「"type": "QuoteRequest"」のActivityを引用したい投稿の主にPOSTでリクエストする。

・リクエストを受けたら承認(Accept)/拒否(Reject)のリクエストを返す。

返事を見てから引用をする/しない。


とはいえ、自己完結型は承認もなにもないので、このへんはばっさりスルー。


引用したい側は、引用元に可否を問い合わせるのは「MUST」

引用される側は、返事する/しないはおまかせ

ということだし。


このブログはもともとコード掲載することを考えてなくて、めっちゃ見にくいんで、そのうちホームページの方に改めて掲載します。

「おひとり様ActivityPubサーバーの自作実装::On Golden Pond」


今日時点、引用にしても絵文字にしても、ActivityPubの仕様にはない(?)ので、サーバーごとで対応にバラつきがあって、現物合わせの手探り。

判じ物、当たるも八卦当たらぬも八卦(死語)の世界だなあ。


[09/22 09:50:38]追記

あれ?自己完結するなら、interactionPolicyは不要な気がする。

あとで検証してみよう


[09/23 23:09:35]追記

intractionPolicyは不要だった。

これは「引用しようとするひと向け」のもので、自己完結するなら不要。


intractionPolicyは本家Mastodonの引用制御

・誰でも引用できる

・followerまでが引用できる

・引用できるのは自分だけ

この選択のためにある。


引用を含んだ投稿を表示させる時に、引用されている投稿の引用ポリシーを確認にくるのでは、と疑ったんだけど、アクセスログを見てもそんな形跡もなかった。


ということはquoteAuthorizationの設定だけ約束どおり作っておけば、引用を含んだ投稿を意図通り表示してくれる。

[更新]2025-11-18 09:03:30

フェディバースのプロフィールページ

2025/9/14 [12:28:28] (日) 天気

フェディバース用のプロフィールページの見た目をちょっとだけいじった。


おひとり様自作実装のActivityPubサーバーでフェディバース=SNSに投稿したり流れてくる投稿を読んだりしてる。


ローカルのタイムラインは、自分ひとりの壁打ち、自分の投稿が並ぶだけ。

ということもあって、デザインもくそもない、昭和平成の掲示板風味のローカルタイムラインだ。


そもそも、おひとり様の投稿は、フォロワーさんのいるリモートサーバーに投げられて、リモートサーバー側で表示される。投稿を表示するリモートサーバーの種類ごとに表示のレイアウトやデザインは違うものとなる。

さらに、リモートサーバーでは過去投稿もキャッシュされるので、たとえば、わたしの投稿一覧もリモートサーバーがキャッシュした範囲で表示される。


てことは、わたしの投稿を見るために、わざわざウチのおひとり様サーバーに飛んでくる必要はない。自分以外に見るひともいないページとなれば、そりゃ手抜きで十分、放置ということになる。


とはいえ、リモートサーバーの方にある「元のページで表示」などのリンクで、ウチに飛んで来られることもないこともない。

最低限の見栄え見た目を整えてみた。

image

て、「border-radius」で囲みの罫線の角を丸めただけなんだけど、角が丸いだけで、なんかそれっぽい見た目になって満足して…はいけないんで、プロフィールに文言追加、リンク追加。


ベースを白にして、コントラストを低めにするのがオサレなんだけど、それは目に優しくない。

昔、視覚に問題を抱えるひとたちのサポートをするNPOに関わってたこともあって、ちょっとだけ意識するところ。

なので、黒ベースのコントラストはっきり系にした。


ほとんど見られることのないページのURLはこちら

https://tokoroten.doncha.net/t2aki


フェディバースのSNSは面白いですよ!

Xやスレッズ、ブルースカイに疲れたらフェディバースのSNSを試してみましょう!

[更新]2026-02-01 09:03:58

Linux MintでSKK

2025/9/4 [08:39:27] (木) 天気

linux mintにSKKをインストールした

いや、これまでもskkを使っていたのでナニソレということだけど。emacsやvimなどのエディタの中で使っていて、システム全体ではデフォルト扱い(?)のFcitxとmozc。


昔むかし、FreeBSDで少しだけ、Macでも少しだけ、SKK Serverをインストールしてシステム全体でSKKを使っていたことがあった。ただ、わたしの設定がまずかったのか今イチ安定しなくて、使わなくなってた。


今回あらためて、linux mintにインストールしたのでメモ…するほどもなくさくっとインストールできたんだけど、きっと忘れるのでメモ。


やることは2つだけ


1)ibus-skkのインストール

sudo apt install ibus-skk

image
# for iBus
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

念のための呪文を.bashrcに記入しておく


2)入力方法の設定

「設定マネージャー」→「入力方法」

入力方式フレームワークを「IBus」にして再起動

image

タスクバーに「SKK」が現れるのでクリックして「日本語-SKK」に設定


以上で、システム全体でSKKが使える=ブラウザやターミナル、ファイラーなどなどでSKKが使えることとなった。


[09/06 09:12:27]追記


ibus-skkを起動すると「ひらがな」になっていて、靴に小石が入ったような違和感がつきまとう。


「設定」→「日本語SKK」→「初期入力モード」を「英数」にするんだけど再起動をすると「ひらがな」に戻る、設定を保存できない。

ぐーぐる先生に聞きまくった結果

ibus-daemon --config/usr/libexec/ibus-dconf -drx

↑この一行を.bashrcに入れたら解決。


「IBus-SKKで設定が保存されるようにする」

↑こちらのページに多謝!


[09/06 13:24:25]もうひとつ追記


上記の方法だと、ターミナルを立ちあげてログインしないと反映しない。

ログインしてブラウザを立ちあげてテキストエリアに何か入力しようとすると「ひらがな」になっている。


1)linx mintを起動

2)ログイン

3)ターミナルを起動

が必要になる。ターミナルを起動することなく、初期設定を「英数」にするには(2)で上記のコマンドを走らせればいい、はず。

image

「設定マネージャー」→「セッションと起動」→「自動開始アプリケーション」

に上記コマンドを「追加」したら(2)で初期設定が無事「英数」になっていた。


「/etc/rcN.d」とか触りたくないよなあと思ってたら、今どきはちゃんとGUIで設定できるようになってた。

…とかではなくて、設定ファイルはHOMEに

「.config/autostart/ibus-skk-default.desktop」

として保存されていた。

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=ibus-skk-default
Comment=skk start setting
Exec=ibus-daemon --config=/usr/libexec/ibus-dconf -drx
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false


〜〜以下蛇足〜〜


なんでまたSKK?


日本語入力、かな漢字変換はATOKに始まってMSIME、最近だとGoogleのIMEなんかも使ってきたとはいえ、いま、エディタで使ってるのはSKK。

変換、特にかなに開くところや送り仮名など、かな漢字変換の「賢い変換」はいらない。賢く変換された箇所で自分の趣味じゃないところを「修正」するのが面倒くさい。賢い変換がしゃらくさい。

それならパターンマッチだけのSKKで自分好みのところで自分で区切って変換するのが直接的、ということでSKKを使ってる。


だけど、エディタ限定で使うとなると、あっちはMSIME、こっちはSKKになってキー入力が混乱する。こういうところは統一したいとずっと思ってた。

今回のibus-skkをまだ少ししか触ってないけど、安定してるっぽいんでこのまま全部SKKでいければいいなあ。

[更新]2026-02-01 09:04:16

<<2025/09>>
 123456
78910111213
14151617181920
21222324252627
282930

【最近の10件】

日常読書映画アニメゲーム健康料理グルメカメラ写真ネタ仕事パソコンインターネットperlEPUB3電子書籍ActivityPub
検索: