Photo by Irina Iriser on Pexels.com

Excelでは読み込むことができないような大容量のデータもPowerQueryでは処理できます😤。 #PowerQueryExcel #30万件

2022.12.02

Logging

おはようございます、昨日からいきなり寒くなりましたね。🍃

30万件のダミーデータの作り方を記載します、まずは1万件のダミーデータをこちらのサイトで生成します。後はフォルダを構えてその中にダウンロードしてきたファイルを置き、そのファイルを30回複製します、その後PowerQueryで操作する(フォルダを開く)ことにより、簡単に30万件のダミーデータが作れます、なお、一つのエクセルファイルをPowerQueryで開き1万行をコピーアンドペーストする事を繰り返すことでも同じくダミーデータは作れます。

PowerQueryはこちらから無料でダウンロードできますので、ご使用ください。操作手順等はYOUTUBEでPowerQueryと検索するといろいろな解説がありますのでそちらを参照くださいませ。例えばこちらの動画など🙄

【データベースを一瞬で作れるPowerQueryが神】Excelパワークエリの使い方・メリット

著者名  @taoka_toshiaki

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

タグ

, 30, Excel, PowerQuery, PowerQueryExcel, youtube, アンド, いろいろ, エクセル, こちら, こと, コピー, サイト, そちら, ダウンロード, ダミー, データ, ファイル, フォルダ, ペースト, 一つ, , , , 作り方, 使用, 処理, 動画, 参照, 容量, , 手順, 操作, 昨日, 検索, 無料, 簡単, 複製, 解説, 記載,

WP予約投稿ツイートプラグイン作り方。#php言語 #code #v2

2022.10.11

Logging

おはようございます😤 お仕事に飢えてます…寒い季節ですね…。

さて、今日はWP予約投稿ツイートプラグイン作り方を記載していきます。ワードプレスでプラグインを作る場合はWordPressの下記の場所に任意のフォルダを作り、その中にディレクトリ名(任意名)と同じファイル名でphpファイルを作ります。※昔の名残なので今は命名が違っても動くかも知れませんが・・・。

cd /wp-content/plugins
mkdir mytweets
vi mytweets.php

そして、命名したファイル名を開き、ファイルの上部に下記のコメントを記載します。プラグイン名やプラグインの説明、プラグインバージョンをそれぞれ変更して頂き保存、その後サーバーサイドにアップロードします(フォルダごと)。

<?php
/*
Plugin Name: My tweets
Description: tweets
Version: 1.0
*/

これで何も動作しないプラグインが出来上がります。

後はコマンドラインからプラグインフォルダにcomposerをインストールしtwitteroauthのライブラリを入れます。

此処までが前手順です。此処までで挫折した人は結構いると思います🙄。

因みに此処までの事がすんなりと出来る人は、このブログの情報は必要ないものです。なのでココからはソースコードを記載します。WP予約投稿ツイートプラグインなんてオチャノコサイサイだと思います。

<?php
/*
Plugin Name: My tweets
Description: tweets
Version: 1.0
*/
if (!defined('ABSPATH')) exit;
require_once  "tw-v2-config.php";
require_once  "./vendor/autoload.php";

use Abraham\TwitterOAuth\TwitterOAuth;

function mytweets($new_status, $old_status, $post)
{
    
    if ($new_status == 'publish' && $old_status != 'publish') {
        try {
            $connection = new TwitterOAuth(APIKEY, APIKEYSECRET, ACCESSTOKEN, ACCESSTOKENSECRET);
            $connection->setApiVersion('2');
            $response = $connection->post('tweets', ['text' => get_the_title($post->ID) . "\n" . get_permalink($post->ID)], true);
        } catch (\Throwable $th) {
            //throw $th;
        }
    }
}
add_action('transition_post_status', 'mytweets', 10, 3);

上記のコードを記載した上で上書き保存&アップロードします。その後ワードプレスの管理画面よりプラグインを有効にして出来上がり、今回はtwitteroauthのライブラリを使用しましたがcrulなどのを理解している人はライブラリは特に必要ないのかなとも思います。ライブラリを使用すればお手軽ですが、万が一何かあった時に困るのでライブラリを使用せずにコードを書くという方もいらっしゃると思います。

自分も極力、公式のライブラリしか使わないようにしています🙇。

トイウコデ、ワードプレスのプラグインの作り方でした。

著者名  @taoka_toshiaki

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

タグ

2, cd, Code, description, lt, mkdir, My, mytweets, name, php, plugin, plugins, Tweets, Vers, vI, WordPress, wp, wp-content, アップロード, お仕事, コメント, サーバー, それぞれ, ツイート, ディレクトリ, バージョン, ファイル, フォルダ, プラグイン, プレス, ワード, 上部, 下記, , 予約, , 今日, 任意, 作り方, 保存, 名残, 命名, 場合, 場所, 変更, 季節, , 投稿, , 言語, 記載, 説明,

ページ無限スクロールの作り方 #インフィニティ#InfinityPageScroll #JavaScript

