ブログ通知を付けました.4時間置きに通知が飛びます.#サービスワーカー

2025.01.05

Logging

おはようございます.去年の暮にブログ通知を付けました.4時間置きに通知が飛びます.ソースコードは以前に書いたコードをベースとして再構築した形になります.平たく言うとLaravelを使用しないでWEB通知を行うものになります.一度作ってしまえば使いましが出来るようにコードを今回は書いたので使いまわそうと考えています.

以前、Laravelで作っていたので考え方は苦労せずに出来たのですが…

今まで知らないことが出てきてしまってそこでロスしてしまいました.知らなかったこととはjavascriptのfetchです.使用する機会は結構多めなんだけど知らないことがありました.それはurlのパラムに/exampleと書くか/example/index.phpと書くかでphp言語のグローバル変数$_SERVER[‘REQUEST_METHOD’]の値がPOSTで送っているのにも関わらずGETになるのです.

fetchを書く場合は/example/index.phpと書くことでPOST送信と判断されます.これをデバックもせずに悩んでいました(笑).デバック大事.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

グローバル変数, コード, ソースコード, デバッグ, デバック大事, パラム, ブログ通知, ベース, 一度, , 去年, , 時間置き, , 機会, , 考え方, 言語, 送信, 通知,

LaravelのViteが使用できない環境でログイン画面などを表示させたい対処法.

2025.01.02

Logging

おはようございます.さて正月、2日目の記事はLaravelのViteが使用できない環境でログイン画面などを表示させたい対処法です.レンタルサーバーではnpmコマンドが使えないのでローカルでビルドしてサーバーにビルド後のファイルをUPしている方が殆どだと思いますが、npmをビルドするのも面倒、ビルドが出来ない方はソースコードを読んで何のコードが使われているかを判断して使用されているライブラリーのcdnを貼り付けるだけで大体の解決します.

LaravelのViteが使用できない環境でログイン画面などを表示させたい対処法.

尚、viteで参照しているところは削除してください(viteと差し替える形になります.).

viteでエラーが出る話はこれで終わりです.ここから余談です今年から無料になったGitHub Copilotを個人開発では使用するようにしました、この事によって今までより開発効率が上がるということならば有料プランも検討したいなと思っています.今のところ、無料プランで使っていくというスタンスです.

因みに自分は正月そうそうからコードを書いています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

エラー, コード, コマンド, サーバー, さて正月, スタンス, ソースコード, ビルド, ビルド後, ファイル, ライブラリー, レンタルサーバー, ログイン画面, 余談, 対処法, , 有料プラン, 正月そうそう, 殆ど, 開発効率,

ビットフライヤーはビットコインのビットコインをリアルタイムで受信するphpコード

2024.12.30

Logging

おはようございます.ビットフライヤーはビットコインのビットコインをリアルタイムで受信するphpコードを書きましたのでお裾分けです.以前書いていたものとは違う感じになります.ビットフライヤーさんのAPIを参照するとルビやJSの例コードはあるものの、何故かPHP言語のコードが無いので書いてみた形になります.ベースは生成AIに出力してもらったの物になります.それを自分の方がクラス化して使いやすくした形になります.

<?php
require 'vendor/autoload.php';

use WebSocket\Client;

class bitflyer
{
    public $client = null;
    public $channelName = "lightning_board_snapshot_BTC_JPY";
    public $wsUrl = 'wss://ws.lightstream.bitflyer.com/json-rpc';

    public function connecting()
    {
        try {
            // WebSocketクライアントを初期化
            echo "Connecting to WebSocket server...\n";
            $this->client = new Client($this->wsUrl);

            echo "Connection established. Subscribing to channel...\n";

            // サブスクライブメッセージを送信
            $subscribeMessage = json_encode([
                'method' => 'subscribe',
                'params' => ['channel' => $this->channelName],
                'id' => null,
            ]);
            $this->client->send($subscribeMessage);
        } catch (\WebSocket\ConnectionException $e) {
            echo "WebSocket connection error: " . $e->getMessage() . "\n";
            sleep(1); // 1秒待機して再接続
            $this->client = null;
            $this->connecting()->receive();
        } catch (Exception $e) {
            echo "General error: " . $e->getMessage() . "\n";
            $this->client = null;
            $this->connecting()->receive();
        }
        return $this;
    }

