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

20201106

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


皆が知りたいアクセス数と収入。

20201105

Logging

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

まぁでもアクセス数が増えていくことが収入が増えていく一番の近道にはかわりはないだろうけど、この頃、アクセス数は日によってまちまちです。100超えする日もあれば、日に2000人超えした日もありと・・・おそらくスパムだろうけど。日によって本当にまちまちなのです。出来れば毎日、平均してアクセス数が1万ぐらいあれば良いなと思っています。たぶん、昔のGさんのアルゴリズムだったら1000人超えはあり得たかもしれないけれど、いまのアルゴリズムだと人によって表示されるサイトや順位が変わるので、正直なところ、100超えしているだけでも、一般人としては、まぁ凄いかもしれない。だけども自分としては毎日、アクセス数が1万超えして頂けないと飯旨には到底なれないなと思っています。

リンクをシェアして拡散して頂けると有り難いです。
トイウコトデ、今後ともどうぞよろしくお願い致します。

タグ

, 100, 2000, 8000, アクセス, かわり, こと, スパム, どれぐらい, ブログ, まちまち, , , 到達, 収入, 場合, 平均, 感じ, 感覚, , , 最低, , 本当, 毎年, 毎日, 毎月, , , 自分, 近道, , 逆算, 銀行, ,


大衆理容へ行ってきました。

20201104

Logging

大衆理容へ行ってきました。はじめて低料金の床屋?さんに行ってきたのですが、あっと言う間に髪の毛切られました。雑な扱いなんですけどね、3000円以上支払ってたのと最終的には出来上がりはあまり変わりない気がする。特に超絶にオシャレな髪型でもないので、出来上がりは変わらなかった。確かに髪切ったあとは雑かなと思っていたけど・・・。

家に帰って髪洗って乾かしたら、それほど違和感がなかったというのが衝撃的でした。天然パーマということも助かってか・・・もしれないけれど、見た目は変わらないなと印象を持ちました。でもまぁ…が付きますがね(下記参照)。

大衆理容の求めてはいけないものはコミュニケーションです、ほぼ機械的に散髪をするので会話は必要最低限です、全体を通して雑な対応なのだけど1300円にそういうの求めてはいけないかと思いました。

それに特に男前でもないので、大衆理容でも良いかなと思ったけど、、、やっぱ今まで行きつけの床屋?さんには勝てないなと思いました。

こういう人は大衆理容の方が断然良いと思います、コミュニケーションを求めない、接客サービスを求めない、スポーツ刈りや坊主にしたい方は断然、大衆理容さんの方がお得です。また、髪型の仕上がりはどうでも良い、多少ちぐはぐでも良いひとなども大衆理容さんの方がお得です。

こういう人は行かないほうが良い、オシャレな髪型を目指している人、店員さんの接客サービスも求める方、望まない髪型になって後悔する方などは大衆理容を利用しない方が無難です。

以上、現場からでした。
やっぱリアルな体験が大事だなと?。

タグ

1300, 3000, あと, こと, コミュニケーション, それ, パーマ, もの, 下記, 会話, 全体, 印象, 参照, 大衆, 天然, , 対応, 床屋, 必要, 散髪, 料金, 最低限, 機械的, , 理容, 男前, 見た目, 超絶, 違和感, , , 髪の毛, 髪型, 髪洗,


ping送信はエラー吐きまくり。

20201103

Logging

FC2ブログ http://ping.fc2.com
Technorati JAPAN	http://rpc.technorati.jp/rpc/ping
NAMAAN	http://ping.namaan.net/rpc/
Blog People	http://www.blogpeople.net/servlet/weblogUpdates
BulkFeed	http://bulkfeeds.net/rpc
gooブログ	http://blog.goo.ne.jp/XMLRPC
MyBlog Japan	http://ping.myblog.jp
ココログ	http://ping.cocolog-nifty.com/xmlrpc
ブログ村 Pingサーバー広場	http://ping.blogmura.jp/rpc/
Amagle ping service	http://ping.amagle.com/
ブログスタイル	http://blogstyle.jp/xmlrpc/
JUGEM	http://jugem.jp/?mode=NEWENTRY
bolgoon	http://www.blogoon.net/ping/
人気blogランキング	http://blog.with2.net/ping.php/
ドリコム	http://ping.rss.drecom.jp
エキサイトブログ	http://ping.exblog.jp/xmlrpc
yahoo.com	http://api.my.yahoo.com/RPC2
PING.BLOGGERS.JP	http://ping.bloggers.jp/rpc/