2022.09.22

Logging

おはようございます、台風14号が過ぎ去ってからいきなり秋模様ですね🫠。

さて、先日ツイートしたページ無限ループが出来るJavaScriptコードを書きました。これを作ろうと思ったキッカケは、自分が運営しているWordPressサイトに巷のページ無限スクロールプラグインが尽く(ことごとく)使用出来なかったので自分で自作した訳です。因みにページ無限スクロールプラグインとはページを送りをしなくてもページの最下までスクロールすると次頁を読み込んでくれるプラグインの事を指します。

下記のコードは自サイト専用なのでそのまま使用することは出来ませんが、重要な部分だけ抜き取って再利用すれば、独自のページ無限ループに対応することは可能かと思います。

コードを読んで頂ければ分かることですが、重要なポイントはページを読み込む方法とそれをDomに変換する方法だと思います。まず、ページを読み込む方法は下記のファンクションで可能です。

fetch(next_url).then(
                response => response.text()
            ).then(data => {

そしてDomに置き換えている所はこの部分になります。これら2つの箇所が重要になります。

                const parser = new DOMParser();
                const doc = parser.parseFromString(data, 'text/html');

これらの事に注意して独自コードを書いてみてください。最後に全コードを記載しときます。


let cnt = 2;
let blk = 0;
async function nextpage() {
    if (cnt !== blk) {
        blk = cnt;
        await (async () => {
            let next_url = "https://fox-black.com/blog/page/" + cnt;
            return await fetch(next_url).then(
                response => response.text()
            ).then(data => {
                const parser = new DOMParser();
                const doc = parser.parseFromString(data, 'text/html');
                let blogs = doc.querySelectorAll('.blogpage');
                cnt++;
                if (blogs[0].innerHTML !== undefined) {
                    document.querySelector(".foxpage").insertAdjacentHTML("beforeend", (function (elm) {
                        let str = "";
                        for (const key in elm) {
                            const element = elm[key];
                            if (element.innerHTML !== undefined) {
                                str += "<div class=\"blogpage\">" + element.innerHTML + "</div>";
                            }
                        }
                        return str;
                    })(blogs));
                } else {
                    if (document.querySelector("#fin") === null) {
                        document.querySelector(".foxpage").insertAdjacentHTML("beforeend", "<div id=\"fin\"></div>");
                    }
                }
            }).catch(error => {
                if (document.querySelector("#fin") === null) {
                    document.querySelector(".foxpage").insertAdjacentHTML("beforeend", "<div id=\"fin\"></div>");
                }
            });
        })();
    }
}

if (navigator.userAgent.match(/iPhone|Android.+Mobile/)) {
    window.addEventListener("scroll", async function () {
        let s = (() => {
            let tgt;
            if ('scrollingElement' in document) {
                tgt = document.scrollingElement;
            } else if (this.browser.isWebKit) {
                tgt = document.body;
            } else {
                tgt = document.documentElement;
            }
            return tgt;
        })();
        if (document.querySelector("#fin") === null && s.scrollTop >= (s.clientHeight - 650)) {
            await nextpage();
        }
    });
} else {
    document.querySelector(".foxpage").addEventListener("scroll", async function () {
        if (document.querySelector("#fin") === null && document.querySelector(".foxpage").scrollTop >= (document.querySelector(".foxpage").scrollHeight - 300)) {
            await nextpage();
        }
    });
}


著者名  @taoka_toshiaki

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

タグ

14, dom, InfinityPageScroll, javascript, WordPress, インフィニティ, キッカケ, コード, こと, これ, サイト, スクロール, それ, ツイート, プラグイン, ページ, ポイント, ループ, 下記, , 作り方, 使用, 先日, 利用, 可能, 台風, 変換, 対応, 専用, , 方法, 最下, 模様, 次頁, 無限, , , 自作, 自分, , 運営, 部分, 重要,

機械学習は学習するのにどれぐらいのデータが必要?

2022.09.06

Logging

今日は大荒れ☔との事です、おはようございます。

8月の半ばにとある事情で機械学習で人の顔かどうかを判別させるモデルをTensorFlowで作ってみたのですが、結果、学習のデータが少なかったのが原因なのか分からないけども・・・。人工無能と言いたくなるほど無能な機械学習が出来上がりました。犬の画像を見せてもこれは人ですと判定してくれるので正直、ホントげんなりでした。

画像分類の作り方は簡単です、学習したいディレクトリとテスト用のディレクトリを作り、それぞれの階層に分類ディレクトリを設置し、その中に学習の画像データとテスト用の画像データを入れてサンプルコードをちょちょっと修正してテンソル(Pythonを実行)で学習してもらうだけです。

画像分類器を作る(機械学習ゼーロからヒーローへ – 第4部)
画像分類器を作る(機械学習ゼーロからヒーローへ – 第4部)

尚、自分のテストデータは100枚ほどしかなかったので、全然駄目な結果になりましたが3000枚以上の画像データがあればちゃんとした判別が出来たのかも知れません。

スマホの顔認証は動画データを画像データー変換して学習させているのでしょうね。そうすれば数千枚の画像は生成出来ると思います。

例えばopencv-pythonなんかで画像変換するのが良さそうですよ。

pip install opencv-python

著者名  @taoka_toshiaki

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

タグ

100, 3000, 4, 8, Python, tensorflow, コード, これ, サンプル, ゼーロ, それぞれ, ちょ, データ, ディレクトリ, テスト, テンソル, どれぐらい, ヒーロー, ホント, モデル, , , 事情, , 人工, 今日, 作り方, 修正, 分類, 判別, 判定, 半ば, 原因, , 大荒れ, 学習, 実行, 必要, 機械, 正直, 無能, , 画像, 簡単, 結果, 自分, 設置, 階層, , 駄目,

Chrome拡張の作り方という本は読む人を選ぶ本かも?

2022.07.27

Logging

おはようございます。今日は途轍(とてつ)もなく眠いですが、早朝ウォーキングしてきました😂。

さて、Chrome拡張の作り方という本のコードと解説をささっと流し読みしたので、感想を少しだけ書いていきます。まず、この本(電子書籍)はProが書いた本ではなく、書くことに関してはおそらく素人が書いた本だと思います(今では誰もが本を出版出来る時代ですから)。

ですが、ある一定の知識とプログラミング言語の知識がある人が読むと勘所を抑えていて良質な本だと思います、レビューではリンク先がないなどの意見もあるのですがそういうのは自分は気にしないし、Chrome拡張開発の勘所とManifest V3対応版にいち早く対応した本として良いなと感じました。

ググってもManifest V2対応のコードばかり出てくるので最新のManifest V3対応のサンプルコードが無いのでとても助かります。英語が分かる人ならChrome拡張開発の公式ドキュメントを読めば理解できると思うのですが、自分は英語が読めないに等しいのでとてもChrome拡張の作り方という本は役立ちました。

尚、自分が開発しているChrome拡張は来週にはリリース出来るかと思います、審査が通らなければ少し遅くなるかもですけどね。

著者名  @taoka_toshiaki

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

タグ

2, , Chrome, Manifest, Pro, ウォーキング, コード, こと, サンプル, とき, とてつ, プログラミング, リンク, レビュー, 一定, , , 今日, 作り方, 公式, 出版, 勘所, 対応, 少し, 意見, 感想, 拡張, 早朝, 時代, 書籍, 最新, , , 知識, 素人, 自分, 良質, 英語, 解説, 言語, , 途轍, 開発, 電子,

Photo by Moose Photos on Pexels.com

ディープフェイク作り方のヒント的な記事です。悪用厳禁。

2022.05.30

Logging

おはようございます。悪用厳禁、悪用禁止と言っても駄目な気がします。

ディープフェイク作り方のヒント的な記事です、先に答えからfaceswapというツールを使用すれば簡単にディープフェイクの動画は作れてしまいます。これ無料ですからね・・・。

Jennifer Lawrence-Buscemi on her favorite housewives [Deepfake]

本当に凄い時代になったんだなぁって思います。

faceswapのインストール仕方はGさんなどを使用して検索してみてください。あとデベロッパー向けにgithubでも提供されていますので開発者はどんなコードか覗いてみる良いかも知れません。

これからの時代、顔を写真なんかを気軽にUPするのは怖いなって思います、特に女性の方々は注意が必要です、男性も同じですが、、、。

著者名  @taoka_toshiaki

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

タグ

faceswap, github, UP, インストール, コード, これ, ツール, ディープ, デベロッパー, ヒント, フェイク, 仕方, 作り方, 使用, 写真, 動画, 厳禁, 女性, 必要, 悪用, 提供, 方々, 時代, 本当, 検索, , 注意, 無料, 男性, 禁止, 簡単, 記事, 開発者, , 駄目,

お店のホームページ(サイト)の作り方その参

2022.03.05

Logging

お店のホームページ(サイト)の作り方その参は下記の動画を見ていただければお店のホームページは完成できます。わからない事があれば知恵袋などで質問するとひとりで出来上がります。ちなみに動画では500円代をおすすめしていますが、100円代のサーバでも問題なく機能します、違いはデーターベースというものを使用するかどうかです。今回は静的なサイトなので100円代で十分です。

これでお店のホームページ(サイト)の作り方その参は終了します。もし自分で出来なさそうというのであればクラウドワークスなどでサーバーの設定、ファイルのアップロード、ドメインの登録などを代行でしてもらうのも一つの手なのかもしれません。値段は3万ぐらいが相場かと思います。また完了後、かならずサーバーのパスワードの設定を変更してください!。

さくらサーバー&ドメイン新規登録の手順を解説
さくらサーバーでサーバーとドメインを紐付けする方法
【さくらのレンタルサーバ】Let's Encrypt(無料SSL)を設定してみよう
【FTPツール】で大量ファイルをサクッとサーバーUPしよう!FileZillaが便利!

著者名  @taoka_toshiaki

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

タグ

100, , 500, アップロード, おすすめ, お店, クラウド, これ, サーバ, サーバー, サイト, データー, ドメイン, パスワード, ひとり, ファイル, ベース, ホームページ, もの, ワークス, 一つ, , 下記, , 今回, 代行, 作り方, 使用, 値段, 動画, , 変更, 完了, 完成, , 機能, 登録, 相場, 知恵, 終了, 自分, 設定, 質問, 違い,

お店のホームページ(サイト)の作り方その弐

2022.03.05

Logging

おひさしぶりです。
ブログを数日休んでいました。こらからは不定期という感じでブログを書いてきます。
このブログはお店のホームページ作り方その壱の続きになります。

下記が予約ボタンと地図の作成手順です、こちらの変更部分をindex.phpのファイルを書き換えてください。予約には予約システムSelectType (セレクトタイプ)を使用しているのでアカウントを作りご自身のお店に合わして管理画面から設定してみてください。

会社の地図に関しては、GoogleMapを使用しています、こちらをindex.phpに貼り付けるのですが必要ない部分があるのでその部分を削除して貼り付けています。動画を注視してみるとわかるかと思います。

予約ボタン
ぐーぐるまっぷ・ お店の地図

今回はここまでです。次回はさくらレンタルサーバにファイルをアップロードする方法とSSLの設定を行い完了となります。

著者名  @taoka_toshiaki

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

タグ

6, com, GoogleMap, https, index, php, SelectType, SSL, vMSy-CCthA, watch, www, youtube, アカウント, アップロード, お店, ここ, こちら, ご自身, サーバ, サイト, さくら, システム, セレクト, タイプ, ファイル, ブログ, ホームページ, ボタン, レンタル, 下記, 不定期, 予約, 今回, 作り方, 作成, 使用, 削除, 動画, 地図, , 変更, , 感じ, 手順, 数日, 方法, 次回, 注視, 画面, 管理, 設定, 部分,

お店のホームページ(サイト)の作り方その壱

2022.03.01

Logging

オハヨウゴザイマス。
片言の日本語しか使えない日本人です😌、高知県はあいにくの雨になるそうですね。

昨日のうちにお店のホームページ(サイト)の雛形作りをしておりました。デザインの参考にしたサイトはこちらになります。こちらのサイトデザインを元に自分が少しデザインを改良した感じです。

https://zip358.com/tool/sample.com/

こちらの画像や文言を変更することにより貴方が作成したいホームページが簡単にできてしまいます。解説はテキストで記載していきます。前手順としてVisualStudio codeとfilezillaソフトをWindowsやMacにインストールしてください。インストールの仕方はYOUTUBEで検索するといろいろな人が解説していますので、そちらを参考にしてください。

お店のホームページ(サイト)の作り方その壱-2

今回はお店のホームページ(サイト)の雛形をダウンロードして頂いてindex.phpというファイルをVisualStudio codeで開いてみてください。そうすると英字で記載している所が何箇所かあると思いますが英字は英字のままで何も変更しないでください、変更するのは日本語で記述されたところを貴方の店舗に合わして説明文を変更してみて保存してください。

お店のホームページ(サイト)の作り方その壱-1

画像を変えたい場合はimagesの中にある画像をそれぞれサンプルサイトを照らし合わせながら、貴方の店舗の画像に上書きしてください(画像名は変えないでください)。

次回は予約サイトの設定とGoogleMapの設定になります。

雛形はこちらからダウンロード:https://zip358.com/tool/sample.com.zip

著者名  @taoka_toshiaki

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

タグ

Code, filezilla, index, Mac, php, VisualStudio, Windows, youtube, あいにく, いろいろ, インストール, うち, オハ, お店, こちら, こと, サイト, そちら, ソフト, ダウンロード, テキスト, デザイン, ファイル, ホームページ, よう, , 今回, 仕方, 作り方, 作成, , 参考, , 変更, 少し, 感じ, 手順, 改良, 文言, 日本人, 日本語, 昨日, 検索, 片言, 画像, 簡単, 自分, 英字, 解説, 記載, 貴方, 雛形, , 高知県,

お店のホームページ(サイト)の作り方を解説していきます。

2022.02.28

Logging

おはよう御座います。
今日は昨日よりも暖かくなるそうですね☀。

さて、突然ですがお店のホームページ(サイト)の作り方を解説していきます。次回の記事から何回かにわけてお店のホームページ(サイト)の作り方を文字と動画により解説していきますね。今では無料でお店のホームページを作ることが出来てしまいますが、無料でサイトを作った場合は広告などが表示されお店のブランドを損ねてしまう可能性大なので、月額131円で静的なサイトを構築していく方法を教えます(予約機能付き:一部有料)。

尚、プログラムを全て解説すると言うよりかは雛形のサイトを提供しますので、そちらの雛形のサイトに記載している文字や画像を差し替えてオリジナルテンプレートをご自身で作ってもらうという形になります。それも難しいという方に向けて文字や画像をサイトから差し替えできるサービスを作っていこうと思っていますが開発は未定です、そのサービスは無料で提供するつもりでいます。

無料で提供して見返りも求めないという自分には何にもメリットがないものです。ただ、このサイトのアクセス数がもっと増えたらなという思いがあります😌。

追伸:無料で提供するテンプレートの中に、こちらのリンクを貼っていただければ有り難いですがこれもご自身で判断してください。

著者名  @taoka_toshiaki

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

タグ

131, オリジナル, お店, こと, ご自身, サービス, サイト, そちら, それ, つもり, テンプレート, ブランド, プログラム, ホームページ, 一部, 予約, , 今日, 何回か, 作り方, 全て, 動画, 可能性, 場合, , 広告, , 提供, 文字, , 方法, 昨日, 月額, 有料, 未定, 構築, 機能, 次回, 無料, 画像, 表示, 解説, 記事, 記載, 開発, 雛形,

Blenderという3DCG作成ソフトで3Dキャラクターの作り方を解説。

2022.02.02

Logging

おはよう御座います。徐々に朝日が昇るのが早くなり、陽が沈むのが遅くなってきましたね。

今日、紹介するYOUTUBEさんはBlenderという3DCG作成ソフトで3Dキャラクターの作り方を解説しているYOUTUBER、Tom Studioのトムさんです。

【Blender】ずぼらな人の為のキャラクターの作り方 part1【初心者向け】

技術力も高いトムさんに教えてもらえる、それも無料のソフトだから誰でも試しに作れてしまうので是非、トムさんの解説を見て試しにオリジナル3Dキャラクターを作ってみてはいかがでしょうか?

【Blender】ずぼらな人の為のキャラクターの作り方 part2【初心者向け】

自分で3Dキャラクターを作れるようになると2Dよりもそのキャラクターに愛着が湧くことは間違いありません。それに動かすことが出来るというのが凄く魅力的ですよね😌。

著者名  @taoka_toshiaki

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

タグ

2, , Blender, DCG, Studio, Tom, youtube, YOUTUBER, いかが, オリジナル, キャラクター, こと, ソフト, それ, トム, 今日, 作り方, 作成, 愛着, 技術力, 朝日, 無料, 紹介, 自分, 解説, , ,

WebAPIの作り方、考え方です?。サンプルコードもありますよ。

2021.12.24

Logging

昨日から風邪を引いてしまいました…。今日も体調が優れない状態ですが、昨日よりはマシになっています、因みに風邪というよりも腸と胃に菌がはいってしまって、それによる発熱です?。

さて、今回はPHP言語でWebAPIの作りましたので、ご報告致します、どんなAPIかというと生年月日とカウントしたい歳をPOSTすると、現在の年齢、今まで生きてきた日数、カウント日数がレスポンス(返却)されます。

【JavaScript入門 #8】WebAPIを叩いてみよう!async await構文を使うと簡単!【ヤフー出身エンジニアの入門プログラミング講座】

PHPコードは下記の通りになります。適当に作ったので間違っている箇所があるかもしれませんが、そこはご愛嬌でお願いできますでしょうか?、また、WebAPIの叩き方はご自身でお考えくださいませ。
サーバーに負荷が増したらWEBAPIは閉じます。

尚、WEBAPIのURLはこちらになります。

https://zip358.com/api/age/v1/type1/

<?php
header('Access-Control-Allow-Origin: *');
date_default_timezone_set('Asia/Tokyo');
$birth_date = (string)$_POST["birth_date"];
$max_age = (int)$_POST["point_age"];

/**
 * @param string $birth_date
 * @return string|false
 */
function check1($birth_date = ""): bool
{
    $flg = false;
    $str_date = explode("/", $birth_date);
    if (count($str_date) === 3) {
        $flg = true;
        if (!((int)$str_date[0] >= 1000)) {
            $flg = false;
        }
        if(((int)$str_date[0] > (int)date("Y"))){
            $flg = false;
        }
        if (!((int)$str_date[1] >= 1 && (int)$str_date[1] <= 12)) {
            $flg = false;
        }
        if ($flg) {
            if ((int)$str_date[1] === 2) {
                if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 28)) {
                    $flg = false;
                }
                if ((int)$str_date[0] % 4 === 0) {
                    $flg = true;
                    if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 29)) {
                        $flg = false;
                    }
                    if ((int)$str_date[0] % 100 === 0) {
                        $flg = true;
                        if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 28)) {
                            $flg = false;
                        }
                        if ((int)$str_date[0] % 400 === 0) {
                            $flg = true;
                            if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 29)) {
                                $flg = false;
                            }
                        }
                    }
                }
            } else {
                $last_day = [4, 6, 9, 11];
                if (array_search((int)$str_date[1], $last_day, false)!== false) {
                    if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 30)) {
                        $flg = false;
                    }
                } else {
                    if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 31)) {
                        $flg = false;
                    }
                }
            }
        }
    }
    return $flg;
}

