HIDEO KOJIMA:CONNECTING WORLDSを観!

2024.02.28

Logging

おはようございます、『HIDEO KOJIMA:CONNECTING WORLDS』のドキュメンタリーを観たので感想を残しときます。この為だけにディズニープラスに加入したわけですけど延長して他のエンタメもこの際だから観たいと思います。

HIDEO KOJIMA: CONNECTING WORLDS | Official Trailer

さて、『HIDEO KOJIMA:CONNECTING WORLDS』の感想ですが、小島監督ファンなら見るべしです!激アツですね、何が激アツかと言えばモノ作りにかける想いです、そして小島監督を支えるコジマプロダクションの開発陣営たち、そんな人達が結集してデス・ストランディングなどが開発されているのかと思うだけで、手にとってプレイしてみたいと思うと思います。

前から小島監督ファンでしたが、今回のドキュメンタリーを観てやっぱ良いねと思いました。

明日へ続く。

タグ

CONNECTING WORLDS, HIDEO KOJIMA, エンタメ, コジマプロダクション, ディズニープラス, デス・ストランディング, ドキュメンタリー, 人達, 小島監督, 小島監督ファン, 感想, , 激アツ, 開発陣営たち, ,

x.comをtwitter.comへ変換する拡張機能

2023.10.28

Logging

おはようございます。クリップボードコピーする際にx.comのurlをtwitter.comへ変更するクロームの拡張機能を作りました。これを使用するにはクリップボードの許可が必要になります💁。

どんな時に使用するか?。ワードプレスの記事に貼り付ける際、x.comのurlなのでワードプレスの方でウィジェットに変換されないという問題が発生するのですが、その問題を解決するために、この拡張機能を作成しました。これで一応、解決したのですが、クリップボードの権限を許可しないといけないのが、ちょっと自分としてはどうかなぁーと考えることがあります。

これを書いているときは、まだ審査中ですが、公開される頃には拡張機能も公開されていると思います。なので…、追伸で公開URLを貼ります。

こちらになります。⏩x-convert-twitter

明日へ続く。

タグ

twitter.com, url, x-convert-twitter, X.com, ウィジェット, クリップボード, クローム, ワードプレス, 公開URL, 問題, 審査中, 拡張機能, 権限, 自分, 記事, 許可, 追伸, ,

サーバーをVPSからレンタルサーバーへ移行。

2023.09.27

Logging

おはようございます、サーバーをVPSからレンタルサーバーへ移行しています。このまま順調にサーバー移行が進めば年内に、一つのWEBシステムを残してあとは全て移行が完了します。最後のWEBシステムもレンタルサーバーでは出来ない部分だけをAPI化してあとはレンタルサーバーに移行し、そこからAPIを叩くようにする事も可能かなと思っているので、最終的には全てのドメインをレンタルサーバーに移行出来るかもしれません。

いま、VPSで運用しているドメインは広告が付いているので移行する際は広告を一旦停止して作業しないといけないのと、サービスが不安定になるので恐らくアクセス数の多いサイトは深夜帯で移行するつもりです。ちょっとアクセス数が多いので個人サイト以外は告知して移行するつもりです。

恐らく一番乱暴に移動するのはこのサイトだと思います。ごめんなさい。

因みに、大半のドメインは先日、移行を終えています😌。

タグ

API, API化, VPS, WEBシステム, アクセス数, サーバー, サーバー移行, ドメイン, レンタルサーバー, 一旦, 全て, 全て移行, 大半, 年内, 広告, 最後, 深夜帯, 移行, 部分, ,

日本の最低賃金が低いのを見て思うこと。 #最低賃金 #各国の最低賃金

2022.12.05

Logging

おはようございます、仕事が決まりません、早く再就職したいという焦りが出てきましたが、「慌てるカツオは針を…」のことわざを思い出して一呼吸置きます。

Twitterのトレンドに最低賃金が入っていました、見てみると各国の最低賃金と比べて日本の最低賃金はかなり低いことが分かります。コレを見て日本の仕事を請け負うよりも海外の仕事を請け負った方が断然良いことが分かりますよね。

これからは英語を勉強して海外の仕事を取りに行った方がお得だなって思います、この頃、記憶力が衰えてきたように思う自分ですが、この際に英語を身につけるべきだなってヒタヒタと感じます。トイウコトデ、記憶力が上がる薬かサプリメントが欲しいこの頃です。

英語が喋れたら世界がかなり広がると思いますがどうでしょうか?片言の日本語しかしゃべれない自分ですが、思い切って英会話レッスンを受けてみたいと思っていますが、現在、無収入なので先ずはYOUTUBEで何とかしてみようと思っています。こんなアプリも有るみたい人工知能が英会話の発音を矯正してくれるアプリELSAspeak

タグ

Twitter, You, カツオ, かなり, こと, ことわざ, これ, コレ, サプリメント, トイウコトデ, トレンド, レッスン, 一呼吸, 世界, 仕事, 勉強, 収入, 各国, 就職, , 日本, 日本語, 最低賃金, 海外, 焦り, 片言, 現在, 自分, 英会話, 英語, , 記憶力, , , , ,

さくらVPSの仕様なのか、分からないけど。

2022.10.14

Logging

おはようございます、昨日は暖かい陽気でしたね🫠。

さて、昨日ドハマリして数時間、時間を費やしてしまった問題が有りました。結論から言えばOSのバージョンの関係で上手くいかなかった。さくらの中の人(開発者)、OSバージョンアップした際の挙動を確認して無さそうな気がします。

どんなトラブルになったのかと言えば、こんな感じ。

作業用VPSサーバーを設置してWEBのコントロールパネルからssh鍵の設定して作業に取り掛かろうとテラターム(ローカル)でログインした所、エラーが出る。

何度、トライしてもパーミッションが駄目だよと弾かれるので、ウインドウズでユーザーの設定なんかを変更したりしたのだけど駄目だった。

