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

2020.11.23

Logging

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

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

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

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


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

タグ

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

暑いのか寒いのかわからない。

2020.11.20

Logging

暑いのか寒いのかわからない季節を過ごしています。そんな中でアプリ開発してみました。開発したアプリはFBへ飛んで自分のHPが貼ってあるのでそこへ移動して動作動画などを見てみてください(※インストール出来ます)。今回、自分が開発したアプリは基本的なことが出来るよということをアピールするためのアプリなので、大それた開発日数がかかっていませんが基本は押さえていると思っています。自分が開発した環境はflutterとElectronというものを使用して開発しました。クロス開発になっているのでElectronだったら、Windows、Mac、リナックスなどに移植出来ます、flutterはアンドロイド、ios、Webが同時に開発できるので手間いらずです。因みにElectronの方が簡単ですね、flutterはDart言語を理解していることとflutterのドキュメントを見とかないとどんな機能があってどんな事が苦手なのかなどは分からないと思います。あと、Electronは脆弱性があってnode.jsのライブラリを初期設定では呼び出せないようにしています。初期設定をOFFって非推奨でコード開発しましたが、実際は皆さんはどうしているのか知りたいところですね。

そんな訳で、アプリ開発はしていきます?
良いのが出来ればこちらでも紹介します!!

タグ

Dart, Electron, FB, flutter, HP, iOS, Mac, web, Windows, アピール, アプリ, アンドロイド, インストール, クロス, こと, そこ, ため, ドキュメント, もの, リナックス, , , 今回, 使用, 動作, 動画, 基本, 季節, 手間, , 日数, 機能, 理解, 環境, 移動, 移植, 簡単, 脆弱, 自分, 苦手, 言語, 開発,

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

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

WPのカレンダーや予約投稿の日付がズレてしまう件:WP5.3以降:?

2020.11.15

Logging

WPのカレンダーや予約投稿の日付がズレてしまう件:WP5.3以降に起きるらしい。ワードプレスが大幅なアップグレードしたことが影響しているみたいです。この原因を突き止めるのに結構時間がかかりました。頭の良い人はすごいなと関心、、、。原因ですが簡単に言うとテンプレートやプラグインに下記の関数を使用していたら何やら、日付がズレてしまうというなんとも言えない事象が起きる可能性があります。例えば、テンプレートのFunctions.phpの中にそういう記述があると表示される時にカレンダーがズレてしまうとかそういう現象が発生します。

date_default_timezone_set("Asia/Tokyo");

因みに自分はこの原因を突き止めるのに結構時間を割きました、共通してくれると有り難いです。参考にしたサイトを貼っときます。
https://blog.medical-design.co.jp/archives/2569

元リンクは下記のツイッターのリンクを参照ください。

タグ

5.3, Asia, blog, co, date, default, functions, https, jp, medical-design, php, quot, set, timezone, Tokyo, wp, アップ, カレンダー, グレード, こと, サイト, ズレ, テンプレート, なん, プラグイン, プレス, ワード, 下記, , 予約, 事象, , , 使用, 共通, 原因, 参考, 可能性, 大幅, 影響, 投稿, 日付, , 時間, 現象, 発生, 簡単, 自分, 表示, 記述, 関心, 関数, ,

Twitterの名前、記号部分を天気予報のアイコン、夜は月のアイコンへと変更する。

2020.11.06

Logging

Twitterの名前の特定の記号部分(■や@部分)を天気予報のアイコン、夜は月のアイコンへと変更する。ある有名エンジニアさんのアイディアを拝借して作りました、autoloadとnamespaceの関係で手詰まり、試行錯誤して解決、その次に命名の間違えで手詰まり。そしてファイルの参照で手詰まりしてやっとリリースしました?、長かった。

使用方法はdefineにそれぞれの値をいれてコマンドから定期的に実行すればよいという品物です。Composerでインストールしている環境で下記のコマンドでパッケージをインストールしてください。

パッケージの開発部分は白紙です、今後、この機能に関してはバージョンアップするつもりはないです。

プログラムに改善の余地はありですが、はじめてパッケージ使ったので疲れました?以上、現場からでした。

https://packagist.org/packages/zip358/tw_name_change
https://github.com/zip358/tw_name_change

defineの補足

  • OPENWEATHERMAPのAPI_IDが必要です(ユーザー登録が必要です)。
  • Twitter API 登録しCONSUMER_KEYなどのキーが必要です。
  • Twitterのユーザー名が必要です(自分)。
  • KENNOは下記のテーブルを参照ください。
  • KIGOUは置き換える文字です。

※正規表現に使われている記号は使用できません。

composer require zip358/tw_name_change
php  Twitter_name_change.php
if($argv[0]){
	require './vendor/autoload.php';
	use zip358\tw_name_change\tw_name_chg;
	define("KIGOU","■");
	define("KENNO","KENNO");
	define("TIME_ZONE","TIME_ZONE");
	define("OPENWEATHERMAP_API_ID","Openweathermap_api_id");
	define("USER_SCREEN_NAME","user_screen_name");
	define("CONSUMER_KEY", "CONSUMER_KEY");
	define("CONSUMER_SECRET", "CONSUMER_SECRET");
	define("ACCESS_TOKEN", "ACCESS_TOKEN");
	define("ACCESS_TOKEN_SECRET", "ACCESS_TOKEN_SECRET");
	$tw_name_change = new tw_name_chg();
	$tw_name_change->main();
}
KENNO県名
0北海道
1青森県
2岩手県
3宮城県
4秋田県
5山形県
6福島県
7茨城県
8栃木県
9群馬県
10埼玉県
11千葉県
12東京都
13神奈川県
14新潟県
15富山県
16石川県
17福井県
18山梨県
19長野県
20岐阜県
21静岡県
22愛知県
23三重県
24滋賀県
25京都府
26大阪府
27兵庫県
28奈良県
29和歌山県
30鳥取県
31島根県
32岡山県
33広島県
34山口県
35徳島県
36香川県
37愛媛県
38高知県
39福岡県
40佐賀県
41長崎県
42熊本県
43大分県
44宮崎県
45鹿児島県
46沖縄県

タグ

