@Blog
過去の蓄積を見るために書く日記.

バージョンを4.5から5系に上げました.
2025.09.23
おはようございます.ブートストラップのバージョンを4.5からやっと5系に上げました.でもこれ以上バージョンを上げるとサイトのデザインが崩れるので上げられないというジレンマがあります.
なのでブートストラップ5.4とかには上げれない、上げるとなるとCSSのクラス修正が発生します.でもそろそろ最新に上げたい、欲を言うとテイルウィンドに全て変えたい.
どこかにブートストラップからテイルウィンドにコンバートしてくれるサイトはないものか・・・とチャットAIに投げたところ、いくつか候補を上げてくれました.
その中でシンプルで使いやすいWindify (Bootstrap to Tailwind CSS Converter)というサイトが良いよと書かれていました.

https://bootstrap-to-tailwind-css.vercel.app
実際、使ってみたら結構良かったのですが、ただこれコードを含まれたりするとちょっと心配なので、そういう人達向けにこちらの方法が良さそうです.
リンクを参照してもらったら分かると思いますが、コマンドラインでコンバート(変換)してくれるのでこちらの方法が重宝しそうです.
こちらコマンドラインで変換する方法で崩れるという記載がQiitaに書かれていましたが、崩れた場合は手動で直す方法がありそうなのでブランチを切り対応するほうが良さげです.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
いくつ, クラス, コード, こちら, コマンド, これ, コンバート, サイト, ジレンマ, シンプル, そう, チャット, テイルウィンド, デザイン, どこ, ところ, バージョン, ブートストラップ, ブランチ, ほう, もの, ライン, リンク, 人達, 以上, 修正, 候補, 全て, 参照, 向け, 場合, 変換, 対応, 心配, 手動, 方法, 明日, 最新, 発生, 記載, 重宝,

カラー選択からライトモードとダークモードに切り替えた話
2025.09.22
おはようございます.カラー選択からライトモードとダークモードに切り替えた話を書いています.カラー選択、実は結構自分は気に入っていたのだけどあまり使用されないだろうなぁという思いも前から思っていたのだけど、そのままにしていました.
切り替えたのはある動画を視聴して、その中でライトモード、ダークモードの仕様に全てのブラウザが対応したことを語っていたので、だったらこの際ライトモードダークモードに変更しようと思い立ちました.
休日の終わりごろに思い立って、サービスとギャラリー以外はライトモードダークモードに切り替えが終わりました.ただ、一つ課題があってOS(オペレーションシステム)とブラウザのモード設定がチグハグだった場合、コメント欄などが見にくくなっています.
ここだけは今のところ保留にしています.
残りのサービスとギャラリーは近日中に変更しようと思っています.
一応、切り替えを行うソースコードを貼っときますね.
document.addEventListener('DOMContentLoaded', () => {
const switchToggle = document.getElementById('flexSwitchCheckDefault');
const htmlElement = document.documentElement;
// ページの初期ロード時にテーマを設定
function setInitialTheme() {
// ローカルストレージに設定があれば、それを使う
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
htmlElement.setAttribute('data-theme', savedTheme);
switchToggle.checked = savedTheme === 'dark';
} else {
// なければOSの設定を使う
const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
htmlElement.setAttribute('data-theme', isDarkMode ? 'dark' : 'light');
switchToggle.checked = isDarkMode;
}
}
// スイッチが変更されたらテーマを切り替え、ローカルストレージに保存
switchToggle.addEventListener('change', (event) => {
const newTheme = event.target.checked ? 'dark' : 'light';
htmlElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
});
// 初期テーマを設定
setInitialTheme();
});
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, オペレーション, カラー, ギャラリー, コード, ここ, こと, コメント, ごろ, サービス, システム, スイッチ, ストレージ, ソース, それ, ダーク, チグハグ, テーマ, ところ, ブラウザ, ページ, モード, ライド, ライトモードダークモード, ローカル, ロード, 一つ, 仕様, 以外, 休日, 使用, 保存, 保留, 全て, 切り替え, 初期, 動画, 場合, 変更, 対応, 思い, 明日, 残り, 自分, 視聴, 設定, 課題, 近日, 選択,

サイトの画像有無を確認するNodeJSコード
2025.09.21
おはようございます.サイトの画像有無を確認するNodeJSコードを共有します、このコードを作った経緯は画像の有無を目視でチェックするのは結構大変でかつ、膨大にページがある場合は人の確認だとどうしても抜かりが出てくる場合があります.
そういう時にこのツールを使うとカバー出来ると思います、使用するにはまず前提条件としてご自身のOS(オペレーションシステム)にNodeJSバージョン22が入っていること、それ以降でも動くとは思いますが自分が動作確認を行ったのはバージョン22だったので動作保証するのは22になります.
環境を整えたらギットハブ(GitHub)の下記のリンクより、ダウンロードするかクローンしてご自身の任意のディレクトリにファイルを展開しその後、READMEを参照して手順を踏んで頂けたら確認が出来ます.
https://github.com/taoka3/checkImage
※同階層にライブラリのインストールすることをお忘れなく
トイウコトでサイトの画像有無を確認するNodeJSコードの話でした、尚、このコードは生成AIが殆どコードを書いています.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
インストール, オペレーション, カバー, ギットハブ, クローン, コード, こと, サイト, システム, その後, それ, ダウンロード, チェック, ツール, ディレクトリ, トイウコト, バージョン, ファイル, ページ, ライブラリ, リンク, 下記, 以降, 任意, 使用, 保証, 共有, 前提, 動作, 参照, 場合, 大変, 展開, 手順, 明日, 有無, 条件, 殆ど, 環境, 生成, 画像, 目視, 確認, 経緯, 膨大, 自分, 自身, 階層,

予約システム(仮)を作った話をRECしてとか
2025.09.14
おはようございます.予約システム(仮)を作った話をYOUTUBE用にRECしてとかコードを昨日のお昼まで大体作ってました.結局、エンジニアさんが欲している部分は事足りると思っています.
あとはエンジニアさんがカスタマイズしたら工数削減に繋がるのではと.
昨日にコードはギットハブにUPしたので全部のコードが欲しい場合はギットハブをクローンするか、ダウンロードするかして使用して頂けたらと思っています.
なお、保存部分はそれぞれ仕様が違うかもなので、作っていないしもしまた仕事で振られたときにこれを使用して作ろうと思っています.
このシステムは売り物に出来るといえば出来ると思います.いろいろ自分は作りたい方なのでお仕事があれば個人的にください.働いている会社では副業可能なので知人や友人でブログを見ている方、こっそりお仕事をください.
顔を合わしたくない人向けですがクラウドワークスとかからの依頼でも構わないです.スカウトして貰えたら結構有り難いですね.よろしくです.
こちらにデモページがあります.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
あと, エンジニア, お昼, カスタマイズ, カモ, ギットハブ, クラウドワークス, クローン, コード, こちら, これ, サン, システム, スカウト, それぞれ, ダウンロード, デモ, とき, ブログ, ページ, 予約, 仕事, 仕様, 会社, 使用, 依頼, 保存, 個人, 全部, 削減, 副業, 友人, 可能, 向け, 場合, 売り物, 大体, 工数, 明日, 昨日, 知人, 結局, 自分, 部分,

