FLEXISPOTのスタンディングデスク 電動式 昇降デスク ブラック E3B

2021.01.22

Logging

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

FLEXISPOTのスタンディングデスク 電動式 昇降デスク ブラック E3を購入しました。前々から欲しかった机を購入。机の高さを上下に設定できる机です。自分の購入した商品は高さ60cmの低さにまで調整できるものです、なぜ、これを購入したか?

その理由はじぶんの身長にあります、男性としてはあまり身長の高い部類にはいらないので、これぐらいの高さまで調整できる商品を購入したわけです。ちなみに、身長が高い人、このE3ではない商品でも全然大丈夫かと思いますし、そちらの商品が1万円ほど安く購入できてしまうのですね。

リモートワークに電動スタンディングデスク FLEXISPOT を導入して3ヶ月の感想【レビュー】

注意しないといけないのは天板は別売りだということと、デスク昇降機は、かなり重いということです、組み立てるときに女性、一人では少々きついと思います。重さはおそらく50kgはあるじゃないかなと・・・。机の上に100kgの重さの荷物をおいても昇降するのだとか、そんぐらいの力があるのでやはり鉄もぶ厚いので重さも凄まじい。

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

タグ

, 100, , 50, 60, CM, FLEXISPOT, kg, かなり, こと, これ, これぐらい, じぶん, スタンディング, そちら, そん, デスク, とき, ブラック, もの, わけ, 一人, , , 上下, , 別売り, 前々, , 商品, 天板, 女性, 昇降, 昇降機, , 注意, 理由, 男性, 自分, 荷物, 設定, 調整, 購入, 身長, 部類, 電動,

VirtualBoxで共有フォルダ設定とApacheが表示されるまで。

2020.11.29

Logging

前処理としてこのコマンドを打つ。

yum -y groupinstall "Development Tools"
yum -y update kernel
yum -y install kernel-devel kernel-headers gcc gcc-c++

起動したらメニューから[デバイス]-[Guest Additions CDイメージの挿入]

mount /dev/cdrom /mnt
cd /mnt
./VBoxLinuxAdditions.run

reboot
cd /var/www/
ln -s マウント先 sf_html
gpasswd -a oreore vboxsf
gpasswd -a apache vboxsf

mount -t vboxsf -o dmode=0755,fmode=0755 (共有名) (マウント先)

reboot

Apacheのconfig設定ではリンク先はシンボルリンクを参照させとこう、これでリブートさせて完了やねん。さてこれで理解できたら、あなたは凄いです。これは単なるメモ書き記載なので、わからないと思います。

なので、参考にしたサイトのリンクを貼っときます。
http://itemy.net/?p=1355
https://www.codelab.jp/blog/?p=2587

これらでおそらく大体の人が理解できたと思います。

タグ

