TensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで。

2021.06.14

Logging

ラズベリーパイ3にTensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで軽く字幕で紹介した動画が下記になります。インストール方法は公式に書かれた通りに実行すれば上手くインストール出来るはずです。比較的に低スペックのマシンでも動くはずなのです、どうしてもエラーが出て動かないようであれば、それはおそらくあなたのマシンに問題があります?。

テンソルフローライト

動画でハマりどころがあるという事をブログで解説しますと書いていますので、そのハマりどころを解説します。。。

TensorFlow Lite(テンソルフロー ライト)で動かす場合、label_image.pyの修正箇所が公式に書かれていると思いますが・・・?、ここで自分がハマり、実行するコマンドを打ってもパラメーターがどうたらというエラーが出力されて動きませんでした。結論から言うと原因はマスターのソースコードにあったのです。修正を要領よく修正しては駄目だった。直接的な原因となったのは–num_threadsのパラメーターを投げていたのが原因でした。

公式では下記の内容に変更しなさいと書かれています。tf.lite.Interpreterの部分を置き換えればよいだろうと思っていたのです。

interpreter = tf.lite.Interpreter(model_path=args.model_file)

マスターのソースコードは若干、公式とは違ってこのようなソースコードになっていました。

  interpreter = tf.lite.Interpreter(
      model_path=args.model_file, num_threads=args.num_threads)

渡す引数が一つ増えていたので、自分はそれを残していたのですが・・・?、これでは動かないのです。そう・・num_threads=args.num_threadsは削除してあげないとモデルを動かすことが出来なかったのです。それがわからず渡すパラメーターが駄目なんだとか思って四苦八苦していました。

自分みたいな修正方法している方も中にはいると思ったので、今回、初心者がハマった沼を紹介しました?。

タグ

, image, label, LITE, py, tensorflow, あなた, インストール, エラー, コード, ここ, コマンド, スペック, ソース, それ, テンソル, はい, パス, パラメーター, フロー, ブログ, マシン, マスター, モデル, ライド, ラズベリー, 下記, , 修正, 公式, 出力, 動画, 原因, 問題, 場合, 字幕, 実行, 方法, 箇所, 紹介, 結論, 自分, 解説, 通り,

お問い合わせフォームとメールフォームの考え方は同じ。

2021.06.07

Logging

お問い合わせフォームとメールフォームの考え方は同じです。AからBにデータを送信してそれを元に処理をしているだけです。これはフォームに限らず、プログラムはデータを元に計算などを行い結果を出力しているに過ぎないのです。コンピュータというのは高速にデータを分類したり、計算したりしているだけなのです。

プログラミングに挫折する人は、いろいろな事に疑問を持って先に進まない人が多いです。どうしてそうなるのかという所まで考えようとしていて前に進まない人が多いです。

逆にそうなるだという事を受け入れる人の方が覚えが早いです。最初はルールを覚えたほうが良いですね。
小学生でプログラミングを始めたい方は、人のプログラミングコードを模写して、そのコードの一部の数字などを変更してみて、こうするとこうなるのかという形で覚えていくほうが良いと感じます。参考書には難しい言葉を使って書いている事が多いので、そのような形で覚えるほうが良いでしょう。
今回のソースコードを貼っときますので、コピーするのではなく自分で書いて動かしてみてください!
※因みにphp言語が動作する環境が必要になります。
https://www.sakura.ne.jp/standard.html#plan

<!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="お問い合わせ"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css">
<title>お問い合わせ</title>
<style>
	body{
		background-color: #f8f9fa;
	}
</style>
</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col-12 mt-5">
				<h2>お問い合わせ</h2>
				<input class="form-control mt-1" type="text" name="name" placeholder="お名前を入力ください">
				<input class="form-control mt-1" type="text" name="email" placeholder="メールアドレスを入力ください">
				<div class="form-group mt-1">
					<label for="my-select">お問い合わせ</label>
					<select id="my-select" class="form-control" name="ptn">
						<option value="問い">お問い合わせ</option>
						<option value="意見">ご意見</option>
					</select>
				</div>
			</div>
		</div>
		<div class="form-group mt-1">
			<label for="my-textarea">内容</label>
			<textarea id="my-textarea" class="form-control" name="text" rows="3" placeholder="内容を入力ください"></textarea>
		</div>
		<button class="btn btn-primary" id="btn" type="button">送信</button>
	</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.6.0/js/bootstrap.min.js"></script>
<script>
	document.getElementById("btn").addEventListener("click",function(){
		let data = {};
		data["name"]  = document.getElementsByName("name")[0].value;
		data["email"] = document.getElementsByName("email")[0].value;
		data["ptn"]   = document.getElementsByName("ptn")[0].value;
		data["text"]  = document.getElementsByName("text")[0].value;
		$.ajax({
			type: "POST",
			dataType: "json",
			url: "./send.php",
			data: data,
			success: function (response) {
				if(response){
					console.log(response);
				}
			}
		});
	});
</script>
</body>
</html>
<?php
print json_encode($_POST);

タグ

いろいろ, お問い合わせ, コード, これ, コンピュータ, それ, データ, フォーム, プログラミング, プログラム, メール, ルール, 一部, , , , 処理, 出力, 分類, , 参考書, 変更, 小学生, , , 挫折, 数字, , 最初, 模写, 疑問, 結果, 考え方, 言葉, 計算, 送信, , 高速,

簡易的なメールフォームとメール送信のプログラムを書くのにかかる時間は?

2021.05.28

Logging

簡易的なメールフォームとメール送信のプログラムを書くのにかかる時間は?大体10分?15分ぐらいかと思います。本当はエラーチェックなどの機能をちゃんとした物に置き換える必要があるけど、ざっくり考え方はこれだけで良いじゃないかなと思っています。下記のコードを制作するのに参考にしたサイトのリンクを貼っときますね。

https://techplay.jp/column/550https://techacademy.jp/magazine/19300

上記のコードを拝借してコードを書き、簡易的な二重送信防止対策と簡易的なエラーチェックをプログラミングしていますが、ここにreCAPTCHAなどの機能を入れてあげるとボット対策にもなるので良いかもしれません。ソースコードを見て後から気づいたのですが、ポストしているnameのデータを受け取っていない事があとから気づきました。因みにPOSTの生データが欲しいと言うときはこのように書くと取得することが可能ですよ。

<?php
 $data = file_get_contents('php://input');