/**
 * @param int $age
 * @return string|false
 */
function check2($age = 0): bool
{
    $flg = true;
    if ($age < 0) {
        $flg = false;
    }
    return $flg;
}


/**
 * @param string $birth_date
 * @param string $maxage
 * @return string $reslut
 */
function sumup($birth_date, $maxage)
{
    $reslut = [];
    $birth_date_array = explode("/", $birth_date);
    $birth_date = sprintf("%04d%02d%02d", $birth_date_array[0], $birth_date_array[1], $birth_date_array[2]);
    $today = date('Ymd');
    $age = floor(($today - $birth_date) / 10000);
    $day1 = new DateTime("{$birth_date_array[0]}-{$birth_date_array[1]}-{$birth_date_array[2]}");
    $day2 = new DateTime();    
    $interval1 = $day1->diff($day2, true);
    $baseday =  (int)($interval1->format('%a'));
    if ((int)$maxage <= (int)$age) {
        $pointday = 0;
    } else {
        $maxage--;
        $day3 = new DateTime((date('Y') + ($maxage - $age)) . "-{$birth_date_array[1]}-{$birth_date_array[2]}");
        $interval2 = $day2->diff($day3, true);
        $pointday = (int)($interval2->format('%a'))+1;
    }


    $reslut = [
        [
            "result" => "success",
            "age"=>$age ."歳",
            "baseday" => $baseday . "日(生きてきた日数)",
            "pointday" => $pointday . "日(" .($maxage +1). "歳まであと)"
        ]
    ];
    return json_encode($reslut);
}