リナックスやMacからだとログインできるだよね、なのでコレはWindowsの問題だと思っていた、パーミッション原因だと思っていたのだけど、前サーバーはssh鍵付きでログイン出来てたので変だなと思い、前サーバーのssh鍵を変更してみたら、こちらはすんなりとログイン出来てしまった。

ここで何が違うかと言えば、OSのバージョンだけ8系と9系の違いでログイン出来なくなる。恐らくこちら側の設定がどうこうではなく、何か・・・の接続時のデータ送受信で変になっている気がします。

この事象をさくらVPSに問い合わせしていないので、原因は分からないだけど恐らくOSのバージョンの違いで今のところ発生している問題だと思います。

タグ

Mac, OS, SSH, VPS, web, Windows, アップ, ウィンドウズ, エラー, コレ, コントロール, サーバー, さくら, ターム, テラ, ドハマリ, トライ, トラブル, バージョン, パーミッション, パネル, ユーザー, リナックス, ローカル, ログイン, , , 仕様, 何度, 作業, 原因, 問題, , 変更, 感じ, , 挙動, , 昨日, 時間, , 確認, 結論, 設定, 設置, , 鍵付き, 開発者, 関係, 陽気, , 駄目,

submit(サブミット):送信させない4つの方法です🙄。#javascript #サブミットキャンセル

2022.09.07

Logging

おはようございます、台風一過が去りましたね😌。

さて、今日はsubmit(サブミット):送信させない4つの方法を記載します、方法は大きく分けて2つの方法があり、それを細分化して4つの方法になります。まず、一番目は“送信する際(form側)”にてキャンセルする方法です。この場合、addEventListener(アッドイベントリスナー)でキャンセル処理する場合とonsubmitを使用してキャンセルする方法があります。

サンプルコード例1と例3にあたるコードが上記のコードになります。

次に”ボタンをクリック”した際にサブミット(送信)処理をキャンセルする方法です、この方法でも送信を阻止する事ができます。

サンプルコード例2と例4にあたります、自分としてはフォームで処理した方が良いかなと思いますが、こちらでも送信をキャンセルする事ができます。

尚、ソースコードは下記になります。また、参考にしたサイトのリンクを貼っときます。MDNのリンクです。

    <form id="frm" method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit1</button>
    </form>
    <form method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button id="btn" type="submit" class="btn btn-primary">Submit2</button>
    </form>    
    <form method="post" action="./example/" onsubmit="return func1()" >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit3</button>
    </form>
    <form method="post" action="./example/"  >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary" onclick="return func2()" >Submit4</button>
    </form>
//例1
document.getElementById("frm").addEventListener("submit",function(event){
    event.preventDefault();
});
//例2
document.getElementById("btn").addEventListener("click",function(event){
    event.preventDefault();
    event.stopPropagation();//インターフェイスのメソッドで、キャプチャおよびバブリング段階において現在のイベントのさらなる伝播を阻止します。 
});
//例3
function func1(){
    return false;
}
//例4
function func2(){
    return false;
}

タグ

, 2, , 4, addEventListener, Form, javascript, onsubmit, submit, アッド, イベント, キャンセル, クリック, コード, こちら, サブミット, サンプル, それ, フォーム, ボタン, リスナー, , 上記, , 今日, 使用, , , 処理, 台風一過, 場合, , 方法, , 細分化, 自分, 記載, 送信, 阻止, ,

iphone14にするかAndroidスマホにするのか。

2022.07.17

Logging

お早うございます。iphone14にするかAndroidスマホにするのか凄く悩んでいます。この問題はios16がリリースされた後にも悩むかもしれません。この頃のiPhoneは魅力をあまり感じないですね。ただ、Androidに移行するのが面倒くさいというだけで、iPhoneを使用している感じが強いのです。

一番はコロナ禍になりマスクをかける機会が日本では未だに多く、顔認証の時にいちいちマスクを外してロック解除をしないといけないのが手間です。これをios16では解消してくれるらしいのですが、自分のiPhoneは対象外らしいのでソレだったら、もうこの際にAndroidのスマホに乗り換えても良いのかなとか考えています。

移行時にネックだった二段階認証も二段階認証のエクスポート機能を使えばそれほど難しい事もないらしいので、何とかなりそうな気がします。後は切替のタイミングとどの端末を購入するかなどで検討中です。高知県では5Gがまだまだ浸透していないのですが、5G機能は必要かなって思っています、後はお財布携帯機能、これだけは外せないな。

こんな機能が付いているスマホが4万円代で購入出来るみたいなので、何だかiPhoneの割高感の強いスマホに買い替えるより、とてもリーズナブルな感じはします。

そういう良い所はあると思うのですが、iPhoneを手放すのも惜しい気もする。それが今の答えなので今回のiPhone14は見送りも視野に考えていてiPhone15もそれ程、革新的なスマホではないのらAndroidに買い替えるつもりでいます。とか言いながらiPhone14にしているかもしれない…。

追伸:現段階では親に今の機種を譲渡するのはちょっと保留中です。

タグ

14, 16, 5, Android, iOS, iPhone, エクスポート, これ, コロナ, スマホ, ソレ, タイミング, ネック, マスク, リリース, ロック, , , , 使用, 問題, 対象, , 感じ, 手間, 日本, , 未だ, 検討, 機会, 機能, 段階, , , 移行, 端末, 自分, 解消, 解除, 認証, 購入, , , 顔認証, 高知県, 魅力,

WPでWeb サーバーにアクセスする必要がありますの対処編:インフラ周り。

2022.07.03

Logging

おはようございます。WP(ワードプレス)でテーマや更新の際にFTPやSFTPのパスワードを求められたときの対処を記載します。この問題はApacheサーバーでもエンジンエックス(Nginx)でも対応は同じです。巷ではApacheグループに任意のユーザー名を付与しなさいという記載がありますが、其れだけでは駄目な場合があるのです。

gpasswd -a [ユーザー名] [グループに追加したいユーザー名]
gpasswd -a hoge apache