autoload, Composer, define, https, namespace, org, packages, packagist, Twitter, zip, アイコン, アイディア, アップ, インストール, エンジニア, コマンド, それぞれ, つもり, バージョン, パッケージ, ファイル, プログラム, リリース, 下記, 予報, 今後, 余地, 使用, , 参照, 名前, 命名, 品物, 変更, , 天気, 実行, 拝借, 改善, 方法, , 有名, 機能, , 特定, 現場, 環境, 白紙, 解決, 記号, 試行錯誤, 部分, 開発, 関係,

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。

2020.11.02

Logging

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。直した箇所はこちら変数名に$ooooと書いている部分が今回修正した箇所です。修正したファイルはWordPressのインクルードフォルダにある。ジェネラルテンプレートぴーえぃちーぴー(general-template.php)

wp-includes\general-template.php 

このファイルを直しました。コアファイルなので次期UPDATEで修正されるかとは思いますが、それまではこちらの修正でなんとかなるさ?!

因みに何故、$ooooにしたのかは、お???の???という土佐弁からです。ファイルの中にget_calendar(げっとカレンダー)という関数があるのでそちらを修正しています。原因は下記です。
gmdateというものを使用している所をローカルサーバーの時間で対応しました、さくらレンタルサーバーのタイムゾーンは日本時間を指しています。若干の誤差はあるけれど酷い誤差ではないのでdateで大丈夫そうです。

要は日付の末日が正確に取れていないことが原因みたいです?
はやく修正してくれることを願っています。

function get_calendar( $initial = true, $echo = true ) {
	global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;

	$key   = md5( $m . $monthnum . $year );
	$cache = wp_cache_get( 'get_calendar', 'calendar' );

	if ( $cache && is_array( $cache ) && isset( $cache[ $key ] ) ) {
		/** This filter is documented in wp-includes/general-template.php */
		$output = apply_filters( 'get_calendar', $cache[ $key ] );

		if ( $echo ) {
			echo $output;
			return;
		}

		return $output;
	}

	if ( ! is_array( $cache ) ) {
		$cache = array();
	}

	// Quick check. If we have no posts at all, abort!
	if ( ! $posts ) {
		$gotsome = $wpdb->get_var( "SELECT 1 as test FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" );
		if ( ! $gotsome ) {
			$cache[ $key ] = '';
			wp_cache_set( 'get_calendar', $cache, 'calendar' );
			return;
		}
	}

	if ( isset( $_GET['w'] ) ) {
		$w = (int) $_GET['w'];
	}
	// week_begins = 0 stands for Sunday.
	$week_begins = (int) get_option( 'start_of_week' );

	// Let's figure out when we are.
	if ( ! empty( $monthnum ) && ! empty( $year ) ) {
		$thismonth = zeroise( intval( $monthnum ), 2 );
		$thisyear  = (int) $year;
	} elseif ( ! empty( $w ) ) {
		// We need to get the month from MySQL.
		$thisyear = (int) substr( $m, 0, 4 );
		// It seems MySQL's weeks disagree with PHP's.
		$d         = ( ( $w - 1 ) * 7 ) + 6;
		$thismonth = $wpdb->get_var( "SELECT DATE_FORMAT((DATE_ADD('{$thisyear}0101', INTERVAL $d DAY) ), '%m')" );
	} elseif ( ! empty( $m ) ) {
		$thisyear = (int) substr( $m, 0, 4 );
		if ( strlen( $m ) < 6 ) {
			$thismonth = '01';
		} else {
			$thismonth = zeroise( (int) substr( $m, 4, 2 ), 2 );
		}
	} else {
		$thisyear  = current_time( 'Y' );
		$thismonth = current_time( 'm' );
	}

	$unixmonth = mktime( 0, 0, 0, $thismonth, 1, $thisyear );
	$last_day  = gmdate( 't', $unixmonth );
	$oooothisyear  = date( 'Y', $unixmonth  );
	$oooolast_day  = date( 't', $unixmonth );
	$oooothismonth = date( 'm' , $unixmonth);

	// Get the next and previous month and year with at least one post.
	$previous = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date DESC
			LIMIT 1"
	);
	$next     = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date > '$oooothisyear-$oooothismonth-{$oooolast_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date ASC
			LIMIT 1"
	);

	/* translators: Calendar caption: 1: Month name, 2: 4-digit year. */
	$calendar_caption = _x( '%1$s %2$s', 'calendar caption' );
	$calendar_output  = '<table id="wp-calendar" class="wp-calendar-table">
	<caption>' . sprintf(
		$calendar_caption,
		$wp_locale->get_month( $thismonth ),
		gmdate( 'Y', $unixmonth )
	) . '</caption>
	<thead>
	<tr>';

	$myweek = array();

	for ( $wdcount = 0; $wdcount <= 6; $wdcount++ ) {
		$myweek[] = $wp_locale->get_weekday( ( $wdcount + $week_begins ) % 7 );
	}

	foreach ( $myweek as $wd ) {
		$day_name         = $initial ? $wp_locale->get_weekday_initial( $wd ) : $wp_locale->get_weekday_abbrev( $wd );
		$wd               = esc_attr( $wd );
		$calendar_output .= "\n\t\t<th scope=\"col\" title=\"$wd\">$day_name</th>";
	}

	$calendar_output .= '
	</tr>
	</thead>
	<tbody>
	<tr>';

	$daywithpost = array();

	// Get days with posts.
	$dayswithposts = $wpdb->get_results(
		"SELECT DISTINCT DAYOFMONTH(post_date)
		FROM $wpdb->posts WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_type = 'post' AND post_status = 'publish'
		AND post_date <= '{$oooothisyear}-{$oooothismonth}-{$oooolast_day} 23:59:59'",
		ARRAY_N
	);

	if ( $dayswithposts ) {
		foreach ( (array) $dayswithposts as $daywith ) {
			$daywithpost[] = (int) $daywith[0];
		}
	}

	// See how much we should pad in the beginning.
	$pad = calendar_week_mod( gmdate( 'w', $unixmonth ) - $week_begins );
	if ( 0 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td colspan="' . esc_attr( $pad ) . '" class="pad">?</td>';
	}

	$newrow      = false;
	$daysinmonth = (int) gmdate( 't', $unixmonth );
	$oooodaysinmonth = (int) date( 't', $unixmonth );

	for ( $day = 1; $day <= $oooodaysinmonth; ++$day ) {
		if ( isset( $newrow ) && $newrow ) {
			$calendar_output .= "\n\t</tr>\n\t<tr>\n\t\t";
		}
		$newrow = false;

		if ( current_time( 'j' ) == $day &&
			current_time( 'm' ) == $thismonth &&
			current_time( 'Y' ) == $thisyear ) {
			$calendar_output .= '<td id="today">';
		} else {
			$calendar_output .= '<td>';
		}

		if ( in_array( $day, $daywithpost, true ) ) {
			// Any posts today?
			$date_format = gmdate( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
			/* translators: Post calendar label. %s: Date. */
			$label            = sprintf( __( 'Posts published on %s' ), $date_format );
			$calendar_output .= sprintf(
				'<a href="%s" aria-label="%s">%s</a>',
				get_day_link( $thisyear, $thismonth, $day ),
				esc_attr( $label ),
				$day
			);
		} else {
			$calendar_output .= $day;
		}

		$calendar_output .= '</td>';

		if ( 6 == calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins ) ) {
			$newrow = true;
		}
	}

	$pad = 7 - calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins );
	if ( 0 != $pad && 7 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td class="pad" colspan="' . esc_attr( $pad ) . '">?</td>';
	}

	$calendar_output .= "\n\t</tr>\n\t</tbody>";

	$calendar_output .= "\n\t</table>";

	$calendar_output .= '<nav aria-label="' . __( 'Previous and next months' ) . '" class="wp-calendar-nav">';

	if ( $previous ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev"><a href="' . get_month_link( $previous->year, $previous->month ) . '">? ' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $previous->month ) ) .
		'</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev">?</span>';
	}

	$calendar_output .= "\n\t\t" . '<span class="pad">?</span>';

	if ( $next ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next"><a href="' . get_month_link( $next->year, $next->month ) . '">' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $next->month ) ) .
		' ?</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next">?</span>';
	}

	$calendar_output .= '
	</nav>';

	$cache[ $key ] = $calendar_output;
	wp_cache_set( 'get_calendar', $cache, 'calendar' );

	if ( $echo ) {
		/**
		 * Filters the HTML calendar output.
		 *
		 * @since 3.0.0
		 *
		 * @param string $calendar_output HTML output of the calendar.
		 */
		echo apply_filters( 'get_calendar', $calendar_output );
		return;
	}
	/** This filter is documented in wp-includes/general-template.php */
	return apply_filters( 'get_calendar', $calendar_output );
}

