月: 2023年11月 Page 2 of 3

ボードゲーム『Otaru 1899』開封と百均グッズによる収納。

「うちばこや」謹製のボードゲーム、『Otaru1899』到着したので、早速の開封です。

コンポーネント

緻密な木駒の美しさは相変わらず。カード類はアドオンのみとなっていて、厚めのしっかりとしたタイルで構成されています。

なにより目を引いたのがオプションで購入したメタルコイン。ずっしりした重さはゲームへの没入感バッチリです。

収納

元の箱に余裕があったので、収納の難易度は中程度。

  • 資源:Case and Case4分割
  • ワーカー:Case and Case 2分割の中身だけ
  • タイル類/金トークン/拡張:TCGケース(スリム)
  • メタルコイン:分割ピルケース
  • その他:タッパー

と、百均グッズで全て収納。

後は実際にプレイを繰り返して、改良をしていきます。

トランクと背景-1-(最初のトライ)

買い物中に、トランク型のストレージを見かけたので「同じ事ができないだろうか?」と試すことにしました。

うまい具合にちょうどいいサイズのトランクがありました。経年変化もナイスです。

試撮影

適当に小物を入れてみます。

座像のようなものは土台を利用して高さを合わせてみます。

手持ちの背景と併せるとこうなりました。

撮影して思ったこと

  • より「箱庭」感が増します。
  • 旅情感や「鞄から飛び出した」見せるディスプレイのようです。

その反面、全てにピントを合わせる分、撮影難易度は飛躍的に上がってきました。

面白い題材ではあるので、もう少し続けていきます。

RabbitMQを検証環境にインストール。

ちょっと検証が必要だったので、RabbitMQのインストールを行いました。

前提

以下の環境で動いています。

  • Ubuntu 20.04
  • Apache 2.4系

また、本件ではリバースプロキシ化も実施するので、

  • それに合わせたドメイン
  • ドメインに沿った証明書

をインストール済みです。

さっくりとした手順

  1. レポジトリを追加します。
  2. RabbitMQをインストールします。
  3. 管理コンソールを有効化します。
  4. 管理コンソールのリバースプロキシ化させます。
  • 参考にしたWebサイト

https://www.vultr.com/docs/install-rabbitmq-server-ubuntu-20-04-lts/

レポジトリを追加します。

  • RabbitMQ追加
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
 echo "deb https://dl.bintray.com/rabbitmq-erlang/debian focal erlang-22.x" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

インストールを実施します。

  • レポジトリを追加したのでパッケージのアップデート
sudo aptitude update
  • RabbitMQのインストール
sudo apt-get install rabbitmq-server -y --fix-missing
  • インストール確認
systemctl status rabbitmq-server.service 

Active(Running)を確認します。

  • サービス有効化
sudo systemctl enable rabbitmq-server

RabbitMQの管理コンソールを有効化します。

  • コンソール有効化
sudo rabbitmq-plugins enable rabbitmq_management
  • 管理者とパスワード設定
sudo rabbitmqctl add_user admin password

ユーザー名(admin)やパスワード(password)は環境に合わせて適切なものを設定してください。

  • 管理権限付与
sudo rabbitmqctl set_user_tags admin administrator

adminの部分はユーザー名を指定します。

  • 管理コンソールアクセス確認

ブラウザから

http://サーバのIP:15672

と入れることでログインできるようになります。

リバースプロキシの実施

  • ログ格納ディレクトリの追加
sudo mkdir /var/log/mq_console

適切なディレクトリを指定してください。

  • ディレクトリの所有者変更
sudo chown www-data:www-data mq_console
  • 設定ファイル作成
  • 作成するファイル(要管理者権限)
/etc/apache2/site-available/rabbitmq.conf
  • 作成内容
<VirtualHost _default_:80>
    # ドメイン名を指定します
    ServerName 【hoge.example.com】
    # HTTPアクセスを強制的にHTTPSにリダイレクトします
    RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost _default_:443>
    # ドメイン名を指定します
    ServerName 【hoge.example.com】
    # アクセスログを指定します
    CustomLog /var/log/mq_console/console_access.log combined 
    ErrorLog /var/log/mq_console/console_error.log