    public function receive()
    {
        try {
            // メッセージ受信処理
            while (true) {
                $message = $this->client->receive();

                // 受信データが空でないか確認
                if (!empty($message)) {
                    $data = json_decode($message, true);

                    // デコードが成功したか確認
                    if (json_last_error() === JSON_ERROR_NONE) {
                        if (isset($data['method']) && $data['method'] === 'channelMessage') {
                            print_r($data['params']);
                        }
                    } else {
                        echo "JSON デコード エラー: " . json_last_error_msg() . "\n";
                    }
                } else {
                    echo "返却値 空.\n";
                }
            }
        } catch (Exception $e) {
            echo $e->getMessage();
            $this->client = null;
            $this->connecting()->receive();
        }

        echo "Ctrl+C にて終了\n";
        return $this;
    }
}

(new bitflyer)->connecting()->receive();

尚、レンタルサーバーなんかでこのコードを動かすのは禁止されていますので、必ずローカルマシンで動かしてください.もし何かトラブルになっても保証出来ないので注意してください.因みに自分はDocker内で動かしています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, エラー, お裾分け, クライアント, コード, サブスクライブメッセージ, デコード, ビットコイン, ビットフライヤー, ビットフライヤーさん, ベース, リアルタイム, ルビやの例コード, レンタルサーバー, ローカルマシン, , 接続, 秒待機, 言語, 返却値,

ガチで知らなかった.もう何年もPHP言語使っているのに恥

2024.12.28

Logging

おはようございます.ガチで知らなかった.もう何年もPHP言語使っているのに恥…下記のコードで動くことを知らなかった.そもそもそんな返却の仕方が出来ないと思い込んでいたのでlist関数を使用していた.

function abc(){
    return ['a','b','c'];
}
[$a,$b,$c] = abc();
echo "a={$a} b={$b} c={$c}";

改修とか機能追加とか、新規開発で他の人のコードとかを見るけど、そういう使い方をしている人を見たことがなかったので、知る由もなく今の今まで来てしまった.これphpのサンドボックスでバージョンの違うものを実行してみたらphp7.4系でも動いたので絶句してしまった.因みに7.0系は動かない.

自分はphp5系のからPHP言語を主とした仕事をしてきたわけです.仕事で使用するコードってある程度似ているので同じような関数などを使う反面、バージョンアップで追加された機能を使うことはほぼ無い.非対応になった関数を置き換えることはあっても.そういう事もあり今の今まで知らずにいた.

知るきっかけになったのは、プルリクエストしマージ後に自動でコードの正規化が行われた時にコードが置き換わった事によることで知ることに…

知るは一時の恥、知らぬは一生の恥.

明日へ続く

著者名  @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で応援を送る

タグ

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

Pythonの仮想環境で使おうの巻. python3 -m venv

2024.12.19

Logging

おはようございます.Pythonの仮想環境で使おうの巻です、この頃PHP言語の技術的なお話は避けようと思っていて代わりにpyの話を書こうと思っています.PHPのお話を避ける理由は業務で使用しているので、何処まで書いて良いのやらになっている事が理由です.

その代わりにPythonは業務で今のところ使用していないので書きやすい.そういう理由からPythonの事を書いていこうと思っています.この頃、Python記事が多いのもそういう経緯があります.

python -m venv 仮想環境名任意「英字」

今日、ご紹介するのはPythonを実行するのは仮想環境下で行おうという話です.上記のコマンドを打つと仮想環境が任意のディレクトリ配下に作成されます.仮想環境をアクティブにしたい場合は下記のコードでアクティブ化出来ます.アクティブ化した後、インストールやPythonを実行しましょうって話です.

Macやリナックス
. 仮想環境名任意/bin/activate
うぃんどーず
.\仮想環境名任意\Scripts\activate

こうすることで何が良いのかと言うことだけどもCドライブやドキュメント配下がライブラリに侵食されないという利点があります.あとDockerで立ち上げなくても良いというのもあるかな?

トイウコトデ、仮想環境のお話でした.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

