休日、机周りの環境を整理しました。

ボードゲーム用のプレイマットを引いて見た目をリニューアル。
ポインティングデバイスがトラックボールのため、この素材でも十分実用に足りると判断。
また、このトラックボールは一度おいてしまえば動くことがありません。なので、周囲に様々なものをおけるメリットがあります。

そこで、ボードゲーム用のカードスタンドを用いて『キャラホメ』のスペースを新設。
機能性を維持したままこういう場ができたので満足です。
『ライザのアトリエ2』のようなレシピ変化による投入回数の増加とステータス強化のインゴットをフル投入するやり方ができなくなっている今作。
それでも、しっかりと強化はできました。ここではライザの武器『スパークルレヴァリエ』を調合した時の記録を残します。
これを元に中和剤でのループや特性の統合を用いていきます。
ゴルドテリオンは材料に「燃料」を含むので、先のゼッテル(効果:燃料)効果が役立ちます。
この時、超特性「超濃度」を加えることで特性値を上昇。調合時のアイテム投入を相対的に減らしていきます。
が準備できたら調合開始です。
スーパーレアの鍵を使ってレシピLv.3まで上げます。リンクコールを使って効果変化。「アイテム短縮」を付与します。
リビルドで残りの効果・特性を解放。超特性は今回は「ウルトラスキル」を選択しました。
アイテムを投入して武器を強化します。付与効果
の2つを選択。残りはステータスが上がりそうなアイテムを適当に選択です。
同じ武器でも見違える強さになりました。
前作と勝手がかなり違うものの、
の流れは変わらぬものでした。
このスパークルレヴァリエは『ライザのアトリエ2』におけるライザの最強武器(DLCを除く)
ステータス絵を元にしたフィギュアにも用いられているほど看板的な武器となっています。
攻略が進んでいる『ライザのアトリエ3』。1週間ほど経った所感をネタバレ薄めで書いておきます。
2でのエッセンス強化やEV調合がこれに相当しているという形。
ことも加わり、中盤以降から調合のギアの速度が上がってきた形です。
1と2では
していくことで尋常ではないステータスの武器/防具/装備品を作ることができましたが、今回はできなくなっています。(影響拡大効果の素材や中間素材も少なめというのも拍車をかけています)
そのため、より装備の厳選が必要と言えます。
2023/04/01現在、4つのワールドをクリアしていった段階。それぞれ、キャラクターや世界観が深く掘り下げられていて2の「ライザとその周りの人間関係」だけでなくなっていました。
個人的に、1での両親との関わりがとても深くなっていたのが好印象です。
アトリエシリーズは
のサイクルが楽しいゲームという印象。その全てに鍵が横断して関わってくるのはなかなかに強烈です。
までは実施。いよいよ佳境です。ここまで40時間以上かかっていますがゲームクリアまで進む気配が見えないしサブクエストは沢山。その上、実績も半分ほど。
クリアはいつまでかかるのかが悩みどころです。
定額制のLightsailを利用しているとはいえ、ドルベースで請求されるので相場観は気になる数字です。
そこで、ドル円の相場をスクリプトベースで取得することにしました。
【Linux】ドル円為替情報をwgetコマンドで取得する
https://www.mtioutput.com/entry/fx-info-wget
以下のように訊いてみました。
以下を満たすシェルスクリプトを書いてください。
1. 以下のコマンドを実行する
wget -O - -U "" http://www.gaitameonline.com/rateaj/getrate 2> /dev/null
2. コマンド実行時の日時を取得する。
3.USDJPYを含む以下を抽出する。(以下は1のコマンド抜粋)
{"high":"132.86","open":"132.86","bid":"132.54","currencyPairCode":"USDJPY","ask":"132.55","low":"132.49"}
4. 以下のように改行して並び替える。この時、:以外の記号を取り除く。
currencyPairCode:USDJPY
open:132.86
high:132.86
bid:132.68
ask:132.69
low:132.50
4. 次のように言葉を変えて表示する。
yyyy/mm/dd hh:mm 現在のドル円相場は以下の通りです。
open:132.86
high:132.86
bid:132.68
ask:132.69
low:132.50
そこからいくつかの質疑応答や機能追加、そして手動による修正をを繰り返しました。
最終的にできあがったのがこちらです。
#!/bin/bash
# fx_info.shは、外国為替相場の情報を取得し、現在のレートを表示するシェルスクリプトです。
# USD/JPYをデフォルトの通貨ペアとして使用しますが、他の通貨ペアにも簡単に変更できます。
# また、同じディレクトリに相場.csvを作成。相場の履歴を追うことも可能です。
# 参照するURLは外為オンラインの情報です。
#### 変数定義ここから #####
# 通貨ペアを変数化する。
# USDJPY=ドル円
# EURUSD=ユーロドル
# など、以下のURLに沿ったものを指定
currency_pair="USDJPY"
#### 変数定義ここまで ####
# 1. コマンドを実行してデータを取得し、標準エラー出力を/dev/nullにリダイレクトする。
data=$(wget -O - -U "" http://www.gaitameonline.com/rateaj/getrate 2> /dev/null)
# 2. 現在日時を取得する。
date=$(date '+%Y/%m/%d')
time=$(date '+%H:%M')
# 3. 指定された通貨ペアの情報を取得する。
currency_data=$(echo "$data" | grep -o '{"high":"[0-9]*\.[0-9]*","open":"[0-9]*\.[0-9]*","bid":"[0-9]*\.[0-9]*","currencyPairCode":"'$currency_pair'","ask":"[0-9]*\.[0-9]*","low":"[0-9]*\.[0-9]*"}')
# 4. 必要な情報を取り出し、並び替える。
currencyPairCode=$(echo "$currency_data" | grep -o 'currencyPairCode":"'$currency_pair'"' | cut -d ':' -f 2 | tr -d '"')
open=$(echo "$currency_data" | grep -o 'open":"[0-9]*\.[0-9]*"' | cut -d ':' -f 2 | tr -d '"')
high=$(echo "$currency_data" | grep -o 'high":"[0-9]*\.[0-9]*"' | cut -d ':' -f 2 | tr -d '"')
bid=$(echo "$currency_data" | grep -o 'bid":"[0-9]*\.[0-9]*"' | cut -d ':' -f 2 | tr -d '"')
ask=$(echo "$currency_data" | grep -o 'ask":"[0-9]*\.[0-9]*"' | cut -d ':' -f 2 | tr -d '"')
low=$(echo "$currency_data" | grep -o 'low":"[0-9]*\.[0-9]*"' | cut -d ':' -f 2 | tr -d '"')
# 5. 結果を表示する。
echo "$date $time 現在の${currencyPairCode}相場は以下の通りです。"
echo "始値:$open"
echo "高値:$high"
echo "売値:$bid"
echo "買値:$ask"
echo "安値:$low"
## 以下はファイルに書き込むための処理。
# ファイル名を${currencyPairCode}.csvとする。
filename="${currencyPairCode}.csv"
# ファイルが存在しない場合は、ファイルにヘッダーを書き込む。
if [ ! -e "$filename" ]; then
echo "実行日,実行時刻,相場,始値,高値,売値,買値,安値" >> "$filename"
fi
# ファイルにデータを追記する。
echo "${date},${time},${currencyPairCode},${open},${high},${bid},${ask},${low}" >> "$filename"
chmod +x fx_info.sh
./fx_info.sh
2023/03/30 13:41 現在のUSDJPY相場は以下の通りです。
始値:132.86
高値:132.86
売値:132.56
買値:132.57
安値:132.45
cat USDJPY.csv
実行日,実行時刻,相場,始値,高値,売値,買値,安値
2023/03/30,13:29,USDJPY,132.86,132.86,132.60,132.61,132.45
2023/03/30,13:31,USDJPY,132.86,132.86,132.60,132.61,132.45
2023/03/30,13:41,USDJPY,132.86,132.86,132.56,132.57,132.45
これで、ブラウザを開くことなく情報を表示することができるようになりました。
諸条件が揃えば、役に立つツールであると判明です。
最初は左から
という順番でやっていました。ですが、以下の問題が判明。
ロック画面から戻るときはEnterで十分でした。
特にEnterを実行したらWindowsロックが走ることもしばしば。
そこで、運用を替えます。
左から
に変更し、更に、オートマ車を運転するときのように「左足は固定して右足だけで操作する」に変更です。
ロック時のキーを左端にすることで踏み間違いが減りました。また、固定した左足があるので、一番踏みにくいペダルになります。
マグカップを持っての中座が多いので、手を使わずに画面をロックできるアドバンテージは大きいです。
Shift も Ctrlも小指で操作することが多いので、これを変わりに足で操作。慣れてしまえば指の負担がものすごく減りました。
条件
が揃えば、このデバイスは入力効率がとても高まると判明。もう1つの購入も検討に入ります。
新たな入力デバイスに手を出しました。
こちらの分割キーボードを購入したところから以下の商品を購入です。
エディタをviからnanoに変えたことが大きいです。
こちらはCtrlを多用するため、小指の負担を少しでも減らそうと言う試みでした。
また、業務中に
の入力機会は特に多いので、これらを自動化してしまおうというのもあります。
設定はとても簡単に行えました。
このように、ペダルに割り当てるアクションを割り当てるだけです。
思った以上に便利ではありますが、
というところ。もう少し体が慣れてから改めて感想を書こうと思います。
『ライザのアトリエ2』で培った知識がここでも使えました。
コアアイテムであれば
装備品であれば
等の特性を1つにまとめたいケースに対するちょっとしたテクニックです。
また、中和剤・赤の特性を中和剤・緑などに移し替えるときにも役立ちます。
全ての特性を引き出すことができるだけの
が条件です。(回数や属性値は鍵の底上げも考慮してください)また、材料として
は多用します。
ここでは
を用意しました。レベルのある特性はループさせて全開にしておきます。
このとき、「品質上昇++」をループに組み込んでおけばループの過程で中和剤自身を品質上限まで上げられます。
引き継ぎ特性の時に統合した特性を選んでいきます。
引き継ぎ特性はゼッテルで統合させたものを選びます。
これによって、各種中和剤から抽出した特性を統合した「水」ができあがりました。
全ての中和剤は「水」を必要としているので、ここまで来れば
まで一本です。
また、採取道具や他の調合素材は中和剤の原料となる素材を追加することが可能です。
動物素材や金属から特性を移し替えることもできますので、このテクニックは覚えておくと便利です。
『ライザのアトリエ2』と同様の「同じ色の中和剤による特性の強化ループ」が有効でした。
中和剤・黄のパターンで説明します。
このことから、「鉱石を付与した中和剤・黄を投入することで特性Lvが上昇していく」ループを組み込むことができます。
上記の中和剤・黄でやってみます。
調合画面で中和剤・黄を選びます。
ここでは分かりやすく「品質上昇」を入れます。
(絞り込み検索が便利です)
効果2の(鉱石)付与を用います。
引き継ぎ特性で先ほどの品質上昇系を選択します。(品質上承継では特性全てを解放させればループが短くなります)
同じ中和剤・黄を選択します。
この、複数がポイントです。たとえ最初の特性Lv.が1だとしても、できた数だけ(基本は4)投入していけば
4 → 16 → 64
とLvは爆発的に上昇していきます。(この回数をいられるよう、スキルツリーで投入数は増やしていきましょう)
先ほどよりも特性レベルや品質が上昇していくのが分かります。
ループには、この中和剤のみならずその他の原料も採取が必要です。
最終的に品質上昇++だけでこの結果になりました。
中和剤は基本的な材料の代わりが可能なので、これを覚えておけば、ある程度の特性や品質を上げていくことができます。
こちらのスクリプトを修正しました。(正確にはChatGPTに修正してもらいました)
#!/bin/bash
# インストールされているパッケージの一覧を取得して別ファイルに出力します。
now=$(date +%Y%m%d)
dpkg-query -W > installed_packages_$now.txt
# aptitude updateを行います。
aptitude update
# updateの結果:
if aptitude search '~U' | grep -q '^i'; then
# 対象パッケージ,変更前バージョン,変更後のバージョン を記入した日付付きのファイルを作成。
now=$(date +%Y%m%d)
upgraded_packages=$(mktemp)
# パッケージのキャッシュをクリアした上でパッケージアップグレードを実施。
aptitude clean
aptitude -y full-upgrade | tee $upgraded_packages >/dev/null
# パッケージ一覧からの差分を別ファイルで作成。(実行日の日付を付与)
new_packages=$(mktemp)
dpkg-query -W > $new_packages
diff -u installed_packages_$now.txt $new_packages > package_diff_$now.txt
# 新しいパッケージ名を取得
DIFF_FILE="package_diff_$now.txt"
NEW_PACKAGES=$(grep -E "^\+[^+]" $DIFF_FILE | awk '{print $1}' | cut -c 2-)
# 変更されたパッケージの数と、新しいバージョンのパッケージ名のリストを表示
UPDATED_PACKAGES=$(echo "$NEW_PACKAGES" | wc -l)
echo "$UPDATED_PACKAGES 件のパッケージに変更がありました。以下のパッケージが更新されました:"
echo "$NEW_PACKAGES"
# checkrestartを実行して結果を取得
now=$(date +%Y%m%d)
checkrestart_output=$(checkrestart)
# サービスを再起動する必要のあるプロセスを抽出してファイルに出力
restart_services=$(echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | awk '{print $NF}' | sort -u)
if [[ -n "$restart_services" ]]; then
# ファイル名に日付を追加
now=$(date +%Y%m%d)
filename="restart_services_$now.txt"
echo "以下のサービスを再起動してください:" >> "$filename"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$" >> "$filename"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$" >> "$filename"
echo "以下のサービスを再起動してください:"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$"
else
echo "再起動するサービスはありません"
fi
fi
+ # 新しいパッケージ名を取得
+ DIFF_FILE="package_diff_$now.txt"
+ NEW_PACKAGES=$(grep -E "^\+[^+]" $DIFF_FILE | awk '{print $1}' | cut -c 2-)
+
+ # 変更されたパッケージの数と、新しいバージョンのパッケージ名のリストを表示
+ UPDATED_PACKAGES=$(echo "$NEW_PACKAGES" | wc -l)
+ echo "$UPDATED_PACKAGES 件のパッケージに変更がありました。以下のパッケージが更新されました:"
+ echo "$NEW_PACKAGES"
これによって、アップグレードするパッケージを明確化させました。
「どこまで自動化できるか」が課題となります。パッケージによっては設定ファイルを残すかどうかのウィザードが表示されるので、それに対する自動実行までいけたらと思います。
脆弱性などに対応するため、Linuxサーバのパッケージを最新に保つことは重要です。
ですが、どこかでトラブルが発生した際に「どのパッケージを更新してから異常が発生したか」の履歴を追うことも必要。
そこで、以下のシェルスクリプトをChatGPTに尋ねながら作ってみました。
ChatGPTに要求した要件は以下の通りです。
かなりの試行を重ねて以下のスクリプトができあがりました。
#!/bin/bash
# インストールされているパッケージの一覧を取得して別ファイルに出力します。
now=$(date +%Y%m%d)
dpkg-query -W > installed_packages_$now.txt
# aptitude updateを行います。
aptitude update
# updateの結果:
if aptitude search '~U' | grep -q '^i'; then
# 対象パッケージ,変更前バージョン,変更後のバージョン を記入した日付付きのファイルを作成。
now=$(date +%Y%m%d)
upgraded_packages=$(mktemp)
# パッケージのキャッシュをクリアした上でパッケージアップグレードを実施。
aptitude clean
aptitude -y full-upgrade | tee $upgraded_packages >/dev/null
# パッケージ一覧からの差分を別ファイルで作成。(実行日の日付を付与)
new_packages=$(mktemp)
dpkg-query -W > $new_packages
diff -u installed_packages_$now.txt $new_packages > package_diff_$now.txt
# checkrestartを実行して結果を取得
now=$(date +%Y%m%d)
checkrestart_output=$(checkrestart)
# サービスを再起動する必要のあるプロセスを抽出してファイルに出力
restart_services=$(echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | awk '{print $NF}' | sort -u)
if [[ -n "$restart_services" ]]; then
# ファイル名に日付を追加
now=$(date +%Y%m%d)
filename="restart_services_$now.txt"
echo "以下のサービスを再起動してください:" >> "$filename"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$" >> "$filename"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$" >> "$filename"
echo "以下のサービスを再起動してください:"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep -v "restart$"
echo "$checkrestart_output" | awk '/^(These are the systemd services|These are the initd scripts)/{flag=1;next}/^$/{flag=0}flag' | grep "restart$"
else
echo "再起動するサービスはありません"
fi
fi
記入後、以下を実施します。
sudo chown root:root update-packages.sh
# root権限で実施するため
sudo chmod 744 update-packages.sh
sudo bash update-packages.sh
を実行後、
という結果が出ました。
等は実施したいです。
Powered by WordPress & Theme by Anders Norén