?>
reCAPTCHA ENTERPRISE Updated Video
<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!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.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<title>sendmail</title>
</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col-12">
				<form method="post" action="./sendmail.php">
					name<input class="form-control" type="text" name="name">
					email<input class="form-control" type="text" name="email">
					<div class="form-group">
						<label for="my-textarea">Text</label>
						<textarea id="my-textarea" class="form-control" name="text" rows="3"></textarea>
					</div>
					<input type="hidden" name="csrf_token" value="<?=$_SESSION['csrf_token']?>">
					<?=$_SESSION["sendmail"]!=="ok"?'<button class="btn btn-primary" type="submit">submit</button>':"NG"?>
				</form>
			</div>
		</div>
	</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.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.6.0/js/bootstrap.min.js"></script>
</body>
</html>
<?php
session_start();
?>
<!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.6.0/css/bootstrap.min.css">
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css">
	<link rel="stylesheet" href="assets/css/style.css">
	<title>sendmail</title>
</head>

<body>
	<div class="container">
		<div class="row">
			<div class="col-12">
				<?= EmailSend() ?>
			</div>
		</div>
	</div>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.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.6.0/js/bootstrap.min.js"></script>
</body>

</html>
<?php

function EmailSend()
{

	$check = function ($val = "") {
		return isset($val) ? $val : false;
	};

	mb_language("Japanese");
	mb_internal_encoding("UTF-8");

	$to = $_POST['email'];
	$title = "test-mail";
	$message = $_POST['text'];
	$headers = "From: from@example.com";
	if (
		isset($_POST["csrf_token"])
		&& $_POST["csrf_token"] === $_SESSION['csrf_token']
	) {
		if (($check($to) && $check($title) && $check($message)) && mb_send_mail($to, $title, $message, $headers)) {
			$_SESSION["sendmail"] = "ok";
			return "メール送信成功です";
		} else {
			$_SESSION["sendmail"] = "ng";
			return "メール送信失敗です";
		}
	} else {
		return "不正なリクエストです";
	}
	return false;
}

タグ

10, 15, 2, 550, 8, cHW, column, com, https, jp, name, POST, reCAPTCHA, techplay, watch, www, xqg-zp, youtube, あと, エラー, コード, ここ, これだけ, サイト, ソース, チェック, デー, データ, フォーム, プログラミング, プログラム, ポスト, ボット, メール, リンク, 上記, 下記, , , 制作, 参考, 大体, 対策, , 必要, 拝借, 時間, 本当, 機能, , , 簡易的, 考え方, 送信, 防止,

クロスプラットフォーム開発(アプリ)をPythonで行う。

2021.05.21

Logging

PyQt5クロスプラットフォーム開発(アプリ)を行う事が出来るだってさ。ただし、PyQt5は商用利用に縛りがあるのだとか、個人で使用する分には問題なしだということ。CSSとPythonの記述が分かっていればそれほど難しくない難易度かと自分は下記の動画を見て思いました。

Create GUI App with PyQt5 – PART 1
pip install PyQt5

Python:パイソンがインストールしている環境で上記のコマンドを打つことでPyQt5はインストール可能です。あとはコードを書いて実行するだけでアプリが実行されます。

PyQt5の使い方を解説している人がいます。リンク先のように書けばチェックボックスなども設置可能です。因みにコードを一々書くのは面倒だという方はQt Designerと連携することでGUIの設計は楽になると思います。
環境構築を説明しているリンクを貼っときます。こちらでPyQt5のプログラムを使用しQt Designerで開発を行えます。

この頃はクロスプラットフォーム開発も多様化していろいろな言語で開発ができるようになってきてますね。楽になったものだと・・・。

追伸:商業利用でクロスプラットフォーム開発が行いたい場合はPySideを使用するべしです。理由はこちら
https://www.kimoton.com/entry/20181202/1543724518

タグ

5, css, Designer, GUI, install, pip, PyQt, Python, Qt, あと, アプリ, インストール, えま, クロス, コード, こちら, こと, コマンド, チェック, パイソン, プラットフォーム, プログラム, ボックス, リンク, 上記, 下記, , , 使い方, 使用, 個人, , 利用, 動画, 可能, 商用, 実行, , 構築, 環境, 縛り, 自分, , 解説, 記述, 設置, 設計, 説明, 連携, 開発, 難易, 面倒,

SEOって意味があるのかわからないけれどAll in One SEOの採点は気にしてる。

2021.05.14

Logging

SEOって意味があるのかわからないけれどAll in One SEOの採点は気にしてる自分。ワードプレス(WordPress:WP)にはオールインワンSEO(エスイオー)というプラグインがあり、最新版には記事単位でSEO採点をしてくれる機能が無料でついている。このWPプラグインのコード(中身の処理)がどうなっているかは知らないけれど、恐らく記事のデータはWPプラグインの提供元(All in One SEO)へデータを送信していることは間違いないのではないかと思っています。このSEO採点基準は投稿フォームの下の方にヒントとして記載されているので、その基準に記事を書けばスコアは最低でも70点以上の採点になるはずです。

【2021年度版】All in One SEO(WordPressプラグイン)の設定方法

因みにこの頃、書いている自分の記事は大体、80点以上の採点になることが多くなってきている。この機能が導入されてから記事を見返したり、SEOの得点を気にするようになった。それでも前から言っているように最終的に記事を読むのは人なので人が読んで評価が良いものを投稿する事こそが最強のSEOだと思っています。

しかし記事が検索サイトに表示されないと人目につかないので、SEOはある程度意識しないといけないなというのが今の自分の考えだったりします。昔に比べて検索の上位を狙うのが難しくなっていることは確かな事で数撃ちゃ当たる戦法はもう難しくなってきています。YOUTUBEは今の所、それが通用するみたいです。

なぜ、数撃ちゃ当たるの戦法が難しくなってきているかといえば、SEOを熟した企業が記事を量産しているから、個人で記事を書いている人が太刀打ちが難しくなってきているのが現状です。

ならば、プログラムで記事を量産させようと思い立ち、先日、記事を自動生成するサービスをいろいろ調べていた。調べると量産させるサービスがあった。そのサービスは「Articoolo(日本語はベータ版:2021年)」というサービスで人工知能の機能を使用し記事が作成されるものだった。試してみた結果、日本語が整っていなく未完成な記事が生成された、今のところは使用できるレベルではない(2021/05)。

【取材】超巨大言語モデルの開発を発表したLINEさんにその裏側を聞いてみた!

まだ、先の話になるのだけどこんな取り組みがある。LINEは日本語に特化した人工知能モデルを作ろうとしている。そのサービスが完成すればそれを使用して記事の自動制作を行えないかという事を自分は考えています。おそらくベータ版サービスは無料で作成できそうなので精度が良ければ使用してみたいと思っています。