タグ

calendar, general-template, GET, gmdate, oooo, php, UPDATE, WordPress, wp-includes, インクルード, ウィジェット, カレンダー, コア, こちら, サーバー, さくら, ジェネラル, ズレ, そちら, それまで, タイム, テンプレート, ファイル, フォルダ, もの, レンタル, ローカル, 下記, , 今回, 使用, 修正, 公式, 原因, 土佐弁, 変数, 対応, , 時間, 末日, 次期, 箇所, 部分, 関数,

spaceXには夢があるよね。

2020.10.31

Logging

100 Successful Flights

spaceXには夢があるよね。失敗もかなりしたけど諦めずに試行錯誤を続けていまでは、成功が続いています。今年か来年には野口さんを載せて宇宙ステーションへいくらしい。安定した運用しているけれど、やはりそれでも心配します。ミスが許されない現場ってのは本当に大変な仕事だと思います。

How Not to Land an Orbital Rocket Booster

spaceXのミッションに火星移住計画ってのも在るけど、それは当分先の話だと思います。それよりも自分はstarlinkが気になるところです、starlinkってのは地球上どこにいても軌道衛星を介してインターネットができるようになるという計画です。いまstarlinkのアプリがダウンロードできるようになっているだとか、使用するには1万円ぐらいの月額費用がかかるので試した人は少ないと思います。自分も高くて手が出せない、これが毎月、使用した金額や安価な金額になると世の中、がらりと変わっていくだろうなという思いがあります。

Falcon Heavy & Starman

いままで、情報を得ることが出来なかった人々が、情報にアクセスができるという事は凄く意義のあることだと思うし、そして何より知ることにより新たな化学反応のような事が世界各地で起きる時代になるのではないかと、いまから期待しています。本当に世界規模のデジタル民主化が起きれば良いのになぁと。

あと10年後には世の中、少しは良くなっていることを祈ります。

タグ

, spaceX, starlink, アプリ, いま, インターネット, かなり, これ, ステーション, それ, ダウンロード, どこ, ところ, ミス, ミッション, , , , , 今年, 仕事, 使用, 地球, , 大変, 失敗, 宇宙, 安価, 安定, 当分, 心配, 情報, 成功, , 月額, 本当, 来年, 毎月, , 火星, 現場, 移住, 自分, 衛星, 計画, 試行錯誤, , 費用, 軌道, 運用, 野口, 金額,

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

2020.10.21

Logging

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

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

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

タグ

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

いや良いだけどちょっと悔しい。

2020.10.20

Logging

NewsPicksの社員さんと地方のITエンジニアさんとのお給料を考えたときにちょっと悔しいなと思いました、いやお金じゃないだけど・・・ちょっとお給料のことがヨギリマシタよ。

【実践】DXを叫ぶ前に「エクセル」の基礎を学ぶ

フル視聴はこちら https://newspicks.com/live-movie/907

でも一般人はこれが普通なのかもしれないのかもしれないなと感じました、そんな自分もエクセルの操作やマクロは全然知らないですけど、ググれば操作やマクロは直ぐに出来る気がします。ITエンジニアになるとVBAやPythonやC#で解決します、たぶんそうなるし、そもそもITエンジニアはグーグルスプレッドシートの方を使うほうが多いです?、共有することは簡単だからかな?でもエクセルごりごり使用できれば事務作業はかなり効率化になると思います。

因みに動画でも仰っていますが、基本スタイル覚えれば良いので全ての関数などを覚える必要はないです!!あとはググれば答えはネットに大体落ちてます。

タグ

907, com, https, IT, live-movie, newspicks, Python, VBA, あと, エクセル, エンジニア, お給料, お金, かなり, グーグル, こちら, こと, これ, シート, シタ, スタイル, スプレッド, とき, ネット, プル, マクロ, ヨギ, りま, 一般人, 事務, 作業, 使用, 全て, 共有, 効率, 動画, 地方, 基本, 必要, 操作, , 普通, , 直ぐ, 社員, 答え, 簡単, 自分, 視聴, 解決, 関数,

