@Blog
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。

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
タグ
```, インストール, エックス, エンジン, こと, これ, データベース, テスト, ファイル, プレス, ベター, ライブラリ, ララベル, ルート, ワード, 下記, 使い方, 使用, 便利, 切り替え, 取得, 可能, 周り, 場合, 変数, 定義, 感じ, 方法, 明日, 構築, 環境, 筒抜け, 簡単, 自分, 記載, 記述, 設定,

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

AI時代のマーケティング激変に備えよグーグル検索の60%がクリックされない
2025.07.05
おはようございます.先日、自分が言っていた事は間違いなかったんだなって下記の動画を見て思いました.これから先、SNSとAIを駆使しないと集客出来ない時代になるということですね.要するに検索というものは廃れていくということです.最後にサイトとして残るのはユーザーが体験出来るサイトしか残らないような気もしています.
動画を内容をGeminiに解説してもらいましたのでマーケティングしている人は必見だと思います.
HubSpotのCEO、ヤミニ・ランガン氏が語るAIがビジネスに与える影響についての要点は以下の通りです。
AIの現状と影響
- AI開発の中心はサンフランシスコで、OpenAIやAnthropicがLLMの主導権を争っています [03:54]。
- AIは人間の仕事を「拡張」するものであり、一部の職種では人員削減に繋がる可能性もありますが、営業や開発のように生産性向上により、より多くの人間が必要となる職種もあります [06:30]。
- AmazonやMicrosoftもAIによる効率化と人員削減に言及しています [05:53]。
HubSpotにおけるAIの活用
- HubSpotは2023年にAI中心の製品ロードマップに転換し、社内でもAIを積極的に導入しています [09:50]。
- カスタマーサポートでは、ティア1のサポートチケットの約50%をAIで解決し、人員を維持しながら顧客ベースを拡大しています [10:56]。
- 営業では、AIを活用してアカウント調査、メール作成、会議設定を自動化し、数万件の会議設定に成功しています [11:48]。
- マーケティングでは、AIでウェブサイト訪問者の意図を分析し、パーソナライズされたコンテンツを提供することで、コンバージョン率を80〜100%向上させています [13:26]。
- ヤミニ氏自身も、ChatGPT、Claude、GeminiなどのAIツールを個人的に活用しているとのことです [14:10]。
AIによる検索とSEOの変革
- Google検索のAI概要が直接回答を提供するため、従来のSEOは通用しなくなりつつあります [17:09]。
- 人々がGoogle検索だけでなく、ChatGPTのようなLLMから直接情報を得るようになっているため、ウェブサイトへの訪問者数が減少する可能性があります [18:02]。
- 「AI最適化」という新しい分野が台頭しており、AIが特定の質問に回答できるようにコンテンツを最適化することに焦点を当てています [18:47]。
- HubSpotは、ブログトラフィックの減少に対応するため、ポッドキャスト、メールニュースレター、YouTubeなど、多様なチャネルへのコンテンツ戦略を拡大しています [21:07]。
AIによる営業とカスタマーサービスの変革
- 営業: AIは、アカウント調査、メール作成、デモ準備など、営業担当者の非対面業務の多くを自動化できます [24:22]。
- AIは、通話やメールの記録から自動的に顧客情報をCRMに取り込み、パーソナライズされたメールのドラフト作成などを支援します [25:32]。
- AIは営業における「人間的なつながり」を強化するものであり、置き換えるものではないとヤミニ氏は考えています [28:00]。
- カスタマーサービス: AIはティア1のサポート質問に最適であり、顧客満足度を維持しながら迅速な問題解決を可能にします [29:33]。
- HubSpotの顧客は、AIエージェントによって平均52%のチケット解決率を達成しており、中には80%を解決している顧客もいます [30:56]。
この動画は、AIがビジネスのあらゆる側面に深く浸透し、企業がその変化に適応する必要があることを強調しています。
トイウコトでやっぱりこれから先はECサイトやアンサーサイトはかなりダメージを受けてくると思っています.逆に影響を受けないのはBtoBのサイトなのかも.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
)。, アカウント, アンサーサイト, いた事, ウェブサイト, エージェント, カスタマーサービス, カスタマーサポート, こと, コンテンツ, コンバージョン, サイト, サポート, サンフランシスコ, ため, ダメージ, チケット, チャネル, ツール, つながり, ティア, デモ, トイウコト, ドラフト, ニュースレター, パーソナライズ, ビジネス, ブログトラフィック, ベース, ポッドキャスト, マーケティング, マップ, メール, もの, ヤミニ, ヤミニ・ランガン, ユーザー, よう, ロード, 一部, 下記, 中心, 主導, 人々, 人員, 人間, 仕事, 以下, 企業, 会議, 体験, 作成, 個人, 側面, 先日, 内容, 分析, 分野, 削減, 効率, 動画, 可能, 台頭, 向上, 問題, 営業, 回答, 変化, 変革, 多く, 多様, 対応, 対面, 導入, 平均, 強化, 強調, 影響, 従来, 必要, 必見, 情報, 意図, 成功, 戦略, 担当, 拡大, 拡張, 提供, 支援, 明日, 時代, 最後, 最適, 検索, 業務, 概要, 活用, 浸透, 減少, 満足, 準備, 焦点, 特定, 現状, 生産, 直接, 社内, 積極, 維持, 職種, 自分, 自動, 自動的, 自身, 製品, 要点, 解決, 解説, 言及, 記録, 訪問, 設定, 調査, 質問, 転換, 迅速, 通り, 通用, 通話, 達成, 適応, 開発, 間違い, 集客, 顧客, 駆使,

英語学習にお金を使うように考えを変えます.今まで何度も
2025.07.04
おはようございます.英語学習にお金を使うように考えを変えます.今まで何度も挫折してきた英語学習にお金をかけようと思っています.自分が望むものはサブスクでスマホやPCで勉強が学べるものです.
そういうものを考えたときに浮かぶのがスタディサプリです.スタディサプリみたいなアプリが他にもないのか調べてみました.
自分で調べるのは面倒なのでGeminiさんに調べてもらいました、下記が返答結果になります.
スタディサプリ以外にも、オンラインで学習できるサービスはたくさんあります。対象年齢や学習内容によって様々な選択肢があるので、ご自身の目的やレベルに合わせて検討してみてください。
いくつか代表的な類似サービスやカテゴリーを挙げます。
大手予備校・通信教育系のオンラインサービス
- Z会: 小学生から高校生、大学受験生まで幅広い層に対応した通信教育の老舗。映像授業と丁寧な添削指導が特徴です。
- 進研ゼミ: ベネッセが提供する、小・中・高校生向けの通信教育。タブレット学習やAIを活用した個別最適化された学習が強みです。
- 東進ハイスクール在宅受講コース / 東進オンライン学校: 有名講師による質の高い映像授業が特徴。大学受験に強いです。
- 学研プライムゼミ: 高校生・浪人生向けのハイレベルな映像授業が中心。難関大学対策に特化しています。
- 河合塾One: 河合塾が提供するオンライン学習サービスで、短時間で手軽に学べるコンテンツが特徴です。
AI学習・個別最適化に特化したサービス
- アタマプラス (atama+): AIが生徒の理解度に合わせて最適なカリキュラムを生成し、個別指導のように学習を進められるサービスです。塾や学校への導入も進んでいます。
- すらら: AIが生徒の学習状況を分析し、最適な問題を提供。特に苦手克服や学習習慣の定着に力を入れています。無学年式なので、さかのぼり学習も可能です。
- スマイルゼミ: タブレットを活用した小・中学生向けの通信教育。AIが学習状況に合わせた問題を出題し、定着を促します。
資格取得・ビジネススキル系のオンライン学習サービス
- Schoo (スクー): ビジネススキルやITスキルなど、幅広い分野のオンライン授業をライブ配信や録画で提供しています。
- Udemy (ユーデミー): 世界中の講師が様々な分野の講座を販売しているプラットフォーム。買い切り型で、セール時には大幅割引もあります。
- スタディング: 簿記やITパスポートなど、資格取得に特化したオンライン講座を多数提供しています。
- ユーキャン / ヒューマンアカデミー / 資格のキャリカレ / フォーサイト など: 各種資格取得に特化した通信講座を提供しています。
その他
- N予備校: KADOKAWAとドワンゴが運営する、高校生向けのオンライン学習サービス。多様な講座やプログラミング学習もできます。
- Classi (クラッシー): 学校で導入されていることが多い学習支援プラットフォームで、学習動画やドリルなどが提供されます。
自分で調べるより本当にチャットAIで調べたほうが早いですね便利です、ちなみに生成AIに勉強を教えてもらうという方法もあるようです、自分もある程度身についたらそういう方向にシフトしていくつもりでいますが、何せ土台がガタガタなのでお金をかけて勉強をしようと思っています.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
```, アカデミー, アタマ, アプリ, いくつ, オンライン, お金, ガタガタ, カテゴリー, カリキュラム, キャリカレ, クラッシー, コース, こと, コンテンツ, サービス, サブスク, サン, シフト, スキル, スクー, スタディサプリ, スタディング, スマイル, スマホ, セール, セミ, その他, たくさん, タブレット, チャット, つもり, とき, ドリル, ドワンゴ, ハイスクール, ハイレベル, パスポート, ビジネス, ヒューマン, フォーサイト, プライム, プラス, プラットフォーム, プログラミング, ベネッセ, ほう, みたい, もの, ユーキャン, ユーデミー, よう, ライブ, レベル, 丁寧, 下記, 世界中, 中心, 予備校, 代表, 以外, 便利, 個別, 克服, 内容, 出題, 分析, 分野, 割引, 勉強, 動画, 取得, 受講, 受験, 受験生, 可能, 各種, 向け, 問題, 土台, 在宅, 多数, 多様, 大学, 大幅, 大手, 学年, 学校, 学研, 学習, 定着, 対応, 対策, 対象, 導入, 小・中学生, 小学生, 年齢, 強み, 手軽, 指導, 挫折, 授業, 提供, 支援, 教育, 方向, 方法, 明日, 映像, 最適, 有名, 東進, 検討, 様々, 河合塾, 活用, 浪人, 添削, 特徴, 状況, 理解, 生徒, 生成, 目的, 短時間, 簿記, 結果, 習慣, 老舗, 考え, 自分, 自身, 苦手, 英語, 講師, 講座, 販売, 資格, 返答, 通信, 運営, 選択肢, 配信, 録画, 難関, 面倒, 類似, 高校生,

