障害年金が入ったんだ。少しぐらい贅沢しても良いじゃ無いか。
今回は安安コース2980円+アルコール飲み放題980円を選択。
七輪で焼く焼肉は美味しい。
炭水化物を先に食べることで、食べ過ぎを防ぐという高度なテクニック。
食べ放題には向いていないけど。
しかし、美味しければ問題無い。
さて、今日、コレステロール値が高いと言われたので、少しお肉を控えて、運動するように心がけたいと思う。
はい。
俺の夜のマッタリ時間を返して欲しい。
ビジモネット回線設置から半年が過ぎたので、今の回線より安い値段で他のプロバイダに乗り換えできますよ、
という連絡を、夜8時に受けました。
焼肉から帰ってきて、良い感じに酔っ払っているこのタイミングに、である。
酔っ払っているときにそんな重要な話やめて。
どうやら話を聞くと、このままビジモネットを使い続けていても良いけど、高いっすよ。このタイミングで他のプロバイダに乗り換えた方が安くなりますよ、ということである。
ちなみに、これを言っているのは、引越しの時に回線引越しの手引きをしてくれた業者である。どうやらこの人はビジモネットの人ではないらしい。
で、そのあとにやったこと。
1.引越し前の回線解約料分のキャッシュバックを受けられるので、料金明細をFAXして欲しい。
2.NTT回線の転用手続きをして欲しい。今使用している回線は切り替え先プロバイダに引き継ぐための、その手続き。
完了したら案内番号を連絡。これは電話を受けたその場でやった。(もちろん酔っ払ってる状態)
ちなみに、回線工事料金は全て業者持ちでこちらの負担は無しとのこと。
3.ビッグローブから回線切り替え手続きの連絡が来るので、対応して欲しい。
これは今日やった。手続き完了。
4.ビッグローブからIDが発行されて、書類が自宅に届いたら、すでにビッグローブの回線が使えるので、モデムの設定を済ませて、繋がることを確認したら、ビジモネットに解約の連絡を入れる。
ネットが繋がらなくなる期間はないらしい。良き良き。
5.ビジモネットの解約手続きが完了したら、それを業者に連絡。
なお、ビジモネットの解約手数料も業者が負担してくれるらしい。
ちなみに、この回線切り替えでどれくらいコストが安くなるかというと、
今まで:NTT4925円+ビジモネット878円=5803円
切り替え後:ビッグローブ3980円(初回3000円、3年更新、解約手数料2万円)
1900円ぐらい安くなるみたいです。
ちなみに、ビッグローブを選択した理由は、特にありません。
@niftyが切り替え後の選択肢になかったので、適当に決めました。
いや、だから、酔っ払ってるときに重要な話しないでって言ったでしょ。
まぁ、また何か進展があったらご報告します。
どこか行きたい。

なんとかmasterも普通にクリアできるレベルになりました。
EXもフルコンできた曲増えてきたし。

いきなりこんな譜面出てきたときは、確実に初心者を殺しに来てると思いました。

難しそうで、慣れちゃえば、意外と簡単に行けるもんすよ。
指をクロスしなくちゃいけないけど。
親指じゃ厳しいかもしれない。
そして、とにかく最初はデッキの強化に努めるしかない。
スコアランクがA以上になればレアアイテム獲得できる確率が高くなる。
それまでは、ありったけのリソースを使ってデッキを強化するしかない。
ベテランルームに入れることができれば、また変わってくるかもしれない(←まだ入れない)

ライブボーナスの使用量を調整できるのは良いですね。
ライブボーナス残っていても、消費しないでプレイすることも可能。
練習し放題。
メルト選曲すると切断されがち。

