毎日記事5本書いてた男に然りと思うこと。

2020.01.18

Logging

毎日記事5本書いてた男に然りと思うこと。いろいろなブロガーがいますが彼らは最低でも毎日1本、多いひとになると5本の記事を掲載するそうです。
高知県に移住してきたあのアンチが多いと言われるイケダハヤトさんも昔は毎日5本のブログ記事を書いていたときがあったそうです。今ではYOUTUBERを本業にしていますが。

毎日1本の記事は大体の人は書けると思いますが、毎日5本の記事をアップするのは大変です。それは自分で手を動かしてやってみないとわからない事です。質の良い記事を毎回、長文で5記事書けますか?と言われると自分は「難しいですね」と答える。ちなみに自分は毎日大体、2本の記事をアップすることを心掛けて記事を掲載しています。

毎日、5本の記事をアップしてもブログを立ち上げたばかりだと、アクセス数は無いに等しいそれを1年ほど書き続けてやっと光が見えてくる人もいるぐらいのレベルだと思います。ある意味、イケダハヤトさんやプロブロガーはストイックな人だなと感じます。なにせ成功するとか安定するとかいう保証はないのだから、企業するとかフリーランスよりもブロガーはストイックなものだったと思います。

ちなみに今はブロガーだけではなかなか生計を立てるのが難しいので大体の人はNoteなどをやっている人が多い。そんな中、ブロガーだけで生計を立てるひともいる。なのでどういうジャンルのブログをやっているかで収益は全然違うような気がする。
唯、言えることは毎日記事をアップすること辞めない事がアクセスUPや収益に繋がることは間違いない。

タグ

, 2, 5, YOUTUBER, アクセス, アップ, イケダハヤト, いろいろ, こと, ストイック, それ, とき, ひと, プロ, ブロガー, ブログ, レベル, , , , , 大体, 大変, 彼ら, 意味, , 掲載, , 最低, 本業, 毎回, 毎日, 然り, , 移住, 自分, 記事, , 長文, 高知県,

本日発売[20/1/16]のドラゴンボールZKAKAROTが凄い仕上がり!

2020.01.16

Logging

何だこれはすごい完成度の高いゲームだよ。
ドラゴンボールZの世界をそのままゲームに生き写したゲームだと感じました。初代プレイステーションではこれは出来なかっただろう。プレイステーション4だから可能になった領域な気がします。

そしてドラゴンボール世代の皆さんは、心が揺さぶられるような何だか懐かしい気持ちになるゲームだと思います。子供のが遊んでいるのを取り上げて大人が遊んでいそうな気がします。

『ドラゴンボールZ KAKAROT』 PV

自分も安定した収入が出来たらドラゴンボールZKAKAROT(カカロット)をポチる可能性は高いと思います。ただ積みゲーにならないようにしないと行けない。自分の場合、序盤だけプレイして放置した作品が山程あります。大人になると学生時代よりも時間がないですね(・(ェ)・)。そして仕事を辞めると収入がないのに請求があるという理不尽な社会システムの構造があるため、無駄遣いは出来ないのです。

早く再就職するか安定した収入を得ることを望んでいる今日このごろの記事でした。
最後に::ベジータ「カカロットォォォ!!」
※ベジータは孫悟空の事をカカロットと呼びます。

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

タグ

, 16, 20, 4, ZKAKAROT, カカ, ゲー, ゲーム, これ, システム, ため, ドラゴンボール, プレイ, プレイステーション, ぽち, ロット, 世代, 世界, 仕事, 作品, 初代, 収入, 可能, 可能性, 場合, 大人, 子供, 学生, 安定, 完成, 就職, 序盤, , 放置, 時代, 時間, 本日, 構造, , 気持ち, 無駄遣い, 理不尽, 生き写, 発売, 皆さん, 社会, 自分, 請求, 領域,

YAGNI(ヤグニ)の法則、余計な機能を付けるな!

2020.01.14

Logging

YAGNI(ヤグニ)の法則とはYou Aren’t Going to Need it.の略で
日本語に訳すと「余計な機能を付けるな!」という意味になります。

IT関係者なら聞いたことがあるかもしれない、プログラミングで後々使うかもしれないから、この機能も眠らして置こうと思って置いているコードは1割ぐらい確率でしか使わないから余計なプログラミングコードは書かない方が良いよと言うことであってますかね🤔。

詳しい内容はウィキペディアに書かれていますので参照ください。
https://ja.wikipedia.org/wiki/YAGNI

タグ

, Aren't, Going, IT, Need, To, YAGNI, You, ウィキペディア, コード, こと, プログラミング, ヤグニ, 余計, 内容, 参照, 後々, 意味, , 日本語, 機能, 法則, , 確率, 関係者,

時間はあるのに時間の無駄遣いをするのは愚者。

2020.01.09

Logging

時間はあるのに時間の無駄遣いをするのは愚者だと痛感した。
自分はいま無職です、毎日の日課としてウォーキングはしている、
あと仕事探しもしているが、空いた時間があるのにここ一ヶ月特に何を
することもなく、日々が経過していき収益がないので
出費だけが続いている。