記事の検閲はこの日本でも行われているだろうな.
2025.09.06
おはようございます.記事の検閲はこの日本でも行われている、公にはそれは知られてはいない気がしますが.さてネット検閲の厳しい国の代表的な国が中国です、国に文句が言えないらしいぐらい厳しいらしいですね、実際どうなのかは分からないですが.
国の検閲が厳しいものでも他の国に旅行に行くことが出来る世の中です、世界を見ると自分の国がどんな国なのか分かると思います.そして、徐々に世の中は変わっていくと思うので検閲の厳しい国でも変わっていくと思っています.
何故そう思うかと言えば、囚われた国家(映画)のように物事が徐々に動いてくのだろうと思うからです、なので何れ100年、200年と時が経つと世界は大きく変わっていくと思っています.
何故、検閲のことを書こうかと思ったかはこの頃、日本もなんかきな臭い感じがするからです.そうなった時、日本も検閲が厳しくなると思います.
参考までに検閲の情報を添付しときますね.
インターネット検閲が厳しい国は、国際的な人権団体や調査機関が発表する報告書によって評価されています。最新の情報を基に、特に検閲が厳しいとされている国々をいくつか挙げます。
インターネット検閲が特に厳しいとされる国々
- 中国: 中国は「金盾(グレート・ファイアウォール)」と呼ばれる大規模な検閲システムを運用しており、Facebook、X(旧Twitter)、Google、YouTubeなど、多くの海外サービスへのアクセスを厳しく制限しています。また、言論統制や監視も厳格に行われています。
- イラン: 反体制的な情報や西側諸国のコンテンツを厳しく検閲しており、特定のウェブサイトやSNSへのアクセスを遮断しています。VPNも頻繁にブロックされます。
- ミャンマー: 軍事政権がインターネットを厳しく管理しており、SNSの遮断や通信の制限が行われています。
- ロシア: ウクライナ侵攻以降、特に検閲が強化されました。独立系メディアのウェブサイトやSNSへのアクセスを制限し、政府に不都合な情報を削除するよう事業者に要求しています。
- 北朝鮮: 一般国民はインターネットに自由にアクセスすることができず、政府が管理する国内ネットワークのみが利用可能です。
これらの国々では、単に特定のウェブサイトをブロックするだけでなく、オンラインでの言論や活動そのものを監視し、ユーザーの権利を侵害するような措置がとられている点が共通しています。
なお、これらのランキングは調査機関によって異なる場合があります。国際的なNGOである「フリーダム・ハウス」や「国境なき記者団」などが毎年発表する報告書は、世界のネット検閲状況を把握する上で重要な情報源となります。
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アクセス, いくつ, イラン, インターネット, ウェブサイト, ウクライナ, オンライン, グレート・ファイアウォール, こと, これら, コンテンツ, サービス, システム, そのもの, それ, ネット, ネットワーク, フリーダム・ハウス, ブロック, ミャンマー, メディア, もの, ユーザー, よう, ランキング, ロシア, 一般, 不都合, 世の中, 世界, 中国, 事業, 人権, 代表, 以降, 体制, 何れ, 侵害, 侵攻, 共通, 利用, 制限, 削除, 北朝鮮, 厳格, 参考, 可能, 団体, 国々, 国内, 国境, 国家, 国民, 国際, 報告, 場合, 多く, 強化, 情報, 感じ, 把握, 措置, 政府, 政権, 文句, 旅行, 日本, 明日, 映画, 最新, 検閲, 権利, 機関, 毎年, 活動, 海外, 添付, 物事, 特定, 状況, 独立, 発表, 監視, 管理, 統制, 自分, 自由, 西側, 要求, 規模, 言論, 記事, 記者, 評価, 調査, 諸国, 軍事, 通信, 運用, 遮断, 重要, 頻繁,

没記事がこの頃多くて自分でも困っています
2025.09.03
おはようございます.先日、YOUTUBEにアップした動画が50回再生されていて困惑気味の中の人です.
さて、この頃、没記事がこの頃多くて自分でも困っています、とくに金銭的なモヤモヤを記事にしていると今は話せないなという思いに至り記事を消しています.
技術的な話もやっぱり支障をきたす場合もあるので、之また記事を消したりしています.なので、中々、ネタが無いのが現状ですね.
このブログは10年以上前から始めているのですがデータとしては2014年が最古です、本当はもっと昔から始めているのですが途中で移行時にデータが紛失したりして今に至っている感じですね.
サーバー移行は、年に一度は行っている気がします.今年も何だかんだ言ってサーバー移行しましたから、来年もサーバー移行するじゃないかな?
お金に余裕があればAWSで構築したいのだけどVPS止まりです.AWSの実務経験ゼロですけど、AWSよりVPS知っているという事は結果、AWSの触りはそこそこ出来るという事を理解出来ると思った方が良いと思うですけどね.
そこら辺を人材紹介会社は知っていない気がしています.
話戻しまして技術的なネタは控えているのと金銭的なモヤモヤももう少しすれば話せるようになると思います.それまで技術的な小ネタ等が続くと思います.
明日の記事は今日の記事に近いものにするつもりでいます.では!
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アップ, お金, サーバー, ゼロ, それ, つもり, データ, ネタ, ブログ, もの, モヤ, よう, 人材, 今年, 今日, 以上, 会社, 余裕, 先日, 再生, 動画, 困惑, 場合, 実務, 思い, 感じ, 技術, 支障, 明日, 最古, 来年, 構築, 気味, 現状, 理解, 移行, 紛失, 紹介, 経験, 結果, 自分, 触り, 記事, 途中, 金銭,

LLMO対策の前手順として、マークダウン記法を施しました.
2025.09.02
おはようございます.LLMO対策の前手順として、マークダウン記法を施しました.シングルページにマークダウン記法のリンクがそれぞれの記事にあると思います.
そのリンクをクリックするとマークダウン記法が表示されます.LLMO設置後、LLMs.txtを設置すれば良いらしいので、そちらも近日中に対応する予定です.尚、この記事がUPされている頃にはLLMs.txtの設置が終わっている気もします.
追伸:LLMs.txtの設置が終わりました、ルートに設置しています.LLMs.txtはマークダウン記法が記載されているURL(リンク)を一行ずつ表示するような形式で良いらしいです.
これをチャッピーさんにプラグインにして貰いましたのでお裾分けです.下記のプラグインを導入すると全記事URL(パラメーター(マークダウン記法と認識させる))が発行されます.
※マークダウン記法したページはご自身で作る必要があります.
<?php
/*
Plugin Name: LLMS URL Exporter (Fixed)
Description: 公開記事のURLをuploads/llms.txt に日付降順で出力します。管理画面のボタンで非同期(AJAX)実行。新規公開時は先頭に追記。
Version: 1.1
Author: taoka toshiaki
*/
if ( ! defined( 'ABSPATH' ) ) exit;
class LLMS_URL_Exporter {
private $file;
public function __construct() {
$this->file = $_SERVER['DOCUMENT_ROOT'] . '/llms.txt';
add_action( 'admin_menu', [ $this, 'add_admin_page' ] );
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_script' ] );
// AJAX (管理画面からの呼び出し = ログインユーザー用)
add_action( 'wp_ajax_llms_generate_urls', [ $this, 'generate_urls' ] );
// 投稿が公開になったとき(状態遷移を監視)
add_action( 'transition_post_status', [ $this, 'on_transition_post_status' ], 10, 3 );
register_activation_hook( __FILE__, [ $this, 'create_file_on_activate' ] );
}
public function create_file_on_activate() {
$dir = dirname( $this->file );
if ( ! is_dir( $dir ) ) {
wp_mkdir_p( $dir );
}
if ( ! file_exists( $this->file ) ) {
@file_put_contents( $this->file, "" );
}
}
public function add_admin_page() {
add_menu_page(
'LLMS URL Exporter',
'LLMS Export',
'manage_options',
'llms-url-exporter',
[ $this, 'admin_page_html' ]
);
}
public function enqueue_admin_script( $hook ) {
// 管理画面の当該ページだけに読み込む
if ( $hook !== 'toplevel_page_llms-url-exporter' ) return;
// jQuery は管理画面に既に存在
wp_enqueue_script( 'llms-admin', plugins_url( 'llms-admin.js', __FILE__ ), [ 'jquery' ], '1.0', true );
wp_localize_script( 'llms-admin', 'LLMS_Ajax', [
'ajax_url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'llms_generate_urls_nonce' ),
] );
// もし外部ファイルを用意しないなら、admin_page_html 内の inline script がフォールバックになります。
}
public function admin_page_html() {
?>
<div class="wrap">
<h1>LLMS URL Exporter</h1>
<p>公開中の全投稿URLを <code>/llms.txt</code> に日付降順で書き出します。</p>
<button id="llms-generate-btn" class="button button-primary">全記事URLを書き出す</button>
<div id="llms-result" style="margin-top:12px;"></div>
</div>
<?php
// フォールバック用のインラインスクリプト(もし外部 JS を作らない場合に有効)
$nonce = wp_create_nonce( 'llms_generate_urls_nonce' );
$ajax_url = admin_url( 'admin-ajax.php' );
?>
<script type="text/javascript">
jQuery(function($){
$('#llms-generate-btn').on('click', function(){
var $res = $('#llms-result');
$res.text('処理中...');
var data = {
action: 'llms_generate_urls',
_ajax_nonce: (typeof LLMS_Ajax !== 'undefined' ? LLMS_Ajax.nonce : '<?php echo esc_js( $nonce ); ?>')
};
var url = (typeof LLMS_Ajax !== 'undefined' ? LLMS_Ajax.ajax_url : '<?php echo esc_js( $ajax_url ); ?>');
$.post(url, data, function(response){
if ( response && response.success ) {
$res.html( response.data.message );
} else if ( response && response.data && response.data.message ) {
$res.html('エラー: ' + response.data.message);
} else {
$res.html('不明なレスポンス: ' + JSON.stringify(response));
}
}).fail(function(jqXHR, textStatus, errorThrown){
$res.html('AJAX エラー: ' + textStatus + ' ' + errorThrown + ' (status: ' + jqXHR.status + ')');
});
});
});
</script>
<?php
}
// AJAX ハンドラ
public function generate_urls() {
// nonce と権限チェック
check_ajax_referer( 'llms_generate_urls_nonce', '_ajax_nonce' );
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( [ 'message' => '権限がありません。' ], 403 );
}
$args = [
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => -1,
'no_found_rows' => true,
'fields' => 'ids',
];
$posts = get_posts( $args );
$urls = [];
foreach ( $posts as $pid ) {
$permalink = get_permalink( $pid );
if ( $permalink ) $urls[] = $permalink.'?md=1';
}
$content = implode("\n", $urls);
$written = @file_put_contents( $this->file, $content );
if ( $written === false ) {
$err = error_get_last();
$msg = isset( $err['message'] ) ? $err['message'] : '不明な書き込みエラー';
wp_send_json_error( [ 'message' => 'ファイル書き込みに失敗しました: ' . $msg ] );
}
wp_send_json_success( [ 'message' => 'llms.txt に ' . count( $urls ) . ' 件のURLを書き出しました。' ] );
}
// 公開判定:状態遷移で publish になったときに先頭へ追加
public function on_transition_post_status( $new_status, $old_status, $post ) {
if ( $post->post_type !== 'post' ) return;
if ( $new_status === 'publish' && $old_status !== 'publish' ) {
$url = get_permalink( $post->ID ).'?md=1';
$current = '';
if ( file_exists( $this->file ) ) {
$current = file_get_contents( $this->file );
}
// 既存の同一URLがあれば削除して先頭へ
$lines = array_filter( array_map( 'trim', explode("\n", $current ) ) );
$lines = array_values( array_diff( $lines, [ $url ] ) );
array_unshift( $lines, $url );
$new_content = implode("\n", $lines);
@file_put_contents( $this->file, $new_content );
}
}
}
new LLMS_URL_Exporter();
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, いん, インライン, エラー, お裾分け, クリック, これ, サン, シングル, スクリプト, そちら, それぞれ, ダウン, チェック, チャッピー, とき, パラメーター, ハンドラ, ファイル, フォールバック, フラグ, ページ, ボタン, マーク, ユーザー, よう, リンク, ルート, レスポンス, ログイン, 一行, 下記, 不明, 予定, 先頭, 公開, 処理, 出力, 判定, 削除, 同一, 呼び出し, 場合, 外部, 失敗, 存在, 実行, 対応, 対策, 導入, 当該, 形式, 必要, 手順, 投稿, 新規, 既存, 日付, 明日, 書き込み, 有効, 権限, 状態, 用意, 画面, 発行, 監視, 管理, 自身, 表示, 記事, 記法, 記載, 設置, 認識, 近日, 追伸, 追加, 追記, 遷移, 降順, 非同期,

