notebooklm[ノートブックエルエム]のポッドキャスト風な生成はガチ

2025.05.04

Logging

おはようございます.notebooklm[ノートブックエルエム]のポッドキャスト風な生成はガチ(本当に凄い)です.notebooklmとは何かをGiminiを解説してもらった.

NotebookLMは、Googleが開発したAIを活用した情報整理ツールです。アップロードしたドキュメントに基づいて、AIが要約、説明、回答を生成することで、ユーザーの情報整理、理解、分析を支援します。まるで、自分専用のAIアシスタントを作るようなイメージです。

トイウワケデ、AIアシスタントなんだけど、今回、音声(日本語)機能が追加.この音声機能で自分が書いた記事を要約してもらった.出力結果はこちら、聞いてもらったら分かると思うのですがAI同士が自分が書いた記事に対して2つのAIが対話していてまるでラジオのMCのような感じです.

砂浜美術館Tシャツアート展とスマえき体験
notebooklmで生成しました!

若干、音声の抑揚が変なところがあるモノの完璧に会話が成り立っているところが本当に凄い.これ無料使用出来るらしいけど、この機能の有料版使おうかなって思っていますが下記の懸念もあるので考え中です.

これを使用してYOUTUBEにUPしたら面白そうだなと思ったけれども、最初は新鮮さがあるけど徐々に飽きられそうだと思いました.やっぱり人には勝てないのかも知れない.人と区別がつかない状態になってから使用するのはありかも知れないな.

結構悩むところですね.生成AIの有料版、結構高いので未だに無料版で使用しているというのが庶民の現状だと思います.お金に余裕がありnotebooklmが面白そうだなとか便利そうと感じた方は課金もありかもですねー.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アシスタント, トイウワケデ, ドキュメント, ノートブックエルエム, ポッドキャスト風, ラジオ, 会話, 出力結果, 区別, 同士, 回答, 庶民, 懸念, 抑揚, 未だ, 生成, 若干, 要約, 課金, 音声,

Photo by Amy Chandra on Pexels.com

tMDbのAPIを使用して今まで観た映画をリスト化してみましたよ.

2025.04.27

Logging

おはようございます.tMDbのAPIを使用して今まで観た映画をリスト化してみましたよ.sqliteの構造は下記になります.idはbigintと記載していますが、AUTO_INCREMENTの間違いです🐼.

Xにも呟きましたがAPIを使用して何かするのはこの頃飽きてきて触らなかったのですが、たまには触れてみようとコードを書いているうちに簡単に作れるようになってしまって少々物足りなさを感じています.

次回はAPIを使う側ではなくて作る側になろうと思っています.GW期間になると思いますが600円のレンタルサーバーのフリードメインを使ってツマラナイAPIみたいな失笑系を作ってみます.

なお、ソースコードの解説がなくてすみません、このソースコードを生成AIに投げてどのような処理か説明して言えば恐らく正解を教えてくれます.

明日へ続く

#真相をお話します.
少年と犬
Flow
curl -sS https://getcomposer.org/installer | php
composer require guzzlehttp/guzzle
composer require illuminate/database
<?php
require_once 'config.php';
require_once 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Database\Capsule\Manager as DB;

class MovieList
{
    public $result = '';
    public $imgBasicUrl = 'https://image.tmdb.org/t/p/w500';
    public $filePath = FILEPATH_DIR_;
    public function __construct($filePath='')
    {
        $filePath = $filePath?$filePath:$this->filePath;
        if (!file_exists($filePath.'/movie-list.db')) {
            exit;
        }        
        $capsule = new Capsule();

        $capsule->addConnection([
            'driver'   => 'sqlite',
            'database' => $filePath.'/movie-list.db',
            'prefix'   => '',
        ]);

        $capsule->setAsGlobal();
        $capsule->bootEloquent();
    }

    public function getMovieList(string $q): void
    {
        $client = new \GuzzleHttp\Client();

        $response = $client->request('GET', 'https://api.themoviedb.org/3/search/multi?query=' . $q . '&include_adult=false&language=ja-JP&page=1', [
            'headers' => [
                'Authorization' => 'Bearer ' . API_KEY,
                'accept' => 'application/json',
            ],
        ]);
        $this->result = $response->getBody();
    }

    public function getResult(): void
    {
        $data = DB::table('list')->get();
        $lists = [];
        foreach ($data as $key => $value) {
           $result = unserialize($value->value);
            if(isset($result?->media_type) && $result->media_type == 'movie'){
                $lists[] = [
                    'id'=>$data[$key]->id,
                    'title'=>$result->title,
                    'img'=>$this->imgBasicUrl . $result->poster_path,
                ];
            }
        }
        print json_encode($lists);
    }

    public function saveCsvlist(): void
    {
        $fileData = explode("\n",file_get_contents('movie-list.csv'));
        $fileData = array_reverse($fileData);
        foreach($fileData as $line)
        {
            foreach(explode(',',$line) as $data){
                $q = urlencode($data);
                $movieList = new MovieList();
                $movieList->getMovieList($q);
                foreach((json_decode($movieList->result))?->results as $result){
                    DB::table('list')->insert([
                        'value' => serialize($result)
                    ]);
                }
            }
        }        
    }

    public function delete($id): void
    {
        
        DB::table('list')->where('id', '=', $id)->delete();
        print json_encode(['res'=>'true']);
    }

}
//(new MovieList())->saveCsvlist();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(!isset($_POST['id'])){
        (new MovieList())->getResult();
    }else{
        //(new MovieList())->delete($_POST['id']);
    }   
}

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, コード, ソースコード, ツマラナイ, フリードメイン, レンタルサーバー, , , 処理, 失笑系, 少年, 構造, 次回, 正解, , 生成, 真相,

Camera+ recipe? ? scene: Cloudy ? crop: Golden ? effect: Redscale (77%) ? border: Round White

Reactでパスワード生成にバグがあって数値、記号が確実に入らなかったので.

2025.04.22

Logging

おはようございます.Reactでパスワード生成にバグがあって数値、記号が確実に入らなかったのでその修正を先日行いました.そういやそうだなってソースコードを見返して思った次第です…

修正したコードはこちらになります.その話とは別にVScodeにもAI補助が付いてから自分も生成AIと言う物を個人開発するときに使用するようになっただけど…

import RingLoader from "react-spinners/RingLoader";
import { useState } from "react";
import "./App.css";