インストール, コード, コマンド, ディレクトリ配下, トイウコトデ, ドキュメント配下, ドライブ, ライブラリ, リナックス, 下記, 仮想環境, 仮想環境下, 仮想環境名任意, 何処, 利点, , 業務, 経緯, 英字, 言語,

大晦日までカウントダウンしてまたカウントダウンするJSコード #永遠

2024.12.18

Logging

おはようございます.大晦日までカウントダウンしてまたカウントダウンするJSコードだけではツマラナイので全て漢字に変換して表示するコードを書きました.これでもツマラナイと思う人もいると思います.

そんなに難しいコードでもないのでコードを添付します💁.

        function updateCountdown() {
            const now = new Date();
            const nextNewYear = new Date(now.getFullYear() + 1, 0, 1, 0, 0, 0); // 次の年の1月1日0時0分0秒
            const diff = nextNewYear - now; // ミリ秒差

            if (diff > 0) {
                const days = Math.floor(diff / (1000 * 60 * 60 * 24));
                const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
                const seconds = Math.floor((diff % (1000 * 60)) / 1000);

                // 表示を更新
                document.getElementById("countdown").innerText =
                    kanji(`${days}日 ${hours}時間 ${minutes}分 ${seconds}秒`);
            } else {
                document.getElementById("countdown").innerText = "明けましておめでとうございます!";
            }
        }

        // 初回呼び出しと1秒ごとの更新
        updateCountdown();
        setInterval(updateCountdown, 1000);
        function kanji(str){
            let oo = [{'kanji':'零'},{'kanji':'壱'},{'kanji':'弐'},{'kanji':'参'},{'kanji':'肆'},{'kanji':'伍'},{'kanji':'陸'},{'kanji':'漆'},{'kanji':'捌'},{'kanji':'玖'}];
            oo.forEach((o,index)=>{
                str = str.replace(new RegExp(index, "g"),o.kanji);
            });
            return str;
        }

もっと芸のあるカウントダウンを作ろうとするとp5jsなどのライブラリが必要になると思います.WEBサイトでパーティカルなどを行っているサイトは大体こういうライブラリを使用しています.p5jsなどを使用して昔作ってみようかななどと思ったことが有りますが、実はp5jsは一度も触ったことがないです.

明日へ続く

著者名  @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で応援を送る

タグ

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

Pythonでノイズキャンセリングアプリ化するコードです😤デスクトップアプリ

2024.12.14

Logging

おはようございます.昨日の続きを記載します、Pythonでデスクトップアプリを作りました、デスクトップにPythonが入っている環境で下記のファイルを実行することでノイズキャンセリングが出来ます.

尚、前手順でライブラリを2つインストールください.

pip install scipy noisereduce
import tkinter as tk
from tkinter import filedialog, messagebox
from scipy.io import wavfile
import noisereduce as nr
import os

def select_file():
    file_path = filedialog.askopenfilename(
        filetypes=[("WAV files", "*.wav")]
    )
    if file_path:
        file_entry.delete(0, tk.END)
        file_entry.insert(0, file_path)

def reduce_noise():
    file_path = file_entry.get()
    if not os.path.isfile(file_path):
        messagebox.showerror("エラー", "Please select a valid WAV file.")
        return

    try:
        # Load data
        rate, data = wavfile.read(file_path)
        
        # Perform noise reduction
        reduced_noise = nr.reduce_noise(y=data, sr=rate)

        # Save reduced noise file
        output_path = os.path.splitext(file_path)[0] + "_reduced_noise.wav"
        wavfile.write(output_path, rate, reduced_noise,stationary=True,prop_decrease=0.7)
        
        messagebox.showinfo("成功", f"出力先:\n{output_path}")
    except Exception as e:
        messagebox.showerror("Error", f"An error occurred: {e}")

# Create the main application window
root = tk.Tk()
root.title("ノイズキャンセリングツール")

# Input file selection
frame = tk.Frame(root)
frame.pack(pady=10, padx=10)

tk.Label(frame, text="Select a WAV file:").grid(row=0, column=0, pady=5, padx=5)
file_entry = tk.Entry(frame, width=40)
file_entry.grid(row=0, column=1, pady=5, padx=5)
select_button = tk.Button(frame, text="Browse", command=select_file)
select_button.grid(row=0, column=2, pady=5, padx=5)