金高堂の決済方法(支払い方法)がHPに記載されていないので困って調べました.
2025.06.24
おはようございます.よく行く本屋さんに金高堂の山田店や朝倉店などがあるのだけども金高堂店のHPがシンプル過ぎてちょっと困っています.お店の地図や電話番号があるのは有り難いのだけども.決済方法が記載されていないのは、ちょっと困っています.
ニコニコ現金でお支払いが多いかとは思うものの、コロナ以降、高知県でも電子マネーなどで決済する方が増えてきている気がしています.
そんな中で一度、Xで決済方法を聞いた事があります、それ以降に決済方法が増えていたら申し訳ないけども金高堂へ行く皆さんが恐らく知りたい情報の上位にある決済方法は何があるかを記載します.
金高堂本店はQRコード決済は、J-coin Pay、電子マネーはiD、QUICPay、Edyです、他の店舗もこちらは共通で使用可能かと思います.当然、現金決済はどの店舗でも出来ます.QRコード決済方法は良くわからない.図書カードやクオカードは使用できます👍️.
調べていくと金高堂工科大学店はちょっと違うのか、こちらが最新の情報で各店舗、共通の話なのか微妙ですが情報を記載します.
ともあれ、金高堂さんがHPを更新して頂いて決済方法も記載していただければ有り難いなと思いました.それほど難しい話ではない気がしますが・・・.自分としての追加要望はpaypay決済を追加して頂きたいです、何せ日本国内でシェア率No1ですからね.お店側からすると決済手数料が気になるところなのかもですが・・・.
明日へ続く
著者名
@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
タグ
```, ;;), )。, アウト, アシスタント, アダプター, あたり, アップ, あなた, いくつ, ウォーム, エポック, エラー, エントリ, オープン, オプティマイザ, お金, クラウドサービス, グループ, クン, ゲーミング, コード, コア, ここ, こと, コミュニティ, コメント, これ, サイズ, サンプリング, サンプル, シーケンス, スクリプト, スケーリング, スケジューラー, スタイル, ステップ, スペック, すべて, ソース, そこら, タイプ, ダウンロード, タスク, ため, チューニング, ツール, データ, データセット, テーマ, ディレクトリ, テキスト, デバイス, デフォルト, トー, トークナイザー, とき, どれ, トレーナー, ドロップ, バイアス, パス, バッチ, パディング, パラメータ, バランス, ファイル, ファイルサイズ, ファインチューニング, ファインチューニングコード, フリーズ, プロ, プロンプト, マシン, マッピング, メモリ, モード, モデル, もの, ユーザー, よう, ライター, ライブラリ, ラベル, ランク, リモート, レベル, レポート, ローカル, ロード, ログ, 一般, 一部, 上記, 不要, 世界, 世界中, 並み, 並列, 予算, 付与, 以下, 以降, 企業, 使い, 使用, 係数, 保存, 個人, 優秀, 入力, 公開, 共有, 具体, 処理, 出力, 分割, 分散, 分野, 初期, 利点, 利用, 制御, 削減, 削除, 創造, 加速, 助け, 効率, 動作, 勾配, 十分, 参考, 反映, 可能, 向上, 味方, 因果, 場合, 多様, 夢物語, 大幅, 大量, 失敗, 学習, 完了, 完全, 完璧, 実現, 実行, 実質, 寄与, 対応, 専門, 導入, 少量, 工夫, 希望, 常識, 強力, 形式, 必要, 思い, 性能, 手元, 手法, 技術, 抜群, 指定, 指示, 挿入, 推奨, 推論, 提供, 整形, 新た, 方法, 日々, 明日, 明確, 明示, 時代, 時間, 最大, 最新, 最適, 有効, 未知数, 本格, 格段, 格納, 構築, 様々, 比率, 民主, 活用, 活発, 消費, 混合, 済み, 温度, 準備, 無効, 無料, 特定, 特権, 現実, 理由, 環境, 生成, 発生, 登場, 的確, 相性, 短時間, 確認, 秘訣, 移動, 程度, 管理, 節約, 精度, 終了, 結合, 結果, 続行, 能力, 自体, 自分, 自動的, 蓄積, 表現, 言語, 計算, 記事, 設定, 許可, 調整, 費用, 軽量, 追加, 通常, 適用, 選択, 重み, 重要, 量子, 開始, 開発, 関数, 閾値, 非常, 高速, 高額, 魅力,

ビデオポッドキャストをたまにYOUTUBEとSpotifyで見ている.
2025.06.16
おはようございます.ビデオポッドキャストをたまにYOUTUBEとSpotifyで見ています、今日はその話を書いていきます.以前はポッドキャストを聴いていたのだけどビデオポッドキャストが面白いと感じることが多いです.声だけは声だけの良さがあるけど、顔出しのポッドキャストは熱量や雰囲気を感じられることが多いと思っています.
最近聞いているのはアンチが多そうなイケハヤさんも出ている本つまみぐいラジオです、チャンネル登録者数は全然少ないけども3人の語らいが良いなと思います.人となりが出ていて良いなと思っています、文章だと声が乗らないのもあり受け止め方によってはマイナスなイメージを抱くひともいると思いますが、ビデオポッドキャストだと感情と声が付いてくるので良いですね.
因みにSpotifyはアカウントの登録を行うと音楽も無料で聞くことが可能です、何曲かに一回、広告を挟みますが、それでも合法的に音楽やポッドキャスト、ビデオポッドキャストが聴けたり視聴できるのは良いと思っています.尚、ポッドキャストやビデオポッドキャストは広告を今のところ挟まないようです.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アカウント, アンチ, イケハヤ, イメージ, ぐい, こと, サン, そう, チャンネル, ところ, ビデオポッドキャスト, ひと, ポッドキャスト, マイナス, よう, ラジオ, 人となり, 今日, 以前, 可能, 合法, 広告, 感情, 文章, 明日, 最近, 無料, 熱量, 登録, 視聴, 雰囲気, 音楽, 顔出し,

laravel sailで構築されたDockerコンテナのターミナルに入り新たなパッケージをインストールする方法.
2025.06.13
おはようございます.laravel sailで構築されたDockerコンテナのターミナルに入り新たなパッケージをインストールする方法は次の通りです.
①ターミナル上でbashと入力しエンターを行いルート権限にする.
bash
②OSのアップデートを行う
apt update
これらの手順を行うことで新たにパッケージをインストールすることが可能になります、覚えとくと便利ですよ.

あと、bash上で操作すると矢印キーなども使用可能になります.知っていると知らないとでは作業パフォーマンスが違うかなと思ったので記事に起こしてみました、ちょっとしたことだけども.
明日へ続く
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アップデート, あと, インストール, エンター, キー, こと, これら, こんてな, ターミナル, パッケージ, パフォーマンス, ルート, 作業, 使用, 便利, 入力, 可能, 手順, 操作, 新た, 方法, 明日, 構築, 権限, 矢印, 記事, 通り,

Qiitaのfeedを取得して表示するだけのコード非同期編? #phpcode
2022.11.06
おはようございます。昨日の続きのお話ですコードは金曜日に書きました😗。
動画を見ていただければわかるかと思いますが即興で書いたコードです、最後の最後でエラーってる!?ところなんかも編集していない所が伝わってくるかと思います。ちなみに画質HDのフル画面で見ないとコードは見えないかなって思います。
音声も今後入れていくかもしれません。
任意のユーザーを増やしたい場合はmain.jsの先頭行(2行目?)のqiitaIDに任意のIDを追加するだけで取得可能です。解説はなしですけど一応、何をやっているのかそれなりに、わかるように心がけたつもりです。あとは盗んで覚えてください😂。
ソースコードはこちらになります。
<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<style>
.qiita_feed-list>li {
/* font-weight: bold; */
color: aliceblue;
}
.qiita_feed-list>li>a {
color: aliceblue;
}
body {
background-color: #60b111;
}
.shadow-lg {
box-shadow: 0 1rem 3rem rgba(255, 255, 255, .195) !important;
}
</style>
<title>Qiita-feed</title>
<?php
require $_SERVER['DOCUMENT_ROOT'] . "/header_script.php";
?>
</head>
<body>
<input type="hidden" id="csrf_token" value="<?= $csrf_token ?>">
<div class="container">
<div class="row">
<div class="col-12">
<h1 class="text-light">Qiita-feed</h1>
</div>
</div>
</div>
<div class="container mt-2">
<span id="view"></span>
Copyright <?= date("Y") ?> <a href="https://358tool.com">358tool.com</a>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
<script src="./js/main.js?<?= time() ?>"></script>
</body>
</html>
//qiita feed
["taoka-toshiaki","mpyw","suin"].forEach(id=>{
let data = {
csrf_token:document.getElementById("csrf_token").value,
feedid:[id]
};
let url = "./qiita-feed.php";
qiita_feed(url,data);
});
async function qiita_feed(url, data) {
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(data)
}
await fetch(url, options).then(response =>
response.json()
).then(resultdata => {
document.getElementById("view").insertAdjacentHTML("beforeend",resultdata.reshtmlcode)
}
).catch(error => {
console.log(error);
}
);
}
<?php
session_start();
$obj = json_decode(strip_tags(@file_get_contents("php://input")));
if (isset($obj)) {
if (isset($obj->csrf_token) && $_SESSION["csrf_token"] === $obj->csrf_token) {
$str ="";
foreach ($obj->feedid as $key => $id) {
$str.= '
<div class="row shadow-lg p-3 mb-5 bg-body rounded">
<div class="col-12">
🌿<span class="text-light">://qiita.com/' . xss_d($id) . '/feed :[引用]</span>';
$str .= get_Qiitafeed("https://qiita.com/" . xss_d($id) . "/feed");
$str .= '
</div>
</div> ';
}
$res["reshtmlcode"] = $str;
print json_encode($res);
}
}
function xss_d(mixed $val): mixed
{
if (is_array($val)) {
foreach ($val as $key => $value) {
$val[$key] = htmlentities($value, ENT_QUOTES);
}
} else {
$val = htmlentities($val, ENT_QUOTES);
}
return $val;
}
function get_Qiitafeed(string $feedUrl): string
{
$xml = @simplexml_load_file($feedUrl);
if (isset($xml->entry)) {
$str = "<ul class='qiita_feed-list'>";
foreach ($xml->entry as $key => $val) {
$str .= "<li><a href='{$val->url}'>" . $val->title . "</a></li>";
}
$str .= "</ul>";
}
return $str;
}
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
2, feed, HD, ID, JS, main, PHPCODE, qiita, qiitaID, あと, エラー, お話, コード, こちら, ソース, つもり, ところ, プル, ユーザー, 今後, 任意, 何, 先頭, 動画, 即興, 取得, 可能, 同期, 場合, 所, 昨日, 最後, 画質, 画面, 編集, 表示, 解説, 追加, 金曜日, 音声,

FINAL FANTASY XVI #AMBITION #野心
2022.10.30
おはようございます。PS5の在庫はどうなっているのでしょうか?
今日はFINAL FANTASY XVIのお話というか新たな予告が出たので、それを観た感想ですね。
さて、もはや凄すぎてついていけない、特に戦闘システムが不安だなって感じがします。FF7Rは何とかなりましたが、FF16は自分でもプレイが可能なのかが正直なところ不安でしかない。
グラフィック面やビジュアルは申し分なく、ストーリー展開も良さそうな気がするのだけども戦闘システムだけが不安。不安だけどもRPGももうこういう戦闘システムが一般的になってきているので、仕方が無いと言えばそれだけの事なのかもしれないけれども…。
FF16発売までに一番の不安はPS5が購入できるのかどうかが不安でしか無いですね。因みにPS4の値段も高騰しているのだとか・・・大丈夫だろうかソニーさん。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
16, 4, 5, 7, AMBITION, FANTASY, FF, FINAL, PS, RPG, XVI, お話, グラフィック, システム, ストーリー, ソニー, それ, それだけ, ところ, ビジュアル, プレイ, 一, 不安, 予告, 事, 今日, 値段, 可能, 在庫, 展開, 感想, 戦闘, 正直, 気, 申し分, 発売, 自分, 購入, 野心, 高騰,

phpでソケット受信をする事だけ覚えとけば良い。#php #code
2022.10.27
おはようございます。Socket.ioというサービスをご存知ですか。あれ良いですよね。
さて、Socketとはいう意味は割愛させて頂き、知っていることを前提に話しますとPHPでSocketサーバーは立てれないじゃないかなって今のところ思っています。localhostや0.0.0.0とかならSocketサーバーは立てれるけど、ドメイン有りきでは難しいような気がします。
なので、Socket.ioなんかを使用してnode.jsなんかでサーバーを立てるのが定石かと思います。尚、webSocketのサーバーに対してPHPで送受信は可能です。要するにクライアント側はPHPでも可能ですね。
自分もAPIサーバーに対して常時通信処理を行っています。
PHPライブラリの使用して接続を確立しています、ライブラリはratchetという有名所のライブラリを使用しています。
composer require ratchet/pawl
<?php
require __DIR__ . '/vendor/autoload.php';
\Ratchet\Client\connect('wss://example.com')->then(function($conn) {
$conn->on('message', function($msg) use ($conn) {
echo "Received: {$msg}\n";
$conn->close();
});
$conn->send('Hello World!');
}, function ($e) {
echo "Could not connect: {$e->getMessage()}\n";
});
上記のようなPHPのソースコードで送受信が可能です😋
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
0.0.0.0, API, Code, Composer, io, JS, localhost, node, php, ra, ratchet, require, Socket, webSocket, あれ, クライアント, こと, ご存知, サーバー, サービス, ソケット, ところ, ドメイン, なん, ライブラリ, 事, 今, 使用, 処理, 前提, 割愛, 受信, 可能, 名所, 定石, 常時, 意味, 接続, 有, 気, 確立, 自分, 送受信, 通信,

Dockerは楽だなという事を今頃理解しましたよ。 #vbox #docker
2022.10.03
おはようございます、月曜日の朝はテンション低めな方も多いはず😇。
さて、今日は先週の木曜日と金曜日にふと今後のためにDockerをもう少し触ってみようと思い作業終了後触ってみました、触れて気づいた事は開発環境を作るのがとても楽だということ(気づくの遅い?🫠)。自分は昔の人間なのでvisualboxばかり触っていたのですがDockerは素晴らしい。サーバー周りが得意な人にイメージを作ってもらってそれを共有すれば皆、同じ環境下で開発が出来るので良いという事に今頃気づいた・・・。
docker run -it -d -v C:\var\www\html\:/var/www/html --privileged -p 80:80 --name こんてな命名 イメージid /sbin/init
※Visualboxでも可能ですけどね。Dockerのだとそこが楽だしマウント(フォルダ共有)もスムーズに行くので自分は良いなと感じました。
ちょっと残念だった点は自宅で作業している中、バッファローのNAS🍆に作業ファイルを入れているのですが、それとは共有出来なかった点です、対応として実PCをrobocopyしてNASと同期を取るという形にしました。これで問題はなくテスト環境下で開発ができます。尚、高級なNASではそういう問題なく上手くいくそうですよ。※NASはバックアップデータになりました。
robocopy <コピー元> <コピー先> /E /DCOPY:DAT
尚、mirのオプションにしなかったのには理由があります。コピー元のファイルが消えたり、ディレクトリが破損した場合、コピー先のファイルやディレクトリが消えて無くなるらしいので・・・。完璧なミラーリングは辞めました。
こんな感じで快適なテスト環境が作れます(上記のコマンド参考に)。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
--privileged, -p, -v, 80, D-, docker, html, ID, init, IT, name, run, sbin, var, vbox, Visualbox, www, イメージ, こと, こんてな, サーバー, スムーズ, そこ, それ, ため, テンション, パス, フォルダ, マウント, 事, 人, 人間, 今後, 今日, 今頃, 低め, 作業, 先週, 共有, 可能, 周り, 命名, 得意, 方, 昔, 月曜日, 朝, 木曜日, 理解, 環境, 皆, 終了, 自分, 行, 金曜日, 開発,

ページ無限スクロールの作り方 #インフィニティ#InfinityPageScroll #JavaScript
2022.09.22
おはようございます、台風14号が過ぎ去ってからいきなり秋模様ですね🫠。
さて、先日ツイートしたページ無限ループが出来るJavaScriptコードを書きました。これを作ろうと思ったキッカケは、自分が運営しているWordPressサイトに巷のページ無限スクロールプラグインが尽く(ことごとく)使用出来なかったので自分で自作した訳です。因みにページ無限スクロールプラグインとはページを送りをしなくてもページの最下までスクロールすると次頁を読み込んでくれるプラグインの事を指します。

下記のコードは自サイト専用なのでそのまま使用することは出来ませんが、重要な部分だけ抜き取って再利用すれば、独自のページ無限ループに対応することは可能かと思います。
コードを読んで頂ければ分かることですが、重要なポイントはページを読み込む方法とそれをDomに変換する方法だと思います。まず、ページを読み込む方法は下記のファンクションで可能です。
fetch(next_url).then(
response => response.text()
).then(data => {
そしてDomに置き換えている所はこの部分になります。これら2つの箇所が重要になります。
const parser = new DOMParser();
const doc = parser.parseFromString(data, 'text/html');
これらの事に注意して独自コードを書いてみてください。最後に全コードを記載しときます。
let cnt = 2;
let blk = 0;
async function nextpage() {
if (cnt !== blk) {
blk = cnt;
await (async () => {
let next_url = "https://fox-black.com/blog/page/" + cnt;
return await fetch(next_url).then(
response => response.text()
).then(data => {
const parser = new DOMParser();
const doc = parser.parseFromString(data, 'text/html');
let blogs = doc.querySelectorAll('.blogpage');
cnt++;
if (blogs[0].innerHTML !== undefined) {
document.querySelector(".foxpage").insertAdjacentHTML("beforeend", (function (elm) {
let str = "";
for (const key in elm) {
const element = elm[key];
if (element.innerHTML !== undefined) {
str += "<div class=\"blogpage\">" + element.innerHTML + "</div>";
}
}
return str;
})(blogs));
} else {
if (document.querySelector("#fin") === null) {
document.querySelector(".foxpage").insertAdjacentHTML("beforeend", "<div id=\"fin\"></div>");
}
}
}).catch(error => {
if (document.querySelector("#fin") === null) {
document.querySelector(".foxpage").insertAdjacentHTML("beforeend", "<div id=\"fin\"></div>");
}
});
})();
}
}
if (navigator.userAgent.match(/iPhone|Android.+Mobile/)) {
window.addEventListener("scroll", async function () {
let s = (() => {
let tgt;
if ('scrollingElement' in document) {
tgt = document.scrollingElement;
} else if (this.browser.isWebKit) {
tgt = document.body;
} else {
tgt = document.documentElement;
}
return tgt;
})();
if (document.querySelector("#fin") === null && s.scrollTop >= (s.clientHeight - 650)) {
await nextpage();
}
});
} else {
document.querySelector(".foxpage").addEventListener("scroll", async function () {
if (document.querySelector("#fin") === null && document.querySelector(".foxpage").scrollTop >= (document.querySelector(".foxpage").scrollHeight - 300)) {
await nextpage();
}
});
}
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
14, dom, InfinityPageScroll, javascript, WordPress, インフィニティ, キッカケ, コード, こと, これ, サイト, スクロール, それ, ツイート, プラグイン, ページ, ポイント, ループ, 下記, 事, 作り方, 使用, 先日, 利用, 可能, 台風, 変換, 対応, 専用, 巷, 方法, 最下, 模様, 次頁, 無限, 秋, 自, 自作, 自分, 訳, 運営, 部分, 重要,

Sqliteで作った簡易掲示板のコードを配布致します。#php #code
2022.09.20
おはようございます。台風は過ぎ去りましたがせっかくの三連休が残念です💦。
今日は先日、Sqliteを使用して簡易掲示板を作ってみましたのでコードを配布致します、尚、PHP8の環境下で動作させています(PHP7系でも動作すると思います)。
Sqliteってnow()関数がなかったりだとか、Deleteする時に、noカラムを昇順しlimitを使用して削除出来ないだとか、いろいろとMysqlとは違う所があり、面倒だなと思いながらコードを書きました、尚、SqliteはWebサーバーの階層に置かないように、置いても良いですが・・・。そのままの状態だと誰でもダウンロードが可能になってしまいますのでご注意ください。自分は地下に眠らしています😅。
一応、二重投稿防止の為に20秒経過しないと再投稿出来ないようにしています😌。トライしていない事は禁止ワード等がありません🤔。つけようと思ったのですがまぁ良いかなと、、、。
動作している環境のリンクはこちら。

軸となるPHPのソースコードを2つ貼っときますね。
<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="stylesheet" href="assets/css/style.css?<?= time() ?>">
<title>掲示板</title>
</head>
<body class="p-3 text-white">
<div class="p-4 shadow rounded" style="background-color:#d6dbdf;">
<div class="container mt-5">
<div class="row">
<div class="col-12 text-center">
<h1 class="shadow" style="color:#195a57;">掲示板::version 2.5</h1>
</div>
<div class="col-12">
<div class="input-group shadow rounded">
<div class="input-group-append">
<span class="input-group-text bg-dark text-white" id="my-addon">ニックネーム</span>
</div>
<input class="form-control" type="text" name="name" placeholder="ニックネームを入力" aria-describedby="my-addon">
</div>
<div class="form-group shadow rounded">
<label for="my-textarea">コメント</label>
<textarea id="my-textarea" class="form-control" name="comment" rows="7"></textarea>
</div>
<button id="btn" class="mt-2 btn btn-info text-white shadow rounded" type="button">投稿する</button>
</div>
</div>
</div>
<div class="container mt-5">
<div class="row">
<div id="view" class="col-12"></div>
</div>
</div>
</div>
<footer>
<a href="/">TOP</a> :: © Reborn9.sakura.ne.jp <?=date("Y")?>
</footer>
<input type="hidden" name="csrf_token" value="<?= $csrf_token ?>">
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.min.js"></script>
<script src="assets/js/main.js?<?= time() ?>"></script>
</body>
</html>
<?php
class db
{
var $pdo = null;
function __construct()
{
try {
$this->pdo = new PDO("sqlite:../../bbs.sqlite3");
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //code...
} catch (\Throwable $th) {
//throw $th;
print $th->getMessage();
}
}
function select_limit()
{
if($this->pdo){
$stmt = $this->pdo->prepare('select * from bbs order by no desc limit 0,5');
$stmt->execute();
$result = $stmt->fetchAll();
$stmt = null;
$this->pdo = null;
return new view($result);
}
}
function insert($name,$comment,$sns_cnt=0)
{
try {
$stmt = $this->pdo->prepare('INSERT INTO bbs (`time`,`name`,`comment`,sns_cnt)values(strftime(\'%Y年%m月%d日 %H時%M分%S秒\',CURRENT_TIMESTAMP, \'localtime\'),:name,:comment,:sns_cnt)');
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
$stmt->bindParam(':sns_cnt', $sns_cnt, PDO::PARAM_INT);
$stmt->execute();
$stmt = $this->pdo->prepare('DELETE FROM bbs WHERE bbs.no = (SELECT no from bbs ORDER BY no ASC LIMIT 1);');
$stmt->execute();
$stmt = null;
$this->pdo = null;
return true;
} catch (\Throwable $th) {
print $th->getMessage();
return false;
}
}
}
class view{
var $item = null;
function __construct($item)
{
$this->item = $item;
}
function view_item($item="")
{
try {
$item = $item?$item:$this->item;
ob_start();
?>
<?php
foreach($item as $key=>$value){
?>
<div class="mt-2 row txtbox shadow rounded">
<div class="col-3 name_<?=$value["no"]?> rounded-start fs-6">
ニックネーム::<?=$value["name"]?>さん
</div>
<div class="col-9 time_<?=$value["no"]?> fs-6">
投稿日時::<?=$value["time"]?>
</div>
<div class="col-12 comment_<?=$value["no"]?>">
<?= nl2br($value["comment"])?>
</div>
<div class="col-12 sns_cnt_<?=$value["no"]?>">
<!-- <?=$value["sns_cnt"]?> -->
</div>
</div>
<?php
}
?>
<?php
$ret["view"]= ob_get_clean();
$ret["msg"]= "done";
} catch (\Throwable $th) {
//throw $th;
$ret["msg"] = "error";
}
return $ret;
}
}
session_start();
$ret = null;
$mode = xss_defence($_POST["mode"]);
// $time = ;
$name = xss_defence($_POST["name"]);
$comment = xss_defence($_POST["comment"]);
$sns_cnt = (int)xss_defence($_POST["sns_cnt"]);
if (isset($_POST["csrf_token"])
&& $_POST["csrf_token"] === $_SESSION['csrf_token'] && (function($t){
return time() - $t > 20?true:false;
})($_SESSION["save"])) {
if($mode==="save"){
$name = !preg_replace("/[ | ]/","",$name)?"匿名":$name;
$comment = !preg_replace("/[ | ]/","",$comment)?"":$comment;
if($comment){
$db = new db();
$db->insert($name,$comment);
$_SESSION["save"] = time();
}
}
$db = null;
$db = new db();
$ret = $db->select_limit()->view_item();
print json_encode($ret);
}
function xss_defence($value){
if(is_array($value)){
foreach($value as $key=>$val){
$value["$key"] = strip_tags($val);
$value["$key"] = htmlspecialchars($value["$key"],ENT_QUOTES);
}
}else{
$value = strip_tags($value);
$value = htmlspecialchars($value);
}
return $value;
}
配布コードはこちらです。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
20, 7, 8, Code, Delete, LIMIT, MYSQL, no, Now, php, Sqlite, web, いろいろ, カラム, コード, ご注意, サーバー, せっかく, そのまま, ダウンロード, トライ, ワード, 三連, 事, 二, 今日, 休, 使用, 先日, 削除, 動作, 可能, 台風, 地下, 所, 投稿, 掲示, 昇順, 時, 残念, 為, 状態, 環境, 禁止, 簡易, 経過, 自分, 良, 誰, 配布, 関数, 防止, 階層, 面倒,

さくらレンタルサーバー(共有サーバー)の/home🏠はアレが見えてるよ。#知ってた?#駆け出しエンジニアと
2022.09.09
おはようございます。今日、高知県では雨☔の地域もあったりするそうですよ🙄。
さて、今日はさくらレンタルサーバー(共有サーバー)の/home🏠の話です。さくらレンタルサーバーじゃなくても共有サーバーを借りたことがある人は知っているかも知れませんが・・・常識?🤔。
さくらレンタルサーバーの/homeの階層に複数のディレクトリが存在します。そのディレクトリのディレクトリ名はさくらレンタルサーバーのアカウント名であり、初期のドメイン名になります。

なので、ディレクトリ名.sakura.ne.jpにすれば初期のドメイン名を生成することが可能ですし、ログインでXXXXX…みたいな事が出来たりしまいます。赤の他人のアカウントでログインするのはハッキングにあたりますので、しないように!
でも、初期のドメインを見ることぐらいなら、良いじゃないかなってことで?WEBサーバーな訳ですからね。
という事で、こんなコードを書きました。コマンド ls -a /homeを実行し結果をtxt.txtのファイルに保存します。そのtxtファイルをPHPで読み込み、ディレクトリ名からリンクリストを生成(index.html)という様な流れ。index.htmlの開いてリンクをクリックすれば/homeの配下の初期ドメインへ飛んでいけます😱、ちょっと悪趣味ですがね…。
コードはこんな感じになります。実行するときはls.phpを開いてください。ls.phpを読み込み完了後、index.htmlのリンクをクリックしてみてください🤐。
尚、下記のファイル全てを同じ階層のディレクトリに置くこととします。※ファイルはUTF-8で。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<title>Title</title>
</head>
<body>
<a href="index.html">index.html</a>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
</body>
</html>
<?php
exec("sh ls.sh",$output,$result_code);
#!/bin/sh
ls -a /home > txt.txt
/usr/local/bin/php href.php
done
<?php
ob_start();
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<title>lsit</title>
</head>
<body>
<button class="btn btn-primary" type="button" id="btn">BTN</button><br>
<?=setlist()?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
<script>
document.getElementById("btn").addEventListener("click",function(){
for( let i in document.getElementsByTagName("a")){
document.getElementsByTagName("a")[i].target = document.getElementsByTagName("a")[i].href;
document.getElementsByTagName("a")[i].click();
}
});
</script>
</body>
</html>
<?php
file_put_contents("index.html",ob_get_clean());
?>
<?php
function setlist(){
$txt_data = explode("\n",file_get_contents("txt.txt"));
$str[] = "<ul>";
foreach($txt_data as $key=>$val){
$str[] = (preg_match("/\./",$val) || !$val)?"":"<li><a href='http://".trim($val).".sakura.ne.jp'>".trim($val).".sakura.ne.jp</a></li>";
}
$str[] = "</ul>";
return implode("\n",$str);
}
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
9, home, jp, ne, REBORN, sakura, xxxxx, アカウント, アレ, エンジニア, コ, こと, サーバー, さくら, ディレクトリ, ドメイン, ドメイン名, ハッキング, レンタル, ログイン, 事, 人, 今日, 他人, 共有, 初期, 可能, 地域, 存在, 常識, 生成, 複数, 話, 赤, 階層, 雨, 駆け出し, 高知県,

マイネオの通信容量をMaxに変更した理由。
2022.08.02
おはようございます。昨日は炎天下のなか、ウォーキングをしておりました。
さて、昨日マイネオの通信容量を5GからMax枠の20Gに変更しました、これで来月から通信容量をあまり気にせずに外出先で使用できると思います。なぜ、使い放題の方にしなかったかというと20G枠にすると1.5Mのパケ放題プラスは管理画面より切り替えが可能で、それも無料で使用できる為、このプランに変更しました。そして何より5G枠と20G枠の差は600円程度の差なので、なんだか20ギガの方がお得に思えてならなかった。そんな理由でMax枠に変更しました。
因みにウォーキングの時にながらしながら歩いています。基本的に自分がウォーキングするところは、自転車や車が通らない道でかつ、人も時間帯によりますが通らない場所なのでながらしています。田舎なのでこういう事が出来る。都会で同じことをしていたら、今頃、自転車なんかと接触事故を起こしている頃なのかもなのでオススメはしません。
ともあれ、来月からは外出先での開発が捗りそうです。尚、開発と言っても誰かに委託された開発では無いのです、お金になるかは分からないことをしています。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1.5, 20, 5, 600, max, ウォーキング, おすすめ, こと, これ, それ, ところ, なか, パケ, プラス, プラン, マイネオ, 事, 事故, 人, 今頃, 何より, 使用, 可能, 場所, 変更, 外出, 容量, 差, 帯, 接触, 放題, 方, 昨日, 時, 時間, 来月, 枠, 気, 炎天下, 為, 無料, 理由, 田舎, 画面, 管理, 自分, 自転車, 車, 通信, 道, 都会, 頃,

円安って海外圏のアファリエイトとかしている人には!!
2022.07.13
おはようございます。来週は全体的に雨模様らしいのですが晴れてたりするのでしょうか?(予約投稿です)
さて、今日のお題「円安って海外圏のアファリエイトとかしている人には!!」ですが、円安はドル払いしてくれるので、とてもウハウハですね、多分、YOUTUBERさんとか今、結構儲かっている人が多いと思います、羨ましい限りです。自分も月にサーバー代の収益が入っていきます。
有り難いことです。ただ書いているだけでお金を生み出しているのは凄いことだなって思います。好きで書いていることがお金に変換できるって素晴らしいと思いますし、ブログなんて誰でも出来ますし、アファリエイトの広告も審査に受かれば掲載することも可能です。
広告審査はある程度、アクセス数と記事の信頼性が必要になると思います、自分も再審査を何度か受けた事があります。収益は高収入まではまだまだです。もし高校生や小学生だったら毎月のお小遣い代を自分で稼ぐ事を自分はしていたと思います、書くことにより自分の知識も増えたりして良いじゃないかと思いますね。但し、未成年の場合、アフェリエイトの規約で駄目な場合もあるかもなので、そこは注意してください。
ともあれ無料から利益を得るには何か創作することが一番の近道だと思います、尚、いろいろと掛け合わすことでココだけしか読めない記事になり、其れが大衆に受けが良かった場合、それだけで生活できると思っても良いです。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
YOUTUBER, アクセス, アファリエイト, お小遣い, お金, こと, サーバー, ドル, ブログ, 予約, 事, 人, 今, 今日, 何度か, 信頼性, 円安, 収入, 収益, 可能, 変換, 審査, 小学生, 広告, 必要, 思, 投稿, 掲載, 月, 来週, 毎月, 海外, 自分, 記事, 誰, 限り, 雨模様, 題, 高校生,

物体認識ではラズパイが必ず必要でもないとふと思った。
2022.06.24
おはようございます。記事の投稿の時間帯から変えようか悩んでいます。
さて、今日のお題は「物体認識ではラズパイが必ず必要でもないとふと思った。」です。Iot(Internet of Things)で脚光を浴びたのが小さなパソコンとも言われるラズベリーパイです。これを使用して温度計や湿度、気圧などを測ったりそれを記憶出来たりします。ラズパイにカメラを接続し機械学習させて物体認識なども可能です。
ただ、物体認識に言えばお使いのWindowsやMacの入ったパソコンでもそういや出来てしまうなと思ったので、それを記事にしました。物体認識で重要なのはやはり学習なのですが世の中にはオープンソースで機械学習をある程度してくれているモデルが出回っています。なので、そちらをベースに再学習させる事により学習が可能かと思います。
物体認識するためには、WEBカメラが必要ですし、機械学習が出来る環境構築も必要になります。例えばTensorFlow(テンソルフロー)が動作出来る環境だとか、、、因みに古いパソコンでもTensorFlow(テンソルフロー)のバージョンを変えれば動きます。githubのmasterを使用せず古いバージョンを使いさえすれば。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Internet, IoT, Mac, of, te, Things, web, Windows, オープン, お使い, カメラ, これ, ソース, そちら, それ, ため, はい, パソコン, ベース, モデル, ラズ, ラズベリー, 世, 中, 事, 今日, 使用, 可能, 学習, 帯, 必要, 投稿, 接続, 時間, 構築, 機械, 気圧, 温度計, 湿度, 物体, 環境, 脚光, 記事, 記憶, 認識, 重要, 題,

光の速さでUSBを繋ぐ、いずれ全て通信処理は光の速さで行うことになるのか?
2022.05.02
おはようございます。
月曜日休めばかなりの長期のお休みを頂ける人もいると思います。さて、今日のお題は下記になります。尚、自分で考えたお題なのに引用で記載しています😂。
光の速さでUSBを繋ぐ、いずれ全て通信処理は光の速さで行うことになるのか?
zip358.com
先日、光ファイバーでできたUSBケーブルが登場しました。そうだよね~。光で伝送すれば一番早いよねと・・・・。この技術は他にも応用できると思いますし、もうその研究は始まっていると思います。パソコン周りの機器のデータ転送は光で通信を行うことが当たり前になると思いますし、LANケーブルも光ファイバーで作られる日も近いかも知れません。
通信速度が速くなるということは、その分データの取り出すのも速くなるということですから、ハッキングされた場合もデータを瞬時に取り出すことが可能になるということです。光ファイバー技術は良いようで悪いこともありますね。本当に大切なデータは古いパソコンの中に保管して、ネットにも繋げない状態で保管していると、案外データは取り出しにくいのかも知れません。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
358, com, LAN, USB, zip, お休み, かなり, ケーブル, こと, データ, パソコン, ハッキング, よねと, 下記, 人, 今日, 他, 伝送, 先日, 光, 光ファイバー, 全て, 処理, 分, 可能, 周り, 場合, 引用, 当たり前, 応用, 技術, 日, 月曜日, 機器, 登場, 瞬時, 研究, 自分, 記載, 転送, 通信, 速度, 長期, 題,

いろいろと抜け落ちている事に気付けた本。
2022.04.24
おはよう御座います。先週の土曜日は風が半端なかったですね…😌。
問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本で再学習中です。いろいろと抜け落ちていることばかりだなって思います。因みに自分は基礎がいろいろと出来ていない、英語もそうだけど数学的なものも抜け落ちているし、ドキュメントを書く能力などもない。それらを少しずつ 少しずつ身につけていきたいと思っている。何かを始めるというのは遅いことはない、人より時間がかかっても身につければ良いだけのことだろうと思っている。
なので、英語とアルゴリズム、ドキュメントを身につけたいだよね。因みにそれらを身に着けていなくともプログラマーになる事は可能ですが、後々、いろいろと無いと悔しい気持ちになることもあるので、身につけるべきだと思っています。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アルゴリズム, いろいろ, こと, それら, ため, ドキュメント, プログラマー, もの, 事, 人, 何か, 先週, 半端, 可能, 問題, 土曜日, 基礎, 学習, 後々, 数学, 時間, 本, 気持ち, 能力, 自分, 英語, 解決, 身, 風,

ネヌビディアの技術は凄いぞ、凄いぞ。
2022.04.20
おはよう御座います。
AI(人工知能)をトレーニングさせるため仮想空間でシュミレーショントレーニングさせる技術をもった会社はネヌビディア以外に世界にまだ数社しか無いじゃないかって思っています。
こういう動画を見ると、やはり宇宙をシュミレーションすることは可能なんじゃないかって思ってしまいますよ。今は無理かもですが数百年後には可能になる可能性はあると思います。そうなったとき、今のリアリティの世界をハックすることが可能になるかもしれないなって思います。
自分は無神論者ですがこの世界を創造した創造主はいると思います。ですが創造もやはり創造されたのかもなって思っています。ですから永遠のループで始まりはなく終わりもないのかもなって。実は時間の概念はないのかもしれないなって、始まりと終わりは相違一体なのかもな…。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
5, 7, 89, AI, com, https, mn-kh, ovU, VW-dOMBFj, watch, www, youtube, こと, シュミレーション, ため, とき, トレーニング, ネヌビディア, バック, リアリティ, ループ, 世界, 人工, 今, 仮想, 会社, 創造, 動画, 可能, 可能性, 宇宙, 技術, 数, 数百年, 時, 永遠, 無理, 無神論, 知能, 空間, 自分,

デジタルマネーへシフトしようとか言っているのかな?
2022.04.15
おはよう御座います。
今日はこの一週間の中で一番手抜きな記事ですが、一番、いま自分が思っていることです。
英語がわかれば世界が広がるのになぁと思うことがあります。下記の動画をみてあぁーどんな会話をしているのか、わかればなぁって思いました。
英語がわかれば世界が広がる、英語が話せればもっと世界が広がると感じます。英語を理解できればremoteok.comなどからお仕事を調達することも可能になるからね、本当に英語を理解したいのでなんとか三日坊主でも勉強できる方法を模索しています。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
com, remoteok, いま, お仕事, こと, シフト, デジタル, マネー, 一, 三日坊主, 下記, 世界, 中, 今日, 会話, 勉強, 動画, 可能, 手抜き, 方法, 本当, 模索, 理解, 自分, 英語, 記事, 調達,

「パッと咲いて散って灰に」を聴きながら妄想を膨らましてみました。
2022.04.03
おはよう御座います。
この頃、思うのですがヒットする曲や聴いていて良いなという曲は、ある法則があるだろうなって思います。その法則は機械学習で解を出すことは可能なのかなって・・・。もう業界ではそういう事を使用しているかも知れない。機械学習に必要なのは曲と購入者数の年代や性別を叩き込めば結果がでるような気がします。
だからなのか、この頃の曲は昔と違って大体、ある程度洗練された状態の曲が多いような気がします。特に若い世代の曲は、あまりHIT法則を取り入れることにあまり抵抗がないのかもしれないと・・・思ってたり実際、業界の人ではないので実際はどうなのか分からないですが、自分は詩も大事ですが、音(テンポ)とボーカルの声が凄く大事になると。
そのうち、プログラミングされた人工的な声と曲、詩でヒットする曲がでるかも知れませんね。
「パッと咲いて散って灰に」を聴きながら妄想を膨らましてみました。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
HIT, うち, こと, テンポ, ヒット, プログラミング, ボーカル, 世代, 事, 人, 使用, 可能, 声, 大事, 大体, 妄想, 学習, 実際, 年代, 必要, 性別, 抵抗, 昔, 曲, 業界, 機械, 気, 法則, 洗練, 灰, 状態, 結果, 自分, 解, 詩, 購入者, 音, 頃,

アナリティクスのタグマネージャーがかなりだな。かなり。
2022.03.19
おはよう御座います。
今日は土曜日ですね、昨日は全国的な雨模様でしたね。
さて、本日はアナリティクスのことを書きました、かなり自分的にはショッキングな内容です😱。
アナリティクスのタグマネージャーがかなりやばいなって事が分かった。特にリアルタイムの概要なんて半端ないですけど・・・モバイルでアクセスするとどこまで位置情報取られてしまうのだろうか?と思うぐらいの精度です。
まぁ殆どは基地局の情報までしか情報をユーザーに渡さないと思いますが、Gさんはかなり正確な位置情報は取られていることが確実だと思います。いやーこれは凄いな。今までこのビックデータをGさんなどの巨人が収集していたのかと思うと、あぁーこれは人を操ることは可能な力だなって思ってしまいます。
使い方一つで情報はかなり協力な武器にもなるだなってアナリティクスのタグマネージャーを使用してみて感じました、また情報を制すものが世界を制すと言っても過言ではないと思います。
情報こそ、この情報社会では価値なのだと誰かが言っていたけれど、ホントそれだと思いますよ!!
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アクセス, アナリティクス, かなり, こと, これ, ショッキング, タグ, データ, どこ, ビック, マネージャー, もの, モバイル, ユーザー, リアルタイム, 一つ, 世界, 事, 人, 今日, 位置, 使い方, 使用, 内容, 力, 半端, 協力, 収集, 可能, 土曜日, 基地, 巨人, 情報, 昨日, 本日, 概要, 正確, 武器, 殆ど, 精度, 過言, 雨模様,

WordPressのapply_filtersを使うと便利ですよ。
2021.11.29
明日(2021/11/30)は高知県は雨が降るそうです、冬の雨はあまり自分は好きではないです・・・。どんより曇り空よりかはマシですけどね。
さて「WordPressのapply_filtersを使うと便利ですよ。」というお話です、有名なプラグインにはapply_filtersが大体あるので、それを使ってプラグインに自分のオリジナル処理を割り込むことが可能です。では、 apply_filtersはどんな動作をするかと言えば、独自のフィルターを登録するときに使用します。
なので、add_actionを使って登録されている独自のフィルター名を参照することで外部のプラグインに変更処理を行うこと等が可能になります。
<?php apply_filters( $tag, $value, $var ... ); ?>
<?php add_action( $hook, $function_to_add, $priority, $accepted_args ); ?>
apply_filtersとadd_filterがどういう物なのかを完結に説明しているサイトが有りましたので、リンクを記載しときます。
https://blog.z0i.net/2016/11/apply-filters-add-filter.html
余談:ある有名なプラグインのコードを読んでいて、自分がプラグインを作るときにもapply_filtersなどを記載しておくと開発者に使用していただける確率は高くなるなと感じました。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
11, 2021, 30, Action, Add, apply, filters, function, gt, hook, lt, php, tag, To, value, var, WordPress, オリジナル, お話, こと, それ, とき, フィルター, プラグイン, まし, 使用, 便利, 冬, 処理, 動作, 参照, 可能, 変更, 外部, 明日, 曇り空, 有名, 登録, 自分, 雨, 高知県,