Chromeリモートデスクトップを触ってみた。

2020.10.20

Logging

How To Set Up Chrome Remote Desktop to WFH

Chromeリモートデスクトップを使ってみて、やはり遅延あるなと感じます(発生)が、WINDOWSからMacの操作とかも出来るので便利ですが、遠隔操作でプログラミングなどをゴリゴリするには不向きです。操作に困っているお客さんに操作の方法を教えるなどには使用できそうです。あと何かトラブルがあったときにブラウザから確認できるなどには向いてそうです。

使用するにはグーグルのGメールのアカウントが必要になります。まずはこちらからアクセスくださいませ。

https://remotedesktop.google.com/home

【Chromeリモートデスクトップ】たった5分で出来る!自宅から会社のパソコンを操作する方法

使い方は上記の動画を参照ください。動画を見たら大体の人はわかるかなと思いますので、この記事には操作方法の手順は割愛させてもらいます。パソコンが2台あるかたは試すと操作感覚がわかるかと思います、因みにスマホやタブレットでも操作が可能です。

Chrome リモートデスクトップ インターネット越え!自宅から職場のパソコンを操作する

タグ

2, Chrome, Mac, Windows, アカウント, アクセス, お客さん, ガタ, グーグル, こちら, スマホ, タブレット, デスクトップ, とき, トラブル, パソコン, ブラウザ, プログラミング, メール, リモート, 上記, 不向き, , 使い方, 使用, 便利, 割愛, 動画, 参照, 可能, 大体, 必要, 感覚, 手順, 操作, 方法, 発生, 確認, 記事, 遅延, 遠隔操作,

PowerShellであれ使えるだな。

2020.10.15

Logging


wget "ダウンロードするファイルのURL" -OutFile "保存先ファイルパス"

あれというのはwgetというダウンロードするときなどに使用するcommandです。リナックス系を使用している人には使っている方も多いかもしれない。そんな素敵なcommandがウィンドウズ10のPowerShell7では使用できるみたいだ。

大量画像にダウンロードする必要があったのでダウンロードファイルをリスト化、command打つように変換した。結果、とても楽です。

事務作業している方でIT好きな方はVBAを勉強してみると確実に仕事の効率化に繋がると思っています、たまにPythonをオススメするひともいるだけど、自分はあまりオススメしません。

なぜなら、一般的な事務員さん全員がそれを取り扱えるとは思わないからです。なのでクリックすれば動くよみたいな物が作れてパソコンの環境を変えないで良いのはVBAぐらいかと思います。PowerShellでもパソコンの環境を変更しないと動かないですからね。

バッチ処理などは一般的なひとはやはりハードルが高いと思ふ・・・?

タグ

-Command, -OutFile, 10, 7, IT, powershell, Python, quot, url, VB, VBA, wget, あれ, ウィンドウズ, おすすめ, クリック, それ, ダウンロード, たま, とき, パス, パソコン, ひと, ファイル, リスト, リナックス, 事務, , 仕事, 作業, 使用, 保存, 全員, 効率, 勉強, 変換, 大量, 必要, , , 環境, 画像, 素敵, 結果, 自分,

いま、思っていることはノートパソコンで良くね?

2020.10.10

Logging

Lenovo ThinkPad X1 Nano Gen 1 Sizzle – The lightest ThinkPad ever

ノートパソコン買って、こんな感じに使うことができればそれで十分可能かと。この頃を思っています。基本的にパソコンって複数代、購入しても使用しているパソコンって一台か二台ぐらいではないですか?

自分の場合、旧のパソコンはサーバにしていて、使用するパソコンは一台だけですが、だったらノートパソコンで良くねという感じです。もう新しいパソコンを新調したので当分はこのデスクトップのパソコンを使用するつもりでいます。

デュアルディスプレイ化すると作業効率が40%も上がります【BenQ EL2870U】

これから、パソコンを購入しようと考えている人は、断然、ハイスペックのノートパソコンをひとつ購入して、サブ画面として液晶ディスプレイを購入。上記の動画のような使用方法すれば全然、ストレス無く使用することが出来、なおかつ外出先でもパソコンを持っていけるのは本当に便利かなと思っています。

この頃の後悔はそれですね・・・。

タグ

-YiRC-, 0, , 8, AM, com, https, watch, www, youtube, いま, こと, これ, サーバ, サブ, ストレス, それ, つもり, ディスプレイ, デスクトップ, ノートパソコン, ハイスペック, パソコン, ひとつ, , 上記, , , 使用, 便利, 動画, 可能, 場合, 外出, 当分, 後悔, 感じ, 新調, 方法, , 本当, 液晶, 画面, 自分, 複数, 購入, ,

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

2020.10.07

Logging

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

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

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

何故か?

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

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

タグ

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

カラーコード表をjson形式で取り込み背景をランダム表示。

2020.10.04

Logging

カラーコード表をjson形式で取り込み背景をランダム表示する、あまり使用しないかもしれない、プログラムコードを書きました?。
実際、必要とするのはオブジェクトで出来ているカラーコード表かなと思っています。ウェブの初心者だったとき、ジャバスクリプトで背景の色が変わったりすることが、新鮮で楽しかったのですが今はそういう感覚が昔より抜け落ちているなと感じます。プログラムを書くことが楽しいという感覚がここ数年、抜け落ちていて、休日はコードを前より書くことが少なくなっています。

何年もコードを書くと飽きるのかもしれないなというのは仕方がないことなのかもしれません。でもそこでモチベーションを下げずに要られるひとは更に上への技術が身につくのかもなと思っています。

飽きるというのは言い換えれば、上達が止まったことを指すそうです。