# Noise reduction button
process_button = tk.Button(root, text="ノイズ除去", command=reduce_noise, bg="lightblue")
process_button.pack(pady=10)

# Run the application
root.mainloop()

因みにこのコードをパッケージ化したい場合はPythonの下記のライブラリをインストールするとパッケージ化が出来ます.

pip install pyinstaller
pyinstaller noise-cut.py

自分でもノイズキャンセリングを試してみましたが精度はいまいちでした、noisereduceの微調整が必要になりそうです.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

エラー, コード, デスクトップ, デスクトップアプリ, ノイズキャンセリング, ノイズキャンセリングツール, ノイズ除去, パッケージ化, ファイル, ライブラリ, 下記, 出力先, 前手順, 微調整, 成功, 環境, 精度, 自分,

画像の軽量化.webpにしてみたら普通に軽いみたいですね.

2024.11.19

Logging

おはようございます.先日の休みの日に前から気になっていた画像の表示速度を改善したくてwebpという画像圧縮を採用しました.webpに関しては数年前に一度記事にはしていたのですが、その当時はブラウザの方が対応していなくて途中でもとに戻したような気がします.

今回はwebpを採用してこのまま運用していこうと思っています.過去の画像も一括でwebpにしました、それと同時に今までTopに配置していた動画も除けました.

ちょっと物足りない感じはしますが、表示速度を速くしてモバイルファーストに近づけていこうと思います.尚、webpにするためにewwwというプラグインを導入しています.

導入して上手く表示がwebpに変換されたかなと思ったら上手く変換されなかったので、自作のプラグインを作り力技でwebpに変換した形になります(画像はWebpに変換されましたがコードを見るとそのままだったので).

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ewww, TOP, webp, コード, ブラウザ, プラグイン, もと, モバイルファースト, 一括, 休み, 作り力技, , , 物足りない感じ, 画像圧縮, 自作, 表示速度, 途中, 過去,

異音でPCのファンを交換した話.PCは自作PCなのですが?

2024.11.18

Logging

おはようございます.異音でPCのファンを交換した話を書いていきます.PC(パソコン)は自作PCなのですが業者さんに一万円払って作ってもらいました.自分でも作れるのですが面倒だなと思ったのが、きっかけで業者さんに作ってもらいましたが、買ってからすぐにCPUに冷却用のグリスが塗ってないなどの問題が発生していました.その後(5年間)、特に問題なく使用していたのですが昨日からファンから異音.

PCの中身を見てみると冷水に使用しているファンがホコリで白っぽくなっていました.そういえば全然お手入れをしていないなと.そう買ってから今までPCのお掃除をしていないまま使用していたので、結構ヤバい感じだったファンの交換後についでにお掃除をしました.

ファンに関しては回転しているモーターの軸がズレると異音の原因になるので、お掃除は避けました.

なお、ファンを交換した日は休みだったけど、朝から忙しい日でした....朝はこのブログの画像をwebpに変換作業を行い、ファンを買いにアプライドへファンとPCの掃除をしその後、npushの会員ユーザー各自にプッシュ通知機能を付与するコードを書いていました.

休みはゆっくりしたいものですがコードかブログを書き溜めたりしているので結局あまり休めていない😌.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

CPU, npush, webp, アプライド, きっかけ, グリス, コード, ズレ, プッシュ通知機能, ホコリ, モーター, 中身, 会員ユーザー各自, 冷却用, 冷水, 変換作業, 掃除, 異音, 自作PC, ,

webpushのLaravelを使用しないパターンを箇条書き、フロントエンド側は

2024.11.14

Logging

おはようございます.webpushのLaravelを使用しないパターンを箇条書き、フロントエンドは過去記事を参照ください.まずwebpushを使用するにはパブリックキーとシークレットキーが必要になります.下記のURLより発行してみてください.

https://web-push-codelab.glitch.me

フロントエンド側でサービスワーカーの登録された識別データをバックエンドに送信.

