@Blog
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。

外部VPSサーバーからさくらレンタルサーバーのDBに接続する方法。
2020.12.04
外部VPSサーバーからさくらレンタルサーバーのDB(データベース)に接続する方法は下記のコードだけでは上手く動かない。だけど、tmpファイルを生成時にパーティションにu+xの権限を与えればこのコードは要件をみたします。因みにプロセスが残ったままになるので接続が終わったら、プロセスを削除してあげてください。なのでどのプロセスを削除する機能として追加しないと使えないかな?、時間があれば完成したコードをアップします。
なお、変数の初期値はご自身で入れてください。あとポート開放やexpectが入っていない場合はyumなどでインストールする必要もあります。
<!DOCTYPE html>
<html lang="en">
<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>ssh sqli</title>
</head>
<body>
<?php
print ssh_sqli_connect();
?>
<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>
</body>
</html>
<?php
function ssh_sqli_connect()
{
global $dblink,$dbname,$sshuser, $sshhost, $sshpassword,$host,$sshport;
$ret = null;
$cmd = "#!/usr/bin/expect -f
set timeout 3
expect -c \"spawn ssh -f -N -L $sshport:$host:3306 $sshuser@$sshhost -oStrictHostKeyChecking=no
expect \\\"$sshuser@$sshhost's password:\\\"
send \\\"$sshpassword\\n\\\"
\"
";
$tmpfname = tempnam(sys_get_temp_dir(), 'ssh');
$handle = fopen($tmpfname, "w");
fwrite($handle, $cmd);
shell_exec("sh $tmpfname");
sleep(3);
$dblink = db_connect();
try{
for($id = 1 ;$id<=99;$id++){
$ret = $dblink->query("SELECT * FROM $dbname.X.xtbl where $dbname.X.xtbl.id=$id;");
if ($cnt = (int) mysqli_num_rows($ret)) {
$row = mysqli_fetch_assoc($ret);
print ($row["id"].", ".$row["name"]);
}
}
}catch(PDOException $e){
echo "失敗: " . $e->getMessage() . "\n";
}
fclose($handle);
unlink($tmpfname);
db_close();
return "未完成";
}
function db_connect()
{
global $dblink, $host, $user, $password, $dbname,$sshport;
try {
$dblink = new mysqli("127.0.0.1", "$user", $password, $dbname ,$sshport);
//$dblink->set_charset("utf8");
return $dblink;
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage() . "\n";
}
}
function db_close()
{
global $dblink;
$dblink->close();
}
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
8, charset, db, DOCTYPE, en, expect, gt, head, html, lang, lt, meta, name, quot, tmp, UTF-, vie, VPS, yum, アップ, インストール, コード, ご自身, サーバー, さくら, データベース, パーティション, ファイル, プロセス, ポート, まま, レンタル, 下記, 初期, 削除, 場合, 変数, 外部, 完成, 必要, 接続, 方法, 時間, 権限, 機能, 生成, 要件, 追加, 開放,

googleドライブ使ってる?
2020.12.01
googleドライブをパソコンにインストールするとgoogleドライブという領域が作らます。その領域を使用すれば他のパソコン間でファイルを共有することが可能です。それぞれPCでも同じパスにしてファイルを共有したい場合はシンボリックリンクを使用します。
やり方はこんな感じです。まずgoogleドライブ領域にフォルダを構えます、次に同じパスにしたい階層(googleドライブの階層ではなく)にシンボリックリンクでフォルダとリンクします。このことにより、シンボリックリンクの階層で作業したファイルなどは、おわかりの通りGoogleドライブに実際は作成されたことになるので、この方法で別のPCにもシンボリックリンクを使用して作成すれば、複数のPCでも同じファイル環境を整えることが可能です。
ちなみにシンボリックリンク作成は管理者権限でDosコマンドで下記のように打ってください。なお、MacとWindowsではコマンドは違います。Macの場合はターミナルになります。
シンボリックリンクとは何かはこちらを参照ください。?****
mklink /D 階層とシンボリックリンク名 階層とgoogleドライブのフォルダ名
ln -s 階層とgoogleドライブのフォルダ名 階層とシンボリックリンク名
WindowsとMacではコマンド名も命名規則も違う感じです・・・ややこしい?なっと。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Dos, Google, Mac, PC, Windows, インストール, おわかり, こと, コマンド, シンボリック, それぞれ, ターミナル, ドライブ, パス, パソコン, ファイル, フォルダ, やり方, リンク, 下記, 他, 作成, 作業, 使用, 共有, 別, 可能, 場合, 実際, 感じ, 方法, 権限, 環境, 管理者, 複数, 通り, 階層, 領域,

アプリ申請の壁?GoogleとApple。
2020.11.26
アプリ申請の壁?GoogleとAppleともにある、屋号がどうも必要のようです、個人事業主でもちゃんと屋号を持ってないとアプリが申請できない感じがします。住所も必要みたいだけど、それは仕方がないなと思いつつも何だか、疑問も頂くのだけど、何故、会社でもないのに個人でアプリをリリースする場合、住んでいる住所を公表しないといけないのだろうか?

こういうところをデジタル庁、改善してほしいものですね、個人情報とか…全然な感じがします。でも自分が子供だった頃は普通に住所や電話番号がわかる時代だったですけどね。オレオレ詐欺などの事件が多発してきてから個人情報保護とか言い出したじゃないかな。その頃から殆どの人が携帯電話(ガラケー)を持ち出したのですねぇ・・・・・・・。そう思うとまぁ住所はアプリに公表しても良いかなと思いつつも日本全国に公表するのは少し勇気がいりますね。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
apple, Google, アプリ, オレオレ, ガラケー, それ, デジタル, ところ, もの, リリース, 事件, 事業主, 人, 会社, 住所, 保護, 個人, 全国, 公表, 勇気, 場合, 壁, 多発, 子供, 少し, 屋号, 必要, 情報, 感じ, 携帯, 改善, 日本, 時代, 普通, 殆ど, 申請, 番号, 疑問, 自分, 詐欺, 電話, 頃,

