駆け出しエンジニアとつながりたい的なコードを書いてみた.ごっさんです.

20250721

Logging

おはようございます.下記のコードを知っておくと便利ですよ、フレームワークとかなら使わないかもしれないけども素(えいてぃぶコード)のPHP言語で書くと便利ですね.この頃、素のPHP言語で書くことが無くなりつつあります.仕事ではフレームワークやフロントエンドでもライブラリを使用してコードを書くことが多いですね.たまにバニラJSで書くこともありますが.

<?php
$foo = [
	'name' => '山田 太郎',
	'age' => 25,
	'tel' => '09012341234'
	];
var_dump($foo);
var_dump(array_keys($foo));
var_dump(array_values($foo));

駆け出しエンジニアがもういないよなぁ…コードの土台はAIによって書くことが多くなりプロジェクトの改修時に古のコードを見るようになるだろうなぁ.たまに見かける痛いコードを昔は書いていたなぁと思いつつ、今でも痛いコードを書いていると思った方が良いなって.数ヶ月前に書いたコードが痛いコードに見えるので…まだまだ成長過程かなって思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, イブ, エンジニア, エンド, ヶ月, コード, こと, たま, バニラ, フレーム, プロジェクト, フロント, よう, ライブラリ, ワーク, 下記, 仕事, 使用, 便利, 土台, 太郎, 山田, 成長, 改修, 明日, 言語, 過程, 駆け出し,


レンダリングのちらつきを無くしました、あとはアップロード際に.

20250720

Logging

おはようございます.レンダリングのちらつきを無くしました、あとはアップロード際に画質劣化するワードプレスの対応を行えばひとまず、このサイトは改善しないつもりでいます.因みにレンダリングのちらつきがどのような時に発生するかと言えば、背景色の切り替えを行っているところです.

ベースは黄緑色の背景色にしているのですがJSで背景色の切り替えが出来るようにしています.切り替えると切り替えた色をローカルで持つって再度訪問された時に切り替えた色にJSでレンダリングしていたのですが、その時にちらつきが発生していました.

理由は分かっていたけど今の今まで放置していました.切り替えて使っているユーザーがどれぐらいいるのか把握していなかっただけど、自分は背景色を黒にしているのでやっぱ気になるという事で先日の休みを使用して切り替えました.

フロントエンドな作り例えばヘッドレスCMS等で作っていたら色の切り替わりを行っても何らちらつきとは無縁ですがね.今回はかなりベターな対応をしたのだけど、もっと良い方法はないかと思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アップ, あと, エンド, サイト, つもり, ところ, どれ, プレス, フロント, ベース, ベター, ヘッド, ユーザー, よう, レス, レンダリング, ローカル, ロード, ワード, 今回, 休み, 作り, 使用, 先日, 切り, 切り替え, 劣化, 対応, 把握, 改善, 放置, 方法, 明日, 替わり, 無縁, 理由, 画質, 発生, 緑色, 背景, 自分, 訪問,


なんか知らんけど、僕のことを分かったふうに言うな.

20250719

Logging

おはようございます.キャッチフレーズが絶妙です.朝方、自分のタイムラインに流れた広告、この頃、クレカのCM多いですがお金に困っている訳では無いのだけども…いや困っているけど大きな借金があるわけではないですよと断っときますね.

「あの」さんはいじめられていたというのは分からんでもない、ちょっと変わっている存在なんだと思う、自分もなんか未だに人と馴染めないので「あの」さんのCMに流れるセリフが好きですね.多分、価値観が人とずれているだと思うから「あの」さんの言葉がささる人にはささるだと思います.

もう40過ぎているけど脳内が年齢と一致しない.社会的にはこうあるべきという像があるだと思いますが、そこから自分は大きくズレが生じていて、いろいろと社会的に生きにくい.同年代を見てみると大人な人が多いと感じる.それが普通なんだと思うだけども….

自分はそういうのを見てあんま面白く感じない.大体の人は40代にもなると普通の人はブログやSNSをしなくなる人もいるようです.それを続けている人は昭和的な考えではないこと言わなくてもわかると思う.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

あんま, いや, お金, キャッチフレーズ, クレカ, こと, サン, ズレ, セリフ, そこ, それ, タイム, ブログ, よう, ライン, わけ, 一致, 価値, 借金, 同年代, 大人, 大体, 好き, 存在, 年齢, 広告, 明日, 昭和, 普通, 朝方, 社会, 絶妙, 考え, 自分, 言葉,


8番出口を観に行こうか迷っている.怖いもの見たさ.

20250718

Logging