ブログをワードプレスからLaravelへ
2025.09.01
おはようございます.ブログをワードプレスからLaravelへ置き換えていこうか悩んでいます.チャッピーさんで調べった結果.
WordPress を Laravel に統合またはブログを移行する際に使える「プラグイン」やライブラリについて、おすすめの方法とその特徴を整理してご紹介します。
おすすめの主要アプローチ
1. Corcel
- WordPress データ(投稿、カスタム投稿タイプ、メタデータなど)を Laravel から直接取得できる Eloquent ベースの橋渡しライブラリです。Composer で簡単にインストールでき、設定ファイルで WP の DB 接続やモデル構成を指定可能です。(WP Engine, GitHub)
- WordPress を「バックエンド」として活用しつつ、Laravel を「フロントエンド/アプリロジック基盤」として完全に使いたい場合に最適です。
2. WordPress Pete
- WordPress 側にプラグイン(アプリのように動作)として組み込み、WordPress 管理画面から Laravel との統合を設定できます。試用も可能です。(WP Engine, Aalpha)
- Laravel 側から WordPress コンテンツを表示・活用したい場合に便利です。
3. Acorn
- Roots.io が開発したライブラリで、Laravel の Blade テンプレートや Artisan コマンド、マイグレーション機能を WordPress 内で使えるようにします。(Roots)
- WordPress 内でモダンな Laravel 開発体験(Blade, Artisan, Migration)ができるようになります。例えとして:
wp acorn make:controller
や Blade テンプレートの活用など。(Roots)
その他のアプローチ・参考情報
- WordPress REST API を使う方法
WordPress から REST API 経由でコンテンツを取得し、Laravel 側で API 呼び出しする形もあり。比較的シンプルです。(Laracasts, Codeable) - 中ミドル層としての統合
Laravel をバックエンド、WordPress をフロントエンドに設定し、ログイン機能や API 呼び出しを含めた構成も可能です。(Medium) - Reddit 上の意見
Laravel はあくまで「フレームワーク」であり、WordPress は即使える CMS。ブログ用途中心であれば WordPress のままでも十分との声もあります。但し、October CMS や Canvas のような Laravel ベース CMS を使う選択肢もあります。(Reddit)
比較まとめ
方法 | 特徴・用途 |
---|---|
Corcel | WordPress DB を Laravel で直接使う。柔軟で強力。 |
WordPress Pete | WordPress 管理画面から簡単に Laravel 連携を設定可能。 |
Acorn | WordPress 内で Laravel 開発体験(Blade, Artisan)を実現。 |
REST API | API 経由で疎結合に統合。軽量で保守性あり。 |
Laravel CMS (Canvas, October CMS) | Laravel 上に CMS 機能を構築したい場合に有効。 |
まとめ
- 即時利用・簡単統合:まずは WordPress Pete を試してみるのがおすすめ。
- 柔軟で高性能な連携 を求めるなら、Corcel による直接 DB アクセスが強み。
- 開発体験の統一(Blade や Artisan を WordPress 内で使いたい場合)は Acorn が魅力的です。
- 軽めの統合・API中心構成 を望む場合は、REST API を使ったアプローチも便利です。
という結果が返ってきたわけですが、一番妥当なのはCorcelかなと思っています、ただ、本当に移行するかは結構大変な感じがします.移植すれば後々、いろいろと出来ることが広がるかなと思っています.フロント側をvue(ビュー)かReact(リアクト)に変更するにしてもメンテは楽になりそうな予感もします.
悩ましいですね…
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, (:, アクセス, アプリ, アプリロジック, アプローチ, いん, インストール, エンド, おすすめ, カスタム, こと, コマンド, コンテンツ, サン, シンプル, そう, その他, タイプ, チャッピー, データ, テンプレート, バック, ビュー, ファイル, フラグ, フレーム, プレス, ブログ, フロント, ベース, マイグレーション, まとめ, まま, ミドル, メタデータ, メンテ, モダン, モデル, よう, ライブラリ, リアクト, ログイン, ワーク, ワード, わけ, 一番, 中心, 主要, 予感, 体験, 便利, 保守, 利用, 動作, 十分, 即時, 参考, 取得, 可能, 呼び出し, 基盤, 場合, 変更, 大変, 妥当, 完全, 実現, 強み, 強力, 後々, 情報, 意見, 感じ, 投稿, 指定, 接続, 整理, 方法, 明日, 最適, 有効, 柔軟, 構成, 構築, 橋渡し, 機能, 比較, 活用, 特徴, 用途, 画面, 直接, 移植, 移行, 管理, 簡単, 紹介, 経由, 結合, 結果, 統一, 統合, 表示, 設定, 試用, 軽量, 連携, 選択肢, 開発, 高性能, 魅力,

人工知能が読みやすいLLMO対策を近日中に対応.
2025.08.31
おはようございます.WordPressに人工知能が読みやすいLLMO対策を近日中に対応を施します.ただ、単にマークダウン記法で出力させるだけなんだけども、そんなに簡単でもないと思います.
簡単といえば簡単?知っているか知らないかで差が生まれるかも.
単なるコンテキストだけを抽出するならそんなに時間はかからないけど、記事の中にYOUTUBEやコードを埋め込んでいる場合はちょっと取り出し方に工夫がいるようになると思います.
取り出し方を知っているか知らないかで、差が発生すると思います.
因みにLLMO対策を何故するかは、これをしないと今後ページへ来てくれなくなる恐れがあるので速い内に対応しとこうと思ったわけです.
人工知能に記事を読んで貰いたいわけではないのだけど、AI(人工知能)モードが日本でも始まったらかなり打撃になることは確かなことだと思います.それぐらい脅威だと…
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
コード, こと, これ, コンテキスト, それ, ダウン, ページ, マーク, モード, よう, わけ, 人工, 今後, 出力, 場合, 対応, 対策, 工夫, 恐れ, 打撃, 抽出, 日本, 明日, 時間, 発生, 知能, 確か, 簡単, 脅威, 記事, 記法, 近日,

サブスクリプションというのは怖いなーと思うわけだけども
2025.08.04
おはようございます.サブスクリプションというのは怖いなーと思うわけだけども使用する側するからすると美味しいツールだと思います.殆どの人が使い倒すことが出来ないまま毎月お金を支払っている.
自分もネトフリ契約しているけど全く使用しないぐらいこの頃は観ていないのだけども毎月お金を支払っている.そんなサブスクリプションで、この頃恐いサブスクリプションを見つけてしまった.
それがmyIQというIQテストや性格診断や何やら出来るサイトだけども、IQテストを行ったあと結果を知りたい場合、料金を支払うことになる.その時、自動的にサブスクリプションにも同時加入になるので恐い(それが7日間で自動更新だとか怖くない?).その他にもIQテストを結果を見るまでにもその他のサービスを勧めてくるので、全部キャンセルで良いのに人によっては加入する人もいるだろうと.
自分が思うにIQテストの結果は他のIQテストと同等だったので、それなりに合っているとは思います、これが詐欺的だと多分、サブスクリプションの契約は通らないだろうけどそこはちゃんとしているだと思います.

因みにIQテストはまぁまぁになるのだけど自分は賢くはないと思っています.知識もそんなに無いし何せ、面白い話も出来ないしましてや饒舌多弁でもないのだから.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
あと, ぁまぁになるのだけど, お金, キャンセル, こと, これ, サービス, サイト, サブスクリプション, そこ, その他, それ, それなり, ツール, テスト, ネトフリ, まま, わけ, 使用, 全部, 加入, 同時, 同等, 場合, 多弁, 契約, 性格, 料金, 明日, 更新, 殆ど, 毎月, 知識, 結果, 自分, 自動, 自動的, 診断, 詐欺, 饒舌,

Scraper API(スクレイパーAPI)という物を使用すればJS駆動のサイトでもサイトを解析
2025.08.02
おはようございます.Scraper API(スクレイパーAPI)という物を使用すればJS駆動のサイトでもサイトを解析出来るようですね.殆どの近年作られたサイトはどこかしらでJavascriptのコードで動いている部分があるのでスクレイピングが出来ない.
またジャバスクリプトがオンになっていないとページ(サイト)の読み込みが出来ないサイトもあるのが現状だと思います.
そこでScraper API(スクレイパーAPI)というサービスを使用すればそういう解析が出来る.因みにVPSやAWSなどのサーバーだったらNodeJsを導入すれば簡単に解析が出来るのだけど、国内のレンタルサーバーなどでは、そもそもNodeJsがインストール出来ないのである.
スクレイパーAPIの使い方は簡単でPHP言語で使用したい場合はこんな感じです.
<?php
// APIキーと対象URL
$apiKey = 'xxxxxx';
$targetUrl = 'https://example.com?var1=value1&var2=value2';
// GET用のScraperAPIリクエストURLを構築(render=trueでJS有効)
$scraperApiUrl = 'https://api.scraperapi.com?' . http_build_query([
'api_key' => $apiKey,
'url' => $targetUrl,
'render' => 'true' // JavaScriptを有効にする
]);
// cURLでGETリクエスト送信
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $scraperApiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// レスポンス出力
print_r($response);
尚、こちらのコードはGETパターンですがPOSTでも操作出来たりします.SDKもあるのでそちらで対応したほうがやりやすいかもです.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, インストール, オン, かしら, カモ, キー, コード, こちら, サーバー, サービス, サイト, ジャバスクリプト, スクレイパー, スクレイピング, そちら, そもそも, どこ, パターン, ページ, ほう, よう, リクエスト, レスポンス, レンタル, 使い方, 使用, 出力, 国内, 場合, 対応, 対象, 導入, 感じ, 操作, 明日, 有効, 構築, 殆ど, 現状, 簡単, 解析, 言語, 読み込み, 近年, 送信, 部分, 駆動,

ギリまで使うと思うものの続き、MacBook Proを見てきました、30ー32万円する.
2025.08.01
おはようございます.ギリまで使うと思うものの続き、MacBook Proをケーズデンキに行って見てきました、自分がほしいスペックのマックブックプロは30ー32万円する事が判明.正直なところ高いなと思う…昔の手取りなら簡単に買える感じかな.でも今は厳しいので手が届かない感じですね.
これから、マックブックプロ貯金を始めていこうと思います、貯金というかマックブックプロ投資を始めていこうと思っています.普通に貯金するより投資でお金に稼いでもらう感じで投資を行います.毎月その投資口座には一万円を入金する形で頑張っていきます.
自分の予想では購入金額の超えになるには2年ぐらいかと思っています.因みに前もって10万円は口座に入れていますが、この10万円は下ろさないものとして考えて投資額が38万円以上になったら必要な額だけ下ろす形にします.
期間 | 月数 | 元本合計 | 評価額 | 評価益(元本との差額) |
半年後 | 6 | 160,000円 | 165,716円 | 5,716円 |
1年後 | 12 | 220,000円 | 234,323円 | 14,323円 |
1年半後 | 18 | 280,000円 | 306,175円 | 26,175円 |
2年後 | 24 | 340,000円 | 381,429円 | 41,429円 |
2年半後 | 30 | 400,000円 | 460,985円 | 60,985円 |
3年後 | 36 | 460,000円 | 543,911円 | 83,911円 |
4年後 | 48 | 580,000円 | 738,015円 | 158,015円 |
因みに投資運用リスク強度は最大にして運用するので年利8.95%ぐらいになるだろうという考えのもとでの適当な表なので運用が上手くいかないくて目標達成出来ない可能性は大いにあると思ってください.
上手くいかない場合はマックブックプロが買えないので「あー」上手くいってないだなと思って頂いて結構です(※ロボプロはイメージです)(※衝動的に購入する場合もあります).
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
イメージ, お金, キリ, ケーズデンキ, スペック, ところ, ブック, プロ, マック, マックブックプロ, もと, もの, リスク, ロボプロ, 予想, 以上, 元本, 入金, 判明, 半年, 口座, 可能, 合計, 場合, 差額, 年利, 強度, 必要, 感じ, 手取り, 投資, 明日, 普通, 最大, 月数, 期間, 正直, 毎月, 目標, 簡単, 結構, 考え, 自分, 衝動, 評価, 貯金, 購入, 運用, 達成, 適当, 金額,

FastApiのコードをgitで管理するように.あとはテストサーバーのymal
2025.07.31
おはようございます.FastApiのコードをgitで管理するように.あとは自分のテスト環境用のymalもgithub上に置いておこうと思っています.
というのも、そろそろパソコンを買い替えようかなと思っています.もしかしたらウィンドウズ系からサヨナラするかもですが、Apple系は高いからなぁ置き換えるならまずメインのデスクトップから置き換えていかないとどうしようもない.
逆に言えばメインをウィンドウズを使用している間はアップル系には置き換えが難しいということです.今の仕事はWebシステム系なので、どちらかと言えばウィンドウズよりMacが適していると考える人が多いと思う.自分も買い替えたい気持ちがあるのだけども、自作PCの良いところはメンテナンスが自分で出来るところにある.
こういう事はアップル製品には難しい、精々メモリ交換やSSD交換ぐらいのものしか出来ないのが現状かな、なので徐々にアプリやセキュリティ更新に引っかかり新しい製品を購入しないと難しくなる事が多いのだが、自作PC場合は部品交換すると何とかなる事が多い.
そういう事もあって未だにボロパソコンを使用しているだけど、いろいろとガタがでてきているので部品交換するよりもう取っ替えた方が良い感じになりつつある.
そういう訳でウィンドウズかアップル製品にするかを凄く悩んでいます.皆さんならどうしますか?
因みに来年には恐らく買い替えないとどうしようもない感じになりそうです.ギリまで使い倒すとは思うものの…
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アップル, あと, アプリ, ウィンドウズ, ガタ, キリ, コード, こと, サヨナラ, システム, しょう, セキュリティ, そう, デスク, テスト, ところ, どちら, ドップ, パソコン, ボロパソコン, メイン, メモリ, メンテナンス, もの, よう, 交換, 仕事, 使用, 場合, 感じ, 明日, 更新, 来年, 気持ち, 現状, 環境, 皆さん, 管理, 自作, 自分, 製品, 購入, 部品,

馬鹿なことをしてしまった、たまにやらかします.そして凹む.
2025.07.27
おはようございます.自分が運用しているサイトで馬鹿なことをしてしまった、たまにやらかします.そして凹むです.今回やらかしたのは身内は自分が運用しているサイトの広告を表示させないようにするというコードを改修している時にエラーが出て5分ぐらい機能が使えなくなったというやらかし.
原因はイズセットの使い方がお馬鹿さんなコードの書き方をしていたのにも関わらず、その矛盾に気が付かずオロオロしてしまったということ.めちゃ焦ります、サイトの訪問者が少なければ焦らせないですけど、まぁある程度、アクセスがあるサイトなので止まってしまうと焦ります.
そういう時に我に返ることが簡単に出来れば良いのだけども自分の場合はパニクると中々冷静に対応できない所がある.
因みにどんなミスコードかと言えば下記のようなコードになります.イズセットが偽の時に次の判断処理に行くのでエラーになるという事です.本当にやらかしですw
皆さんもこんな凡ミスをしないようにリリースする前にはローカル環境でチェックとユニットテストをお忘れなくーーー!
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
ーーー, アクセス, イズセット, エラー, コード, こと, サイト, サン, たま, チェック, テスト, パニク, ミス, ユニット, よう, リリース, ローカル, 下記, 今回, 使い方, 冷静, 処理, 判断, 原因, 場合, 対応, 広告, 改修, 明日, 書き方, 機能, 環境, 皆さん, 矛盾, 簡単, 自分, 表示, 訪問, 身内, 運用, 馬鹿,

チャットワークのAPIを使ってみました.プロンプトでほぼ書いています.
2025.07.13
おはようございます.チャットワークのAPIを使ってみました.プロンプトでほぼ書いたコードになります、チャットGPTの無料版にリファレンスのURLリンクとPHPのクラス化、リターンに$thisで返却出来る所は$thisを使用してスマートにコードを書いてと指示を出しました.
出来上がったコードが下記になります.ソースコードは自分の方でモンキーテスト的に動かしてみましたが、ちゃんと動作するようです.
<?php
class ChatworkClient
{
private string $apiToken;
private string $baseUrl = 'https://api.chatwork.com/v2';
private int $retryCount = 3;
private int $retryDelay = 1000000; // microseconds
public function __construct(string $apiToken)
{
$this->apiToken = $apiToken;
}
public function setRetry(int $count, int $delayMicroseconds): self
{
$this->retryCount = $count;
$this->retryDelay = $delayMicroseconds;
return $this;
}
private function request(string $method, string $path, array $params = []): array
{
$attempts = 0;
while ($attempts < $this->retryCount) {
$attempts++;
$ch = curl_init();
$url = $this->baseUrl . $path;
if ($method === 'GET' && $params) {
$url .= '?' . http_build_query($params);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = ['X-ChatWorkToken: ' . $this->apiToken];
if (in_array($method, ['POST', 'PUT', 'DELETE'])) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
if ($attempts < $this->retryCount) {
usleep($this->retryDelay);
continue;
}
throw new RuntimeException("cURL error after {$attempts} attempts: {$error}");
}
if ($status >= 200 && $status < 300) {
return [
'status' => $status,
'body' => $body ? json_decode($body, true) : null,
];
}
if ($attempts < $this->retryCount && $status >= 500) {
usleep($this->retryDelay);
continue;
}
return [
'status' => $status,
'body' => $body ? json_decode($body, true) : null,
];
}
throw new RuntimeException("Request failed after {$this->retryCount} attempts");
}
public function setToken(string $token): self
{
$this->apiToken = $token;
return $this;
}
public function me(): array
{
return $this->request('GET', '/me');
}
public function getMyStatus(): array
{
return $this->request('GET', '/my/status');
}
public function getMyTasks(array $filters = []): array
{
return $this->request('GET', '/my/tasks', $filters);
}
public function getContacts(): array
{
return $this->request('GET', '/contacts');
}
public function getRooms(): array
{
return $this->request('GET', '/rooms');
}
public function createRoom(array $params): array
{
return $this->request('POST', '/rooms', $params);
}
public function getRoom(int $roomId): array
{
return $this->request('GET', "/rooms/{$roomId}");
}
public function updateRoom(int $roomId, array $params): array
{
return $this->request('PUT', "/rooms/{$roomId}", $params);
}
public function deleteRoom(int $roomId, string $action = 'leave'): array
{
return $this->request('DELETE', "/rooms/{$roomId}", ['action_type' => $action]);
}
public function getMembers(int $roomId): array
{
return $this->request('GET', "/rooms/{$roomId}/members");
}
public function updateMembers(int $roomId, array $params): array
{
return $this->request('PUT', "/rooms/{$roomId}/members", $params);
}
public function getMessages(int $roomId, bool $force = false): array
{
return $this->request('GET', "/rooms/{$roomId}/messages", ['force' => $force ? 1 : 0]);
}
public function postMessage(int $roomId, string $body, bool $selfUnread = false): self
{
$this->request('POST', "/rooms/{$roomId}/messages", ['body' => $body, 'self_unread' => $selfUnread ? 1 : 0]);
return $this;
}
public function markRead(int $roomId): self
{
$this->request('PUT', "/rooms/{$roomId}/messages/read");
return $this;
}
public function markUnread(int $roomId): self
{
$this->request('PUT', "/rooms/{$roomId}/messages/unread");
return $this;
}
public function getMessage(int $roomId, int $messageId): array
{
return $this->request('GET', "/rooms/{$roomId}/messages/{$messageId}");
}
public function getRoomTasks(int $roomId, array $filters = []): array
{
return $this->request('GET', "/rooms/{$roomId}/tasks", $filters);
}
public function createTask(int $roomId, array $params): array
{
return $this->request('POST', "/rooms/{$roomId}/tasks", $params);
}
public function uploadFile(int $roomId, string $filePath, string $message = ''): array
{
if (!file_exists($filePath)) {
throw new InvalidArgumentException("File not found: {$filePath}");
}
$ch = curl_init();
$url = $this->baseUrl . "/rooms/{$roomId}/files";
$cfile = curl_file_create($filePath);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ChatWorkToken: ' . $this->apiToken]);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $cfile, 'message' => $message]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
return ['status' => $status, 'body' => json_decode($body, true)];
}
}
人が今回のコードを書いた場合、早い人でも10分ぐらいはコードを書かないといけないと思います、どんなに早くてもそれぐらいの時間は必要だと思いますが、生成AIはこれを数十秒で書ける訳ですから、確実に時間短縮になります.
なので人工知能が使える現場は間違いなく最初のコード出力は人工知能に任せた方が良いです.特に新規案件の土台は生成AIに任せると開発コストは削減出来ます.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, クラス, コード, コスト, これ, スマート, ソース, それ, チャット, テスト, プロンプト, モンキー, よう, リターン, リファレンス, リンク, ワーク, 下記, 人工, 今回, 使用, 出力, 削減, 動作, 土台, 場合, 必要, 指示, 新規, 明日, 時間, 最初, 案件, 無料, 現場, 生成, 知能, 短縮, 確実, 自分, 返却, 開発, 間違い,

laravelはenvで設定するのがベターですけど、そうではない環境もenvで
2025.07.11
おはようございます.laravelはenvで設定するのがベターですけど、そうではない環境もenvで構築した方が良いです、なぜかと言えばテスト環境との切り替えが簡単になるということなんです.
使い方はこんな感じまずComposerのライブラリをインストールします.
composer require vlucas/phpdotenv
次に使用方法はこんな感じです.こうしとけば結構楽になりますし使いまわしの時に便利です、Laravel(ララベル)ってライブラリの纏まりで構築されているのでワードプレスの環境でも組み込む事は可能です.自分が使用しているのはenv周りとデータベース周りのライブラリです.
require_once __DIR__ . '/vendor/autoload.php';
use Dotenv\Dotenv;
// .env ファイルを読み込む
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
// 環境変数の取得
echo getenv('APP_NAME'); // ✅ OK
echo $_ENV['APP_NAME']; // ✅ OK
echo env('APP_NAME'); // ❌ Laravel外では未定義
そうそう.envをルート上に置いている場合は.htaccessに下記の記述を書くことをお忘れなく!!これを置いていない場合は筒抜けになります(エンジンエックスの場合も記載しときますね).
<Files .env>
require all denied
</Files>
location ~ /\.env {
deny all;
}
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, インストール, エックス, エンジン, こと, これ, データベース, テスト, ファイル, プレス, ベター, ライブラリ, ララベル, ルート, ワード, 下記, 使い方, 使用, 便利, 切り替え, 取得, 可能, 周り, 場合, 変数, 定義, 感じ, 方法, 明日, 構築, 環境, 筒抜け, 簡単, 自分, 記載, 記述, 設定,

格安SIMでも4Gから5Gに切り替える事が無料で出来るみたい.
2025.07.07
おはようございます.格安SIMでも4Gから5Gに切り替える事が無料で出来るみたいだったので、早速切り替えてみました.5G帯域を使用できるようになるには、ちょっと時間が掛かりましたがこれで外で使用するときは5Gで使用出来ます.
5G帯域が役に立つのは自分の場合は当分の間無いかなと思っています、平日はリモートワークなのでwifi環境下にいるのでほぼモバイル通信費がかからないです.
そう思っていたのですが、休みの日に外で勉強する時間を設けようと今思っていてその時にディザリングすることもあるので、そういう時に使用すると結構便利なんじゃないかなって思っていて近日中に試してみたいと思います.
トイウコトで近日中にオーテピア高知図書館に出かけてみます.カーミルでも良かったのですが高知市の方はミリ波もカバーしているようなので速いかなと思っています.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
オーテピア, カー, カバー, こと, これ, ディザリング, トイウコト, とき, みたい, ミリ, ミル, モバイル, よう, リモート, ワーク, 休み, 使用, 便利, 勉強, 図書館, 場合, 帯域, 平日, 当分, 明日, 時間, 格安, 無料, 環境, 自分, 近日, 通信, 高知,

FF11オンラインを一時停止しました、やっぱ続かない
2025.07.06
おはようございます.FF11オンラインを一時停止しました、やっぱ続かないなぁー.ソロでレベルアップが大変なのともう一つは時間が勿体ないと感じるので、どうもゲームのソロは続かない感があります.そもそもRPG系に費やす普通の人のプレイ時間よりもかなり少ないのです.
因みにFF16もFF7リバースもまだ攻略していません、まだまだ時間がかかりそうです.そもそも月に一回ゲームをプレイしたら良い方で休日にゲームに費やす時間よりもボーっとしてたり、コードを買いたり映画観たりしている方が多いです.
あと本を読んだりしていることの方が多くてゲームに時間を避けないのが現状かな?
ゲームをしてなにか得ることもあるのだけども、まぁあんまり無いかな.これがオンラインゲームで仲間がいれば違う可能性がありますが、どちらと言えば仲間の輪に入るタイプではなく、一人の方が楽だなって感じるタイプです.
人生のなかで仕事が無くなればどれぐらい時間が余るのだろうかと思った時、自分の場合、あんま余暇に時間を割いている時間はあんまない気がしています、例えばブログを書いたり創作したりと何かしら手を動かすしたりして何か活動していると思います.
因みに今の学生さんが大人になる頃には仕事は肉体労働しかないじゃないかなって思うぐらい人工知能のIQは上がっています.多分、20年後には仕事の量はいまの半分ぐらいまで少なくなっている可能性があります.昔、学校崩壊というものがありましたが、これからは仕事崩壊という事が中小企業や零細企業から起こる気がしています.
学校崩壊というのは今もあるか分からないけど、教師の話を聞かずに生徒が好き勝手行動するようになることです、それを防ぐ為に今では教員二名体制になっているようです、その大人版が会社でも起こるような気がしています.会社の場合はクビにすれば済むことですけど下手すると倒産するケースも出てきそうです.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
あと, あんま, いま, オンライン, クビ, ケース, ゲーム, コード, こと, これ, サン, そう, そもそも, それ, ソロ, タイプ, どちら, どれ, なか, なに, プレイ, ブログ, ぼー, もの, よう, リバース, レベルアップ, 一つ, 一時, 下手, 中小, 人工, 人生, 仕事, 仲間, 企業, 休日, 会社, 体制, 余暇, 倒産, 停止, 創作, 労働, 勝手, 半分, 可能, 場合, 大人, 大変, 好き, 学校, 学生, 崩壊, 攻略, 教員, 教師, 明日, 映画, 時間, 普通, 活動, 現状, 生徒, 知能, 肉体, 自分, 行動, 零細,

Llama-3-ELYZA-JP-8Bとは何か?モデルという奴です.
2025.07.03
おはようございます.Llama-3-ELYZA-JP-8Bは、MetaのLlama 3(8Bパラメータ)をベースに、日本語の指示応答能力を強化するためELYZAがファインチューニングした日本語特化型の大規模言語モデルです。
ではモデルとは何か?モデルとは、データからパターンやルールを学習し、新しい入力に対して予測や生成を行うための数学的・計算的な仕組みやプログラムのことです。
今回、自分が試したのはLlama-3-ELYZA-JP-8Bの一番軽量ものを試してみました.軽量すぎてたまに回答が無限ループに陥ることがあります.これはカーソル(cursor)やディビン系でも無限ループに陥ることがあるらしいです.俗に言うトークン食いですね.
トークン食いが一度発生すると次のプロンプトにも影響が出る場合があるので、一度離脱して再度プロンプトを投げることで回避出来るようです.
因みにモデルをCPUで動かしたい場合は、llama.cpp
で動かすようにするのだけど、既存のモデルをggufに一度、変換してあげる必要があります.そうすることでグラボが貧弱でも動きます.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
カーソル, グラボ, クン, こと, これ, ため, データ, ディビン, トー, パターン, パラメータ, ファインチューニング, プログラム, プロンプト, ベース, モデル, もの, よう, ループ, ルール, 一番, 予測, 今回, 仕組み, 入力, 回答, 回避, 場合, 変換, 学習, 強化, 影響, 必要, 応答, 指示, 数学, 既存, 日本語, 明日, 無限, 生成, 発生, 能力, 自分, 規模, 言語, 計算, 貧弱, 軽量, 離脱, 食い,

GeminiCliを使ってみました、まぁまぁ使えるかもしれない.
2025.06.30
おはようございます.GeminiCliを使ってみました、まぁまぁ使えるかもしれないというのが第一印象です、ただデザイン修正には使えそうにない.デザインを提示すればその通りになおしてくれると思うのだけどテキストだけの指示ではなかなか難しいと感じました.
ディレクトリ配下にあるソースコードを読ます場合は下記のようなプロンプトを一度打つとスムーズに機能追加してくれるので良いですよ.
コードベースを把握して
最初にこの言葉をGeminiに投げることでどんな機能のプログラムコードなのか把握します.これがないと駄目な訳でもないだけどもスムーズに指示出しが出来ます.
特定のコードに対して修正やらを書けたい場合は@(アットマーク)を入力するとソースコードの候補が表示されるので選択をしてプロンプトを指示を出すと良いです.
あとGeminiCliを終了する場合は下記のコマンドを打てば終了します.
/exit
!を入力しls -aなどと入力するとMacの場合は階層のファイル一覧が表示されます的なことも出来ます.

ともあれ、ジェミナイ(ジェミニ)は無料で使用できるトークンも他よりも比較的に多いので自分としてはかなり嬉しいです、休日の個人開発はこれで何とか頑張っていけそうです.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
あっとまーく, あと, コード, こと, コマンド, これ, ジェミナイ, ジェミニ, スムーズ, ソース, そう, ディレクトリ, テキスト, デザイン, トーク, ファイル, プログラム, プロンプト, ベース, よう, 一覧, 下記, 休日, 使用, 修正, 個人, 候補, 入力, 出し, 印象, 場合, 把握, 指示, 提示, 明日, 最初, 機能, 比較, 無料, 特定, 終了, 自分, 表示, 言葉, 追加, 通り, 選択, 配下, 開発, 階層, 駄目,

AIで記事を学習して新たな記事を生み出すにはお金が必要だと思っていたがそうでも.
2025.06.22
おはようございます.AIで記事を学習して新たな記事を生み出すにはお金が必要だと思っていたがそうでもなくローカルPCでそこら辺に落ちているLlamaモデルを持ってきてチューニングすれば何とかなるじゃねぇという思いに至った.
実はあなたの手元にあるPCと、そこら中に「落ちている」オープンソースのAIモデル、特にLlama 3があれば、十分記事が生成できるんです。
ローカルAI記事生成は、もはや夢物語じゃない
「AIで記事生成」と聞くと、SFのような世界や、大企業だけが使える特権のように感じるかもしれません。しかし、今は違います。オープンソースの強力な言語モデル、特にMetaが公開したLlama 3の登場は、この常識を大きく覆しました。
Llama 3は、その性能の高さにもかかわらず、誰でも無料で利用できるという点が最大の魅力です。さらに、80億パラメータの8Bモデルであれば、最新のゲーミングPCとまではいかなくとも、ある程度の性能を持つPCであれば十分に動作します。これにより、高額なクラウドサービスを利用せずとも、自分のPCでAI記事生成の環境を構築することが現実的になりました。
なぜLlama 3があなたのPCと相性抜群なのか?
Llama 3がローカルPCでの記事生成に適している理由はいくつかあります。
- 完全無料のオープンソース: 利用に費用がかからないため、予算を気にせずAIを試したり、本格的に導入したりできます。
- 選べるモデルサイズ: Llama 3には様々なサイズのモデルがあり、PCのスペックに合わせて選べます。特に8Bモデルは、個人利用に最適なバランスを持っています。
- 活発な開発者コミュニティ: 世界中の開発者がLlama 3を使った新しいツールや効率的なチューニング方法を日々共有しています。困ったときには助けを借りられる心強い味方です。
- 「量子化」でさらに軽量に: モデルのサイズを大幅に小さくする「量子化」という技術を使えば、より少ないメモリでLlama 3を動かせるようになります。これにより、より多くのPCで利用の道が開けます。
あなたのPCを「記事生成マシン」に変える秘訣
もちろん、いきなりプロのライター並みの記事をAIに書かせるのは難しいかもしれません。しかし、ちょっとした工夫で「何とかなる」レベルの記事生成は十分に可能です。
- 少量のデータでファインチューニング: 大量の記事データは不要です。あなたが書きたい記事のテーマやスタイルに合った、質の良い記事を数十〜数百程度集めてLlama 3を学習(ファインチューニング)させれば、その分野に特化した記事生成能力が格段に向上します。
- プロンプト(指示文)の工夫: AIへの「指示の出し方」は非常に重要です。具体的で明確なプロンプトを与えることで、チューニングが完璧でなくても、驚くほど質の高い記事が生成できます。これはまるで、優秀なアシスタントに的確な指示を出すようなものです。
- 効率的な学習方法の活用: 「LoRA(Low-Rank Adaptation)」のような効率的なファインチューニング手法を使えば、少ないGPUメモリでも短時間でモデルを特定のタスクに最適化できます。
あなたの創造性が、今、AIで加速する
かつては一部の専門家や企業にしか手の届かなかったAIによる記事生成が、今やあなたのPCで実現できる時代になりました。これはまさにAI技術の「民主化」です。
とまぁそういう訳なので何とかしてみますが、ファインチューニングにどれぐらい時間がかかるのかが未知数だったりする.
ファインチューニングPythonコード
以下のPythonコードは、Llama 3モデルをロードし、提供されたテキスト記事でファインチューニング(LoRA使用)を実行し、結果を保存します。 上記の入力値は、このコードに自動的に反映されます。 このコードをPythonファイル(例: `finetune_llama.py`)として保存し、実行してください。
import os
import torch
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, TrainingArguments, Trainer
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training, TaskType
# GPUの利用可能性を確認
print("GPUが利用可能か確認中...")
if not torch.cuda.is_available():
print("GPUが見つかりません。Fine-tuningにはGPUが強く推奨されます。")
# GPUがない場合は、ここでスクリプトを終了するか、CPUモードで続行するか選択できます。
# exit("GPUがないため終了します。")
else:
print(f"GPUが利用可能です: {torch.cuda.get_device_name(0)}")
# --- 1. モデルとトークナイザーのロード ---
# Llama 3モデルのパスを指定します。Hugging Faceのモデル名(例: "meta-llama/Llama-3-8B")
# またはローカルにダウンロードしたモデルのパスを指定してください。
MODEL_NAME = "meta-llama/Llama-3-8B" # ユーザーが入力したパスがここに挿入されます
print(f"モデルとトークナイザーをロード中: {MODEL_NAME}")
# 4bit量子化設定 (GPUメモリの節約に役立ちます)
# bnb_4bit_compute_dtypeは、Ampere以降のNVIDIA GPUに推奨されるbfloat16を使用しています。
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4", # NF4 (NormalFloat4) 量子化タイプ
bnb_4bit_compute_dtype=torch.bfloat16
)
# トークナイザーをロード
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
# Llama 3はデフォルトでbos_tokenを付与しないことがあるため、明示的に追加。
# また、padding_side='right'はLlamaモデルに推奨される設定です。
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"
# モデルをロードし、量子化設定を適用し、自動的にGPUにマッピングします。
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
quantization_config=bnb_config,
device_map="auto", # 利用可能なデバイス(GPU)に自動的にモデルを分散
trust_remote_code=True # リモートコードの実行を許可
)
print("モデルロード完了。")
# k-bit学習用にモデルを準備 (PEFTライブラリのため)
# gradient_checkpointingを有効にすることで、メモリ使用量をさらに削減できます。
model.gradient_checkpointing_enable()
model = prepare_model_for_kbit_training(model)
print("k-bit学習用にモデルを準備しました。")
# --- 2. データセットの準備 ---
# あなたのテキスト記事ファイルが格納されているディレクトリを指定します。
# 例: 'your_article_data/' の中に 'article1.txt', 'article2.txt', ... と置かれている場合
DATA_DIR = "./your_article_data/" # ユーザーが入力したパスがここに挿入されます
print(f"データセットをロード中: {DATA_DIR}")
# 'text'形式でデータセットをロードします。指定されたディレクトリ内のすべての.txtファイルを読み込みます。
# 各ファイルが1つのエントリとして扱われます。
try:
dataset = load_dataset('text', data_files={'train': os.path.join(DATA_DIR, '*.txt')})
print(f"データセットのサンプル数: {len(dataset['train'])}")
except Exception as e:
print(f"データセットのロード中にエラーが発生しました。ディレクトリとファイル形式を確認してください: {e}")
exit("データセットロード失敗。")
# データセットをトークン化する関数
# 長い記事をモデルの最大入力長に分割します。
def tokenize_function(examples):
# Llama 3の最大入力長は通常8192ですが、お使いのGPUのVRAMに合わせて調整してください。
# ここでは一般的な値として2048を設定しています。
max_length = 2048
# truncate=Trueで最大長を超えるテキストを切り捨てます。
return tokenizer(examples["text"], truncation=True, max_length=max_length)
# データセットをトークン化します。
# num_procはCPUコア数に応じて並列処理を行い、処理を高速化します。
tokenized_dataset = dataset.map(
tokenize_function,
batched=True,
num_proc=os.cpu_count(),
remove_columns=["text"] # 元のテキスト列は学習に不要になるため削除します。
)
print("データセットのトークン化が完了しました。")
# --- 3. PEFT (LoRA) の設定 ---
# LoRA (Low-Rank Adaptation) は、元のモデルの重みをフリーズし、
# 小さなアダプター層を追加して学習させることで、効率的にファインチューニングを行います。
# これにより、GPUメモリの使用量を抑えつつ、高い性能を実現できます。
lora_config = LoraConfig(
r=16, # LoRAのランク。値を大きくすると表現力が増すが、メモリ消費も増える。
lora_alpha=32, # LoRAのスケーリング係数。rの2倍程度が推奨されることが多いです。
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], # LoRAを適用する層。Llamaモデルで一般的な層。
bias="none", # バイアスを学習しない設定。
lora_dropout=0.05, # ドロップアウト率。過学習を防ぐために設定します。
task_type=TaskType.CAUSAL_LM, # タスクタイプを因果言語モデルに設定。
)
# モデルにLoRAアダプターを追加します。
model = get_peft_model(model, lora_config)
print("モデルにLoRAアダプターを適用しました。")
model.print_trainable_parameters() # 学習可能なパラメータ数を確認します。
# --- 4. 学習の実行 ---
# 学習済みモデルを保存するディレクトリ
OUTPUT_DIR = "./llama3_finetuned_model/" # ユーザーが入力したパスがここに挿入されます
# 学習の設定
training_args = TrainingArguments(
output_dir=OUTPUT_DIR,
num_train_epochs=3, # エポック数。データセットのサイズと希望する精度に応じて調整してください。
per_device_train_batch_size=1, # GPUあたりのバッチサイズ。VRAMが少ない場合は1に設定。
gradient_accumulation_steps=4, # 勾配を蓄積するステップ数。実質的なバッチサイズは per_device_train_batch_size * gradient_accumulation_steps になります。
optim="paged_adamw_8bit", # 8bit AdamWオプティマイザを使用し、メモリ効率を向上させます。
save_steps=500, # 500ステップごとにモデルを保存します。
logging_steps=100, # 100ステップごとにログを出力します。
learning_rate=2e-4, # 学習率。
fp16=True, # 混合精度学習を有効化 (GPUが対応している場合)。VRAM削減と高速化に寄与します。
max_steps=-1, # num_train_epochsに基づいて学習します。
group_by_length=True, # 同じ長さのシーケンスをグループ化し、パディングを削減します。
lr_scheduler_type="cosine", # 学習率スケジューラーのタイプ。
warmup_ratio=0.03, # ウォームアップ比率。
report_to="none", # レポート先を指定しない (wandbなどを使用しない場合)。
)
# トレーナーの初期化
# data_collatorは、モデルの入力形式に合わせてデータを整形します。
trainer = Trainer(
model=model,
train_dataset=tokenized_dataset["train"],
args=training_args,
data_collator=lambda data: {
'input_ids': torch.stack([f['input_ids'] for f in data]),
'attention_mask': torch.stack([f['attention_mask'] for f in data]),
'labels': torch.stack([f['input_ids'] for f in data]), # 因果言語モデルでは、入力自体がラベルとなります。
},
)
# 学習の開始
print("Fine-tuningを開始します...")
trainer.train()
print("Fine-tuningが完了しました。")
# --- 5. 学習済みモデルの保存 ---
# LoRAアダプターのみを保存します。これにより、ファイルサイズが小さく、効率的に管理できます。
trainer.save_model(OUTPUT_DIR)
print(f"学習済みLoRAアダプターが '{OUTPUT_DIR}' に保存されました。")
# 保存したアダプターを使って推論を行う方法の例 (コメントアウトされています):
# このコードは、ファインチューニング後にモデルをロードして推論を行うための参考例です。
# from peft import PeftModel
#
# # 元のモデルをロード (学習時と同じ量子化設定を使用します)
# base_model = AutoModelForCausalLM.from_pretrained(
# MODEL_NAME,
# quantization_config=bnb_config,
# device_map="auto",
# trust_remote_code=True
# )
#
# # 保存したLoRAアダプターを元のモデルに結合します。
# peft_model = PeftModel.from_pretrained(base_model, OUTPUT_DIR)
#
# # 推論モードに設定します。
# peft_model.eval()
#
# # テキスト生成の例
# prompt = "ローカルPCでのLlama 3ファインチューニングの利点とは"
# inputs = tokenizer(prompt, return_tensors="pt").to("cuda") # 入力をGPUに移動
#
# with torch.no_grad(): # 勾配計算を無効化し、メモリ使用量を削減
# outputs = peft_model.generate(
# **inputs,
# max_new_tokens=200, # 生成する新しいトークンの最大数
# do_sample=True, # サンプリングによる生成を有効化
# top_p=0.9, # Nucleusサンプリングの閾値
# temperature=0.7, # 生成の多様性を制御する温度
# eos_token_id=tokenizer.eos_token_id # 終了トークンID
# )
# print("\n--- 生成されたテキスト ---")
# print(tokenizer.decode(outputs[0], skip_special_tokens=True))
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, ;;), )。, アウト, アシスタント, アダプター, あたり, アップ, あなた, いくつ, ウォーム, エポック, エラー, エントリ, オープン, オプティマイザ, お金, クラウドサービス, グループ, クン, ゲーミング, コード, コア, ここ, こと, コミュニティ, コメント, これ, サイズ, サンプリング, サンプル, シーケンス, スクリプト, スケーリング, スケジューラー, スタイル, ステップ, スペック, すべて, ソース, そこら, タイプ, ダウンロード, タスク, ため, チューニング, ツール, データ, データセット, テーマ, ディレクトリ, テキスト, デバイス, デフォルト, トー, トークナイザー, とき, どれ, トレーナー, ドロップ, バイアス, パス, バッチ, パディング, パラメータ, バランス, ファイル, ファイルサイズ, ファインチューニング, ファインチューニングコード, フリーズ, プロ, プロンプト, マシン, マッピング, メモリ, モード, モデル, もの, ユーザー, よう, ライター, ライブラリ, ラベル, ランク, リモート, レベル, レポート, ローカル, ロード, ログ, 一般, 一部, 上記, 不要, 世界, 世界中, 並み, 並列, 予算, 付与, 以下, 以降, 企業, 使い, 使用, 係数, 保存, 個人, 優秀, 入力, 公開, 共有, 具体, 処理, 出力, 分割, 分散, 分野, 初期, 利点, 利用, 制御, 削減, 削除, 創造, 加速, 助け, 効率, 動作, 勾配, 十分, 参考, 反映, 可能, 向上, 味方, 因果, 場合, 多様, 夢物語, 大幅, 大量, 失敗, 学習, 完了, 完全, 完璧, 実現, 実行, 実質, 寄与, 対応, 専門, 導入, 少量, 工夫, 希望, 常識, 強力, 形式, 必要, 思い, 性能, 手元, 手法, 技術, 抜群, 指定, 指示, 挿入, 推奨, 推論, 提供, 整形, 新た, 方法, 日々, 明日, 明確, 明示, 時代, 時間, 最大, 最新, 最適, 有効, 未知数, 本格, 格段, 格納, 構築, 様々, 比率, 民主, 活用, 活発, 消費, 混合, 済み, 温度, 準備, 無効, 無料, 特定, 特権, 現実, 理由, 環境, 生成, 発生, 登場, 的確, 相性, 短時間, 確認, 秘訣, 移動, 程度, 管理, 節約, 精度, 終了, 結合, 結果, 続行, 能力, 自体, 自分, 自動的, 蓄積, 表現, 言語, 計算, 記事, 設定, 許可, 調整, 費用, 軽量, 追加, 通常, 適用, 選択, 重み, 重要, 量子, 開始, 開発, 関数, 閾値, 非常, 高速, 高額, 魅力,