この空いた時間を有益に使わない事ができないともったいない。
そう思ったので時間を割り振ることにした。

朝はウォーキングをし職安で仕事探しの他、積本になった本を
この期間に読んでいくことと、2日に一冊のペースで読んでいくことに
した。またブログ更新、1日2本アップする事にする。

またSNS(ソーシャルネットワーク)を活用し情報発信なども
行う事、また何かアイディアサービスが浮かべばそれを具現化する
知識を持っているので具現化すること。

平日と休日のメリハリをつけて生活することなどを
就活が決まるまで実行していく。

尚、仕事が決まってもブログの更新はしていきます。

タグ

, 2, SNS, アイディア, アップ, いま, ウォーキング, ここ, こと, サービス, ソーシャル, それ, ネットワーク, ブログ, ベース, メリハリ, , , 仕事, , 休日, , 具現, 出費, 収益, 実行, 就活, 平日, 情報, 愚者, 日々, 日課, 時間, 更新, 有益, , 期間, , 毎日, 活用, 無職, 無駄遣い, 生活, 痛感, 発信, 知識, 積本, 経過, 職安, 自分,

2019年で面白かったかもなと思えた邦画ベスト3。

2020.01.03

Logging

空母いぶき

ベスト3は映画、「空母いぶき」
あの国から攻撃されたらこんな感じになるだろうなと想像することが
出来た映画、映画館で見たので見応えもあり良かった。
「いったれ??!!」が印象的でした?

ベスト2は映画、「半世界」

半世界

まさに自分も半世界、真っ只中なので映画を通して
いろいろと考えることがありました。そういう意味でベスト2です。
映画の内容は結構、単調なのだけどね。

ベスト1は映画、「楽園」

映画『楽園』本予告/綾野剛・杉咲花・佐藤浩市/衝撃のサスペンス大作

凄い重厚な映画です、見ていていろいろと考えさせられる所がありました。
見終わったあとに負の連鎖というのは、こういう事なんだろうなと感じました。
エンディングに流れる一縷(いちる)という曲がこの映画にマッチしています。
ちなみに一縷とはかすかなとか言う意味です。

尚、特別賞は「天気の子」

映画『天気の子』スペシャル予報

タグ

, 2, 2019, , 4, com, cTM-CusZlG, https, watch, www, youtube, あと, いちる, いぶき, いろいろ, エンディング, こと, ベスト, マッチ, 一縷, 世界, , 内容, 単調, , 天気, , 想像, 意味, 感じ, , 攻撃, 映画, 映画館, , 楽園, 特別, 真っ只中, 空母, 自分, 見応え, , 連鎖, 邦画,

登録者数1万人のYOUTUBER収益は?

2019.12.23

Logging

Bill Gates and Warren Buffett pick up a shift at Dairy Queen

登録者数1万人のYOUTUBER収益は?とググると
答えは出てきます。収益は高校卒業の初任給の手取り額より
少し低めぐらいです、なので2万人登録者数がいれば
一人で生きていけるぐらいになるらしいですね。

自分は月に20万あれば特にお金のかかる趣味も無いので
生きていけるなと思います。
アメリカかフランスか記憶が定かではないのですが
週4日勤務のお仕事が増えてきています。

日本でもIT関連では週3日勤務などのフリーランスエンジニアの
求人などもあります。これから先、関東、関西の首都一極集中の
働き方からどこで働いても良いフルリモートの求人が
来年あたりから増えてくると思います。

ユーチューバーの話しに戻りますが
これから先、YOUTUBE生活できる人は増えてくると思います。
有名ユーチューバーにならなくてもGさんが
方針を変えない限り間違いなく生きていけます。

タグ

, 2, 20, , 4, IT, youtube, YOUTUBER, アメリカ, エンジニア, お仕事, お金, これ, どこ, フランス, フリー, プル, ユーチューバー, ランス, リモート, 一人, 一極, , , 低め, 働き方, , 初任給, 勤務, 卒業, 収益, 少し, 手取り額, , 方針, 日本, , 有名, 来年, 求人, 生活, 登録者, 自分, 記憶, 趣味, , 関東, 関西, 関連, 限り, 集中, 首都, 高校,

スターウォーズの過去作あらすじを分かりやすく説明している動画。

2019.12.22

Logging

「スター・ウォーズ」過去作のあらすじをまとめて紹介!

もっちゃんという方がスターウォーズの過去作品のあらすじを
紹介しているのだけど、知らない人が見てもとても分かりやすく説明している
と思います。

この人、東大卒なのですがあまりそれを売りにしていない所が良いですね。
映画好きなひとでどちらかと言えば、ストーリーや演出などを
観ていて感想などを述べているところが良いなと思います。

ちなみに映画レビューはどれも分かりやすいです。

YOUTUBEチャネルはこちらです。もっちゃんねる
https://www.youtube.com/channel/UCsN0m1lwpEDOcMy4SoLI8Pw

タグ

0, , 4, 8, channel-, com, lwpEDOcMy, Pw, SoLI, UCsN, youtube, あらすじ, こちら, スターウォーズ, ストーリー, それ, チャネル, ところ, どちらか, どれ, ひとで, もっちゃん, レビュー, , , 作品, 動画, 売り, 感想, , , 映画, 東大卒, 演出, 紹介, 説明, 過去,