// db.php: データベース接続の設定
function getDbConnection() {
    $host = 'localhost';
    $dbname = 'your_database';
    $username = 'your_username';
    $password = 'your_password';

    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    } catch (PDOException $e) {
        die("DB接続エラー: " . $e->getMessage());
    }
}

// endpoint_register.php: エンドポイントをデータベースに登録
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $endpoint = $_POST['endpoint'];
    $auth = $_POST['auth'];
    $p256dh = $_POST['p256dh'];

    if ($endpoint && $auth && $p256dh) {
        $pdo = getDbConnection();
        $stmt = $pdo->prepare("INSERT INTO push_subscriptions (endpoint, auth, p256dh) VALUES (?, ?, ?)");
        $stmt->execute([$endpoint, $auth, $p256dh]);
        echo "登録成功";
    } else {
        echo "エンドポイントデータが不完全です";
    }
}

バックエンド側で下記のようなコードでデータを保存します.

次にminishlink/web-pushというライブラリを使用し登録されたデータを元に送信処理を行います.

composer require minishlink/web-push
// message_send.php: データベースからエンドポイントを取得し、プッシュ通知を送信
require 'db.php';
require 'vendor/autoload.php';

use Minishlink\WebPush\WebPush;
use Minishlink\WebPush\Subscription;

// VAPIDキーの設定
$auth = [
    'VAPID' => [
        'subject' => 'https://example.com',
        'publicKey' => 'YOUR_PUBLIC_VAPID_KEY',
        'privateKey' => 'YOUR_PRIVATE_VAPID_KEY',
    ],
];

$webPush = new WebPush($auth);

// データベースからサブスクリプション情報を取得
$pdo = getDbConnection();
$stmt = $pdo->query("SELECT endpoint, auth, p256dh FROM push_subscriptions");
$subscriptions = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($subscriptions as $sub) {
    $subscription = Subscription::create([
        'endpoint' => $sub['endpoint'],
        'publicKey' => $sub['p256dh'],
        'authToken' => $sub['auth'],
    ]);

    // 送信するメッセージ
    $message = json_encode(['title' => '通知タイトル', 'body' => 'メッセージ内容']);

    // プッシュ通知の送信
    $webPush->sendOneNotification($subscription, $message);
}

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