function PasswordTmp() {
  const [passwordLength, setPasswordLength] = useState(8);
  const [password, setPassword] = useState("");
  const [includeSymbols, setIncludeSymbols] = useState(false);
  const [includeNumbers, setIncludeNumbers] = useState(false);

  function makePassword(passwordLength, includeSymbols, includeNumbers) {
    const lowercase = "abcdefghijklmnopqrstuvwxyz";
    const uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const numbers = "0123456789";
    const symbols = "!@#$%^&*()_+[]{}|;:,.<>?";
    let characters = lowercase + uppercase; // 文字のセットを初期化
    if (includeNumbers) {
      characters += numbers; // 数字を追加
    }
    if (includeSymbols) {
      characters += symbols; // 記号を追加
    }
    let result = remakePassword(characters,includeNumbers,includeSymbols);
    setPassword(result);
  }

  function remakePassword(characters,includeNumbers,includeSymbols){
    let passwords = "";
    let NumbersChecking = true;
    let SymbolsChecking = true;
    for (let i = 0; i < passwordLength; i++) {
      const randomIndex = Math.floor(Math.random() * characters.length);
      passwords += characters[randomIndex]; // ランダムな文字を選択
    }
    if (includeNumbers) {
      NumbersChecking = passwords.match(/[0-9]/g) ? true : false;
    }
    if (includeSymbols) {
      SymbolsChecking = passwords.match(/[\!@#\$%\^&\*\(\)_\+\[\]\{\}\|;:\,\.<>\?]/g) ? true :false;
    }
    return NumbersChecking && SymbolsChecking?passwords:remakePassword(characters,includeNumbers,includeSymbols);
  }


  return (
    <>
      <div>
        <h1>パスワード生成</h1>
        <p>
          <input
            type="number"
            value={passwordLength}
            placeholder="パスワードの長さ"
            max={99}
            min={3}
            onChange={(e) => setPasswordLength(e.target.value)}
          />
        </p>
        <p>
          <input id={'Symbols'}
            type="checkbox"
            value={1}
            checked={includeSymbols}
            onChange={(e) => setIncludeSymbols(e.target.checked)}
          />
          <label for={'Symbols'}>記号を含める</label>
        </p>
        <p>
          <input id={'Numbers'}
            type="checkbox"
            value={1}
            checked={includeNumbers}
            onChange={(e) => setIncludeNumbers(e.target.checked)}
          />
          <label for={'Numbers'}>数字を含める</label>
        </p>
        <button
          className="btn"
          onClick={() =>
            makePassword(passwordLength, includeSymbols, includeNumbers)
          }
        >
          パスワードを生成
        </button>
        <button
          className="btn"
          onClick={() => navigator.clipboard.writeText(password)}
        >
          パスワードをコピー
        </button>
        <p>生成されたパスワード: {password}</p>
        <p>パスワードの長さ: {passwordLength}</p>
        <p>記号を含める: {includeSymbols ? "はい" : "いいえ"}</p>
        <p>数字を含める: {includeNumbers ? "はい" : "いいえ"}</p>
      </div>
    </>
  );
}

export default PasswordTmp;

この頃、補完機能がとても「うざったく」思う時と「ありがとう」と思うときが存在していてなんとも言えない.特にウザって思うときは自分が望んでいないコードが出てきた時は正直困る.コードを直打ちしないといけないので今までの補完機能がやはり良いなと思います.

自分としては生成AIの補完機能をOFFに出来る機能がほしいところ、それがあればとてもコードを書くのは快適ですねー.あるのかなぁー🤔調べてみます.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

コード, コピー, セット, ソースコード, バグ, パスワード, パスワード生成, ほしいところ, ランダム, 修正, 初期化, 数値, 数字, 文字, 次第, 生成, 補助, 補完機能, 記号, 選択,

Reactの簡単なものなら今でも作れるのだけども.#簡単止まり.

2025.04.20

Logging

おはようございます.Reactの簡単なものなら今でも作れるのだけども簡単止まりなところを1UPしたいなと思っています.Xにもポストしたんだけどパスワード生成出来るものをReactで作ったのでソースコードを公開しますね.

Reactは基本そのままだとさくらレンタルサーバーなどでは動かないだけど、viteというモノを使用してビルドするとJavascriptに変換されたソースコードが出力されるので、それをレンタルサーバーにファイルアップロードする事によりレンタルサーバーでも動くようになります.

Reactにviteというモノを導入するに当たってDockerにUbuntuかcentOSなどを構築してその中にNodeJsとApache2を入れて自分はビルドしたモノを確認しています.

普通はNodeJsでサーバー立ててそちらで確認するのが普通なんだと思うのだけど、それだとレンタルサーバーで動いているかどうかが分からないので自分はビルド後のdistフォルダを中をApacheと紐づけて確認している形です.

トイウコトデ、ソースコードとサイトのリンクを貼っときます.

import RingLoader from "react-spinners/RingLoader";
import { useState } from "react";
import "./App.css";

function PasswordTmp() {
  const [passwordLength, setPasswordLength] = useState(8);
  const [password, setPassword] = useState("");
  const [includeSymbols, setIncludeSymbols] = useState(false);
  const [includeNumbers, setIncludeNumbers] = useState(false);

  function makePassword(passwordLength, includeSymbols, includeNumbers) {
    const lowercase = "abcdefghijklmnopqrstuvwxyz";
    const uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const numbers = "0123456789";
    const symbols = "!@#$%^&*()_+[]{}|;:,.<>?";
    let characters = lowercase + uppercase; // 文字のセットを初期化
    if (includeNumbers) {
      characters += numbers; // 数字を追加
    }
    if (includeSymbols) {
      characters += symbols; // 記号を追加
    }
    let passwords = "";
    for (let i = 0; i < passwordLength; i++) {
      const randomIndex = Math.floor(Math.random() * characters.length);
      passwords += characters[randomIndex]; // ランダムな文字を選択
    }
    setPassword(passwords); // パスワードを更新
  }

  return (
    <>
      <div>
        <h1>パスワード生成</h1>
        <p>
          <input
            type="number"
            value={passwordLength}
            placeholder="パスワードの長さ"
            max={99}
            min={3}
            onChange={(e) => setPasswordLength(e.target.value)}
          />
        </p>
        <p>
          <input id={'Symbols'}
            type="checkbox"
            value={1}
            checked={includeSymbols}
            onChange={(e) => setIncludeSymbols(e.target.checked)}
          />
          <label for={'Symbols'}>記号を含める</label>
        </p>
        <p>
          <input id={'Numbers'}
            type="checkbox"
            value={1}
            checked={includeNumbers}
            onChange={(e) => setIncludeNumbers(e.target.checked)}
          />
          <label for={'Numbers'}>数字を含める</label>
        </p>
        <button
          className="btn"
          onClick={() =>
            makePassword(passwordLength, includeSymbols, includeNumbers)
          }
        >
          パスワードを生成
        </button>
        <button
          className="btn"
          onClick={() => navigator.clipboard.writeText(password)}
        >
          パスワードをコピー
        </button>
        <p>生成されたパスワード: {password}</p>
        <p>パスワードの長さ: {passwordLength}</p>
        <p>記号を含める: {includeSymbols ? "はい" : "いいえ"}</p>
        <p>数字を含める: {includeNumbers ? "はい" : "いいえ"}</p>
      </div>
    </>
  );
}

export default PasswordTmp;

https://zxz.sakura.ne.jp

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

コピー, さくらレンタルサーバー, セット, ソースコード, トイウコトデ, ところ, パスワード, パスワード生成, ビルド後, フォルダ, ランダム, レンタルサーバー, 初期化, , 数字, 文字, 普通, 生成, , 記号,

CSSだけで3Dボックス(箱)が作れるようにいつの間にかなっていた.自動回転!?

2025.04.16

Logging

おはようございます.CSSだけで3Dボックス(箱)が作れるようにいつの間にかなっていた話を書いていきます.生成AIにCSSだけで3Dボックス(箱)を作ってと指示を行ったら自動回転してくれるものを出力してくれて驚愕している.

CSSだけで3Dボックスが作れることは知っていたのだけど、自動回転はJSを使用しないと無理だろうと思っていたので、実際生成AIが出力されたのを見て驚きでした.こんな感じで旧の知識を生成AIはアップデートしてくれるのには、凄く良いと思っています.

ただ、質問して実際動かないものも出力されるので要は使う側もそれなりに知識を持っていないと嘘を信じてしまうことにもなるので、生成AIを使う側も最低限の知識は必要になると思っています.

因みにソースコードは下記になります.これをテキストファイルに保存して拡張子をhtmlに変えた後に、そのファイルをブラウザにドロップすると表示されます.

明日へ続く

デモページ:https://zip358.com/tool/demo96/

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>3D Box</title>
  <style>
    body {
      margin: 0;
      background: #111;
      height: 100vh;
      display: flex;
      justify-content: center;
      align-items: center;
      perspective: 1000px;
    }

    .scene {
      width: 200px;
      height: 200px;
      position: relative;
      transform-style: preserve-3d;
      animation: rotate 10s infinite linear;
    }

    .face {
      position: absolute;
      width: 200px;
      height: 200px;
      background: rgba(0, 150, 255, 0.7);
      border: 2px solid #fff;
    }

    .front  { transform: translateZ(100px); }
    .back   { transform: rotateY(180deg) translateZ(100px); }
    .right  { transform: rotateY(90deg) translateZ(100px); }
    .left   { transform: rotateY(-90deg) translateZ(100px); }
    .top    { transform: rotateX(90deg) translateZ(100px); }
    .bottom { transform: rotateX(-90deg) translateZ(100px); }

    @keyframes rotate {
      from { transform: rotateX(0deg) rotateY(0deg); }
      to   { transform: rotateX(360deg) rotateY(360deg); }
    }
  </style>
</head>
<body>
  <div class="scene">
    <div class="face front"></div>
    <div class="face back"></div>
    <div class="face right"></div>
    <div class="face left"></div>
    <div class="face top"></div>
    <div class="face bottom"></div>
  </div>
</body>
</html>

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ソースコード, テキストファイル, デモページ, ファイル, ブラウザ, ボックス, 下記, , , 実際, 実際生成, 感じ, 拡張子, 指示, , 最低限, 生成, 知識, , 自動回転は,

高額スマホなので頑張らなくて綺麗に撮れるけど、高いなぁ(笑?

2025.04.14

Logging

おはようございます.先日、iphone16のPro高額スマホを購入しました.関税問題がなかったら買わなかったようなスマホです.なぜ、高いスマホを購入するかといえばそちらの方が最終的に長持ちするからです.昔は毎年のようにiphoneを買い替えていましたがある時から、スマホの進化を感じなくなり買い替えを辞めて今回8年ぐらい使っていたiphone XproMaxから買い替えた感じです.

結果、生成AIが動くiphone16にしたのだけど、本当だったらiphone17か18にしたかったというのが本音です、理由はiphone16は生成AIを搭載された最初の端末なので、これから生成AIが進化していく中で新しい生成AIはそのうち乗らなくなると思っているので.

でも生成AIが進化する事によって逆に最小の性能でも動くようになるのかも知れないという淡い期待も持ってもいます.

2025年4月12日 桜🌸

因みに、動画、写真はこのiphone16Proにしてとても綺麗に撮れるようになりました.頑張らなくても鮮明に撮れるのが良いですね.特にズームでも綺麗に撮れているのが高評価ですが、生成AIは今のところ使用していません.チャットGPTのアプリは入れているのでそれで今のところ十分な気がしています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アプリ, うち, ズーム, スマホ, チャット, 性能, 新しい生成, , 最初, 最小, 本音, 毎年, 淡い期待, 生成, 結果, 進化, 関税問題, 高いスマホ, 高評価, 高額スマホ,

アナログ時計をTOPページに追加しました.ソースコードはこちら.

2025.03.26

Logging

おはようございます.アナログ時計をTOPページに追加しました.ソースコードはこちらに記載していきます.尚、ソースコードは生成AI、Grokを使用して制作しました.

<div class="clock">
    <div class="hand hour-hand"></div>
    <div class="hand minute-hand"></div>
    <div class="hand second-hand"></div>
    <div class="center-clock"></div>
</div>
.clock {
  /* width: 200px;
  height: 200px;
  border: 2px solid rgb(226, 226, 226); */
  border-radius: 50%;
}

.hand {
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform-origin: bottom;
  background: #333!important;
}

.hour-hand {
  width: 4px;
  height: 60px;
  background: #333!important;;
}

.minute-hand {
  width: 3px;
  height: 80px;
  background: #666!important;;
}

.second-hand {
  width: 2px;
  height: 90px;
  background: rgb(94, 93, 93)!important;;
}

.center-clock {
  width: 10px;
  height: 10px;
  background: rgb(95, 95, 95)!important;;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
}
        function updateClock() {
            const now = new Date();
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();

            // 角度の計算
            const hourDeg = (hours % 12 + minutes / 60) * 30; // 12時間で360度
            const minuteDeg = (minutes + seconds / 60) * 6; // 60分で360度
            const secondDeg = seconds * 6; // 60秒で360度

            // 針の回転
            document.querySelector('.hour-hand').style.transform = `translateX(-50%) rotate(${hourDeg}deg)`;
            document.querySelector('.minute-hand').style.transform = `translateX(-50%) rotate(${minuteDeg}deg)`;
            document.querySelector('.second-hand').style.transform = `translateX(-50%) rotate(${secondDeg}deg)`;
        }

        // 初回実行
        updateClock();
        // 1秒ごとに更新
        setInterval(updateClock, 1000);

生成AIが最初登場した時はここまで出来なかったので一回目の指示でちゃんとしたものを制作していけるようになったというのは正直なところ驚きです.やっぱり指数関数的に人工知能は成長するのかなとたまに思うことがありますが、それと相反する思いも持っています.

相反するとは、あと5年ぐらいで人工知能も頭打ちになるじゃないかなとも思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, アナログ時計, ソースコード, ところ, 人工知能, , 初回実行, 回転, , , 指数, 指示, 最初, 生成, , 秒ごと, 角度, 計算, , 頭打ち,

dockerというよりLaravel Sailの環境構築にてのお話.mysqlサーバーが落ちる理由.

2025.03.20

Logging

おはようございます.dockerというよりLaravel Sailの環境構築にてのお話とmysqlサーバーが落ちる理由を書いていきます.まず結論から言うとLaravel SailでMysqlサーバーを使用する場合、env設定のDB_USERNAMEにrootを使用するとMysqlサーバーのコンテナが起動後、直ぐに落ちる.起動と落ちるの繰り返しが発生するのでrootユーザーは使用しないように!

この事でQiitaにもいろいろな記事が書いてあるのだけど、殆どが的外れな内容でした.これが発生する理由はhealthcheck(create-testing-database.sh)を行っている場合、其処でrootアカウントが重複してしまいこのような事象が発生するらしいので、DB_USERNAMEには適当なsailなどのユーザーを割り振ると良さげ.

https://zenn.dev/naoki_oshiumi/articles/4c69822b18566a (⏪️詳しくはこちら)

因みに自分はこの事象の解決に2時間ぐらい無駄な時間がかかりました.理由を分かると何のことはないのだけども生成AIに聞いてもトンチンカンな答えしか表示しないので、最終的にはまだググるが勝っている気がします.

因みに業務でLaravel sail構築するのははじめてでした.いつもは自分で環境構築を作っているので🐔

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アカウント, こんてな, サーバー, トンチンカン, ユーザー, 事象, 其処, 内容, 業務, 殆ど, 理由, 環境構築, 生成, 答え, 結論, 良さげ, 解決, 設定, 起動, 起動後,

毎年この時期になるとアドビや税でお金が飛んでいく#ワン・ワン

2025.03.19

Logging

おはようございます.毎年5月になるとアドビや税でお金が飛んでいく5月だけで6万円飛んでいくと思うと萎えますね.そのために貯金はしているのだけど正直なところ何か勿体なという思いがあります.税金もアドビも勿体ないなって思うぐらい高いだよね、せっかく貯めたお金が一瞬で消え去るのは勿体ない.

そしてどちらも実態がないものに消えていくので正直なところ10%ポイントの還元しても誰も文句は言わないだろうと.

毎月+15万円あればどんなに良いことか.プラス15万円を自ら稼げる人になりたい、どうやれば15万円稼げるのかを生成AIに質問したらやはり仕組みを作らないと無理そうだという解を頂いた.

仕組みを作っただけでは稼げない.それがユーザーに認知され高評価を貰わないとサービスは存続出来ない.これから生成AIで何でも作れるようになってくるようになってくると思うと無料で提供してアソシエイトやアドセンスで稼ぐ方法に変わっていくと.

前置きが長くなりましたがEC管理ツールをサブスクから無料で提供していくに切り替えて行こうと思います.まだ全然作っていないけど作るというのは確定ですのでしばしお待ち下さい.

尚、需要が多くなれば広告外しのサブスクも考えたいと思います.

因みに5月はクレジット支払いなどをいれると8万円ぐらいになりそうな予感😱

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アソシエイト, アドセンス, アドビ, クレジット, サブスク, どちらも実態, ユーザー, 一瞬, 予感, 前置き, 勿体, 広告外し, 文句, 毎年月, 生成, , 税金, 管理ツール, 貯金, 需要,

掲示板広場㌁第三の掲示板として点字掲示板をリリースしました.

2025.03.18

Logging

おはようございます.掲示板広場㌁第三の掲示板として点字掲示板をリリースしました.次に暗号化掲示板を作ろうと思っていましたが、当分の間、掲示板は作らない.理由は使ってくれる方がいらっしゃらないから.今後はこの掲示板を宣伝していこうと思っています.

点字掲示板 ⠪⠪⠥⠟⠴⠳⠆⠫⠃⠳⠆⠥⠆⠴⠟⠆⠹⠳⠆⠸⠉⠳⠣⠔⠵⠾⠂⠟⠪⠆⠓⠜⠉⠩⠕⠆⠱⠃

掲示板とは別にWEBツールを作っていこうと思います.こちらは多少ニーズがありそうなモノを考えて作っていこうと思います.1日1WEBアプリというのも有りかなと考えたのですが、二番煎じ感が強いので今回はスルーします.使ってくれてなんぼ感があるので誰も使わないものを作っても仕方がない.

生成AIを活用してアイディアを出してもらい、その中からこれなら行けそうという物があれば制作していく形になると思います.

一応、点字掲示板のURLを貼っときます.良かったらどうぞ.

https://bbs-station.start-line-system.com/braille_bbs

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アイディア, ツール, 二番煎じ感, 仕方がない, 多少ニーズ, , , 掲示板, 掲示板広場, 日アプリ, 暗号化掲示板, , 点字掲示板, , 理由, 生成, ,

クラシックAPIを使用してGitHub APIから草データを取得.

2025.03.12

Logging

おはようございます.クラシックAPIを使用してGitHub APIから草データを取得するコードをAPI使用しつつ手直してモノの数分で完成しました.こういうのを思うと少人数の開発でも希望を持てるなって思います.ちなみに自分は未だに無料枠でコードを生成してもらっています.

正直なところ、無料枠で事が足りるという印象ですね.コードの改善や命名は生成AIにやってもらった方が優秀です、自分の無能がよくわかります.

草データの使用方法はタイトル通りなので特に問題ないかなって思います.コンフィグファイルは書かずしても変数に代入してあげれば良いわけですからね.一応、github上にソースコードを掲載しています.

https://github.com/taoka3/GitHubGrass

良かったらいいね👍️(⭐️)宜しくお願い致します.

<?php
class GitHubGrass
{
    private string $token;
    private string $username;
    private array $weeks = [];
    private int $cellSize = 12;
    private int $padding = 2;
    private array $colors = [];

    public function __construct(string $username, string $token)
    {
        $this->username = $username;
        $this->token = $token;

        // 色の設定(GitHub風)
        $this->colors = [
            'level0' => [235, 237, 240],
            'level1' => [155, 233, 168],
            'level2' => [64, 196, 99],
            'level3' => [48, 161, 78],
            'level4' => [33, 110, 57]
        ];
    }

    /**
     * GitHub APIから草データを取得
     */
    public function fetchContributions(): bool
    {
        $url = 'https://api.github.com/graphql';
        $query = <<<'JSON'
        {
          user(login: "USERNAME") {
            contributionsCollection {
              contributionCalendar {
                weeks {
                  contributionDays {
                    contributionCount
                  }
                }
              }
            }
          }
        }
        JSON;

        // ユーザー名を埋め込む
        $query = str_replace("USERNAME", $this->username, $query);

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Authorization: Bearer ' . $this->token,
            'User-Agent: ContributionsApp'
        ]);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['query' => $query]));

        $response = curl_exec($ch);
        curl_close($ch);
        $data = json_decode($response, true);
        if (!isset($data['data']['user']['contributionsCollection']['contributionCalendar']['weeks'])) {
            $this->weeks = []; // 空の配列を設定
            return false;
        }

        $this->weeks = $data['data']['user']['contributionsCollection']['contributionCalendar']['weeks'];
        return true;
    }

    /**
     * 草画像を生成
     */
    public function generateImage(): string
    {
        if (count($this->weeks)) {
            die('No data available.');
        }

        // 画像サイズ設定
        $width = (count($this->weeks) * ($this->cellSize + $this->padding)) + $this->padding;
        $height = (7 * ($this->cellSize + $this->padding)) + $this->padding;

        // 画像作成
        $image = imagecreatetruecolor($width, $height);
        $bgColor = imagecolorallocate($image, 255, 255, 255);
        imagefill($image, 0, 0, $bgColor);

        // 色の作成
        $colorPalette = [];
        foreach ($this->colors as $key => $rgb) {
            $colorPalette[$key] = imagecolorallocate($image, ...$rgb);
        }

        // セル描画
        foreach ($this->weeks as $x => $week) {
            foreach ($week['contributionDays'] as $y => $day) {
                $count = $day['contributionCount'];
                $color = $this->getColor($count, $colorPalette);

                // 四角形を描画
                imagefilledrectangle(
                    $image,
                    $x * ($this->cellSize + $this->padding) + $this->padding,
                    $y * ($this->cellSize + $this->padding) + $this->padding,
                    ($x + 1) * ($this->cellSize + $this->padding),
                    ($y + 1) * ($this->cellSize + $this->padding),
                    $color
                );
            }
        }

        // 出力
        ob_start();
        imagepng($image);
        $imageData = ob_get_contents();
        ob_end_clean();
        imagedestroy($image);

        $base64 = base64_encode($imageData);

        return $base64;
    }

    /**
     * コントリビューション数に応じた色を取得
     */
    private function getColor(int $count, array $colorPalette)
    {
        if ($count == 0) {
            return $colorPalette['level0'];
        } elseif ($count < 5) {
            return $colorPalette['level1'];
        } elseif ($count < 10) {
            return $colorPalette['level2'];
        } elseif ($count < 20) {
            return $colorPalette['level3'];
        } else {
            return $colorPalette['level4'];
        }
    }
}

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, $代, から草データ, クラシック, コード, コントリビューション数, コンフィグファイル, セル描画, ソースコード, 出力, 命名, 四角形, 変数, 少人数, 手直し, 描画, 未だ, 生成, 配列,