if (!check1($birth_date)) {
    print json_encode([
        [
            "result" => "error",
            "error" => "string is invalid1"
        ]
    ]);
} elseif (!check2($max_age)) {
    print json_encode([
        [
            "result" => "error",
            "error" => "string is invalid2"
        ]
    ]);
} else {
    print sumup($birth_date, $max_age);
}

著者名  @taoka_toshiaki

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

タグ

39, Access-Control-Allow-Origin, API, header, lt, php, POST, url, WebApi, お願い, カウント, コード, こちら, ご報告, ご愛嬌, ご自身, サーバー, サンプル, そこ, それ, まし, レスポンス, 下記, 今回, 今日, 体調, 作り方, 叩き, 年齢, 日数, 昨日, , 状態, 現在, 生年月日, 発熱, 箇所, 考え方, , , , 言語, 負荷, 返却, 通り, 適当, 風邪,

今読まれてますというWPプラグインの作り方

2021.04.19

Logging

今読まれてますというWP(ワードプレス)プラグインの作り方はこれだけです。ボット対策の部分はお見せできませんがこんなソースコードで動いています、なお、自分が閲覧してもツイートすることはないようにしています。因みに昨日もボットみたいなのが何度も来たのでその対応を行いました。尚、TwitterOAuthというライブラリを導入してautoload.phpを使用しuseで呼び出し使用しています(※autoloadを置いている任意の場所に変更してください)。