なので、phpのphp-fpm.dのディレクトリ配下にあるwww.confファイルの記載(user名とグループ名)を変更してあげる必要があります。変更後、php-fpmとhttpdを再起動してあげてください。

sudo vi /etc/php-fpm.d/www.conf
sudo systemctl restart php-fpm
sudo systemctl restart httpd

そうすれば、「Web サーバーにアクセスする必要があります」というような文言は非表示なり問題なく動作すると思います。

タグ

A`, Apache, conf, etc, FTP, gpasswd, hoge, httpd, nginx, php, php-fpm, restart, SFTP, sudo, System, systemctl, user, vI, web, wp, www, アクセス, インフラ, エックス, エンジン, グループ, サーバー, テーマ, ディレクトリ, とき, パスワード, ファイル, プレス, ユーザー, ワード, 付与, 任意, 其れだけ, 再起動, , 周り, 問題, 場合, 変更, 対処, 対応, , 必要, 更新, 記載, 追加, 配下, , 駄目,

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

そろそろPHPのバージョン引き上げしないと駄目。WPの話。

2022.06.09

Logging

おはようございます。お腹が痛くなるとそれが一週間ほど続いたりします😭。

今日のタイトルは「自分のサーバーのPHPバージョンをアップさせない駄目。WPの話」です。いつの間にかWordPressのバージョンが6になりましたよね。いまの推奨環境ではPHP7.4以上になっています。ワードプレスのロードマップがどうなっているかは知りませんが、そのうちPHP7.4は非推奨になり何れ動作しなくなることは目に見えているので、近々、PHPのバージョンアップを行いたいと思います。

その際はサーバーを停止することもあるので、表示されないという事象が起こる可能性があります。

尚、cgi-binを使用して動かすようになると思います。エンジンエックスでcgi-binを使用するのは初めてですので、長い間、サーバーが不安定な状態になるかもしれません。

タグ

6, 7.4, cgi-bin, php, WordPress, wp, アップ, いま, うち, エックス, エンジン, お腹, こと, サーバー, それ, タイトル, バージョン, プレス, マップ, ロード, ワード, , 不安定, 事象, 今日, 何れ, 使用, 停止, 初めて, 動作, 可能性, 推奨, 状態, 環境, , 自分, 表示, , , , 駄目,

WebでTwitterのスペースを聞く方法は2つぐらいある。

2022.01.22

Logging

WebでTwitterのスペースを聞く方法は2つぐらいあります。一つ目はスペースを開催しているアカウントのアイコンをクリックしスペースを聞くこと、もう一つはスペース開催しているまとめサイトからスペースを聞く方法だと思います。因みにスペースまとめサイトを一つ紹介します。

spaces.bzというスペースまとめサイトが良い感じです。このサイトはリスナー数が多い順に表示されているので有名なひとがスペースを使った際に見つけやすい仕様になっていますよ。尚、自分は朝、よく放送されている佐渡島 庸平(コルク代表)さんのスペースやお昼前頃から放送されているイケダハヤトさんのWEB3.0 の放送を聞いたりしています。二人のスペースをよく聴きますがファンではないです。

どちらも有益な情報や気づきがあるのでよく聴いているという感じですかね。

一応、二人のTwitterアカウントのリンクを貼っときますね。

佐渡島 庸平(コルク代表)さん
イケダハヤトさん

タグ

2, 3.0, BZ, spaces, Twitter, web, アイコン, アカウント, イケダハヤト, クリック, こと, コルク, サイト, スペース, どちら, ひと, ファン, まとめ, もう一つ, リスナー, リンク, 一つ, 一つ目, 二人, 仕様, 代表, 佐渡島, 庸平, 情報, 感じ, 放送, 方法, 昼前, 有名, 有益, , 紹介, 自分, 表示, 開催, , ,

アーユーハッピー?

2020.11.28

Logging

退職を機に体調不良を整えようとインドの療養施設に滞在した際、肩こり、不眠、ストレスによる湿疹など延々と続く私の訴えをウンウンと聞き取った医師が最後に尋ねた言葉。

「それで、あなたは幸せなの?」。
虚を突かれ、思わずたじろぐ。

私たちは何かを手に入れて幸せになろうとしている。モノ。お金。そして健康。でも手に入らなければ不幸なのか?例えば病人は不幸なのか?だとすれば私たちは皆、不幸にまみれて一生を終わるのだ。

だって病と死からは誰も逃れられないもの。でも本当は病人だって、モノやお金がなくたって幸せになれるはず。肝心なのは何かを手に入れることじゃない。ハッピーになること。

「ある」幸せがあるなら「ない」幸せがあったっていいじゃない。そう考えると意外なほどに心は浮き立つ。人生は自由だ。そしてどこまでも開かれている。

アーユーハッピー?

幸福論/ソー、エミコ・・・アー・ユー・ハッピー? インドの病院の医師/稲垣えみ子

昔、録画していた情熱大陸を再度見る。このネタは昔書いたかものとつぶやいた事を再構築するという意味で書いている。この情熱大陸回のラストにナレーターが読む幸福論がじぶんは好きだなと思える。たまに忘れてしまうけどこの言葉はとても良いな、人生は自由だ。人生を狭めているのはじぶんの心だと、もっと気楽に生きていけるようにしたいと。

自分は稲垣えみ子さんのこの言葉に虚(きょう)を突かれたじろぎました。特に「ない」幸せがあったっていいじゃないという言葉に?

タグ

アー, あなた, インド, エミコ, えみ子, お金, こと, ストレス, ソー, ネタ, パス, ハッピー, もの, ユー, 一生, 不幸, 不眠, 不良, 人生, 体調, 何か, 健康, 再度, 医師, 幸せ, 幸福, , 情熱大陸, 意外, , 施設, , 最後, 本当, , , 湿疹, 滞在, , 病人, 病院, 療養, , , 稲垣, 肝心, 肩こり, 自由, , 言葉, , 退職, 録画, ,

text形式に土日は変更。

2020.10.03

Logging

土日は基本テストスタイルに変更しようと思っています。なお、今まで土日はイラストを挿絵としていれておりましたが、サーバー移行の際に画像データがすべて消えてしまったことにより、この際、テキスト形式にしようと思ったので、そのようにすることにしました。なるべく短文にならないように気をつけて記事を書こうかなと思います。

本日はお休みなので『映画、浅田家』を見に行こうかどうか考えています。浅田家のお話、予告を見ると結構感動しそうな気がします。ただ、567の事を考えるとあまりリスクな事をしたくないなという気持ちもあります。映画館って完璧な密室なので・・・。たぶん空調設備も高知県の場合、完璧ではないでしょうからね。そう思うと本当に凄い観たい映画だけ観たほうが良いかなという気持ちがあります。観たい映画は結構な本数があるので…。

映画「浅田家!」予告【2020年10月2日(金)公開】

「あ?どうしよう?」
「浅田家」

タグ

567, Text, イラスト, お休み, お話, こと, サーバー, スタイル, すべて, データ, テキスト, テスト, リスク, 予告, , 土日, 基本, 場合, 変更, 完璧, 密室, 形式, 感動, 挿絵, 映画, 映画館, 本当, 本数, 本日, , 気持ち, 浅田家, 画像, 短文, 移行, 空調, 結構, 記事, 設備, , 高知県,

WPのテンプレート構成とか。

2020.09.30

Logging

まず、オリジナルテンプレートを作成したときに使ったファイル構成はこんな感じです。この中で大事なファイルはstyle.css,functions.php,index.phpです。ワードプレスの自作テンプレートを作る際にどうすれば良いのかというのは、検索するといろいろな人が書かれているので、この記事では割愛しますね。

404.php
archive.php
category.php
footer.php
functions.php
header.php
index.php
page.php
screenshot.jpg
search.php
sidebar.php
single.php
style.css

いろいろなサイトではstyle.cssのheader部分にいろいろと記述しないといけないような感じで書かれていますが、テンプレートを配布するのではない場合は数行、記述するだけで良いです。下記のような感じでテンプレート名だけ書いてあげれば良いです、そして空ファイルで上記の重要なファイル作成してあげるだけで、一応、ワードプレスのテンプレートの選択肢の中に自作テンプレートが現れます。

/*
Theme Name : 自作テンプレート名(英字)
*/

自作テンプレートには命名規則などがあるので、そちらも気をつけて命名してください。特に間違いやすいのがfunction.phpと記述してしまうことです。正しくはfunctions.phpですので間違いないようにsが無いとワードプレスのファンクションとして認識しないので注意です。

タグ

404, archive, category, css, footer, functions, header, index, jpg, page, php, screenshot, search, sidebar, single, style, wp, いろいろ, オリジナル, サイト, テンプレート, とき, ファイル, プレス, ワード, 下記, , , 作成, 割愛, 場合, 大事, 感じ, 数行, 検索, 構成, 自作, 記事, 記述, 部分, 配布, ,

NTTのCOTOHA API(コトハAPI)でWordPressの自動タグ生成プラグインを作ってみた。

2020.02.20

Logging

GUIはこんな感じになります。

jp-auto-tagというプラグインをYahoo!APIを使用し作っていましたが

何だか、バージョンが変わるらしくてその対応するのが…。
面倒くさいなぁと感じたので
コトハAPIで同じ感じのものを作ってみました。
尚、jp-auto-tagを使用している方はjp-auto-tagを停止してjp-auto-tag2をご使用ください。また圧縮ファイルを解凍しワードプレスのプラグインフォルダにフォルダごと、アップロードしプラグイン有効にしAPIの設定すると自動タグが生成可能です。

ブログ投稿時にタグが自動生成されますので、確認の際は画面を再読み込みしてご確認ください。

尚、オプションデータは残り続けますので悪しからず?

プラグインのソースコードはこんな感じになります。

<?php
/*
Plugin Name: jp-auto-tag2
Version: 0.1.10
Description: auto jp tag2
Author: taoka toshiaki
Author URI: https://zip358.com/
Plugin URI: https://zip358.com/plugin/jp-auto-tag2.zip
*/
class jp_auto_tag2
{
    public $db_option = "jp_auto_tag2";
    function frm_page2()
    {
        add_menu_page('jp-auto-tag2', 'jp-auto-tag2',  'manage_options', __FILE__, array($this, 'show_text_option_page2'), '', 8);
    }
    function show_text_option_page2()
    {
        wp_enqueue_style('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css', array(), '3.3.6');
        wp_enqueue_script('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js', array(), '3.3.6');
        $options = get_option($this->db_option);
        if (!empty($options)) {
            $Access_Token_Publish_URL = $options["Access_Token_Publish_URL"];
            $API_Base_URL = $options["API_Base_URL"];
            $Client_ID = $options["Client_ID"];
            $Client_secret = $options["Client_secret"];
            $max_keyword_num = $options["max_keyword_num"];
        }
        include_once dirname(__FILE__) . '/jp-auto-tag-tmp2.php';
    }
    function ajax_event2()
    {
        $options["max_keyword_num"] = $obj["max_keyword_num"] = (int)$_POST["max_keyword_num"]<5?5:(int)$_POST["max_keyword_num"];
        $options["Access_Token_Publish_URL"] = $obj["Access_Token_Publish_URL"] = $_POST["Access_Token_Publish_URL"];
        $options["API_Base_URL"] = $obj["API_Base_URL"] = $_POST["API_Base_URL"];
        $options["Client_ID"] = $obj["Client_ID"] = $_POST["Client_ID"];
        $options["Client_secret"] = $obj["Client_secret"] = $_POST["Client_secret"];
        update_option($this->db_option, $options);
        print json_encode($obj);
        die(0);
    }
    function api_tag2($post_id)
    {
        $cuthttp = function ($str = "") {
            if (!$str) return $str;
            return preg_replace("/https?:\/\/[a-zA-Z0-9|%|\?|_|=|-|\.|\/]*$/m", "", $str);
        };
        $post = get_post($post_id);
        $title = $post->post_title;
        $content = strip_tags($post->post_content);
        $document = $title . $cuthttp($content);
        $options = get_option($this->db_option);
        if ($options["Access_Token_Publish_URL"] && $options["Client_ID"] && $options["Client_secret"]) {
            $curl = function ($ptn, $options, $token = "", $token_type = "", $document = "") {
                switch ($ptn) {
                    case "token":
                        $data = [
                            'grantType' => 'client_credentials',
                            'clientId' => $options["Client_ID"],
                            'clientSecret' => $options["Client_secret"],
                        ];
                        $header = [
                            'Content-Type: application/json;charset=UTF-8',
                        ];
                        $url = $options["Access_Token_Publish_URL"];
                        break;
                    case "tag":
                        $data = [
                            'document' => $document,
                            'max_keyword_num'=>$options["max_keyword_num"],
                        ];
                        $header = [
                            'Authorization: ' . ucfirst($token_type) . ' ' . $token,
                            'Content-Type: application/json;charset=UTF-8',
                        ];
                        $url = rtrim($options["API_Base_URL"],"/")."/nlp/v1/keyword";
                        break;
                }
                $curl = curl_init();
                curl_setopt($curl, CURLOPT_URL, $url);
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
                curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
                curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl, CURLOPT_HEADER, true);
                $response = curl_exec($curl);
                $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
                $header = substr($response, 0, $header_size);
                $body = substr($response, $header_size);
                $res = (object)json_decode($body, true);
                curl_close($curl);
                return $res;
            };
            $res = $curl("token", $options);
            $access_token = $res->access_token;
            $token_type = $res->token_type;
            if ($options["API_Base_URL"] && $document && $access_token){
                $res = $curl("tag", $options, $access_token, $token_type, $document);
                foreach($res->result as $key=>$val){
                    $tags[] = $val["form"];
                }
                wp_set_post_tags($post_id, implode(",", array_unique($tags)), false);
            }
        }
    }
}
$jp_auto_tag2 = new jp_auto_tag2();
add_action('save_post', array($jp_auto_tag2, 'api_tag2'));
add_action('publish_post', array($jp_auto_tag2, 'api_tag2'));
add_action('admin_menu', array($jp_auto_tag2, 'frm_page2'));
add_action('wp_ajax_ajax_event2', array($jp_auto_tag2, 'ajax_event2'));

<form id="ajax-frm">
<table class="table">
    <tr>
        <td>
            プラグイン説明:jp-auto-tag2はapi.ce-cotoha.comのAPIを<br>
            使用し投稿文を解析しキーワードをタグを抽出します。<br>
        </td>
    </tr>
    <tr>
        <td>
            <a href="https://api.ce-cotoha.com/contents/index.html" target="new">https://api.ce-cotoha.com/contents/index.html</a><br>
            上記のURLよりユーザー登録を行いAPI情報をそれぞれ入力ください。全て必須項目になります。
        </td>
    </tr>
    <tr>
        <td>
            Access Token Publish URL:<br>
            <input type="text" name="Access_Token_Publish_URL" value="<?=$Access_Token_Publish_URL?>"   class="form-control">
        </td>
    </tr>
    <tr>
        <td>
            API Base URL:<br>
            <input type="text" name="API_Base_URL" value="<?=$API_Base_URL?>"   class="form-control">
        </td>
    </tr>
    <tr>
        <td>
            Client ID:<br>
            <input type="text" name="Client_ID" value="<?=$Client_ID?>"   class="form-control">
        </td>
    </tr>
    <tr>
        <td>
            Client_secret:<br>
            <input type="text" name="Client_secret" value="<?=$Client_secret?>"   class="form-control">
        </td>
    </tr>
    <tr>
        <td>
            抽出するキーワード(タグ数)5以上:<br>
            <?php
            $max_keyword_num = (int)$max_keyword_num<5?5:$max_keyword_num;
            ?>
            <input type="text" name="max_keyword_num" value="<?=$max_keyword_num?>"   class="form-control">
        </td>
    </tr>
    <tr>
        <td colspan="2"><input type="button" id="frmsubmit" value="登録する" class="form-control"></td>
    </tr>
</table>
</form>
<script>
    jQuery(function($){
        $("#frmsubmit").on("click",function(){
            var ajaxurl = '<?=admin_url( 'admin-ajax.php');?>';
            var data = $("#ajax-frm").serializeArray();
            data.push({name:"action",value:"ajax_event2"});
            $.ajax({
               type:'POST',
               url:ajaxurl,
               data:data,
               success:function(obj){
                   console.log(obj);
                   alert("更新しました");
               }
            });
        });
    })
</script>

プラグインダウンロードはこちら
https://zip358.com/plugin/jp-auto-tag2.zip

タグ

2, API, COTOHA, GUI, jp-auto-tag, lt, name, NTT, php, plugin, WordPress, Yahoo, アップロード, オプション, コード, ことば, ご確認, ソース, タグ, データ, バージョン, ファイル, フォルダ, プラグイン, プレス, ブログ, もの, ワード, 使用, 停止, 可能, 圧縮, 対応, 感じ, 投稿, , 有効, 生成, 画面, 確認, 自動, 自動生成, 解凍, 設定, ,

webpに対応しましたプラグインでカバーしました。 Safariめ!!

2020.01.25

Logging

WebP Express(ウェッピーエクスプレス)というWordPressのプラグインがあるので、そちらでコンバート(変換)すれば良いのですが、大量に画像があるサイトはそれで変換できないので下記の対応方法で対応をお願いします。

1. WebP Express使用してコンバートする際に webpが生成されます。webpの生成場所を確認する。現在は下記の配下にwebp画像が作られています。

/wp-content/webp-express/webp-images/doc-root/wp-content/uploads

2.1の配下にwebpの画像を生成するために下記のコマンドを実行します。自分の場合、アップロードしている画像をリスト化して一括処理するプログラミングを実行しました。尚、cwebpがインストールされていない場合、インストールする必要があります。さくらレンタルサーバーには入っているみたいです。

cwebp -q 90 元画像名(階層を含む).png -o 変換後のファイル名.webp (変換先の階層を含む)

こうすることで画像は全てwebpに変換することが可能ですが、これだけでは表示が切り替わらないので下記の画像を参照しプラグインの設定を変更してください。

ちなみにこのwebp(ウェッピー)はグーグルさんが開発したものらしいです、大体のブラウザが、こちらの webpに対応しているのですがSafariとIEは非推奨みたいなんですよね。何れwebpに対応すると思います…思いたい。

タグ

, 2.1, cwebp, doc-root, Express, Safari, uploads, webp, webp-express, webp-images, WordPress, wp-content, アップロード, インストール, ウェッピーエクスプレス, お願い, カバー, コマンド, コンバート, サーバー, サイト, さくら, そちら, それ, ため, プラグイン, プログラミング, リスト, レンタル, 一括, 下記, 使用, 処理, 場合, 場所, 変換, 大量, 実行, 対応, 必要, 方法, 現在, 生成, 画像, 確認, 自分, 配下, ,

元NHKのあの人がYOUTUBERしてる、登坂淳一の活字三昧

2020.01.19

Logging

元NHKのあの人がYOUTUBERしてるのを発見。チェンネル名は『登坂淳一の活字三昧』です、チェンネルURLは下記になります。観てみたい方は参照してみてください。まだ動画アップ数は少ないですが 登坂淳一 ファンは必見です。

登坂淳一 さん、民法TVへ移籍する際に問題が発覚していろいろあった人です。いまフリーアナウンサーになっているのかな?人生いろいろありますね。山あり谷ありですよ・・・と見ていて思います。みんないろいろ有るなと思います。

過去に戻ることは出来ないけれど、未来は変えられると思います。ただ言うひとはいるので結構大変だと思います。 登坂淳一 さん、頑張っていますよね。たぶん自分の知るところの凄い意外なユーチューバーだと思います。

そしてすごくニッチな分野のユーチューバーだと感じました。

【読んでみた】YouTubeコミュニティガイドライン 暴力【元NHKアナウンサー 登坂淳一の活字三昧】

https://www.youtube.com/channel/UCvFV6N6DucEmRZ_fcKVNybw/featured

タグ

, com, NHK, PaquG-alw, TV, url, youtube, YOUTUBER, アップ, アナウンサー, いま, いろいろ, こと, チェン, ところ, ニッチ, ネル, のあ, ファン, フリー, みんな, ユーチューバー, 下記, , 人生, , 分野, 動画, 参照, 問題, 大変, 山あり谷あり, 必見, 意外, , 未来, 民法, 活字, 発見, 発覚, 登坂淳一, 移籍, 自分, 過去, ,

さくらレンタルサーバーでWordPressのDBバックアップを支援するPHPコード

2020.01.10

Logging

さくらレンタルサーバーでWordPressバックアップを支援するPHPコードです。

駆け出しのWEB担当者用のプログラムです、動作環境はPHP5.6以上でお願いします。バックアップする際にWARNINGが発生してしまうには対応しておりません。メールが貯まりますが大丈夫ですよ、きっと。

プログラムを読めば何を書いているのか、駆け出しのWEB担当者様もわかるとは思いますが、変更してほしいのはIDとPASS部分です?。ルートにWordPressをインストールしていない場合は $wploadfile の変更もお願いします。

ファイルをアップロードした階層に dbbackup名でフォルダを設置しそのフォルダにベーシック認証をかけておいてください。外部からダウンロードが容易に出来るので・・・。

上記の設定が完了したらファイルをアップロードし sakura-rental-wpdb-backupfullにアクセスしてください。
ログイン後、管理画面より設定を行った後、さくらレンタルサーバーのコントロールパネルよりCRONの設定を行ってください。

ダウンロードはこちらから
https://zip358.com/tool/sakura-rental-wpdb-backupfull/sakura-rental-wpdb-backupfull.zip

尚、CRON設定に関しては例を管理画面に書いていますのでそちらの参考に設定をお願いいたします、またバックアップは1週間保持します。
月曜日?日曜日まで7ファイルのMYSQL、DBのバックアップファイルが出来上がります。管理画面の曜日設定にチェックが入っていないものはバックアップ致しません。

※ソースコードは下記になります。
※2020年12月、修正しました。ソースコードは下記になります。
※wp-load.phpの階層を自身の階層に変更してください。

<!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.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/all.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<title>さくらレンタルサーバーでWordPressのDBバックアップを支援するPHPコード</title>
</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col table-responsive">
					<table class="table" id="tbl">
					</table>
			</div>
		</div>
	</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.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.5.2/js/bootstrap.min.js"></script>
<script src="./assets/js/common.js?<?=time()?>"></script>
</body>
</html>
window.onload = function () {
	$.ajax({
		type: "POST",
		dataType: "json",
		url: "./lib/view.php",
		data: "data",
		success: function (response) {
			if (response.password.ok === "ok") {
				view();
			} else {
				passwordview();
			}
		}
	});
};


function view() {
	let str = "";
	fetch("./schedule.dat").then(response => response.text()).then(data => {
		let weekval = data.split(",");
		let weekname = 
			[
				{en:"Sunday",ja:"日曜日"},
				{en:"Monday",ja:"月曜日"},
				{en:"Tuesday",ja:"火曜日"},
				{en:"Wednesday",ja:"水曜日"},
				{en:"Thursday",ja:"木曜日"},
				{en:"Friday",ja:"金曜日"},
				{en:"Saturday",ja:"土曜日"}
			];
		
		if (weekval.length === 7) {
			for (var i = 0; i < 7; i++) {
				let weekvalflg = weekval[i] == 1 ? " checked " : "";
				str += `
		<tr>
		<td>${weekname[i].ja}</td>
		<td>
			<div class="form-check">
				<input id="${weekname[i].en}_chk" class="form-check-input" type="checkbox" name="" value=1 ${weekvalflg}>
				<label for="${weekname[i].en}_chk" class="form-check-label">バックアップする</label>
			</div>
		</td>
	</tr>
		`;
			}
		} else {
			for (var i = 0; i < 7; i++) {
				str += `
		<tr>
		<td>${weekname[i].ja}</td>
		<td>
			<div class="form-check">
				<input id="${weekname[i].en}_chk" class="form-check-input" type="checkbox" name="" value=1>
				<label for="${weekname[i].en}_chk" class="form-check-label">バックアップする</label>
			</div>
		</td>
	</tr>
		`;
			}

		}
		str += `