AIコードアシスタントを今頃使ってみました.感想などを記載します.

2025.02.28

Logging

おはようございます.AIコードアシスタントを今頃使ってみました.感想などを記載します.面倒くさいコードはAIに任せるのは有りだと思いましたが、仕事では使用できないなっていうのが思いも抱きました.モックアップなどを作るのには最適ですが、それ以上は期待薄ですね.コードを生成してくれはするのだけども意図が違っていたり、無駄なコードを書いていたりと少々使えない.

要するに生成AIが生成してくれるおかげでコード修正が発生します.これだったら一から自分でコードを書いた方が良い気がします.新規ファイルの中で指示するとコードを書かなくて良いのでだいぶ楽できるというメリットはありますが、既存のシステムファイルの修正では使えない.使うと動かなくなる恐れがあるので、殆どの人は使っていないじゃないかな.

これは良いと思ったのはサジェストが良い、これ書こうと思ったサジェストが表示されるのは便利ですね.それぐらいかな.あとはvscodeの横に問い合わせがあるとわざわざブラウザで生成AIに質問することが無くなるので良いなって感じました.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

おかげ, コード, コードアシスタント, コード修正, サジェスト, システムファイル, メリット, モックアップ, わざわざブラウザ, 仕事, 修正, 意図, 感想, 新規ファイル, 既存, 期待薄, , 殆ど, 生成, 面倒くさいコード,