var h = {
	color: [
		{ name: "black" }
		, { name: "aliceblue" }
		, { name: "darkcyan" }
		, { name: "lightyellow" }
		, { name: "coral" }
		, { name: "dimgray" }
		, { name: "lavender" }
		, { name: "teal" }
		, { name: "lightgoldenrodyellow" }
		, { name: "tomato" }
		, { name: "gray" }
		, { name: "lightsteelblue" }
		, { name: "darkslategray" }
		, { name: "lemonchiffon" }
		, { name: "orangered" }
		, { name: "darkgray" }
		, { name: "lightslategray" }
		, { name: "darkgreen" }
		, { name: "wheat" }
		, { name: "red" }
		, { name: "silver" }
		, { name: "slategray" }
		, { name: "green" }
		, { name: "burlywood" }
		, { name: "crimson" }
		, { name: "lightgray" }
		, { name: "steelblue" }
		, { name: "forestgreen" }
		, { name: "tan" }
		, { name: "mediumvioletred" }
		, { name: "gainsboro" }
		, { name: "royalblue" }
		, { name: "seagreen" }
		, { name: "khaki" }
		, { name: "deeppink" }
		, { name: "whitesmoke" }
		, { name: "midnightblue" }
		, { name: "mediumseagreen" }
		, { name: "yellow" }
		, { name: "hotpink" }
		, { name: "white" }
		, { name: "navy" }
		, { name: "mediumaquamarine" }
		, { name: "gold" }
		, { name: "palevioletred" }
		, { name: "snow" }
		, { name: "darkblue" }
		, { name: "darkseagreen" }
		, { name: "orange" }
		, { name: "pink" }
		, { name: "ghostwhite" }
		, { name: "mediumblue" }
		, { name: "aquamarine" }
		, { name: "sandybrown" }
		, { name: "lightpink" }
		, { name: "floralwhite" }
		, { name: "blue" }
		, { name: "palegreen" }
		, { name: "darkorange" }
		, { name: "thistle" }
		, { name: "linen" }
		, { name: "dodgerblue" }
		, { name: "lightgreen" }
		, { name: "goldenrod" }
		, { name: "magenta" }
		, { name: "antiquewhite" }
		, { name: "cornflowerblue" }
		, { name: "springgreen" }
		, { name: "peru" }
		, { name: "fuchsia" }
		, { name: "papayawhip" }
		, { name: "deepskyblue" }
		, { name: "mediumspringgreen" }
		, { name: "darkgoldenrod" }
		, { name: "violet" }
		, { name: "blanchedalmond" }
		, { name: "lightskyblue" }
		, { name: "lawngreen" }
		, { name: "chocolate" }
		, { name: "plum" }
		, { name: "bisque" }
		, { name: "skyblue" }
		, { name: "chartreuse" }
		, { name: "sienna" }
		, { name: "orchid" }
		, { name: "moccasin" }
		, { name: "lightblue" }
		, { name: "greenyellow" }
		, { name: "saddlebrown" }
		, { name: "mediumorchid" }
		, { name: "navajowhite" }
		, { name: "powderblue" }
		, { name: "lime" }
		, { name: "maroon" }
		, { name: "darkorchid" }
		, { name: "peachpuff" }
		, { name: "paleturquoise" }
		, { name: "limegreen" }
		, { name: "darkred" }
		, { name: "darkviolet" }
		, { name: "mistyrose" }
		, { name: "lightcyan" }
		, { name: "yellowgreen" }
		, { name: "brown" }
		, { name: "darkmagenta" }
		, { name: "blush" }
		, { name: "cyan" }
		, { name: "darkolivegreen" }
		, { name: "firebrick" }
		, { name: "purple" }
		, { name: "seashell" }
		, { name: "aqua" }
		, { name: "olivedrab" }
		, { name: "indianred" }
		, { name: "indigo" }
		, { name: "oldlace" }
		, { name: "turquoise" }
		, { name: "olive" }
		, { name: "rosybrown" }
		, { name: "darkslateblue" }
		, { name: "ivory" }
		, { name: "mediumturquoise" }
		, { name: "darkkhaki" }
		, { name: "darksalmon" }
		, { name: "blueviolet" }
		, { name: "honeydew" }
		, { name: "darkturquoise" }
		, { name: "palegoldenrod" }
		, { name: "lightcoral" }
		, { name: "mediumpurple" }
		, { name: "mintcream" }
		, { name: "lightseagreen" }
		, { name: "cornsilk" }
		, { name: "salmon" }
		, { name: "slateblue" }
		, { name: "azure" }
		, { name: "cadetblue" }
		, { name: "beige" }
		, { name: "lightsalmon" }
		, { name: "mediumslateblue" }
	]
};
document.body.style.backgroundColor = h.color[getRandomInt(h.color.length)].name;
function getRandomInt(max) {
	return Math.floor(Math.random() * Math.floor(max));
}

タグ

Black, color, json, name, quot, var, ウェブ, オブジェクト, カラー, コード, ここ, こと, ジャバ, スクリプト, そこ, とき, ひと, プログラム, モチベーション, ランダム, , 上達, , 休日, 何年, 使用, 初心者, , 実際, 形式, 必要, 感覚, 技術, , 新鮮, , 背景, , 表示, ,

ios14のウィジェットをカスタマイズする方法。

2020.09.25

Logging

ios14のウィジェットをカスタマイズする方法を紹介している動画を2つ紹介します。どちらもウィジェットスミス(Widgetsmith)というiosアプリを使用してカスタマイズしています。下記の動画を見ていただければわかるかと思いますが、日本語対応していないので若干、面倒かなと思うかもしれませんが慣れれば簡単です。

ウィジェット定番アプリ「Widgetsmith」の使い方を徹底解説!
【iPhoneホーム画面】iOS14アップデートで秋っぽくおしゃれにカスタマイズ!おすすめアプリ紹介!📱

その他にも、colorwidgetsというアプリもあるそうですね。そのうち、日本語対応のウィジェットアプリがリリースされるとは思いますが、今の処、日本語対応のゴリゴリカスタマイズできるウィジェットアプリはリリースされていないようです。

ウィジェットを「効率的に」設置できる便利アプリをご紹介!

あと自分としてはPaypayの純正のウィジェットが便利だなと思っています。人目で残高確認ができますし、支払いのショートカットとしても優秀かなと思っています。ただ、いま例の問題(不正引き落とし問題・2020/09/25:現在)でチャージが地銀などから出来ない状態が続いているので支払いは控えてます。

〆ios14のウィジェットカスタマイズの方法(手順解説)でした。

タグ