感覚が違うよイーロン・マスク!

2019.12.21

Logging

Starship | Earth to Earth

スペースXのYOUTUBE動画を観ていたら
2017年にこんな動画があった…。

宇宙船を飛行機のように使うというもの。
いやこれは普通の人は考えないよな、、、その感覚がない。

飛行機の倍の予算で乗ることが出来ればこちらを選択する人はいるはず。
そして国から国へと移動するのが20?50分で出来てしまう・・・。

日本からアメリカへ行くのも1時間以内で行くことが
出来るようになれば、なんだか物事の考え方が変わっていくように
思います。

This is SpaceX

タグ

0, , 20, 2017, 50, com, youtube, zqE-ultsWt, アメリカ, イーロン, こちら, こと, これ, スペース, パス, マスク, もの, 予算, , , 動画, , 宇宙船, 感覚, 日本, 普通, 物事, 移動, 考え方, 選択, 飛行機,

じぶんがYOUTUBERになるためには壁があるので無理ゲーですね。

2019.12.18

Logging

じぶんがYOUTUBEになるには壁がある。

1.チャンネルの過去12か月間の総再生時間が4,000時間
2.チャンネル登録者が1,000人

これを満たさないと広告収入が入らないというシステムになっている。
2に関してはお金を払えばチャネル登録者数は買えるらしいけど
チャネルがBANされてしまっては嫌なのでやらない。

顔出しは全然OKだけど、喋るのが全然ダメなので
YOUTUBERには向かないと思っている。

喋るのは未だに小学生低学年ぐらいの表現力しかないし
なにせ滑舌悪いので、視聴するには向かないかも。

綺麗な動画をUPさせてそれで収入を得るということは
自分の場合できる可能性は高いだけど、それには編集ソフトと
高スペックのPCが必要、いまのPCのビデオボードでは
無理ゲーだと思う、ただビデオボードを入れ替えれば可能性はある。

でも、なんだかそれもしたくない。
何というかカッコいいサイトとかよりゆるい事をだらーって
している方が良い。

方向性は決めていないけどYOUTUBEもUPしていきますので
チャネル登録お願いします。

https://www.youtube.com/watch?v=2BdSJwQ4jJU

タグ

000, , 2, 4, BAN, OK, PC, UP, youtube, YOUTUBER, いま, お金, ゲー, こと, これ, サイト, システム, じぶん, スペック, ソフト, それ, ため, チャネル, チャンネル, ビデオ, ボード, 再生, 動画, 収入, 可能性, 場合, , 学年, 小学生, 広告, 必要, 時間, 未だ, 滑舌, 無理, 登録者, 綺麗, 編集, 自分, 表現力, 視聴, 過去, 顔出し,

英語を止めて中国語を勉強なさい。

2019.12.09

Logging

英語を止めて中国語を勉強しなさい

https://www.lingq.com/ja/

20ヶ国語話せるおじいさん…。
凄いな・・・日本人が聞いても理解できるから凄いな。

たぶん、日本人は完璧な英語が喋りたいから、挫折するだろうなと
感じます。伝わらないと日本人は結構な確率で挫折する。

それが一番の障壁になっているのだろうなと感じます。

ちなみに自分は英語を何度も勉強しようとして途中で止めてきた
ひとですが、聴く能力だけは映画やYOUTUBEで英語を理解していない
日本人より聞くことが多いので
その能力だけは高くなっているように思えます。

ただし、、、何を言っているかは1/4ぐらいの割合で理解できる程度です:D
自分が思うに聞く?話す?書くなのかも。

でも日本人の場合、最初に文法的なことから理解しようというするから
挫折するのかなと思います。

それとは別に下記の動画のような英単語勉強方法をすることをオススメします。

【英単語暗記法】20000語を覚えるための方法

タグ

0, , 20, 4, com, UlCz, youtube, おじいさん, おすすめ, こと, それ, , 下記, 中国語, , 何度, 割合, 勉強, 動画, 場合, 完璧, 挫折, 方法, 日本人, 映画, 最初, 理解, 確率, 程度, 結構, 能力, 自分, 英単語, 英語, , 途中, 障壁,

NHKスペシャル シリーズ 体感 首都直下地震

2019.12.07

Logging

NHKで首都直下地震のドラマ、パラレル東京がいま、無料で
NHKオンデマンドで見れるようになってます。

これ見とくと良い気がする。
解説も見とくと、もっと良いだろうけれど最低でもドラマは
見とくと30年以内に70%起きると言われる首都直下地震のときに
何か生き延びるのに役に立つかもしれないなと感じました。

ちなみにこれと同じ様に南海トラフ地震の再現ドラマも作って欲しいなと
四国に住むものとしては正直、思いました。

