今話題のブルースカイ (bsky )でも更新情報をつぶやくようにしました。
最近何かと話題のブルースカイ(ぶるすか)
https://bsky.app/
管理人も先日アカウントを開設しまして
せっかく始めたからには…X(旧ツイッター)がいつなくなってもいいように
更新情報をこちらにも垂れ流そうと。
今日はその手順(というかやり方)を。
---
まあたいしたことはありません。
XのAPIに投げているテキストを
そのままblueskyのAPIに投げるだけです。
「The Sunday Breeze」の環境はPHP8.2でcomposerは使える状態。
(なにそれ?という方は…ググって環境を整えましょう)
blueskyのAPIのインストールはこちらを参考に。
blueskyの自動投稿を作ってみたくなり即興で作りました。(Qiita)
composerでpotibm/phlueskyをインストール。
現時点での最新版が0.3.0っぽいので、
だけでOKでした。
それと、ここからblueskyのアプリパスワードを取得
Xとblueskyの大きな違いは
URLをはっつけたときに自動的にリンクにならないこと。
なのでリンクをポストするときには
リンク先URL・リンク先タイトル・ディスクリプション・画像イメージ(Xでいうカード)
を個別に指定しないとなりません。
これでポストするとXでは

blueskyでは

こんな感じでしょうかね。
---
今日は1日、馬券も買わずに
このblueskyAPIと格闘しておりました。
ホントはね…
名古屋競馬場にキューピッズアローのレースを観戦に行きたかったんだけどね…
3連休とか…新幹線ムリですわ。
しかも明日は夜勤だし。
明後日は気が向けば大井競馬場へ。
雲取賞の観戦ができれば…と思っています。
https://bsky.app/
管理人も先日アカウントを開設しまして
せっかく始めたからには…X(旧ツイッター)がいつなくなってもいいように
更新情報をこちらにも垂れ流そうと。
今日はその手順(というかやり方)を。
---
まあたいしたことはありません。
XのAPIに投げているテキストを
そのままblueskyのAPIに投げるだけです。
「The Sunday Breeze」の環境はPHP8.2でcomposerは使える状態。
(なにそれ?という方は…ググって環境を整えましょう)
blueskyのAPIのインストールはこちらを参考に。
blueskyの自動投稿を作ってみたくなり即興で作りました。(Qiita)
composerでpotibm/phlueskyをインストール。
現時点での最新版が0.3.0っぽいので、
php composer.phar require potibm/phluesky
だけでOKでした。
それと、ここからblueskyのアプリパスワードを取得
Xとblueskyの大きな違いは
URLをはっつけたときに自動的にリンクにならないこと。
なのでリンクをポストするときには
リンク先URL・リンク先タイトル・ディスクリプション・画像イメージ(Xでいうカード)
を個別に指定しないとなりません。
require "vendor/autoload.php";
// TwitterAPIロード
require "twitteroauth/autoload.php";
use AbrahamTwitterOAuthTwitterOAuth;
// BlueSkyAPIロード
use potibmBlueskyBlueskyApi;
use potibmBlueskyBlueskyPostService;
use potibmBlueskyFeedPost;
// ここで投稿するテキストを生成
$status = mb_convert_encoding("書き込む内容", "UTF-8");
/* ****************** ここからTwitter ****************** */
/* OAuthアプリ登録で取得したConsumer keyを設定 */
$consumer_key="こんしゅーまーきー";
/* OAuthアプリ登録で取得したConsumer secretを設定 */
$consumer_secret="こんしゅーまーしーくれっと";
/* OAuthトークン取得プログラムで取得したoauth_tokenを設定 */
$oauth_token="とーくん";
/* OAuthトークン取得プログラムで取得したoauth_token_secretを設定 */
$oauth_token_secret="とーくんしーくれっと";
// TwitterOAuthのインスタンスを生成
$twitter = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$twitter->setApiVersion("2");
$req = $twitter->post("tweets", ["text" => $status], true);
/* ****************** ここからBlueSky ****************** */
$bsky_user="sundaybreeze.jp";
$bsky_pass="さっき取得したアプリパスワード";
$api = new BlueskyApi($bsky_user, $bsky_pass);
$postService = new potibmBlueskyBlueskyPostService($api);
$post = potibmBlueskyFeedPost::create($status); // これだけあればテキストはポストできる
if($link!="") { // リンクを張るときにはいろいろ個別で設定
$post = $postService->addWebsiteCard(
$post,
"リンク先URL",
mb_convert_encoding("リンク先のmetaタグに書くtwitter:title", "UTF-8"),
mb_convert_encoding("リンク先のmetaタグに書くtwitter:description", "UTF-8"),
"画像イメージのファイルパス(URLではない)",
);
}
$response = $api->createRecord($post);
// TwitterAPIロード
require "twitteroauth/autoload.php";
use AbrahamTwitterOAuthTwitterOAuth;
// BlueSkyAPIロード
use potibmBlueskyBlueskyApi;
use potibmBlueskyBlueskyPostService;
use potibmBlueskyFeedPost;
// ここで投稿するテキストを生成
$status = mb_convert_encoding("書き込む内容", "UTF-8");
/* ****************** ここからTwitter ****************** */
/* OAuthアプリ登録で取得したConsumer keyを設定 */
$consumer_key="こんしゅーまーきー";
/* OAuthアプリ登録で取得したConsumer secretを設定 */
$consumer_secret="こんしゅーまーしーくれっと";
/* OAuthトークン取得プログラムで取得したoauth_tokenを設定 */
$oauth_token="とーくん";
/* OAuthトークン取得プログラムで取得したoauth_token_secretを設定 */
$oauth_token_secret="とーくんしーくれっと";
// TwitterOAuthのインスタンスを生成
$twitter = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$twitter->setApiVersion("2");
$req = $twitter->post("tweets", ["text" => $status], true);
/* ****************** ここからBlueSky ****************** */
$bsky_user="sundaybreeze.jp";
$bsky_pass="さっき取得したアプリパスワード";
$api = new BlueskyApi($bsky_user, $bsky_pass);
$postService = new potibmBlueskyBlueskyPostService($api);
$post = potibmBlueskyFeedPost::create($status); // これだけあればテキストはポストできる
if($link!="") { // リンクを張るときにはいろいろ個別で設定
$post = $postService->addWebsiteCard(
$post,
"リンク先URL",
mb_convert_encoding("リンク先のmetaタグに書くtwitter:title", "UTF-8"),
mb_convert_encoding("リンク先のmetaタグに書くtwitter:description", "UTF-8"),
"画像イメージのファイルパス(URLではない)",
);
}
$response = $api->createRecord($post);
これでポストするとXでは