今でも自然言語処理と人工知能のことを正しく理解している人であれば、記事を量産できるかもしれないが・・・。

タグ

70, 80, all, in, one, SEO, WordPress, wp, エスイ, オー, オールインワン, コード, こと, スコア, データ, パス, ヒント, フォーム, プラグイン, プレス, ワード, , 中身, 処理, 単位, 基準, 大体, 導入, 得点, 意味, 投稿, 採点, 提供, , 最低, 最新版, 機能, , 無料, 自分, 記事, 記載, 送信, ,

Proofreading(校正)というリクルートが開発したAPIを使って。

2021.04.27

Logging

Proofreading(校正)というリクルートが開発したAPIを使って、今まで投稿した記事に誤字がないかを判別してもらった。因みに1000文字を超える文章は対象にならないのでワードプレスで取得した記事を900文字程度で切って判断してもらうことにしています。誤字があった場合、1を最大値として値が渡されるので、その平均値を取ればその文章の誤字率が判定できる。今回は平均値を取らず、最大値を判断材料として文章をスコア化しました。一応、判断した値をCSVで出力するプログラムをちょこちょこと制作したので参考にして頂ければ幸いです。正直なところ、ProofreadingのAPIが制度が良いのか疑わしいものがあるがAPIを取り扱うのが始めてという人は勉強になると思います?。

AI・機械学習と創る未来 – A3RT

ソースコードはこちらになります。

<?php
require "../../wp-load.php";
global $wpdb;

$proofreading = function($text=""){
	$url = "https://api.a3rt.recruit-tech.co.jp/proofreading/v2/typo";

	$params = [
		'apikey' => '取得したAPIKEY',
		'sentence'=>"$text",
		'sensitivity'=>"high"
	];
	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_POST, TRUE);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	$response = curl_exec($curl);
	curl_close($curl);
	$obj = (object)json_decode($response);
	$score = 100;
	if($obj->alerts){
		$max = 0;
		foreach($obj->alerts as $key=>$val){
			$max = $max<$val->score?$val->score:$max;
		}
		$score = 100 - ($max * 100);
	}
	return $score;
};

if($argv[0]){
	file_put_contents("blogscore.csv","");
	$query = "SELECT * FROM $wpdb->posts WHERE post_status = 'publish' and post_type = 'post'";
	$results = $wpdb->get_results( $wpdb->prepare($query));
	foreach($results as $row) {
	   $id = $row->ID;
	   $title = $row->post_title;
	   $score = $proofreading(mb_strimwidth(preg_replace("/[\r|\n]/","",strip_tags($row->post_content)),0,900,"…"));
	   $str = "'$id'".",'".$title."',"."'$score'";
	   print $str.PHP_EOL;
	   file_put_contents("blogscore.csv",mb_convert_encoding($str."\n","SJIS","UTF-8"),FILE_APPEND);
	}
}

タグ

, 1000, 900, API, CSV, lt, php, Proofreading, quot, require, wp-load, コード, こちら, こと, スコア, ソース, ところ, プレス, プログラム, もの, リクルート, ワード, , 今回, , 出力, 判別, 判定, 判断, 制作, 制度, 勉強, 参考, 取得, 場合, 対象, 平均, 投稿, 文章, 最大, 材料, 校正, 正直, 記事, 誤字, 開発,

今読まれてますというWPプラグインの作り方

2021.04.19

Logging

今読まれてますというWP(ワードプレス)プラグインの作り方はこれだけです。ボット対策の部分はお見せできませんがこんなソースコードで動いています、なお、自分が閲覧してもツイートすることはないようにしています。因みに昨日もボットみたいなのが何度も来たのでその対応を行いました。尚、TwitterOAuthというライブラリを導入してautoload.phpを使用しuseで呼び出し使用しています(※autoloadを置いている任意の場所に変更してください)。

ワードプレスのプラグインの作り方の動画を貼っときます。英語ですが理解できるかと思います。動画で分かりづらかった方は『自作、WordPress、プラグイン、PHP』という様な検索すると先人たちが方法をネットに公開しているのでそちらを参考にしてください。

Create a WordPress Plugin from Scratch – Part 1

プラグインを作るにあたってソースコードに書かれているコメント部分は必須なのだけど、プラグインを配布しない人はプラグイン名だけ記載しプラグインと同じフォルダを構えるだけでプラグインとして認識します。

<?php
/*
  Plugin Name: article-live-tw
  Plugin URI:
  Description: 今、ユーザーが読んでいる記事をツイートする
  Version: 1.0.0
  Author: @zip358com
  Author URI: https://zip358.com
 */
session_start();
require "/vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

add_action("wp_head","article_live_tw");
function article_live_tw(){
	define("CONSUMER_KEY", "CONSUMER_KEY");
	define("CONSUMER_SECRET", "CONSUMER_SECRET");
	define("ACCESS_TOKEN", "ACCESS_TOKEN");
	define("ACCESS_TOKEN_SECRET", "ACCESS_TOKEN_SECRET");
	global $post;
	$flg1 = is_bot();
	$flg2 = empty($_SESSION["reading-zip358-".$post->ID.$_SERVER['REMOTE_ADDR']]);
	$flg3 = ip_check("reading-zip358-".$post->ID.$_SERVER['REMOTE_ADDR']);
	if(!$flg1 && $flg2 && !$flg3 && $post->ID){
		$_SESSION["reading-zip358-".$post->ID] = 1;
		$tw_title = get_post($post->ID)->post_title;
		$tw_link = get_permalink($post->ID);
		$kigolist = ["?","?","?","?","?","?"];
		$kigo =  $kigolist[floor(rand(0,5))];
		if(!current_user_can('administrator')){
			$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
			$connection->post("statuses/update", array("status" => "#今読まれてます $kigo ??? \n".$tw_title . " \n" . $tw_link . " \n #ブログ zip358.com \n" .  date_i18n('Y/m/d H:i')));
			//$ua =  print_r($_SERVER,true);
			//@file_put_contents("./log/".date('Y-m-d-H-i').".log",$ua);
		}
	}
}

タグ

15, 7, autoload, com, https, php, QfH-s-, TwitterOAuth, use, watch, WordPress, wp, www, youtube, お見せ, コード, こと, これだけ, , ソース, そちら, ツイート, ネット, プラグイン, プレス, ボット, ライブラリ, ワード, , 任意, 何度, 作り方, 使用, 先人, 公開, 動画, 参考, 場所, 変更, 対応, 対策, 導入, , 方法, 昨日, 検索, 理解, 自作, 自分, 英語, 部分, 閲覧,

時間配分が難しい。