NHKオンデマンド | 【無料】NHKスペシャル シリーズ 体感 首都直下地震 「DAY1 あなたを襲う震度7の衝撃」 https://www.nhk-ondemand.jp/goods/G2019103773SA000/
NHKオンデマンド | 【無料】NHKスペシャル シリーズ 体感 首都直下地震 「DAY2 多発する未知の脅威」 https://www.nhk-ondemand.jp/goods/G2019103774SA000/
NHKオンデマンド | 【無料】NHKスペシャル シリーズ 体感 首都直下地震 「DAY3 命の瀬戸際 新たな危機」 https://www.nhk-ondemand.jp/goods/G2019103775SA000/
NHKオンデマンド | 【無料】NHKスペシャル シリーズ 体感 首都直下地震 「DAY4 危機を生きぬくために」 https://www.nhk-ondemand.jp/goods/G2019103776SA000/

タグ

000, , 2, 20191, 2019103773, 30, 7, 70, day, goods, jp, NHK, nhk-ondemand, NHKスペシャル, SA, あなた, いま, オンデマンド, これ, シリーズ, とき, トラフ, ドラマ, パラレル, もの, 体感, 再現, 南海, 四国, 地震, 多発, , 最低, 未知, 東京, 正直, , 無料, 直下, 脅威, 衝撃, 解説, 震度, 首都,

時間革命 1秒もムダに生きるな:著 堀江貴文

2019.12.03

Logging

時間革命 1秒もムダに生きるな:著 堀江貴文
この本の中に自意識が描き出す「世間」は、心のなかの幻であるという
言葉が書かている。
これ、まったくその通りだなと思います。
ひとは想像の中で生きている生き物だと
自分は思っていてひとの心のなかでどう思っているかなど
今の所、判りしれないところ。

そんな他人に気を使う必要はあまりないのではないかと思っている。
特に失礼な言葉を投げかけてくる人にまで
過度な気遣いは必要なく最低限の気遣いで良いのではないかと
思っている。

堀江貴文氏は一貫している電話をかけない、でないという事。
その理由は他人の時間を奪う、他人から時間を奪われるのが嫌だという理由から
堀江貴文氏の一貫してそのスタイルを通しているようです。

そのことは今まで出版している堀江貴文氏の本に書かれていることが多い。

確かに仕事をしていたら電話よりログとして残る、
チャットワークなどが良いと感じる事が多い、自分が電話の嫌なことは
何かといえば、言った言わないのトラブルになる可能性があるという事だ。

タグ

, こと, これ, スタイル, チャット, ところ, なか, ひと, ムダ, ログ, ワーク, 一貫, 世間, , , , , 仕事, 他人, 出版, 堀江貴文, , , 必要, 想像, , 時間, 最低限, , , 理由, 生き物, 自分, 自意識, , 言葉, 通り, 電話, 革命,

SF好きならおすすめYOUTUBEチャンネル

2019.11.28

Logging

SF好きならおすすめYOUTUBEチャンネルDUST[ダスト]です。こちらのYOUTUBEチャンネルはSFショートムービーが数多くアップロードされています。

The Future Awaits | DUST

どれもハイクオリティの作品が多いように思えます。凄いなと言う印象を受けました。

DUSTチャンネルはこちらになります。
https://www.youtube.com/channel/UC7sDT8jZ76VLV1u__krUutA

DUSTの動画予告を貼っときますね。
興味のある方は是非、作品の視聴をどうぞ。
ちなみに2019年11月時点で登録者数145万人でかなり多いです、、、。

Sci-Fi Short Film “R'ha" | DUST

タグ

, 11, 145, 2019, 7, 76, 8, channel-, com, DUST, https, jZ, krUutA, sDT, SF, UC, VLV, www, youtube, アップロード, おすすめ, かなり, こちら, ショート, ダスト, チャンネル, どれ, ハイクオリティ, ムービー, , 予告, 作品, 動画, 印象, , , 時点, 登録者, 興味, 視聴,

googleスプレッドシートの値を取得することは可能ですが!

2019.11.24

Logging

googleスプレッドシートの値を取得することは可能ですが動的な値を取得することは不可能です。
動的処理というのはスプレッドシートの関数などで値を表示している情報をPHPなどで外部取得することは不可能です。

【Google神関数】生産性が100倍上がる!スプレッドシート4つの便利関数はこれ!

※方法があるようでしたら、教えて頂ければありがたいです。

なお、PHPからスプレッドシートの値などは変更可能です。
今回は値の取得に関しての方法を記載しております。

手順
1.グーグルさんからグーグルスプレッドシートのAPIKEYを取得する。
2. グーグルスプレッドシートを作成しスプレッドシートのID部分を取得する。
3.サーバ上にComposerをインストールし、下記のコマンドを実行する。

composer require google/apiclient:"^2.0"

下記のソースのAPIキー、スプレッドシートIDの部分を取得した値に置き換える。

<?php
require_once __DIR__ . '/vendor/autoload.php';
//$keyFile = __DIR__. "/credentials.json";
define("APIKEY","APIキー");
define("SPID","スプレッドシートID");
$spreadsheetId = SPID;
$range ="Sheet1!A1:B123";
$client = new Google_Client();
$client->setApplicationName("Spreadsheet");
$client->setDeveloperKey(APIKEY);
$scopes = [Google_Service_Sheets::SPREADSHEETS];
$client->setScopes($scopes);
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
// TODO: Change code below to process the `response` object:
echo '<pre>', var_export($response->getValues()), '</pre>', "n";