#SSL設定
  SSLEngine on
   # SSLを有効化します
    Protocols h2 http/1.1

# SSL証明書を指定します
SSLCertificateFile /etc/certs/hoge.example.com.crt
# 秘密鍵を指定します
SSLCertificateKeyFile /etc/private/hoge.example.com.key

    # Header に Host: example.com を追加するため
    ProxyPreserveHost On
    # HTTPS利用時: Header に x-forwarded-proto: https を追加するため
    RequestHeader set x-forwarded-proto 'https'

    ProxyPass / http://localhost:15672/
    ProxyPassReverse / http://localhost:15672/


</VirtualHost>

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off
  • 設定ファイル追加
sudo a2ensite rabbitmq.conf
  • 設定確認
sudo apache2ctl configtest

Syntax OKを確認します

  • Webサービス再起動
sudo systemctl restart apache2.service
  • アクセス確認

ブラウザから

設定したドメインにアクセスし、以下の画面を確認します。

  1. 設定した管理者アカウントでログインできること
  2. 以下の管理コンソールが出ること

PHPモジュール一覧を表示するスクリプト。

Webアプリをサーバに設置する際、有効、無効になっているモジュールの一覧が欲しいときがあります。

そういうときはphp.infoを使うのが手っ取り早いとは思いますが、セキュリティ上、それらをWebサイトに設置するのは好ましくありません。

そこで、以下のスクリプトをChatGPTに指示しながら出力しました。

スクリプト

  • php_modules.sh
#!/bin/bash

echo "PHP モジュール一覧を表示します。以下のオプションを選択してください。"
echo "0(またはエンターのみ): 全ての一覧を表示"
echo "1: 有効なモジュールのみを表示"
echo "2: 無効なモジュールのみを表示"

read -p "選択: " choice

case "$choice" in
  1)
    echo -e "\n有効なモジュールのみ表示:"
    enabled_modules=$(php -r '$count=0; $modules = get_loaded_extensions(); sort($modules); foreach ($modules as $extension) { if (extension_loaded($extension)) { echo $extension . ": Enabled\n"; $count++; } } echo $count;')
    echo "有効なものは${enabled_modules}件です"
    ;;
  2)
    echo -e "\n無効なモジュールのみ表示:"
    disabled_modules=$(php -r '$count=0; $modules = get_loaded_extensions(); sort($modules); foreach ($modules as $extension) { if (!extension_loaded($extension)) { echo $extension . ": Disabled\n"; $count++; } } echo $count;')
    echo "無効なものは${disabled_modules}件です"
    ;;
  *)
    echo -e "\n全てのモジュールを昇順で表示:"
    php -r '$modules = get_loaded_extensions(); sort($modules); foreach ($modules as $extension) { echo $extension . ": " . (extension_loaded($extension) ? "Enabled" : "Disabled") . "\n"; }'
    ;;
esac
  • スクリプトに実行権限付与
chmod +x php_modules.sh

スクリプトの動き

  • 実行
./php_modules.sh
  • 実行結果抜粋
PHP モジュール一覧を表示します。以下のオプションを選択してください。
0(またはエンターのみ): 全ての一覧を表示
1: 有効なモジュールのみを表示
2: 無効なモジュールのみを表示
選択: 

全てのモジュールを昇順で表示:
Core: Enabled
FFI: Enabled
(略)

と、これでモジュールのチェックを事前に行うことが可能になりました。

Tips:apacheバーチャルサイトのオフオン(切り替え)

ちょっとした小技が役立ったのでメモに残しておきます。

環境

  • Ubuntu 20.04系
  • Apache 2.4系

で、バーチャルサイトでサイトを検証していました。

背景

検証で動かしているWebアプリAがaaa.hoge.comで動いていました。

そこに、同じ環境でWebアプリBを動かす需要がありました。

本来なら、DNSで

  • aaa.hoge.com
  • bbb.hoge.com

とするところ、

  • DNS登録が間に合わない
  • 2つ同時に動かせるようなスペックではない

