レンタルサーバーへ移行。コンプリ😗

2023.10.18

Logging

おはよう御座います、レンタルサーバーへ移行致しました。最後のドメインも無事移行してAPIでデータを取得するように変更しました。この方法に変えたことによりいろいろな事がAPIを介して出来るようになります。

例えばレンタルサーバーでは難しい、生成AIなどを自前生成AIをAPIを介して取得することも可能です。ただ、GPUがVPSサーバーはショボいので、限りなく難しいですが出来ないことはないです。またpythonやnodejsでしか出来ないことなどもAPIを介して可能になります。

難点はレスポンスが気になるところです、あと負荷がかかるとうまく機能しない事もあります。なので、重たくなればまた新たな方法を考えます。いまの感じだと最後に移行したサービスは当分このままで、処理できると思います。

aroma beverage breakfast brown
Photo by Pixabay on Pexels.com

アクセス数も安定していて増えもせず、減りもしない状態のまま推移しています。このサービスをもう自分は誰かに譲渡したいのですが、運営してくれる人がいれば売却したいなって思ってますが…。今のところ見つからないので自分が運営していくしかないのかな🤔。

ここからは少しボヤキになります。アクセス数はあるのだけど、収益があまり上がっていないのが現状です、恐らく表示されている広告がミスマッチなんだろうなって思っていますが、どうすれば広告を変更することが出来るのかがあまり分かっていないのですね。うまくマッチした広告を出すことに成功すれば恐らく、いまの倍以上の収益が得れそうな気もします。なので、近々、調査してみます🚧。

明日へ続く。

タグ

API, GPU, nodejs, Photo by Pixabay on Pexels.com, Python, VPSサーバー, ショボ, データ, ドメイン, ミスマッチ, レスポンス, レンタルサーバー, 収益, 少しボヤキ, 最後, 現状, 生成AI, 自前生成AI, 負荷, 難点,

Gさんラボで生成AI使用しているけど結論から

2023.09.04

Logging

おはようございます、Gさんラボで生成AI使用しているけど結論から言えば自分のサイトには影響を受けないじゃないのかなって思ったりしています。多少はアクセス数が減少するかも知れないけど、やはり激減しそうにない。自分のサイトにアクセスしているのは、ニッチなファン層を除きたまたま、見に来た人が多いのでそんなに生成AIサーチによりアクセス数が激減しないと見ています。

ちなみにGさんの生成AIを使用したい方はこちらのブログのなかにあるリンクをクリックすると、リリース前に生成AIと検索サービスの融合がどんなものなのか分かります。自分はOpenAIよりGさんのBard推しなのです。ちなみに今の精度ではOpenAIが若干勝っている気がしますが、ChatGPTがたまにご機嫌斜めでレスポンスが遅い時があります。そういう面、GさんのBardはいつもレスポンスは早いですね。

なので、後出しジャンケンで恐らくGさんに軍配が上がり、OpenAIはマイクロソフトに買収されるじゃないかなって思っています。

タグ

Bard, ChatGPT, Gさん, Gさんラボ, OpenAI, ジャンケン, なか, ファン層, マイクロソフト, レスポンス, 多少, 生成AI, 生成AIサーチ, 精度, 結論, 若干, 融合, 軍配, 遅い時, ,

プレイステーション5ポータブルのレポを見て。

2023.08.29

Logging

おはようございます、プレイステーション5ポータブルポータルのレポを見て。これローカルでしか遊べないだよなぁ・・・orz。あまり魅力を感じないだけども寝そべりながらゲームしたい人にとってはとても良いツールだと。そして値段が高いですね(・・;)。ニンテンドースイッチが子供に人気なのが分かる。あれ持ち運べてどこでもゲーム出来るだよなぁ。それと比べてPSPは室内でしか今の所機能しない。