blueskyでは

こんな感じでしょうかね。
---
今日は1日、馬券も買わずに
このblueskyAPIと格闘しておりました。
ホントはね…
名古屋競馬場にキューピッズアローのレースを観戦に行きたかったんだけどね…
3連休とか…新幹線ムリですわ。
しかも明日は夜勤だし。
明後日は気が向けば大井競馬場へ。
雲取賞の観戦ができれば…と思っています。
[コメント読む(0)]

昨日は船橋競馬場へ行ってきました。
昨日の話です。
仕事終わりに後輩6人を連れて、船橋競馬場へ行ってきました。

18時半ころに着いて、まだそれほど寒さは厳しくなかったんですが
さすがに最終レースくらいの時間になるとだいぶ寒くなりますなぁ。

メイン11レースはA2クラスマイル戦のポイント10倍!船橋のSPAT4賞。
2番手追走から直線で抜けたのは2番人気の7番ショットメーカー。
後続が迫ってきましたが、最後はクビ差しのいでの勝利。鞍上は張田J。
2着に3コーナーでまくっていった5番人気10番シティーオブスター。
1番人気の1番ヴィゴーレは後方追走から直線追い込むも3着まで。

---
昨日は大勢での観戦だったのでほぼ飲み会状態。
馬券もグダグダ。そして飲みすぎました…。
今日は府中へ行きたかったんですが、二日酔いのため断念。
次回の競馬観戦は…水曜日の夜勤明けで大井競馬場へ行ければ。
仕事終わりに後輩6人を連れて、船橋競馬場へ行ってきました。
18時半ころに着いて、まだそれほど寒さは厳しくなかったんですが
さすがに最終レースくらいの時間になるとだいぶ寒くなりますなぁ。
メイン11レースはA2クラスマイル戦のポイント10倍!船橋のSPAT4賞。
2番手追走から直線で抜けたのは2番人気の7番ショットメーカー。
後続が迫ってきましたが、最後はクビ差しのいでの勝利。鞍上は張田J。
2着に3コーナーでまくっていった5番人気10番シティーオブスター。
1番人気の1番ヴィゴーレは後方追走から直線追い込むも3着まで。
---
昨日は大勢での観戦だったのでほぼ飲み会状態。
馬券もグダグダ。そして飲みすぎました…。
今日は府中へ行きたかったんですが、二日酔いのため断念。
次回の競馬観戦は…水曜日の夜勤明けで大井競馬場へ行ければ。
[コメント読む(0)]