Electronの脆弱性でアレをtrue設定はNGですよね。
2020.11.23
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>
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
600, 800, BrowserWindow, const, createWindow, Electron, false, function, Height, mainWindow, new, NG, nodeIntegration, off, OK, path, require, true, webPreferences, Width, アレ, エラー, エレクトロン, これ, ため, バージョン, もの, リグ, 下記, 不正解, 今, 何, 使用, 公式, 場合, 対策, 感じ, 昔, 書き方, 結果, 脆弱性, 設定, 駄目,

マウスの動きをトラッキング(追跡)する。
2020.11.17
サイトのマウスの動きをトラッキングして行動パターンを知りたいという案件がクラウドでありました。応募はしていませんが考え方はこのような感じだと思います。ただ楽天サイトだという制約があったのでクロスサイトへ接続可能なのかはわからないけれど…ね?。
考え方のソースコードとdemoサイトのリンクを貼っときます、因みにIPを取れるJSライブラリもあるみたいなので、それを使用すると案件の内容が完結すると思います。
尚、PHPで再度、返却していますが、実際トラッキングする場合はPHP側でJSから送ったデータを保存処理を行う処理とクライアントが開いている状態のページの画面をキャプチャする機能などが必要になるかと思われます。そういう処理をPHP側で行わないといけないので、実際はJS側ではマウスのトラッキングとクライアントがブラウザで開いた画面サイズもPHP側に送信する必要はあるかなと。そういう事をPHP側に追加すれば良いのかと・・・感じました。
Demo22:: https://zip358.com/tool/demo22/
window.onload = function(){
document.body.addEventListener("mousemove",(e)=>{
var timeInMs = Date.now();
document.querySelector("#log").innerHTML = navigator.userAgent + "<br>" + "x=" + e.offsetX + "y=" + e.offsetY;
var data = {timeInMs:timeInMs,userAgent:navigator.userAgent,x:e.offsetX,y:e.offsetY};
move_xy(data).then(function(response){
console.log(response);
});
});
};
async function move_xy(data){
return await new Promise(function(resolve) {$.ajax({
type: "POST",
dataType: "json",
url: "./move_xy.php",
data: data,
success: function (response) {
if(response.res==="ok"){
resolve(response);
}
resolve(false);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
resolve(false);
}
});});
}
<?php
$obj["timeInMs"] = $_POST["timeInMs"];
$obj["userAgent"] = $_POST["userAgent"];
$obj["x"] = $_POST["x"];
$obj["y"] = $_POST["y"];
$obj["res"] = "ok";
print json_encode($obj);
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
demo, IP, JS, php, あるかな, キャプチャ, クライアント, クラウド, クロス, コード, サイズ, サイト, ソース, それ, データ, トラッキング, パターン, ブラウザ, ページ, マウス, ライブラリ, リンク, 事, 使用, 保存, 側, 内容, 再度, 処理, 制約, 可能, 場合, 完結, 実際, 必要, 応募, 感じ, 接続, 案件, 楽天, 機能, 状態, 画面, 考え方, 行動, 返却, 追加, 追跡, 送信,

アプリ開発の収益化。
2020.11.08
じぶんが何人か欲しい。ひとりではいろいろとアレヤコレヤと出来ない。ひとりでモクモク?とひとつの製品やサービスを集中して完成させれる人は凄いなと感じます。自分の場合、収益化できなかったらどうすんだコレっていうのが頭をよぎり大きな開発は今まで個人ではしていない。どちらかと言えば小さな機能をOSSでブログに公表してその情報を公開することによりブログのアクセス数を増やして微収入が入る感じになっています。
それでこれではちょっと駄目だなと思い、アプリ開発でどのぐらい収益化ができるのか調べてみたら、広告付きで1アプリ、1000円から5000円は最低でも収益化ができることが分かってきた。稼いでいる人は100万とか稼いでいるひとも中にはいるらしいけど、そんな技量もないので自分を最低ランクとして評価した場合でも月に1000円から5000円の収入が発生するのならば作る価値はあるかなと思っている。
ただ、工数のかかるアプリを作るにはひとりでは無理とは言わないけれど、おそらく大変だろうなと感じます。なので、短時間で出来るアプリから開発しようと思っている。そしてアプリでもスマホアプリではなくデスクトップアプリから作り始めようと考えています。スマホアプリは激戦になりそうだからという理由とアプリを入れても何度か使ってポイっとされる確率が高いのだ、なので最初はデスクトップアプリにしようと思っている。
そしてWEBとも併用して開発しやすい、electronというもので開発しようと考えている。electronで開発されているアプリといえば、VisualStudio codeやSlackなどのデスクトップアプリがある。electronの良いところは、クロスプラットフォーム開発になっている所、そしてベースがHTML、CSS、JSなどの言語で開発出来る事が良い。因みにwindowsストアにもmac Storeにも出品できる。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 100, 1000, 5000, OSS, アクセス, アプリ, あるかな, アレ, いろいろ, こと, これ, コレ, サービス, じぶん, それ, どちらか, ひと, ひとつ, ひとり, ブログ, ヤコ, ランク, レヤ, 万, 中, 人, 何人か, 価値, 個人, 公表, 公開, 収入, 収益, 場合, 大, 完成, 工数, 広告, 微, 情報, 感じ, 技量, 最低, 月, 機能, 無理, 発生, 自分, 製品, 評価, 開発, 集中, 頭, 駄目,

皆が知りたいアクセス数と収入。
2020.11.05
皆が知りたいアクセス数と収入ですが、こんな感じになります。この頃、感じたことはアクセス数が多くても日の収入が少ないということはあります、逆にアクセス数が少なくても収入が多い日もあります。なので、この頃はアクセス数に気をかけていません。毎月、ブログの収入が入ってきたら本当に言うことはないだけど、自分の場合、毎月じゃなく毎年、1回ぐらい振り込まれるような感覚ですね。銀行に振り込まれるには最低収入が8000円に到達しないと振り込まれません。因みに逆算すれば月にどれぐらいの収入を得ているか分かるかと思います。