09, 14, 2, 2020, 25, colorwidgets, iOS, Paypay, Widgetsmith, アプリ, いま, ウィジェット, うち, カスタマイズ, ショートカット, スミス, その他, チャージ, どちら, リリース, 下記, 不正, 人目, , 使用, 便利, 優秀, , 動画, 問題, 地銀, 対応, 方法, 日本語, 残高, 現在, 確認, 簡単, 純正, 紹介, 自分, 若干, 面倒,

鳴子を機械学習で認識させる事が出来たよ!

2020.09.02

Logging

高知県なのでよさこい、よさこいと言えば鳴子を持って踊るがルール。
鳴子を持っているかを判断する機械学習を作ってみようという事で今回の考えが思いつき、早朝から機械学習で鳴子認識させる事に取り組んでみました。

難易度はかなり低いのでそこらへんのITエンジニアなら出来ると思います、出来なければITエンジニアなのかな?と思ってしまうぐらいの難易度かと思います。

大変だったことは教師あり学習なので認識させるのが面倒だった。
鳴子の写真を30枚ぐらい機械学習で認識させました、、、。

今回、使用した機械学習のライブラリはDlib(ディーリブ)というものです、
ググるとインストール方法からプログラム方法まで参考サイトが結構あります。

自分のサイトでは機械学習させた後、静止画を認識させるコードを掲載しときます。

import cv2
import dlib
detector = dlib.simple_object_detector("yosakoi.svm")
image = cv2.imread("yosakoi.jpg")
naruko =detector(image)
for f in naruko:
        print("left, top, Right, bottom : ", f.left(), f.top(), f.right(), f.bottom())
        cv2.rectangle(image, (f.left(), f.top()), (f.right(), f.bottom()), (255,0,0), 2)
print("{} naruko".format(len(naruko)))
photo = dlib.image_window()
photo.set_image(image)
photo.add_overlay(naruko)
cv2.imwrite("yosakoi-naruko.jpg",image)

因みに動画も認識させてみようと思ったのですが、こちらは上手く認識できなかったです・・・。

鳴子の機械学習モデルを置いときますのでご自由に使用ください。
学習したモデルを読み込んで上記のソースコードで試してみてください、尚、リナックス環境で動作します!!?

鳴子機械学習モデル?ダウンロード?

https://zip358.com/ML/YOSAKOI/yosakoi_Model.zip

タグ

2, 30, cv, detector, Dlib, import, IT, object, qu, simple, インストール, エンジニア, かなり, コード, こと, サイト, そこら, ティー, プログラム, べん, もの, よさこい, ライブラリ, リブ, ルール, , 今回, 使用, 写真, 判断, 参考, 大変, 学習, , 掲載, 教師, 方法, 早朝, 機械, 自分, 認識, 難易, 静止画, 面倒, 高知県, 鳴子,

質問DATA検索を作りました。

2020.08.29

Logging

質問箱というサービスでじぶんに質問してくれる方がいます、そんな人達が使用してくれればなと思い、ちょこちょこっと作りました。OR検索はできません。ワンキーワードだけの検索ですが、役に立つかなと。

じぶんは重複した(似たような)質問には答えなくて良いかなと思います。なお、質問箱のデータは手動で登録しました。いちぶブログラムでデータを抜き取りましたが、未回答は完璧な手動での登録です…。

ちなみにこういう仕様のサービスは1時間もなく出来上がります、とても簡単なので・・・。ウェブサイトのサービスって基本的に簡単なので長年やっていると飽きます。とくに簡単なものはコードを書くのが面倒くさくなってなんでこんな簡単なコードを書かなくてはならないのかと思ってしまうことも過去に何度かありました。なので汎用性のあるコードを構えておいてコピペで使えるものを構えておくと良いですよ。長年、プログラムをやっていると飽きますね。

URLはこちら
https://zip358.com/QuestionTXT/

タグ

, data, OR, url, いち, ウェブ, キーワード, グラム, コード, こちら, こと, コピペ, サービス, サイト, じぶん, ちょこ, データ, プロ, プログラム, もの, ワン, , 仕様, 何度か, 使用, 回答, 完璧, , 手動, , 検索, 汎用性, 登録, 簡単, 質問, 過去, 重複, 長年,

ノーコードって知ってますか?

2020.08.25

Logging

ノーコードって知ってますか?ITエンジニアだったら一度は聞いたことがあるとは思いますが、ノーコードってのはプログラムを書かずにUI(ユーザーインターフェース)上でウェブサイトやアプリが制作することが可能になるというものです。これって中小企業や零細企業にはかなり痛い話です。

こういうサービスを使えば簡単にアプリやウェブサイトが作れてしまいます。それも無料で作れるのです、広告表示が気にならないなら無料で広告表示を退けたい場合は月1000円ぐらい払えば退けてくれるので本当に便利なんです。

じぶんはノーコードをお勧めします、10万円のお金を払うなら自分たちで作ったほうが良いかなと特にアプリは企業に依頼すると高額な請求になるので簡単な仕様ならばノーコードのサービスを使用して自分たちで作ることをお勧めします。

ちなみにノーコードってこんなだよって話をしている動画がユーチューブで検索するといろいろな人が解説しているので見てみてください。

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

タグ

10, 1000, IT, UI, アプリ, いろいろ, インターフェース, ウェブ, エンジニア, お勧め, お金, かなり, コード, こと, これ, サービス, サイト, じぶん, それ, ノー, プログラム, もの, ユーザー, ユーチューブ, 一度, , , 中小企業, , 仕様, 企業, 使用, 依頼, 便利, 制作, 動画, 可能, 場合, 広告, , 本当, 検索, , 無料, 簡単, 自分, 表示, 解説, , 請求, 零細, 高額,

音飛びしないブルートゥースは?

2020.07.27

Logging

音飛びしないブルートゥースの選び方を教えます?、パソコンにブルートゥースで接続する場合、ブルートゥースの規格は双方同じバージョンにするべしです。まず、ヘッドホンのブルートゥース5.0推奨の場合でパソコンのほうがそれよりバージョンが低いブルートゥース4.0とか使用していると音飛びが必ず発生します。ブルートゥースには下位のバージョンとの互換性はあるもののブルートゥース5.0と4.0では伝送通信速度にはかなりの差があります。