SEOにとってサイトの表示速度は命なのかも.#内容よりレンダリングの速さSEO

2025.02.17

Logging

おはようございます.SEOにとってサイトの表示速度は命なのかも、レンタルサーバーからVPSサーバーに移行して数日経ちますが収益は若干改善してきたように思えます.変わったのはレンダリングの速さだけです.レンダリングと言ってもレンダリングは変わっていないのでサーバーの伝送速度がレンタルサーバーより改善されただけです、それだけでやっぱ違います.

VPSサーバー側にWordPressの表示速度が改善されるというKUSANAGIという物があるのですが、それを導入するとかなり改善されます.因みにSEOの改善のためにCDNを使用するのは良いことらしいです.

検索にヒットしても最終的には人が読むものなので読みづらい共感できない調べていることと違ったなどの思った瞬間、離脱していきます.これから検索するより生成AIに質問を投げることが多くなると思います.そうなると技術で検索サイトを利用することも減っていくだろうと思う反面.

OpenAI deep research in practice.

最新の情報はネットに落ちているので従来通りの検索でしか見つけるのは難しいと思います.chatGPTのディープリサーチ(Deep Research)というものを使用すれば検索を生成AIがしてくれたり、商品を購入してくれたりしてくれますが、それでも難しいと思います.最終的に人が確認しないといけないという作業が残っているからです.