まぁでもアクセス数が増えていくことが収入が増えていく一番の近道にはかわりはないだろうけど、この頃、アクセス数は日によってまちまちです。100超えする日もあれば、日に2000人超えした日もありと・・・おそらくスパムだろうけど。日によって本当にまちまちなのです。出来れば毎日、平均してアクセス数が1万ぐらいあれば良いなと思っています。たぶん、昔のGさんのアルゴリズムだったら1000人超えはあり得たかもしれないけれど、いまのアルゴリズムだと人によって表示されるサイトや順位が変わるので、正直なところ、100超えしているだけでも、一般人としては、まぁ凄いかもしれない。だけども自分としては毎日、アクセス数が1万超えして頂けないと飯旨には到底なれないなと思っています。
リンクをシェアして拡散して頂けると有り難いです。
トイウコトデ、今後ともどうぞよろしくお願い致します。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 100, 2000, 8000, アクセス, かわり, こと, スパム, どれぐらい, ブログ, まちまち, 一, 万, 到達, 収入, 場合, 平均, 感じ, 感覚, 日, 昔, 最低, 月, 本当, 毎年, 毎日, 毎月, 気, 皆, 自分, 近道, 逆, 逆算, 銀行, 頃,

100円で買取1100円で売る。
2020.11.02
100円で買取1100円で売る。これは買取の適正価格?、ハードオフやブックオフなどの中古買取屋ではそんな感じでものを売っています。売れない商品は100円以下で買い取られたり無料で引き取る形になり、ジャンク品などで売られる場合もある。今日、ハードオフに何か売れるものはないかと見に行ってきたら電源の入らないPS3の本体が3台ほどジャンク品として売られていた。
中身を見ないとわからないけれど、PS3には欠陥があってどこかの基盤のハンダ周りが熱で溶けてしまい、電源が入らなくなる事象があるそうだ。
通称「YLOD」という故障らしい、直し方もググると書いていて技術のある人はトライしてみると良いかなと思いました。因みに電源が入らないPS3(プレイステーション3)が皮肉なことに300円で売られていた。
これらの故障を直して売れる方は300円が3000円に化けるだなと思って見ていた。3000円という値段は最低価格でメルカリだと8000円?1万円前後で売られている。こういう感じで中古屋のジャンク品を買いメンテナンスしてメルカリなどで商品を売ったりしている人も世の中にはいるだろうなと…。
ヤフオクに出品している商品は未だ買い手が現れない、気長に待ちたいと思います。※オークション形式から即決価格で売るように順次対応するつもりです。
因みに「100円で買取1100円で売る。」というタイトルは「100円のコーラを1000円で売る方法」という本のタイトルのパクリです?。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 100, 1100, 3, 300, 3000, 8000, PS, YLOD, こと, これ, これら, ジャンク, どこか, トライ, ハードオフ, パンダ, ブックオフ, プレイステーション, メルカリ, もの, 万, 中古, 中身, 事象, 人, 今日, 価格, 値段, 周り, 商品, 基盤, 場合, 形, 感じ, 技術, 故障, 方, 最低, 本体, 欠陥, 無料, 熱, 皮肉, 買取, 通称, 適正, 電源,

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

さくらサーバでメインドメインを使って、サブドメインを別サーバと紐付けて使用する場合は、ネームサーバで設定せずにAレコードで設定するに限る。この話はドメインをお名前.comなどのドメイン販売をメインで取り扱っている会社の話になると思います。レンタルサーバーでドメイン取得してサブドメインを別サーバで使用する場合もおなじですが、WEBの制作会社などは大体、ドメインをメインとして発売されている会社で取得して、サーバは別会社で取り扱っていることがセオリーなのかなぁ・・・。
何故ってサーバを別会社に移行する場合、サーバとドメインを同じところで取得しているとサーバ移行時に、無駄なお金が発生するからです。ドメインを移管しようものなら、高額なドメイン移管代を支払うハメになったり、サーバ移行したけどドメインはサーバのまま保持しないといけなくなったりして、新サーバ代と旧サーバ代の両方を毎月支払うハメになったりとサーバを移行するのに無駄なお金が発生するので、ドメインとサーバは別々にしていることが多いです。
話を戻して別会社のサーバを扱いたい場合はAレコードで設定してvalueにそれぞれのサーバのIP情報を入力すると良いです。さくらサーバのサーバIP情報はコントロールパネルのサーバ情報に記載されています。その情報をAレコードに入力してあげれば良いです?
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
com, web, お金, こと, サーバ, サーバー, さくら, サブ, セオリー, ところ, ドメイン, ネーム, はめ, まま, メイン, もの, レコード, レンタル, 両方, 会社, 何故, 使用, 保持, 別会社, 制作, 取得, 名前, 場合, 大体, 無駄, 発売, 発生, 移管, 移行, 紐, 設定, 話, 販売, 高額,
いま、思っていることはノートパソコンで良くね?
2020.10.10
ノートパソコン買って、こんな感じに使うことができればそれで十分可能かと。この頃を思っています。基本的にパソコンって複数代、購入しても使用しているパソコンって一台か二台ぐらいではないですか?
自分の場合、旧のパソコンはサーバにしていて、使用するパソコンは一台だけですが、だったらノートパソコンで良くねという感じです。もう新しいパソコンを新調したので当分はこのデスクトップのパソコンを使用するつもりでいます。
これから、パソコンを購入しようと考えている人は、断然、ハイスペックのノートパソコンをひとつ購入して、サブ画面として液晶ディスプレイを購入。上記の動画のような使用方法すれば全然、ストレス無く使用することが出来、なおかつ外出先でもパソコンを持っていけるのは本当に便利かなと思っています。
この頃の後悔はそれですね・・・。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
-YiRC-, 0, 3, 8, AM, com, https, watch, www, youtube, いま, こと, これ, サーバ, サブ, ストレス, それ, つもり, ディスプレイ, デスクトップ, ノートパソコン, ハイスペック, パソコン, ひとつ, 一, 上記, 二, 人, 使用, 便利, 動画, 可能, 場合, 外出, 当分, 後悔, 感じ, 新調, 方法, 旧, 本当, 液晶, 画面, 自分, 複数, 購入, 頃,
text形式に土日は変更。
2020.10.03
土日は基本テストスタイルに変更しようと思っています。なお、今まで土日はイラストを挿絵としていれておりましたが、サーバー移行の際に画像データがすべて消えてしまったことにより、この際、テキスト形式にしようと思ったので、そのようにすることにしました。なるべく短文にならないように気をつけて記事を書こうかなと思います。
本日はお休みなので『映画、浅田家』を見に行こうかどうか考えています。浅田家のお話、予告を見ると結構感動しそうな気がします。ただ、567の事を考えるとあまりリスクな事をしたくないなという気持ちもあります。映画館って完璧な密室なので・・・。たぶん空調設備も高知県の場合、完璧ではないでしょうからね。そう思うと本当に凄い観たい映画だけ観たほうが良いかなという気持ちがあります。観たい映画は結構な本数があるので…。
「あ?どうしよう?」
「浅田家」
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
567, Text, イラスト, お休み, お話, こと, サーバー, スタイル, すべて, データ, テキスト, テスト, リスク, 予告, 事, 土日, 基本, 場合, 変更, 完璧, 密室, 形式, 感動, 挿絵, 映画, 映画館, 本当, 本数, 本日, 気, 気持ち, 浅田家, 画像, 短文, 移行, 空調, 結構, 記事, 設備, 際, 高知県,
WPのテンプレート構成とか。
2020.09.30
まず、オリジナルテンプレートを作成したときに使ったファイル構成はこんな感じです。この中で大事なファイルは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が無いとワードプレスのファンクションとして認識しないので注意です。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
404, archive, category, css, footer, functions, header, index, jpg, page, php, screenshot, search, sidebar, single, style, wp, いろいろ, オリジナル, サイト, テンプレート, とき, ファイル, プレス, ワード, 下記, 中, 人, 作成, 割愛, 場合, 大事, 感じ, 数行, 検索, 構成, 自作, 記事, 記述, 部分, 配布, 際,