https://twitter.com/zip358com/status/1383544830899326983

ワードプレスのプラグインの作り方の動画を貼っときます。英語ですが理解できるかと思います。動画で分かりづらかった方は『自作、WordPress、プラグイン、PHP』という様な検索すると先人たちが方法をネットに公開しているのでそちらを参考にしてください。

Create a WordPress Plugin from Scratch – Part 1

プラグインを作るにあたってソースコードに書かれているコメント部分は必須なのだけど、プラグインを配布しない人はプラグイン名だけ記載しプラグインと同じフォルダを構えるだけでプラグインとして認識します。

<?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

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

タグ

15, 7, autoload, com, https, php, QfH-s-, TwitterOAuth, use, watch, WordPress, wp, www, youtube, お見せ, コード, こと, これだけ, , ソース, そちら, ツイート, ネット, プラグイン, プレス, ボット, ライブラリ, ワード, , 任意, 何度, 作り方, 使用, 先人, 公開, 動画, 参考, 場所, 変更, 対応, 対策, 導入, , 方法, 昨日, 検索, 理解, 自作, 自分, 英語, 部分, 閲覧,

アロー演算子の数珠繋ぎの作り方?

2020.03.17

Logging

コロナウィルス対策の一環として東京都が“GitHub”に開設した新型コロナウイルス対策サイトがすごいと話題になっているらしいので自分も見てみました。ソースコードはVue.js,TypeScript,React.js,PHPなどなどいろいろな言語が使用されていました。PHPはLaravelの機能が使われてたりして、書き方が綺麗で勉強になるなぁと思ったわけです。参考になりますよね、きれいな書き方のコードを見るとやはり参考になります。