そして生成AIを使用しているのは主に大手企業やIT界隈ぐらいのものです、その他の企業などでは生成AIの使用を禁止する企業もあるとか.業界変われば何とやらで普及にはやはり10年単位は必要になりそうです.

これから先はSEOよりひとに伝わる内容がますます大事になりそうです(イライラさせないためにも速さも大事ですね(笑)).

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

サーバー, サーバー側, ディープリサーチ, レンダリング, レンタルサーバー, 伝送速度, 作業, 反面, 収益, , 大手企業, 年単位, 従来通り, 改善, 普及, 生成, 界隈, 瞬間, 若干, 表示速度,

Photo by 蒼竹 吉田 on Pexels.com

不可思議な世界を生きていることを認識して生きている人はあんまいない.

2025.02.13

Logging

おはようございます.不可思議な世界を生きていることを認識して生きている人はあんまいない.大人になるにつれて宇宙の成り立ちに疑問を持ったりすることも少なくなり、社会で生きていくので精一杯な人生を歩むことになるだろうと思う.こんな疑問を研究しているのは一部の賢い研究者さんぐらいモノです.

未だに無から有になったというのが分からない.それが出来れば地球上の問題はかなり解決すると思う.無から有が作れるということは物質を作れるということです.あと、色覚にも疑問を持っていてAさんとBさんが見ている色は同じ色なのかという事.色覚異常のひとは一部の色が認識できないなどがわかっているけども.そもそもAさんは赤と思っているものがBさんにとっては青だったりする事はないのかということ.これが子どもの時に抱いていた疑問です.

その疑問を生成AIに投げたらやはり同じ疑問を持っていた人がいたらしく今の答えを教えてくれました.生成AIは便利ですね.回答は下記です.

とても興味深い疑問ですね!「Aさんが見ている赤」と「Bさんが見ている赤」は、本当に同じ赤なのか? それとも、まったく違う色を見ているけれど、共通の言葉(「赤」)を使っているだけなのか? これは**「クオリア(Qualia)」**と呼ばれる哲学的な問題です。

1. 色は脳の中の解釈

 色は物理的な波長として存在しますが、それを「何色」と感じるかは脳が処理する過程で決まります。目の網膜には錐体細胞(赤・緑・青の3種類)があり、これが光を受け取って信号を脳に送ります。脳はその信号を処理し、色として認識します。

2. 色の主観性(色のクオリア)

 問題は、Aさんの脳が処理する「赤」と、Bさんの脳が処理する「赤」が本当に同じなのかということです。仮に、Aさんの「赤」とBさんの「青」が入れ替わっていたとしても、言葉や色の関係性(例えば信号の赤=止まれ)は学習によって決まっているので、日常生活では区別できません。つまり、お互いに「赤」と言っているけれど、実はまったく違う色を見ている可能性が理論上はありえます。

3. 色覚異常との違い

 色覚異常は、特定の色の区別がつきにくくなる現象ですが、ここでの疑問とは少し異なります。色覚異常の人は「違いがわかりにくい」のであって、「全く異なる色として見ている」わけではありません。

4. 実験で確かめられる?

 理論的には、「Aさんの赤」と「Bさんの赤」が違うことを確かめる方法はないとされています。なぜなら、AさんもBさんも「これは赤です」と言える以上、その主観的な体験を比べる手段がないからです。ただし、もし脳の色処理を完全にシミュレーションできる技術が生まれれば、未来では何らかの証明が可能になるかもしれません。

5. マントラッカー実験

 ある種の生物(例えば特定のエビ)は、人間よりもはるかに多くの色を認識できると言われています。もし彼らに色を聞くことができたら、「人間が見ている赤」は、彼らにはもっと複雑な色として見えている可能性があります。

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

エビ, クオリア, ひと, マントラッカー実験, 信号, 共通, 区別, 未だに無, 波長, , 物質, 特定, 現象, 生成, 生物, 網膜, 興味深い疑問, 解釈, 過程, 錐体細胞,

Dockerの事がよくわからない.ドッカーって機能追加はあとから出来ないのかな?

2025.02.12

Logging