ECサイトのBASEショップを独自ドメインに!
2020.09.21
ECサイトのBASEショップを独自ドメインにする方法を書いていきます。まずはお名前ドットコムでドメインを取得します。下記の動画で解説していますのでそちらを参照ください。もし動画のリンクが切れていた場合、YOUTUBEで『お名前.com ドメイン取得』などとググってみてください。ドメインの購入方法が説明されている動画があると思います。
次にドメインが所得したあと、DNSの設定よりサブドメイン、『wwwか任意の名(shopなど)』ドメインのサーバ住所(在処)をBASEショップのサーバ住所に変更しなくてはならない為、ブルダウンメニューからCNAMEレコードを選択し『cname.thebase.in』と入力する必要があります。また左端の入力部分にはサブドメイン名を入力してください。
下記の画像を参照してください、手順を参考にしてサブドメインとCNAMEの値を設定し設定ボタンを押してください。(設定する値はwwwか任意のサブドメイン名となり、CNAMEの値はcname.thebase.inになります。)
最後にBASEサイトにログインし上記で設定したサブドメイン(wwwか任意の名(shopなど))を下記の動画を見本に申請してみてください。申請後、数時間で独自ドメインがECサイトで表示されている事が確認できると思います。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
base, CNAME, com, DNS, EC, in, shop, thebase, www, youtube, あと, サーバ, サイト, サブ, サブド, ショップ, そちら, ダウン, ドットコム, ドメイン, ドメイン名, プル, ボタン, メニュー, リンク, レコード, 下記, 任意, 住所, 値, 入力, 動画, 参照, 参考, 取得, 名, 名前, 在処, 場合, 変更, 左端, 必要, 所得, 手順, 方法, 為, 画像, 解説, 設定, 説明, 購入, 選択, 部分,
機械学習や人工知能とかいう事に興味ありで自分の教師なし学習?
2020.09.08
機械学習や人工知能とかいう事に興味ありで自分の教師がいない場合、本で勉強してもなかなか上手く頭に入らない方も多いと思います。じぶんがいろいろな参考書を購入して思ったことは、本はあとで手を動かすことが大事でわからないことはその都度、調べたり参考書をめくったりするのが大事かなと思いました。
最初に参考書を最初から最後までペラペラめくります。そして出来そうなところからやってみる。難易度が低いのは機械学習の教師ありのライブラリを使ってみる方法です。
今では本を購入しなくても良いかなと思います。動画(ユーチューブ)で機械学習などの動画を片っ端見るということで事が足りる。
じぶんがこの動画が分かりやすいと思ったのはチームラボの勉強会や筑波大学の講義などが分かりやすいかなと思いました。他にも機械学習や人工知能の講義などをアップしてたりするのでググってみて学習してみてください。
因みに殆どの人がしているのは賢い人達が作ったライブラリを使って、下記の2点のことをしています。
1.モデル生成し、そのモデルで未知なるデータを推測させてる。
2.ライブラリをチューニングしてモデルを生成したりするという事。
あくまでもイメージですが、難しいと思う前にまずは手を動かすことが大事です。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アップ, あと, いろいろ, こと, じぶん, チームラボ, ところ, ユーチューブ, ライブラリ, 事, 人, 人工, 今, 他, 勉強, 勉強会, 動画, 参考書, 場合, 大事, 学習, 手, 教師, 方, 方法, 最初, 最後, 本, 機械, 殆ど, 片っ端, 知能, 筑波大学, 自分, 興味, 講義, 購入, 都度, 難易, 頭,
ノーコードって知ってますか?
2020.08.25
ノーコードって知ってますか?ITエンジニアだったら一度は聞いたことがあるとは思いますが、ノーコードってのはプログラムを書かずにUI(ユーザーインターフェース)上でウェブサイトやアプリが制作することが可能になるというものです。これって中小企業や零細企業にはかなり痛い話です。
こういうサービスを使えば簡単にアプリやウェブサイトが作れてしまいます。それも無料で作れるのです、広告表示が気にならないなら無料で広告表示を退けたい場合は月1000円ぐらい払えば退けてくれるので本当に便利なんです。
じぶんはノーコードをお勧めします、10万円のお金を払うなら自分たちで作ったほうが良いかなと特にアプリは企業に依頼すると高額な請求になるので簡単な仕様ならばノーコードのサービスを使用して自分たちで作ることをお勧めします。
ちなみにノーコードってこんなだよって話をしている動画がユーチューブで検索するといろいろな人が解説しているので見てみてください。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
10, 1000, IT, UI, アプリ, いろいろ, インターフェース, ウェブ, エンジニア, お勧め, お金, かなり, コード, こと, これ, サービス, サイト, じぶん, それ, ノー, プログラム, もの, ユーザー, ユーチューブ, 一度, 万, 上, 中小企業, 人, 仕様, 企業, 使用, 依頼, 便利, 制作, 動画, 可能, 場合, 広告, 月, 本当, 検索, 気, 無料, 簡単, 自分, 表示, 解説, 話, 請求, 零細, 高額,
メガネかけたら
2020.08.03
メガネかけたら、『誰、お前は?』『お前は誰だ?』状態になります。
マスクをすると一段と不審者みたいな人になる。
でも、メガネをかけないと狐の目ぐらい細い瞳になっているみたいです。
視力は両目で0.7ぐらいです。メガネを掛けるとシャープに見えるようになります。片眼では0.5ぐらいです、パソコンのディスプレイとか観る場合はメガネを掛けることは無いだけど、遠くの何かを識別しないといけない仕事などにはもう付けない、アウトだ。
遠くは、いい具合にぼやけて見えてしまいます。これで今まで困ったことはないのだけどね・・・悪化すると困るだろうね。
因みにパソコンの前で寝落ちとかして、目が覚めるとたまに世界がぼやけて見えるときがあります、数十秒続いて回復するのですが、はじめてなった時はこのままぼやけた世界のままかと焦りました?
遠くを見ることと自然を見ることは本当に意味があるだって、そして、視力検査のまえに遠くを見る、近くを見るの数分間続けると視力検査の時に視力がある程度、改善された状態になります。嘘だと思って試してみてください。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
0.5, 0.7, アウト, お前, こと, これ, シャープ, たま, ディスプレイ, とき, パソコン, まえ, マスク, まま, メガネ, 不審者, 世界, 両目, 人, 仕事, 何か, 具合, 前, 回復, 場合, 悪化, 意味, 数分, 数十, 時, 本当, 検査, 片眼, 状態, 狐, 目, 瞳, 自然, 落ち, 視力, 誰, 識別, 近く, 遠く,
実はとてもとても*リピート。
2020.08.01
実はとてもとてもとても・・・・痛いの永遠ループ。
偏頭痛というものは、痛いのです。そしておいらの様にひどい人になると
仕事もできなくなるぐらい、痛いのです。
どんな痛みかと言えば、ズキズキンが頭の中で絶えず続きます、
ひどい時になるとズキズキンの痛みで吐き気がするのです、こうなると
何も手につかない。
珈琲などを飲むと偏頭痛が和らぐといいますが、かなり強い偏頭痛はそんな事では全然和らがないのです、病院に行ってお薬を貰い服用するか、その日は何もせず横になり安静にするかだと思います。
気圧の谷に偏頭痛は起こりやすいといいます、あれは確かに本当なんですが、おいらの場合は、、、、若干、遅れてくる場合が多くて正直な所、『今かよ!』という時に偏頭痛になることが多いです。
偏頭痛が治れば良いのになあ・・・とつくづく思ったので今回ネタにしました?
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
あれ, おいら, お薬, かなり, こと, ズキ, ズキン, ネタ, もの, リピート, ループ, 中, 事, 人, 今, 今回, 仕事, 何, 偏頭痛, 吐き気, 場合, 安静, 所, 手, 日, 時, 服用, 本当, 横, 正直, 気圧, 永遠, 珈琲, 病院, 若干, 谷, 頭,
お金を手に入れたワンランクアップ。
2020.07.28
クラウドでお仕事をしてお金を手に入れた。『おいらでもお金を支払ってくれる人がいるだなぁ』としみじみした。初めてのクラウドです、クラウドで申し込んでを何回か繰り返して、初めてお金をいただきました。
クラウドで働くことは非効率的な感じだけど、単価は良いよね。自分がこんぐらい時間を使って出来る仕事に対して、『これぐらいで出来ますよ』という値段を掲示し、双方の折り合いがあえば仕事が出来るシステムは『まぁいい感じ』。
これは副業という面ではとても良いかなと思いますが、本業というのでは非効率的な所があるかなと思います。なぜならブッキングしないような感じで仕事を請け負うということが結構難しい。
あの仕事もこの仕事も出来るけど…全部、一斉に依頼が来ると大変かと思います。なので例えば失業手当がもらえなくなったけど、仕事が見つからない場合などはクラウドでお仕事をする場合は悪くはないかもなと思います。
但し、ある一定の技術者じゃないと稼げないと思います。おいらみたいな感じなら何とかなると思います。自分の技術はどんなものか知らないけれど・・・。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
アップ, おいら, お仕事, お金, クラウド, こと, これ, これぐらい, こん, システム, ブッキング, ランク, ワン, 一定, 人, 仕事, 但し, 何回か, 依頼, 値段, 全部, 初めて, 副業, 単価, 双方, 場合, 大変, 失業, 感じ, 所, 手, 手当, 技術者, 掲示, 時間, 本業, 自分, 面,
音飛びしないブルートゥースは?
2020.07.27
音飛びしないブルートゥースの選び方を教えます?、パソコンにブルートゥースで接続する場合、ブルートゥースの規格は双方同じバージョンにするべしです。まず、ヘッドホンのブルートゥース5.0推奨の場合でパソコンのほうがそれよりバージョンが低いブルートゥース4.0とか使用していると音飛びが必ず発生します。ブルートゥースには下位のバージョンとの互換性はあるもののブルートゥース5.0と4.0では伝送通信速度にはかなりの差があります。
例えばYOUTUBEの動画の音源をブルートゥース4.0でワイヤレス(ブルートゥース)ヘッドホンに飛ばす場合、4.0で音データを飛ばすよりブルートゥース5.0で飛ばすほうが飛躍的にデータ量を飛ばすことができます。
例えるならYOUTUBEを4G回線で見るとたまに遅延しますよね、それと同じ現象がブルートゥース4.0で起きているのです。だから音飛びが発生するのです。なので音楽を音飛びしないで聞きたい場合はブルートゥース5の規格を選ぶことを強くお勧めします。それでも音飛びがする場合、初めて外部の妨害電波か機器がブルートゥース5.0非対応もしくは機器の故障を疑いましょう。
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
4, 4.0, 5, 5.0, youtube, かなり, こと, それ, たま, データ, バージョン, パソコン, ブルートゥース, ヘッドホン, ワイヤレス, 下位, 互換性, 伝送, 使用, 動画, 双方, 回線, 場合, 差, 接続, 推奨, 現象, 発生, 規格, 通信, 速度, 遅延, 選び方, 音, 音楽, 音源, 音飛び,
ブログで飯が食えない。だがしかし!
2020.07.17
ブログで飯が食えないですよね。だがしかし!小銭が増えていっています。でもブログ記事はもう4年ぐらいの蓄積データがあるのに、あまりアクセス数がないのが自分としては驚きです。毎日、福沢諭吉さんが1枚ほど入れば良いのになぁと思っています。昨日、このブログをちょっとテコ入れをしたのですが、その結果が吉であること祈りたいです。
ブログぐらいしか、取り柄がありません。プログラムできますがそれをどう活かせば収益を得れるのかがわからないのです。たぶん宝の持ち腐れみたいなものかなと思っています。因みにこのイラストは敢えてダサく作りました。
ブログの攻略が年々難しくなってきているように思えてなりません。Gさんのサイト分析するアルゴリズムは年々、精巧に作られてきていることが分かります。もうブラックハットやホワイトハットとか言っている場合ではない。むしろそんな領域は人工知能の前では通じないのではないかと思えてなりません。
いまSNSからの流動性が高いサイトがおそらく検索上位表示なっている気がします。なので気になった記事があればシェア拡散してください。
あぁお腹空いたーー!
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, 4, SNS, アクセス, アルゴリズム, いま, イラスト, こと, サイト, それ, データ, テコ入れ, ハット, ブラック, ブログ, プログラム, ホワイト, もの, 人工, 分析, 前, 収益, 取り柄, 吉, 場合, 宝の持ち腐れ, 小銭, 年々, 攻略, 昨日, 毎日, 流動性, 知能, 福沢諭吉, 精巧, 結果, 自分, 蓄積, 記事, 領域, 飯,
おつりアルゴリズム番外編。
2020.07.10
おつりアルゴリズムのアクセスがまぁまぁ好評なので番外編を記載します。硬貨や紙幣の制限がない場合、単なるこれだけのアルゴリズムで動作させることが可能です。尚、自動販売機などは硬貨の枚数なども計算しておつりを算出しているだろうと思います。因みにこのアルゴリズムに硬貨の枚数などのアルゴリズムを追加することにより比較的に簡単に導入できるかと思います。
デモ21としてリンクを載せときます、実際に使用してみて勘どころを掴んでください。なお、このコードはHTMLとJSで動させています。PHPなどは使用していません。ジャバスクリプト(JavaScript)で結構いろいろなことを処理することが可能だと感じますね。WEBでなにか勉強しようと考えている場合、JS(ジャバスクリプト)は必須であり、ブラウザさえあれば普通に動くのでお勧めな言語かなと思います。
ソースコードは下記になります。https://zip358.com/tool/demo21/
document.getElementById("money").addEventListener("input",function(){
var money = document.getElementById("money").value;
var change = {
calc1:{yen:10000,change:0,str1:"紙幣",str2:"枚"},
calc2:{yen:5000,change:0,str1:"紙幣",str2:"枚"},
// calc33:{yen:2000,change:0,str:"紙幣",str2:"枚"},
calc3:{yen:1000,change:0,str1:"紙幣",str2:"枚"},
calc4:{yen:500,change:0,str1:"硬貨",str2:"個"},
calc5:{yen:100,change:0,str1:"硬貨",str2:"個"},
calc6:{yen:50,change:0,str1:"硬貨",str2:"個"},
calc7:{yen:10,change:0,str1:"硬貨",str2:"個"},
calc8:{yen:5,change:0,str1:"硬貨",str2:"個"},
calc9:{yen:1,change:0,str1:"硬貨",str2:"個"}
};
money = money.replace(/[,|,]/g,"");
if(money.match(/[0-9]{1,}/g)){
for (const key in change) {
if (change.hasOwnProperty(key)) {
const obj = change[key];
change[key].change = Math.floor(money / obj.yen);
money = money % obj.yen;
}
}
var anser = function() {
var str = "";
for (const key in change) {
if (change.hasOwnProperty(key)) {
const obj = change[key];
if(obj.change){
str+= obj.yen + "円、" + obj.str1 + "が" + obj.change + obj.str2 + "<br>";
}
}
}
return str;
};
document.getElementById("change_print").innerHTML = anser();
}else{
document.getElementById("change_print").innerHTML = "入力が不適切です!";
}
});
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
21, document, getElementById, html, javascript, JS, php, quot, web, アクセス, アルゴリズム, いろいろ, おつり, お勧め, コード, こと, これだけ, ジャバ, スクリプト, ソース, デモ, ブラウザ, リンク, 下記, 使用, 処理, 制限, 勉強, 動, 動作, 勘どころ, 可能, 場合, 好評, 実際, 導入, 必須, 普通, 枚数, 番外編, 硬貨, 算出, 簡単, 紙幣, 自動販売機, 言語, 計算, 記載, 追加,