本日、無事にサーバOS更新作業を終了しました。
今日は夜勤明け。
深夜1時より
旧データベースサーバのデータを新データベースサーバへ移行して
朝7時前に新データベースサーバへ切り替えました。
現在の「The Sunday Breeze」サーバ構成はこんな感じになりました。
(赤字が今回の更新部分)

データベースアプリケーションをMySQLからMariaDBへ変更したことで
なんか不具合があるんじゃないかとドキドキしながら様子を見ていたんですが…
とりあえず何もなさそうだったので、7時半くらいに寝ました。
…ところが。
13時くらいに起きてサーバの様子を確認したところ
新データベースサーバのLoad Average(ざっくりいうと処理を待っている数)の値が…140とか…。
こんなLoad Averageの数字…見たことない。
中身を確認してみたところ
MySQLで使っていた「MAX_EXECUTION_TIME」(データベースでの実行時間がある程度過ぎたら強制終了するやつ)が
MariaDBではまったく効かなくなっていたために…データベースへの接続があふれるという現象が。
とりあえず頑張ってGoogle先生に聞きまくって
MariaDBでは「MAX_STATEMENT_TIME」ってのがあるっつーのがわかったので
該当箇所をしこしこ修正。
それだけではダメだったので
競走馬検索の条件を一部変更しました。
父馬名・母馬名での検索を
今までは部分一致検索にしていたんですが(タイムアウトになるやつ)
今後は完全一致検索に変えました。
うーん…使いづらいなぁ。
使いづらいですけど
ちょっとこの状態でしばらく様子を見たいと思います。
ご意見あれば伺いたいです。
バンバンお寄せいただければ幸いです。
---
前回のブログ、
次回の競馬観戦を今日「仕事終わりに船橋競馬場へ」と書いたんですが
冒頭にも書いた通り、今日は夜勤明け。
夜勤明けの地元開催は…
「まあいつでも行けるから(行かなくていいや)」
ってなる率が高いんだよなぁ。
それが交流重賞でも。
やっぱり夜勤明けは遠征にでるのがいいみたい(すぐ酔っぱらうけど)
先週1月最後の日曜日に小倉競馬場へ行って以来、
およそ10日も競馬場へ行ってません。
金曜日は会社の後輩をまとめて連れて、船橋競馬場へ向かいます。
さすがに会社帰り&後輩が一緒(6人!)となると「行かない」とはならないと思います。
金曜の夜は船橋競馬観戦記録を。
深夜1時より
旧データベースサーバのデータを新データベースサーバへ移行して
朝7時前に新データベースサーバへ切り替えました。
現在の「The Sunday Breeze」サーバ構成はこんな感じになりました。
(赤字が今回の更新部分)