強制アプリ開発します.8月半ばまでに作らないとアカウントが停止.
2025.06.12
おはようございます.強制的にアプリ開発します.8月半ばまでに作らないとアカウントが停止されるので解除条件として定義されている、既存のアプリをアップデートさせるか、新たなアプリをリリースするか.
既存のアプリは非公開にしているので自分の場合、無条件で何でも良いのでアプリをひとつリリースの選択肢しかない.
まだ一ヶ月ぐらい先なので余裕はあるものの、アイデアが出ないので今の既存のサービスをアプリ化しようと思っています.
今回は広告掲載とか出来ればしたいなと思っているのだけども審査を通過するかは未知数ですね.ちなみに今回はReact Nativeで作ろうと思っています.少しだけReactを触ったことがあるのでReactNativeは開発するに当たって学習コストがかなり低いという事もありリアクトネイティブで開発します.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代後半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アイデア, アカウント, アップデート, アプリ, ヶ月, コスト, こと, サービス, ひとつ, リアクトネイティブ, リリース, 今回, 余裕, 停止, 半ば, 場合, 学習, 定義, 審査, 広告, 強制, 掲載, 新た, 既存, 明日, 未知数, 条件, 無条件, 自分, 解除, 通過, 選択肢, 開発, 非公開,

dockerでlaravel環境構築したお話。 #hosts
2022.12.08
おはようございます、今日は早朝に明日の記事を書いています😆。
さて、dockerでlaravel環境構築したお話を書いていきます、Dockerの環境でApacheをインストールし、バーチャルホストを設定してwindows側のhostsも変更しDocker側のhostsも設定、起動確認も取れたので、一旦Dockerを終了し再度立ち上げるとDocker側のhostsが初期値に戻っている🤔。
これDockerの仕様らしいので、下記のようにdocker-compose.ymlを設定(extra_hosts)するか、Docker runでコンテナを立ち上げる場合はパラメーター–add-hostを付与してあげないといけない😳。
version: "3"
services:
web:
image: almalinux:latest
container_name: Apache_v2.4
ports:
- 80:80
privileged: true
command: /sbin/init
extra_hosts:
- "example1.com:127.0.0.1"
- "example2.com:127.0.0.1"
volumes:
- E:\var\www\html:/var/www/html
docker run --add-host=example1.com:127.0.0.1 .....
尚、Docker側のhostsを変更しないまま、立ち上げてもLaravelは動かないと思います。何故、動かないかはここでは割愛させて頂きます🙇。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
--add-host, 3, almalinux, ap, Apache, container, docker, docker-compose, extra, hosts, image, Laravel, latest, name, quot, run, services, Version, web, Windows, yml, インストール, お話, これ, こんてな, バーチャル, パラメーター, ホスト, 一旦, 下記, 今日, 仕様, 付与, 側, 再度, 初期, 場合, 変更, 早朝, 明日, 構築, 環境, 確認, 終了, 記事, 設定, 起動,