<tr>
	<td colspan="2"><button class="btn btn-primary"  id="btn" type="button">設定する</button></td>
</tr>
`;
		document.getElementById("tbl").innerHTML = str;
		document.getElementById("btn").addEventListener("click", function () {
			$.ajax({
				type: "POST",
				url: "./lib/backup-setting.php",
				data: {
					Sunday: document.getElementById("Sunday_chk").checked?1:0,
					Monday: document.getElementById("Monday_chk").checked?1:0,
					Tuesday: document.getElementById("Tuesday_chk").checked?1:0,
					Wednesday: document.getElementById("Wednesday_chk").checked?1:0,
					Thursday: document.getElementById("Thursday_chk").checked?1:0,
					Friday: document.getElementById("Friday_chk").checked?1:0,
					Saturday: document.getElementById("Saturday_chk").checked?1:0
				},
				dataType: "json",
				success: function (response) {
					if (response.ok == "ok") {
						alert("設定しました");
					} else {
						alert("失敗しました");
					}
				}
			});
		});

	});
}

function passwordview() {
	document.getElementById("tbl").innerHTML = `
	<tr>
	<td>wordpress Id</td>
	<td>
		<div class="input-group">
			<input class="form-control" type="text" id="wpid" placeholder="ワードプレスのIDを入力ください" aria-label="ワードプレスのIDを入力ください" aria-describedby="wpid">
		</div>
	</td>