おはようございます.Dockerの事がよくわからない.ドッカーって機能追加はあとから出来ないのかな?ymlファイルに後から修正して下記のコマンドを実行すると再度、初期化された状態になる.

docker-compose up -d --build

なのでDockerfileやボリュームとかいう物があるだと思います、それを使用して何とか凌ぐしかないかな.これだと後からコンテナの追加は出来るものの辛いものがある.サーバーを機能追加ために止めたくないのです.こうすれば良いよと教えてくれる方は一言コメントからアドバイスをお願いいたします🙇‍♂️.

生成AIに相談した所、どうも無理だという回答が返ってきたので恐らく無理なんだと思います.これからDockerが進化していけばそこら辺も変わってくるのだろうと思うものの、ちょっと不便さを感じる.

Dockerの良いところは簡単に環境構築が出来るところにあるだと思う反面、本番環境ではコンテナ運用はちょっと辛いものがある.そこら辺をクリアしたらめちゃ便利なツール何だけどね.

そういう痒いところに手が届くのはお高いけどAWSやGCP、Azureというものがあるのだろうね.何度か余裕資金がある時に使用したけどアレ高額請求が怖くて辞めてしまいました.

因みに先日のサーバがダウンしていたのはDockerでいろいろと試みていた結果.コンテナが壊れてしまい復旧作業に時間がかかっていました.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アドバイス, アレ高額請求, コマンド, こんてな, コンテナ運用, サーバ, サーバー, そこら辺, ドッカー, ファイル, ボリューム, 一言コメント, 再度, 反面, 回答, 復旧作業, 本番環境, 環境構築, 生成, 結果コンテナ,

低学年向けの学習サイトを作ってみました. 今のところ無広告で運営中.

2025.02.10

Logging

おはようございます.低学年向けの学習サイトを作ってみました. 今のところ無広告で運営中です、因みにこのサービスは数年前にこのサイトにも存在しているものをlaravelとvueで再構築した形になります.

このサイト制作に費やした時間は1時間ぐらいです、いやー結構かんたんにそれらしい物が出来たので、自分としては満足です.アクセス数が多くなれば広告掲載などを考えています.

楽しんで学ぶ

広告掲載はトップのみに表示させるようにします.学習中に広告があるのは気が散りますからね.尚、このサイトは生成AIのちからを借りて制作したのでものの1時間ぐらいで完成した形になります.これから先こんな感じで自然言語の命令でコードを生成AIに書かして人はソースコードのチェックや動作チェックだけをするようになるのかも知れないなと思いましたが、やはり100%と生成AIが生成したものに対して保証が担保出来ない限り、コーダーさんやプログラマーさんの職が無くなることはなさそうです.

因みに自分は生成AIに課金していません.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アクセス数, コーダーさん, コード, ソースコード, ちから, ところ無広告, プログラマーさん, 低学年向け, 保証, 再構築, 動作チェック, 命令, 学習サイト, 学習中, , , 生成, , 言語, 限り,

久しぶりに個人の収益とかのお話です.結論から述べると収益は以前から比べて

2025.02.05

Logging

おはようございます.久しぶりに個人の収益とかのお話です、結論から述べると収益は以前から比べて少し鈍化していますが一応、収益は発生しているけど銀行に収益が振り込まれない月が発生していて前のように、毎月のクレジット支払いとの相殺することも今はないです.いろいろと試行錯誤はしているもののこれと言った打開策を見出していない感じです.

この頃、少し弱気な自分がいます.このままこんな感じの収益しか得れないのかなぁなどと思う時があります.そろそろ花開いても良いじゃないかなぁなどと思う.アクセス数もそんなに悪くはないのに何故なのかなと思う所があります.恐らくなんだけど安い広告しか出てないのかも知れない、そして広告の制御が自分でうまく出来ていない感じもします.それが一つの原因なのかも.

あと一つは一度急落してから再度もとのページランクに戻るのは至難だったりします.理由は色々あるけど一番はそのジャンルページを格下げなどを検索会社がすると元の状態に戻るのは検索会社さんの方針を変えない限り底は上がらないので微妙です.

因みに、この頃このサイトでは技術ネタが少なくなったのは生成AIの肥やしにされるのはヤダからと言う理由とは別に生成AI使えば大体生成AIで完結するようになってきたので技術ネタではもうググらないと言う理由です.これからはサイトの魅力が大事になりそう、そうまさにキャラ作りできているサイトなどはリピーターが増えそうな気がします.

生成AIに質問すると定量的な答えが返ってくるものの何か個性が足りないのですね、これから個性を持ったAI(人工知能)なども生まれてくるかも知れないけれどもそれはまだ少し先の未来かと思います.

なのでこれからは技術ネタより個性が光るサイトが発掘されそうな気がします.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

キャラ, ググ, クレジット, ヤダ, リピーター, 人工知能, 個性, 再度もと, 制御, 収益, 打開策, 方針, 未来, 毎月, 生成, 答え, 結論, 試行錯誤, 銀行, 限り底,

さくらレンタルサーバーからさくらVPSサーバーへ完全移行.#有難うこんにちは

2025.02.01

Logging

おはようございます.さくらレンタルサーバーからさくらVPSサーバーへ完全移行で先週の休みは潰れました.潰れたけどいまは何とか運用できています、たまに負荷に負けていますが、仕方がない.これ以上、いまの段階でVPSサーバーにお金を支払えない.

負荷に負けたときの対処法は今のところ秘密です.因みに寝ずにサーバーを見張っているわけではないです.言えるのはここまでw.

話変わってトランプさんに変わってから株価下がっていませんか?このままだとトランプさんで4年も持ちそうにない気がします.アメリカの政治家も何だかんだ老人ばかりが政権を握っている、大国でも年功序列なんですけねぇ.あんなにいろいろな人材がいる社会なのに大した人が大統領になっていないように表面上は見えてしまいます.

裏で政権を操っている人がいるだと思います、今回は裏でもないけどイーロン・マスクがトランプさんをコマに使っているように見えますよね.実際、どうなんですかねー.

話戻してさくらレンタルサーバーは1月末で契約を解除しました.当分はさくらVPSサーバーで頑張っていこうと思います.最初はサーバーが落ちまくりでどうしよう契約したのにと思っていましたが、生成AIと協力して解決していきました.たぶん生成AIと対話しなかったらこんな短時間に解決しなかったのかも.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

アメリカ, イーロン・マスク, コマ, サーバー, さくらサーバー, さくらレンタルサーバー, 人材, 大国, 大統領, 年功序列, 政権, 政治家, 最初, 株価, 段階, 生成, 老人, 落ちまくり, 表面上, 負荷,

原因不明のサーバー負荷に悩まされる.未だ目処立たず.対処法は

2025.01.28

Logging

おはようございます.VPSサーバーに切り替えて4日目ぐらいだと思いますが、何だか不安定な感じになっている.たまに高負荷がかかってVPSサーバーが落ちるというのが続いている、DDOS攻撃かとも思えるのだがこんな大したことがないドメインにDDOS攻撃なんてして何得なのかと思い.

恐らく自分の設定によるものだろうと考えに至ったのだけども、実際、DDOS攻撃なのかも知れないというのも外してはいない.ログを見てどうこう分かれば良いのだけども分からないので生成AIに丸投げして判断してもらっている.

生成AIを課金すればもっと良い回答が得られるのだろうけども、そこまでしたくはないのが現状.