この差は結構大きいと思います。散々酷いことを言っているけれど画面はメチャきれいだし、レスポンスも良さげだけに勿体ないゲームツール。そろそろパソコンにUSB差し込むだけでプレイステーションが出来るようにして欲しいというのが自分の本音、過去のPSも遊べるようになれば最高だよね。

PlayStation初のリモートプレイ専用機「PlayStation Portal リモートプレーヤー」登場!!

媒体からそろそろソフトにチェンジしませんかって案は出ていると思います。それが出来たら確実に膨大な利益を生み出すと思います。そもそも媒体を生産するのにいつも膨大な赤字を生み出して回収するのに凄く時間がかかっています。今回(プレイステーション5)は転売ヤー問題も合ってまだ損益分岐点を超えてないじゃないかなぁ。

それだったらSteamのようにすれば良いじゃないのかと思います、今では多店舗展開しているゲームがほとんどだから、媒体でゲームしているのは子供たちだけではないのだろうか?などと前からそのような事を記載している自分ですがこういう考え方は少数派なんだろうか?🤔。

タグ

orz, PS, PSP, STEAM, USB差し込むだけ, そもそも媒体, ニンテンドースイッチ, プレイステーション, プレイステーション5ポータブルポータル, めちゃ, レスポンス, レポ, 媒体, 少数派, 損益分岐点, 本音, , 良さげ, 赤字, 転売ヤー問題,

DMMのアフェリエイトを始めてみました。

2023.08.17

Logging

おはようございます、DMMのアフェリエイトを始めてみました。始めてみたけれどこのブログには埋め込むことが出来なかったので、@tosajin_kochiで少量的にポストするので様子見します、結果が出ないようだったら辞めて何か違うことに変更してみます。何故、今になってDMMのアフェリエイトを始めたかといえば、APIを調べているうちに女優さんサーチのAPIというものがDMM.comさんにはあることを知り。これで少し小遣い稼ぎが出来るじゃないのかと思ったのがきっかけでした。

実際、このAPIを使用してみた結果。女優さんといってもR18系の女優さんが検索結果に表示され、広告のリンクもFANZAへ飛ぶようになっていたのでさくらレンタルサーバーやVPSでは使用できないので断念しました。色々調べているとR指定でもOKなサーバーがあることにはあるって事を知ったんだけども、なんだかそこまでして稼ぐのも何だなってのが頭をよぎり辞めました。

Creepy Nuts – かつて天才だった俺たちへ / THE FIRST TAKE

女優さんサーチというAPIにも難点もあります、女優さんの顔などもレスポンスとして受け取ることが出来るのですが、画像が荒く問題ありです。DMMさんのアフェリエイトの規約により画像加工などは駄目だと書かれていますので、使用するのは名前だけで名前から商品画像を再度表示するように切り替えれば、稼げる可能性はあるかなと思いますが、検索上位に表示させるのは至難かなと思います。

こういうことは誰でも考えるので、利益は出ないだろうと思います、ネットの世界では後発で当てるのは少々難しいです。

タグ

API, DMM, DMM.comさん, DMMさん, FANZA, tosajin_kochi, VPS, アフェリエイト, きっかけ, サーバー, さくらレンタルサーバー, レスポンス, 再度, 利益, 女優さんサーチ, 少し小遣い稼ぎ, 後発, 検索上位, 規約, 難点,

404の画像をno-imageにする#jscode

2023.05.16

Logging

おはようございます、404の画像をno-imageにするコードです。案外簡単なコードですが、これでノーイメージに変換できます。因みに参照した404ページが404のステータスを吐き出していなかったら、このJSコードは機能しません。

if(document.querySelectorAll("img")){
     [...document.querySelectorAll("img")].forEach(elm=>{
        fetch(elm.src).then(response=>{
            if(!response.ok){
                elm.src = "no_image1.gif";
            }
        });
     });
}