</tr>
<tr>
	<td>wordpress pass</td>
	<td>
		<div class="input-group">
			<input class="form-control" type="password" id="wppass" placeholder="ワードプレスのPassを入力ください" aria-label="ワードプレスのIDを入力ください" aria-describedby="wppass">
		</div>
	</td>
</tr>
<tr>
	<td colspan="2"><button class="btn btn-primary"  id="btn" type="button">ログインする</button></td>
</tr>	
	`;



	document.getElementById("btn").addEventListener("click", function () {
		$.ajax({
			type: "POST",
			dataType: "json",
			url: "./lib/pass.php",
			data: { wpid: document.getElementById("wpid").value, wppass: document.getElementById("wppass").value },
			success: function (response) {
				if (response.password.ok === "ok") {
					view();
				} else {
					alert(response.password.msg);
					passwordview();
				}
			}
		});
	});
}

タグ

5.6, db, dbbackup, ID, pass, php, sakura-rental-wpdb-backupf, WARNING, web, WordPress, wploadfile, アップロード, インストール, お願い, コード, サーバー, さくら, ダウンロード, バックアップ, ファイル, フォルダ, プログラム, ベーシック, メール, ルート, レンタル, 上記, , 動作, , 場合, 変更, 外部, 完了, 容易, 対応, 担当者, 支援, 環境, 発生, 設定, 設置, 認証, 部分, 階層, , 駆け出し,

WordPressのメディアライブラリについて愚痴る。

2020.01.08

Logging

過去のデータベースを引き継いでいればメディアライブラリのデータは
壊れないが、途中でXMLなどデータをインポートすると
メディアライブラリでは管理出来なくなってしまう。

これを呼び戻すには Add From Server やmedia from ftpなどのプラグインを
使用して呼び戻すしか無いようだと思っていたが、唯これをしてしまうと
いささか問題があるので使えない。
このプラグインは基本的に新規で構築する際に
画像をFTPで一先ず一括アップロードして使用する場合などに対しての
プラグインである物なのでいささか違う。

なので今回、自分で自作しようと思っていたが、、、
特に過去の画像を編集するつもりもないので辞めた。
ちなみにメディアライブラリの画像はwp_postsとwp_postmetaに
保存されている。

下記のURLを見て昔、これでトラブルになった事を思い出した。
WordPressで画像はどのようにデータベースに記録されているか

上記のようなことから、データベースの画像の欠損を復元するのは
正直なところ面倒。投稿データには大体、データは残っているのだが
メタデータが欠損していてメディアライブラリに表示されないということが
殆どだと思うが、このメタデータを復元するのは至難、なぜなら
投稿データって使っているIDとメタデータのIDのリンクを上手く結びつける
事ができないからとてもエンジニア泣かせである。

要するにメタデータIDの方が以前使っていたIDを別の要素のIDが
使っていたりして…。
これを整理しながら元に戻すのは非常に至難だと言うこと。

なので、結論を言えばちゃんとデータベースのバックアップ取りましょう?

タグ

Add, from, FTP, media', postmeta, posts, SERVER, url, WordPress, wp, xml, アップロード, インポート, これ, つもり, データ, データベース, トラブル, プラグイン, メディア, ライブラリ, 一括, 下記, , 今回, 使用, 保存, 問題, 場合, 新規, , 構築, , 画像, 管理, 編集, 自作, 自分, 記録, 途中, 過去, ,

SQLの無知さ加減。

2019.07.13

Logging

select id,namae,furigana
from passport
where id = ANY(select id from travellist where namae like "田中%");

自分のSQLに関しての無知さ加減は半端ないと思います。
メンターがいないので自分で調べないといけないのです、
こんな構文すら知らなかったのは痛い。
サブクエリの存在は前から知っていたのですが、ANYを前に
付けると、複数のHITにも対応できることを知った。
ちなみに更新作業や削除作業の際に
主キーを検索対象に入れていないと処理がもっさりします。
そう考えると一番最初に働いていたIT会社のSQLは
今思うと初歩的な構文が多かったのかもしれない。
何気ない事なのかもしれないけど
動いていた構文に追加対応とか行う際にもっとその構文を
解析すれば良かったなと思います。
やはりSQLで行ったほうが早いことって結構あります。
 

タグ

ANY, from, furigana, HIT, ID, IT, like, namae, passport, select, SQL, travellist, where, キー, クエリ, こと, サブ, はり, メンター, , , 会社, 作業, 処理, 削除, , 加減, 半端, 存在, 対応, 対象, 更新, 最初, 検索, 構文, 無知, 田中, 自分, 複数, 解析, 追加, ,

Javascript? EVENT処理の際に引数を渡す。

2019.04.26

Logging

Javascript? EVENT処理の際に引数を渡す方法。
ちなみにもっと簡略化できます。

//NG
$(function(){
    let hoge = "test";
    $("input[type='text']").on("change",(function(hoge){
        console.log(hoge);
    })(hoge));
});
//OK!
//js
function hoge(a){
    return function(){
        console.log(a +  this.value);
    };
};
document.querySelector('input[type="text"]').addEventListener("click",hoge("aaaaaaa~"),false);
//jq
$(function(){
    let hoge = function(a){
        return function(){
            console.log(a + $(this).val());
        };
    };
    $("input[type='text']").on("change",hoge("test="));
});

タグ

aaaaaaa, addEventListener, change, click, console, document, EVENT, false, fu, function, hoge, input, javascript, jq, JS, let, log, NG, OK, ON, querySelector, return, test, Text, this, type, value, 処理, 引数, 方法, 簡略, ,

年賀状CSVを作りました。SJISで保存してください。

2018.12.30

Logging

https://zip358.com/tool/nenga/
ブラウザ上で完結しています。
禁則処理などはありません、ただ純粋に入力したものが
CSV形式の文字列で出力されます。
これ何のために使えるかといえば
https://nenga.yu-bin.jp/
こちらのサイトで住所録を登録する際に使用できます。
タイトルにも描きましたがSJISの文字コードで出力をお願い致します、
また、データベースに保持などはしていないため
リロードしてしまうと全てのデータが消えてしまいます。
これを作った経緯。
自分が郵便年賀.jpで登録するのが面倒だったため作りました。

タグ

358, com, CSV, jp, nenga, SJIS, tool, yu-bin, zip, お願い, コード, こちら, これ, サイト, タイトル, ため, データ, データベース, ブラウザ, もの, リロード, 住所, , 使用, 保存, 保持, 入力, 全て, 処理, 出力, 完結, 年賀, 年賀状, 形式, 文字, 文字列, 登録, 禁則, 純粋, 経緯, 自分, 郵便, , 面倒,

このサイトは安全に接続できません。

2018.01.13

Logging


このサイトは安全に接続できません。という表示がされて開発が思うようにできない。
最初はサービス提供元の問題かなと思っていたのですがどうもそんな感じではないような気がしてきた。
サービス提供元と自分のレベルを考えた所、どう考えても自分の技術の方が劣っているはずだと・・・考えた際・・・。
おそらく自分のコードが駄目なんだろうと、ブラウザではこのような表示が出るけれど・・・プログラム実行時にはうまく動くように出来ているように作成されているのではないかと思うようになってきた。
となると・・・・。
自分のコードが駄目なんだろうと。
週明け見直してみないといけないな・・・。
追伸.英語から日本語へブログ記事を元に戻しました。
理由はボットが大量に流れ込むようになったからというのが理由です。
英語で記事を書くサイトを設けました。
https://zip358com.hatenablog.com/ [不定期掲載?]

追記:SSL(https)対応ではないと接続は安全ではありませんのような事が表示されるようにChromeが対応を行うらしいですね。
あんまり嬉しくはない機能をChromeは導入するのでしょう。WEB業界は一時的に潤うかもしれませんが・・・?
尚、業者にボッタクられないように言っとくと、SSL対応費は基本無料でも出来ますので、あとはホームページ内のリンクなどを修正費用が一度だけ発生します。そこらへんの説明無しで高額な費用が発生した場合、おそらくボッタクリな金額を請求されています。お気をつけて・・・(*´ω`*)