例えばYOUTUBEの動画の音源をブルートゥース4.0でワイヤレス(ブルートゥース)ヘッドホンに飛ばす場合、4.0で音データを飛ばすよりブルートゥース5.0で飛ばすほうが飛躍的にデータ量を飛ばすことができます。

例えるならYOUTUBEを4G回線で見るとたまに遅延しますよね、それと同じ現象がブルートゥース4.0で起きているのです。だから音飛びが発生するのです。なので音楽を音飛びしないで聞きたい場合はブルートゥース5の規格を選ぶことを強くお勧めします。それでも音飛びがする場合、初めて外部の妨害電波か機器がブルートゥース5.0非対応もしくは機器の故障を疑いましょう。

タグ

4, 4.0, 5, 5.0, youtube, かなり, こと, それ, たま, データ, バージョン, パソコン, ブルートゥース, ヘッドホン, ワイヤレス, 下位, 互換性, 伝送, 使用, 動画, 双方, 回線, 場合, , 接続, 推奨, 現象, 発生, 規格, 通信, 速度, 遅延, 選び方, , 音楽, 音源, 音飛び,

土日祝はアレをプレイしています。

2020.07.20

Logging

土日祝はアレをプレイしています。コジマ監督指揮の元作られたデススト(デス・ストランディング)をプレイしています。操作がド下手なので良いプレイが出来ませんが、デスストのオープンワールドは凄く良いですし、とても絵になるなと思います。

ファイナルファンタジー7リメイクもそろそろ進めないといけないな。でもデスストもプレイしたい。因みに自分は1時間以上はロープレ以外はプレイしないので攻略するまでかなり時間がかかりそうな気がします。

こういうのを建設できるみたいなので、いま2つほど設置しています。序盤のフィールドの結構、分かりやすい場所に置いています。

プレステのオンラインIDはツイッターと同じIDを使用しています。何かやり取りしたい奇特なかたは、友達申請をお願いいたします。なお、英語圏の方はお断りしています。日本語が分かる方のみ、申請お願いいたします。

デスストとしていると繋がりも良いなと感じますね?。ソロでも自分は変わり者なのか、全然だいじょうぶな性格ですが、ネットでは繋がった方が面白いなと感じます。そもそもデスストってそういう設計をされているので尚更かと思います。

尚、じぶんの休日のときだけプレイするスタイルです。ネット上にネト友が出来ればある程度は合わせるつもりでいます。緩いつながりをよろしくお願いしまーす?。

タグ

, 2, 7, ID, アレ, いま, オープン, オンライン, お断り, お願い, ガタ, かなり, コジマ, スト, ツイッター, デス, , ファイナルファンタジー, フィールド, プレイ, プレステ, やり取り, ランディング, リメイク, ロープレ, ワールド, 使用, , 友達, 土日, 場所, 奇特, 序盤, 建設, 指揮, 操作, 攻略, , 日本語, 時間, , 申請, 監督, , 結構, , 自分, 英語圏, 設置,

つぶやきの回数を増やすのは結構、難しいですよね?。

2020.07.18

Logging

Twitter(ツイッター)をはじめて結構経ちます。実はTwitterというサービスが立ち上がった当初からTwitterを使っています。昔、使用していたアカウントはいつの間にか使用しなくなり今のアカウントに移行したのが2013年の事です。他にもアカウントを持っていますが、じぶんが主に使用しているのはこの@zip358comのアカウントだけになります。

若い世代はアカウントを使い分けている方が多いらしいですが、じぶんは壱アカウントで、お腹いっぱいです。そしてつぶやきもあまり多くないのです。世の中にはSNS(ソーシャルネットワークサービス)を使用しないひともいますよね。使用しない理由はいろいろあるかと思います。自分は一度は使用してみても良いじゃないかなと他人に勧めたくなりますが、この頃は断られるだけなので辞めています。断られるのって辛いというより、なんか寂しいなという感情を抱きますよね、そして温度差を感じます。

因みにソーシャルネットワークサービスはツイッターとフェイスブックをメモ代わりに使用しているだけで、あとのソーシャルネットワークサービスはあまり使用度は高くないです。ソーシャルネットワークサービスとか使い方が上手ければビジネスにも結びつけることが可能かと思います。じぶんのツイッターにも影響力が生まれればなと思いつつ、未だに何を呟けば良いのやらと悩んでいます。

だがしかし!
ブログのアクセスが伸び悩んでいるので、ソーシャルネットワークにも力を入れていきたいです!!

つぶやきの回数を増やすのは結構、難しいですよね?

タグ

2013, 358, com, SNS, Twitter, zip, アカウント, かな, サービス, じぶん, , ソーシャル, ツイッター, ネットワーク, ひと, 一度, , 世代, , , , , 他人, 使用, 回数, , 当初, 感情, , , 温度差, 理由, 移行, 腹いっぱい, 自分, ,

All in One SEO一括、自動入力したった。

2020.07.16

Logging

All in One SEO一括、自動入力したった。そのままです。SEO入力欄にデータを流し込みました。前処理として記事のID番号を列挙してJSONで保存しそのIDデータを使用してSEOタイトル、SEO ディスクリプション、SEO キーワードに記事のタイトル、記事内容、タグをそれぞれ流し込みました。この結果は数ヶ月ぐらいかかると思いますが、良い方向に動いていほしいものです。

ここではJSONデータは記載していませんがプログラム処理から想像出来るかと思います。