おはようございます.映画、8番出口を観に行こうか迷っている.怖いもの見たさってのもありますが、川村元気さんが手掛けたり関わった作品は当たる確率が増えそうな予感がします.そして川村元気さんと二宮さんという掛け合わせもヒットしそうな気もしますが、観に行こうかどうか迷っています.

理由はこういうのって怖いもの見たさ的な要素で中身がないような気もしますし、尚且つあまり恐いの好きではないという理由ですね.落ちは何となく映画キューブみたいな落ちだろうなって思ってしまって、、、という感じで悩んでいます.

それなりに高評価だったら観に行こうかなという感じで今のところ未定です.因みに上映は2025年の8月29日です.

それにしても二宮さん福耳ですね…今ごろ気づいてしまった.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

キューブ, ごろ, サン, そう, それなり, ところ, ヒット, みたい, もの, よう, 上映, 中身, 予感, 二宮, 作品, 元気, 出口, 好き, 川村, 感じ, 明日, 映画, 月日, 未定, 理由, 確率, 福耳, 落ち, 要素, 評価,


ユーチューバーの成功への道は険しい、可視化してみました.

20250717

Logging

おはようございます.ユーチューバーの成功への道は険しいですね、1000人以上の割合は13%ぐらいだそうです、狭き門だなって正直思いました.因みに自分は一部AIのちからを借りている動画があるので1000人以上になっても恐らく収益は5000円ぐらいじゃないかと思っています.

道半ばでYOUTUBERを諦める人の気持ちがわかります、馬鹿みたいに毎日UPしていてもチャンネル登録者数は増えそうにない、それなりに戦略やニーズに答えていかないと難しいと思います.中身のない内容を毎日UPしても難しいでしょうね.

先日、YOUTUBEを頑張りたいと記載したばかりだけど、心が折れそうな現実をみてしまった…

因みに表などを詳しくみたい人はこちらを参照してください、今回Geminiを使用してウェブ解析した資料になります.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ウェブ, こちら, そう, それなり, チャンネル, ニーズ, のち, みたい, ユーチューバー, 一部, 中身, 今回, 以上, 使用, 先日, 内容, 割合, 動画, 半ば, 参照, 収益, 成功, 戦略, 明日, 正直, 毎日, 気持ち, 現実, 登録, 自分, 解析, 記載, 資料, 馬鹿,


Photo by Emiliano Arano on Pexels.com

映画、Fukushima 50(フクシマ フィフティ)を観ました.

20250716

Logging

おはようございます.映画、Fukushima 50(フクシマ フィフティ)をネトフリで再度観ました.いろいろと考えさせられる内容だった.これを見ると南海トラフ巨大地震が発生したときに愛媛県にある伊方原発は大丈夫なのかという事が脳裏に過ぎりました.調べてみると伊方原発は津波10メートルまで耐えれるということらしい、もし仮に南海トラフ巨大地震が発生したとしても伊方原発の方には4.5メートルの津波しか来ないとの事.

なので福島の原発事故(災害)のような事は発生しないという事らしいのだけども、福島の原発も10メートルを超える津波は来ないという想定でしたが、東日本大震災時には10メートルを超える津波が押し寄せてきたわけです.

想定外のことが起こるかもという事を考えて設計していない、これが事なかれ主義な国のすることだなと…今では原発反対という人も減ってきているけれども映画フクシマフィフティを観ると島国の日本で原発を稼働させるのはリスクの方が大きいと思います.

これから将来の起こることを考えるとクリーンな発電所を増やしていくべきなのではないのかと・・・.

本当に映画は事実に基づく映画なので、ただただ大変な思いをした現場の方々には何も言えないですよ.後手後手の東電の対応や政治家などに不信感を抱いた自分がいました.実際は、それぞれ懸命に頑張っていたと思いますが、、、、.これが日本という国なのかも知れないですね.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

いろいろ, グリーン, こと, これ, それぞれ, とき, トラフ, ネトフリ, フィフティ, フクシマ, フクシマフィフティ, メートル, よう, リスク, わけ, 不信, 主義, 事実, 事故, 伊方, 内容, 南海, 原発, 反対, 地震, 大丈夫, 大変, 大震災, 対応, 将来, 島国, 巨大, 後手, 思い, 想定, 愛媛, 懸命, 政治, 方々, 日本, 明日, 映画, 東日本, 東電, 津波, 災害, 現場, 発生, 発電, 福島, 稼働, 脳裏, 自分, 設計,


ワードプレスのテーブルwp_postsデータを取ってきてLaravelで表示.

20250715

Logging

おはようございます.ワードプレスのテーブル(wp_posts)データを取ってきて別サイト(Laravel)にて表示してます.別サイトには広告が付かない感じです.因みにデータは自サイトのブログデータを使用していますが随時去年あたりのデータから取得するようにSQLに記述しています.

