行き狩りの電車でプレイしている『ガイアプロジェクト』で珍しい事象が起きました。
使った勢力はお気に入りのダー・シュワーム。

まず完成図がこちら。ここまで宙域を伸ばしているのも異例ですが

マジョリティ「惑星改造」が9。つまり、航法5の暗黒惑星を含めてコンプリート。

惑星改造ゴールはアンバスに取られたものの、同盟×5タイルと研究ごとに2点タイルを取ることができて

最終得点は173点。まず取ることがない航法ゴールをダー・シュワームでやったという珍事です。
行き狩りの電車でプレイしている『ガイアプロジェクト』で珍しい事象が起きました。
使った勢力はお気に入りのダー・シュワーム。

まず完成図がこちら。ここまで宙域を伸ばしているのも異例ですが

マジョリティ「惑星改造」が9。つまり、航法5の暗黒惑星を含めてコンプリート。

惑星改造ゴールはアンバスに取られたものの、同盟×5タイルと研究ごとに2点タイルを取ることができて

最終得点は173点。まず取ることがない航法ゴールをダー・シュワームでやったという珍事です。
何かと現役なUSBメモリ。再セットアップ中に(Windows管理→ディスク管理)

このように見割り当て/もしくは複数のパーティションができた場合に対応するときのメモです。
この操作を行うと、USBメモリ内のデータはすべて消去されます。 必要なファイルがある場合は、作業前に必ずパソコン本体などへバックアップを取ってください。
ディスク番号は絶対に間違えないでください。
OSインストールドライブが文字通り吹っ飛ぶような操作です。
Windowsキー→cmdを入力。コマンドプロンプトが入力されたら、右クリックで「管理者として実行」を選択。
diskpart
を入力してEnterを実行。
list disk
を実行。
この時、上述したディスク3が操作をするUSBメモリであることを確認しましょう。
※ここでディスク番号を間違えると、パソコンのSSDなどを消去してしまうため慎重に選んでください。
select disk 3
を実行します。「ディスク 3 が選択されました」と表示されます。
clean
を実行します。これで、ディスク内の全てのパーティションが消えます。
create partition primary
を実行します。
fs=ntfs quick
等でフォーマットを行います。
exit
でdiskpartを抜けます。
1年前に買ったまま放置していたデッキをようやく組めました。
ネットで見た改造案を元に、進化とトークン戦略。ゲームチェンジャーを一切入れないブラケット2に抑えています。
あなたが工匠(Artificer)やアーティファクトである呪文1つを唱えるたび、(E)(エネルギー(energy)・カウンター1個)を得る。
あなたのターンの戦闘の開始時に、(E)(E)(E)を支払ってもよい。そうしたとき、あなたがコントロールしているパーマネント1つを対象とする。他のタイプに加えて速攻を持つ5/5のアーティファクト・クリーチャーであることを除き、それのコピーであるトークン1体を生成する。次の終了ステップの開始時に、そのトークンを生け贄に捧げる。
という統率者。高名な者、ミシュラと似たような挙動ですが
というのが微妙に違います。なので、
など、結構面白い動きができそうです。
最初に手にした統率者構築済みデッキを「ブラケット2」の帯にしました。
青赤緑
グレムリンの神童、ジンバル
トークンを並べてビートダウン
現行のデッキリスト
あなたがコントロールしているすべてのアーティファクト・クリーチャーはトランプルを持つ。
あなたの終了ステップの開始時に、赤の0/0のグレムリン(Gremlin)・アーティファクト・クリーチャー・トークン1体を生成する。それの上に+1/+1カウンターX個を置く。Xは、あなたがコントロールしていて名前の異なるアーティファクト・トークンの数に等しい。
これをずっと放置していたのは「トークン管理が面倒だったから」に尽きます。

全30種に及ぶトークンをようやく切り出すことができて

ゲームチェンジャーカードを抜いたものへと仕上げられました。

ポストアポカリプスな世界の中で、どのように時計を再生させていくかが問われるソリティアゲームでした。
人類が滅亡した世界。プレイヤーはロボットとして大時計をくみ上げていきます。
山札が尽きる前に大時計の再生が完了すればゲーム勝利となります。
最初に言いますが、本作は難易度高めです。ゲームのコツがつかめなければ、あっという間に山札が尽きてゲームに敗北します。
部品をくみ上げた際にもライブラリーが吹っ飛ぶような効果もあるので、「死にやすさ」を加速。それだけに、「次はどうすれば死なないか」の思考がフル回転しました。
途中で遭遇する災厄にしても地味にやっかいなものがあるし、3種類ある歯車にしても「次に同じカードは置けない」縛りがあるため、盤面と運を両方とも見ることが必要です。
反面、それを修復するための手段が「ここぞ」というタイミングで使うことができると盤面は一気に回復。その切り札的な手段を使って「生き延びた」時の安心感はひとしおです。
ゲームクリアに必要なのは部品なので、それを最優先したいところではありますが、生産拠点は手札の調整や災厄の軽減などの便利な効果を兼ね備えています。なので
「あちらがほしいが、次に引くかもしれない災厄にはこっちが必要」
というディシジョンメイキングに悩まされます。