という背景がありました。そこで、「一度WebアプリAを無効にしつつ、WebアプリBをaaa.hoge.com」として動かすようなすり抜けを使いました。

さっくりとした手順

  1. WebアプリAの設定ファイルを無効化します。
  2. WebアプリBの設定ファイルを作成します。
  3. WebアプリBを有効にします。

前に動いているサイトの無効化

sudo a2dissite app_a.conf

sudo systemctl restart apache2.service

WebアプリB用の設定ファイル作成

  • /etc/apache2/sites-available/app_b.conf

に以下のように作っていきます。

略
<VirtualHost *:443>
    # ドメイン名を指定します
    ServerName aaa.hoge.com
    # アプリB用のログディレクトリを指定します。
    CustomLog /var/log/nextcloud/nextcloud_access.log combined
    ErrorLog /var/log/nextcloud/nextcloud_error.log

    # アプリB用のドキュメントルートディレクトリを指定します。
  # アプリAno参照ドキュメントとは違うディレクトリにします
    DocumentRoot /home/www-data/nextcloud
    <Directory /home/www-data/nextcloud>
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>
略

サイトBを有効化します。

sudo a2ensite app_b.conf

sudo apache2ctl configtest

sudo systemctl restart apache2.service

動作を確認します。

aaa.hoge.com(など、今までアプリAが動いていたサイトのドメインで)アプリBのサイトが動くようになれば成功。

一時的な手段ではありますが、効果はありました。

合間のソロゲー。

週末、様々な作業の裏でやっていたソロのボードゲームです。

ダイスセトラーズ

「思いっきりダイスを振りたい」ということでセレクト。

久しぶりにプレイして勘が取り戻せなかった&ボットに高得点の土地を取られて敗北。

クランズ・オブ・カレドニア

こちらの記事を書いているさなか、「キッチリと文書通りに動くか」の検証のためにプレイしました。

最初は176点取れたと思っていましたが、ラウンドごとの栄光点に誤り。「1つごとに2点/3点」ではなく、「2つごとに」だったため、147点と、ギリギリ熟練者でした。

ただ、これに関しては戦略のコツがつかみかけてきたのでまだ余地はあります。

ヌースフィヨルド

船を造らず漁獲量を増やしていくコンボのお陰で19金を得られたのですが、いかんせん、船の点数が取れなかったのが足を引っ張りました。

まだまだ楽しめるソロゲーはあるので、新作は余り手を出さずに既存策で遊んでいるという形です。

本と教室。

このスタジオツアーに訪れたことがきっかけで、「もう一度『ハリー・ポッター』シリーズを履修したい」って気概が生まれました。

そのさなか、「室内の撮影にも使える」と思って手に入れたのがこちらです。

レゴ:『魔法薬学』

レゴブロックと『ハリー・ポッター』シリーズのコラボ品。劇中に出て来た魔法薬学の教室を組み立てるというものです。

開封

中はざっとこんな感じ。これを組み立てていきます。

組み立て

教室の壁となる本の表紙を組み立て

壁や仕切りもできあがっています。薬品ボトルの一部はブロックで表現です。

完成

完成にそれほど時間は掛かりませんでした。

劇中での雰囲気をそのままにレゴに落とし込まれたという形です。

変形収納

最大の特徴はこのように全てが本の一部として収納できること。

普段はコンパクトで、展開も簡単というギミックは気に入りました。

背景としての転用

そして、「魔法薬学」を最初に選んだのはこの錬金術としての背景に使えるという目論見からでした。

その目論見は当たったのが嬉しいところです。

ボードゲーム『クランズ・オブ・カレドニア』ソロプレイのルール確認。

ソロプレイ時にルールブックを参照しすぎたため、紙の劣化が激しくなってきました。そのため、ここに記します。

ソロプレイ時のセットアップ

ソロゲームの違い

  • ソロ専用の特殊ダイスを2つ用います。
  • 交易ボーナスは発生しません。
  • 特殊ダイスによって相場が変わります。
  • ソロ専用のスコアがあります。
ソロゲームで用いる特殊ダイス