アプリ(APP)を紹介しているYOUTUBER
2020.06.21
スマホのアプリを紹介しているユーチューバー(YOUTUBER)、マメさんが伸びていきそうなので紹介します。何故、伸びそうか?それは声です、紹介が分かりやすいというのも有るのだけど、顔出ししていないYOUTUBERさんは何が大事なのかと言えば、動画の質もそうだけども。一番は聴きやすい声なんです。
それは結構重要なんですね?。声ってのは真似出来ない才能ですね。特にトークする動画は基本的に声の質が良い人が人気になります。マメさんの声も優しそうで落ち着きのあるラジオで行けそうな声の質。これはすごく伸びる材料になります。話戻してマメさんは、いろいろなアプリを短い動画枠で上手く紹介しています。自分の場合、玄人よりなので大体は知識ありなのですが、一般の人は良い話が聞けるのではないかなと思い今回、紹介に至りました。
最後にマメさんのチャンネル登録はこちら
https://www.youtube.com/channel/UCAaThwhgEMfisl0GMsd4SIg
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
App, YOUTUBER, アプリ, いろいろ, こちら, これ, スマホ, それ, チャンネル, トーク, マメ, ユーチューバー, ラジオ, 一, 一般, 人, 人気, 今回, 何, 動画, 場合, 声, 大事, 大体, 才能, 最後, 材料, 枠, 玄人, 登録, 知識, 紹介, 自分, 話, 質, 重要, 顔出し,