結構ハシオッタ説明になりますが、こちらでGoogleスプレッドシートの値を取得または操作が可能となります。

タグ

, 2, 2.0, , 4, 5, A`, apiclient, APIKEY, com, Composer, et, fCs, Google, https, ID, php, quot, require, watch, www, youtube, インストール, グーグル, こと, コマンド, サーバ, シート, スプレッド, ソース, 下記, 不可能, 今回, 作成, , 処理, 取得, 可能, 変更, 外部, 実行, 情報, 手順, 方法, 表示, 記載, 部分, 関数,

無職あまり響きが良くないよな。

2019.11.21

Logging

今日から無職です。
早くお仕事に就きたいです、前職を何故辞めたかについては
ブログで書くこともないかなと思います。

IT業界の人々は退社したことをブログなどで書かれていますが
本当に良い会社なら辞めずに働いていることが多いじゃないかな。
ステップアップのため辞める人も結構増えてきていますが・・・。

この一ヶ月で4社受けて、2社面接まで進みました。
1社は人工知能の会社です、こちら仕事内容が違っていたので
何となく面談でその流れになり辞退のようなものになりました。

今日、1社、面接を受けてきました、どう判断するかは未知数です。
もし不採用だったら2,3社受けてそれでも駄目だったら
今後プログラミングは趣味兼副業として行うつもりです。

正直なところ、高知県で働きたいIT会社ってあまりないのが現状、
そして高知県のIT会社は4割はブラックです。
現状を知っているので受けたくないのです・・・。

タグ

, 2, , 4, IT, アップ, お仕事, こちら, こと, ステップ, それ, ため, つもり, ところ, ブラック, ブログ, プログラミング, もの, , , 人々, 人工, 今後, 今日, 仕事, 会社, , 内容, 判断, 前職, 副業, 採用, 未知数, 本当, 業界, 正直, 無職, 現状, 知能, 趣味, 辞退, 退社, 面接, 面談, 駄目, 高知県,

働き方の考え方が変化している

2019.11.14

Logging

いままでは正社員が優遇された会社が多かった。
地方はそのような会社がまだありますが、都市では
そのような会社が減っています。

働き方改革で何が変わったのか。
1. 終身雇用ではなくなりつつある。
2.会社というシステムが必要性がなくなりつつある。

これからどうなるか(20年後までに起きそうなこと)?
1. 中小企業の減少(ホワイトカラーの企業からその動きが始まる)。
2.個人が複数の仕事を行うようなアメリカのような社会になる。

たぶん、これからIT業界は実力主義になります。
実力のない人は消えていく運命になると思います、そして
簡単な仕事は個人へ流れ、プロジェクトはプロジェクト単位で
チームが形成されプロジェクト完了ともに解散というような流れに
変わるでしょう。この基盤のようなWEBシステムサービスがありますが
最終的にはWEB上で仕事が行える環境を提供するサービスと
プロジェクトを発注するサービスは別々になると思います。

いま一番、問題なのはクラウド上で仕事が行える環境を提供してくれる
サービスが少ないということですが、今後はそのような環境を提供する会社は
増えていくと思います。


タグ

, 2, 20, IT, web, アメリカ, いま, , こと, これ, サービス, システム, チーム, プロジェクト, ホワイトカラー, , 中小企業, 主義, , 仕事, 企業, 会社, , 個人, 働き方, 優遇, 別々, 単位, 問題, 地方, 基盤, 変化, 完了, 実力, 形成, 必要性, 提供, 改革, 業界, 正社員, 減少, 環境, 発注, 社会, 簡単, 終身, 考え方, 複数, 解散, 運命, 都市, 雇用,

ワードプレス過去記事のツイートをボット化する方法。

2019.11.05

Logging

WordPress(ワードプレス)の過去記事をツイートしたいけど
結構大変ですと断られる業者は腕なしかもしれない。

簡単に作れます。Composerをインストールして
TwitterOAuthのライブラリー入れてあげて、ワードプレスのwp-load.phpと
TwitterOAuthのライブラリー を参照するような下記コードを作るだけで
ツイートが可能です。

これを自動化するにはcrontab(クロンタブ)という機能で実行できます。
ほとんどのレンタルサーバーにこの機能はついています。

うちのサーバーはWindowsサーバーなんでとかいう場合は
スケジュールでなんとかしてくださいと言えばOKです。

これを実装するのに発生する単価は1万ぐらいじゃないかと思います。
それ以上高ければ、ぼったくられています。

1万円が高いかどうか?

ちなみに普通のプログラマーはこれを構築するのに30分もかからないです。
人件費を考えるとそれぐらいが妥当だと思います。
いまクラウドワークスなどで頼めば5000円以下で対応してくれる人も
いますが、単価が下がるとそれは最終的に自分の首を絞めることに
なります。なので1万円ぐらいが妥当だと思います。

<?php
//ひとつ英語名のフォルダ作って、これいれてあげて
require_once ('../wp-load.php');
require_once ("../vendor/autoload.php");
use AbrahamTwitterOAuthTwitterOAuth;
define("CONSUMER_KEY","コンシューマーキー");
define("CONSUMER_SECRET","コンシューマーシークレット");
define("ACCESS_TOKEN","アクセストークン");
define("ACCESS_TOKEN_SECRET","アクセストークンシークレット");
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$args = array(
  'post_status' => 'publish',
	'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 = $connection->post("statuses/update", array("status" =>$title . " n" . $href . " n#黒歴史ってなんだ? #ブログ ".date('Y/m/d H:i:s')));
}

タグ

, 30, Composer, crontab, OK, php, TwitterOAuth, Windows, WordPress, wp-load, インストール, うち, , クロン, コード, これ, サーバー, スケジュール, それ, タブ, ツイート, プレス, プログラマー, ボット, ほとんど, ライブラリー, レンタル, ワード, , 下記, 人件, 単価, 参照, 可能, 場合, 大変, 実行, 実装, 方法, 普通, 業者, 構築, 機能, 発生, 簡単, , 自動, 記事, 過去,

Pythonコード:demo

2019.11.05

Logging

#!/usr/local/bin/python3
# coding:utf-8
import os
import sys
import MeCab
import gensim
import markovify
import unicodedata
model = gensim.models.KeyedVectors.load_word2vec_format('/var/www/html/model.vec', binary=False)
f = open('merosu.txt')
tagger = MeCab.Tagger("-Owakati")
tagger.parse('')
text0 = tagger.parse(f.read())
text1 = text0
text0 = text0.replace('\n','')
text0 = text0.replace('\r','')
text1x = text0.split(" ")
text2 = []
try:
    for item in text1x:
        if item.strip():
            results  = model.most_similar(positive=[item],topn=2)
            #"print(results)
            for val1 in results:
                text2.append(val1[0] + "\n")
#
    # print (text1)
    # print (" ".join(text2))
    model_a = markovify.Text(text1 + "\n")
    print(str(model_a.make_sentence()).replace(' ',''))
    model_b = markovify.Text(" ".join(text2))
    print(str(model_b.make_sentence()).replace(' ',''))
    model_combo = markovify.combine([model_a, model_b], [1, 1])
    print(str(model_combo.make_sentence()).replace(' ',''))
except Exception as e:
    print("動作エラー", e.args)
    pass

タグ

-Owakati, 'merosu, 0, , 2, , 39, 8, bin, binary, coding, demo, false, format, gensim, html, import, KeyedVectors, load, local, markovify, Mecab, model, models, open, OS, parse, Python, quot, read, replace, sys, tagger, Text, txt, unicodedata, usr, UTF-, var, Vec, Word, コード,

自分の務めてる会社の1次入社試験(過去問)

2019.10.12

Logging

自分の務めてる会社の入社試験(過去問)です。
これぐらいのことは出来てもらわないと困るという事で出題したのですが
どうもこの問題難しいのか?
ここまで漕ぎ着けて採用された人はひとりしかいない。
大手の会社にはこんなの簡単だよという人は
たくさんいると思いますが、自分の務めてる会社は
どちらかと言えば零細企業です。
こういう問題出しても中々、解けない人が多くて
採用まで至らないのが現状です。
※今は募集していません。
■問題
郵便番号入力すると検索結果を表示するようにせよ。
また下記の条件を満たしていることとする。
1.サジェスト機能がある。
2.PHP言語を使用。
3.非同期処理。
単なるこれだけでも、中々出来る人が来ない。
これが零細企業地方の現状です。
https://zip358.com/tool/postal_code_search/

タグ

, 2, , 358, Code, com, php, postal, search, tool, zip, ここ, こと, これ, これぐらい, これだけ, サジェスト, たくさん, どちらか, ひとり, また下, 中々, , , , 企業, 会社, 使用, 入力, 入社, 処理, 出題, 募集, 同期, 問題, 地方, 大手, 採用, 条件, 検索, 機能, 現状, 番号, 簡単, 結果, 自分, 表示, 言語, , 試験, 過去問, 郵便, 零細,

ちょっとした物。InstagramのAPI取得する

2019.10.05

Logging

Instagram(インスタグラム)の画像などが取得することが出来ます。アクセストークンの取得の方法がわからない場合はぐぐってください。尚、APIのバージョンが、今後上がった場合は下記のコードは使用できなくなる可能性があります。ちなみにこのコード動作確認はしておりません。このコードを理解して使用できる人のみお使いください。
尚、画像取得数はデフォルト10にしています。プログラムではアクセストークンと20を渡しています。
画像URLはコメントアウトのところに入ってきます。※プログラムを可変してお使いください。

<?php
//Instagram
//https://api.instagram.com/v1/users/self/media/recent/?access_token=&count=
class instagram_api{
    public const url ="https://api.instagram.com/v1/users/self/media/recent/?access_token=";
    public function api ($access_token= "",$img_count =10){
        $url = self::url;
        return (object)json_decode(@file_get_contents($url . $access_token."&count=".$img_count));
    }
    public function obj_img($obj=Null){
        if(!is_object($obj))return false;
        if(!$obj->data)return false;
        foreach ($obj->data as $key => $item) {
            var_dump($item);
            // $item->images->standard_resolution->url
            // $item->images->low_resolution->url
        }
        return true;
    }
}
$obj = instagram_api::api("access_token",20);
instagram_api::obj_img($obj);

タグ

, 10, 20, access, API, class, com, const, count, https, instagr, Instagram, lt, media', php, public, quot, recent, self, token, url, users, アウト, アクセス, インスタグラム, コード, こと, コメント, デフォルト, トークン, ところ, バージョン, プログラム, 下記, , 今後, 使用, 動作, 取得, 可能性, 場合, 方法, , 理解, 画像, 確認,

画像をタイル状に分離して一括ダウンロードさせるジェネレーター

2019.09.07

Logging

画像をタイル状に分離して一括ダウンロードさせるジェネレーターを
作ってみました。画像は自動的に削除されます?
あることをすれば他人の画像がアップした画像も削除されます。
ちなみに一括ダウンロードbuttonを押すと画像がサーバー上に保存され
強制ダウンロードが始まります。
動作はブラウザChromeオンリーです。
また一括ダウンロードを押すと複数のファイルを一括ダウンロードするか
どうかの問い合わせが表示されますので「はい」を
選択してください。尚、30秒以内に保存されていないファイルは
次々と削除されます。
サイトはこちらから
https://zip358.com/tool/demo5/index-14.html
ソースコードは下記になります。
ページ(base64生成+画像ダウンロード処理)

追記:zipファイルにより格納するように処理を変更しました。
参考にしたサイト:https://ex1.m-yabe.com/archives/4215

<!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">
        <script src="../jquery/jquery-3.4.1.js"></script>
        <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">
        <!-- Global site tag (gtag.js) - Google Analytics -->
        <script async src="https://www.googletagmanager.com/gtag/js?id=UA-71682075-1"></script>
        <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'UA-71682075-1');
        </script>        
        <style>
            body{
                background-color: black;
                color: antiquewhite;
            }
            img{
                margin:10!important;
                padding:10!important;
            }       
            #container{
                width: 100%;
            }
            #container img{
                margin:10px;   
            }       
        </style>    
    </head>
    <body>
        <span id="bat"></span><a id="dl"></a>
        <input class="form-control" type="file"></input>
        <div id="container"></div>
        <script>
            $(function(){
                $("[type=file]").on("change",function(){
                    $('#container').html("");
                    $("#bat").html("");
                    console.log($(this));
                    if(!$(this).prop('files')[0].type.match(/[png|jpg|jpge|gif]/)){
                        alert("ファイル形式エラー");
                        return false;
                    }                        
                    var canvas = document.createElement('canvas');
                    var reader = new FileReader();
                    reader.onload = function(event) {
                        var image = new Image();
                        image.onload = function() {
                            sprite = {width:50,height:50};
                            canvas.width = sprite.width;
                            canvas.height = sprite.height;
                            var ctx = canvas.getContext("2d");                            
                            var x = 0;
                            for(var i=0; i*sprite.height<image.height; i++){
                                for(var j=0; j*sprite.width<image.width; j++){
                                    ctx.drawImage(
                                    image,j*sprite.width,i*sprite.height,
                                    sprite.width,sprite.height,
                                    0,0,
                                    sprite.width,sprite.height
                                    );

                                    var spriteElement = new Image;
                                    spriteElement.src= canvas.toDataURL();
                                    $('#container').append(spriteElement);
                                }
                            }
                            $("#bat").html("<input type='button' value='一括ダウンロード' onclick='bat_img()'>");
                        }
                        image.src = event.target.result;                       
                    }
                    reader.readAsDataURL($(this).prop('files')[0]);
                    
                });
            });

            function bat_img(){
                var data = [];
                for(var i=0; i< $("img").length;i++){
                    data.push({"base64":$("img").eq(i).attr("src"),"no":i});
                }
                $.ajax({
                    type: 'POST',
                    url: 'bat_img.php',
                    data:{"obj":data},
                    dataType: 'json'
                }).done(function(obj){

                    if(obj[obj.length - 1 ].chk=="ok"){

                        var link = document.getElementById("dl");
                        link.href = obj[obj.length - 1].zippath;
                        link.download = "zipimg.zip";
                        link.click();

                        var data2 = [];
                        for(var i = 0 ; i < obj.length ; i++){
                            if(i==0){
                                data2.push({Path:obj.path,no:obj.no,t:obj.t,"zipimgpath":obj[obj.length - 1].zippath});
                            }else{
                                data2.push({Path:obj.path,no:obj.no,t:obj.t});
                            }
                            
                        }

                       var del = function(){
                            $.ajax({
                                type: 'POST',
                                url: './bat_del.php',
                                data:{"obj":data2},
                                dataType: 'json'
                            });
                        };
                        del();
                    }
                    });
                }
        </script>
    </body>
</html>
<?php
$i=0;
foreach($_POST["obj"] as $key=>$val){
    $b64 = base64_decode(str_replace("data:image/png;base64,","",$val["base64"]));
    $no = (int)$val["no"];
    $t = time();
    $Path = "./bat_img/tmp/$t-$no.png";
    $re = @file_put_contents($Path,$b64);
    if($re){
        $obj[$i]["chk"] = $re?"ok":"ng";
        $obj[$i]["name"] = "$t-$no.png";
        $obj[$i]["path"] = $Path;
        $obj[$i]["no"] = $no;
        $obj[$i]["t"] = $t;
        $i++;
    }
}
$obj[--$i]["zippath"] = zipfile($obj);

print json_encode($obj);


function zipfile($obj){
    $ZipFiles = function($obj){
        foreach($obj as $key=>$val){
           $path[] = $val["path"];
        }
        return $path;
    };
    $Zip_Files = $ZipFiles($obj);
    $zipFileName = time().'_zipimg.zip';

    set_time_limit(0);
    $zip = new ZipArchive();
    $zipTmpDir = './tmp/zip/';
    $result = $zip->open($zipTmpDir.$zipFileName, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
    if( $result !== true ){ //エラー処理
      echo 'error!';
      exit();
    }
    foreach ($Zip_Files as $key=>$filepath) {
      $filename=basename($filepath);
    // ZIP圧縮するファイルを追加
    // ファイルパス・ファイル名としないと圧縮ファイルを解凍するとフルパスになる
      $zip->addFile($filepath,$filename); 
    }
    //ZIP 出力
    $zip->close();

    return $zipTmpDir.$zipFileName;
}
<?php

unlink($_POST["obj"][0]["zipimgpath"]);
foreach($_POST["obj"] as $key=>$val){
    $Path = $val["Path"];
    $no = (int)$val["no"];
    $t = (int)$val["t"];
    
    $cmd = function(){
        foreach(glob("./bat_img/tmp/*") as $file_name){
            $command = "rm -rf " . realpath($file_name);
            exec($command);
        }    
    };
    
    if(pathinfo($Path)["extension"]=="png" and preg_match("/bat_img\/tmp/",$Path)){
        if(is_file($Path)){
            sleep(30);
            unlink($Path);
        }else{
            $cmd();
        }
    }else{
        $cmd();
    }

}

タグ

, 14, 30, 358, 4, 5, 64, archives, base, button, Chrome, com, demo, ex, html, https, index, m-yabe, tool, www, zip, アップ, オンリー, コード, こちら, こと, サーバー, サイト, ジェネレーター, ソース, タイル, ダウンロード, はい, ファイル, ブラウザ, ページ, 一括, 下記, 他人, 保存, 処理, 分離, 削除, 動作, 参考, 問い合わせ, 変更, 強制, 格納, 生成, 画像, 表示, 複数, 追記, 選択,

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, エンター, ブラウザ, メモ, 仕方, 割愛, 動作, 感じ, , 記入, 設定,

MYSQL8以降ウィンドウ関数対応=>ランキング。

2019.05.06

Logging

MYSQLでもランキング機能(rank())が使えるようになったとさ。日本国内のレンタルサーバーは最新の技術というより
一歩遅れた技術で運営している理由はリスクを取らないためにそうしているのだろうなとヒシヒシと感じます。

### support mysql>8.0.2 ウィンドウ関数
```sql
select id,namae, rank() over(order by code_total asc)as code_rank from code_data;
```
### code_data
|id|namae|code_total|
|---|---|---|
|1|kaonashi|15|
|2|mononoke|75|
|3|asitaka|52|
|4|san|87|
|5|theta|99|

タグ

```, ---, , 15, 2, , 4, 5, 52, 75, 8, 8.0.2, 87, 99, as, asc, asitaka, BY, Code, data, from, gt, ID, kaonashi, mononoke, MYSQL, namae, order, over, rank, san, select, SQL, support, theta, total, ウィンドウ, サーバー, ため, ランキング, リスク, レンタル, , 国内, 対応, 技術, 日本, 最新, 機能, 理由, 運営, 関数,

同一TABLEを参照しアップデートする。

2019.04.27

Logging

同一TABLEを参照しアップデートする。
これでアップデートできる事を昨日知りました。

UPDATE demo1,(select chk from demo1 where id=1) as demo2 SET
demo = "2" where id = 1 and chk = demo2.chk;
--------------
--------------
/*
同一TABLEを参照しアップデートする。
table demo1
id,chk
1,123
*/
--------------

タグ

, 2, and, as, chk, demo, from, ID, select, set, TABLE, UPDATE, where, アップデート, これ, , 参照, 同一, 昨日,

自然結合というものがある、基礎だけど知らない人もいる。

2019.04.20

Logging

自然結合というものがある、基礎だけど知らない人もいる。
結合するTABLEのフィールド名が同じでなくてはならないので
設計する人に一任されるのでほぼ使うことはないと思います?

select * from demo1 natural join demo2;
-- table demo1
-- id,pass
-- table demo2
-- id,name,tel,email
--idで自動で結合してくれる(自然結合)

 

タグ

--, , 2, demo, email, from, ID, join, name, natural, nbsp, pass, select, TABLE, tel, こと, フィールド, もの, 一任, , 基礎, 結合, 自動, 自然, 設計,