準備

  1. マップは2人用に準拠します。霧がかかったエリアを使うことはできません。
  2. 市場ボード/輸出ボードは2人用を用います。
  3. ソロプレイ用の輸出ボックスタイルを使います。
  4. 氏族とスタートタイルの組み合わせは2つ用意して、どちらか1つを決めます。
  5. 配置コスト「£1」の部分に、別の色の駒を置きます。その駒にプレイヤーは駒を置くことはできません。
  6. プレイヤーは、別の色の駒が置かれたエリア以外のところに配置してゲームスタートです。
£1で置ける安いエリアは塞がれます。ただでさえ厳しい資金繰りが更に辛くなります。

ゲーム進行

ラウンドは通常通り行います。改良を2つ連続で行うといったアクションを連続で行うことが可能です。売買を行った場合に、市場価格を変動させるのを忘れないようにしましょう。

パスを行った場合、ボーナスとして£16を得ます。

パスのあと、通常通り生産とラウンドごとの得点計算を行います。

追加フェイズ-1- 市場フェイズ

2〜5ラウンドの開始時、「市場フェイズ」が追加されます。特殊ダイスを2つ振ります。

商品が書かれたダイスの分、+3〜-3まで書かれたダイス:その値分だけ、以下のルールに従って上下します。

  • ダイスで出た商品が市場ボードの中間価格(〔〕でくくられたエリア)にある場合:
    • もう一つのダイスの出目に従い、価格を上下させます。(+2が出たら2上昇、-1だったら1下降)
  • ダイスで出た商品が市場ボードの高価格帯(〔〕でくくられたエリアより上)にある場合:
    • + / - の値は無視し、出た数だけ商品価格を下げます。
  • ダイスで出た商品が市場ボードの低価格帯(〔〕でくくられたエリアより下)にある場合:
    • + / - の値は無視し、出た数だけ商品価格を上げます。
この例の場合、羊毛の価格が-3されます。

この手順を3回繰り返します。このフェイズ中、この方法で価格の変動があった商品があった場合、もう一度商品ダイスのみを振り直します。

追加フェイズ-2- 輸出契約の補充フェイズ

まず、輸出ボードのすべてのマスに輸出契約タイルを補充します。

次に追加フェイズ1で最後に振った+ / - のダイスの出目を確認し、その目に対応するタイルを取り除きます。(例:+2の場合、中断の右のタイルが取り除かれます)

得点計算

5ラウンドが終了したら、上記の追加フェイズは行わず、最終得点フェイズに入ります。

以下の独自ルールがあります。

輸出の追加得点

達成した契約の数に応じて追加の勝利点を得ます。

  • 輸出契約を7つ以上履行した:12勝利点
  • 輸出契約を6つ履行した:8勝利点
  • 輸出契約を5つ履行した:4勝利点

4つ以下の場合の追加勝利点はありません。

入植地の追加得点

2〜4人時と異なり、「船舶輸送力でつながっている入植地のひとかたまり」を参照します。(つまり、川や湖で離れた箇所でも、ゲーム中に得た輸送能力が繋がっていれば“つながっている”とみなします)

  • 14以上の入植地:18勝利点
  • 11〜13の入植地:12勝利点
  • 8〜10の入植地:6勝利点

7以下の場合の追加勝利点はありません。

得点ごとに得られる称号

上記の追加得点を考慮した上で、以下の称号を得ます。

獲得勝利点得られる称号
0〜115初心者
116〜130新人
131〜145平均的
146〜160熟練者
161以上天才!

スコアテンプレート

https://barrel.reisalin.com/books/1ff8a/page/ea5d2

こちらにスコア用のテンプレートを用意しています。マークダウン形式でエクスポート可能です。

古地図と背景。-百均グッズの撮影用小物(その51)-

シンプルに使い出のいいものが手に入ったという形です。

古地図風ペーパー

インテリアペーパーなるもの。古紙風の紙で作られていて、質感があります。

これはフィギュア撮影用の風景に使えそうだと思いました。

位置調整

サイズ的にもぴったりだとわかったので、撮影してみます。