因みに自分のブログサイトもこんな感じのコードを埋め込んでいます。これをphp言語で対応すると処理がサーバーサイドになるので重たくなります。こういうのはJSコードで対応するのが個人的には良いと思っています。尚、JSコードとPHPを連動させて表示の有無を行うのも良いかも知れません。

画像URLを参照してレスポンスデータが返ってきます、このレスポンスの変数をconsole.log(response);で表示するとstatusなども返ってきていることが分かると思います。404ステータスだけ何かしたい場合はresponse.statusで判断するともっと厳密になって良いかも知れません。

タグ

'src', console.log, document.querySelectorAll, elm, fetch, foreach, gt, if, img&quot, no-image, quot, response, response.ok, response.status, status, then, サーバーサイド, ブログサイト, レスポンス, 変数,

巨人Gさんの大規模言語モデルBardをトライしてみた。

2023.04.27

Logging

おはようございます、先日の朝にGさんからメールが来てたので巨人Gさんの大規模言語モデルBardをトライしてみた。試してみた結果ですが、忖度なしでいうとchatGPTの方が性能良くないかなと思うところがかなりありました。まず、日本語に対応していないのが難です、試しに英語でLaravelの非同期処理を書いてと問い合わせを行ったところ、レスポンスはかなり良いのですが手順が抜けているところがあり、そのままでは非同期処理が走らせないなと思いました。chatGPTに同じ質問を投げるとartisanのmakeから手順を書いてくれるのだけど、そういうのが無かったです。

後は、スレッド形式じゃないところが困りものです、そういう意味でもchatGPTに軍配が上がります、なんだか、もう少しGさんには頑張って貰いたいです。Gさんなら出来そうなことをことごとくしていない気がします。まだ、リリースされていないので何とも言えないですが、これでは検索シェアをchatGPTに奪われそうな気がします。Gさん好きなのでGさんの本気を見てみたい気がします。

タグ

artisan, ChatGPT, Gさん, Laravel, Make, スレッド形式, レスポンス, 大規模言語モデルBard, 少しGさん, 巨人Gさん, 忖度, 性能, 手順, , 本気, 検索シェア, 結果, 英語, 軍配, 非同期処理,

YT有料会員なので広告流れないので感覚的に違うかも。

2023.03.04

Logging

おはようございます、来週はWinnyという映画を観に行きます。因みに週4日フルリモート勤務ですので金曜日に映画見に行きます😄。

【新番組30’s】BASE CEO鶴岡裕太×PIVOT 国山ハセン/マインドセットを学べ/不登校、大学中退から100億円企業に

今日はYT有料会員なので広告流れないので感覚的に違うかもというお話です。YOUTUBEの有料会員なので、一切広告が流れません。これは素晴らしく時間短縮になると思っています、広告が表示されるYOUTUBEには戻れないですね。これからGさんも人工知能検索にも力を入れていくと思います、そういう中でこれまで広告で収益を得ていたWEB広告も変わっていくかもしれないなって思います。

どういう訳かというと、人工知能で引用したり使われた情報の提供元に情報提供料を支払うようなシステムにいずれなると思います。検索側は広告で収益化が減少するようになるので検索システムの有料化は何処かのタイミングで行われると思います。会員は検索システムのレスポンスが速くなるメリットやWEB広告(自社)の非表示などのメリットを提供するようになると思います。

そんな訳で人工知能検索(対話式)の登場したことにより、今後、WEBサイトの在り方が大きく変わっていくと思います。

タグ

Gさん, WEB広告, Winny, youtube, YT有料会員, タイミング, メリット, レスポンス, 人工知能, 人工知能検索, 収益, 収益化, 在り方, 対話式, 時間短縮, 有料会員, 自社, , 週4日フルリモート勤務, 金曜日,

E_ERROR | E_WARNING | E_PARSE🐸

2022.06.15

Logging

おはようございます。果報は寝て待て😌。果報(かほう)を家宝だと思い込んでいました・・思い込みって怖いですね。