データベースアプリケーションをMySQLからMariaDBへ変更したことで
なんか不具合があるんじゃないかとドキドキしながら様子を見ていたんですが…
とりあえず何もなさそうだったので、7時半くらいに寝ました。
…ところが。
13時くらいに起きてサーバの様子を確認したところ
新データベースサーバのLoad Average(ざっくりいうと処理を待っている数)の値が…140とか…。
こんなLoad Averageの数字…見たことない。
中身を確認してみたところ
MySQLで使っていた「MAX_EXECUTION_TIME」(データベースでの実行時間がある程度過ぎたら強制終了するやつ)が
MariaDBではまったく効かなくなっていたために…データベースへの接続があふれるという現象が。
とりあえず頑張ってGoogle先生に聞きまくって
MariaDBでは「MAX_STATEMENT_TIME」ってのがあるっつーのがわかったので
該当箇所をしこしこ修正。
それだけではダメだったので
競走馬検索の条件を一部変更しました。
父馬名・母馬名での検索を
今までは部分一致検索にしていたんですが(タイムアウトになるやつ)
今後は完全一致検索に変えました。
うーん…使いづらいなぁ。
使いづらいですけど
ちょっとこの状態でしばらく様子を見たいと思います。
ご意見あれば伺いたいです。
バンバンお寄せいただければ幸いです。
---
前回のブログ、
次回の競馬観戦を今日「仕事終わりに船橋競馬場へ」と書いたんですが
冒頭にも書いた通り、今日は夜勤明け。
夜勤明けの地元開催は…
「まあいつでも行けるから(行かなくていいや)」
ってなる率が高いんだよなぁ。
それが交流重賞でも。
やっぱり夜勤明けは遠征にでるのがいいみたい(すぐ酔っぱらうけど)
先週1月最後の日曜日に小倉競馬場へ行って以来、
およそ10日も競馬場へ行ってません。
金曜日は会社の後輩をまとめて連れて、船橋競馬場へ向かいます。
さすがに会社帰り&後輩が一緒(6人!)となると「行かない」とはならないと思います。
金曜の夜は船橋競馬観戦記録を。
[コメント読む(0)]

【追悼】名古屋競馬場のヤギ、チップ。
名古屋競馬場で飼われている
ヤギのチップとポテト。
そのチップが1月25日に亡くなったそうです。
1週間前の1月19日、競馬観戦に行ったときに
2匹の動画を撮影していました。
ポテトはすぐに近づいてきてくれたんですが、
チップは小屋から出てきませんでした。
もうこの時には動く元気もなかったのかな…。
1か月前の12月22日の動画。
この時はまだ元気だったのに…
1か月経たずして亡くなってしまうとは…。
旧名古屋競馬場のころから
スタンドの脇で競馬ファンの癒し的存在だったチップ。
残念ですが、
天国で元気に走り回ってほしいです。
ポテトもきっとさみしいだろうなぁ。
-----
管理人は昨日・今日ともに家にいました。
今日は天気が良くなれば府中へ行こうと思ったんですが
結局夕方までどんよりと曇り空。しかも寒いし。
昨日行けばよかった。
次回の競馬観戦は水曜日。
地元の船橋競馬場へ仕事帰りに向かいます。
水曜夜は交流重賞・クイーン賞の観戦記録を。
ヤギのチップとポテト。
そのチップが1月25日に亡くなったそうです。
1週間前の1月19日、競馬観戦に行ったときに
2匹の動画を撮影していました。
ポテトはすぐに近づいてきてくれたんですが、
チップは小屋から出てきませんでした。
もうこの時には動く元気もなかったのかな…。
1か月前の12月22日の動画。
この時はまだ元気だったのに…
1か月経たずして亡くなってしまうとは…。
旧名古屋競馬場のころから
スタンドの脇で競馬ファンの癒し的存在だったチップ。
残念ですが、
天国で元気に走り回ってほしいです。
ポテトもきっとさみしいだろうなぁ。
-----
管理人は昨日・今日ともに家にいました。
今日は天気が良くなれば府中へ行こうと思ったんですが
結局夕方までどんよりと曇り空。しかも寒いし。
昨日行けばよかった。
次回の競馬観戦は水曜日。
地元の船橋競馬場へ仕事帰りに向かいます。
水曜夜は交流重賞・クイーン賞の観戦記録を。
[コメント読む(0)]