-o, -s, -t, -y, 0755, A`, Additions, Apache, cd, cdrom, dev, Development, dmode, fmode, gcc, gcc-c, gpasswd, groupinstall, Guest, html, install, kernel, kernel-devel, kernel-headers, ln, mnt, mount, oreore, quot, reboot, run, SF, Tools, UPDATE, var, VBoxLinuxAdditions, vboxsf, virtualBOX, www, yum, イメージ, コマンド, デバイス, フォルダ, マウント, メニュー, 共有, 前処理, 挿入, 表示, 設定, 起動,

Electronの脆弱性でアレをtrue設定はNGですよね。

2020.11.23

Logging

Electron(エレクトロン)でrequire(りくわいあ)というものを使用するとエラーになります。Electronの昔のバージョンはこれが使用できたんだって今はこれを脆弱性対策のため、OFF(false)にしている。その設定をtrueにするとOK何だけど、これは公式では認めてない不正解の書き方だとさ。

function createWindow() {
    mainWindow = new BrowserWindow({ width: 800, height: 600 , webPreferences: {
        nodeIntegration: true
	}});

じゃどうするれば良いのか?調べた結果、これが良いみたいです?。下記の書き方はちょっと面倒くさいけれども、こう書かなくては駄目だとさ。requireを使用しない場合はこんな感じで書かなくても良いです。

const path = require('path');
function createWindow() {
    mainWindow = new BrowserWindow({ width: 800, height: 600 , webPreferences: {
        nodeIntegration: false,
        contextIsolation: true,
        preload: path.join(__dirname, "preload.js")
	}});
const { contextBridge, ipcRenderer} = require("electron");
const request = require('request');//使ってないけど?


contextBridge.exposeInMainWorld(
    "hoge_hoge", {
        send: (data) => {
           consloe.log(data);
           document.getElementById("hoge").innerHtml = "Hey!! " + data;
           ipcRenderer.send("Hey!! " + data);
        },
        receive: (data) => {
                consloe.log(data);  
                //ipcRenderer.on(channel, (event, ...args) => func(...args));
        }
    }
);
<button id="btn">Hey!!</button>
<span id="hoge"></span>
<script>
	document.getElementById("btn").addEventListener("click",(e)=>{
		window.hoge_hoge.send("hogeO!!");
	});
</script>

タグ

600, 800, BrowserWindow, const, createWindow, Electron, false, function, Height, mainWindow, new, NG, nodeIntegration, off, OK, path, require, true, webPreferences, Width, アレ, エラー, エレクトロン, これ, ため, バージョン, もの, リグ, 下記, 不正解, , , 使用, 公式, 場合, 対策, 感じ, , 書き方, 結果, 脆弱性, 設定, 駄目,

サブドメインをワイルドカードで割り付ける方法:熨斗(のし)

2020.11.15

Logging

サブドメインをワイルドカードで割り付ける方法を記載します。まず初期の設定としてAレコードを下記のように設定します。ドメイン名はご自分のドメイン名に変更ください。バリューも任意に設定ください。

*.example.com 123.123.123.123

次にVirtualhostsを下記のように設定します。%1の部分がサブドメインの値が入ってきます。これで出来上がりです。因みにSSL認証はどうするれば良いのかという人にヒントを記載します。「ワイルドカードSSL認証」などとググると方法が記載されているHPに行き当たると思います。そちらを試すと容易にワイルドカードのSSLも出来ちゃうですね?

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot "/var/www/html/example.com"
  ErrorLog /var/log/httpd/example.com_error_log
  <Directory "/var/www/html/example.com">
    AllowOverride All
  </Directory>
</VirtualHost>
<VirtualHost *:80>
  ServerName example.com
  ServerAlias *.example.com
  VirtualDocumentRoot "/var/www/html/subdomain/%1"
  ErrorLog /var/log/httpd/sub.example.com_error_log
</VirtualHost>

案外簡単で拍子抜けひともいるかも知れないですが、これで何かのサービスを作ることは可能かと思いますよ。どうぞお試しあれ。

因みにexample.comというドメインは存在します、参考書や参考サイトなどで使われる「例えばサイト」は存在します。玄人志向の方はtestなどのドメイン名を使わずに上記のドメイン名を使用します。それには理由があるのです、察しがいい人は分かるかと思いますが、安全でないサイトへ飛んでしまったりする人がいるためです。あとダミー画像を生成したいのなら、Placehold.jpを使用すると良いですよ。運用しているのはソフテルという日本の会社です?

追記でSSL認証も書いときますね。Let’s Encryptでワイルドカード証明書の場合はこんな感じです。まず、certbotが入っているということが前提としてあります、無い場合はインストールしてください。まず最初に下記のコマンドを打ちます。ドメイン名は自分用に変えてください。

certbot certonly --manual \
-d *.example.com -m mail@example.com --agree-tos --manual-public-ip-logging-ok \
--preferred-challenges dns \

このような内容が表示されますので、TXTレコードの設定を行います。英語が分からなければコピペして翻訳アプリにかけてください。

_acme-challenge.example.com XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

TXTレコードが設定されたどうかの確認はMSDOSなどで下記のコマンドを打ちます。設定が完了された場合はVALUEの値が返ってきます。

nslookup -type=TXT _acme-challenge.example.com 8.8.8.8

上手く通ったあと、エンターを打ち次に進みます。上手くいくとpemが生成されましたよというメッセージが出るのでその階層をコピーします。コピーしたものを元にApacheのVirtualhostのconfigの設定を行います。こんな感じです。

<VirtualHost *:443>
  ServerName www.example.com
  DocumentRoot "/var/www/html/example.com"
  ErrorLog /var/log/httpd/example.com_error_log
  <Directory "/var/www/html/example.com">
    AllowOverride All
  </Directory>
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
  ServerName example.com
  ServerAlias *.example.com
  VirtualDocumentRoot "/var/www/html/subtaxi/%1"
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  ErrorLog /var/log/httpd/example.com_error_log
</VirtualHost>

タグ

, 123.123.123.123, 80, com, DocumentRoot, Error, example, gt, HP, html, lt, quot, servername, SSL, var, VirtualHost, Virtualhosts, www, カード, これ, ご自分, サブ, そちら, ドメイン, ドメイン名, のし, バリュー, ヒント, レコード, ワイルド, 下記, , 任意, , 初期, 変更, 容易, 方法, , 熨斗, 記載, 設定, 認証, 部分,

ヤフオクに商品を出品しました?

2020.10.27

Logging

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

上記の商品をお買い物を相殺するため、ヤフオクに未開封のグーグルホームミニを出品しました?。上位に表示させるには費用がかかるみたいなので自分はブログで宣伝させていただきます。

https://page.auctions.yahoo.co.jp/jp/auction/m444553675 [そろそろ〆]

https://page.auctions.yahoo.co.jp/jp/auction/n468400482 [あと一週間で〆]

入札が決まらなかったら売れるまで出品します。要するに絶対に相殺するつもりでいます、最低金額で落札されたら相殺することは出来ないのですけど・・・、2つの商品が最低金額で売れたら5000円です。まぁ1000円弱の金額は良しということで最低金額2500円に設定、その値段からオークションが始まります。因みに何故、未開封なのかというとG会員の特典でもらったものなのだからです。会員のひとはそれぐらい毎月、サブスクで支払っているからね、ということでユーザーの皆様、オークション頂ければ幸いです。

よろしくお願い致します。

タグ

1000, 2, 2500, 444553675, 468400482, 5000, auction, auctions, co, https, jp, page, Yahoo, オークション, お買い物, グーグル, こと, , それぐらい, ため, つもり, ひと, ブログ, ホーム, ミニ, もの, ヤフオク, , 上位, 上記, 会員, 値段, 入札, 出品, 商品, 宣伝, 最低, 毎月, 特典, 相殺, 絶対, 自分, 落札, 表示, 設定, 費用, 金額, 開封,

さくらサーバと別会社のサーバを使う場合。

2020.10.21

Logging

さくらサーバでメインドメインを使って、サブドメインを別サーバと紐付けて使用する場合は、ネームサーバで設定せずにAレコードで設定するに限る。この話はドメインをお名前.comなどのドメイン販売をメインで取り扱っている会社の話になると思います。レンタルサーバーでドメイン取得してサブドメインを別サーバで使用する場合もおなじですが、WEBの制作会社などは大体、ドメインをメインとして発売されている会社で取得して、サーバは別会社で取り扱っていることがセオリーなのかなぁ・・・。

何故ってサーバを別会社に移行する場合、サーバとドメインを同じところで取得しているとサーバ移行時に、無駄なお金が発生するからです。ドメインを移管しようものなら、高額なドメイン移管代を支払うハメになったり、サーバ移行したけどドメインはサーバのまま保持しないといけなくなったりして、新サーバ代と旧サーバ代の両方を毎月支払うハメになったりとサーバを移行するのに無駄なお金が発生するので、ドメインとサーバは別々にしていることが多いです。

話を戻して別会社のサーバを扱いたい場合はAレコードで設定してvalueにそれぞれのサーバのIP情報を入力すると良いです。さくらサーバのサーバIP情報はコントロールパネルのサーバ情報に記載されています。その情報をAレコードに入力してあげれば良いです?

タグ

com, web, お金, こと, サーバ, サーバー, さくら, サブ, セオリー, ところ, ドメイン, ネーム, はめ, まま, メイン, もの, レコード, レンタル, 両方, 会社, 何故, 使用, 保持, 別会社, 制作, 取得, 名前, 場合, 大体, 無駄, 発売, 発生, 移管, 移行, , 設定, , 販売, 高額,

ECサイトのBASEショップを独自ドメインに!

2020.09.21

Logging

ECサイトのBASEショップを独自ドメインにする方法を書いていきます。まずはお名前ドットコムでドメインを取得します。下記の動画で解説していますのでそちらを参照ください。もし動画のリンクが切れていた場合、YOUTUBEで『お名前.com ドメイン取得』などとググってみてください。ドメインの購入方法が説明されている動画があると思います。

お名前.comのドメイン取得方法【Whois情報公開代行に注意】

次にドメインが所得したあと、DNSの設定よりサブドメイン、『wwwか任意の名(shopなど)』ドメインのサーバ住所(在処)をBASEショップのサーバ住所に変更しなくてはならない為、ブルダウンメニューからCNAMEレコードを選択し『cname.thebase.in』と入力する必要があります。また左端の入力部分にはサブドメイン名を入力してください。

下記の画像を参照してください、手順を参考にしてサブドメインとCNAMEの値を設定し設定ボタンを押してください。(設定する値はwwwか任意のサブドメイン名となり、CNAMEの値はcname.thebase.inになります。)

最後にBASEサイトにログインし上記で設定したサブドメイン(wwwか任意の名(shopなど))を下記の動画を見本に申請してみてください。申請後、数時間で独自ドメインがECサイトで表示されている事が確認できると思います。

ECサイトbaseを独自ドメインに!

タグ

base, CNAME, com, DNS, EC, in, shop, thebase, www, youtube, あと, サーバ, サイト, サブ, サブド, ショップ, そちら, ダウン, ドットコム, ドメイン, ドメイン名, プル, ボタン, メニュー, リンク, レコード, 下記, 任意, 住所, , 入力, 動画, 参照, 参考, 取得, , 名前, 在処, 場合, 変更, 左端, 必要, 所得, 手順, 方法, , 画像, 解説, 設定, 説明, 購入, 選択, 部分,

テストサーバーを適当に立ち上げる。

2020.06.02

Logging

テストサーバーを適当に立ち上げる方法を録画してみました。
最初の動画はselinux 無効などはしていませんが、それをしないと誤作動というか上手く動かなくなるのでご注意を!!

https://www.youtube.com/watch?v=Rn1ozwXa_eM

ちなみにファイヤーフォールの設定などはググりながらお勉強ください。動画ではそこらへんもググりながら設定しています。あんまりサーバー系のコマンド覚えていないだよね。サーバーの考え方がなんとなく頭に入っている程度です。

ちなみにこれをローカルサーバーじゃなくてVPSでサーバーとして公開するならばWAF(わふ)とかその他、いろいろな設定をすることをオススメします。尚、さくらレンタルサーバーのブログはいいよ!?

https://www.youtube.com/watch?v=TZeRZ7a3Jds

尚、cgi-binでPHPのバージョンを分ける動画は、ちょっと見るだけでは出来ないかもしれませんが・・・ヒントを2、3書いときますね、あとコマンドも例として記載します。

まずcentOS8の最小インストールでPHP7.4系を使う場合は鬼車(おにぐるま)が入っていないので入れなければなりません。そんな具合にインストールしていないものはガンガン入れていこうぜという具合です(*´?`*)