2021.03.26

Logging

仕事をしていないのに時間配分が難しい。結局、あまりこの休みという時間を全然休めてない気がする。起床してコードを書いて、求人情報をチェックしてメールをチェックして朝食食べて朝風呂にはいり、ハローワークに行くときは行き、そうこうしていたらお昼になりお昼ごはんを食べて記事を読んだりシェアしたりし、1時間半ウオーキングしてその後、単発のクラウドワークスのお仕事をチェックする、競合がいないようなお仕事をチェックしそのコードを書いて募集する。そして夕食を食べて寝るということを土日祝以外は行っている。一番時間配分としてもったいないなと思っているのはウオーキングだったりするのだけど、ダイエットの為に歩いているので目標体重まではウオーキングをやめることはないと思います。そんな事より一番はお仕事をなんとかしないといけないなと今は収入源がない訳ですからね。正直なところ、先のことをあまり考えていません。考えても仕方ないから今出来ることを淡々と着実にやっていく事が最終的に近道になるのではと思っています。これが努力かとも思っていなくて今までのつけが回ってきたのだろうと思っています。ただ、これだけ読むと頑張っているなと思うひともいるでしょうけど、あまり頑張ってません。

タグ

, ウォーキング, お仕事, お昼, クラウド, コード, こと, シェア, ダイエット, チェック, とき, ところ, ハローワーク, メール, ワークス, , , , 仕事, 休み, 体重, , 募集, , 単発, 収入, 土日, 夕食, , 情報, 昼ごはん, 時間, 朝風呂, 朝食, 正直, , 求人, , 目標, 着実, , 競合, 記事, , 起床, 近道, 配分,

現役エンジニアならFizzBuzz問題なんて余裕なのか検証してみたをやってみた?

2021.03.22

Logging

【現役エンジニアならFizzBuzz問題なんて余裕なのか検証してみたをやってみた】、この道、10年選手の自分が解いてみた結果、2つの解になることになりました。でも自分はかなり緊張するタイプなのでこういう場ではなんかミスりそうです。2つの解になる理由は15の時、5の倍数でも3の倍数でもあり15の倍数でもあるからです。これに疑問をもつはずなのですが・・・。皆、言わなかったところが日本人的だなと感じました。因みに自分はこういう疑問を言うタイプです、なので衝突が上と起こるのかなと思います・・・。

尚、自分は3分ぐらいです。コードを書くより誰かに書いてもらいたい(^_^;)、もっとタイピングが早くなれば2分ぐらいで書けると思います?ではおつおつでした。

現役エンジニアならFizzBuzz問題なんて余裕なのか検証してみた
<?php
$ary1 = [];
$check1 = function ($hoge) {
	$str = [];
	if ($hoge % 3 === 0) {
		$str[] = "Fizz($hoge)";
	}
	if ($hoge % 5 === 0) {
		$str[] = "Buzz($hoge)";
	}
	if ($hoge % 15 === 0) {
		$str[] = "FizzBuzz($hoge)";
	}
	if (!count($str)) {
		$str[] = $hoge;
	}
	return implode(",",$str);
};
$ary2 = [];
$check2 = function ($hoge) {
	$str = [];
	if ($hoge % 15 === 0) {
		$str[] = "FizzBuzz($hoge)";
	}elseif($hoge % 5 === 0){
		$str[] = "Buzz($hoge)";
	}elseif($hoge % 3 === 0){
		$str[] = "Fizz($hoge)";
	}
	if (!count($str)) {
		$str[] = $hoge;
	}
	return implode(",",$str);
};
for ($i = 1; $i <= 100; $i++) {
	$ary1[($i-1)] = $check1($i);
	$ary2[($i-1)] = $check2($i);
}
print implode(",", $ary1).PHP_EOL;
print implode(",", $ary2).PHP_EOL;

タグ

, 10, 15, 2, , 5, ary, check, FizzBuzz, function, hog, hoge, if, lt, php, STR, エンジニア, かなり, コード, こと, これ, ダイビング, タイプ, ところ, パス, ミス, りそう, , 余裕, 倍数, 問題, , 日本人, , 検証, 現役, 理由, 疑問, , 結果, 緊張, 自分, 衝突, , 誰か, , 選手,

Anglesharpというライブラリの話。

2021.03.13

Logging

久しぶりに技術的なお話の記事を書きます。AnglesharpというのはC#などでスクレイピングするときにスクレイピングを補助してくれるライブラリで結構人気のあるライブラリなるようです。スクレイピングするコードは下記のようになります。この書き方が至ってシンプルで書きやすいのではないかなと思っています。

http://anglesharp.github.io/

var Url = $"https://zip358.com/";
var querySelector = $"#index_post_list > li.clearfix.num1.type1 > div > h3";
var document = BrowsingContext.New(Configuration.Default.WithDefaultLoader()).OpenAsync(Url).Result;
var element = document.QuerySelector(querySelector);
Console.WriteLine($"blogtitle is {element.InnerHtml}");

このライブラリはとても良いのですが、一つ問題があります。スクレイピングするのですが・・・これjavascriptがOFFの状態でスクレイピングされるのですね。どうもこのコードではJSがONにはならないようですね。因みに自分はそのことを知っていなかったのでどハマリしました。大手の検索サイトなどはjavascriptがOFFの状態でも閲覧できるようになっている事を知りました、試しにブラウザをOFFの状態にしてみるとソースコードがかなり違っていてJSのONの状態とは情報が差異がある事が理解できると思います。

Anglesharpのコンフィグ設定(init)でエージェントなどを設定してあげると上手くJSがONの状態をスクレイピングすることが可能なのかもしれません。動画を見る限りではまだかもしれません・・・。

AngleSharp NET Headless Browsing

タグ

, , 358, anglesharp, BrowsingContext, clearfix, com, Configuration, default, div, document, element, gt, https, index, li, LIST, new, num, OpenAsync, POST, QueryS, querySelector, quot, result, type, url, var, WithDefaultLoader, zip, お話, コード, シンプル, スク, とき, ピング, ライブラリ, レイ, 下記, 久しぶり, 人気, 書き方, 補助, 記事, ,

ざわざわ[騒騒]と表現。

2021.03.07

Logging

初日にエヴァンゲリオンを見に行くことはないだろうなと今日、確信した。学生さんは休みだからか、初日の朝なのに結構な人が予約されていて映画館、エヴァヲタでいっぱいな気がします。なので、自分はその次の日にでも観に行けたら観に行きます。残念ながら失業中ですが貯蓄預金はまぁまぁあります。未だに実家暮らしなので、家賃や食費代がないのであとは、年金とサーバー代やドメイン代と何やらで月に2?3万円飛びますが、一応生きていけます。まぁこれでは駄目人間なるので仕事先を探しています。自分でお金を稼ぐというのは簡単ではないですよね。