bingから画像を一括ダウンロードするアプリ。
2020.06.14
任意のキーワード検索でbing画像からを一括ダウンロードするアプリを作りました。img-dl-bing-sss.exeファイルを起動すると動画のようなコンソール画面が開くので入力してダウンロードを開始してください。ダウンロードが終わると勝手に閉じます。
なお、一応R指定にも対応しています、キーワードがR指定項目かもと思う場合、Yと入力ください。
新垣結衣さんの熱烈なファンでもないですが、綺麗な方だとは思います。ということで例として使用させて頂きました、、、関係者の皆様ごめんなさい。
このアプリはウィンドウズ10環境で動作します。また、動作しないブロックされる場合は下記のURL等を参照しブロックを解除しお使いください。ブロック解除方法:https://forest.watch.impress.co.jp/docs/news/1130655.html
※なお、Bingサイトのデザインが変わった場合、動作しなくなりますのであしからず。
画像ダウンロードアプリのソースコードはこちら(古いコードですので動かない場合がありますVS2019C#)
using System;
using System.Runtime.CompilerServices;
namespace img_dl_bing_sss
{
class Program
{
static void Main(string[] args)
{
string keyword = "",R18="";
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("処理中は画面や立ち上がったブラウザを閉じないでください。\n" +
"処理が完了すると「***終了します***」と表示されます。\n" +
"何かキーを押し終了してください\n\n");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("↓検索キーワードを入力しエンターを押してください");
keyword = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("↓R指定ですか?\nY or N かの文字を入力しエンターを押してください");
R18 = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***画像のダウンロード量(画像数ではありません) 1?999 ***");
var scroll = 9999;
try
{
scroll = int.Parse(Console.ReadLine());
if(scroll >=1 && scroll <= 999)
{
scroll = scroll * 9999;
}
}
catch
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***検索キーワードが不適切です。***");
}
SuiteTests img = new SuiteTests();
if (img.Imgdlok(keyword, R18, scroll))
{
img.Dispose();
}
else {
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***検索キーワードが不適切です。***");
}
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***終了します***");
}
}
}
// Generated by Selenium IDE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using Xunit;
using AngleSharp;
using AngleSharp.Html.Parser;
using AngleSharp.Html.Dom;
using AngleSharp.Dom;
using System.Runtime.InteropServices;
using Newtonsoft.Json;
using System.IO;
using System.Net;
public class SuiteTests : IDisposable {
public IWebDriver driver {get; private set;}
public IDictionary<String, Object> vars {get; private set;}
public IJavaScriptExecutor js {get; private set;}
public SuiteTests()
{
driver = new ChromeDriver();
js = (IJavaScriptExecutor)driver;
vars = new Dictionary<String, Object>();
}
public void Dispose()
{
driver.Quit();
}
public bool Imgdlok(string keyword="", string R18= "",int scroll = 999999)
{
if (keyword == "") return false;
Console.Clear();
string path = System.IO.Directory.GetCurrentDirectory() + "\\IMG\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
driver.Navigate().GoToUrl("https://www.bing.com/?scope=images&nr=1&FORM=NOFORM");
driver.Manage().Window.Size = new System.Drawing.Size(945, 1030);
driver.FindElement(By.Id("sb_form_q")).Click();
driver.FindElement(By.Id("sb_form_q")).SendKeys(keyword);
driver.FindElement(By.CssSelector(".search.icon.tooltip")).Click();
try
{
if (R18 == "Y")
{
driver.FindElement(By.LinkText("設定の変更")).Click();
driver.FindElement(By.CssSelector("#settings_safesearch div:nth-child(3)")).Click();
driver.FindElement(By.Id("adlt_set_off")).Click();
driver.FindElement(By.Id("sv_btn")).Click();
driver.FindElement(By.Id("adlt_confirm")).Click();
}
}
catch
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***R指定ではありません***");
}
try
{
double ps = 0;
for (int i = 99; i < scroll;i+=1000)
{
js.ExecuteScript("window.scrollTo(0," + i + ")");
Console.CursorLeft = 0;
ps = (double)(((double)i / (double)scroll) * 100);
Console.Write("処理中::{0:D2}%",(int)ps);
}
}
catch
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***Max画像まで到達しました***");
}
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n***ダウンロード処理開始***\n");
int cnt = 0;
var elm = driver.FindElements(By.ClassName("iusc"));
driver.Manage().Window.Minimize();
foreach (var e in elm) {
dynamic jsondata = JsonConvert.DeserializeObject(e.GetAttribute("m"));
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine((string)jsondata.murl + "::wait.....");
string imgurl = (string)jsondata.murl;
if(4 <= Path.GetExtension(imgurl).Length && Path.GetExtension(imgurl).Length <= 5)
{
try
{
cnt++;
string ext = Path.GetExtension(imgurl);
WebClient myWebClient = new WebClient();
myWebClient.DownloadFile(imgurl, path + "No-" + cnt + "-" + keyword + ext);
myWebClient.Dispose();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("***" + cnt +"::" + imgurl + "\n::ダウンロード中、画面を閉じないでください...***");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("***" + cnt + "::ダウンロード済***");
}
catch
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***ダウンロードが失敗しました***");
}
}else{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("***画像の拡張子が不明のためダウンロードが失敗しました***");
}
}
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("***ダウンロード完了しました***\n" + path);
return true;
}
}
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
10, bing, exe, img-dl-bing-sss, url, VS, アプリ, ウィンドウズ, キーワード, コード, こちら, こと, コンソール, サイト, ソース, ダウンロード, デザイン, ファイル, ファン, ブロック, 一括, 下記, 任意, 使用, 例, 入力, 動作, 動画, 勝手, 参照, 場合, 対応, 指定, 新垣結衣, 方, 方法, 検索, 環境, 画像, 画面, 皆様, 等, 綺麗, 解除, 起動, 開始, 関係者, 項目,
JavaScriptのPromise例えが分からない人のために。
2020.06.06
自分は『Promiseってなんやねん、わからんわ。』という人でした。皆さん賢いので複雑怪奇なコードで教えてくれていて…わかんない。
Promiseって非同期処理にするための道具です。Promiseって書いてその中に非同期処理の内容を書いてあげる。値を戻したい場合は命名した名前のカッコの中に値を返してあげれば良いが!!、どうも渡せる値は一つだけなのだ。
ちなみにthen(その後)で、非同期処理が終わった後にする処理が書けるですね(´・ω・`)。thenの中に非同期処理の値も返ってくる‥但しひとまとめで、、そんだけの話。またエラーになった時の処理も対応できるってさ…、そしてチェーン(数珠繋ぎ)の様に書くことも可能です、ここではそれらは割愛しますね?。
ちなみに最初、asyncとawaitと混合していて悩んでおりました。asyncとawaitは対になっていると同じような感覚でPromiseとthenは対になっていると考えてください。あまり複雑怪奇に考えずサンプルコードを動かして出来るできないを判断した後に賢い人が書いたリファレンスなどを読むことをオススメします。
最後に単純なソースコードとコンソールの結果を載せときますね。
"use strict";
var a = 0;
const q1 = new Promise((zaru)=>{//zaru...名前付けは何でも良い(予約されているものでなければ
a++;
zaru(a + "1..");//データをまとめて返す
});
const q2 = new Promise((zaru)=>{
a++;
zaru(a + "2..");
});
const q3 = new Promise((zaru)=>{
zaru("3~~~~n");
});
const qdaaaaaaaa = new Promise((zaru)=>{
zaru([1,2,3,"Dahahaha!!"]);
});
Promise.all([q1,q2,q3,qdaaaaaaaa]).then((val)=>{
console.log(val);
}
);
qdaaaaaaaa.then((val)=>{
console.log(val);
});
Array(4) [1, 2, 3, "Dahahaha!!"]
move.js:26
length:4
__proto__:Array(0) [, …]
0:1
1:2
2:3
3:"Dahahaha!!"
Array(4) ["11..", "22..", "3~~~~n", Array(4)]
move.js:21
length:4
__proto__:Array(0) [, …]
0:"11.."
1:"22.."
2:"3~~~~n"
3:Array(4) [1, 2, 3, …]
length:4
__proto__:Array(0) [, …]
0:1
1:2
2:3
3:"Dahahaha!!"
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
async, await, javascript, Promise, then, エラー, かっこ, コード, ここ, こと, それら, そん, ため, チェーン, なん, ひとまとめ, 一つ, 中, 人, 但し, 値, 内容, 処理, 割愛, 可能, 同期, 名前, 命名, 場合, 対, 対応, 後, 感覚, 数珠繋ぎ, 時, 最初, 混合, 皆さん, 自分, 話, 道具,

ダラダラとLaravel構築してみた解説あり(*´?`*)
2020.06.02
Laravelをインストール手順を動画にしました。いらない手順が含まられていますが・・・。気にしないでください!!
ちなみに適当な動画は無音ですみません。尚、PHPがタイムアウトしてComposerがインストール出来ない場合はポートの解放が出来ているか、IPv6が有効になっていないかなど調べてくだいね。なお、自分の場合、IPv6が有効になっていてダウンロードが出来ない状態でした(´・ω・`)。
お世話になったサイトはこちらです。こちらの手順通り対応しvirtualBOX、いや仮想環境を再起動してあげてください。そうするとすんなりダウンロード出来ます。それでもダウンロード出来ない場合はアドレスからgetcomposer.orgからダウンロードする手段もありますが、恐らくその後のComposerインストールで躓くはずです。サーバー環境を見直すと良いでしょう。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
composer create-project laravel/laravel example-app
最後にLaravelのドキュメントのリンクを貼っときますm
https://laravel.com/docs/8.x/installation
著者名
@taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
6, Composer, getcomposer, https, IPv, Laravel, org, php, server-me, virtualBOX, www, アドレス, いね, インストール, お世話, くだ, こちら, サーバー, サイト, タイムアウト, ダウンロード, パス, ポート, 仮想, 再起動, 動画, 場合, 対応, 後, 手段, 手順, 有効, 構築, 気, 無音, 状態, 環境, 自分, 解放, 解説, 適当,