前回はカメラのプレビュー画面をWebに表示させましたが、
今回はWebからシャッターボタンを設置して、カメラの画像を保存させます。
すでにPOSTリクエストを処理する方法も知っていますし、カメラの画像を保存する方法も知っているので、これらを組み合わせればできるはずです。
まずはサーバ(ラズパイ)の処理。
def do_POST(self):
content_len = int(self.headers.get('content-length'))
requestBody = json.loads(self.rfile.read(content_len).decode('utf-8'))
if requestBody['contents']['command'] == 1:
_, img = cap.read()
dt_now = datetime.datetime.now()
filename = dt_now.strftime('%Y%m%d_%H%M%S')+".jpg"
cv2.imwrite(filename, img)
response = {
'status' : 200,
'path': "http://pi4.local:8000/" + filename
}
else:
response = {
'status' : 200
}
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
responseBody = json.dumps(response)
self.wfile.write(responseBody.encode('utf-8'))
POST処理を追加しました。
カメラの画像をファイルに保存し、そのファイルパスをレスポンスで返すようなイメージです。
次はWeb側。
<!DOCTYPE html>
<html>
<head>
<title>My first Vue app</title>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="vue.min.js"></script>
<script src="jquery-3.5.1.slim.min.js"></script>
</head>
<body>
<div id="app">
<image id="camera" src="" /><br />
<button @click="onShutter">Shutter</button><br />
<a id="picture" href="" target="_blank">{{ path }}</a>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
timer: null,
param: {},
contents: {
command: 1,
},
path: "",
},
created: function() {
self = this;
this.timer = setInterval(function() {self.onLoad()}, 50)
},
methods: {
onLoad: function() {
axios.get('http://pi4.local:8000/Streaming').then(function(response){
$("#camera").attr('src', response.data.image);
}).catch(function(error){
});
},
onShutter: function() {
self = this;
this.param.contents = this.contents;
axios.post('http://pi4.local:8000/', this.param).then(function(response){
$("#picture").attr('href', response.data.path);
self.path = response.data.path;
}).catch(function(error){
});
}
}
})
</script>
</body>
</html>
ボタンとリンクを追加しました。
ボタンをクリックすると、onShutter処理が実行され、ラズパイ側にPOSTリクエストを送信します。
そのレスポンスから画像のファイルパスを取得し、リンクに反映させます。
同じ仕組みで動画の撮影もできそう。
次回やります。
ここもサクッと作成できると思う。
namespace App\Repository;
use App\Model\EatingHistoryItem;
class EatingManagementRepository
{
private $templateParamNames = ['item', 'protein', 'liqid', 'carbo', 'calorie'];
/**
* ヒストリにデータを1件追加する
*/
public function addHistory($param, $user)
{
$model = new EatingHistoryItem();
foreach($this->templateParamNames as $name)
{
$model->$name = $param[$name];
}
$model->save();
$this->attachToUser($model, $user);
}
class ApiController extends Controller
{
/**
* データを1件登録する
*/
public function add(Request $request)
{
$paramNames = $this->eatingManagement->getParam();
$param = [];
foreach($paramNames as $name) {
$param[$name] = $request->contents[$name];
}
$this->eatingManagement->add($param, Auth::user(), $request->contents['timezone']);
$this->eatingManagement->addHistory($param, Auth::user());
return response()->json();
}
入力したデータをそのまま履歴にも記入する、という処理ですな。
ここまではサクッとできたけど、次回からはかなりヘビーになると思う。

画像はWeb検索して、見つけたフリー素材を使用しました。
で、これ多分、普通に表示するだけだと、画面からはみ出してしまうので。

これを上手く画面に収まるようにしたい。
見た感じ、画像の高さがはみ出ているので、高さの表示を画像に合うように拡大率を計算して、画像を縮小させたいと思います。
auto sprite = Sprite::create("ID003_Western-Castle_noon.jpg");
if (sprite == nullptr)
{
problemLoading("'ID003_Western-Castle_noon.jpg'");
}
else
{
// position the sprite on the center of the screen
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
// add the sprite as a child to this layer
this->addChild(sprite, 0);
}
auto scaleRate = visibleSize.height / sprite->getContentSize().height;
sprite->setScale(scaleRate);
auto str = String();
str.appendWithFormat("width %f height %f", sprite->getContentSize().width, sprite->getContentSize().height);
label->setString(str.getCString());

この画像の範囲をベースにして、画面を作っていきましょうか。
あ、画面をタップしたときにエフェクトかかるようにしたいなぁ。
次回やります。
明るければ良いってもんじゃ無いんだね。
オイラが使用しているNEC製のLEDシーリングライトはリモコンで部屋の明るさを4段階に調整できるんです。
今までは、ずっと一番明るい状態で使用していたんですが、
こないだ、少し明るさを暗くしてパソコン作業をしていたところ、いつもより目の疲れが無かったんですよね。
それで、部屋の明るさをいろいろ試してみた結果、以下のことが分かりました。
ディスプレイの画面を暖色にするには、f.luxというフリーソフトを使用しています。
これを常駐させて、起床時間や入眠時間を設定すれば、それに合わせて、例えば、寝る前の時間には暖色に変更する、といった設定ができるようになります。
あと、スマホの画面も、夜は暖色系にしてますし、夜は画面の明るさを暗めにしています。
そのようにしてからは、少し寝付きが良くなったような気がしています。
皆さんも生活スタイルに合わせて部屋の明るさを調節してみるのも良いかもしれないよ。
まだ動作は不安定だけど、とりあえず機能したので。

画面では2×2のエリアに小麦畑を設置し、中央にスプリンクラーを設置します。
この状態で小麦を刈り取ると、自動的に水を撒いて、小麦が成長、再び刈り取ることができます。
この刈り取った小麦を、チェストにアブソーバーを取り付けると、アブソーバーが小麦を吸い込んでチェストに格納してくれます。
あとは自動で刈り取る機構ですが、回転のこぎりを使用します。
ただ、壁を取り付けないと、勝手に変な方向に進んでしまうため、壁で囲っておく必要があります。
今回は壁が破壊されないようにトタンの壁を使用しましたが、他の壁ではどうなんでしょうかね?
これが意外なほど機能して、小麦が生長したところから回転のこぎりが刈り取ってくれるんです。
隣で農地を作成し、他の作物を栽培しながら過ごしていると、小麦がいつの間にか溜まっている、という寸法です。
もしかしたらスプリンクラーの設置位置を増やしたり、位置を調整すれば、アブソーバーの位置を調整すれば、もっと広くできるかもしれません。
ただ、チェストを回収すると、アブソーバーが消えるの、なんとかしてくれませんか?
まぁアブソーバー自体がテスト中だからね・・・
もうちょっと研究してみます。