dnf --enablerepo=PowerTools install oniguruma-devel

これを全部入れることができればPHPの違うバージョンでも何とかなりますよ。ちなみにPHP5系とかは下記のようなものを入れるのであって、同じじゃないよ。同じものも有るけれど記述が違うので注意してくださいね。過去のものはググれば結構表示されます。

./configure \
--prefix=/var/www/php-7.4.6  \
--with-config-file-path=/var/www/php-7.4.6 \
--with-config-file-scan-dir=/var/www/php-7.4.6 \
--with-zip \
--enable-gd \
--with-jpeg \
--with-xpm \
--with-zlib \
--with-gettext \
--enable-bcmath \
--enable-sockets \
--enable-opcache \
--enable-exif \
--with-curl \
--with-bz2 \
--enable-calendar \
--enable-inline-optimization \
--with-expat \
--enable-mbstring \
--enable-mbregex \
--with-freetype \
--with-openssl \
--with-mysqli \
--with-pdo-mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock

最後にcgi-binってインストールしたPHPのphp-cgiを参照しているだけです。シンボリックリンクで!!!

あとは・・・。
Apacheグールプにオリジナルのユーザーを追加してあげて!!。尚、最初の動画はrootで動かしているだけどね。基本的にrootではなくユーザー追加してそれをApacheグールプ追加するのさってヒントも書いときますね。