この手の小箱にしては珍しくスリーブ付き。しかも、スリーブを入れるとしっかりと箱に収まるという心憎い配慮。
同梱のスリーブはジャストサイズです。なので、TCGに慣れていない方にとってこのスリーブ入れはかなり苦労するでしょう。
カードの偏りによっては山札の修復もできずに何もできません。このランダム性はかなりやっかいです。
山札を大幅に削る部品を序盤に発動しないと詰みます。これに気づくか気づかないかがこのゲームをどう思うかに直結です。
難解なゲームではありましたが、
など、訴求力はバッチリ。何より、15分程度で考えどころ満載の小箱ゲームでした。
個人的に:生産拠点が停止してしまう(裏返ってしまう)災厄を逆手に取り、山札の修復を使い回すテクニックは、TCGプレイヤー冥利に尽きました。
住んでいたということもあり、タイトルに惹かれて購入。ベーシックなゲームブックのスタイルを取りながらも、
がほどよい、追体験型のボードゲームでした。

そのタイトル通り、プレイヤーはロンドンの旅行者。キングスクロス駅から始まり、ロンドン中心部の様々な観光名所を巡りつつ
を巡っていきます。
本の指示に従い、地図に書き込んでいくだけ。途中、様々な選択肢があり、その指示通りに出向いていきます。旅は一度では終わらず、違うルート、別の行動を取ることによりエンディングも変化していきます。
これが最も感動した点です。5周ほどしましたが
など、位置的にテーマが定まっているところ。(尤も、大英博物館はがっつり回ろうと思ったら1週間単位で時間が溶けていきますが……)
なので、「次はどのルートに行こうか」という計画を早くも立てることができます。
作者様が実際に撮影した写真はどれも素晴らしく、簡潔で没入感が高い文章がそれを引き立てます。この写真だけでも空気感は抜群です。
上述したとおり、選択肢によってどのルートを辿るかが違ってきます。この『周回』ごとにペンの色を変えれば「このとき、この旅をした」という振り返りがバッチリです。
これに尽きると思いました。筆者は灰色の空気感も含めてロンドンは大好きですが、そうでもない方、旅が好みではないという方はどこまで刺さるかが未知数です。
ロンドン中心部のきらびやかな名所をしっかりと記していましたが、そこに行くだけで一日を消費しそうな
の2つは地図の都合上オミットされていたのが少し残念。
かなり久しぶりに、伝統的なゲームブックに触れることで、その本質である
などに満ちた作品。本シリーズの他の都市も手に取ってみたいと思わせる作品でした。
余談ですが、
は、筆者おすすめの『メリー・ポピンズ(リターンズ含む)』の聖地巡礼ルートです。
Webサイトを公開していると、必ず遭遇するのが「自動化された嫌がらせ」です。
ログを確認すると、1秒ごとに異なるURLへPOSTリクエストを送り続けてくるボットたちがいます。
今回は、特定のネットワークセグメントから行われた執拗な「PHPUnitのバックドア設置スキャン」に対し、アプリケーション層(ModSecurity)だけでなく、カーネル層(IPset)で物理的に遮断した際のメモです。
以下の手順でipsetを導入していること。
ある日、アクセスログを眺めていると、以下のような文字列が並んでいることに気づきました。
# access.log の例 (ダミーデータ)
192.0.2.239 - - [06/Mar/2026:14:35:07] "POST /lib/phpunit/Util/PHP/eval-stdin.php HTTP/1.1" 404 3067 "-" "Mozilla/5.0..."
192.0.2.239 - - [06/Mar/2026:14:35:08] "POST /lib/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 3067 "-" "Mozilla/5.0..."
...
攻撃者は /vendor/ や /lib/ などのディレクトリを総当たりし、脆弱性のあるPHPUnitファイルを探しています。
このアクセス元を調べてみました。
しかし、調べてIPをブロックするだけでは終わりません。相手は同じネットワーク(ASN)内の別IPから再び攻撃してくるからです。
そこで whois コマンドを用いて、この攻撃者が所属するネットワークの広がりを確認しました。
※ダミーIPにしています。
whois -h whois.radb.net -- '192.0.2.239'
結果、このIPは特定のホスティング事業者が管理する「広大なネットワーク帯域」の一部であることが判明しました(仮に AS_DUMMY_99 とします)。
単なるIPの拒否リストでは、数千に及ぶボットのIPを捌ききれません。数千ものIP/NWをufwでブロックすると、たちどころにその膨大なルールでufwは機能不全を起こします。
それが、上述したLinuxカーネルレベルで高速にパケットを破棄できる ipset を使用した形です。
まず、そのASNが保持する全CIDRを取得し、aggregate コマンドで最適なサイズに集約します。
whois -h whois.radb.net -- '-i origin AS_DUMMY_99' | grep -E '^route:' | aggregate > ban_list.txt
(aggregateがない場合はsudo apt install aggregateでインストールします)
これにより、手作業では到底管理できない広大なネットワーク帯域を、数行のルールに圧縮できます。最後に、このルールを ipset に投入します。
筆者手順ではこの形。
sudo ipset add ufw-blocklist IPアドレス・NWアドレス
sudo ipset save ufw-blocklist -f /etc/ufw/ipsets.save
なぜASNごと切り捨てるのかは「彼らの根城だから」につきます。(そのあたりは筆者コラムに書いています)
そもそも、これらのボットは、海外の法が緩いVPSや出所の怪しいプロバイダに巣喰っています。
こん城ん奴ばら共は糞じゃ
撫で切りぞ
根切りぞ
ぐらいのブロックは必要です。
先だって購入した「ホグワーツ×ルピシア」コラボ。

