イロレーティングシステムをPHPで起こす.生成AIに検証してもらう.

20241204

Logging

おはよう御座います.イロレーティングシステムをPHPで起こす.生成AIに検証してもらう.このコードには問題があります.K値にマイナスを入れるとバグるという事なのでその対策が事前に必要になります.このコードは生成AIが生成したものを別の生成AIに検証してもらいました.

とても便利です、わざわざコードを書かなくて良いところがとても便利ですが少し味気無い.

因みにこのコードは某O社のブログ連載を目にしたのがきっかけです.待てど暮せど連載が遅いのでこちらで記載した訳です.この頃、某O社のブログは停滞しています、恐らくそれほどアクセスビューも無さそうな気がします.

簡単にできるようで難しさを実感したのか、成功したのかは分かりませんが自分の見解はそれほどのアクセス数は出てないと思っています.

<?php

class EloRatingSystem {
    private $kFactor; // K値(調整係数)

    public function __construct($kFactor = 32) {
        $this->kFactor = $kFactor;
    }

    /**
     * レーティング計算
     * @param float $playerRating プレイヤーの現在のレーティング
     * @param float $opponentRating 対戦相手のレーティング
     * @param float $result 試合結果 (1: 勝ち, 0: 負け, 0.5: 引き分け)
     * @return float 更新後のレーティング
     */
    public function calculateNewRating($playerRating, $opponentRating, $result) {
        // 期待勝率を計算
        $expectedScore = 1 / (1 + pow(10, ($opponentRating - $playerRating) / 400));

        // 新しいレーティングを計算
        $newRating = $playerRating + $this->kFactor * ($result - $expectedScore);

        return $newRating;
    }
}

// 使用例
$eloSystem = new EloRatingSystem(32);

$player1Rating = 1600; // プレイヤー1の初期レーティング
$player2Rating = 1500; // プレイヤー2の初期レーティング

$result = 1; // プレイヤー1が勝利 (勝ち: 1, 負け: 0, 引き分け: 0.5)

$newPlayer1Rating = $eloSystem->calculateNewRating($player1Rating, $player2Rating, $result);
$newPlayer2Rating = $eloSystem->calculateNewRating($player2Rating, $player1Rating, 1 - $result);

echo "プレイヤー1の新しいレーティング: $newPlayer1Rating\n";
echo "プレイヤー2の新しいレーティング: $newPlayer2Rating\n";

短期間に結果が出たとしても長期的に持続可能かという事も課題になります.一番は継続するという事が難しいです.自分みたいに継続できるのは稀なんだといろいろな人をみてきて思いました.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

きっかけ, バグ, ブログ, マイナス, 事前, 係数, 某社, 自分, 見解,


証明写真リサイズツールという物を作りました.お裾分けです

20241203

Logging

おはようございます.証明写真リサイズツールという物を作りましたのでお裾分けです.この季節ぐらいから学生さんは就職活動とか冬休みや春休みのバイトなどにデジタル履歴書に貼る顔写真が必要になるのではと思ったのが、これを作った経緯です.

この証明写真リサイズツールはサーバー上にデータを残していないのでとても安全です.ユーザーさん側で動くJavascriptの力だけで構築したものになります.

そういう訳で多くの方に使用して頂ければ独立したドメインで再構築しようと思っています.

また、証明写真リサイズツールのソースコードを知りたいという方はブラウザの検証から調べてみてください.すべてJavaScriptでコードが書かれていることが理解出来ると思います.

最後にリンクを貼っときます.

https://zip358.com/tool/Passport-Photo-Resizer

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

お裾分け, デジタル, ドメイン, バイド, ブラウザ, 冬休み, 学生, 履歴, 春休み, 経緯,


Photo by Valeria Boltneva on Pexels.com

jp_auto_tag言うプラグインが動かなくなる.Yahoo!さんからブロックされたぽっい

20241202

Logging

おはようございます.jp_auto_tag言う自作プラグインが突然動かなくなる.jp_auto_tag言うプラグインは投稿記事の中から固有名詞などを抽出して自動でタグ化するプラグインです.そのプラグインの中でYahoo!さんのAPIを使用していたのですが今回YahooAPIさんからブロックされたぽっいです.

ブロックされたぽっいので代替えコードで動かすことにしました.一応、プラグインを配信していたのでもしかしたら同じ用に動かなくなった人もいるかもですが、今回、対応したプラグインはPHP言語だけで動いているコードではなくPython言語とPHP言語を連携させて動かしているものになります.

なので、バージョンアップしたjp_auto_tagのコードを配信する予定は有りません.

ゆくゆくは、Python部分を外部APIサーバーとして運用することが出来れば良いのだけどもVPSサーバーを一つ借りる事がいまの収益からは中々厳しいです.なので収益が安定したらVPSサーバーを借りて運用しようと思っています.

いつの日になることやら

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

おはよう, けども, ござい, として, なので, フラグ, ブロック, もしか, ゆくゆく, 代替え, 出来れ, 動かし, 動かす, 厳しい,


コンテンツの中にあるタグを抽出して置き換えるPHPコード.

20241201

Logging

おはようございます.コンテンツの中にあるタグを抽出して置き換えるPHPコードを生成AIともに考えてもらいました.その第一弾の解としてPHPコードを記載します.因みにこのコードは、実際にワードプレス内に埋め込んでいて動いているコードになります.

因みにこの頃思うことは、基礎学習が一応終わっている人には生成AIは相性が良いと思っています.基礎が分かっていると生成AIの解答の良し悪しが分かるのでわざわざ実行して検証しなくても分かる場合が多いからです.

なので、基礎が分かっている方にはオススメ.たまに自分の知らないことを教えてくれるのでとても学習の効率は良いかなと思っています.

最後にPHPコードを記載します.

function wrapImagesWithLightbox($htmlContent) {

  $htmlContent = mb_convert_encoding($htmlContent, 'HTML-ENTITIES', 'UTF-8');
  
  $dom = new DOMDocument('1.1', 'UTF-8');
  // エラーを抑制してHTMLをロード
  @$dom->loadHTML($htmlContent, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
  
  $images = $dom->getElementsByTagName('img');

  // 画像タグを処理
  foreach ($images as $img) {
      $imgUrl = $img->getAttribute('src');

      // 新しい<a>タグを作成
      $a = $dom->createElement('a');
      $a->setAttribute('href', $imgUrl);
      $a->setAttribute('data-lightbox', 'image');

      // 元の<img>タグをクローンして追加
      $newImg = $img->cloneNode(true);

      // クラスがない場合でも付与
      if (!$newImg->hasAttribute('class')) {
          $newImg->setAttribute('class', 'img-fluid');
      }

      // 新しい<a>タグに画像を追加
      $a->appendChild($newImg);

      // 元の画像タグを<a>タグで置き換え
      $img->parentNode->replaceChild($a, $img);
  }

  // 変換後のHTMLを返す
  return $dom->saveHTML();
}

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

おすすめ, おはよう, くれる, ござい, コンテンツ, として, トテモ, なので, プレス, もらい, わざわざ, 分かっ, 分かる, 因みに, 埋め込ん, 終わっ, 置き換える,