タグ

2, , 7.4, 8, centOS, cgi-bin, php, selinux, VPS, WAF, いろいろ, インストール, おすすめ, お勉強, こと, コマンド, これ, ご注意, サーバー, さくら, そこら, その他, それ, テスト, バージョン, ヒント, , ファイヤー, フォール, ブログ, べん, レンタル, ローカル, 使, , 公開, 動画, 方法, 最初, 最小, 無効, 程度, 考え方, 記載, 設定, 誤作動, 適当, 録画, ,

wordpressの純正機能を使う。取り扱い注意!

2020.05.17

Logging

ワードプレスには更新情報サービスという機能があります。その機能を使うと若干ですがSEO対策になります。こんな事ですが塵も積もれば山となるということわざがあるように、日々の蓄積が大切になります。

http://blog.goo.ne.jp/XMLRPC
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://ping.bloggers.jp/rpc/
http://ping.blogmura.jp/rpc/
http://ping.exblog.jp/xmlrpc
http://ping.fc2.com/
http://api.my.yahoo.com/RPC2

上記のような感じで更新情報を通知する内容を設定しています。たぶん大体のブロガーさんはこのような設定をワードプレスに設定しています、なので当たり前の作業になるかと思います。アクセス数を増やすとかいう本やサイトにもこのような記載をしている記事なども見かけます。それぐらいのレベルかと思います。

ブラックハット的な技意外は全て行っていたほうが良いと思います。なおを昔も今も変わらないですが、リンクを張ってもらえるのが一番、SEO対策に効果があると言われています。あと今でも人での目視巡回もあるらしいので、結局中身のあるコンテンツを作らないと意味はないらしいですけどね。

【WordPress(ワードプレス)の使い方講座】アフィリエイトサイトの作り方の基礎基本

今でもゼロディみたいに検索アルゴリズムの脆弱性をついてアクセス数を増やすことは可能なんだと思います。因みにいまはサイトの表示内容と表示速度が結構、検索の優位性を生むらしいです、唯これは今だけの話になりそうです。今後、10年ぐらいで消えてしまう話になりそうです。5G通信が普及し、10G通信が当たり前の世界になった時、殆どのサイトは瞬時に表示されることになるからです。最終的に評価の基準になるのはオリジナリティのある記事内容と滞在時間だと思います。

記事を認知してもらうにはリンクやSNSで発信することが大切になると思います。

※なお、記事を何回も更新するとスパム扱いになる場合がありますのでご注意くださいね(*´?`*)

タグ

https, SEO, WordPress, www, YOUT, アクセス, ことわざ, コンテンツ, サービス, サイト, それぐらい, ハット, ブラック, プレス, ブロガー, リンク, レベル, ワード, 上記, 中身, , , , 作業, 全て, 内容, 効果, , 大体, 大切, 対策, , 巡回, 当たり前, 情報, 意味, 意外, 感じ, , 日々, , 更新, , 機能, 注意, 目視, 純正, 若干, 蓄積, 記事, 記載, 設定, 通知,

AudibleよりiPhoneやipadはこれでOKです。

2020.05.08

Logging

昨日、ツイートした方法でiPhoneやipadではオーディブルと同じように本を朗読してくれる。但しキンドルアプリを閉じたりiPhoneやipadをロックにすると朗読をやめてしまいます。それが気にならなければオーディオブック=オーディブルを使用しなくとも十分、使えるのではないかなと思います。

方法はこちらを参照してください。
https://www.businessinsider.jp/post-212388

ということで、自分はオーディブルを解約してこちらの方法で積本を読む方法に変更しました。

尚、上記の方法を設定したのに上手く動作しないという方は一度、iPhoneやipadを設定した後、再起動すると良いです。自分は上手く動作しなくて=朗読しなくて一時間ほど、いろいろ試していました。何度も落ちたので、これはもしやと思って再起動すると上手く動作しました。

タグ

212388, Audible, businessinsider, https, iPad, iPhone, jp, OK, POST, www, アプリ, オー, オーディオ, キンドル, こちら, こと, これ, それ, ツイート, ディブル, ブック, ロック, , 一度, 上記, 何度, 使用, 再起動, 動作, 参照, 変更, , , 方法, 昨日, 朗読, , , 積本, 自分, 解約, 設定,

神童とIBM

2020.04.29

Logging

頭が良いと言われているひとは世界で数%しかいないと前から言っているように、それぐらいの人しかいなく他の人は凡人である。ちなみに神童と言われているひとと凡人の堺のIQの持ち主もいることも確かにいる。その割合がどのぐらいなのかは自分は知りません。

World's Youngest IBM Watson Programmer

彼(少年)はIBMで人工知能の開発をしているプログラマーだそうです、IBMでも最少年の開発者だとか・・・。ショックと感じるか凄いと思うかは人それぞれです。自分は凄いなと思いますし面白そうだと思いました。賢いひとと一緒にいると得れることはいっぱいありますよね。知ることってのはとても楽しいし理解が増すというのはとても自分は面白いと感じます。

因みに英語がわからない自分はYOUTUBEを設定を字幕にして字幕翻訳機能を使い動画を見ています。本当は字幕なしにして分からない事はその都度調べれば勉強になるのでしょうけれど・・・(´・ω・`)。