JavaScriptでWebstorage使ってますか?🤔 #webstorage #javascript #cookie
2022.12.04
おはようございます。二日酔いです、遅めの更新🍃。
今日は今までフロントエンド側で使用していたcookieの処理コードをwebstorageに置き換えた理由と使い方のコードを記載します、JSでCookieを取り出すコードを書く場合、バニラコードで書くかライブラリを使用して書くかだと思います。自分は前者で、とにかくCookieで保存したものを取り出すのに無駄にコードを書いていましたので、そろそろコードを直そうと思ってwebstorageを採用しました。
webstorageを採用した理由は自分が保管するデータはそれ程、容量を食わないしローカル保存(ブラウザ側保存)で十分な情報だったのでwebstorageを採用しました。そして何より、もう殆どのブラウザで使用できるようになっただろうという考えの元、コードを改修しました。
今まで情報の呼び出しするのに数行書いていたものが、1行のコードで参照できるというのは本当に素晴らしいことです💯。
呼び出すコードはこちら
localStorage.getItem("bgcolor_code")
値を保存するコードはこちら
localStorage.setItem("bgcolor_code",color)
その他に削除やクリアするコードやSessionで保存するコード等も存在します、もし詳しく知りたい場合は上記のTwitterのリンクを辿ると情報にたどり着くはずです。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
COOKIE, javascript, JS, webstorage, エンド, コード, データ, バニラ, ブラウザ, フロント, もの, ライブラリ, ローカル, 二日酔い, 今日, 使い方, 使用, 保存, 保管, 元, 処理, 前者, 場合, 容量, 情報, 採用, 改修, 更新, 殆ど, 無駄, 理由, 自分, 記載,