タグ

358, com, hatenablog, https, SSL, zip, コード, サービス, サイト, パス, ブラウザ, ブログ, プログラム, ボット, レベル, 不定期, 作成, , 問題, 大量, 安全, 実行, 対応, 感じ, , 技術, 接続, 掲載, 提供, , 日本語, 最初, , 理由, 自分, 英語, 表示, 記事, 追伸, 追記, 週明け, 開発, , 駄目,

ドメインを使用(登録)する際に住所、名前がわからないようにするには?

2014.12.12

Logging

ドメインを登録する際に住所、名前がわからないようにするには、代行サービスをしようすると良いです。例えば、お名前.comの場合、ドメインを登録する場合、代行サービスでwhoisなどのコマンドでドメインから住所など調べようとしても調べれないようにする事が可能です。
一番やっかいなのは、人の住所なまえを勝手に使用すること、これが一番やっかいな輩です。軽犯罪なのですが、通報しない限りわからないという事が多いです。なので、ドメインを登録する際はお気をつけてください。
※あと、使用期限がきれて廃止になったドメインをしようする業者などがいます。自分も数年前、使用していたドメインが誰かわからない人に、使用されていて迷惑な状態になっています。なので使用しなくなったドメインもなるべく契約を継続することをオススメします。
※ちなみに自分は今、このサーバしか使用していません。

タグ

, whois, お名前, お気, コマンド, サーバ, ドメイン, 代行サービス, 住所なまえ, 使用期限, 契約, 廃止, 数年前, 業者, 状態, 登録, 軽犯罪, , 限り, ,