最後に神童の名前は
Tanmay Bakshi(タンメイ・バクシ)「学ぶ意志さえあれば年齢は関係ない

タグ

Bakshi, IBM, IQ, Tanmay, youtube, こと, ショック, それぐらい, それぞれ, ダン, バクシ, ひと, ひとと, プログラマー, メイ, 世界, , , 人工, , 凡人, , 割合, 勉強, 動画, 名前, , 字幕, , 少年, , 持ち主, , 最少, 最後, 本当, 機能, 理解, 知能, 神童, 翻訳, 自分, 英語, 設定, 都度, 開発, 開発者, ,

ブラウザのプッシュ通知が簡単にできちゃうFirebase

2020.03.20

Logging

ブラウザのプッシュ通知が簡単にできちゃうFirebaseのでやり方を簡略的に記載します。

  1. Firebaseにプロジェクトを作成する(グーグルのアカウントが必要)。
  2. firebase cliというパッケージソフトをOSにダウンロードしそのソフトを任意のフォルダの中に移動させて起動させる。Node.jsはインストール済みとする(※手順)。
  3. 試しにホスティングしてみる。ホスティングはプロジェクトの左側の項目よりホスティングをクリックすると手順の説明通り行うと出来ます。
  4. URLより確認し表示されているか確認する。
  5. Cloud Messagingの設定よりFCM でウェブ認証情報を設定するからメッセージング オブジェクトを取得するまでをブラウザで操作し設定を行う。
  6. ローカルに下記のURLよりファイルをダウンロードする。ダウンロードするファイルはfirebase-messaging-sw.js, firebase-logo.png, index.html, main.cssになります。動かない場合は再設定が必要。
    https://github.com/firebase/quickstart-js/tree/f76b14ca00cca48dbfca5c787c0a4ca73eb9857d/messaging
  7. ダウンロードしたファイルはpublicか自分が決めたフォルダに入れる。
  8. index.htmlソースの中に ‘<YOUR_PUBLIC_VAPID_KEY_HERE>’ と記載している部分があるので変更する。
  9. firebase cli より『 firebase deploy』する。
  10. ページを再読み込みして通知を許可する。
  11. Cloud Messagingから送信してみる。
  12. 通知が届くことを確認する。
    ※今回はブラウザのプッシュ通知なのでアプリを追加する際はWEB(</>)を選んでください。
Introducing Firebase Cloud Messaging

ではでは?健闘を祈る?

タグ

cli, Cloud, FCM, Firebase, firebase-logo, firebase-messaging-sw, index, JS, Messaging, node, OS, png, url, アカウント, インストール, ウェブ, オブジェクト, グーグル, クリック, ソフト, ダウンロード, パッケージ, ファイル, フォルダ, プッシュ, ブラウザ, プロジェクト, ホスティング, メッセージング, やり方, ローカル, 下記, , 任意, 作成, 取得, 左側, 必要, 情報, 手順, 操作, 確認, 移動, 簡単, 簡略, 表示, 記載, 設定, 認証, 説明, 起動, 通知, 項目,

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, アップロード, オプション, コード, ことば, ご確認, ソース, タグ, データ, バージョン, ファイル, フォルダ, プラグイン, プレス, ブログ, もの, ワード, 使用, 停止, 可能, 圧縮, 対応, 感じ, 投稿, , 有効, 生成, 画面, 確認, 自動, 自動生成, 解凍, 設定, ,

漫画家もYOUTUBERしている。

2020.02.12

Logging

漫画家もYOUTUBERしている。下記の動画を観てプロフェッショナルってどういう事なのかが、ヒシヒシと伝わってきます。恐らくプロとアマの違いは妥協するハードルの設定が違う。要するに技術的なところが圧倒的に違うということ。そこがプロとアマの境目なんだろうと動画を観て思いました。

そして自分の動画やブログを読み返したり見返したりする事があるのですが、甘々なアマから抜け出せないのは、そこらへんのクオリティに拘るとかそういう所なのかもしれないなと思います。有名なひとはクオリティがあまり無くても視聴者はつきます、特に芸能人とかはそんな感じですね。

自分みたいな無名な素人はクオリティが無いと再生回数やブログのプレビュー数は跳ねないなとつくづく思います。いきなりクオリティが良くなるわけではないのでやはり日々、精進していくしかないと思います。ちなみに今日からYOUTUBE動画、実の声で配信することにしました。実の声は嫌いなのですが動画を見直すと少しうるさく感じるので変えてます。あとは解説をもっと上手にしたいのですが、コレばかりは慣れかなと思います。大量に解説すれば何れ上達すると思っています。無編集の状態でUPしているのですがなんか加工した方が良いのかなと思っていますが解説動画なので悩ましい限りです。

漫画原稿1枚 下絵・ペン入れできるまで 全収録

最後に漫画家さんのYOUTUBEチャンネルのリンクを貼っときます。 https://www.youtube.com/channel/UCeySBnV71dyC-gwqapq9NwQ

タグ

youtube, YOUTUBER, アマ, クオリティ, こと, そこ, そこら, ところ, ハードル, ひと, プレビュー, プロ, ブログ, プロフェッショナル, べん, わけ, 下記, , 今日, 再生, 動画, 回数, 境目, , 妥協, 嫌い, 少し, 感じ, , 日々, 有名, 漫画家, 無名, 甘々, 精進, 素人, 自分, 芸能人, 視聴者, 設定, 違い, 配信,