(続き) ラズパイでのFreeBSD+MySQLは終了しました。
年明けに書いたネタの1月9日・10日での出来事の続き。
その後約1か月、データベースサーバの再構築をいろいろと進めてきましたが…
結論としては「ラズベリーパイ上でのFreeBSD+MySQLはもう動きません」
現在サポートされているFreeBSDのヴァージョンは13.2と14.0
そしてMySQLのヴァージョンは8.0以降。
ラズパイ4(4G)上のFreeBSD13.2と14.0で
MySQL8.0と8.1をそれぞれインストールしましたが
どちらも同じ症状で起動しません。
(症状の詳細は前回書いた通りです)
FreeBSDのBugzillaで同じ内容の投稿がありますが
QEMU 8.0上のarm64-aarch64-RPI(ラズパイ用のOSイメージ)では動いたよーんって書かれていて
こっちが聞きたいのはラズパイ上でどうなのかって話なんだけどな…と思ったり。
まあ原因としては…ラズパイだから(ハードウエアの構成上の問題?)…としか言いようがありません。
現状、ラズパイ上のFreeBSD13.2でMySQL5.7は動いているので
ラズパイとMySQL8.xの組み合わせが悪いって結論になるかと思います。
残念ながら
この度、MySQLを捨てることになりました。
---
新しいデータベースサーバは
OSを最新のFreeBSD14.0、データベースにはMariaDBの10.6を導入します。
MariaDBは基本的にMySQL派生のため、
既存のWebページやバッチプログラムなどの修正が不要。
データを入れ替えればすぐに動かすことができます。
すでにテスト環境の構築が完了し
いろいろチューニングとかデータの移行確認とかをやってます。
準備が整い次第
早ければ、来週2月7日(水)の早朝にこっそりと入れ替えようと思います。
所要時間は…およそ10分。
新データベースサーバが稼働したら
改めてブログでもご報告したいと思います。
---
さて。明日か明後日か
気が向けば、東京競馬場へ向かいます。
指定席(スマシー)をとってないので
ふらっと出かけて、ふらっと観戦するくらいですが。
気が向けばブログでは競馬観戦記録を。
気が向かなければ…ダラダラ過ごして終わる週末になりそう。
その後約1か月、データベースサーバの再構築をいろいろと進めてきましたが…
結論としては「ラズベリーパイ上でのFreeBSD+MySQLはもう動きません」
現在サポートされているFreeBSDのヴァージョンは13.2と14.0
そしてMySQLのヴァージョンは8.0以降。
ラズパイ4(4G)上のFreeBSD13.2と14.0で
MySQL8.0と8.1をそれぞれインストールしましたが
どちらも同じ症状で起動しません。
(症状の詳細は前回書いた通りです)
FreeBSDのBugzillaで同じ内容の投稿がありますが
QEMU 8.0上のarm64-aarch64-RPI(ラズパイ用のOSイメージ)では動いたよーんって書かれていて
こっちが聞きたいのはラズパイ上でどうなのかって話なんだけどな…と思ったり。
まあ原因としては…ラズパイだから(ハードウエアの構成上の問題?)…としか言いようがありません。
現状、ラズパイ上のFreeBSD13.2でMySQL5.7は動いているので
ラズパイとMySQL8.xの組み合わせが悪いって結論になるかと思います。
残念ながら
この度、MySQLを捨てることになりました。
---
新しいデータベースサーバは
OSを最新のFreeBSD14.0、データベースにはMariaDBの10.6を導入します。
MariaDBは基本的にMySQL派生のため、
既存のWebページやバッチプログラムなどの修正が不要。
データを入れ替えればすぐに動かすことができます。
すでにテスト環境の構築が完了し
いろいろチューニングとかデータの移行確認とかをやってます。
準備が整い次第
早ければ、来週2月7日(水)の早朝にこっそりと入れ替えようと思います。
所要時間は…およそ10分。
新データベースサーバが稼働したら
改めてブログでもご報告したいと思います。
---
さて。明日か明後日か
気が向けば、東京競馬場へ向かいます。
指定席(スマシー)をとってないので
ふらっと出かけて、ふらっと観戦するくらいですが。
気が向けばブログでは競馬観戦記録を。
気が向かなければ…ダラダラ過ごして終わる週末になりそう。
[コメント読む(0)]