```, エンドポイント, キー, コード, サービスワーカー, サブスクリプション情報, シークレットキー, データベース, データベース接続, パターン, バックエンド, バックエンド側, パブリックキー, プッシュ通知, フロントエンド, フロントエンド側, ライブラリ, 接続エラー, 識別データ,

Photo by cottonbro studio on Pexels.com

あのYahoo!と同じ機能を追加しようか悩んでいる.選択した文字を

2024.11.01

Logging

おはようございます.あのYahoo!と同じ機能を追加しようか悩んでいる.選択した文字をサイト内検索する機能.やり方はこのサイトを参照すると導入できそうなんだけど、ちょっとウザいかもしれないと言う気持ちが自分の中にあるので悩んでいます.

もし追加するなら休みの日に機能追加をするつもりです.なので、直近の三連休中に追加していなかったら追加しなかったんだなと思って頂いて構わないです.

let paragraphElement = document.querySelector("p");

paragraphElement.addEventListener('selectstart', function() {
    paragraphElement.addEventListener('mouseup', function(event) {
        console.log(window.getSelection().toString());
    });
});

その場合でもこんな感じになります的なコードは公開しようと思っています.

明日へ続く

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

console.log, EVENT, function, let paragraphElement, mouseup&#39, paragraphElement.addEventListener, querySelector, quot;p&quot, selectstart&#39, toString, window.getSelection, Yahoo, ウザ, コード, 休み, 文字, 機能, 機能追加, 気持ち, 直近,

指定日に記事を削除するWPのプラグインの雛形.

2024.10.24

Logging

おはようございます.指定日に記事を削除するWPのプラグインの雛形を作りましたが記事の削除部分(article_del_R)はご自身で作ってください.削除部分をご自身で作り自分のサイト(WP)を定期的にcronで叩けば削除される仕組みです.
毎度のことですみませんがソースコードを解析してお使いいただければと思います.また、このコードは試作品になります.

WPプラグインの画面はこんな感じです.

ソースコードはQiitaで公開しています.

因みにワードプレスで非同期処理を行うのは少し面倒です、たまに間違った情報を掲載しているサイトがあるので注意が必要です.下記で非同期処理を設定しまうとログアウトした状態でも叩けるらしいので気おつけてください!.

“wp_ajax_nopriv_{$action}”

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

Action, article_del_R, cron, qiita, wp, wp_ajax_nopriv, WPプラグイン, コード, ソースコード, プラグイン, ワードプレス, 下記, 削除部分, 毎度, 注意, 状態, 画面, 試作品, 雛形, 非同期処理,

生成AI、正直、絵に関しては見分けがつかないレベルまで来ているパッと見分からないけど.

2024.09.24

Logging

おはようございます.生成AI、正直、絵に関しては見分けがつかないレベルまで来ているパッと見分からないけどよく見ると線が不自然な書き方があったり、微妙に歪みが絵にあるだけどそんなの多分、絵師さんしか分からない.

最近、自分の職業があと数十年で仕事を失うだろうという記事を読んで有り得るかもしれない?、でも実際そうならない気もする.理由は殆どの生成AIは有料じゃないと精度が良くないから、そして無料化して人々がコードを出力しだしても結局それを理解して使える人はあんまりいない.

コードを生成したりアプリを生成したりすることは出来るようになってきているけど、それは一から作られたアプリやホームページなど.そこからオリジナリティを出すためや自社製品としてカスタマイズするにはプログラマーが必要になる.これから一から製品を作ることが少なくなりAIが作ったものを手直しする事が増えそうな気がしてならない(当分はなさそうだけども).

あのノーコードアプリが登場したときも、これでプログラマーの職が消えると騒いでいたのに結局のところ、あまり変化がなかった.それに今の現状は酷似している😆.

因みにGさんが生成AIを浸透させるために無料化に舵を切ったけど使いこなせる人の割合は変わらないよね.たぶん.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

AI, オリジナリティ, コード, ノーコードアプリ, プログラマー, 人々, 割合, 変化, 有料, 正直, 殆ど, 現状, 生成AI, 精度, , 絵師さん, , 職業, 自社製品, ,

2015年のコードと比べると2024年のコードはマシになっている.

2024.08.30

Logging

おはようございます.2015年のコードと比べると2024年のコードはマシになっている事が一目瞭然で分かるぐらい酷い...、あの頃から比べると自分のコードは成長している気がする.あー何であんなコードをオープンで公開したのか分からないぐらい無知でしたね.

これから先もコードを書き続けていくだろうけども、やっぱ師がいるといないとでは成長に差が出てくるのは間違いない.独学でも良いけど師がいると成長は速い.自分には師と言える師はいなくて殆ど独学でこの業界で生きてきた.

いまはリモートワークで働いているけども最近はコードレビューもあまりされずマージンされるので、どう思っているのだろうと不安になることもしばしば.

独学だと歯抜けにどうしてもなるので、そこの成長を後押ししてくれる師がいればなと思います.この頃は生成AIというものがあるので、ある程度知らない知見を見る機会が増えてきているのが救いですね.

トイウコトデ、話はつきませんがここらへんで〆とさせてもらいます.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

コード, コードレビュー, ここらへん, トイウコトデ, まし, リモートワーク, , , , 成長, 業界, 機会, , 殆ど独学, , 独学, 生成AI, 知見, , 速い.自分,

ギャラリー(Gallery)とBBSを追加しました.前々から追加し...

2024.08.29

Logging

おはようございます.ギャラリー(Gallery)とBBSを追加しました.前々から追加しようと思っていた訳でもないです.突発的に作ってみようと思いになり土曜日と日曜日にそれぞれ機能を追加した形になります.

内部的なコードは差し控えるものの、Galleryにはデータベースを使用していません.BBSはDBを使用しています.そしてGalleryは全てオリジナルコードですが、BBSはLaravelのライブラリを局所的に取り入れています.例えば表示はBladeONEを使用しています.そんな感じなので工数的にはどちらも半日程度で組み立てました.

composer require eftec/bladeone

作っていて思ったのが、Laravelを使用する程でもない、だけどバニラで作ると面倒だと思うサービスは局所的にLaravelのライブラリを使用することで短時間で制作することが可能になるなってこと.それはちょっと小規模と中規模の間ぐらいのサービスを作りたいときに適していると思いました.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

BBS, BladeONE, composer require, db, eftec, Gallery, Laravel, ギャラリー, コード, データベース, バニラ, ライブラリ, 前々, 半日程度, 土曜日, 日曜日, , 規模, ,

Photo by Brett Jordan on Pexels.com

この記事は何分で読めますを導入しました.何分で読めましたか?

2024.07.25

Logging

おはようございます.この記事は何分で読めますを導入しました.コードは下記のサイトコピペした後、少し自分のように手直しをしましたがほぼほぼコピペだと思っていただいて間違いないです.

https://fukuro-press.com/wordpress-display-reading-time

これにより購読してくれる人やリピーター様が増えるのを切に願っています.導入するまえに少し調べると購読者が増えるというような記事を見かけたので取り入れた感じです.読んでもらって何かの役に立てばこちらも嬉しいです.先日、書いた通り役に立ちたいという気持ちはありますが喜んでほしいとかいう気持ちはないです.

blue and purple color pencils
Photo by Pixabay on Pexels.com

「これ良いわ、良い話聞いたわ、こんな人がいるだ、自分だけじゃなかった」等などと思って頂けたら幸いです.基本的にこのブログは技術共有と雑記で成り立っています、これで一応、数ヶ月置きに収益も出ているので、一応、恩返してきな要素もあります🌝.皆さんありがとうございます🙇.

ちなみにまだ程遠いですが自分がブログだけで生活が出来るように慣れば、いろいろな人の励みにはなると思っています.自分にも出来そうという思いを持ってほしいですね.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

Photo by Pixabay on Pexels.com, コード, コピペ, リピーター様, 下記, 収益, 少し, , 恩返してき, 慣れば, 手直し, 技術共有, 数ヶ月置き, 気持ち, 生活, 皆さん, 要素, 購読者, 通り役, 雑記,

【PHP言語】はてなAPIを使用してURLをはてなブックマークに保存するコード

2024.07.07

Logging

おはようございます、【PHP言語】はてなAPIを使用してURLをはてなブックマークに保存するコードを先日Qiitaに掲載しています.なお、使いたい方はギットハブからクローンしてお使い頂ければと思っています.

https://github.com/taoka3/hatenaApi

この記事は数日前にUPした記事と関係しています.こちらの記事が最新となります、この問題が解決方法を探るのに時間として8時間ぐらい「あーでもない、こーでもない」と試行錯誤して解にたどり着きました.

久しぶりに詰まったコードです.原理原則は理解していたのですが、先人の知恵も見つからず生成AIに聞いてもあまり良い答えが返ってこずでしたが、ソース・コードを書き直したらすんなりコードが実行出来たのでそういう事も大事なのかもなって.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

8時間, API, PHP言語, qiita, url, ギットハブ, コー, コード, すんなりコード, ソース, はてなブックマーク, 先人, 原理原則, 問題, 最新, 生成AI, 知恵, , 解決方法, 試行錯誤,

サービスで提供しているサンドボックス使う派?使わない派?どっち?

2024.06.02

Logging

おはようございます、サービスで提供しているサンドボックス使う派?使わない派?ですか?自分は基本的にサンドボックスは仕事では使わない派です.コードの流出に繋がる可能性があるのでほぼ使いません.使うときは、PHPのドキュメントの例文を使用してどんな動きするか確認する時ぐらいです.

この頃はDockerでひとつサンドボックスとして使用する環境を作っています.これで情報漏れを防ぐことが可能です.ちなみにPHPのバージョンもコマンドで切り替えることが可能にしています.

仕事では使わない派ですが個人開発をするときは使用したりします.使用するサンドボックス環境はパイザアイ・オーさんのサンドボックス環境を良く使用します.よく使用する方は自分のアカウントを取得しておくと良いと思っています😌

これからPHPやPython言語を学びたいと参考書を買った方はアカウントを取得し非公開の状態で参考書のコードを試してみるのも良いかと思います.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

docker, php, Python言語, アカウント, コード, コマンド, サンドボックス, サンドボックス使う派, サンドボックス環境, ドキュメント, バージョン, パイザアイ・オーさん, ひとつサンドボックス, 例文, 参考書, 情報漏れ, , 流出, 環境, 非公開,

php7.4から使用できるようになったアロー関数.

2024.06.01

Logging

おはようございます、php7.4から使用できるようになったアロー関数のことを記載しますと言っても書き方はこんな感じで結果は9になりますということしか言えない.

<?php
$a = fn($x,$y) => $x*$y;
var_dump($a(3,3));
<?php
$a = (fn($x,$y) => $x*$y)(3,3);
var_dump($a);

ちなみにカッコで包んで即時関数?にすることも出来ます.この方法の方がjavascript様な書き方なのかも知れないなって思います.そんなアロー関数ですが、あまり使用している方を見かけないですね.コードを書くときは無名関数で書くことが多い気がします.

無名関数が関数になってしまうようなコード量だったら関数にしてしまう方が良いのかも知れませんが、そのコードの内だけで使用するものなら関数にしなくても良い気もしますが、これはレビューする人によって違う気がしますので現場によりかけりだと思います😌.

なお、アロー関数はコールバック関数としても使用可能です📝.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

-y, A`, fn, javascript様, lt, php, var_dump, X, アロー関数, かっこ, コード, コード量, コールバック関数, , 即時関数, 書き方, 無名関数, 現場, 結果, 関数,