認知度高めテイコウペンギン、YOUTUBEが苦笑wwww。

2020.01.21

Logging

認知度高めテイコウペンギン、YOUTUBEが苦笑してしまうぐらい面白い。
YOUTUBEをよく観ている人は知っていると思いますが、ブラック企業の面白おかしくコミカルにアニメ映像にしている作品が良い感じなので紹介しますね。

ちなみに自分の挿絵とテイコウペンギンの全然違い、かわいいペンギンさんのアニメなのですが、発言はめちゃくちゃ毒舌です。YOUTUBE登録者数は57万人ぐらいですので、観たことある人もいるかなと思います。IT系のブラック企業に勤めていた方には、『あるあるネタ』だと思います。

YOUTUBE動画はこんな感じです。?

【アニメ】世界が5分前にできたなら

動画を観るといつも同僚のパンダとペンギンくんの掛け合いが、いつも絶妙ですよね(・(ェ)・)。
本当にキャラ設定が上手いなと感じます。制作コストは低めで収益はかなり出ているユーチューバーの成功パターンだと感じます。チェンネル登録したい方はURL載せときますので下記を参照ください。

https://www.youtube.com/channel/UCUTgXNqRBqR33D5q10DfQXw/about

タグ

4, 5, 57, com, IT, K-xkbJZmO, youtube, アニメ, かなり, キャラ, コウ, コスト, こと, コミカル, ディ, ネタ, パンダ, ブラック, ペンギン, ユーチューバー, , , 企業, 低め, 作品, 制作, 動画, 収益, 同僚, 感じ, 挿絵, , 映像, 本当, 毒舌, 発言, 登録者, , 紹介, 自分, 苦笑, 設定, 認知,

R-PlayアプリでPS4用リモートプレイが外出先でも出来ちゃう神アプリ!

2020.01.21

Logging

R-PlayアプリでPS4用リモートプレイが外出先でも出来ちゃう神アプリがios用にあります。これはとても良い感じがしますがセキュリティの事が心配という方は公式アプリが外出先に対応するまで待つかプレイステーションVITAを購入してそれを使いプレイする方が良いかと思います。

iphoneでPS4のゲームをしよう!!R-playの使い方とコントローラーの設定の仕方解説!!

ちなみに外出先からプレイするためにはDMZ(非武装地帯)の設定が必要になります(厳密にはポート開放じゃないだけどね)。そしてモデム兼ルーター機能のあるものにルーターを繋いでいる場合は、ルーターをブリッジモードに変更する必要があります。変更しすると今までIPアドレスが変わるため固定IPアドレスで設定していた機器は再設定が必要になります。ネットワークに詳しい人に設定してもらう事をオススメします。

たった3分で出来るポート開放!!実践編

尚、 R-Playアプリは有料アプリで1400円します、VITAを購入するよりは安いですよね。ちなみに中古のVITAは8000円?9000円します。ちなみに自分はこの神アプリを昨日、知りました。

【VITA×PS4リモートプレイ】外出先の無線Wi-Fiでリモートプレイが遊べるのか!?

R-PLAYアプリは下記を参照ください。

※注意:外出先で2時間40分ぐらいプレイすると1G(ギガ)ほど通信量が発生するそうですよ。使い放題のパケじゃないと厳しいかも気をつけましょう。

https://apps.apple.com/jp/app/r-play-ps4%E7%94%A8%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%97%E3%83%AC%E3%82%A4/id1222889057

追記:iosでもPSの純正アプリでリモートプレイ出来るようになりました。

https://www.playstation.com/ja-jp/remote-play/

タグ

1400, 4, DMZ, iOS, IP, PS, R-Play, VITA, アドレス, アプリ, おすすめ, これ, セキュリティ, それ, ため, ネットワーク, ブリッジ, プレイ, プレイステーション, ポート, モード, モデム, もの, リモート, ルーター, 中古, , , 公式, , 固定, 地帯, 場合, 変更, 外出, 対応, 心配, 必要, 感じ, , 有料, 機器, 機能, 武装, , , 設定, 購入, 開放,

一時間に一回だけAPIを実行するPHPのオブジェクトファイル

2020.01.10

Logging

あるユーザーが公開しているプログラミングを参考にして
オブジェクト化してみた。
参考にしたサイトのリンクは下記になります。
phpでapiを切りの良い時刻までキャッシュする

尚、動作環境はPHP5.6以上になります、と言いつつ
動作テストは行っていないので、もしかしたらエラーで動かないかも?
動作内容はJSONファイルの更新時間( hour )と
サーバの 時間 ( hour ) を比べ差異があれば
APIを呼び出し結果をJSONファイルとして上書き保存します。
そのため、一時間に一回だけ更新処理が走ります。
(※CRONで設定していれば)

結果がJSONで返ってこない場合などは可変して頂いて構いません。
もともと自分の案でもないので…。

PHPファイルのダウンロードはこちらから
https://zip358.com/tool/timeKeeper/timeKeeper.zip

ソースコードはこちらになります(* ̄(エ) ̄*)