1/7での撮影

落ち着いた色合いが被写体を引き立ててくれました。

他スケール

1/6やねんどろいどにも併せられました。

今後のシンプル背景に新たな選択肢が加わりました。

ボードゲーム『アグリコラ』ソロキャンペーンルール確認。

体に染みついているルールではありますが、改めてメモに残しておきます。

準備

  • ボードは1~2用に基づきセットアップを行います。
  • そのため、以下のアクションスペースは用いません。
    • 小さな森/林
    • 資材市場
    • 窪地
    • 授業(2つめ)
    • 小劇場
  • 大進歩カードを所定の場所に置きます。
  • アクションスペースカードを用意します。
  • 資源を分かりやすい場所に置いておきます。(自分の資源と混ざらないようにしましょう)
  • 農場ボードに家族(ワーカー)を2人、木の部屋に配置します。
  • それ以外のワーカー/柵/厩は脇に置いておきます。
  • 職業カードのうち、「3+」及び「4+」と書かれたものは予め箱にしまっておきます。
  • アクションスペース「森」には、木は3つではなく2つ置かれます。\
  • プレイヤーは、食料を持たずにスタートします。

初期カードについて

以下のどちらかを選びます。

  1. 職業カードと小進歩カードをシャッフル後、7枚ずつ引く。
  2. 職業カードと小進歩カードをシャッフル後、10枚引いた後に3枚を取り除く。

ゲーム進行

  1. 手番の交代は(当然)行われません。ラウンド中にワーカーを設置したら次ラウンドのアクションスペースカードが置かれます。
  2. 累積資源スペース「森」に木を置くとき、3個ではなく2個置きます。
  3. 収穫フェイズ中、家族(ワーカー)1人につき、3食料を支払います。
  4. 次のプレイヤーに「移動する」小進歩カードは、使った後にゲームから取り除かれます。
  5. 14ラウンド終了後、ゲームは終了します。

スコア

2人以上と同じように計算します。

オプションルール

  • 職業カードや小さい進歩カードは自由に選ぶこともできます。
  • ステージごとのアクションスペースカードの順番は予め決めることができます。

ソロキャンペーンモード

全8ゲームにわたるソロキャンペーンモードが用意されています。

キャンペーン基本ルール(最初のプレイ)

  1. 全8ゲームに渡ってゲームを行います。
  2. ソロプレイと同じく、食料は0からスタートします。
  3. 職業と少進歩7枚ずつをランダムに手元に置いておきます。(3+ / 4+の職業カードは使えません。
  4. 最初のゲームは50点を超えないと「クリア」と見なされません。

キャンペーン基本ルール(2ゲーム目以降)

  1. ゲームごとに、後述する「目標点」を超えた点数を2で割った数(余りは切り捨て)の数に等しい食料を受け取ることができます。(例えば1ゲーム目で55点取った場合、5÷2(余り切り捨て)で2食料が渡されます)
  2. 前ゲームで出した職業カードのうち、1枚をゲーム開始時に出すことができます。この効果は残りのゲーム中永続します。

ゲームごとの目標点

  • 1ゲーム目:50点
  • 2ゲーム目:55点
  • 3ゲーム目:59点
  • 4ゲーム目:62点
  • 5ゲーム目:64点
  • 6ゲーム目:65点
  • 7ゲーム目:66点
  • 8ゲーム目:67点

キャンペーンルール備考

  • 資源を受け取ることができる職業を「引き継ぎボーナス」で出した場合、ゲーム開始時にそれらを受け取ります。(例:《大鎌使い》は即座に小麦1を受け取ります)
  • 逆に、資源を支払う必要がある職業を「引き継ぎボーナス」で出した場合、それらを支払わなければ効果は発揮しません。(例:《屋根付け》で食料が支払えない場合)
  • 職業を順番を参照するカード(《家庭教師》など)は、永続しているゲームの順番通りに置かれます。
  • そのため、各ゲームが終了するたびに、得点だけでなく出した職業の順番を記録しておきましょう。

Page 2 of 3

Powered by WordPress & Theme by Anders Norén