フリーランスで働いている人がこれから増えていくのかもしれませんが、正直なところ、雇われて働く方がどんなに楽なことなのか。因みにITエンジニアが流行っていますが辞めておいた方が良い。この先、AIの技術が進み殆どのことはAIが出来るようになります。いずれプログラムコードも殆どが自動生成で生み出されるでしょう。なので生き残れるのはAIを開発できるエンジニアだけだと思います。あとはあまりいらないと思いますよ。

『シン・エヴァンゲリオン劇場版』本予告・改2【公式】

トイウコトデ。
逃げちゃ駄目だより・・・一体何が言いたかったんだろ。

タグ

2, , AI, IT, いっぱい, エヴァ, エヴァンゲリオン, エンジニア, お金, コード, こと, これ, サーバー, ところ, ドメイン, フリー, プログラム, ランス, ヲタ, , 予約, , 人間, 今日, 仕事, 休み, , 初日, 失業, 学生, 実家, 家賃, 年金, 技術, , , 映画館, , , , 正直, 殆ど, 残念, , 確信, 簡単, 結構, 自分, 自動生成, 表現, , 貯蓄, 開発, 預金, 食費, 駄目,

なるほど、よくわかりました。

2021.02.22

Logging

小学生でもわかるasync/await/Promise入門【JavaScript講座】