先日、記載した「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」ですがphp.iniのワーニング(警告表示)が問題でした。そこをE_ERROR | E_WARNING | E_PARSEに修正してあげることで難無く解決済みです。JSONの返却の際に警告表示も返却され正しい値が取得出来ていなかったことに問題があったようです。

因みにこの頃は警告表示も意識してコードを書く機会が多くなりました。その理由はそちらの方がスマートかなって思うからです。数式が美しいと思うように綺麗なコードというものはあります。まだまだ、プログラムのコードは美しく書けませんが意識することによりそれに近づける事は大事になると思っています。

尚、php.iniは大体、/etc/php.iniにあります?、無ければコマンドラインからかコードに下記のように記載してphp.iniは何処に保存しているか調べてみてください。

php -r "echo phpinfo();" | grep "php.ini"
<?php
echo phpinfo();

タグ

Error, etc, ini, json, parse, php, WARNING, かほう, コード, こと, スマート, そこ, そちら, それ, プログラム, もの, レスポンス, ワーニング, , 修正, , 先日, 取得, 問題, 大事, 大体, 失敗, 家宝, 意識, 数式, , 更新, 果報, 機会, 理由, 綺麗, 表示, 解決済み, 記載, 警告, 返却, 返答, , ,

サーバーを移行しました、行き着く先はここだった。

2022.06.14

Logging

おはようございます。先日、一日もかけてサーバーサイドを某サーバーに移行しました。移行しましたがまだ不具合などが存在しているのです。例えば「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」などと頻度に表示されます。

ここらへんを早急に対応したいと思っています。

お待ち下さい~。

因みにPHPのバージョンは8にアップデートしました。そしてエンジンエックスからApacheに土台を変えました。今回、エンジンエックスを数ヶ月使用してApacheサーバの方がやはり歴史が長いので、かゆいところに手が届く仕様になっていることに気づきました。

タグ

8, Apache, json, php, アップデート, エックス, エンジン, ここ, ここら, こと, サーバ, サーバー, ところ, バージョン, べん, レスポンス, , 不具合, 今回, 仕様, 使用, , 先日, 土台, 失敗, 存在, 対応, , , , 更新, 歴史, 移行, 表示, 返答, 頻度,

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);
}

タグ

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

bitflyer.comでAPI使ってみたよ、遅っいぞ。

2020.06.05

Logging

