@Blog{zip358.com}
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。
Pythonの仮想環境で使おうの巻. python3 -m venv
2024.12.19
おはようございます.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
タグ
インストール, コード, コマンド, ディレクトリ配下, トイウコトデ, ドキュメント配下, ドライブ, ライブラリ, リナックス, 下記, 仮想環境, 仮想環境下, 仮想環境名任意, 何処, 利点, 巻, 業務, 経緯, 英字, 言語,
大晦日までカウントダウンしてまたカウントダウンするJSコード #永遠
2024.12.18
おはようございます.大晦日までカウントダウンしてまたカウントダウンする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
タグ
```, カウント, カウントダウン, コード, ツマラナイ, パーティカル, ライブラリ, 伍, 全て漢字, 初回呼び出し, 参, 大晦日, 月日時分秒, 漆#, 玖#, 秒, 秒ごと, 肆#, 芸, 陸#,
日本語に特化したOCR、文書画像解析Pythonパッケージ「YomiToku」でとさでん時刻表を解析
2024.12.17
おはようございます.日本語に特化したOCR、文書画像解析Pythonパッケージ「YomiToku」でとさでん時刻表を解析出来るかやってみました.とさでん交通は未だに時刻表がPDFなのでとても見にくいのです、業者さんは提案しないのかな.
ちなみにとさでん交通さんとは高知県の路面電車になります.地元のために頑張ってる公共交通機関ですが過去には経営が厳しい時期もあったようです.今も大変は大変だと思います、高知県は基本的には公共交通機関を使用する人よりも車通勤が多いです、そして少子高齢社会が進んでいる県でもあるので.
そんな公共交通機関の時刻表PDF解析してHTML化してみようと機械学習のPythonライブラリ「YomiToku」を使用してみました、結果、なかなか精度は良いのですがHTML化された物をそのままでは使用できないので手直しが必要です.
恐らく普通のPDF表だったら、綺麗にHTML化出来ると思いますが、とさでん交通さんの時刻表が特殊過ぎるのでこういう結果になったのだと自分は結論付けました.
ちなみに巷では一回画像へ変換しないといけないなどと記載している記事を見かけますが、PDFファイルのまま、OCR解析出来ます.
自分はこんな感じのコマンドラインで実行しました.
yomitoku ./pdfs/akebono.pdf -f html -o output_html
明日へ続く
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
コマンドライン, でん交通さん, ファイル, ライブラリ, 公共交通機関, 厳しい時期, 地元, 少子高齢社会, 巷, 手直し, 文書画像解析パッケージ, 時刻表, 未だ, 機械学習, 県, 精度, 経営, 路面電車, 車通勤, 高知県,
Pythonでノイズキャンセリングアプリ化するコードです😤デスクトップアプリ
2024.12.14
おはようございます.昨日の続きを記載します、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
タグ
エラー, コード, デスクトップ, デスクトップアプリ, ノイズキャンセリング, ノイズキャンセリングツール, ノイズ除去, パッケージ化, ファイル, ライブラリ, 下記, 出力先, 前手順, 微調整, 成功, 環境, 精度, 自分,
音声ノイズキャンセリングはこれ使っています.
2024.12.13
おはようございます.AIで生成されたボイスにノイズが入るので音声ノイズキャンセリングを使っています.これを使用するとVideoProc Converter AIを使用すると結構きれいにノイズキャンセリングが出来るので良いです.
因みに自分は買い切りタイプを使っています.またOBS Studioなんかでも上手く使用するとノイズキャンセリングが出来るらしいけど、AI程ではないと思っています.
また無料でノイズキャンセリングしたい場合はnoisereduceと言うPythonライブラリがあるので使用すると良いかも知れない.使用の仕方は公式サイト(GitHub)に記載れたいる通りに行えば良いだけです.
pip install noisereduce
ライブラリをインストールしてきて次にサンプルコードのファイル名を任意の音源ファイル名に変更してサンプルコードを実行すればノイズキャンセリングされた音源が出力されます.
from scipy.io import wavfile
import noisereduce as nr
# load data
rate, data = wavfile.read("mywav.wav") #ノイズのある音源
# perform noise reduction
reduced_noise = nr.reduce_noise(y=data, sr=rate)
wavfile.write("mywav_reduced_noise.wav", rate, reduced_noise) #ノイズキャンセリングが出力される
因みにサンプルコードではサンプルコードと同じ階層にノイズのある音源があるものとしています.
自分は手持ちに有料のAIノイズキャンセリングがあったのでそれを使用していますが、サンプルコードを元にオリジナルのアプリを作って自分だけで利用するのはありかなと思います.
明日へ続く
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アプリ, サンプルコード, ノイズ, ノイズキャンセリング, ファイル名, ボイス, ライブラリ, 仕方, 使用, 元, 公式サイト, 手持ち, 有料, 程, 買い切りタイプ, 通り, 階層, 音声ノイズキャンセリング, 音源, 音源ファイル名,
以前はAWSを使っていたけどいまはレンタルサーバー.
2024.10.28
おはようございます.以前はAWSを使っていたけど今はレンタルサーバーです.そろそろVPSサーバーにまた変えようかなとか思っているのだけど、どうなるかは今後の広告収入を見て判断しようと思っています(※1).変えなかった場合は広告収入が安定していない場合か本業の仕事で嬉しい悲鳴になったかだと思ってください.
※(1.先日はコンスタントに入ってきていると書いたばかりだけど、一年間安定して入ってきた訳ではないので
デタラメな構成図
レンタルサーバーでも何とか運用出来ているのだけど、通知機能などを作ろうとした場合に壁があったりPythonのライブラリに制限があったりするので困りものです.そういうのを取っ払えるのがVPSサーバーやAWSサーバーです.VPSサーバーは自分でゴトゴトとサーバー設定を行わないといけないのに対してAWSサーバーはGUI操作で設定出来るのが良い.良いだけどAWSサーバーは個人で運用するには運用費が馬◯高い.この頃は円安なので苦しい感じかもですー(自分なら苦しい.
書いていて思ったのですがもし変えるならVPSサーバーにします.その方がお手頃で良いから...唯変えるのは面倒です.FTP(File Transfer Protocol)でファイル移動すると面倒なのでscpでサーバー間の転送しますが、これでも面倒..因みにSCP(Secure Copy)でのファイル移動は規約違反なのかもしれないのでレンタルサーバーの規約を参照してください.
明日へ続く
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
AWS, AWSサーバー, File Transfer Protocol, FTP, GUI操作, Python, SCP, Secure Copy, VPSサーバー, コンスタント, サーバー間, ライブラリ, レンタルサーバー, 唯, 嬉しい悲鳴, 本業, 構成図, 苦しい., 馬,
ギャラリー(Gallery)とBBSを追加しました.前々から追加し...
2024.08.29
おはようございます.ギャラリー(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
タグ
BBS, BladeONE, composer require, db, eftec, Gallery, Laravel, ギャラリー, コード, データベース, バニラ, ライブラリ, 前々, 半日程度, 土曜日, 日曜日, 程, 規模, 訳,
php言語で機械学習できるライブラリ.
2024.05.13
おはようございます、php言語で機械学習できるライブラリがあるらしいです.ちょっと凄くないですかPythonでないと出来ないのかなって諦めていたのですがこれは良いですね.これを知ったのは先日のことです、Qiitaに掲載していた人がいて「これは良い」って思ったのが最初になります.
composer require php-ai/php-ml
Qiitaの記事はこちらになります、詳しい使い方はQiitaを参照されるか、公式のGitLabを参照ください.実際、まだ自分もインストールして試してはないので、レンタルサーバーで動くかは未確認です.たぶん負荷が凄いと思うので事前学習したものをアップロードしてサーバーでは推論だけさせた方が良さそうです.
近い内にローカルで検証してみたいと思います.
なお、テキスト系のデータ推論には使用できるのだけど、画像の推論なんかは今は出来ないと思ってください、MNISTはありますが....
追伸:Docページがありました.https://php-ml.readthedocs.io/en/latest/
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
composer require php-ai, Docページ, gitlab, MNIST, php-ml, PHP言語, Python, qiita, サーバー, データ推論, テキスト系, ライブラリ, レンタルサーバー, 事前, 推論, 最初, 機械学習, 負荷, 近い内, 追伸,
pythonとさくらレンタルサーバー
2024.05.12
おはようございます、さくらレンタルサーバーでMecabというライブラリが使えないかと試みた結果、使用できましたので、そのご報告です.なお、さくらレンタルサーバーでpipを動かす方法はググってください.pipが導入できたら次のコマンドよりインストールが出来ます.
pip install mecab
最初、mecab-python3をインストールを試みましたがこれはどうもさくらレンタルサーバーでは導入出来なさそうです.インストール先をオプションで変えれば出来るかも知れませんけど自分は辞めました.
pip install mecab-python3
mecabライブラリをインストールすることにより、今までAPIを頼っていた部分をmecabライブラリに置き換えが出来ました.これは自分にとって結構経費削減になります.少しでも月々の引き落としを減らせるところは減らしたいと思っているので.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
API, Mecab, mecab-python3, mecabライブラリ, pip, pip install mecab, pip install mecab-python3, インストール, インストール先, オプション, コマンド, さくらレンタルサーバー, ライブラリ, 少し, 最初, 月々, 次, 経費削減, 結果, 部分,
さくらレンタルサーバーpip
2024.02.13
おはようございます、さくらレンタルサーバーでpipを使用するにはどうもライブラリのインストール場所を実行時に教えてあげないと実行できないようなので、前回までコマンドラインから叩いても上手く動作しなかったぽっい。
その対応することで、今年はVPSサーバーとはおさらば出来そうです。pipのインストールについてはいろいろな人がさくらレンタルサーバーにpipのインストール方法を書いているのでそれを模倣すればできるようになると思います。
明日へ続く。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
pip, VPSサーバー, インストール, インストール場所, インストール方法, コマンドライン, さくらレンタルサーバー, ライブラリ, 人, 前回, 実行時,
レンタルサーバーでことが足りた。python動くpip
2024.01.19
おはようございます、いままでVPSサーバーで動かしていたPython部分の処理がさくらレンタルサーバーで動くことが判明した。pipはさくらレンタルサーバーに入っていなかったのでPython Packaging Authority(pypa)からget-pip.pyをさくらレンタルサーバーのローカルにダウンロードし叩くとpipがインストールされます。
pipを実行する場合は、~/.local/bin/pipで実行可能です。インストール方法はご自身で調べてみてください、ここでは説明を割愛します。pipがインストール出来たのでライブラリがインストール可能になりました、機械学習用のライブラリとかもインストール可能ですがサーバーにかなりの負荷がかかりおそらく、アカウント停止もしくは警告を受けると思います。なので、機械学習などの使用は控えください!。
因みに自分は軽めのライブラリをローカルにインストールして走らすことが出来ました。
※ここでいうローカルとはHome配下のことを指しています。
なお、さくらレンタルサーバーにはPython3.8環境です、ライブラリが対応しているかなどの確認が必要になります。
明日へ続く。
追伸:どうもさくらレンタルサーバーの人に怒られたぽっい次の日には動かなくなっていた。
追伸:でけた~。ライブラリインストール先をファイル実行時に指定することで。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Authority, bin, get-pip.py, Home配下, local, pip, pypa, Python Packaging, Python部分, VPSサーバー, インストール, サーバー, さくらレンタルサーバー, ライブラリ, ライブラリインストール先, 実行, 機械学習, 警告, 負荷, 追伸,
filament[フィラメント:細糸]というLaravelのアレ。
2023.07.26
おはようございます、filament[フィラメント:細糸]というLaravelの管理画面とかが作れてしまうライブラリの紹介。これを知ったのは会社のMTGかも知れませんが、再度じぶんでも調べてみた結果。かなり使えるライブラリです。
前前前会社で独自フレームワークで作っていた部分をこれを使用するとあっという間に作り上げることが出来るのではないだろうかと思っています。また、これを使用して自分のサービスを作ることも簡単とまではいかないものの、時間短縮にはかなりなると思います。
商業利用可能なMITライセンスです、これはとても有り難いなって思います、またプラグインとかもあるので、本当に良い感じですね。トイウコトデ、本当に前前前会社で作っていたBASEのようなサービスを作ってみたいなって思っています。
休日の合間に少しずつ作りたい。基本土曜日は一週間分のブログ記事などを書き溜める作業をしていたり、午前中までは大体、家でコード書いたりしているのでその作業にサービスを作る作業を追加したいなって思っています。
因みに午後からはお出かけしたりするタイプです、特に夏は外に出ていかないと損している気がします、こんなに晴れているのに出掛けないというのは勿体ないと思う性分なんです。
それではまた~。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
base, filament, Laravel, LIST, MITライセンス, MTg, PL6tf8fRbavl39r1g14lgYjPOH6jrjSECv, あっという間, トイウコトデ, フィラメント, プラグイン, フレームワーク, ライブラリ, 休日, 再度じぶん, 前前前会社, 勿体, 合間, 性分, 細糸,
JavaScriptでWebstorage使ってますか?🤔 #webstorage #javascript #cookie
2022.12.04
おはようございます。二日酔いです、遅めの更新🍃。
今日は今までフロントエンド側で使用していたcookieの処理コードをwebstorageに置き換えた理由と使い方のコードを記載します、JSでCookieを取り出すコードを書く場合、バニラコードで書くかライブラリを使用して書くかだと思います。自分は前者で、とにかくCookieで保存したものを取り出すのに無駄にコードを書いていましたので、そろそろコードを直そうと思ってwebstorageを採用しました。
webstorageを採用した理由は自分が保管するデータはそれ程、容量を食わないしローカル保存(ブラウザ側保存)で十分な情報だったのでwebstorageを採用しました。そして何より、もう殆どのブラウザで使用できるようになっただろうという考えの元、コードを改修しました。
今まで情報の呼び出しするのに数行書いていたものが、1行のコードで参照できるというのは本当に素晴らしいことです💯。
呼び出すコードはこちら
localStorage.getItem("bgcolor_code")
値を保存するコードはこちら
localStorage.setItem("bgcolor_code",color)
その他に削除やクリアするコードやSessionで保存するコード等も存在します、もし詳しく知りたい場合は上記のTwitterのリンクを辿ると情報にたどり着くはずです。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
COOKIE, javascript, JS, webstorage, エンド, コード, データ, バニラ, ブラウザ, フロント, もの, ライブラリ, ローカル, 二日酔い, 今日, 使い方, 使用, 保存, 保管, 元, 処理, 前者, 場合, 容量, 情報, 採用, 改修, 更新, 殆ど, 無駄, 理由, 自分, 記載,
chart.jsでデモを試してみました。📈 #javascriptcode
2022.11.18
おはようございます、朝が早いですねと言われますが、夜が早いだけです😅。
さて、今日はchart.jsのデモを試してみました。売上のグラフとかコレで作るのが一番じゃないかなと思うライブラリですね。動画で編集してみせたのは二箇所ですが、実際、業務で使用する場合は3箇所ほど変更して使用しないといけないのかなって。
そういう訳で、こちらのブログにソース・コードを貼り付けておきます。
const ctx = document.getElementById('myChart');
let data = [12, 19, 3, 19, 2, 3];
new Chart(ctx, {
type: 'bar',
data: {
labels: ['demo1', 'demo2', 'demo3', 'demo4', 'demo5', 'demo6'],
datasets: [{
label: '# of Votes',
data: data,
borderWidth: 1
}]
},
options: {
scales: {
x: {
beginAtZero: true
}
}
}
});
業務で変更しないといけない最低限3箇所はこちらです~😆。
- ラベル
- データーセットの中のラベル
- データーセットの中のデータ
上記の3箇所を売上のデータや何やらに使用することで活用できるかと思います。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
12, 19, 2, 3, 39, bar, chart, const, ctx, data, document, getElementById, javascriptcode, JS, let, myChart, new, type, グラフ, コード, こちら, コレ, ソース, デモ, ブログ, ライブラリ, 一, 二, 今日, 使用, 動画, 場合, 変更, 夜, 実際, 朝, 業務, 編集, 訳,
データからページネーションが出来る。 #jscode
2022.11.10
おはようございます、昨日は朝が寒く昼間は暑い日でしたね😗。
さて、データからページネーションが出来るライブラリがある事を知りましたのでそちらの紹介と使い方です。今回、使用したのはPagination.jsというライブラリです。使い方は簡単、下記のようなデータがあった場合、このようなソースコードを書いて使用します😮。
[
{
"id": 1,
"name": "白川 正人",
"hiragana": "しらかわ まさと",
"age": "45",
"bday": "1977年04月10日"
},
{
"id": 2,
"name": "大村 麻衣子",
"hiragana": "おおむら まいこ",
"age": "42",
"bday": "1979年12月11日"
},
{
"id": 3,
"name": "大原 静香",
"hiragana": "おおはら しずか",
"age": "53",
"bday": "1969年06月20日"
},
{
"id": 4,
"name": "吉田 佐代子",
"hiragana": "よしだ さよこ",
"age": "40",
"bday": "1982年05月24日"
},
{
"id": 5,
"name": "宮原 和弘",
"hiragana": "みやはら かずひろ",
"age": "22",
"bday": "2000年04月29日"
},
{
"id": 6,
"name": "伊藤 二郎",
"hiragana": "いとう じろう",
"age": "27",
"bday": "1995年02月18日"
},
{
"id": 7,
"name": "井上 明子",
"hiragana": "いのうえ あきこ",
"age": "55",
"bday": "1967年06月26日"
},
{
"id": 8,
"name": "恩田 雄",
"hiragana": "おんだ ゆう",
"age": "37",
"bday": "1985年09月25日"
},
{
"id": 9,
"name": "山崎 幸志",
"hiragana": "やまざき こうじ",
"age": "29",
"bday": "1993年03月24日"
}
]
$.extend($.fn.pagination.defaults, {
className: 'paginationjs-theme-blue',
pageSize: 3
});
let url = "json data のurl";
(async () => {
await fetch(url).then((result) => result.json()).then(
(data) => {
data.reverse();
$('#demo').pagination({
dataSource: data,
callback: function (data, pagination) {
var html = table_make(data);
document.querySelector("#tbl").innerHTML = html;
}
})
}
)
})();
function table_make(data) {
return (data.map((element) => {
let str = "";
str += "<tr>";
str += ((Object.keys(element).map(el => "<td>" + element[el] + "</td>")).join(""));
str += "</tr>";
return str;
})).join("\n");
}
<div class="col-12" id="demo">
<table class="table table-dark" id="tbl"></table>
</div>
コードを抜粋して書きましたが、このコードを書く事とjsのライブラリとcssファイルもダウンロードするようにして下さいね🫠。
因みに自分はこのライブラリを初めて使用しましたが、結構使いやすいですね。今まで開発ではLaravelなんかのページネーションを使用していた事はありますが、フロント側で出来る事を知り驚きを隠せませんというのは大袈裟ですけど使い道は有るなって思います。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
04, 1, 10, 1977, 2, 45, age, bday, hiragana, ID, JS, jscode, name, Pagination, qu, quot, コード, しらかわ, ソース, そちら, データ, ネーション, ページ, まさと, ライブラリ, 下記, 事, 今回, 使い方, 使用, 場合, 日, 昨日, 昼間, 朝, 正人, 白川, 簡単, 紹介,
phpでソケット受信をする事だけ覚えとけば良い。#php #code
2022.10.27
おはようございます。Socket.ioというサービスをご存知ですか。あれ良いですよね。
さて、Socketとはいう意味は割愛させて頂き、知っていることを前提に話しますとPHPでSocketサーバーは立てれないじゃないかなって今のところ思っています。localhostや0.0.0.0とかならSocketサーバーは立てれるけど、ドメイン有りきでは難しいような気がします。
なので、Socket.ioなんかを使用してnode.jsなんかでサーバーを立てるのが定石かと思います。尚、webSocketのサーバーに対してPHPで送受信は可能です。要するにクライアント側はPHPでも可能ですね。
自分もAPIサーバーに対して常時通信処理を行っています。
PHPライブラリの使用して接続を確立しています、ライブラリはratchetという有名所のライブラリを使用しています。
composer require ratchet/pawl
<?php
require __DIR__ . '/vendor/autoload.php';
\Ratchet\Client\connect('wss://example.com')->then(function($conn) {
$conn->on('message', function($msg) use ($conn) {
echo "Received: {$msg}\n";
$conn->close();
});
$conn->send('Hello World!');
}, function ($e) {
echo "Could not connect: {$e->getMessage()}\n";
});
上記のようなPHPのソースコードで送受信が可能です😋
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
0.0.0.0, API, Code, Composer, io, JS, localhost, node, php, ra, ratchet, require, Socket, webSocket, あれ, クライアント, こと, ご存知, サーバー, サービス, ソケット, ところ, ドメイン, なん, ライブラリ, 事, 今, 使用, 処理, 前提, 割愛, 受信, 可能, 名所, 定石, 常時, 意味, 接続, 有, 気, 確立, 自分, 送受信, 通信,
ハローワークの求人番号からバーコード生成印刷。#php #WEBサービス
2022.09.23
おはようございます、今日は三連休の始まりだそうですね🤔。
本日はハローワークの求人番号からバーコード生成&印刷できるWEBサービスを制作したので、そのお知らせ話になります。何故、このようなWEBサービスを作ったのかというと1つ目の理由は無かったから、そして何より自分が欲しかったからに他ならないという理由です。
プログラムの話になりますがバーコードを生成する部分はライブラリを使用していますのでデータだけ渡せば画像データ作ってくれます、そんな訳で開発には時間はかからなかったのですが!。ハローワークが使用しているバーコード形式が何なのかという事を探すのに若干、時間を使いましたが開発自体は数分レベルです🫠。
このWEBサービスは無償で且つ広告などは今のところ掲載していません。このサービスだけは今後も広告無しで運営していくつもりです。尚、358tool.comでは今後もいろいろなツールを提供していきます。起動に乗ったサービスは新たにドメイン取得して運用するスタンスで運営していきます。
話し戻しまして、自分がこのサービスが欲しかった理由はハローワークサイトで求人を探し、その番号をメモして公共職業安定所に出向き、安定所のPC端末から求人票を印刷するのが面倒くさく感じた為、この無駄な作業をひと手間無くそうと思って今回の制作に至りました。
求人番号コピペしてWEBサービスに貼り付けるとバーコードが生成されるので便利。そしてそのページを印刷し職業安定所の人に渡すと職業安定所の人もわざわざ入力する必要もないのでWINWINな関係ですwww。
🙆https://358tool.com/hellowork/
どうぞ、求職中の人はお使いくださいませ。
シェアやRT宜しくお願い致します🙇
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
358tool.com, PC端末, rt, winwin, www, スタンス, ドメイン, バーコード, バーコード形式, バーコード生成&, ハローワーク, ハローワークサイト, ひと手間, プログラム, ライブラリ, 求人票, 求職中, 無償, 若干, 起動,
自身がフォローしているTwitterアカウントでリスト自動仕分けする方法!?
2022.01.24
昨日は雨がシトシトと降っていた高知県ですが、あまり寒さを感じなくなってきていますね😌。早く春になれば良いのになって思っております。
ソースコードを読んでいただければ大体分かるかとも思いますが、そんなに難しいコードではありません。タイトル通りの処理をしています。コマンドからファイルを叩くと処理が実行されてそれぞれのリストに仕分けされます、ここでポイントなのはlist_idはどうやって導けばよいのという疑問とTwitterOAuthって何という疑問ぐらいかと思います。
list_idは事前に空のリストを生成すると自動的に割り振られるご自身のリストURLの数値部分になります。次にTwitterOAuthというのは何かというと、これはTwitterAPIを簡単に叩けるライブラリになります。これを事前にインストールすることにより簡単に処理ができます。
尚、ソースコードはTwitterAPI2.0バージョンではありません。そのうち廃止される方で書いています。
<?php
require_once("../vendor/autoload.php");
use Abraham\TwitterOAuth\TwitterOAuth;
if ($argv[0]) {
require_once "./tw-config.php";
date_default_timezone_set('Asia/Tokyo');
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$response_followers = $connection->get("friends/ids", array(
'screen_name' => 'zip358com',
'count' => 1000
));
if ($response_followers->ids) {
foreach ($response_followers->ids as $key => $val) {
$response_users = $connection->get("users/show", array(
'user_id' => $val
));
if(preg_match("/(機械学習|人工知能|AI|Learning)/",$response_users->description)){
print "[機械学習|人工知能|AI|Learning]". $response_users->id . PHP_EOL . $response_users->description . "," . PHP_EOL;
$connection->post("lists/members/create", array(
'list_id'=>1485120628206497798,
'user_id'=>$response_users->id
));
}
if(preg_match("/(web|WEB|Web|プログラマー|エンジニア|プログラム|プログラミング|API)/",$response_users->description)){
print "(web|WEB|Web|プログラマー|エンジニア|プログラム|プログラミング|API)". $response_users->id . PHP_EOL . $response_users->description . "," . PHP_EOL;
$connection->post("lists/members/create", array(
'list_id'=>1485121383101526018,
'user_id'=>$response_users->id
));
}
if(preg_match("/(イラスト|写真|デザイン|art|Art|絵|漫画)/",$response_users->description)){
print "(イラスト|写真|デザイン|art|Art|絵|漫画)". $response_users->id . PHP_EOL . $response_users->description . "," . PHP_EOL;
$connection->post("lists/members/create", array(
'list_id'=>1485121210816294912,
'user_id'=>$response_users->id
));
}
if(preg_match("/(電車|メトロ|運行情報)/",$response_users->description)){
print "(電車|メトロ)". $response_users->id . PHP_EOL . $response_users->description . "," . PHP_EOL;
$connection->post("lists/members/create", array(
'list_id'=>1485121509320687619,
'user_id'=>$response_users->id
));
}
if(preg_match("/(高知県|高知市)/",$response_users->description)||preg_match("/(高知県|高知市|kochi)/",$response_users->location)){
print "(高知県|高知市)". $response_users->id . PHP_EOL . $response_users->description . "," . PHP_EOL;
$connection->post("lists/members/create", array(
'list_id'=>1485121289165893632,
'user_id'=>$response_users->id
));
}
}
}
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
ID, LIST, Twitte, Twitter, TwitterAPI, TwitterOAuth, url, アカウント, インストール, コード, ここ, こと, コマンド, これ, ご自身, ソース, それぞれ, タイトル, ファイル, フォロー, ポイント, ライブラリ, リスト, 事前, 何, 処理, 実行, 数値, 方法, 春, 昨日, 生成, 疑問, 空, 簡単, 自動, 自身, 部分, 雨, 高知県,
アンフォローが多発しているのでアンフォローした人には自動でお礼コメントする。
2021.07.15
アンフォローが多発しているのでアンフォローした人には自動でお礼コメントするようにプログラミングコードを書いて五分間で処理を実行するようにcrontabに設定しました。ソースコードの一部を記載しますのでご自分の環境に合わしてご自由にお使いくださいませ。尚、TwitterOAuthライブラリを使用しておりますが、ライブラリの導入などに関しては割愛しております。
何故、こんなコードを書いたのか余談。フォロワーさんが外れるのはあまり嬉しいことではないですよね。離れていく人を食い止めようとは思いませんが、最後のお礼コメントぐらい言わせてくださいなという考えの元、今回のお礼コメントをするPHPのコードを書きました。相変わらずソースコードにコメントはありません、悪しからず?。
尚、一回目は一部コメントアウトして実行ください?
<?php
require_once("../vendor/autoload.php");
use Abraham\TwitterOAuth\TwitterOAuth;
if ($argv[0]) {
require_once "./tw-config.php";
$f_data = @file_get_contents("followers.dat");
$f_data = $f_data?explode(PHP_EOL,$f_data):[];
date_default_timezone_set('Asia/Tokyo');
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$response = $connection->get("followers/ids", array(
'screen_name' => 'zip358com',
'count'=>1000
));
$unFolloewers = array_diff($f_data,$response->ids);
$data = @implode(PHP_EOL,$response->ids);
file_put_contents("followers.dat",$data);
if($unFolloewers){
foreach($unFolloewers as $key=>$val){
$response = $connection->get("users/show", array(
'user_id' =>$val
));
$text = "@".$response->screen_name. " さん 今までフォローありがとうございました(¯―¯?)。{フォロー解除されました? ([atmark]zip358comより自動投稿)}";
print $text;
$connection->post("statuses/update", array("status" => $text . " \n"));
}
}
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
aut, crontab, lt, once, php, quot, require, TwitterOAuth, vendor, アウト, アン, お使い, お礼, コード, こと, コメント, ご自分, ソース, フォロー, フォロワー, プログラミング, ライブラリ, 一, 一部, 五, 人, 今回, 何故, 余談, 使用, 元, 処理, 割愛, 多発, 実行, 導入, 最後, 環境, 自動, 記載, 設定,
彼のVue.jsの入門解説動画が分かりやすいかも。超入門は理解しました。
2021.07.12
vue.jsを勉強したい方はよしぴーのYouTubeプログラミングスクールの超Vue.jsの入門解説動画が分かりやすいかも。自分は入門版は理解しました。尚、bodyにID付けて試すのは辞めとけよ。bodyにIDを付けて動かないなぁとかしないように!!ドキュメントにもbodyにIDを付けるのは推奨しないと記載しております。動画を見て背景の色を動的に変えるvue.jsの簡単なサンプルプログラム作りました。コード書いていてjavascriptで書くよりもvue.jsなどのライブラリ?を使用して書くほうが短いコードで書けるので良いなと実感。
htmlコードとvue.jsのコードは下記になります、最終的にはvue.jsでアプリ作りたいな(時間がない?^^;)。SPAに関して難しいという意識がある人も触っていくうちに慣れると思います。因みに学習能力が高い人はこんなの作れちゃうみたいですね、学習してまだ二週間しか経過していなくてゴニョゴニョ作れている所がへぷさん(@HEP1147)、凄いところ!!ですね。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<style>
#el{
width: 100vw;
height: 100vh;
}
</style>
<title>背景の色を変える</title>
</head>
<body>
<div id="el" v-on:mousemove="mouseXY($event)">
<span v-on:click="colorclick('#000')"style="color:#000">■</span>
<span v-on:click="colorclick('#fff')"style="color:#fff">■</span>
<span v-on:click="colorclick('#4eaeec')"style="color:#4eaeec">■</span>
<span v-on:click="colorclick('#4eeccc')"style="color:#4eeccc">■</span>
---{{ color }}---
X={{x}},Y={{y}}
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script src="./main.js?<?=time()?>"></script>
</body>
</html>
var vm = new Vue({
el:"#el",
data:{
color:"#fff",
x:0,
y:0
},
methods:{
colorclick:function(c){
this.color = c;
document.body.style.backgroundColor = c;
return true;
},
mouseXY:function(event){
this.x = event.clientX;
this.y = event.clientY;
}
}
});
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
body, html, ID, javascript, JS, SPA, vue, youtube, アプリ, うち, コード, サンプル, スクール, ドキュメント, プログラミング, プログラム, よし, ライブラリ, 下記, 人, 使用, 入門, 勉強, 動画, 学習, 実感, 彼, 意識, 推奨, 方, 時間, 理解, 簡単, 背景, 能力, 自分, 色, 解説, 記載, 超,
ブログのメンターに100万円払う人がいるだな。絶句したのは自分だけ?
2021.06.08
ブログのメンターに100万円払う人がいるだな。絶句したのは自分だけなのか?100万円が適正価格なのかはわからないけど、自分だったらブログのメンターにそんなにも高額な金額は払わない。そんな余ったお金があるのならば株式投資や投資信託へお金を分配すると思います。世の中にはそんな人達もいるだなと思ってやはり自分の感覚でいるとほどんどの事が無料で出来ると思っているので、今回、YOUTUBEでそんな事をリアルに語っていた26歳の普通の人が衝撃的だった。デジタルにそんなにも高額な対価を支払う人が世の中に入るだな。
一番、自分が高額な代金を支払っているのはアドビのイラレなのだが、これだけは代替品ではしっくりこないので、未だに高額な費用を月々支払続けている。その額が約3000円なのだ、これでも高いと思っている。
プログラマーという職で今まで生きてきたので、自分で作れるものはサクサクと作ったり、先人のライブラリや探せばオープンソースで出来るものは結構ある。YOUTUBEで言えば自分は無料のソフトで動画編集をしている。
玄人の人なら知っている人も多いかもしれない、DaVinci Resolve?(ダビンチ・リゾルブ)という動画編集ソフトを使用して動画編集をしている。こんな感じで無償で超有名なソフトは殆どの場合、無害なものが多い。無料にはなにか裏があるという考え方もあるけれど、本当に無償で無害なものもあることも確か。
プログラマーになるためにメンターにお金を払う人とブロガーになるためにお金を払う人とは同じ具合だと思う。お金を儲けれるために先行投資だと思っているだと、それはかなり損なので辞めといた方が良い。インターネットには先人の知識が無数にあるので、それを使用しない手はない。
まとめ、100万円誰かに支払うなら、自分だったら好きな会社に投資します。評価の良い参考書を買うとか、そんな事に自分だったらお金を使います?。無償でなんとかなることは無償でなんとかなる時代です。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
100, 26, 3000, youtube, アドビ, イラレ, お金, これ, これだけ, ソース, デジタル, とほ, どんど, ブログ, プログラマー, メンター, もの, ライブラリ, リアル, 一, 万, 世, 中, 事, 人, 今回, 代替, 代金, 価格, 先人, 分配, 対価, 感覚, 投資, 投資信託, 支払, 普通, 月々, 株式, 無料, 絶句, 職, 自分, 費用, 適正, 金額, 額, 高額,
今読まれてますというWPプラグインの作り方
2021.04.19
今読まれてますというWP(ワードプレス)プラグインの作り方はこれだけです。ボット対策の部分はお見せできませんがこんなソースコードで動いています、なお、自分が閲覧してもツイートすることはないようにしています。因みに昨日もボットみたいなのが何度も来たのでその対応を行いました。尚、TwitterOAuthというライブラリを導入してautoload.phpを使用しuseで呼び出し使用しています(※autoloadを置いている任意の場所に変更してください)。
ワードプレスのプラグインの作り方の動画を貼っときます。英語ですが理解できるかと思います。動画で分かりづらかった方は『自作、WordPress、プラグイン、PHP』という様な検索すると先人たちが方法をネットに公開しているのでそちらを参考にしてください。
プラグインを作るにあたってソースコードに書かれているコメント部分は必須なのだけど、プラグインを配布しない人はプラグイン名だけ記載しプラグインと同じフォルダを構えるだけでプラグインとして認識します。
<?php
/*
Plugin Name: article-live-tw
Plugin URI:
Description: 今、ユーザーが読んでいる記事をツイートする
Version: 1.0.0
Author: @zip358com
Author URI: https://zip358.com
*/
session_start();
require "/vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
add_action("wp_head","article_live_tw");
function article_live_tw(){
define("CONSUMER_KEY", "CONSUMER_KEY");
define("CONSUMER_SECRET", "CONSUMER_SECRET");
define("ACCESS_TOKEN", "ACCESS_TOKEN");
define("ACCESS_TOKEN_SECRET", "ACCESS_TOKEN_SECRET");
global $post;
$flg1 = is_bot();
$flg2 = empty($_SESSION["reading-zip358-".$post->ID.$_SERVER['REMOTE_ADDR']]);
$flg3 = ip_check("reading-zip358-".$post->ID.$_SERVER['REMOTE_ADDR']);
if(!$flg1 && $flg2 && !$flg3 && $post->ID){
$_SESSION["reading-zip358-".$post->ID] = 1;
$tw_title = get_post($post->ID)->post_title;
$tw_link = get_permalink($post->ID);
$kigolist = ["?","?","?","?","?","?"];
$kigo = $kigolist[floor(rand(0,5))];
if(!current_user_can('administrator')){
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$connection->post("statuses/update", array("status" => "#今読まれてます $kigo ??? \n".$tw_title . " \n" . $tw_link . " \n #ブログ zip358.com \n" . date_i18n('Y/m/d H:i')));
//$ua = print_r($_SERVER,true);
//@file_put_contents("./log/".date('Y-m-d-H-i').".log",$ua);
}
}
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
15, 7, autoload, com, https, php, QfH-s-, TwitterOAuth, use, watch, WordPress, wp, www, youtube, お見せ, コード, こと, これだけ, ソ, ソース, そちら, ツイート, ネット, プラグイン, プレス, ボット, ライブラリ, ワード, 今, 任意, 何度, 作り方, 使用, 先人, 公開, 動画, 参考, 場所, 変更, 対応, 対策, 導入, 方, 方法, 昨日, 検索, 理解, 自作, 自分, 英語, 部分, 閲覧,
face-api.jsとElectronで顔認識をさらっと導入。
2021.04.07
face-api.jsとElectronで顔認識をさらっと導入してみました。作り方はとても簡単ですがライブラリはとても複雑です、自分が作ったものは全然なくて人様のコードのおかげでこのエレクトロンアプリはなりたっています。実際、中の人がフェイスAPIを使用して動かしている動画です。face-api.jsのGITHUBのリンクを貼っときますね。これをElectronアプリの階層に必要なファイルだけ置いてビルドすればお手軽に顔認証のアプリが作れてしまいます。※巷では静止画のサンプルコードは結構ありますがリアルタイム(ビデオ)処理のソースコードでElectron対応のコードは少ないように思えます。
部屋が散らかっているのとおっさんの顔(中の人)はほっといてください。尚、こちらのアプリを入手したい方は一度、私のツイッタープロフィールから自分と書かれている横のリンクをクッリクし、私のフェイスブックに飛び、そこからプロフィールの本名ホームページに移動後、オリジナルというリンクがありますので押下。押下するとアプリのダウンロード出来るリンクがあります。。。ので、ご利用くださいませ(長・・(^_^;))。
因みに使用する時にカメラ接続が必要になります、セキュリティソフトを導入している方は警告メッセージが出てくるので許可を行い使用してくださいませ。
最後にコードを提供している方が解説している動画も貼っときます。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Electron, Electronアプリ, Electron対応, face-api.js, github, エレクトロンアプリ, おかげ, セキュリティソフト, ソースコード, ツイッタープロフィール, ビデオ, フェイスAPI, フェイスブック, ライブラリ, リアルタイム, 巷, 本名ホームページ, 警告メッセージ, 階層, 静止画,
Anglesharpというライブラリの話。
2021.03.13
久しぶりに技術的なお話の記事を書きます。AnglesharpというのはC#などでスクレイピングするときにスクレイピングを補助してくれるライブラリで結構人気のあるライブラリなるようです。スクレイピングするコードは下記のようになります。この書き方が至ってシンプルで書きやすいのではないかなと思っています。
var Url = $"https://zip358.com/";
var querySelector = $"#index_post_list > li.clearfix.num1.type1 > div > h3";
var document = BrowsingContext.New(Configuration.Default.WithDefaultLoader()).OpenAsync(Url).Result;
var element = document.QuerySelector(querySelector);
Console.WriteLine($"blogtitle is {element.InnerHtml}");
このライブラリはとても良いのですが、一つ問題があります。スクレイピングするのですが・・・これjavascriptがOFFの状態でスクレイピングされるのですね。どうもこのコードではJSがONにはならないようですね。因みに自分はそのことを知っていなかったのでどハマリしました。大手の検索サイトなどはjavascriptがOFFの状態でも閲覧できるようになっている事を知りました、試しにブラウザをOFFの状態にしてみるとソースコードがかなり違っていてJSのONの状態とは情報が差異がある事が理解できると思います。
Anglesharpのコンフィグ設定(init)でエージェントなどを設定してあげると上手くJSがONの状態をスクレイピングすることが可能なのかもしれません。動画を見る限りではまだかもしれません・・・。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 3, 358, anglesharp, BrowsingContext, clearfix, com, Configuration, default, div, document, element, gt, https, index, li, LIST, new, num, OpenAsync, POST, QueryS, querySelector, quot, result, type, url, var, WithDefaultLoader, zip, お話, コード, シンプル, スク, とき, ピング, ライブラリ, レイ, 下記, 久しぶり, 人気, 書き方, 補助, 記事, 話,
なるほど、よくわかりました。
2021.02.22
そういう事だったんだね。いまごろ理解する、いろいろな方法で非同期処理ができるだなと、ちなみにIE11でもPromiseは使用することが出来るみたい。そのかわりライブラリを読み込む必要はあるけれど・・・。IE11を開くとエッジを使用しようと勧めてくる。そろそろIEを強制的に削除すればいいのにと思っています。IEだとjsも制限が出てくるだよね。とくにコードを書くときにグレイヴ・アクセントとかいう記号「`」が使用できないのは痛いなと思います。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
11, IE, JS, Promise, アクセント, いま, いろいろ, エッジ, かわり, グレイヴ, コード, こと, とき, ライブラリ, 事, 使用, 処理, 制限, 削除, 同期, 必要, 方法, 理解, 記号,