もともと、書き方が古いと自分は古い書き方に合わせます。特に上がプライドが高い人だと出る杭は打たれるみたいな状態になりますので要注意ですね…。そういう人が上にいると徐々にコードを書くのが面白くなくなります。そういうのは大いにあるなと思います。名も知らないひとのコード書きが自分の上司だったらなと思うときがあります。

そう愚痴ってもしょうが無い、その環境を選んだのは自分自身な訳ですからね。
ただ技術力を伸ばしたければやはり環境は大事、辞めたいなら辞めて自分の力を表現できる環境に身をおいた方が断然良い。

前置き長くなりました、、アロー演算子を数珠繋ぎする考え方はこんな感じです。考え方を知っとくと応用が出来るようになります、やはり基準を知るが大事かなといつも思います。

追記:これを応用するとこんな感じになります。追記のソースコードを記載しました(2021.07.05)

<?php
class testA{
    public $a = "";
    public function __construct($a)
    {
        $this->a = $a;
    }
    public function test1($a=""):string{
        return (string)$this->a." ".$a."<br>\n";
    }
    public function test2($a=""):string{
        return (string)$this->a." ".$a."<br>\n";
    }
}
class test{
    public function main($a="Hello"):object
    {
        $this->a = $a;
        return new testA($this->a);
    }
}
$test = new test();
print $test->main()->test1("PHP");
print $test->main("by")->test2("C");
<?php
    class test{
        function main(){
            return new class{
                function testA(){
                    return "testA";
                }
                function testB(){
                    return "testB";
                }
            };
        }
    }
    $test = new test();
    print $test->main()->testA();
    print $test->main()->testB();