chart.jsでデモを試してみました。📈 #javascriptcode
2022.11.18
おはようございます、朝が早いですねと言われますが、夜が早いだけです😅。
さて、今日はchart.jsのデモを試してみました。売上のグラフとかコレで作るのが一番じゃないかなと思うライブラリですね。動画で編集してみせたのは二箇所ですが、実際、業務で使用する場合は3箇所ほど変更して使用しないといけないのかなって。
そういう訳で、こちらのブログにソース・コードを貼り付けておきます。
const ctx = document.getElementById('myChart');
let data = [12, 19, 3, 19, 2, 3];
new Chart(ctx, {
type: 'bar',
data: {
labels: ['demo1', 'demo2', 'demo3', 'demo4', 'demo5', 'demo6'],
datasets: [{
label: '# of Votes',
data: data,
borderWidth: 1
}]
},
options: {
scales: {
x: {
beginAtZero: true
}
}
}
});
業務で変更しないといけない最低限3箇所はこちらです~😆。
- ラベル
- データーセットの中のラベル
- データーセットの中のデータ
上記の3箇所を売上のデータや何やらに使用することで活用できるかと思います。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
12, 19, 2, 3, 39, bar, chart, const, ctx, data, document, getElementById, javascriptcode, JS, let, myChart, new, type, グラフ, コード, こちら, コレ, ソース, デモ, ブログ, ライブラリ, 一, 二, 今日, 使用, 動画, 場合, 変更, 夜, 実際, 朝, 業務, 編集, 訳,