尚、どうやって取得しているかをお話するとSQLのコネクション変更する設定をコンフィグフォルダのデータベースファイルに記述してモデルにもその事を明記しています.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;


class Blog extends Model
{
    protected $connection = 'second_db';
    protected $table = 'wp_posts';
}

そしてそれらを呼び出しているだけです、とても簡単なコードで動いています.そんな感じなのでブレイドのコードをシェアします、流石にコントローラーは見せられないけどYoutubeのリンクやXのリンクは出力する前に置き換えていることをヒントとしてお伝えしときますね.

<!doctype html>
<html lang="ja" class="transition-colors duration-300">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
    <meta name="robots" content="noindex,nofollow" />
    <title>blog - [taoka toshiaki]</title>
    <link rel="icon" href="https://taoka-toshiaki.com/images/g4DV7mRe_400x400.jpg?t=1752317617"
        sizes="16x16 24x24 32x32 48x48 64x64">
    <!-- Prism CSS -->
    <link id="prism-theme" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css" />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/plugins/line-numbers/prism-line-numbers.css" />
    <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css"
        rel="stylesheet" />
    <style>
        body {
            background-color: #f9fafb;
            color: #1f2937;
            transition: background-color 0.3s, color 0.3s;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        .dark body {
            background-color: #242425;
            color: #f9fafb;
        }

        article {
            background-color: #fff;
            transition: background-color 0.3s;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        .dark article {
            background-color: #3d3d47;
        }

        time {
            color: #6b7280;
        }

        .dark time {
            color: #9ca3af;
        }

        .prose {
            color: inherit;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        pre[class*="language-"] {
            overflow-x: auto;
            padding: 1em;
            border-radius: 0.5rem;
        }

        code[class*="language-"] {
            white-space: pre;
        }

        a,
        a:hover {
            border-bottom: solid 2px #fbf81c;
        }
    </style>
    @include('header_script')
</head>

<body class="transition-colors duration-300">

    <div class="max-w-3xl mx-auto p-6">
        <h1 class="text-2xl font-bold mb-6"><a href="/" class="text-current">🏠️Top Page</a></h1>
        <p class="mb-3 font-bold"><a href="/blog">🖊️</a>おもしろき こともなき世をおもしろく 住みなすものは 心なりけり.</p>
        @if (request()->input('page') == 108)
            <a href="/blog" class="text-[54px]">📖</a>
            <h1 class="text-2xl font-bold text-[108px] mb-6">108🧘️</h1>
        @endif

        <button id="darkModeToggle"
            class="mb-6 px-4 py-2 bg-gray-200 dark:bg-gray-700 text-gray-800 dark:text-gray-200 rounded">
            ダークモード切り替え
        </button>

        <div class="space-y-10">
            @foreach ($items as $item)
                <article class="shadow-md rounded-lg p-6 transition-colors duration-300">
                    <h2 class="text-xl font-semibold mb-2 break-words">⏩️{{ $item->post_title }}</h2>
                    <time class="text-sm block mb-4">{{ $item->post_date }}</time>
                    <div class="prose prose-sm max-w-none break-words">
                        {!! $item->post_content !!}
                    </div>
                </article>
            @endforeach
        </div>

        <div class="mt-10">
            {{ $items->links() }}
        </div>
    </div>
    <!-- トップに戻るボタン -->
    <button id="scrollTopBtn"
        class="fixed bottom-6 right-6 hidden bg-gray-600 text-white px-4 py-2 rounded-full shadow-lg hover:bg-gray-700 transition-opacity">
        ▲ 上へ戻る
    </button>
    <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
    <script src="https://cdn.jsdelivr.net/clipboard.js/1.5.13/clipboard.min.js"></script>
    <!-- Prism.jsのコアファイル -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js"></script>
    <!-- Prism.jsのオートローダ -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
    <!-- Toolbarプラグインのスクリプト -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
    <!-- その他のプラグインのスクリプト -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/highlight-keywords/prism-highlight-keywords.min.js"></script>

    <script>
        const toggleBtn = document.getElementById('darkModeToggle');
        const prismTheme = document.getElementById('prism-theme');
        const darkThemeHref = 'https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism-tomorrow.css';
        const lightThemeHref = 'https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css';

        if (localStorage.getItem('darkMode') === 'true') {
            document.documentElement.classList.add('dark');
            prismTheme.href = darkThemeHref;
        }

        toggleBtn.addEventListener('click', () => {
            const isDark = document.documentElement.classList.toggle('dark');
            prismTheme.href = isDark ? darkThemeHref : lightThemeHref;
            localStorage.setItem('darkMode', isDark);
        });

        document.addEventListener("DOMContentLoaded", () => {
            document.querySelectorAll('pre[class*="lang-"]').forEach(pre => {
                const match = pre.className.match(/lang-(\w+)/);
                if (match) {
                    const lang = match[1];
                    pre.className = `language-${lang} line-numbers`;
                    const code = pre.querySelector('code');
                    if (code) code.className = `language-${lang}`;
                }
            });
            // トップへ戻るボタンの処理
            const scrollTopBtn = document.getElementById("scrollTopBtn");
            window.addEventListener("scroll", () => {
                scrollTopBtn.classList.toggle("hidden", window.scrollY < 200);
            });

            scrollTopBtn.addEventListener("click", () => {
                window.scrollTo({
                    top: 0,
                    behavior: "smooth"
                });
            });
        });

        //全選択ボタンを作成&クラス名付与
        Prism.plugins.toolbar.registerButton('select-code', function(env) {
            var newButton = document.createElement('button');
            newButton.className = 'code-select-btn';
            newButton.innerHTML = 'コードを選択';

            newButton.addEventListener('click', function() {
                if (document.body.createTextRange) { // ms
                    var range = document.body.createTextRange();
                    range.moveToElementText(env.element);
                    range.select();
                } else if (window.getSelection) { // moz, opera, webkit
                    var selection = window.getSelection();
                    var range = document.createRange();
                    range.selectNodeContents(env.element);
                    selection.removeAllRanges();
                    selection.addRange(range);
                }
            });
            return newButton;
        });

        //使用言語表示ボタンを作成&クラス名付与
        Prism.plugins.toolbar.registerButton('show-lang-btn', function(env) {
            var newButton2 = document.createElement('button');
            newButton2.className = 'show-lang-btn';
            newButton2.innerHTML = env.language;
            return newButton2;
        });

        $(function() {
            //各ボタン要素の親要素にクラス名付与
            $('.toolbar-item .code-select-btn').parents('.toolbar-item').addClass('code-select');
        });
    </script>

</body>

</html>

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, ;;⏩, あたり, いん, オート, お伝え, お話, クラス, コード, コア, こと, コネクション, コントローラー, コンフィグフォルダ, サイト, シェア, スクリプト, その他, それら, ダーク, データ, データベース, テーブル, ドップ, ヒント, ファイル, フラグ, ブレイド, プレス, ブログデータ, ボタン, モード, モデル, もの, よう, リンク, ローダ, ワード, 付与, 作成, 使用, 処理, 出力, 切り替え, 去年, 取得, 変更, 広告, 感じ, 明日, 明記, 流石, 簡単, 表示, 要素, 言語, 記述, 設定, 選択, 随時,


Jsonの返却時に便利ですよを貼っときますねと雑煮.

20250714

Logging

おはようございます.Jsonの返却時に便利ですよを貼っときますね、こう書くのがベストプラクティスなのか分かりませんが便利な時がありますので覚えておいて損はない書き方だと思います.

//Jsonの返却時に便利ですよ👍️
const obj = {
  name: "Taoka",
  age: 25,
  country: "Japan"
};
Object.entries(obj).forEach(([key, value]) => {
    console.log(key,value)
});
//console log ⬇️
//name Taro
//age 25
//country Japan

雑煮ではなくて雑談です、最近?のUPDATEでウィンドウズ11のメモ帳でもマークダウン記法が使えるようになったソウデス.ちょっと驚きました、なんかメモ帳ってウィルスに感染しないぐらい強固なアプリなイメージがあるので、いまのメモ帳は今まで無かったものを拡張していっている感じがしてちょっと心配なイメージが少しあります.

便利になることは良いことですが、拡張していくとバグや脆弱性が発生するので大丈夫かなって思います.マイクロソフト開発陣営は優秀な人だと思いますが、やっぱ心配.

全然関係ない話をもう一つウィンドウズをアップデートしていく内に何だか家のパソコンが熱暴走で…固まりだした.この原因を探ろうとログを見て解決したいと思っています.原因が分かったら記事にしようと思います.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, アップデート, アプリ, いま, イメージ, ウィルス, ウィンドウズ, こと, そうです, ダウン, なん, バグ, パソコン, ベストプラクティス, マーク, マイクロソフト, メモ, もの, よう, ログ, 一つ, 便利, 優秀, 原因, 大丈夫, 強固, 心配, 感じ, 感染, 拡張, 明日, 暴走, 書き方, 最近, 発生, 脆弱, 解決, 記事, 記法, 返却, 開発, 関係, 陣営, 雑煮, 雑談,


チャットワークのAPIを使ってみました.プロンプトでほぼ書いています.

20250713

Logging

おはようございます.チャットワークの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

OFUSEで応援を送る

タグ

```, クラス, コード, コスト, これ, スマート, ソース, それ, チャット, テスト, プロンプト, モンキー, よう, リターン, リファレンス, リンク, ワーク, 下記, 人工, 今回, 使用, 出力, 削減, 動作, 土台, 場合, 必要, 指示, 新規, 明日, 時間, 最初, 案件, 無料, 現場, 生成, 知能, 短縮, 確実, 自分, 返却, 開発, 間違い,


映画、スーパーマンを観てきました.エンドクレジットにおまけ有り

20250712

Logging

おはようございます.映画、スーパーマンを観てきました.エンドクレジットにおまけ有りのスーパーマンを観てきました、これ大人が観て楽しめるかという回答で言うとまぁまぁ楽しめるかなと思います.

ストーリー展開は良きアメリカ映画のストーリー展開だと思ってください、なので安心して見えます.でも何ていうか今の時代を上手く写しているようにも思えました.いまアメリカが置かれている政治的な要素がこの映画を通してみて取れました.

もう一つ思ったことが、ゴジラマイナス・ワンがいかに優秀なんだと言うことが分かります.ゴジラマイナス・ワンのVFXを手掛けた白組は35人しかいない中、ハリウッドと同等の映像表現を手掛けた訳です、それに対してスーパーマンのエンドクレジットを観ているとVFXなどに関わった関係者が100人を越していたと思います.

白組優秀だわって思いますよね👏.

因みにエンドクレジットには2回おまけ映像が流れます.

まとめ、まぁまずまずの映画でした.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アメリカ, いま, エンド, おまけ, クレジット, ゴジラ, こと, これ, スーパーマン, ストーリー, それ, ハリウッド, マイナス, よう, ワン, 一つ, 優秀, 同等, 回答, 大人, 安心, 展開, 政治, 明日, 映像, 映画, 時代, 表現, 要素, 関係,


laravelはenvで設定するのがベターですけど、そうではない環境もenvで

20250711

Logging

おはようございます.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

OFUSEで応援を送る

タグ

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


YouTubeに力を入れていこうと思っているけど夢ですね.

20250710

Logging

おはようございます.YouTubeに力を入れていこうと思っているけど夢ですね.登録者数が5000人で15万円も夢ではないそうです.5000人っていうのは底辺YOUTUBERと言われるランクなのですが、それでも全体の13%の割合だそう.

今ではチャンネルの売り買いもされているそうなので、お金を出せばチャンネルを買うことが出来るそうなのでいきなり登録者数1万人から始めることも出来ます.たまに芸能人でもないのに数本の投稿で1万人ってのはお金の力が働いている気がします.

因みに自分のチャンネル数は45人です、ここから収益が得られる500人まで頑張ってYOUTUBE投稿を行っていこうと思っているけど何せネタが無いネタが無い.YOUTUBEでは成功しているひとの人前するのが一番良いらしいですね.

なので、今までダラダラ見ていたYOUTUBEをちょっと見方を変えて研究していこうと思います.上手く行ってない人と成功している人の違いなどを学習しつつ週一UPで行っていこうと意気込んでいます.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

お金, ここ, こと, そう, チャンネル, ネタ, ひと, ランク, 一番, 人前, 全体, 割合, 収益, 売り買い, 学習, 底辺, 成功, 投稿, 明日, 登録, 研究, 自分, 芸能人, 見方, 違い,


歯医者へ行ってきました.事後報告.

20250709

Logging

おはようございます.歯医者へ行ってきました.特に虫歯になったという訳では無いだけども定期的に歯医者へ行きます.感覚的には2、3年に一回は行っていたのだけども前回行ってから数年は確実に経過している気がします.

なぜ定期的に歯医者に行くようになったかというと歯は大事だという事に気づいたので、行くようになった感じですね、歯は身体に確実に影響を与えますし影響を受けます.本当に歯は大事だということ.

トイウワケデ、いつも行っている歯医者さんに行ってきた訳ですが、虫歯はなかったですが知覚過敏がありました、なのでその治療と歯石を取ったら終わりだそう.あと2回ぐらい通えば終わりになるじゃないかと思います.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

あと, こと, サン, トイウワケデ, よう, 前回, 大事, 定期, 影響, 感じ, 感覚, 明日, 歯医者, 歯石, 治療, 知覚, 確実, 経過, 虫歯, 身体, 過敏,


暑いので大阪・関西万博やっぱり辞めようかなという思いがよぎる.

20250708

Logging

おはようございます.暑いので大阪・関西万博やっぱり辞めようかなという思いがよぎる.もし行くとなるともうそろそろ予約しか無いと駄目な感じなのですが未だに悩んでいます.

理由はYOUTUBEで大阪・関西万博内がどんなになっているのかという事を一通り観たので暑い思いまでして見に行くのは辛いかもと思いはじめたという理由があります、あと金銭的な理由.

もし行くなると平日の何処かで行くつもりでいます、そして泊まらずに帰ってきます、要するに日帰りですね.

もし行くとなると9月ぐらいになりそうですが9月も灼熱だと思います.暑いのは嫌いではないですが、帰りの飛行機で汗だくになっているのは避けたい気がします.まぁ着替えを持っていけば良い話ですがどうなんだろう.

多分、一生に一回ぐらいしか体験することが出来ないイベントなので見とけばよかったという後悔も残りそうなんですよね、悩ましい.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

あと, イベント, こと, そう, つもり, 一生, 万博, 予約, 体験, 何処, 大阪, 嫌い, 帰り, 平日, 後悔, 思い, 感じ, 日帰り, 明日, 汗だく, 灼熱, 理由, 着替え, 通り, 金銭, 関西, 飛行機, 駄目,


格安SIMでも4Gから5Gに切り替える事が無料で出来るみたい.

20250707

Logging

おはようございます.格安SIMでも4Gから5Gに切り替える事が無料で出来るみたいだったので、早速切り替えてみました.5G帯域を使用できるようになるには、ちょっと時間が掛かりましたがこれで外で使用するときは5Gで使用出来ます.

5G帯域が役に立つのは自分の場合は当分の間無いかなと思っています、平日はリモートワークなのでwifi環境下にいるのでほぼモバイル通信費がかからないです.

そう思っていたのですが、休みの日に外で勉強する時間を設けようと今思っていてその時にディザリングすることもあるので、そういう時に使用すると結構便利なんじゃないかなって思っていて近日中に試してみたいと思います.

トイウコトで近日中にオーテピア高知図書館に出かけてみます.カーミルでも良かったのですが高知市の方はミリ波もカバーしているようなので速いかなと思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

オーテピア, カー, カバー, こと, これ, ディザリング, トイウコト, とき, みたい, ミリ, ミル, モバイル, よう, リモート, ワーク, 休み, 使用, 便利, 勉強, 図書館, 場合, 帯域, 平日, 当分, 明日, 時間, 格安, 無料, 環境, 自分, 近日, 通信, 高知,


FF11オンラインを一時停止しました、やっぱ続かない

20250706

Logging

おはようございます.FF11オンラインを一時停止しました、やっぱ続かないなぁー.ソロでレベルアップが大変なのともう一つは時間が勿体ないと感じるので、どうもゲームのソロは続かない感があります.そもそもRPG系に費やす普通の人のプレイ時間よりもかなり少ないのです.

因みにFF16もFF7リバースもまだ攻略していません、まだまだ時間がかかりそうです.そもそも月に一回ゲームをプレイしたら良い方で休日にゲームに費やす時間よりもボーっとしてたり、コードを買いたり映画観たりしている方が多いです.

あと本を読んだりしていることの方が多くてゲームに時間を避けないのが現状かな?

ゲームをしてなにか得ることもあるのだけども、まぁあんまり無いかな.これがオンラインゲームで仲間がいれば違う可能性がありますが、どちらと言えば仲間の輪に入るタイプではなく、一人の方が楽だなって感じるタイプです.

人生のなかで仕事が無くなればどれぐらい時間が余るのだろうかと思った時、自分の場合、あんま余暇に時間を割いている時間はあんまない気がしています、例えばブログを書いたり創作したりと何かしら手を動かすしたりして何か活動していると思います.

因みに今の学生さんが大人になる頃には仕事は肉体労働しかないじゃないかなって思うぐらい人工知能のIQは上がっています.多分、20年後には仕事の量はいまの半分ぐらいまで少なくなっている可能性があります.昔、学校崩壊というものがありましたが、これからは仕事崩壊という事が中小企業や零細企業から起こる気がしています.

学校崩壊というのは今もあるか分からないけど、教師の話を聞かずに生徒が好き勝手行動するようになることです、それを防ぐ為に今では教員二名体制になっているようです、その大人版が会社でも起こるような気がしています.会社の場合はクビにすれば済むことですけど下手すると倒産するケースも出てきそうです.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

あと, あんま, いま, オンライン, クビ, ケース, ゲーム, コード, こと, これ, サン, そう, そもそも, それ, ソロ, タイプ, どちら, どれ, なか, なに, プレイ, ブログ, ぼー, もの, よう, リバース, レベルアップ, 一つ, 一時, 下手, 中小, 人工, 人生, 仕事, 仲間, 企業, 休日, 会社, 体制, 余暇, 倒産, 停止, 創作, 労働, 勝手, 半分, 可能, 場合, 大人, 大変, 好き, 学校, 学生, 崩壊, 攻略, 教員, 教師, 明日, 映画, 時間, 普通, 活動, 現状, 生徒, 知能, 肉体, 自分, 行動, 零細,


AI時代のマーケティング激変に備えよグーグル検索の60%がクリックされない

20250705

Logging

おはようございます.先日、自分が言っていた事は間違いなかったんだなって下記の動画を見て思いました.これから先、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

OFUSEで応援を送る

タグ

)。, アカウント, アンサーサイト, いた事, ウェブサイト, エージェント, カスタマーサービス, カスタマーサポート, こと, コンテンツ, コンバージョン, サイト, サポート, サンフランシスコ, ため, ダメージ, チケット, チャネル, ツール, つながり, ティア, デモ, トイウコト, ドラフト, ニュースレター, パーソナライズ, ビジネス, ブログトラフィック, ベース, ポッドキャスト, マーケティング, マップ, メール, もの, ヤミニ, ヤミニ・ランガン, ユーザー, よう, ロード, 一部, 下記, 中心, 主導, 人々, 人員, 人間, 仕事, 以下, 企業, 会議, 体験, 作成, 個人, 側面, 先日, 内容, 分析, 分野, 削減, 効率, 動画, 可能, 台頭, 向上, 問題, 営業, 回答, 変化, 変革, 多く, 多様, 対応, 対面, 導入, 平均, 強化, 強調, 影響, 従来, 必要, 必見, 情報, 意図, 成功, 戦略, 担当, 拡大, 拡張, 提供, 支援, 明日, 時代, 最後, 最適, 検索, 業務, 概要, 活用, 浸透, 減少, 満足, 準備, 焦点, 特定, 現状, 生産, 直接, 社内, 積極, 維持, 職種, 自分, 自動, 自動的, 自身, 製品, 要点, 解決, 解説, 言及, 記録, 訪問, 設定, 調査, 質問, 転換, 迅速, 通り, 通用, 通話, 達成, 適応, 開発, 間違い, 集客, 顧客, 駆使,


英語学習にお金を使うように考えを変えます.今まで何度も

20250704

Logging

おはようございます.英語学習にお金を使うように考えを変えます.今まで何度も挫折してきた英語学習にお金をかけようと思っています.自分が望むものはサブスクでスマホや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

OFUSEで応援を送る

タグ

```, アカデミー, アタマ, アプリ, いくつ, オンライン, お金, ガタガタ, カテゴリー, カリキュラム, キャリカレ, クラッシー, コース, こと, コンテンツ, サービス, サブスク, サン, シフト, スキル, スクー, スタディサプリ, スタディング, スマイル, スマホ, セール, セミ, その他, たくさん, タブレット, チャット, つもり, とき, ドリル, ドワンゴ, ハイスクール, ハイレベル, パスポート, ビジネス, ヒューマン, フォーサイト, プライム, プラス, プラットフォーム, プログラミング, ベネッセ, ほう, みたい, もの, ユーキャン, ユーデミー, よう, ライブ, レベル, 丁寧, 下記, 世界中, 中心, 予備校, 代表, 以外, 便利, 個別, 克服, 内容, 出題, 分析, 分野, 割引, 勉強, 動画, 取得, 受講, 受験, 受験生, 可能, 各種, 向け, 問題, 土台, 在宅, 多数, 多様, 大学, 大幅, 大手, 学年, 学校, 学研, 学習, 定着, 対応, 対策, 対象, 導入, 小・中学生, 小学生, 年齢, 強み, 手軽, 指導, 挫折, 授業, 提供, 支援, 教育, 方向, 方法, 明日, 映像, 最適, 有名, 東進, 検討, 様々, 河合塾, 活用, 浪人, 添削, 特徴, 状況, 理解, 生徒, 生成, 目的, 短時間, 簿記, 結果, 習慣, 老舗, 考え, 自分, 自身, 苦手, 英語, 講師, 講座, 販売, 資格, 返答, 通信, 運営, 選択肢, 配信, 録画, 難関, 面倒, 類似, 高校生,


Llama-3-ELYZA-JP-8Bとは何か?モデルという奴です.

20250703

Logging

おはようございます.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

OFUSEで応援を送る

タグ

カーソル, グラボ, クン, こと, これ, ため, データ, ディビン, トー, パターン, パラメータ, ファインチューニング, プログラム, プロンプト, ベース, モデル, もの, よう, ループ, ルール, 一番, 予測, 今回, 仕組み, 入力, 回答, 回避, 場合, 変換, 学習, 強化, 影響, 必要, 応答, 指示, 数学, 既存, 日本語, 明日, 無限, 生成, 発生, 能力, 自分, 規模, 言語, 計算, 貧弱, 軽量, 離脱, 食い,


Photo by Aaditya Arora on Pexels.com

検索から離れていく時代になった時の対処法というかこれしか対応策がない.

20250702

Logging

おはようございます.そろそろGさんが日本でも検索から生成AIに切り替えを行いそうな気配がありますというのは、自分でモバイル検索していたら検索が対話型に切り替わった時があったのでそろそろな予感がします.

最初に対話型(AIチャット)に切り替わった時に影響を受けやすいサイトは「何々とは」を教えてくれるアンサーサイトだそう、そういうサイトはかなりアクセス数が激減するとのこと、また広告収益の出てないサイトも同じくアクセス数が減るとのこと、逆に影響を受けにくいサイトは広告収益を生み出しているサイトだそうです.

では、どうやってアクセス数を対話型になった時に補うかの話ですが、もうこれしかないと自分は思っています.SNSのフル活用です、フル活用なので一つのSNSの活動をするのではなく複数のSNSを運用し集客に繋げるしか道のりはないじゃないかと.

あと、ネットで商品を販売しているサイトは大手、例えば楽天やアマゾンと言ったサイトに出店しないと成り立たない時代になると思います.本当に人気商品を持っているサイトはダイレクトに物が売れると思いますが、そうではない他店舗の商品を売っている小売サイトは影響を受けると思います.

なので、大手のサイトに店舗を構えることは必須と言えるでしょう、またSNSにも力を入れることや他店舗よりも安く売らないと厳しい時代になりそうです.

尚、Gさんは人工知能対話型検索に広告を挟むことを検討しているので広告を使用するのも一つの手なのかもしれません.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アクセス, あと, アマゾン, アンサーサイト, こと, これ, サイト, サン, そう, ダイレクト, チャット, ネット, プル, モバイル, 一つ, 予感, 人工, 人気, 使用, 出店, 切り替え, 収益, 商品, 大手, 対話, 小売, 広告, 店舗, 影響, 必須, 日本, 明日, 時代, 最初, 検索, 検討, 楽天, 気配, 活動, 活用, 激減, 生成, 知能, 自分, 複数, 販売, 運用, 道のり, 集客,


AIで今後どうなるだろうな.自然言語処理で指示出し出来てきた今日.

20250701

Logging

おはようございます.何だか梅雨明けした休日にGeminiCliでコードを生成しています.仕事ではまだ自分はChatに分からない事を質問するぐらいの事しかしていないのだけども絶対にCliなどで作業すると時間短縮になるのは間違いです(仕事でも導入しているのですが自分は使用していない).

休日に作業するときはコパイロットとGeminiを使用して開発しているのです、どちらも無料版なのだけど自分は無料板で事足りています.

因みにコパイロットとGemini、どちらが優秀かという問いに関しては今のところコパイロットの方が優秀なソースコードを書いてくれるというイメージが強いです.有料版ではカーソルやデビィンなどが優秀らしいけども余裕資金があんま無いので試していない.

お金に余裕があればいろいろと試したいことはあります.例えばグラボ(グラフィックボード)を取り替えて機械学習の学習をローカルで試してみたいなどがあります.

この頃思うのだけど、何かとこの業界は移り変わりが激しいのと新しい技術を学ぶときにたまに技術投資が必要になります.昔はオープンソース的な感じだったけどこのIT業界ビックテックはお金を取り出して来ています.

その中でMETA社?だけがオープンソースでいろいろと提供してくれていてとても有り難いです.それでもやっぱそれを動かす端末の推奨環境という物があるので古いPCだと動かなかったりします.

今後、Llm(大規模言語モデル)は容量が小さくなっていくということとローカル端末で動かすのが当たり前になる時代が来るそうです.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

あんま, イメージ, オープン, お金, カーソル, グラフィック, グラボ, コード, こと, コパイロット, ソース, そう, それ, たま, デビィン, とき, ところ, どちら, ビックテック, ボード, みたい, モデル, ローカル, 今後, 仕事, 休日, 余裕, 作業, 使用, 優秀, 問い, 学習, 容量, 導入, 当たり前, 必要, 感じ, 技術, 投資, 推奨, 提供, 明け, 明日, 時代, 時間, 有料, 梅雨, 業界, 機械, 無料, 環境, 生成, 短縮, 移り変わり, 端末, 絶対, 自分, 規模, 言語, 資金, 質問, 開発, 間違い,