PHP言語版のソース・コード自動整形.

2024.05.26

Logging

おはようございます、PHP言語版のソース・コード自動整形(php-cs-fixer)ツールがあります.毎回プルリクエストをするとソース・コードが直されます😅.直されないようにするにはローカルでソース・コード自動整形を導入することで解決されます.

導入の仕方は下記の通りです.

composer require friendsofphp/php-cs-fixer --dev
vendor/bin/php-cs-fixer fix app 

これで毎回プルリクエストの時に自動整形が走らないような気がします.以前の会社ではソース・コード管理などは全然でしたので、其れに比べると今の会社はいろいろと業界の標準が知れて勉強になります.おそらく中小企業や大手で行われていることが、ここ一年で身についてきたのではないかなって思います.

ちなみにLaravelでは自動整形が入っているので下記のコマンドを打つことによりソース・コードの自動整形が走ります.

./vendor/bin/pint fix app

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

bin, composer require friendsofphp, dev, Laravel, php-cs-fixer, php-cs-fixer fix app, PHP言語版, pint fix app, vendor, コード, コード自動整形, コマンド, ソース, ツール, 中小企業, 仕方, 大手, 標準, 毎回プルリクエスト, 自動整形,

chatGPTの様な出力を作ってみた.

2024.05.16

Logging