生成AIつづきで、昨日Xにポストした.流暢に日本語を話すAIがほんとうに凄い、ひとかAIかが全くわからない.中に人が入っているだろうぐらいの勢いで衝撃的だった.

もう見分けつかないかもなぁ.将来、ロボットと人の見分けがつかないレベルにまでなる可能性があるだなと気付かされた生成AIだった.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

サーバー, ドメイン, ひとか, ログ, ロボット, , 勢い, 可能性, 実際, 将来, 感じ, 攻撃, 日本語, 現状, 生成, 生成つづき, 自分, 良い回答, 設定, 高負荷,

EC管理サイトを作っています.外観デザインは生成AIに作ってもらったら平均.

2025.01.17

Logging

おはようございます.EC管理サイトを作っています.外観デザインは生成AIに作ってもらったら平均的なデザインが出てきました.因みに自分は無料会員の生成AIを使っているのだけど、もう無料で十分な気がします、とても便利です.内部処理は自分でコードを書いているわけです、今までデザインでなかなか前へ進まなかったEC管理システムがなんか作れそうな気がしています.

外観デザインは生成AIにしてもらって、後の処理部分を仕事が休みの日を使ってごとごとと作っていきたい.3ヶ月ルールを目標にして3ヶ月でリリースまで漕ぎ着けれると思いますが、会員登録してくれたりするのは別の話かと思います.自分の予想では使われないかもなって思っているけど、こういう予想ははずれる場合もあるので何ともですね😌.

今回は有料プランもあるので決済処理会社に申請を出さなくてはならないけど、申請が下りるかは未知数です.通らなかった場合はフリープランの商品登録数の上限を少し変えて運用していくつもりではいます.心が折れて途中で頓挫する可能性も少しはありますが今のところはたぶん出来るだろうと思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ヶ月ルール, コード, デザイン, フリープラン, リリース, 上限, 予想, 休み, 会員, 内部処理, 処理部分, 外観デザイン, 有料プラン, 未知数, 決済処理会社, 生成, 申請, 目標, 管理システム, 途中,

生成AIでポートフォリオサイトを作ってでどれぐらい物(単純な指示で)が生成されるのか?

2025.01.09

Logging

おはようございます.生成AIでポートフォリオサイトを作ってでどれぐらい物(単純な指示で)が生成されるのか?を試してみた結果、ダークモードにも対応出来ていたけどもやっぱ微妙かなと思いました.確かにまずまずの物は作れるようになっているけど、凝ったものを作るのは知識が必要になる.

生成AIでポートフォリオサイトを作ってでどれぐらい物(単純な指示で)が生成されるのか?

ひろゆき氏の切り抜きの動画をたまたま見たけど、ひろゆき氏の生成AIに対しての考え方は今のところ間違っていない感じがします.生成AIは平均的なものが生成されます、そして生成AIで生成されたコードを直せない人は生成AIを使えない.それはソースコードも絵や音楽でも同じでそれなりものは出来るけど、その調整を出来るのはそれを専門にしている人だけです.

そして生成AIが作ったものが正しいものなのかが判断する人がいないと難しい.生成AIの提供会社が100%保証してくれるわけでもなく、生成AIで生成されるものは間違いがあることを認めている現状ではやはり普及はしないし専門家の仕事は奪われないというのがひろゆき氏の見解です.AGI(汎用人工知能)やASI(人工超知能)というのは幻想かもしれない.

シンギュラリティは当分来ない、早くても10年、20年後になるじゃないだろうかと.

ただAIはこれからも徐々に進化していくとは思っています.それに伴って医療などの進展は今まで以上に加速すると思っています.そういう訳でエヌビディアの株も今年が天井なのかもしれません.

最後に今回、生成AIが生成したhtmlファイルを添付致します.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Portfolio</title>
  <!-- Bootstrap CSS -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
  <style>
    body {
      font-family: Arial, sans-serif;
      transition: background-color 0.3s, color 0.3s;
    }
    .hero {
      background: url('https://picsum.photos/1200/600') no-repeat center center/cover;
      height: 60vh;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    }
    .project img {
      border-radius: 8px;
    }
    footer {
      background: #343a40;
      color: white;
      padding: 1.5rem 0;
      text-align: center;
    }
    .dark-mode {
      background-color: #121212;
      color: #e0e0e0;
    }
    .dark-mode .hero {
      text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.7);
    }
    .dark-mode footer {
      background: #1f1f1f;
    }
  </style>
</head>
<body>
  <header>
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
      <div class="container">
        <a class="navbar-brand" href="#">My Portfolio</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
          <ul class="navbar-nav ms-auto">
            <li class="nav-item"><a class="nav-link" href="#about">About</a></li>
            <li class="nav-item"><a class="nav-link" href="#projects">Projects</a></li>
            <li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
            <li class="nav-item">
              <button class="btn btn-outline-light ms-3" id="darkModeToggle">Toggle Dark Mode</button>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>

  <section class="hero text-center">
    <div>
      <h1>Welcome to My Portfolio</h1>
      <p>Showcasing my work and projects</p>
    </div>
  </section>

  <section id="about" class="py-5">
    <div class="container">
      <div class="row">
        <div class="col-md-6">
          <img src="https://picsum.photos/500/400" alt="About Me" class="img-fluid rounded">
        </div>
        <div class="col-md-6">
          <h2>About Me</h2>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce aliquam magna in odio malesuada, vitae vulputate libero sodales. Nulla facilisi.</p>
        </div>
      </div>
    </div>
  </section>

  <section id="projects" class="py-5 bg-light">
    <div class="container">
      <h2 class="text-center mb-4">Projects</h2>
      <div class="row">
        <div class="col-md-4 project mb-4">
          <img src="https://picsum.photos/400/300" alt="Project 1" class="img-fluid">
          <h4 class="mt-2">Project 1</h4>
          <p>Short description of the project goes here.</p>
        </div>
        <div class="col-md-4 project mb-4">
          <img src="https://picsum.photos/400/300" alt="Project 2" class="img-fluid">
          <h4 class="mt-2">Project 2</h4>
          <p>Short description of the project goes here.</p>
        </div>
        <div class="col-md-4 project mb-4">
          <img src="https://picsum.photos/400/300" alt="Project 3" class="img-fluid">
          <h4 class="mt-2">Project 3</h4>
          <p>Short description of the project goes here.</p>
        </div>
      </div>
    </div>
  </section>

  <section id="contact" class="py-5">
    <div class="container">
      <h2 class="text-center mb-4">Contact Me</h2>
      <form>
        <div class="mb-3">
          <label for="name" class="form-label">Name</label>
          <input type="text" class="form-control" id="name" placeholder="Your Name">
        </div>
        <div class="mb-3">
          <label for="email" class="form-label">Email</label>
          <input type="email" class="form-control" id="email" placeholder="Your Email">
        </div>
        <div class="mb-3">
          <label for="message" class="form-label">Message</label>
          <textarea class="form-control" id="message" rows="4" placeholder="Your Message"></textarea>
        </div>
        <button type="submit" class="btn btn-primary">Send Message</button>
      </form>
    </div>
  </section>

  <footer>
    <p>© 2025 My Portfolio. All Rights Reserved.</p>
  </footer>

  <!-- Bootstrap Bundle with Popper -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
  <script>
    const darkModeToggle = document.getElementById('darkModeToggle');
    darkModeToggle.addEventListener('click', () => {
      document.body.classList.toggle('dark-mode');
    });
  </script>