著者名  @taoka_toshiaki

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

タグ

github, JS, Laravel, php, react, TypeScript, vue, アロー, いろいろ, ウィルス, きれい, コード, コロナ, コロナウイルス, サイト, しょう, ソース, とき, ひと, プライド, もともと, わけ, 一環, , 上司, , 作り方, 使用, 勉強, 参考, , 対策, 技術力, 数珠繋ぎ, 新型, 書き方, , 東京都, 機能, 注意, 演算子, 状態, , 環境, 綺麗, 自分, 自身, 言語, , 話題, 開設,

難しいの基準(プログラム初心者へ)

2019.11.15

Logging

難しいの基準、プログラムが難しいと思っている人がいますが
そんなに難しいものではないです。

つい最近、人工知能のさわりを試行錯誤しながら
行ってみました。Aという文章から新たな文章を生成するというものです。
機械学習の部分はあらかじめ学習済みのモデルを取ってきて
試してみたのです。なんとか文章を生成する流れまで出来ました。

プログラムが難しいひとは、参考書をみて何だか意味がわからないと
思っているひとが殆どだと思います。
まず、参考書を読むのをやめて作りたいもののプログラム言語が何か
そして作りたい機能はなにか考えて、ググりましょう。

例えば【PHP 掲示板 作り方】などと検索すると作り方の方法が
ヒットします。最初はそのソースコードをそのままコピーして
動作するところまで試してみましょう。

次に動作するところまで出来たら、そのソースコードを
編集してみましょう。そうすることでどういう処理なのか理解できます。

理解できるようになったら参考書を開いてみましょう。
何となく参考書の意味が理解できるようになるはずです。
最初から参考書を理解できるタイプと理解できないタイプがいると思います。
理解できないタイプはググって覚えるという方法で
プログラムを身につけるほうが効率的です。

著者名  @taoka_toshiaki

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

タグ

php, コード, こと, コピー, さわり, ソース, つい, ところ, ヒット, ひと, ひとは, プログラム, モデル, もの, , 人工, 作り方, 処理, 初心者, 動作, 参考書, 基準, 学習, 意味, 掲示, 文章, 方法, 最初, 最近, 検索, 機械, 機能, , 殆ど, 理解, 生成, 知能, 編集, 言語, 試行錯誤, 部分,

Twitterで自分に返信しているわけ。

2018.05.24

Logging


その時、どう思ったのかという感想みたいなものです。
Twitterの良さはリアル何気ないことが呟けたりすること、
たまにコレは言い過ぎたという事はツイ消しすることが
出来るので便利かなと思います。
この頃、タイムライン(TL)上でイケダハヤト氏のつぶやきが
流れたりするので、たまに記事を読むことはありますが
この人の言っていることは、全て真に受けてたら駄目です。
良いところだけ取り入れたほうが良い。
特に儲かってるとかいう話、彼はウェルスナビが儲かるとか
言っていますが、実際THEOの方が儲かっているはずです。
そういう感じで本当に儲かっている部分は
あまり公に言わない。本当に儲かっている部分は
うまく隠しているのですよ。
儲けるからくりを全てオープンにする事はまずないでしょう。
ココまではオープンに出来るけどというテレビ番組出てくる
ラーメン屋さんと同じです。秘伝のスープの作り方なんて
教えてくれません。
いまも昔も技は盗むものなのかもしれないなと
思う、今日このごろですが自分は基本的に技はオープンに
していきます。唯、オープンにしたものは過去の遺産みたいなもので
リアルタイムで自分もオープンにすることはないです。
トイウコトデ、やっていることは
イケダハヤト氏とそんなに変わらないなと思いますが
それ程、高いレベルの技術を持ち合わせているわけでもないです。
なのでオープンにしても構わないのだけどね。