bitflyer.comでAPI使ってみたよ、遅っいぞ。自分の回線が悪いのかわからないけれど、データの結果が返却されるまで2?4分ぐらい時間がかかるのです、レスポンスが遅い恐ろしく遅いのだ。
まるでオイラのようだ(´・ω・`)。

ccxtとかも使ってみたら・・アレ大丈夫?
PHPで再度を自作してみた「body部分は間違っているかも。いや間違っているよ・・・?。」とぶつぶつ言いながら制作。

追記:
PHPのレスポンスが遅いのは、LinuxのOSをゴニョゴニョしたからでした。OS入れ直して再度コードを走らすと普通にレスポンスが返ってきました、、、。

返ってきたときには「ほんと、何やねん」とボヤきました?。

PHPのソースコードを記載します。

<?php
date_default_timezone_set('Asia/Tokyo');
class Api_Bitflyer_Class
{
    var $basic_url = "https://api.bitflyer.com";
    public function __construct()
    {
        require_once __DIR__."/../common/init.php";
    }
    /**
     * @param timestamp $timestamp
     * @param string $path
     * @param string $method
     * @param string $body
     */  
    public function api_set($timestamp = "", $path = "/v1/me/getbalance", $method = "GET", $body = "")
    {
        $url = $this->basic_url . $path;
        $data = strtolower($method) === "get" ? $timestamp . $method . $path : $timestamp . $method . $path . (function ($body) {
            if (!is_array($body)) {
                $body = [];
            }
            return json_encode($body);
        })($body);
        $access_singn = hash_hmac("sha256", $data, APISECRET);
        $headers = [
            'ACCESS-KEY: ' . APIKEY,
            'ACCESS-TIMESTAMP: ' . $timestamp,
            'ACCESS-SIGN: ' . $access_singn,
            'Content-Type: application/json',
        ];
        return new class($url, $method, $headers, $body)
        {
            var $url = "";
            var $method = "";
            var $headers = "";
            var $body = "";
            /**
             * @param string $url
             * @param string $method
             * @param string $headers
             * @param string $body
             */              
            public function __construct($url, $method, $headers, $body)
            {
                $this->url = $url;
                $this->method = $method;
                $this->headers = $headers;
                $this->body = $body;
            }
            public function api_run()
            {
                $curl = curl_init();
                curl_setopt($curl, CURLOPT_URL, $this->url);
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $this->method);
                curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers);
                strtolower($this->method) == "post" ? curl_setopt($curl, CURLOPT_POSTFIELDS, $this->body) : "";
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                $response             = curl_exec($curl);
                // $response_info        = curl_getinfo($curl);
                // $response_code        = $response_info['http_code'];
                // $response_header_size = $response_info['header_size'];
                curl_close($curl);
                print date("Y/m/d H:i:s");
                var_dump(json_decode($response));
                // var_dump($response_code);
                // var_dump($response_header_size);
            }
        };
    }
}

$Api_Bitflyer_Class = new Api_Bitflyer_Class();
$Api_Bitflyer_Class->api_set(time(),"/v1/me/getbalance","GET","")->api_run();

PHPとは別にnode.jsでリアルタイムAPIを使用した動画を貼っときます。

bitflyerAPI_PHPcode

なお、よく読んだほうが良いAPI Documentation

bitFlyer Lightning では、HTTP API と Realtime API の 2 種類の API を提供しています。

尚、ビットコイン高くて買えないので、ビットコインの売買したい知人は格安で自動売買のシステム作りますよ。

タグ

2, 39, 4, API, Asia, bitFlyer, body, ccxt, class, com, date, default, Linux, lt, OS, php, set, timezone, Tokyo, アレ, おいら, コード, ゴニョゴニョ, ソース, データ, とき, ほんと, レスポンス, , 再度, 制作, 回線, 時間, 普通, 結果, 自作, 自分, 記載, 返却, 追記, , 部分,

TinyMCE 5.0でオリジナルプラグイン作成するはググれば何とかなるが?

2019.07.27

Logging

TinyMCE 5.0で独自のプラグインを開発するにあたって
ググれば4.0で作成する方法は山ほど例題があるのだけど5.0は
非常に少ないtinymce.windowManager.openを使用してのプラグインは
5.0でも案外簡単に見つかるのだけど、tinymce.windowManager.openUrlを
使用しての情報はググってもない。
唯一、公式サイトが記載しています。
しかし残念なことに全て英語で書かれています。

日本語で記載しろよという話だけど・・・・。
で!!tinymce.windowManager.openUrlで
何が出来るかと言えば外部ファイルを
読み込みが出来てそのレスポンスを受け取る事が出来るのです。
英語が嫌いでも原文で英語を読め!!ですよ・・・。
答えはそのページに書いているのですね。
※ちなみに会社でこの機能(e.windowManager.openUrl)を
使用し開発中です。
たぶん、自分みたいに困っている人もいると思うので
基本的な部分を記載しています、なお自作プラグインの作り方は
理解しているという前提で記載しています。
まず例としてPHPファイルを読み込みたいのなら
自作プラグインのPHPファイルに下記の記載を行います。

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="/tool/bootstrap/css/bootstrap.css">
        <script src="/tool/jquery/jquery-3.4.1.js"></script>
    </head>
    <body>
        <form method="post">
        <input type="text" name="L_japan" class="form-control">
        <input type="text" name="L_English" class="form-control">
        <input type="button" name="submitbtn" value="恩恵を受ける"class="btn btn-primary">
        </form>
        <script>
            var chageJson = function(data) {
            console.log(data);
            var JsonData = [];
            for (i = 0; i < data.length; i++) {
                JsonData[data[i].name] = data[i].value
            }
            //console.log(JSON.stringify(data));
            return JsonData;
            }
            $("[name=submitbtn]").on("click",function(){
                data = chageJson($("form").serializeArray());
                window.parent.postMessage({ mceAction: 'customAction',data:data});
                window.parent.postMessage({ mceAction: 'close' });
            });
        </script>
    </body>
</html>

PHPファイルはこのような感じでjavascriptが大事ここで、
submitを行っています。
当然、JSON形式で返却しましょう。公式ページにも書かれいますが
mceActionで制御しましょう。
プラグイン側のJSは下記のようになります。

(function() {
    tinymce.create('tinymce.plugins.language_boon', {
        init : function( ed,  url) {
            console.log(ed);
            act =function(ed)
            {
                ed.windowManager.openUrl(
                    {
                    type: 'panel',
                    title: '恩恵を受ける',
                    url:url + "/language_boon.php",
                    onMessage:function(api, details){
                      console.log(api, details);
                      console.log('オレオレjapan', details.data.L_japan);
                      console.log('オレオレEnglish', details.data.L_English);
                   }
                });
            };
            // window.addEventListener('message', function (event) {
            //   console.log(event);
            //   var data = event.data;
            //   console.log(data.data);
            //   if(ed.settings.id == data.data.id_){
            //     console.log('オレオレjapan', data.data.L_japan);
            //     console.log('オレオレEnglish', data.data.L_English);
            //   }
            // });
              ed.ui.registry.addButton('language_boon',{
                title : '恩恵を受ける',
                text: '恩恵',
                onAction:function(){act(ed)}
            });
        },
    getInfo : function() {
        return {
            longname : 'tinymce.plugins.language_boon',
            author : 'taoka',
            authorurl : 'https://zip358.com',
            infourl : 'https://zip358.com',
            version : '1.0'
        };
    }
});
        tinymce.PluginManager.add('language_boon', tinymce.plugins.language_boon);
})();

公式ページは下記のリンクより
https://www.tiny.cloud/docs/ui-components/urldialog/#urldialoginstanceapi
サンプルサイトはこちら
https://zip358.com/tool/editor/
 
 

タグ

4.0, 5.0, open, openUrl, TinyMCE, windowMan, windowManager, オリジナル, こと, サイト, ファイル, プラグイン, ページ, レスポンス, , 会社, , 作成, 使用, 例題, 全て, 公式, 原文, 唯一, 外部, 嫌い, 山ほど, 情報, 方法, 日本語, 機能, 残念, 答え, 簡単, 英語, 記載, , 開発,

Chromeの拡張機能を作りました限定公開してます。

2018.01.21

Logging


Chromeの拡張機能を作りました限定公開してます。
自サイトの新着記事を表示するようにしています、自虐的に言えば
誰も使わないだろうけれども・・・。
お試しに作ってみたよぐらいのレベルです。
有料で販売することも可能みたいなので、ヒットすれば
結構な収入になることは間違いないですね。
試しにお使いになる方はこちらのリンクからインストールを
行ってくださいな。
尚、たまにレスポンスが遅くなり表示反応が悪い時あり。
https://chrome.google.com/webstore/detail/zip358com/deggndfnobbcfjklgpaeggkjfdhcjgde?hl=ja?

タグ

Chrome, Informatics&amp, javascript, インストール, お使い, お試し, プログラミング, レスポンス, 収入, 徹底マスター, 拡張機能, 教科書, 教養, 有料, 自サイト, 言語仕様, 開発技法, 限定,

理解している人は話が分かりやすい。

2017.09.03

Logging


 
昨日、じぶんがTensorflowをつかってやったのはCNN技術ということらしい。
(ツイートしたあの画像!!)


頭のいいひとがやっているのはDCGANという事に取り組んでいる人達が多いのか?
CNNはあるモノ(与えられた要素)からそれが何かを判別することに使う。
DCGANは無い状態からそれに近いものを生成する技術。
この動画を見て、そういう感じじゃないのかということを表面上理解したのだけど
これをコーディングするのはどうすれば良いかはクエッションマークだらけ。

TensorFlow勉強会(5) DCGAN – How does it work?

何故、阿呆なじぶんが機械学習を勉強しているのかということは昨日書いたから
割愛します。そんな自分が昨日、いろいろな人のTensorflow講義をYOUTUBEで見ていたところ
頭のいいひとの方が分かりやすい言葉で教えていることのほうが多いなという事が印象に残りました。
逆にじぶんが理解していない人は専門用語がだらっと多い気がしました。
今回、グーグル社の中井さんが解説しているCNNとDCGANの内容が素人でも
わかりやすく解説しているなという印象を受けました。
Tensorflow勉強会というチャネルは結構良質な内容かなと思います。
どちらかと言えば触りの内容が多いのですけど、WEBで調べる時に大事になるキーなどを
知る事になり良かったです。
ただ、動画は分かりやすいのですが
阿呆でもわかりやすく解説している専門書は今の所まだ無い。
逆に言えばプログラムは分かるけれど、これとコレの基礎を勉強しなさいという
機械学習超入門書がほしいところ、たぶんパラメータ投げればTensorflowが
勝手にレスポンスを返してくれるからっていうのは誰しも分かっている人は大半だと
思うのですね。問題はもっと噛み砕いて解説している超入門書が欲しいです。
誰か出さないかなぁ・・・。

タグ

B074SFHQLJ, CNN, DCGAN, impress top gear, Pythonベース, tensorflow, Tensorflow勉強会, TensorFlow機械学習クックブック, Tensorflow講義, いいひと, クエッションマークだらけ, じぶん, チャネル, パラメータ, レスポンス, 中井, 専門書, 機械学習超入門書,

文字化けがモヤモヤした件:Unicodeめ!!とか機種依存文字とかの話。

2017.07.14

Logging


文字化けがモヤモヤした件:Unicodeめ!!とか機種依存文字とかの話。
会社でこちらの件でモヤモヤして最終的に解決できたのだけどなんだか腑に落ちないので自宅に帰って文字化けの検証をしてみました。勤めている会社はサイトコピー防止の為なのか、未だにEUC-JPコードで動いています(楽天とかもEUCだったりする🙄)。なので、会社のWEBシステムのファイルはEUCなのです。ブラウザ側がEUCだけどAjaxで送受信しているから強制的にUTF8で送られる?ので、PHP側で正しい文字コードで変換しないと文字化けするですね🤔。👈此処らへんサーバーサイドも絡んできます。
レスポンスされた文字コードも表面上は難なく表示されます。その戻ってきた文字をコピペしてWindowsのテキストファイルなどにペースト(貼り付ける)すると文字化けを起こす文字があります。
酷いときは文字が消える文字化け表示されるという問題がおきるのです。

その時、はてなって思った訳です🙄

何故・・・起きるのかPHPでエンコードするときの問題に変換にミスっていると思っていたが、そうではなかった。
WindowsエディタがSJISだったのです。要するにブラウザの文字コードとWINDOWSエディタの文字コードに違いがあった為、ある一部の文字コードで文字化けを起こしていました。

ブラウザ側がUTF8やEUC文字コードをエクセルファイルに貼り付けたら、一部の文字コードがバグったりします・・・。これは文字コードを扱うバイト領域等が違って起きる現象です。

追記2022/10/03:記事の文言を修正しました。

タグ

8, ajax, EUC, euc-jp, php, Unicode, UTF-, web, Windows, コード, こちら, コピー, コピペ, サーバー, サイト, システム, テキスト, とき, ファイル, ブラウザ, ペースト, べん, レスポンス, , 会社, 依存, , 問題, 変換, 文字, 文字化け, 検証, 楽天, 機種, 此処ら, , , 自宅, 表示, 表面, 解決, , 送受信, 防止,

ワンコインでVPSが使用できるレンタルサーバーDTI!!

2017.03.14

Logging


http://dream.jp/vps/
ワンコインでVPSが使用できるレンタルサーバーDTI!!
何気にすごいお得ださくらサーバーVPSやお名前.comのVPSサーバーが
有名だけど、メモリ1Gで月々467円って安いと思います。
ホントに安いな・・・損益分岐点になる人数を
知りたいな。たまに個人でサーバの切り売りしている強者も
いますが、こんな事を企業がやってしまうと太刀打ちできない
じゃないかとさえ思ってしまう。
値段はかなりお手頃価格なので
あとはレスポンスなどが気になるところですけど
実際、VPSで練習のためサーバを構築するのは
これで十分ですね。

タグ

CentOS 7, VPSサーバー, お名前, かなりお手頃価格, サーバー徹底構築, さくらサーバーVPS, メモリ, メモリ1G, レスポンス, レンタルサーバーDTI, ワンコイン, 人数, 何気, 実践, 強者, 損益分岐点, 月々467円,

お名前.comのレスポンスが遅い。

2015.11.04

Logging


お名前.comのレスポンスが遅い。今に始まったことではないけれど
この頃、お名前.comの管理画面操作などのレスポンスが
非常に遅く感じるのだけど・・・これってDos攻撃のさなかなのかも
しれない。
だったらサーバー強化して耐えてくれ・・・・
使っているこちらは読み込みが遅くて(#゚Д゚)y-~~イライラ
してしまうです。これじゃ・・・一昔前の電話回線ぐらいで
繋いでいるのと同じじゃないか・・・。
追記:
グーグルChromeだと遅いとかつぶやいてる人を発見した_| ̄|○

タグ

-y, com, Dos攻撃, イライラ, お名前, グーグルChrome, サーバー, さなか, レスポンス, , 管理画面操作, 読み込み, 追記, 電話回線,

人工知能、女子高校生りんなが凄い・・コレは。 #マイクロソフト #りんな

2015.08.03

Logging


はじめましてマイクロソフトの女子高校生AIです」が凄いです。
昨日、人工知能のりんなさんとチャットしてみた感想ですが、
成り立たない会話もあるにはありますが使用してみて
映画「her/世界でひとつの彼女」はまんざらでもないなと感じました。
あと数年後には、いろいろな分野で人工知能の活躍してそうです。
仮想恋愛人工知能ソフトもおそらく販売されるでしょうね。
また、りんなさんですが、これは危ういなと感じました。
人工知能のだと分かっているから・・・そう感じるだけで
知らない人ならレスポンスの早い女子高校生と感じる人も
中に入ると思います。
ちなみに、ダイレクトメールにも
悪用できるしオレオレ詐欺にも悪用できてしまいます。
いまは、人工知能は基本的に「善」の使い方が多いと思いますが、
今後、人工知能が一般に普及してくると「悪」の使い方もでてくると思います。
数年後にはイタチごっこが始まっていると思います。
人工知能が人工知能かを判別するのも難しいくなるでしょうから、
おそらく発信源は何処なのかなどが重要になってくるのだと思います。
ちなみに今、ダイレクトメールなどを
人工知能を使用して振り分けているサービスはあります。
今後、いろいろな産業に人工知能が使用されることは間違いないです。
 

タグ

イタチごっこ, おれおれ詐欺, サービス, ダイレクトメール, ひとつ, マイクロソフト, まんざら, りんな, レスポンス, 人工知能, 仮想恋愛人工知能, 何処, 使い方, 分野, , 女子高校生AI, 女子高校生りんな, 早い女子高校生, 産業, 発信源,