全て試したので感想を記しておきます。
個人的なイチオシはハッフルパフ。香りと優しさが段違い。また、システムのリリース時に飲むスリザリンは「オールグリーン」の験担ぎとしてちょうどいいものでした。
このスクリプトのver.2といったところです。
#!/bin/bash
# セット名の定義
SET_NAME="ufw-blocklist"
SAVE_FILE="/etc/ufw/ipsets.save"
# 1. root権限チェック
if [[ $EUID -ne 0 ]]; then
echo "エラー: このスクリプトは sudo または root 権限で実行してください。"
exit 1
fi
# 保存用関数 (変更があった場合のみ呼び出し)
confirm_and_save() {
echo "------------------------------------------"
read -p "変更をファイルに保存しますか? ($SAVE_FILE) (y/n): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
ipset save "$SET_NAME" -f "$SAVE_FILE"
echo "保存完了しました。"
else
echo "保存をスキップしました。"
fi
}
# ipsetが存在しない場合に作成
if ! ipset list "$SET_NAME" > /dev/null 2>&1; then
echo "情報: $SET_NAME が見つからないため新規作成します。"
ipset create "$SET_NAME" hash:net
fi
while true; do
echo "=========================================="
echo " ipset 管理メニュー ($SET_NAME)"
echo "=========================================="
echo "1) ネットワーク帯/IP を追加 (例: 192.0.2.0/24 203.0.113.5)"
echo "2) ネットワーク帯/IP を削除"
echo "3) 現在のリストを表示 (list)"
echo "q) 終了"
echo "------------------------------------------"
read -p "番号を選択してください: " choice
case $choice in
1)
echo "【追加モード】追加したいNW帯を入力してください(空エンターでメニューに戻る)"
echo "例: 203.0.113.0/24 198.51.100.0/24"
changed=false
while true; do
read -p "追加対象: " targets
[ -z "$targets" ] && break
for target in $targets; do
if ipset add "$SET_NAME" "$target" 2>/dev/null; then
echo " [成功] $target を追加しました。"
changed=true
else
echo " [失敗] $target は既にあるか、形式が不正です。"
fi
done
done
[ "$changed" = true ] && confirm_and_save
;;
2)
echo "【削除モード】削除したいNW帯を入力してください(空エンターでメニューに戻る)"
changed=false
while true; do
read -p "削除対象: " targets
[ -z "$targets" ] && break
for target in $targets; do
if ipset del "$SET_NAME" "$target" 2>/dev/null; then
echo " [成功] $target を削除しました。"
changed=true
else
echo " [失敗] $target が見つからないか、形式が不正です。"
fi
done
done
[ "$changed" = true ] && confirm_and_save
;;
3)
echo "--- 現在の登録内容 ---"
ipset list "$SET_NAME" | grep -A 100 "Members:"
;;
q)
echo "終了します。"
exit 0
;;
*)
echo "無効な選択です。"
;;
esac
echo ""
done
試作版との違いは
まだ詰められる感じなのでもう少し続けます。
Powered by WordPress & Theme by Anders Norén