著者名  @taoka_toshiaki

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

タグ

Twitter, イケダハヤト, ウェルスナビ, オープンソース ソフトウェア, カラクリ, タイムライン, ツイ消しすること, トイウコトデ, ラーメン屋, リアルタイム, リアル何気ないこと, 今日このごろ, 作り方, 全てオープン, 実際THEO, 秘伝, 角川インターネット講座, 部分,

PHPで自前の関数をガッと放り込むとjquery…!!

2017.02.16

Logging


デモサイトはこちらから。
https://zip358.com/tool/kansuu.php
実際、関数を引数に放り込む機会はあまりないかなと思いますが
こういう使い方もできると言う事を覚えておくと便利かなと思います。
この頃jQueryを使うことが多くなってきているのですが
使っているうちにライブラリの作り方がなんとなく理解してきましたので
オリジナルライブラリ(プラグイン)を作ってみようかなと思います。
ちなみにプラグインの作り方を紹介しているサイトがググると
結構あります。たとえば、こちらガッツリと解説しているので
こちらを参考に皆さんもオリジナルプラグインを提供してみてはどうでしょうか?
http://qiita.com/k4zzk/items/11e5dbd53cb93edb8b4d
jqueryは結構好きですが全然というほど書き方やメソッドをしらないですね。
一度、どこかでメソッドに関してはリファレンスなどに目を通しておかないと
いけないなと思う今日このごろです。
リファレンスはこちらから。
http://semooh.jp/jquery/

<?php
function kansuu(){
    return "un!<br>";
}
function ui($f){
  echo $f;
  echo $f;
}
echo 'ui(kansuu());<br>';
ui(kansuu());
class un{
    function kansuu(){
        return "un!<br>";
    }
    function ui($f){
        echo $f;
        echo $f;
    }
    function d($f){
        echo $f->kansuu();
    }
}
$un = new un();
echo '$un->ui($un->kansuu());<br>';
$un->ui($un->kansuu());
echo '$un->d($un);<br>';
$un->d($un);

著者名  @taoka_toshiaki

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

タグ

AM, br&gt, class un, echo, function d, function kansuu, function ui, jquery, new un, return, UI, un, オリジナルプラグイン, オリジナルライブラリ, プラグイン, メソッド, リファレンス, 今日このごろ, 作り方, 関数,

ブレイクしません大丈夫(笑)。

2016.12.27

Logging


ブレイクしません大丈夫(笑)。
安藤美冬が語る「人生を変える行動力の作り方」とは?という動画をみて、
このヒトは努力+試行錯誤がうまく出来ている人だなと感じました。

  1. 三年計画
  2. マイルール
  3. 自分軸
  4. 謝ること
  5. 人のつながりを大切にすること
  6. 気の合わない人の意見
  7. 人間関係には三方向の力がある
  8. 自分の器を磨き続ける
  9. ブレイクしませんから大丈夫(笑)

動画では大きく分けると上記の内容をテーマに話されていたと思います。
一番、トーク内容で一番、ウケてたのはブレイクしませんから大丈夫という
内容かなと思います。まさにその通りの内容かなと思います。
ちなみに安藤美冬 氏、かなり頭が良いですので
そこんトコロ!もお忘れなく!!
それだけではなく人の何倍も努力されています!
※努力+IQが高いと成功する確率は高いと思っています。
 

安藤美冬氏が語る「人生を変える行動力の作り方」とは?|グロービス経営大学院特別セミナー

著者名  @taoka_toshiaki

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

タグ

それだけ, つながり, トーク内容, トコロ, ひと, マイルール, やる気, 人間関係, 何倍, 作り方, 努力+IQ, 努力+試行錯誤, 動画, 安藤美冬, 確率, 習慣, 育て方, 行動力,

再購入したAMAZONの作り方とWEBAPIプログラミング入門。

2015.06.11

Logging


再購入したAMAZONの作り方とWEBAPIプログラミング入門ですけど、良い感じです。良い感じというのは中古商品なので本の質のことです。新品までとはいかないものの、ほぼ綺麗なままでした。本の中身はWeb Api プログラミング入門の方はApiの触り程度のないようなので今読むと詳しい内容が然程ないなとわかります。俺流AMAZONの作り方は今読んでもためになる本です。結構ずっしり記載された本です、素人向きではありません。
この頃、ちょっと頭が硬くなってきたなと感じることがありました・・・。前から性格上カタイかもしれませんがアイディアなどは前は結構思い浮かんでいたのですけど、この頃、しょぼいアイディアすら浮かばなくなって、なにか作ろうにもアイディアが出てこないという事になっています{何か浮かべば・・・・下記の本を使ってなにか作ろうと思います}。
 

著者名  @taoka_toshiaki

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

タグ

WEBAPIプログラミング, WEBAPIプログラミング入門, しょぼいアイディア, 下記, 中古商品, 中身, 作り方, 俺流AMAZON, 性格上カタイ, 新品, , 素人向き, 良い感じ, 触り程度, 詳しい内容, , ,