上記のようなping一覧が在るけれど、実際機能していないものが多い。ping送信はもう時代遅れになりつつ在るのかもしれない。そんな時代遅れになりつつ存在なので、自分でping先をいちいち管理するのは、ナンセンスだと思いこの度、pingoo!(https://pingoo.jp/)というサービスのフリープランを使いだしました。因みにスパム屋さんなど、いろいろな方々が登録されているサービスなのでそれを覚悟でお試しください。

それとは別にping送信をコマンドラインから送信するPHPプログラムを作りました。自分が運用しているよさこい動画検索サイトに入れ込んでいます。ソースコードとコマンドは下記になります。

php ping.php ping
<?php

if ($argv[1]=="ping") {
	$nglist = [];
	$server = array(
		"http://ping.fc2.com",//FC2ブログ
		"http://pingoo.jp/ping/",//pingoo.jp
	);

	$site_name = "よさこい動画検索";

	$url_parameter = explode("\n", file_get_contents("../data.csv"));

	for ($i = 0; $i < count($server); $i++) {

		foreach ($url_parameter as $key => $val) {
			$parameter = explode(",", $val);
			$parameter[0] = trim($parameter[0]);
			$parameter[1] = trim($parameter[1]);
			$site_url = "https://yosakoi-video.com/?id={$parameter[0]}&q=" . urlencode($parameter[1]);
			$dev = $content = '<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>' . $site_name . '</value></param>
<param><value>' . $site_url . '</value></param>
</params>
</methodCall>
';

			$options = array('http' => array(
				'method' => 'POST',
				'header' => 'Content-type: text/xml' . "\r\n"
					. 'Content-length: ' . strlen($content),
				'content' => $content
			));
			$context = stream_context_create($options);

			$ret = @file_get_contents($server[$i], false, $context);
			var_dump($server[$i]);
			var_dump($parameter[0]);
			//var_dump($ret);
		}
	}
}

タグ

2, Amagle, blog, BLOGGERS, bolgoon, BulkFeed, cocolog-nifty, com, fc, goo, http, https, JAPAN, jp, JUGEM, MyBlog, NAMAAN, People, ping, pingoo, service, Technorati, xmlrpc, Yahoo, いろいろ, エキサイト, エラー, ココログ, サーバー, サービス, スタイル, スパム, ドリコム, ナンセンス, プラン, フリー, ブログ, ブログ村, もの, ランキング, 一覧, 上記, 人気, , 存在, 実際, 広場, , 方々, 時代遅れ, 機能, 登録, 管理, 自分, 送信,


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

20201102

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


100円で買取1100円で売る。

20201102

Logging

100円で買取1100円で売る。これは買取の適正価格?、ハードオフやブックオフなどの中古買取屋ではそんな感じでものを売っています。売れない商品は100円以下で買い取られたり無料で引き取る形になり、ジャンク品などで売られる場合もある。今日、ハードオフに何か売れるものはないかと見に行ってきたら電源の入らないPS3の本体が3台ほどジャンク品として売られていた。

中身を見ないとわからないけれど、PS3には欠陥があってどこかの基盤のハンダ周りが熱で溶けてしまい、電源が入らなくなる事象があるそうだ。

通称「YLOD」という故障らしい、直し方もググると書いていて技術のある人はトライしてみると良いかなと思いました。因みに電源が入らないPS3(プレイステーション3)が皮肉なことに300円で売られていた。

これらの故障を直して売れる方は300円が3000円に化けるだなと思って見ていた。3000円という値段は最低価格でメルカリだと8000円?1万円前後で売られている。こういう感じで中古屋のジャンク品を買いメンテナンスしてメルカリなどで商品を売ったりしている人も世の中にはいるだろうなと…。

ヤフオクに出品している商品は未だ買い手が現れない、気長に待ちたいと思います。※オークション形式から即決価格で売るように順次対応するつもりです。

因みに「100円で買取1100円で売る。」というタイトルは「100円のコーラを1000円で売る方法」という本のタイトルのパクリです?。

タグ

, 100, 1100, , 300, 3000, 8000, PS, YLOD, こと, これ, これら, ジャンク, どこか, トライ, ハードオフ, パンダ, ブックオフ, プレイステーション, メルカリ, もの, , 中古, 中身, 事象, , 今日, 価格, 値段, 周り, 商品, 基盤, 場合, , 感じ, 技術, 故障, , 最低, 本体, 欠陥, 無料, , 皮肉, 買取, 通称, 適正, 電源,


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

20201101

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