<?php
class timeKeeper{
    public static $json_filename = "abc.json";
    public static $json_api_url = "https://example.com/api/?v=1.333";
    public static function judge(){
        $server_timestamp = time();
        $server_time = date('Y/m/d H',$server_timestamp);
        $json_timestamp = filemtime(self::$json_filename);
        $json_time = date('Y/m/d H',$json_timestamp);
        return $server_time === $json_time ? true : false;
    }
    public static function api_run($opts=null){
        if(is_null($opts))return false;
        $context = stream_context_create($opts);
        $json = file_get_contents(self::$json_api_url, false, $context);
        $fp = fopen(self::$json_filename, "w");
        fwrite($fp,$json);
        fclose($fp);
        return self::json_load();
    }
    public static function json_load(){
        $json = file_get_contents(self::$json_filename);
        return json_decode($json, true);
    }
    public static function check(){
        if(file_exists(self::$json_filename)){
            return self::judge();
        }
        return false;
    }
}
///使用例
if(timeKeeper::check()){
   $json = timeKeeper::json_load();
}else{
    $opts = array(
        "http"=>array(
        "method" => "POST",
        "header" => "User-Agent: php"
        )
    );
    $json = timeKeeper::api_run($opts);
}

タグ

5.6, API, class, cron, hour, json, lt, php, public, timeKeeper, エラー, オブジェクト, キャッシュ, コード, こちら, サーバ, サイト, ソース, ダウンロード, ため, テスト, ファイル, プログラミング, ユーザー, リンク, , 上書き, 下記, 保存, 公開, 内容, 処理, 動作, 参考, 場合, 実行, 差異, 時刻, 時間, 更新, , 環境, 結果, 自分, 設定,

さくらレンタルサーバーで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, アップロード, インストール, お願い, コード, サーバー, さくら, ダウンロード, バックアップ, ファイル, フォルダ, プログラム, ベーシック, メール, ルート, レンタル, 上記, , 動作, , 場合, 変更, 外部, 完了, 容易, 対応, 担当者, 支援, 環境, 発生, 設定, 設置, 認証, 部分, 階層, , 駆け出し,

xdebugの動作仕方が分からなかったのでメモ。

2019.06.29

Logging

Xdebugを動作させます。(F5)
次にブラウザを開き動作させたいURLを記入しエンター:D

すると…

debug出来るようになります、設定等は割愛します。
ちなみにphp.iniの方はこんな感じにしてます。

zend_extension ="/xxx/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back = 1
xdebug.remote_host=IP Address

タグ

, 5, 9000, Address, autostart, back, connect, debug, enable, extension, host, ini, IP, php, port, remote, so, url, xdebug, xxx, zend, エンター, ブラウザ, メモ, 仕方, 割愛, 動作, 感じ, , 記入, 設定,

単純なコードで背景色にグラデーション。

2019.06.15

Logging

単純なコードで背景色にグラデーションつける。
このコード自体は単純なコードです、ですが・・・。
気に食わないので何度も初期の色コードを設定を変えてみたのですが
鮮やかさがでません。ちょっとドス黒いグラデーションのまま。
コードを貼り付けておきます。
一時間ぐらい色を変えて遊んでました:D

See the Pen 単純なコードで背景色にグラデーション。 by taoka (@taoka-toshiaki) on CodePen.0


 

タグ

0, 265, BY, codepen, default, embed, gt, hash, Height, href, ID, io, JQGLoO, JS, lt, Pen, result, See, slug, tab, taoka, taoka-toshiaki, The, theme, user, グラデーション, コード, ドス, まま, , 何度, 初期, 単純, 背景色, 自体, , 設定,

WordPressの全記事の中からランダムで記事をピックアップしてツイートする。

2019.02.22

Logging

WordPressの全記事の中からランダムで記事をピックアップしてツイートする。
実際、自分の階層に合わして呼び出しを変更してください。
なお、さくらレンタルサーバーでクロンの設定をして自動投稿できます。
ライブラリの設置などは割愛してます。

<?php
// cron:: cd /home/user/www/zip358.com/site/tw; /usr/local/bin/php tw.php
require_once ('../../wp-load.php');
require "vendor/autoload.php";
use AbrahamTwitterOAuthTwitterOAuth;
$consumer_key = "XXXXXXXXXXXXXX";
$consumer_secret = "XXXXXXXXXXXX";
$access_token = "XXXXXXXXXXXXXX";
$access_token_secret = "XXXXXXXXXXXXXXX";
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$args = array(
	'posts_per_page' => 1,
    'orderby' => 'rand'
);
$posts = get_posts($args);
foreach ( $posts as $val ){
    $href =  get_permalink($val->ID);
    $title = get_the_title($val->ID);
    $res = $to->post("statuses/update", array("status" => $title . " " . $href));
}

タグ

358, Abraham, access, autoload, bin, cd, com, consumer, cron, home, key, local, lt, once, php, require, secret, site, tok, tw, TwitterOAuth, use, user, usr, vendor, WordPress, wp-load, XXXXXXXXXXXX, XXXXXXXXXXXXXX, zip, クロン, サーバー, さくら, ツイート, ピックアップ, ライブラリ, ランダム, レンタル, , 割愛, 変更, 実際, 投稿, 自分, 自動, 記事, 設定, 設置, 階層,

いろいろエディタやIDEを試してみてこれが良いかなと。

2018.11.23

Logging

IDEとエディタの境目あたりで言えばATOMVisual Studio Codeですね。
IDEでPHPを使用するならばNetBeansかなと思います。
ATOMに関してはいろいろ試してみてこれだけのプラグインをインストールすれば
それなりに開発しやすいですよ。
auto-encoding
autocomplete
japanese-menu
linter-php
v-bootstrap4
これを入れてあとはPHPで開発するならばPHPのインストールも
お忘れなく。
ちなみにVisual Studio Codeの方が安定しています。
間違いなくシェアはこちらのほうが多いです。
会社でもVisual Studio Codeを使う人が多くなってきています。
サクサク動くので使用しやすいですね。
Visual Studio Codeでも上記と同じようなことがプラグインや
基本設定から可能です。
特に開発環境がUTF-8だけではない環境の方は
基本設定のここをONにしてあげると便利です。
“files.autoGuessEncoding”: true