<?php
date_default_timezone_set("Asia/Tokyo");
require_once(__DIR__ . '/../wp-load.php');
class db{
    public $db = NULL;
    function __construct()
    {
        $this->db = new PDO('mysql:dbname=DBNAME;host=HOST;charset=utf8;', 'USER', 'PASS');
    }
    public function tbl_update($id,$title,$comment,$keyword){
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_title';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		var_dump($sdb->rowCount());
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $this->db->prepare("UPDATE wp_postmeta set  wp_postmeta.meta_value = :title where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_title';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_title',:title);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":title",$title,PDO::PARAM_STR);
		$ret = $sdb->execute();
		//
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_description';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $sdb = $this->db->prepare("UPDATE wp_postmeta set wp_postmeta.meta_value = :comment where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_description';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_description' ,:comment);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":comment",$comment,PDO::PARAM_STR);
		$ret = $sdb->execute();
		//
		//
		$sdb = $this->db->prepare("select * from wp_postmeta where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_keywords';");
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$ret = $sdb->execute();
		if($sdb->rowCount()){
			$sdb = Null;
			$sdb = $this->db->prepare("UPDATE wp_postmeta set wp_postmeta.meta_value = :keyword where wp_postmeta.post_id = :id and wp_postmeta.meta_key='_aioseop_keywords';");
		}else{
			$sdb = Null;
			$sdb = $this->db->prepare("INSERT INTO wp_postmeta(post_id,meta_key,meta_value) VALUES (:id,'_aioseop_keywords' ,:keyword);");
		}
		$sdb->bindParam(":id",$id,PDO::PARAM_INT);
		$sdb->bindParam(":keyword",$keyword,PDO::PARAM_STR);
		$ret = $sdb->execute();
		$sdb = Null;
		$this->db = Null;
        return "{'id':$id,'title':'$title','comment':'$comment','keyword':'$keyword'}";
	}
}
//$_POST["ID"] = 9541;
$obj = (object)json_decode(file_get_contents("./postid.json"));
foreach($obj->rows as $key=>$val){
	$ID = (int)$val->ID;
  $page = get_post($ID);
	$title = mb_strimwidth($page->post_title,0,60,"…");
	$content = $page->post_content;
	$content = wp_strip_all_tags( $content );
	$content = mb_strimwidth(strip_shortcodes( $content ),0,160,"…");
	$keyword = array();
	$posttags = get_the_tags($ID);
	if ( $posttags ) {
	  foreach ( $posttags as $tag ) {
		$keyword[] = $tag->name;
	  }
	}
	$DB = new db();
	print count($keyword)>0?$DB->tbl_update($ID,$title,$content,implode(",",$keyword)):$DB->tbl_update($ID,$title,$content,"");
	$DB = Null;
}

タグ

39, all, Asia, class, construct, date, db, default, DIR, function, ID, in, json, lt, null, once, one, php, public, quot, require, SEO, set, timezone, Tokyo, wp-load, キーワード, ここ, それぞれ, タイトル, タグ, データ, ディスクリプション, プログラム, もの, 一括, 使用, 保存, 入力, 入力欄, 内容, 処理, 列挙, 前処理, 想像, , 方向, 番号, 結果, 自動, 記事, 記載,

ソニーのBluetoothのスピーカー安いやつだけど今の自分には高いやつ。

2020.07.15

Logging

ソニーのBluetoothのスピーカー安いやつだけど今の自分には高いやつを買いました。商品型番はSRS-XB01です、音飛びしないしコンパクトだし、まぁまぁ音も良いので買ってよかったと思います。因みにパソコンのスピーカーとして使用しております。

充電式で充電すれば6時間再生可能みたいですが、基本的に耐えず充電するような形で使っていこうと思っています。こういう絶えず充電すると多分、充電池が劣化しやすいだろうけど、この方法で使います。

一万円のスピーカーにいづれは切り替えることになるだろうと思うのですが、充電池が劣化するには2?3年はかかるだろうから、それまではこれで良いかなと思っていますので、まぁ当分使用するということです。

深夜のためにソニーのBluetoothのヘッドホンを買いたいのですが、安定した収入もないのでいつ買うかは未定です。今回買ってわかったのはブランド品は音飛びしないということです。

Bluetoothの安いヘッドホンで今まで使用していたのですが、音飛びがブツブツしてそれがストレスになっていたので、ちょっと値段高かったですが買ってよかったと思っています。

手のひらサイズで3W! SONY ワイヤレススピーカー SRS-XB01

タグ

01, 2, , 6, bluetooth, SRS-XB, いつ, いづれ, こと, これ, コンパクト, スピーカー, ソニー, それまで, ため, パソコン, ブランド, ヘッドホン, やつ, 一万, , 今回, 使用, 充電, 充電池, 再生, 劣化, 収入, 可能, 商品, 型番, 安定, 当分, , 方法, 未定, 深夜, 自分, , 音飛び,

おつりアルゴリズム番外編。

2020.07.10

Logging

おつりアルゴリズムのアクセスがまぁまぁ好評なので番外編を記載します。硬貨や紙幣の制限がない場合、単なるこれだけのアルゴリズムで動作させることが可能です。尚、自動販売機などは硬貨の枚数なども計算しておつりを算出しているだろうと思います。因みにこのアルゴリズムに硬貨の枚数などのアルゴリズムを追加することにより比較的に簡単に導入できるかと思います。

デモ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 = "入力が不適切です!";
	}
});

タグ

21, document, getElementById, html, javascript, JS, php, quot, web, アクセス, アルゴリズム, いろいろ, おつり, お勧め, コード, こと, これだけ, ジャバ, スクリプト, ソース, デモ, ブラウザ, リンク, 下記, 使用, 処理, 制限, 勉強, , 動作, 勘どころ, 可能, 場合, 好評, 実際, 導入, 必須, 普通, 枚数, 番外編, 硬貨, 算出, 簡単, 紙幣, 自動販売機, 言語, 計算, 記載, 追加,

即席デザイン文字生成[iDrawジェネレーター]という命名がダサいw

2020.07.09

Logging

即席デザイン文字生成[iDrawジェネレーター]というWEBツールを作りました。あのイケハヤさんみたいなテキスト文字だけのアイキャッチ画像みたいなものが生成可能です。これをどうして作ったのか?

昔、パソコンが壊れてアドビが一時期があり、その時に仕方ないのでこれでアイキャッチ画像を生成して使用しておりました。とくに凝ったデザイン文字が生成されるわけではなく。書体と背景色や文字色などを変更してそれらしいものを即席で作るというものです。昔、作ったので変数の命名もかなり杜撰な感じでしたがひとまず動く形になりましたので、公表しますね。

ご自由にお使いいただければ幸いです。
https://zip358.com/tool/idraw/

この他にも無料ツールをいろいろ作っているのでご自由にお使いいただければと思っています。

タグ

iDraw, , web, あい, アドビ, イケハヤ, お使い, かなり, キャッチ, これ, ご自由, ジェネレーター, それ, ツール, テキスト, デザイン, パソコン, もの, わけ, 一時期, , 使用, 公表, 即席, 可能, 命名, 変数, 変更, , 感じ, 文字, , , 書体, 杜撰, 無料, 生成, 画像, 背景色,