</body>
</html>

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

エヌビディア, シンギュラリティ, ソースコード, それなりもの, ダークモード, ひろゆき氏, ポートフォリオサイト, 人工超知能, 天井, 幻想, 指示, 普及, 最後, , 汎用人工知能, 現状, 生成, 見解, 進展, 難しい生成,

クリスマスなのでブラウザに雪を降らすJSコードを生成AIで生成.

2024.12.25

Logging

おはようございます.クリスマスなのでブラウザに雪を降らすJSコードを生成AIで生成.今年も彼女がいないクリスマスを過ごしました.彼女になってくれる人お待ちしております、この姿勢が彼女が出来ない要素なんだということも分かっていますが.

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>雪</title>
    <style>
        #snowContainer {
            position: absolute;
            /* 親要素に対する絶対配置 */
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
            /* 雪が画面外に出ないようにする */
            pointer-events: none;
            /* 雪がマウスイベントを邪魔しないようにする */
            z-index: 9999;
            /* 他の要素より前面に表示 */
        }

        .snowflake {
            position: absolute;
            width: 10px;
            height: 10px;
            background-color: white;
            border-radius: 50%;
            /* 丸くする */
            opacity: 0.7;
            /* 少し透明にする */
            animation: snowfall linear infinite;
            /* アニメーションを指定 */
        }

        @keyframes snowfall {
            0% {
                transform: translateY(-10px);
            }

            /* 開始位置 */
            100% {
                transform: translateY(100vh);
            }

            /* 終了位置(画面下部) */
        }
        html{
            background-color: black;
            width: 100vw;
            height: 100vh;
        }
    </style>
</head>
<body>
    <div id="snowContainer"></div>
    <script>
        const snowContainer = document.getElementById('snowContainer');
        const numSnowflakes = 50; // 雪片の数

        for (let i = 0; i < numSnowflakes; i++) {
            const snowflake = document.createElement('div');
            snowflake.classList.add('snowflake');
            snowflake.style.left = `${Math.random() * 100}vw`; // 横方向のランダムな位置
            snowflake.style.animationDuration = `${Math.random() * 3 + 2}s`; // アニメーション速度をランダムに
            snowflake.style.animationDelay = `${Math.random()}s`; // アニメーション開始時間をランダムに
            snowflake.style.fontSize = `${Math.random() * 10 + 5}px`;
            snowContainer.appendChild(snowflake);
        }
    </script>
</body>
</html>

そんな自分でも好きですという奇特な人はいないものかな…(受け身(笑)

そんな自分が生成AIに雪を降らすJSコードを頼んだところ、俊足の解を出してくれました.なんて時代なんだと思いながら出力されたコードをhtmlファイルにペーストしてhtml背景を黒にしてあとは一応、確認.

最後に雪が降っているデモサイトを貼っときます.

https://zip358.com/tool/snow

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, アニメーション, アニメーション速度, クリスマス, マウスイベント, ランダム, 俊足, 前面, , 姿勢, 最後, 生成, 生成今年, 画面下部, 背景, 要素, 親要素, , 配置, 雪片,

Python初学者は無料のあのドキュメントを読めば良いと思った話.

2024.12.23

Logging

おはようございます.Python初学者は無料のあのドキュメントを読めば良いと思った話を書いていきます.Python言語は飛ぶ鳥を落とす勢いです、とても人気の言語でもありますが自分はクラスやメソッドが{}でしまっていないので読みづらさを感じます.

# コレクション作成
users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}
# 方針:  コピーを反復
for user, status in users.copy().items():
    if status == 'inactive':
        print(user)
        del users[user]

# 方針:  新コレクション作成
active_users = {}
for user, status in users.items():
    if status == 'active':
        active_users[user] = status
print(active_users[user]) 

さて、この上記のコードは何処のコードかといえばPython公式のドキュメントです.これを読むだけで初学者さんは勉強になると思います.それもこれ日本語で書いてくれています.

これを読むだけで高い参考書籍を買う必要はない気がします.それでも分からない方は参考書籍を買ってみてください.

Pythonの話ではないのですが、最近React公式のドキュメントが読みやすくなっているって界隈でちょっと騒ぎになっていました.

これも生成AIが恩恵なのかもしれません.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

クラス, コード, コピー, コレクション作成, ドキュメント, メソッド, 何処, 初学者, 初学者さん, 勉強, 勢い, 参考書籍, 反復, 恩恵, 方針, 景太郎, 生成, 界隈, 言語, ,

Qiitaをさよならした話.生成AIの時代に技術的な記事を書くこと.

2024.12.21

Logging

おはようございます.Qiitaをさよならした話.生成AIの時代に技術的な記事を書くことはデメリットに成りかねない.自分みたいな小童が記事を書いてもそれを生成AIが抽出し学習していく.それを技術的なことを知らないユーザーが使用し中小企業や零細企業に改善してほしいと厳しい単価で要求してくる世の中になるのではないかという懸念からQiitaに記事を記載するのを辞めました.

正確にいうとQiitaの技術的な記事をすべて削除しました.ブログでは今まで掲載した記事を探し出して削除するのは記事数が多いのでしませんが、今後の記事は初心者向けの記事や気づきのメモ的な記事を書いていく事にします.

具体的にはPHPの技術的な記事はこれから少なくなっていくと思います.また業務に支障のない範囲で初心者向けのPythonやReactなどの技術的な記事は書いていくと思います.

WEBサイト制作だけを生業としている企業は生成AIの登場で厳しい時代になってくると思います.もうテキスト指示だけで自分のサイトが作成できる時代になっていてそれをワンアクションで公開出来るようになっています(米国の企業がそんなサービスを提供しています).

これから先、WEBシステムやソフトウェアも一からコードを書かなくて良い時代になってくると思います.ただ既存のWEBシステムやソフトウェアのメンテナンスがあるので直ぐに置き換わるという事はないとは思いますが.それも時間の問題なんだと.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

コード, ソフトウェア, テキスト指示, メンテナンス, ユーザー, , 中小企業, 厳しい単価, 厳しい時代, 小童, 懸念からに記事, 支障, 既存, 業務, 生成, 生業, 範囲, 米国, 話生成, 零細企業,

読めるのに書けないってプログラムコードでも有り得るようになるのかも.

2024.12.15

Logging

おはようございます.今後、生成AIが進化する中、読めるのに書けないってプログラムコードでも有り得るようになるのかもとふと思ってしまう.例えばPHP言語なら自分はある程度コードはかけるのだけど、Pythonになるとあまり慣れていないせいか、あまり思うように書けない.

ついつい生成AIに頼ってしまう.そうなると生成AIで記載されたコードを読んでカスタマイズすることになる.

そう、読めるのにコードが1から書けない状態に陥ってしまう.これを打開するには自分でコードを書くしかほかならない.これから先、生成AIが進化する中で自分みたいに読めるのに書けない人もエンジニアも仕事をしていくことになるだろうか.

ともあれ生成AIは進化している中でプログラムコードはエンジニアが書くという機会は減っていくのは必然なのかもしれない.

生成AIに頼ってしまうは検索サービスよりも依存してしまいそうだ.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

エンジニア, コード, プログラムコード, , 仕事, 必然, 検索サービス, 機会, 状態, 生成, 程度コード, 自分, 言語,