タグ

4, 8, ATOM, auto-encoding, autocomplete, autoGuessEncoding, Code, files, IDE, japanese-menu, linter-php, NetBeans, ON, php, Studio, true, UTF-, v-bootstrap, Visual, あげる, あたり, あと, いろいろ, インストール, エディタ, , かな, ここ, こちら, こと, これ, これだけ, サクサク, , シェア, それなり, ちなみに, ない, プラグイン, やすい, 上記, , 会社, 使う, 使用, 便利, 入れ, 動く, 可能, 同じ, 基本, 境目, 多い, 多く, 安定, 忘れ, 思い, , 特に, 環境, 良い, 言え, 設定, 試し, 開発, 間違いなく, 関し,

GCPを辞めました。また合う日まで・・・。

2018.05.28

Logging


GCPを辞めました。
理由は金銭的なことです、3日で1000円ぐらい消費したので
これはやばいなと思い、昨日からサーバ移行を
朝から晩まで行っていました。
設定等はお昼過ぎにはすべて移行が整っていたのですが
ZIPファイルをダウンロードするのに半日以上費やして、
本日の朝方まで消費しました。
うちの回線が非常に遅いことが
明確にわかったので今週か来週あたりにプロバイダに
問い合わせを行うつもりです。
下りがADSL状態なんです、明らかに遅いので
問い合わせを行い改善してもらうつもりでいます。
トイウコトデ、休日の一日をサーバ移行に
費やしてしまったのは痛い。
 

タグ

1000円, ADSL状態, GCP, zipファイル, うち, ウチ, お昼過ぎ, サーバ移行, すべて移行, トイウコトデ, プロバイダ, 下り, 休日, 半日以上, 問い合わせ, 回線, 朝方, 本日, 理由, 設定, 遅いこと,

6時間ぐらいかけてサーバ移行。

2018.02.17

Logging


6時間ぐらいかけてサーバ移行が終わりました。
いままでメールガンを使用していたのだけど、それも辞めて
有料のさくらメールボックスに切り替えとかを行っていました。
さくらメールボックス、一年で1000円ぐらいのお値段なので
格安かなと思っています。そのメールボックスにはメールを貯めずに
転送用として使うことにしています。なので容量10Gだけど
全然問題ないです。
現在、VPSを使用しているのだけど、いままでメールサーバーで
悪戦苦闘していたわけですが、いろいろとメールサーバーを調べると
どうも、VPSなどから送信されるメールは殆どのプロバイダや
大手のサイトのメールサーバーはシャットアウトするのだとか、
なのでメール送信を行ってもメールは届かないみたい。
強者はVPSでなんとか出来るかもしれないけれど
自分は強者ではないのでメールサーバは外部へ
WEBサーバーとメールサーバーが同一IPではない場合
ドメインのMXレコードやTXTレコードなどの設定を行うことが必須です。
さくらメールBOXの設定はネームサーバーの設定方法しか書いていないので
ググってください。キーワードは「さくらメールBOX MXレコード」とかで
ぐぐるとヒットします。
トイウコトデ、寝たい。
ちなみに一部、変だった所とかも修正したりしましたよ。
 
 

タグ

TXTレコード, VPS, WEBサーバー, サーバ移行, さくらメールBOX MXレコード, さくらメールボックス, トイウコトデ, ドメイン, ネームサーバー, プロバイダ, メールガン, メールサーバー, メール送信, 同一IP, 外部, 大手, 強者, 有料, 設定, 転送用,

アマゾンウェブサービスってどうなの?

2018.01.17

Logging


アマゾンウェブサービスってどうなのか?
お安いのかお高いのかというのが自分が一番気になる所です。
試しに一度使ってみようかなと思ったことが
何度かありますが、どうも踏み切れないですよね。
セキュリティ対策などは結構簡単に対策を
取ることが出来るみたいなので便利だなと思う反面、
あまりにも機能が多いのでどれを使用すればよいのか、
迷います。おそらく最初はAmazon EC2を使用して
サーバ構築を行い、その後静的アドレスとドメインを結びつける事により
サーバ稼働するのだろうけれど、設定等を行うのが
正直なところ難儀だなと感じます。
サーバとの通信回線が早いので
応答速度はかなり改善するのではないかなと、
メモリは2Gぐらいが妥当かなとか・・・。
上記の設定などは自分でまぁ出来ます、SSLの設定も出来ますが
問題はお値段なんです、あまりにも月の値段が高ければ
やなんですよね。あとメールサーバーも構築しないと駄目なので
そこのところも難儀です。
ひとつのドメインではなく全てのドメインを引っ越すつもり。
これ以上、サーバ代を増やしたくないので出来れば
ひとつのサーバに集約化したいわけです。
そういう事を考えると安定して動いているXサーバで良いかなと
思ってしまうのですね。
「あぁどうしよう」orz

タグ

, Amazon EC2, Amazon Web Services, Xサーバ, アマゾンウェブサービス, サーバ, サーバ代, サーバ構築, セキュリティ対策, ドメイン, ネットワーク, ひとつ, メールサーバー, メモリ, 何度か, 応答速度, 改訂版, 設定, 通信回線,