そういう事だったんだね。いまごろ理解する、いろいろな方法で非同期処理ができるだなと、ちなみにIE11でもPromiseは使用することが出来るみたい。そのかわりライブラリを読み込む必要はあるけれど・・・。IE11を開くとエッジを使用しようと勧めてくる。そろそろIEを強制的に削除すればいいのにと思っています。IEだとjsも制限が出てくるだよね。とくにコードを書くときにグレイヴ・アクセントとかいう記号「`」が使用できないのは痛いなと思います。

タグ

11, IE, JS, Promise, アクセント, いま, いろいろ, エッジ, かわり, グレイヴ, コード, こと, とき, ライブラリ, , 使用, 処理, 制限, 削除, 同期, 必要, 方法, 理解, 記号,

今日はお休みなのに。

2021.02.20

Logging

今日はお休みなのに、クラウドワークスのお仕事に手を出してしまってへとへとな感じになっています。今日のAM2時頃から起きて12時まで作業して手取り2000円です、受注実績がほしくてトライしたのですが正直なところ割りに合わないかなと思いました。プログラムコード数は結構書きました、たぶん2000円以上の仕事をしている気がします。

あと土曜日、告知するということは仕事辞めることになりました・・・。まる三ヶ月間ぐらい、仕事をしたのですが社長さんと合わないのが、このさきも続くとなると、長くは続かないだろうし何よりシステムのことを理解していない人がトップにいると仕事が進めにくいのです、そんなこともあり辞めるのです。

前社長は、システム上がりの現役でコードを書いていたので、そういう面では良かったなと思います、辞めてこれからフルリモートの仕事をするのか、倉庫作業員になるか、悩んでおります。お給料が良いのはフルリモートですが、倉庫作業が懐かしくて・・・。悩ましいですね。

タグ

12, 2, 2000, AM, お仕事, お休み, お給料, クラウド, コード, こと, これ, さき, システム, ところ, ドップ, トライ, プル, プログラム, まる, リモート, ワークス, , , 今日, 仕事, 作業, 倉庫, 前社長, 受注, 告知, 土曜日, 実績, , 手取り, 正直, , 現役, 理解, 社長, ,

海外のチャンネルだけど良質、The Flutter Way

2021.02.06

Logging

海外のチャンネルだけど良質な技術を早送りではあるけれど、見えるというのはかなり意義のあるなと思います。デザインをコードにどう起こすのかが分かりやすく掲載されていて凄く助かるじゃないかな?特に初心者には助かるなと思います。Flutterは実はこのごろ、触っていないです。

Onboarding Screen – Complete E-Commerce App Flutter UI – Ep 1 – Speed Code

リモートワークになってちょっと腑抜けていている状態になってますが、やはり勉強をしようとこの動画を見て思いました。こんなアプリ作れたら、やっぱ楽しいでしょうね。アプリもリリースしたいからね・・・。中断していたjavaの勉強も休日にごとごとするようにします。そちらは実名のqiitaに掲載していきます。Flutterでなにかアプリを開発したい人、勉強したいひとは下記からチャンネル登録どうぞ。因みに日本ではFlutter大学というチャンネルが有名ですかね。

TheFlutterWay Food Delivery App UI Kit

https://www.youtube.com/channel/UCJm7i4g4z7ZGcJA_HKHLCVw 【The Flutter Way】

https://www.youtube.com/channel/UCReuARgZI-BFjioA8KBpjsw 【KBOYのFlutter大学】

タグ

4, 7, channel-, com, flutter, https, java, qiita, The, UCJm, way, www, youtube, アプリ, かなり, コード, ごろ, そちら, チャンネル, デザイン, ひと, リモート, リリース, ワーク, 下記, 中断, , 休日, 初心者, 勉強, 動画, 大学, 実名, 意義, 技術, 掲載, 日本, 早送り, 有名, 海外, 状態, 登録, 良質, 開発,

人のプログラミングコードを見て学ぶ。

2021.01.26

Logging

人のプログラミングコードを見て学ぶことが、大事だなと思うことがある、上に上があって「あぁぁ」と思うことも多々あるけれどやはり学び続けるしかないなと思う。近くに師がいなければ広大なネットから師を探せば良いと自分は思っている。切磋琢磨も良いけれど、師と思える人を探すことは大事だなと。

自分にはそんなに能力値が高いわけでもないし、技術力も秀でたものでもないだけども、やはり今の自分の能力に満足はしていなくてここまでは出来るようになりたいなと思えることがある。だからYOUTUBEやネットで技術者のコードを見ている、因みにやはり技術の高いプログラミングコードは余計なものがなくきれいだなと思える。数学の公式を見てこの公式は美しいというのは、ある意味わかる気がする。

タグ

youtube, きれい, コード, ここ, こと, ネット, プログラミング, もの, わけ, , , , 余計, 公式, 切磋琢磨, 大事, , 意味, 技術, 技術力, 技術者, 数学, , 満足, 能力, 自分, 近く,

リモートワークという働き方を。

2021.01.16

Logging

人気コミック「岸辺露伴は動かない」スペシャル企画

リモートワークという働き方を体験してみた結果、仕事と私用の切り替えることが出来ないと大変な環境ですね。切り替えが大変なのです、、、。ですが慣れます切り替えが難しい人でも切り替えができるようになります。一番良い切替方法はアカウントを2つ作るやパソコンを私用と仕事用に分けるということです。自分の場合、仕事用に分けています。そうすることにより、切り替えができます。最初はこれで良いのかなどと思っていたのですが、そこまで考える必要はないということです。そこを考えるのは経営者の役割なので。。。

成果主義にどうしてもリモートワークはなってしまうというのは、よくわかります。自分の場合も仕事が早く終わってしまって見直しばかりしているときがありますが、見直しも仕事ですからね。

ちなみにリモートワークしていて思うのは、仕事が出来ない人は仕事に追われる可能性が高いと思います。仕事が追われないようにする方法は引き出しを何個かもっていて、汎用的につかえるコードを持っておくことが結構大事です。そうすることで、すこしロジックを変えることにより対応できるからです。

Creepy Nuts / かつて天才だった俺たちへ【MV】

そして、リモートワークを続けていると待遇の良い仕事に転職したくなるという誘惑に負けそうになることが度々、発生しますがその時はじっくり見極めることが大事になると思います。

タグ

2, アカウント, コード, こと, これ, そこ, とき, パソコン, リモート, ワーク, 主義, , 仕事, 体験, 何個, 働き方, 可能性, 場合, 大変, 引き出し, 役割, 必要, 成果, 方法, 最初, 環境, 私用, 経営者, 結果, 自分,

Yahooが567(コロナ)の情報を取り扱っているそれも県単位でURLまとめたよ。

2020.12.20

Logging

Yahooが567の情報を取り扱っている。567(コロナ)を県単位で情報を配信しているまとめリンクサイトを作りましたので、ご自由にお使いください。
リンクはこちらです。https://zip358.com/tool/demo28/

ソースコードとJSONを貼っときます。IT土方さんみたいな事をした?。

<script>
	fetch("./assets/js/ken47.json").then(response => response.json()).then((data)=>{
		let ken = [];
		ken.push('<div class="list-group">');
		for (const key in data) {
			ken.push("<a  class='list-group-item list-group-item-action' href='https://hazard.yahoo.co.jp/article/covid19" + data[key].roman + "' target='_"+ data[key].roman +"'>" + data[key].name +":::https://hazard.yahoo.co.jp/article/covid19" + data[key].roman + "</a>");
		}
		ken.push("</div>");
		document.getElementById("covid19-link-list").innerHTML = ken.join("")
	});
</script>
{
	"1": {
		"name": "北海道",
		"roman": "hokkaido"
	},
	"2": {
		"name": "青森",
		"roman": "aomori"
	},
	"3": {
		"name": "岩手",
		"roman": "iwate"
	},
	"4": {
		"name": "宮城",
		"roman": "miyagi"
	},
	"5": {
		"name": "秋田",
		"roman": "akita"
	},
	"6": {
		"name": "山形",
		"roman": "yamagata"
	},
	"7": {
		"name": "福島",
		"roman": "fukushima"
	},
	"8": {
		"name": "茨城",
		"roman": "ibaraki"
	},
	"9": {
		"name": "栃木",
		"roman": "tochigi"
	},
	"10": {
		"name": "群馬",
		"roman": "gunma"
	},
	"11": {
		"name": "埼玉",
		"roman": "saitama"
	},
	"12": {
		"name": "千葉",
		"roman": "chiba"
	},
	"13": {
		"name": "東京",
		"roman": "tokyo"
	},
	"14": {
		"name": "神奈川",
		"roman": "kanagawa"
	},
	"15": {
		"name": "新潟",
		"roman": "niigata"
	},
	"16": {
		"name": "富山",
		"roman": "toyama"
	},
	"17": {
		"name": "石川",
		"roman": "ishikawa"
	},
	"18": {
		"name": "福井",
		"roman": "fukui"
	},
	"19": {
		"name": "山梨",
		"roman": "yamanashi"
	},
	"20": {
		"name": "長野",
		"roman": "nagano"
	},
	"21": {
		"name": "岐阜",
		"roman": "gifu"
	},
	"22": {
		"name": "静岡",
		"roman": "shizuoka"
	},
	"23": {
		"name": "愛知",
		"roman": "aichi"
	},
	"24": {
		"name": "三重",
		"roman": "mie"
	},
	"25": {
		"name": "滋賀",
		"roman": "shiga"
	},
	"26": {
		"name": "京都",
		"roman": "kyoto"
	},
	"27": {
		"name": "大阪",
		"roman": "osaka"
	},
	"28": {
		"name": "兵庫",
		"roman": "hyogo"
	},
	"29": {
		"name": "奈良",
		"roman": "nara"
	},
	"30": {
		"name": "和歌山",
		"roman": "wakayama"
	},
	"31": {
		"name": "鳥取",
		"roman": "tottori"
	},
	"32": {
		"name": "島根",
		"roman": "shimane"
	},
	"33": {
		"name": "岡山",
		"roman": "okayama"
	},
	"34": {
		"name": "広島",
		"roman": "hiroshima"
	},
	"35": {
		"name": "山口",
		"roman": "yamaguchi"
	},
	"36": {
		"name": "徳島",
		"roman": "tokushima"
	},
	"37": {
		"name": "香川",
		"roman": "kagawa"
	},
	"38": {
		"name": "愛媛",
		"roman": "ehime"
	},
	"39": {
		"name": "高知",
		"roman": "kochi"
	},
	"40": {
		"name": "福岡",
		"roman": "fukuoka"
	},
	"41": {
		"name": "佐賀",
		"roman": "saga"
	},
	"42": {
		"name": "長崎",
		"roman": "nagasaki"
	},
	"43": {
		"name": "熊本",
		"roman": "kumamoto"
	},
	"44": {
		"name": "大分",
		"roman": "oita"
	},
	"45": {
		"name": "宮崎",
		"roman": "miyazaki"
	},
	"46": {
		"name": "鹿児島",
		"roman": "kagoshima"
	},
	"47": {
		"name": "沖縄",
		"roman": "okinawa"
	}
}

タグ

39, 47, 567, assets, class, const, data, div, fetch, For, gt, in, IT, JS, json, ken, key, let, list-grou, list-group, list-group-item, lt, push, quot, response, script, then, url, Yahoo, コード, こちら, コロナ, サイト, ソース, それ, まとめ, リンク, , 単位, 土方, 情報, , 配信,

Hallo worldの定番。

2020.12.11

Logging

<?php
print("Hello world");

「こんにちは世界」がコンピューター言語の参考書にもっとも記載されている言葉だと思います。誰がこれを始めたのか自分は知らないのですが、定番中の定番ともいえる言葉です。プログラマーなら誰しも知っているだろうなと思います。

いままで、プログラマーという職業は嫌煙されていましたが今でなりたい職業の中に入ってきました。これも時代の流れなのかもしれませんが実際、プログラマーってデジタル土方さんなんですよね。これは今でもそうだと思います、人がコードを入力して書いているわけですから・・・・。近い将来、人工知能が簡単なアルゴリズムなら書いてくれるとは思います。いまでも自らをコードを自己進化して成長する人工知能は存在します。

ただ、自己進化と口頭で言ったことからプログラムが出来る人工知能は未だ存在しません。ただ簡単なこと、例えばデザインをHTML化してくれるサービスは存在していて精度もなかなか良いです。またロゴを生成してくれる人工知能も存在していますが、やはりこれ以上の難しいことは人工知能は出来ません。

なので今後、20?30年はプログラマーという職業はなくならないと思っています。もっともらしい例を出すと電子書籍が登場しても本はなくならなかったという事です。今のところですけどね、遠い将来は消えているかもしれませんが。

タグ

Hallo, Hello, html, lt, php, print, quot, world, アルゴリズム, いま, コード, こと, これ, コンピューター, サービス, デザイン, デジタル, プログラマー, プログラム, 世界, , , 人工, , 入力, 参考書, 口頭, 土方, 嫌煙, 存在, 定番, 実際, 将来, 成長, 時代, 未だ, 知能, 簡単, 職業, 自ら, 自分, 自己, 言葉, 言語, 記載, , 進化,

外部VPSサーバーからさくらレンタルサーバーのDBに接続する方法。

2020.12.04

Logging

外部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();
}

タグ

8, charset, db, DOCTYPE, en, expect, gt, head, html, lang, lt, meta, name, quot, tmp, UTF-, vie, VPS, yum, アップ, インストール, コード, ご自身, サーバー, さくら, データベース, パーティション, ファイル, プロセス, ポート, まま, レンタル, 下記, 初期, 削除, 場合, 変数, 外部, 完成, 必要, 接続, 方法, 時間, 権限, 機能, 生成, 要件, 追加, 開放,

LLサイズ

2020.12.03

Logging

LLサイズなんて昔はタブダブだったのに今は丁度いい着心地です。えぇお腹がダボついています。冬になりますます、お腹周りの燃焼効率が悪くなっているように感じます。なぜ、こんなにもお腹周り皮下脂肪がついているのかなぁと自分でも疑問に思うこともあります。この頃、スリムになりたいという気持ちはあるもののウォーキングもいかず、家でゴトゴトと作業をしています。

在宅ワークはサボろうと思えばサボれるのだけど、性格上サボらずにゴリゴリとコードを書いています。そして仕事と私生活の境目が合間になるのでアカウントを分けています。混合すると何が何だか分からないので…。あと自分は時間外の労働はしないように極力しています。

これは前からそういう様に意識しているのです、在宅ワークの利点は集中して作業が出来ることですね。在宅ワークだと県外、県内の人材を募集できるのでIT関係なら良い感じかなと思います。これは企業側の良いところだと思うのだけど、マイナス点もあります。意思疎通が難しいなという点です、それが円滑に出来れば良いチームが作れるのではないかなと思います。

タグ

IT, LL, アカウント, ウォーキング, お腹, コード, こと, これ, サイズ, スリム, タブ, ダボ, ところ, マイナス, ワーク, 人材, , 仕事, 企業, , 作業, , 利点, , 労働, 効率, 募集, 合間, 周り, 在宅, 境目, , 性格, 意思, 意識, , 時間, 気持ち, 混合, , 燃焼, 疎通, 疑問, 皮下脂肪, 県内, 県外, 着心地, 私生活, 自分, 関係, 集中, ,

マウスの動きをトラッキング(追跡)する。

2020.11.17

Logging

サイトのマウスの動きをトラッキングして行動パターンを知りたいという案件がクラウドでありました。応募はしていませんが考え方はこのような感じだと思います。ただ楽天サイトだという制約があったのでクロスサイトへ接続可能なのかはわからないけれど…ね?。

考え方のソースコードと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);

タグ

demo, IP, JS, php, あるかな, キャプチャ, クライアント, クラウド, クロス, コード, サイズ, サイト, ソース, それ, データ, トラッキング, パターン, ブラウザ, ページ, マウス, ライブラリ, リンク, , 使用, 保存, , 内容, 再度, 処理, 制約, 可能, 場合, 完結, 実際, 必要, 応募, 感じ, 接続, 案件, 楽天, 機能, 状態, 画面, 考え方, 行動, 返却, 追加, 追跡, 送信,

ミラーワールド「メタバース」とAI!ええっ!?

2020.11.01

Logging

Softbank Group, NVIDIA CEOs on What's Next for AI (Courtesy of SoftBank World 2020)

二人が語っている動画を視聴して数年後には彼らが語っていることは全て具現化されていくだろうなと思いました。その中で一番、興味深い話はAI(人工知能)がミラーワールド=メタバース(仮想現実世界)を作りその中でものや機械を生産やシュミレーションを行い、人工知能が試した結果を現実世界で同じように取り入れるという事です。これを見て凄く違和感を感じてしまいました…。

これってリアルワールドと思っている現実世界も実はシュミレーションの中かもしれないという事、まさに映画、マトリックスの世界だなと感じました。

映画『マトリックス』製作20周年特別予告 2019年9月6日(金)期間限定上映

メタバースの世界とは別にやはりAIがプログラミングコードを生成するということはそれほど難しくない、近い将来、複雑なプログラミングも行えるようになるのだなと感じました。これからITエンジニアを目指す方はコード書くよりAIが書き出したコードを修正できる能力の在るひとが必要になるかと思われます。そして数年後にはノーコードでいろいろな事がAIに置き換わるのだなと、それほどITエンジニアはいらないですね。

AIは脅威だと思います、全然大丈夫とは思えない、AIを作る側はこれからも安泰かもしれないけれど、一般人は間違いなく今後数年で仕事はなくなると思います。皆がクリエイティブなことが出来るわけでもないのだから、これはかなり大変な時代になると思います。こういう動きは大企業から始まります、お気をつけて就職活動や転職活動を行ったほうが良さそうです。1時間ほどの動画ですがこれからどう社会を変えていくのかが分かる動画です見る価値ありかな!?。

タグ

AI, IT, エンジニア, コード, こと, これ, シュミレーション, ノー, バース, ひと, プログラミング, マトリックス, ミラー, メタ, リアル, ワールド, 世界, , , 二人, 人工, 仮想, 修正, 全て, 具現, 動画, 将来, 彼ら, 必要, , , 映画, 機械, 現実, 生成, 生産, 知能, 結果, 能力, 複雑, 視聴, , 違和感,

プログラミングは世界共通語なのかも。

2020.10.26

Logging

JavaScript ES6 Modules

英語がわからない方でもプログラミングコードを見れば何を書いているのか、わかってしまうのでそういう意味でプログラミングは世界共通語なのかもしれないなと思います。プログラミングで会話ができるそんなプログラミング言語ができたら、それはITエンジニアにとってかなり朗報なのかもしれないなとふと思いました。

そうなればバグの指摘なども簡単になるし、意思疎通も簡単に。これからITエンジニアになりたい方は英語は必須ですね。英語がわかれば海外からの仕事もうけれるし会社に雇われないフリーランスの仕事も軌道に乗りやすいかと思います。クラウドワークスやランサーズなどでは中々厳しいですね…。それで生活ができる人はほんの一部のひとだと思います。

お小遣い稼ぎならクラウドワークスやランサーズで出来るかと思いますが、生計を立てる事はほとんどの人が出来ないでしょう、なのでもしクラウドワークスやランサーズのような仕事の請負を行って生活していくには海外でも同じような活動を行っていかなければならいでしょう。

そういう意味でも英語は必須。新たな世界共通語を秀才なITエンジニアが開発してくれれば話は変わりますが、今の処、英語ができれば海外から仕事が取れます。因みに翻訳に頼らない日常の英会話ができると尚良いと。トイウコトデ、それらが出来ない方は、自分も含め学ばなければなりません。

地球語を読んで想像したことでした。

タグ

IT, エンジニア, お小遣い, かなり, クラウド, コード, これ, それ, バグ, ひと, フリー, プログラミング, ほとんど, ランサーズ, ランス, ワークス, 一部, 世界, , , 仕事, 会社, 会話, , 共通語, 必須, 意味, 意思, 指摘, , 朗報, 海外, 生活, 生計, 疎通, 簡単, 英語, 言語, 請負, 軌道,

[悲報]無職になりました?。

2020.10.12

Logging

一週間ぐらいまえにお仕事が決まって働いていたのですが、先週の金曜日にそのお仕事を辞めることにし、社長さんにそのお話をして今に至っています。

就いた職種はプログラマーです。お仕事としては某大手企業が開発したおそらくフレームワークでの開発(特殊なプログラムコード)になります。そのコードはどちらかと言えばN88BASICのようなプログラム仕様です。そちらを覚えるのにはそれほど時間もかからず、辞める前にはほぼ理解していたのですが辞めました。

コロナ禍でお仕事につけたのは感謝です。ただ自分自身のこころの問題(葛藤)で辞退しました。小さな会社でしたが社員さんや社長さんも良い人ばかりでしたが、なんか今まで培ってきたことが全然活かすことが出来ない。出しゃばってこれも出来るよとか言えなかったです。やっぱり難しいですね、効率化が全てではないし、それで運用しているということはそれで仕事が成り立っているわけなので、そこに技術を入れることにより仕事が短縮化してしまうわけです。

そして活かす事が出来ないなという思いともう一つの葛藤があります。それはプログラムの楽しさがこの頃なくなってきたという事です。昔はプログラムを書くことが楽しかったのですが、ここ数年でその楽しさがあまりなくなってきています。なので、辞める理由としてプログラムという職があってないという理由で辞めました。

仕事だから楽しさを求めるなという意見もあるでしょう。でも何か楽しさややりがいがあるから仕事は続けられると思います。そういう面では運送会社に勤めていたころが楽しかったなと思っています。その職に将来性があるかどうかは分からいないし、いまもう一度、同じ職に就いたとして楽しく出来るのかと言えばそれは正直なところ分からないです。その一番の理由として心のモチベーションや今まで経験(人生経験)したことにより、20代と同じ感情になるのかなと思うとそれはまた違うのかもしれないという事です。もう40代になるけれど・・・なんかなぁと自分でも思います。

そんな中で昨日、映画、浅田家を観て救われました。世の中にはあんな人もいるだなって別に自分は大きな成功を収めたいとは思っていないのですが、安定した生活や周りの人に心配されないようにとか、、、上手く言えないけれどまぁ何とかしたいなと思っています。

タグ

88, BASIC, お仕事, お話, コード, こころ, こと, これ, コロナ, そこ, そちら, それ, どちらか, フレームワーク, プログラマー, プログラム, まえ, わけ, , , , 仕事, 仕様, 企業, 会社, 先週, 全て, , 効率, 問題, 大手, 悲報, 感謝, 技術, 時間, 無職, 特殊, 理解, 短縮, 社員, 社長, , 職種, 自分, 自身, 葛藤, 辞退, 運用, 金曜日, 開発,

ノーコードって流行っているけど。

2020.10.07

Logging

今話題のノーコード(NoCode)って?その特徴から未来まで、現役プログラマが徹底解説!

ノーコードは流行っているけど、たぶんまだまだだというのが自分の考えかな?
まず、ノーコードは田舎のIT業界以外のひとは知らないと思います。IT界隈では流行っているけど、一般人は知らないレベルの話だと思います。

これから先、ノーコードは進化していくかと思いますが、いまのところ、驚異ではないかなと、もしノーコードがワードプレスなどの立ち位置になっても驚異ではないと自分は考えています(中小企業の痛手になるとは思いますが、驚異ではないかなと思います)。

何故か?

本屋が潰れないのと同じです。電子書籍が浸透しても本を買う人はいます。そんな感じで世の中、最先端のテクノロジーが出てきても使用する側がアナログなのでそれほど、驚異ではないかなと考えています。

昔はデジタル書籍に置き換わると思っていましたが、デジタル書籍が登場してから数年は経過していると思いますが、本屋は潰れずです・・・。たぶん、自動運転車が登場しても全ての人々が自動運転車に乗るには1世紀ぐらいかかるのではないかなと、いまは思っています。

タグ

IT, アナログ, いま, コード, これ, テクノロジー, デジタル, ところ, ノー, ひと, プレス, レベル, ワード, 一般人, , , 中小企業, , 人々, 位置, 何故, 使用, , , 全て, 感じ, , , 書籍, 最先端, , 本屋, 業界, 浸透, 田舎, 界隈, 痛手, 登場, 経過, 自分, 自動, , 進化, 運転, 電子, 驚異,