おはようございます、chatGPTの様な出力を作ってみました、コードを見たい方はQiitaの記事をご確認ください.

吾輩は猫である

動画では吾輩は猫であるを実際に出力しています.案外、コードは簡単なコードになっていると思います、こんなのでも本家のような出力が可能です.実際、こういう事を作ってみたいと思っている方はいるかなと思って作ってみたわけですけど、需要があるようで満足しています.

https://zip358.com/tool/demo89

もう、初心者さんの気持ちが欠けてきているのでどんな所で躓いたのかが分からないです.あの頃が懐かしい....あの頃からOUTPUTしとけば良かったのかも.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ChatGPT, qiita, コード, 出力, 初心者さん, 動画, 吾輩, 実際, , 本家, 気持ち, , 記事, 需要,

ゆめみからの挑戦状 ★第5弾をいまごろトライする

2024.05.05

Logging

おはようございます.株式会社ゆめみさんからの挑戦状を受けてみました、結果あんがい簡単に解けてしまったので自分でもびっくりこれで良いだろうかってポストしてみました.

自分の解はQiitaと上記の画像(途切れていますが)になります.どちらも同じ内容です.

因みに何か他人の解を見たわけではないので、これが最適解かどうかはわかりません.もっとシンプルで且つ綺麗なコードはあると思います.人の数だけコードはありますからね😌.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

qiita, コード, びっくりこれ, 上記, , 他人, 内容, 挑戦状, , 最適解, 株式会社ゆめみさん, 画像, 結果, 自分, ,