Photo by Anthony : ) on Pexels.com

日本の最低賃金が低いのを見て思うこと。 #最低賃金 #各国の最低賃金

2022.12.05

Logging

おはようございます、仕事が決まりません、早く再就職したいという焦りが出てきましたが、「慌てるカツオは針を…」のことわざを思い出して一呼吸置きます。

Twitterのトレンドに最低賃金が入っていました、見てみると各国の最低賃金と比べて日本の最低賃金はかなり低いことが分かります。コレを見て日本の仕事を請け負うよりも海外の仕事を請け負った方が断然良いことが分かりますよね。

これからは英語を勉強して海外の仕事を取りに行った方がお得だなって思います、この頃、記憶力が衰えてきたように思う自分ですが、この際に英語を身につけるべきだなってヒタヒタと感じます。トイウコトデ、記憶力が上がる薬かサプリメントが欲しいこの頃です。

英語が喋れたら世界がかなり広がると思いますがどうでしょうか?片言の日本語しかしゃべれない自分ですが、思い切って英会話レッスンを受けてみたいと思っていますが、現在、無収入なので先ずはYOUTUBEで何とかしてみようと思っています。こんなアプリも有るみたい人工知能が英会話の発音を矯正してくれるアプリELSAspeak

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

Twitter, You, カツオ, かなり, こと, ことわざ, これ, コレ, サプリメント, トイウコトデ, トレンド, レッスン, 一呼吸, 世界, 仕事, 勉強, 収入, 各国, 就職, , 日本, 日本語, 最低賃金, 海外, 焦り, 片言, 現在, 自分, 英会話, 英語, , 記憶力, , , , ,

映画、THE FIRST SLAM DUNKを観てきました。🔥 #感想

2022.12.03

Logging

映画、THE FIRST SLAM DUNK(ザ・ファースト スラムダンク)を観てきましたので感想を残しておきます、スラムダンクファン必見の映画になっていました。スラムダンクの原作者(漫画家)、井上雄彦 氏の初監督作品ですが、バスケットの試合はめちゃめちゃ躍動感があり内容も良くてめちゃスラムダンク好きには必見の映画です。是非、劇場に足を運んでいただきたい🙇。

逆に言えば、前提知識がないと若干ついていけないのかもしれないけれども、でもバケットの試合シーンを観るだけでも価値ありです、本当にカッコいい映画を有難う!!

映画『THE FIRST SLAM DUNK』CM30秒 試合開始まであと1日【2022.12.3 公開】

今の映画評価は炎上があったりして良くないですが、全然良かったです星5です、学生時代に漫画を読んだ事の有る方なら観るべし映画ですね。因みに最後の最後の最後まで観るとまたまた、おまけ映像が有りますので、エンドクレジットの終わりまで観るべしです。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

5, DUNK, FIRST, SLAM, The, エンド, おまけ, クレジット, , シーン, スラムダンク, パケット, バスケット, ファースト, ファン, , 井上雄彦, , 作品, 価値, 内容, 初監督, 前提, 劇場, 原作者, 学生, 必見, 感想, , , 映像, 映画, 時代, 最後, 本当, 漫画, 漫画家, 炎上, 知識, 若干, 評価, 試合, , 躍動感, ,

30万件のデータを扱っている方の話を聞いて一瞬😱となる。 #laravel #Queue #worker #jobs

2022.12.01

Logging

おはよう12月!!。皆さんおはようございます。今日から寒くなるそうですね。

先日、面談の中で30万件のデータを扱っている方の話を聞いて一瞬尻込みしましたが、自分でもその処理を捌くことが出来そうだなと思ったので、ダミーデータを作って今月中に捌いてみようと思います。なお、ローカルサーバーを使用して捌くのでレンタルサーバーやクラウドサーバーでメモリリークなんかで落ちたりしたらごめんなさい🙇。

因みに30万件のデーターをどう捌いているかといえば、非同期処理(Queue)で捌いているとの事。フレームワークはLaravelを使用し、非同期処理はララベルの機能であるキューを使用してバックエンドで処理を立ち上げているとの事。要は個々プロセス複数立ち上げて並列処理で動かすという事です、プロセスを立ち上げ過ぎたら、メモリ食いすぎてサーバー事態が落ちる可能性があるので別サーバーで動かすのが理想ぽっい、その場合はコネクションの設定してあげないといけない事やプロセスをどれぐらい立ち上がると良いのかなどの設定が必要みたいですね。

php artisan queue:table
php artisan migrate

ともあれ自分でダミーデータを用意して試してみないと感覚が掴めないし、実際上手くいくかなどが分からないので試してみます😳。

明日、1万件のダミーデーターを複製(コピペ)して30万件のエクセルファイル作る方法を記載します。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

12, 30, jobs, Laravel, Queue, worker, エンド, キュー, クラウド, こと, サーバー, ダミー, データ, データー, バック, フレームワーク, プロセス, メモリ, ララベル, リーク, レンタル, ローカル, 一瞬, , 並列, , , 事態, 今日, 今月, 使用, 個々, 先日, 処理, , 可能性, 同期, , 機能, 皆さん, 自分, 複数, , , 面談,

ブログ記事を書く作業/一コマ(キーボードが弾まない) #blog #vlog

2022.11.29

Logging

おはようございます、続けるということは殆どの人にとって簡単なようで難しいことなのかもしれません😗(自分には簡単なことです)。

今日は毎日書いているブログ執筆の作業風景を取ってみました、作業と言ってもブログではそれ程、収益を上げていないので、ある意味奉仕活動のような気もしますが塵も積もれば山となる、ブログも積もれば資産となります。

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

因みに無償で提供している各Webサービスの方が収益を生み出していますし、メンテナンスとたまにする機能追加だけで、ブログの収益を軽く超えています…。そのことが何ともやりきれない感があります、どちらも自分が生み出したものですが、前者は日々の作業が発生し後者はほぼ作業が発生しません。

後者は言うなればマイナスがない株を値動きのようなものですね。でも自分としてはブログで花を咲かせたいです。WEBサービスは勝ちパターンみたいなものが見えてきていますが、まだまだコレではご飯が食べれない。もう三桁ぐらいアクセス数が上がれば質素な生活が送れるかも知れませんけどね。今はまだサーバー代などや各ドメインを相殺するレベルです。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

blog, Vlog, web, キーボード, こと, コレ, サービス, たま, どちら, パターン, ブログ, マイナス, メンテナンス, もの, 一コマ, , 今日, , 作業, 値動き, 前者, 収益, , 執筆, , 奉仕, , 後者, 意味, , 提供, , 日々, , 機能, 殆ど, 毎日, , 活動, 無償, 発生, 簡単, 自分, , 記事, 資産, 追加, 風景,

Photo by Victor Miyata on Pexels.com

理詰め。そんなに変わるだろうかと思う反面。 #人工知能 #シンギュラリティ

2022.11.25

Logging

おはようございます、祝日の昨日は雨でしたね😗。今日は3記事ほど予約投稿出来ました。

そんな中、PIVOTの対談を朝(夜も)から観ていました。佐々木さんと対談された落合陽一さん。落合陽一さん曰く、シンギュラリティは再来年にはやってくるだそうです。

【落合陽一のシンギュラリティ論】シンギュラリティは2025年に来る/ディフュージョンモデルの衝撃/知的ホワイトカラーが没落する/最新版デジタルネイチャー/音楽と論文が数秒でできる

落合陽一さんが得意ではない方もいるかと思いますが、聞いていて日本は遅れているなというのは良くわかります。英語圏の方は人工知能を使用して絵を作成したり、音楽を作成したりすることが容易に出来るけど、日本人は英語力がない人が多いのでテキストで思い通りに人工知能に指示することが出来ない。

【落合陽一の未来予測】シンギュラリティ後の世界と人間/大恋愛時代が来る/国家意識が薄れ、戦争が増える/自分以外は死なない/ロボットが消費者に/体を鍛えて、感じよく生きよ/ビジネス書は意味がない
デジタルネイチャー時代

そんな感じなので、絵を創作するならstability.ai、音楽を創作するならmubert(Mubert-Text-to-Music)を落合陽一さんが使用していたように海外の人たちは、もうこういうツールを使い始めています。日本だけが特殊な環境にあるなって思うところはあります。いろいろな分野にAI(人工知能)が浸透していくのは時間の問題かもしれないと思います。

特にホワイトカラー職は大手から変わるじゃないかと思います。下請けに外注していた単純作業などは恐らくAIに取って代わられる運命に有ると思います。猫も杓子もAIを使いだしたら、世の中は大きく変わるじゃないかな・・・。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, AI, mubert, Mubert-Text-to-Music, PIVOT, stability, こと, シンギュラリティ, ツール, テキスト, デジタル, ネイチャー, , 予約, , 人工, 今日, 佐々木, 作成, 使用, 再来年, 創作, 反面, , 容易, 対談, 得意, 思い通り, 感じ, 投稿, 指示, , 日本, 日本人, 昨日, 時代, 曰く, , 海外, 理詰め, 知能, 祝日, , 英語力, 英語圏, 落合, 記事, 陽一, , 音楽,

md5でいいのかそれで?。 #wp #phpcode

2022.11.17

Logging

おはようございます、いきなり寒くなりましたね。朝起きるのに勢いが必要になってきました😆。

今日はワードプレスでもパスワードの暗号化に使用されているmd5に関して思うことがあります。そもそもmd5は強固な暗号なのか?、答えはnoだと思いますよ。md5を使用すると32文字の暗号化された文字列が返却されます。確かに暗号化されているですけど・・・。同じ文字をもう一度、暗号化すると同じ文字列が返却されます、なので暗号化された文字列になるかどうかで、元の文字が割り出せてしまいます。

総当たりすれば時間はかかりますがパスワードが分かちゃうので、パスワードを保存する方法としては△な感じかと思います。じゃ何が良いかといえばphpの場合、password_hashと言う関数があるので、そちらを使用した方が得策かと思います。Eメールなどはmd5でも良いかも知れませんが微妙。

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

因みに、パスワードなどやメールアドレスを平文で扱っている開発会社はよく見かけます。何故、平文を放置しているかと言えば直す暇がないなどの理由からだと思います。また、クライアント様がそうして欲しいなどの理由もあります。そういう事から個人情報が保護されていないデータベースはあります。

尚、自分が使用しているWEBサービスも個人情報にあたる部分は暗号化しています。なので、データーが流出しても直ぐに情報が漏れるということはないと思っています🫠。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

32, 5, echo, hash, md, no, password, php, PHPCODE, quot, rasmusl, wp, こと, そちら, パスワード, プレス, メール, ワード, 一度, 今日, , 使用, 保存, , 勢い, 場合, 得策, 微妙, 必要, 文字, 文字列, , 方法, 時間, 暗号, 暗号化, , 答え, 総当たり, 返却, 関数,

映画、イントゥ・ザ・スカイ~気球でみらいを変えたふたり #アマプラ

2022.11.13

Logging

おはようございます、昨日は晴天でしたね、この頃、暖かい日が続きます。

さて、遅ればせながら映画、イントゥ・ザ・スカイ~気球でみらいを変えたふたりを観ましたので感想を残しときます。実話を着色した映画になっていますが、よく出来ている映画。映画をあまり観ない人には悪くない評価を得そうな映画です。

【公式】『イントゥ・ザ・スカイ 気球で未来を変えたふたり』2020年1月17日(金)公開/本予告
イントゥ・ザ・スカイ~気球でみらいを変えたふたり~

自分の場合、映画をよく観ているので、ストーリー展開が在り来りかなと思えてしまってどうも見応えたっぷりだったとは言えなかったですが、これは自分の主観なので一般人とはズレているのかなと思います。

まとめ、映画の予告を観て観たいと思った方は観てみても良いじゃないかと思います。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

アマ, イントゥ, これ, , スカイ, ストーリー, ズレ, , ふたり, プラ, ミライ, 一般人, 主観, 予告, , 場合, 実話, 展開, 感想, , , 映画, 昨日, 晴天, 気球, 着色, 自分, 見応え, 評価, ,

Qiitaのfeedを取得して表示するだけのコード。 #php

2022.11.05

Logging

おはようございます、土曜日の朝ですね😗。

今日は文化の日にQiitaにUPしたfeedを取得して表示するだけのコードを書きました。見た目はこんな感じでQiitaの雰囲気を取り入れたデザインにしています。デモ版として実際にサーバーで起動しているモノです、feedを取得しているユーザーは自分を入れて3人です。

表示する人数が多くなるとページを描画する時間が遅くなるので実質、10人が限度かも知れないです。もし何人ものユーザーを取得したいと考えている方は表示部分と処理部分を別けて、尚且つ処理部分は非同期処理で変更することを推奨します。

尚、明日には2つに別けたプログラムコードを別記事として記載しますので、しばしお待ち下さいませ🙇。

今回のソースコードはこんな感じになってます。

<?php
    function get_Qiitafeed(string $feedUrl){
        $xml = @simplexml_load_file($feedUrl);
        if(isset($xml->entry)){
            print("<ul class='qiita_feed-list'>");
            foreach($xml->entry as $key=>$val){
                print("<li><a href='{$val->url}'>".$val->title."</a></li>");
            }
            print("</ul>");
        }
    }
?>
<!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.4/css/all.min.css">
<style>
    .qiita_feed-list > li{
        /* font-weight: bold; */
        color:aliceblue;
    }
    .qiita_feed-list > li > a{
        color:aliceblue;
    }
    body{
        background-color:#60b111;
    }
    .shadow-lg {
        box-shadow: 0 1rem 3rem rgba(255,255,255,.195)!important;
    }    
</style>
<title>Qiita-feed</title>
<?php
    require $_SERVER['DOCUMENT_ROOT'] ."/header_script.php";
?>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1 class="text-light">Qiita-feed</h1>
            </div>
        </div>
    </div>
    <div class="container mt-2">
        <?php
            $Id_List = ["taoka-toshiaki","mpyw","suin"];
            foreach ($Id_List as $key => $id) {
            ?>
        <div class="row shadow-lg p-3 mb-5 bg-body rounded">
            <div class="col-12">
                🌿<span class="text-light">://qiita.com/<?=$id?>/feed :[引用]</span>
                <?=get_Qiitafeed("https://qiita.com/".$id."/feed")?>
            </div>
        </div>            
            <?php
            }
        ?>
        Copyright <?=date("Y")?>  <a href="https://358tool.com">358tool.com</a>
    </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>
</body>
</html>

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

10, 2, , feed, feedUrl, function, GET, lt, php, qiita, Qiitafeed, string, UP, お待ち, コード, こと, サーバー, ソース, デザイン, デモ版, プログラム, ページ, もの, ユーザー, 人数, 今回, 今日, 何人, 処理, 別記事, 取得, 同期, 土曜日, 変更, 実質, 実際, 感じ, 推奨, 描画, 文化の日, , 明日, 時間, , 自分, 表示, 見た目, 記載, 起動, 部分, 限度, 雰囲気,

staticかdynamicか、php-fpmの話。#php #apache

2022.11.01

Logging

おはようございます、メモリが肥大化して落ちました🤮。

先週の朝、メモリが肥大化して落ちてしまいました。今まではphp-fpmを1時間置きに再起動していましたが、それを変更した途端。メモリを食ってしまい落ちたわけです。

php-fpmの対応はこちらのサイトを参考にしました、尚、対応方法はそちらの記事を参照ください。その記事を読んでいて思ったことはやはりサーバーを増強したいということです。

でもVPSレンタルサーバーはサクサク表示させるには、結構お金がかかってしまいます、だったら固定IPを引いて自宅サーバーで運用した方が良いのかもしれないなってこの頃、思っています。

そうすればメモリはかなり詰めるし処理もそれなりに早くなります。恐らく瞬速で表示されるようになりますが、震災などが起きると忽ちダウンしてしまいますよね。

そう考えると・・・微妙ですね。

やはりVPSサーバーをもう一つ借りて調整するか、VPSサーバーと自宅サーバーを同期して運用するかだと…。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, Apache, dynamic, IP, php, php-fpm, static, VPS, お金, かなり, こちら, こと, サーバー, サイト, そちら, それ, それなり, ダウン, はり, メモリ, もう一つ, レンタル, わけ, , 先週, 再起動, 処理, 参照, 参考, 固定, 増強, 変更, 対応, 微妙, , 方法, , 瞬速, 自宅, 表示, 記事, , 途端, 運用, 震災, ,

ポッドキャストの良さに気づく。 #Podcast #時間短

2022.10.24

Logging

おはようございます🌅。本日、ワクチン接種してきます💉💉💉💉。

さて、今になってポッドキャストの良さに気づいてしまいました。動画よりも効率的に情報収集ができます。ながら聞きが出来るので良い。ラジオと違ってダウンロードして聞くことが出来ます。また、ラジオと違うところは自分の聴きたい人、聴きたいジャンルを聞くことが出来ます。

尚、結構ポッドキャストでは無料で色々なジャンルの方が発信してたりしています。お試しじゃなくて全部、無料で話が聞けたりして凄くお得感があります。

ポッドキャストにはグーグルポッドキャストやApplePodcastなど色々なポッドキャストが存在しますが、前文で記載したポッドキャストを覚えておけば事足りると思います。また、ポッドキャストのようなWEBサービスでボイシーという物もあります。こちらのサービスは有名人もいるので良いじゃないかな。

自分もいつまで聞くかは分かりませんが、今は聴いていて飽きないですね。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

ApplePodcast, Podcast, web, いつ, お得感, お試し, キャスト, グーグル, こちら, こと, サービス, シー, ジャンル, ダウンロード, ところ, ボイ, ボット, ポッドキャスト, ラジオ, ワクチン, , , 全部, 前文, 動画, 収集, 存在, 情報, 接種, , 時間, 有名人, 本日, 無料, , 発信, , 自分, 色々, 記載, ,

Photo by cottonbro on Pexels.com

windowsパッケージマネージャー平たく言えば #windows

2022.10.13

Logging

おはようございます、寒さが足元から来る季節になりましたね😖。

さて、今日はwindowsパッケージマネージャーのお話をします。windowsパッケージマネージャーとはなんぞやという方もいると思いますので、簡単な説明を記載しときます。ウィンドウズパッケージマネージャーとは、Windowsにインストールされているソフトの管理をするものです。

Windowsパッケージマネージャーがインストールされていない方は、こちらのURLからインストール下さいませ。

これをインストールする事により何が良いかと言えば、ソフトウェア(アプリ)のアップデートが一括で出来たりします。コマンドプロンプトに下記のコマンドを入力すればほぼ自動でアップデートしてくれてとても便利です。

winget upgrade --all

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

all, upgrade, url, Windows, winget, アップデート, アプリ, インストール, ウィンドウズ, お話, こちら, コマンド, これ, ソフト, ソフトウェア, パッケージ, プロンプト, マネージャー, もの, 一括, 下記, , 今日, , 便利, 入力, 季節, , 管理, 簡単, 自動, 記載, 説明, 足元,

Photo by Abby Chung on Pexels.com

基本情報技術者試験ワード集と単語帳作りアプリで学習の下準備をする方法! #FE #英語 #効率

2022.10.06

Logging

おはようございます、朝、3時半頃から起きています😪。

先日から英語の勉強をアプリではじめました、自分が使用しているのはモノグサというアプリです。このアプリをインストールしたのは二年前の話です、そのアプリを使用して効率良く英単語を覚えていってます、なんかよく分からないけど覚えて行けている🙄。

さて、それとは別に本題のお話です、単語帳作りアプリを使って基本情報技術者試験に出てくるワードを再学習しています。ワードの方は基本情報技術者試験ドットコムから引っ張ってきています、そのワードをCSV化してアプリに入れました。個人的に使用している分にはOKですが、これを公開や共有するとNGになりますので使用時はお気をつけてください🙇。

ワードを収取する方法はブラウザのコンソール画面に下記のコードを貼り付けて収集しました。
基本情報技術者試験ドットコムのキーワード集「あ」から「ん」までのリンクページをそれぞれ開きコンソール画面でコードを実行して、それをUTF8のファイルにペーストして一つのファイルにしてCSV保存。本当はnode.jsでコードを書いて実行でもしようかなと思っていたのですが、それすら面倒くさいと思ったので、こちらの地味な方法を選択しました。尚、行末に必要なカンマを追加して上げてくださいね🙄。

let s = [];
let $moji = function(m){
   return String(m).replace(/[\,|\n|'|"]/g," ");
};
Object.keys(document.querySelectorAll(".big")).forEach((e)=>{
    s[e] = "'" + $moji(document.querySelectorAll(".big")[e].innerText) + "'" + "," + "'" + $moji(document.querySelectorAll("ul > li > div > div")[e].innerText) + "'";
});
copy(s.join("\n"));

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, CSV, FE, NG, OK, アプリ, インストール, お気, お話, キーワード, コード, これ, コンソール, それ, ドットコム, ブラウザ, モノグサ, ワード, 下準備, 下記, , 使用, 先日, 公開, 共有, , 効率, 勉強, , 単語帳, , 収集, , 基本, 学習, 情報, 技術者, , 方法, , 本題, 画面, 自分, 英単語, 英語, 試験, ,

Dockerは楽だなという事を今頃理解しましたよ。 #vbox #docker

2022.10.03

Logging

おはようございます、月曜日の朝はテンション低めな方も多いはず😇。

さて、今日は先週の木曜日と金曜日にふと今後のためにDockerをもう少し触ってみようと思い作業終了後触ってみました、触れて気づいた事は開発環境を作るのがとても楽だということ(気づくの遅い?🫠)。自分は昔の人間なのでvisualboxばかり触っていたのですがDockerは素晴らしい。サーバー周りが得意な人にイメージを作ってもらってそれを共有すれば皆、同じ環境下で開発が出来るので良いという事に今頃気づいた・・・。

 docker run -it -d -v C:\var\www\html\:/var/www/html --privileged -p 80:80 --name こんてな命名 イメージid /sbin/init

※Visualboxでも可能ですけどね。Dockerのだとそこが楽だしマウント(フォルダ共有)もスムーズに行くので自分は良いなと感じました。

ちょっと残念だった点は自宅で作業している中、バッファローのNAS🍆に作業ファイルを入れているのですが、それとは共有出来なかった点です、対応として実PCをrobocopyしてNASと同期を取るという形にしました。これで問題はなくテスト環境下で開発ができます。尚、高級なNASではそういう問題なく上手くいくそうですよ。※NASはバックアップデータになりました。

robocopy <コピー元> <コピー先> /E /DCOPY:DAT

尚、mirのオプションにしなかったのには理由があります。コピー元のファイルが消えたり、ディレクトリが破損した場合、コピー先のファイルやディレクトリが消えて無くなるらしいので・・・。完璧なミラーリングは辞めました。

こんな感じで快適なテスト環境が作れます(上記のコマンド参考に)。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

--privileged, -p, -v, 80, D-, docker, html, ID, init, IT, name, run, sbin, var, vbox, Visualbox, www, イメージ, こと, こんてな, サーバー, スムーズ, そこ, それ, ため, テンション, パス, フォルダ, マウント, , , 人間, 今後, 今日, 今頃, 低め, 作業, 先週, 共有, 可能, 周り, 命名, 得意, , , 月曜日, , 木曜日, 理解, 環境, , 終了, 自分, , 金曜日, 開発,

有難う🎉一年と七ヶ月と二十九日😌で達成。

2022.09.30

Logging

おはようございます、御機嫌よう😋。

アイキャッチー画像とタイトルでお分かりかと思いますが、振り込み金額の上限を超えた為、振り込まれます。この振り込まれたお金の使い道はまだ決まっていませんが、大切に使います😌。

毎月、大体レンタルサーバー費用と相殺出来る金額を稼いでいるようです。先月からサービスを稼働させて3つのサービスで運用しています。これにより今月からまぁまぁな金額が発生してきましたが、それでもこれだけで生きてはいけません。

毎月、15万ぐらい稼いでいる人は強者ですね。やっぱりYOUTUBE始めた方が良いのかな🤔。昔、1000人の登録者でもYOUTUBEは小学生(高学年)のお年玉ぐらい入ると聞いた事があります。今は広告単価が下がっているようなので、もう少し低いかも知れませんが放っといても稼ぎがでるというのは、素晴らしい事ですね。

自分の今後の運営目標は、毎月、お金が振り込まれるようになる事です。これを達成出来れば何とかなりそうな気がします。今の現状、クラウドワークスの仕事が取れなかったら投資で何とか引き落としペイ出来る感じで生きているので・・・。ちゃんと収入が発生するシステムを構築したいなって切実に思います。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

1000, 15, , youtube, あい, お分かり, お年玉, お金, キャッチー, これ, これだけ, サーバー, サービス, タイトル, レンタル, , , , 上限, , 二十九, , , 今後, 今月, 使い道, 先月, 単価, 大体, 大切, 学年, 小学生, 広告, 強者, , , 毎月, , 画像, 発生, 登録者, 目標, 相殺, 稼働, 自分, 費用, 運営, 運用, 達成, 金額,

人生、レベル20~45の方々。 #人生 #相場下落

2022.09.29

Logging

おはようございます、このサイトのユーザー(訪問者)さんの年齢層はレベル20~45が多いそうです。特にレベル30の方がよく見てくれています。有難うございます🙇。また、性別は男性が圧倒的に多いです、ここは女性が多かったらなと思う所がありますが、リアルと現状は変わりません(笑)🤔。

さて、自分は30代後半から投資に興味を持ち出して今では証券口座をいくつか持っています。最初は株式投資などに興味があり、アプリで仮想投資(シュミレーション)などをして、どんなモノかを試してみました。本当に株を買い出したのは最近の話です💦。いま、日本市場も米国市場も下がっていますね、自分が思うのに緩やかにこれからも下っていくと思っていますが・・・未来は不確定です。

未来は誰も分からない。特に10年後の相場なんて分からないし誰も予想できない、米国株、今後も成長すると言われていますが、それは過去の成長を見てそう予測しているのに過ぎなくて本当に成長するのかは誰にも予測するのは不可能です。

「未来は不確定」この頃、こう思う事がよくあります。株式相場に限らず自分の未来も分からないのです、明日の事を言えば鬼が笑うということわざがある通り、明日すら予測不能なんですね。80%は平凡な一日になるかも知れませんが100%断言する事は不可能です。それは未来は知り得ることが出来ないからです。

当たり前の話ですが、ほとんどの人は明日も同じような日が続くと思っているわけです。でも実際は違います、世界は徐々に変わっていきます。なので、10年後の未来は変わっているのです。日々の少しの変化が未来を変える。

トイウコトデ、何が言いたいかと言えば、自分を変えることで未来は変わっていくという事です😌。何を言わんとしているか分かってもらえれば何よりです😄。

今日も一日頑張りましょう!

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

10, 20, 30, 45, アプリ, いくつか, いま, ここ, これ, サイト, シュミレーション, それ, もの, ユーザー, リアル, レベル, 下落, 不確定, 予想, 予測, 人生, , 今後, 仮想, 口座, 女性, 市場, 年齢層, 後半, 性別, 成長, , 投資, , 方々, 日本, 最初, 最近, 未来, 本当, , 株式, 現状, 男性, 相場, , 米国, 自分, 興味, 訪問者, 証券, , , 過去,

一週間の予約が出来るデモコードです。良かったらどうぞ😌。 #php #code

2022.09.17

Logging

おはようございます、今日から台風接近らしいですね。この投稿は昨日書きました。

さて、一週間の予約(時刻表から)が出来るデモコードを書きました。これを書いたキッカケは昔の職場の方がこんな感じのUIを作られていたのを見て、自分も書いてみようと思いDEMOコードを朝起きて調べながら書きました。調べたことは選択を解除する方法だけで、後はオリジナルコードです、設計書も何もなく組み立ていきましたので、欠陥があるかもです。また、Qiitaにも記載しましたが、コメントをほぼ書いていません。書かずともプログラマーなら分かるだろうという感覚です。

予約ー時刻表DEMO

肝心の確認部分は記載していないのにも訳があります。営業妨害になっては駄目だからです。そういう理由で確認部分以降は書いていません。

こちらにもソースコードを掲載しときますね。

<?php
ini_set("display_errors",0);
/**
 * @param array $holiday
 * @return string $str
 */
function fn_header($holiday = [])
{
    $str = "";
    $date = new DateTime();
    for ($i = 0; $i < 7; $i++) {
        !$i ? "" : $date->modify('+1 day');
        $w = $date->format("w");
        $tabindex = $i*7;
        $ho = (function ($days, $holiday = []) {
            return (array_search($days, $holiday) !== false) ? "holiday" : "";
        })($date->format("Y-m-d"), $holiday);
        $str .= "
        <th tabindex=$tabindex>
            <span class='header_no week_no_$w $ho'>" . $date->format("Y-m-d") . "</span>
        </th>";
    }
    return $str;
}
/**
 * @param int $h_min
 * @param int $h_max
 * @param int $m_interval
 * @param array $cnt
 * @param array $reserve
 * @param array $holiday
 * @return string $str
 */
function fn_time($h_min, $h_max, $m_interval,$cnt=[],$holiday = [], $reserve = [])
{
    $str= [];
    for ($h = $h_min; $h <= $h_max; $h++) {
        for ($m = 0; $m < 60; $m = $m + $m_interval) {
            print("<tr>\n");
            $date = new DateTime();
            for ($i = 0; $i < 7; $i++) {
                $cnt[$i]=!$cnt[$i]?(((($h_max - $h_min)+1)*(60/$m_interval))*($i))+7:(++$cnt[$i]);
                !$i ? "" : $date->modify('+1 day');
                $w = $date->format("w");
                $ho = (function ($days, $holiday = []) {
                    return (array_search($days, $holiday) !== false) ? "holiday" : "";
                })($date->format("Y-m-d"), $holiday);
                $time = sprintf("%02d:%02d",$h, $m);
                if ($ho) {
                    print("
                        <td class='' tabindex={$cnt[$i]}>
                            <span class='header_no week_no_$w $ho'>" . $time . "</span>
                        </td>");
                } else {
                    $r = (function ($days, $reserve = []) {
                        return (array_search($days, $reserve) !== false) ? "reserve" : "";
                    })($date->format("Y-m-d") . "_" . $time, $reserve);
                    if (!$r) {
                        print("
                            <td class='date_" . $date->format("Y-m-d") . "_{$time}' tabindex={$cnt[$i]} data-date='" . $date->format("Y-m-d") . "_{$time}'>
                                <a class='time_{$m}_" . $date->format("Y-m-d") . "_{$time}' data-sortno={$cnt[$i]}  href='#?data=" . $date->format("Y-m-d") . "_{$time}'><span class='header_no week_no_{$w} {$h}'>{$time}</span></a>
                            </td>");
                    } else {
                        print("
                            <td class='' tabindex={$cnt[$i]}>
                                <span class='header_no week_no_$w $r'>" . $time . "</span>
                            </td>");
                    }
                }
            }
            $date = null;
            print("</tr>\n");
        }
    }
    return "";
}
?>
<!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/5.1.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <title>予約-時刻表(デモ版)</title>
    <style>
        table,tr,td{
            user-select: none;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-12 text-center">
                <h1 class="display-1">予約-時刻表<br></h1>
                <h5>{予約:時刻をクリックするか、<br>
                    左クリック選択状態で複数選択可能です<br>
                    (日付またぎは禁止しています)}</h5>
                <h5>{ダブルクリックすると予約画面に遷移します。<br>
                    ※DEMO版ですので予約登録画面は御座いません}</h5>
            </div>
        </div>
    </div>
    <div class="container-fluid  text-center">
        <div class="row">
            <div class="col-12">
                <table class="shadow-lg table table-hover table-bordered">
                    <thead>
                        <tr>
                            <?= fn_header() ?>
                        </tr>
                    </thead>
                    <tbody>
                        <?=fn_time(10, 20, 10,[],["2022-09-18","2022-09-23"],["2022-09-19_10:40","2022-09-19_10:50"]) ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.0/js/bootstrap.min.js"></script>
    <script src="./assets/js/main.js?<?=time()?>"></script>
</body>
</html>
let date_obj = document.querySelectorAll("td");
let submit_url = "https://example.com";
let is_date_data = [];
let cnt = 0;

date_obj.forEach(function (elm, key) {
    elm.addEventListener("mouseout", select_in_value);
    elm.addEventListener("click", sp_select_in_value);
    elm.addEventListener("touchend", sp_select_in_value);
    elm.addEventListener("dblclick", select_out_value);
});
function check_value(o, e) {
    if (is_date_data.length === 0) {
        return true;
    }
    let d = o.getAttribute("data-date");
    return d ? ((d) => {
        let f = is_date_data.find(element => {
            let pattern = new RegExp(d.split("_")[0]);
            return !element.match(pattern);
        }) ? false : true;
        if (!f) {
            select_clear(o, e);
            is_date_data = [];
            cnt = 0;
        }
        return f;
    })(d) : false;
}
function select_in_value(e) {
    if (e.buttons === 1 && check_value(this, e)) {
        if (this.getAttribute("data-date")) {
            this.style.backgroundColor = "#555";
            this.children[0].style.color = "#fff";
            if (is_date_data.indexOf(this.getAttribute("data-date")) && is_date_data.indexOf(this.getAttribute("data-date"))) {
                is_date_data[cnt] = this.getAttribute("data-date");
                cnt++;
            }
        }
    }
}
function sp_select_in_value(e) {
    if (check_value(this, e)) {
        if (this.getAttribute("data-date")) {
            this.style.backgroundColor = "#555";
            this.children[0].style.color = "#fff";
            if (is_date_data.indexOf(this.getAttribute("data-date")) && is_date_data.indexOf(this.getAttribute("data-date"))) {
                is_date_data[cnt] = this.getAttribute("data-date");
                cnt++;
            }
        }
    }
}
function select_out_value(e) {
    if (is_date_data.length) {
        let is_data = is_date_data.map(function (elm, index) {
            return "date[" + index + "]=" + elm;
        });
        window.location.href = submit_url + "?" + is_data.join("&");
    }
}
function select_clear(o, e) {
    let is_ClassName = [];
    is_ClassName = is_date_data.map(function (d) {
        return "date_" + d;
    });
    is_ClassName.map(class_name => {
        document.getElementsByClassName(class_name)[0].style.backgroundColor = "#fff";
        document.getElementsByClassName(class_name)[0].children[0].style.color = "#0d6efd";
    })
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

0, Code, com, demo, https, ligaLgY-uZ, php, qiita, UI, watch, www, youtube, オリジナル, キッカケ, コード, こちら, こと, コメント, これ, ソース, デモ, プログラマー, , 予約, 今日, 台風, 営業, 妨害, , 感じ, 感覚, 投稿, 接近, 掲載, , 方法, , 昨日, 時刻表, , 欠陥, 理由, 確認, 職場, 肝心, 自分, 解除, 記載, 設計書, , 選択, 部分, 駄目,

Photo by Adam Fejes on Pexels.com

YOUTUBEで伸びそうな人の共通点は何だろうか?

2022.09.16

Logging

おはようございます、昨日は昼から雨でしたね、秋の雨はまだ良いけど冬の雨は辛いですね。

さてYOUTUBEを見ると、この人は伸びそうだなって思える人とこの人は伸びそうにないと思える人がいると思います、どういう作りにしたら再生回数が伸び、チャンネル登録者が増えるのか、この頃、分かってきた事があります。まず、容姿が良い人尚且つ声の良い人でサムネ画像と動画が綺麗だと伸びます。顔出しせずに声と映像が良い場合も再生回数は結構良いですね。

Figma Auto Layout Card Component Tutorial

何だかよく分からないのですが、上記の質が良ければ、語っている内容がそれ程でも再生回数は良いです、そして学習系だと自分でも出来そうな事の方が伸びて難しいことは伸びない感じですね🤔。

駄目なのは、なんかスッキリしていない背景で何か語っている人は伸びない。どんなに良いことを言っていても再生回数は伸びないみたいです。特に汚い部屋より視聴者はオシャレな部屋を好むみたいです。自分の部屋が汚くても他人の部屋の汚い部屋を見たくないようです😌。

そういう所は食事と同じなのかも知れませんね。

因みに自分もYOUTUBEをたまにUPしていますが、サムネ画像も良くなく、滑舌悪いので突出してチャンネル登録数も伸びそうにありませんが、徐々に更新頻度をUPしていくかも知れません。今、考え中です、あとこの頃、コードを記事をあまり書いていませんが来週あたりから、所々に挟んでいきますので、よろしくお願い致します。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

6, com, https, LWp, pOW, R-Q, watch, www, youtube, こと, サムネ, チャンネル, 上記, , , , 作り, 共通点, 内容, 再生, , 動画, 回数, 場合, , 学習, 容姿, 感じ, , 映像, 昨日, , 画像, 登録者, , 綺麗, 背景, 自分, , , , 顔出し, 駄目,

Photo by Rodolfo Clix on Pexels.com

ヘンテコな学習ヘンテコな呟き😌。説明不足はいつものこと🤔

2022.09.13

Logging

おはようございます、夜中のほうが学習効率高いです🌃。

昨日、一つ出来そうなことを連続的につぶやいたので、それを皆さんが理解できる内容に文章としてまとめたいと思います。まず昨日の晩に下記のつぶやきをしました。これを追って何をしたいのかや何が理解できたのか、分かった方はこれから書くことを読まなくても良い人です。

まず、次のアイディアが生まれました、アクセス解析を自前してサイトの訪問者の動向を事細かに蓄積する事は出来ないだろうか、もし出来たらどのような事が出来るだろうか🤔?考えた結果、ECサイトなら購入する確率、ページ推移の予測などが出来ること、ページ単位だとどの場所にどんなデザインを置けばクリック率が上がるのかなどそういう事が、アクセス解析のデータから割り出す事が出来るのではないかと。

次にページを可視化するには、どうすれば良いのだろうかという疑問。調べていくうちに隣接行列で可視化(数値化)出来ることがわかった。これからどうすれば予測出来るのだろうかと考えた結果。ページの可視化は隣接行列で表わすことが出来るが、今の自分ではココから予測データを導き出せないなと思い、隣接行列は可視化するために使おうと考えを改める。

では、どうすれば予測できるかを考察した。まず機械学習の予測にはどのような種類があるのか、どのようなデータを与えれば適切な予測を導き出すことが出来るのかを調査。最終的にランダムフォレストという手法で予測するのが今の自分でも出来そうな方法ではないかと判断に至った😌。

尚、機械学習で注意しないといけないのは過学習【過剰適合 / オーバーフィッティング】により上手く予測出来なることがあることを注意しないといけない。

そして思ったことは、自分でも出来そうだなって事🤐。もう機械学習は参考書を買わなくてもYOUTUBEやネットで調べれば、なんちゃって機械学習予測は出来るようになっているということ。後はどんなデータを機械に与えるか、そしてどれぐらい学習させるのか。そういう事が大事になってくる事を理解したのだった。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

EC, アイディア, アクセス, いつも, うち, クリック, こと, これ, サイト, それ, データ, デザイン, ページ, ヘンテコ, 一つ, 下記, 予測, , , , 内容, 効率, 動向, 単位, 可視, 場所, 夜中, 学習, 推移, 数値, 文章, , 昨日, , , 理解, 疑問, 皆さん, 確率, 結果, 自前, 蓄積, 行列, 解析, 訪問者, 説明, 購入, 隣接,

1万件のCSVを読み込みテーブルに保存する雛形コード #PHPCode

2022.09.08

Logging

おはようございます、徐々に秋ぽっい日差しになってきましたね(まだ暑いけども😌)。

今日は、1万件のCSVを読み込みテーブルに保存する雛形コードを昨日、ちょちょっと書きましたので記載します。ファイルをダウンロードして使いたい方はGithubのリンクを下に貼っときますので、ご使用頂けたらと思います。尚、テーブルなどはCSVを参考にご自身で構えてください。

※動作環境はPHP8系です、なのでPHP7系では一部エラーが出ます。fgetcsv…nullを0へ変更。

Githubのリンクはこちら

Qiitaの方に記載しようかどうしようか、迷ったのですが第一弾目がアクセス数がそこそこ伸びたのでこれ以上、注目されるのは嫌なのでブログの方に記載しました。1万件のCSVを簡単に読み込ませる方法はPHPコードを書くのではなく、SQLのコマンドで実行した方が実は早いですけど・・・。

https://twitter.com/taoka_toshiaki/status/1567489169919975424
有言実行

早いですけど、その場合、CSVがちゃんとしたファイルではないと上手くテーブルに保存されない場合や、そもそもコマンドラインで操作出来ない場合もあったりしてPHPコードなどで制御しないと駄目な事もあります。そんな時に、このコードをサンプルとして使って頂ければ良いなと思い作りました。

1万件のCSVを読み込ませるPHPコード雛形。

そんなにコードを書かなくてもまぁ動くんですよ。ちなみにソースコードには、あまりコメントを書いていないですが、プログラマーなら大体の人が理解できるレベルかと思います。

<?php
//ini_set("display_errors","On");
session_start();
require "db_config.php";

//読み込みCSVファイル名セット
class csv
{
    /**
     * @param string $filename
     * @param int $cnt
     * @return Object
     */
    public function ini_csv($filename = "", $cnt = 0)
    {
        return new csv_read($filename, $cnt);
    }
}

//CSVデータを読み込ます
class csv_read
{
    var $max = 10000;
    var $cnt = 0;
    var $handle = null;
    /**
     * @param string $filename
     * @param int $cnt
     */
    public function __construct($filename = "", $cnt = 0)
    {
        $this->cnt = $cnt;
        $this->handle =  fopen($filename, "r");
        $_SESSION["offset"] ? fseek($this->handle, $_SESSION["offset"]) : $this->handle;
    }
    /**
     * @param int $header_skip
     * @return Object
     */
    public function reader($header_skip = 0)
    {
        if ($this->handle !== FALSE) {
            $response = null;
            $data = fgetcsv($this->handle, null, ",");
            if (!$header_skip || $_SESSION["offset"]) {
                if ($data !== FALSE) {
                    $_SESSION["offset"] = ftell($this->handle);
                    $response["data"] = $data;
                    $response["cnt"] = $this->cnt > $this->max ? 0 : ($this->cnt + 1);
                    $flag = true;
                } else {
                    $_SESSION["offset"] = null;
                    $flag = false;
                }
            } else {
                $_SESSION["offset"] = ftell($this->handle);
                $response["cnt"] = $this->cnt > $this->max ? 0 : ($this->cnt + 1);
                $flag = false;
            }
        } else {
            $_SESSION["offset"] = null;
            $flag = false;
        }
        return new table_save($flag, $response);
    }
}

//tableにCSVデータを保存
class table_save
{
    var $flag = false;
    var $result = null;
    /**
     * @param boolean $flag
     * @param array  $response
     * @return void
     */
    public function __construct($flag, $response)
    {
        $this->flag = $flag;
        $this->result = $response;
        $this->column_name = "name,,...";
    }
    /**
     * @param string  $column_name
     * @return void
     */
    public function tbl_save($column_name = "")
    {
        if ($this->flag) {
            $column = $column_name ? $column_name : $this->column_name;
            $is_column = explode(",", $column);
            foreach ($is_column as $key => $val) {
                $is_value[$val] = $this->result["data"][$key];
            }
            try {
                $pdo = new PDO(DSN, USERNAME, PASSWORD);
                $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $sql = (function ($is_column) {
                    $INSERTFIRST = null;
                    $INSERTLAST = null;
                    foreach ($is_column as $key => $val) {
                        $INSERTFIRST[] = "$val";
                        $INSERTLAST[] = ":$val";
                    }
                    $INSERTSQL = "(" . implode(",", $INSERTFIRST) . ")values(" . implode(",", $INSERTLAST) . ")";
                    $UPDATESQL = null;
                    foreach ($is_column as $key => $val) {
                        $UPDATESQL[] = "$val = :$val";
                    }
                    return "INSERT INTO " . TABLENAME . $INSERTSQL . " ON DUPLICATE KEY UPDATE " . implode(",", $UPDATESQL) . ";";
                })($is_column);

                $stmt = $pdo->prepare($sql);
                foreach ($is_value as $key => &$value) {
                    $is_type = ($key === "test3" || $key === "test13") ? PDO::PARAM_INT : PDO::PARAM_STR;
                    $stmt->bindValue(":$key", $value, $is_type);
                }
                $this->result["sql"] = $stmt->execute();
            } catch (\Throwable $th) {
                //throw $th;
                $this->result = null;
                print $th->getMessage();
            }
        }
        print json_encode($this->result);
    }
}

//RUN...POST DATA
if (isset($_POST["csrf_token"])  && d_xss($_POST["csrf_token"]) === $_SESSION['csrf_token']) {

    $_SESSION["offset"] = (int)d_xss($_POST["reset_flag"]) === 1 ? null : d_xss($_SESSION["offset"]);
    $filename = d_xss($_POST["filename"]);
    $cnt = (int)d_xss($_POST["cnt"]);

    $column_name = "test1,test2,test3,test4,test5,test6,test7,test8,test9,test10,test11,test12,test13,test14,test15";
    $header_skip = 1;

    $csv = new csv();
    $csv->ini_csv($filename, $cnt)->reader($header_skip)->tbl_save($column_name);
    $csv = null;
} else {
    print "";
}
function d_xss($data){
    $data = strip_tags($data);
    $data = htmlspecialchars($data,ENT_QUOTES);
    return $data;
}
<?php
 // ログインした状態と同等にするためセッションを開始します
 session_start();
 // 暗号学的的に安全なランダムなバイナリを生成し、それを16進数に変換することでASCII文字列に変換します
  $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.4/css/all.min.css">
<title>CSV</title>
</head>
<body>
    <input type="hidden" name="csrf_token" value="<?=$csrf_token?>">
    <span class="h3" id="cnt"></span><br><br>
    <span class="h4" id="read_csv"></span><br><br>
    <span class="h4" id="debug"></span><br><br>
<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>
    window.onload = function(){
        read_csv(0,1);
    };
    function read_csv(cnt,reset_flag){
        try{
            $.ajax({
            type: "post",
            url: "./assets/php/class_csv.php",
            async: false,
            data: {csrf_token:document.getElementsByName("csrf_token")[0].value,reset_flag:reset_flag,filename:"dummy.csv",cnt:cnt},
            dataType: "json",
            success: function (response) {
                    if(response){
                        cnt = response.cnt;
                        document.getElementById("cnt").innerText = cnt;
                        if(response.data){
                            document.getElementById("read_csv").innerText = response.data[0] + response.sql;
                            document.getElementById("debug").innerText = cnt ===21?response.data:document.getElementById("debug").innerText;
                        }
                        setTimeout(function(){read_csv(cnt)},0);
                    }
                }
            });
        }catch(e){
            console.warn(e);
            read_csv(cnt);
        }
    }
</script>
</body>
</html>

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

0, , 7, 8, CSV, fgetcsv, github, null, php, PHPCODE, qiita, SQL, アクセス, エラー, コード, こちら, コマンド, これ, ご使用, ご自身, ダウンロード, ちょ, テーブル, ファイル, ブログ, リンク, , 一部, , , 今日, 保存, 動作, 参考, 変更, 実行, , 方法, 日差し, 昨日, 有言実行, 注目, 環境, , 簡単, 記載, 雛形,

submit(サブミット):送信させない4つの方法です🙄。#javascript #サブミットキャンセル

2022.09.07

Logging

おはようございます、台風一過が去りましたね😌。

さて、今日はsubmit(サブミット):送信させない4つの方法を記載します、方法は大きく分けて2つの方法があり、それを細分化して4つの方法になります。まず、一番目は“送信する際(form側)”にてキャンセルする方法です。この場合、addEventListener(アッドイベントリスナー)でキャンセル処理する場合とonsubmitを使用してキャンセルする方法があります。

サンプルコード例1と例3にあたるコードが上記のコードになります。

次に”ボタンをクリック”した際にサブミット(送信)処理をキャンセルする方法です、この方法でも送信を阻止する事ができます。

サンプルコード例2と例4にあたります、自分としてはフォームで処理した方が良いかなと思いますが、こちらでも送信をキャンセルする事ができます。

尚、ソースコードは下記になります。また、参考にしたサイトのリンクを貼っときます。MDNのリンクです。

    <form id="frm" method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit1</button>
    </form>
    <form method="post" action="./example/">
        <input type="hidden" name="example" value="data">
        <button id="btn" type="submit" class="btn btn-primary">Submit2</button>
    </form>    
    <form method="post" action="./example/" onsubmit="return func1()" >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary">Submit3</button>
    </form>
    <form method="post" action="./example/"  >
        <input type="hidden" name="example" value="data">
        <button type="submit" class="btn btn-primary" onclick="return func2()" >Submit4</button>
    </form>
//例1
document.getElementById("frm").addEventListener("submit",function(event){
    event.preventDefault();
});
//例2
document.getElementById("btn").addEventListener("click",function(event){
    event.preventDefault();
    event.stopPropagation();//インターフェイスのメソッドで、キャプチャおよびバブリング段階において現在のイベントのさらなる伝播を阻止します。 
});
//例3
function func1(){
    return false;
}
//例4
function func2(){
    return false;
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, 2, , 4, addEventListener, Form, javascript, onsubmit, submit, アッド, イベント, キャンセル, クリック, コード, こちら, サブミット, サンプル, それ, フォーム, ボタン, リスナー, , 上記, , 今日, 使用, , , 処理, 台風一過, 場合, , 方法, , 細分化, 自分, 記載, 送信, 阻止, ,

Photo by Valeria Boltneva on Pexels.com

三柱さんちゅ三柱という経営者がいて。それが印象に残っている😌。

2022.08.27

Logging

おはようございます、この頃、映画を見に行けていません😌。

最初のIT会社の社長さんが三柱に拘っていましたが、確かに三柱無いと大変かもしれないなと今でも自分も思っています。三柱とは何か?三つの収益を確保することが大事、Aジャンル、Bジャンル、Cジャンルの事業があれば一つの柱が崩れても、何とか2つのジャンル(事業)で支えることが出来るということです。

この柱が何本もある程、良いと思いますが、経営者ではないので実際どんな物かは分かりません。また、この柱のジャンル(事業)が似通っているより全然違うジャンルの方が強い柱になります。特に不況下でも強い柱があると良いと社長さんが話されていました。

田我流 – Idea (Music Video)
イディアという曲

ちょっと風変わりな社長さんでしたが、経営の事を貪欲に勉強されていた印象が残っています。

今、自分が色々なサイトを立ち上げようとしている中でやはり似通っているジャンルは避けようとしているのは、そういう話を聞いた事があるからです。

自分も最低でも3つの収益を確保出来るサイトを作りたいなと思っていて、1つは微々たるものですが収益が出てきました。あと2つを作ろうとしていて一つはアイディアが出来ていてあとはそれを具現化するだけで良い段階です。もう一つは着手している段階ですが認知して貰うためには競合が多いのでSNSや広告をうちだします、その費用は他のサービスから充てがうのでリリースは遅くなります。

3つ以外にもアイディアはいろいろとあるので同時並行で具現化していきます。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

2, IT, イディア, こと, サイト, ジャンル, それ, ちゅ, 一つ, , 三つ, 三柱, 不況, , , 事業, , 会社, , 何本, 勉強, 印象, 収益, 大事, 大変, 実際, , 映画, , 最初, , , 確保, 社長, , 経営, 経営者, 自分, 色々, 貪欲, , 風変わり,

Photo by ¶Project Atlas on Pexels.com

キャンプや個展は気兼ねなく行けるものなのかも?

2022.08.22

Logging

おはようございます。月曜日の朝ですね、今日から一日のスケージュールを作って活動します。

さて、キャンプや個展などは、コロナ禍であっても気兼ねなく行ける場所なのかもしれないな。キャンプは外だし、個展は基本的に喋ることが無い空間ですからね。そういう意味で今、再過熱していそうです。秋には個展美術展示会など見に行きたいイベントがありますが、どれも県外なので難しいです😭。

話変わって、自分はいまWordPressの過去記事をブロック形式に一括変更できないのか、模索しています。一括変更できるプラグインは恐らく今の段階では作れそうにないです。何故なら公式が提供してくれている記事をブロック変換する物はJavaScriptで変換している。逆から言えば表示される前のデーターを変更するよりもJavaScriptで変換した方がベストと公式サイトのエンジニアが恐らく考えたという事なので、プラグインで作るのは至難の業なのかもしれない。

なので、今回考えたのはSeleniumを使用して解決する方法です。これならそれ程時間もかからず開発できるので、こちらで対応します。尚、出来上がったものを提供するかは今の段階では考えていません。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

javascript, WordPress, イベント, いま, エンジニア, キャンプ, こと, コロナ, サイト, スケージュール, データー, どれ, プラグイン, ブロック, ベスト, もの, , 一括, , , 今日, 個展, 公式, , 場所, 変換, 変更, , 展示会, 形式, 意味, 提供, , 月曜日, , , 模索, 段階, 気兼ね, 活動, , 県外, , , 空間, 美術, 自分, 至難, 表示, 記事, , 過去, 過熱,

来月からのマイネオ20Gをドタキャンした話(見直し)。

2022.08.21

Logging

おはようございます。朝つぶ、昼つぶ、夜つぶを流行らそうとしています(嘘()

来月からマイネオを20Gにしてみようと思っていたのですが、このコロナが落ち着くまで成るべく外出での作業は控えようと思っています。そういう事で20ギガ契約をドタキャンしましたmineoさん、ごめんなさい🙇。

こうやって収入が安定するまでは、いろいろと自分は見直しが必要です。サーバも極力安いサーバに変えたりと固定費は見直すことは結構大事。固定費を下げていくと必要最低限の収入でも生活していけるのかもしれません。因みに自分は今のままでは年金だけで生活できそうにありません…。

国民年金の老後の支払金額を見ると愕然とします。この金額だったら20代から投資信託や株式投資に廻しておけば良かったと大反省しています。20代のNISAの認知力は結構高いらしいです、それぐらい先が不安を感じているだろうなと。

でも、それよりか人生楽しんだ方がお得です。それが今の答えかな、お金を持っていても老後の心配がなくなるだけで活発的に動けるのは若いうちだけだと。そんなお金では変えない時間が大事ですね😌。

自分が老いて生きているかも分からないわけですから、ある程度の貯蓄は必要だと思いますが楽しみを我慢してまでの貯蓄、投資は禁物です。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

20, mineo, NISA, いろいろ, こと, コロナ, サーバ, それ, それぐらい, つぶ, ドタキャン, ネオ, マイ, マイネオ, まま, 不安, , 人生, , 作業, 反省, 収入, , 固定, 国民年金, 外出, , 大事, 契約, 安定, 年金, 必要, 投資, 投資信託, 支払, , , 最低限, , 来月, 株式, 生活, 老後, 自分, , 認知, 金額,

一部のサービスのアクセス数が極端に増えたことで思うこと。

2022.08.16

Logging

おはようございます。今日は3時に起床してみました。たぶん二度寝することになりそうですが🙄。

さて、一部のサービスでアクセス数が極端に増えてたみたいです、昨日の話。基本的に自分は作るまでが楽しくて作ったものは自分では使用しません。バージョンアップやテスト投稿などはしますが、それ以外の書き込みなどは全くです。

極端にアクセス数が増えたりするというのは、大体、シェアや口コミからの流れが多いことがあります。

自分にとってはアクセス数よりも収益に繋がったのかや皆が楽しく使っているのかなどの方が重要です。今、あるサービスでは匿名での投稿が殆どです、投稿内容の質もイマイチです(似たような投稿ばかり)。このまま匿名投稿を継続させるのか、Twitterのアカウントなどソーシャルなアカウントと結び付けないと使えないようにするか考えています。

アクセス解析ツールで分かることは年代、男女の比率、何処からのアクセスなのかなどは分かります。そういう傾向を見ると何だか偏っている、そして何より自分の思惑とはかなり違った方向に行っている気がします。コレばかりは仕方がない事なのかも知れませんが悩みどころですね。

トイウコトデ、検討中です。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, Twitter, アカウント, アクセス, アップ, いまいち, こと, このまま, サービス, シェア, ソーシャル, それ, ツール, テスト, バージョン, もの, 一部, , , 今日, 何処, 使用, 内容, 匿名, 収益, 口コミ, 大体, 年代, 投稿, , 昨日, 極端, 殆ど, 比率, 男女, , 継続, 自分, 解析, , , 起床, 重要,

NewsPicksの☓○☓○ONEを公式でイッキ見。

2022.08.14

Logging

こんばんは、おはようございます?真夜中に更新しています。

NewsPicksのHORIE ONEを数カ月分をイッキ見したので感想とどの回が良かったのかを記載します。まずは、一番良かったのは投資信託の山崎元さんの回ですね。この人、42歳までに12回も転職を繰り返している方で、何となくこの人が言っている言葉は刺さりましたね。自分も結構転職を繰り返しているので、なんか分かる気がする。そしてお金を貯めるよりも頼れる関係を構築したほうが良いというホリエモンの意見も納得です。

安倍元首相逝去で今後の市場への影響は?楽天銀行上場申請の背景に楽天に立ち込める暗雲が【山崎元×堀江貴文】

次に納得したのがネット投票反対の選挙プランナー、三浦博史さん、何故反対意見なのかという意見に説得力がありました。これにはホリエモンも納得していました。

ホリエモンも納得の「ネット投票」最大の問題点とは?当選するのは「政治理念」より「好感度」?【三浦博史×堀江貴文】

次に渋滞の事などを語っていた、東大教授の西成活裕さんです。渋滞の定義の語りなどはタメになりました、また、数学の話は面白かったです。こういう話はあまり日常的には聞かないから。

イグ・ノーベル賞受賞の東大教授に聞く、渋滞が起こらないようにする法則とは?【西成活裕×堀江貴文】

最後に自分にとっては神回の対談を貼っときます。

メタバースを理解できている人は少ない?定義から整理するメタバース議論【佐藤航陽×堀江貴文】

この頃はTVにも出たのである程度認知している人も多くなったのかもで。仮想空間(リアルメタ)を開発している佐藤航陽さん、この人の語り論理的で好きですね。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

12, 42, HORIE, newspicks, one, イッキ, お金, これ, ため, ネット, プランナー, ホリエモン, 三浦, , , 公式, 博史, 反対, , 定義, 山崎元, 意見, 感想, 投票, 投資信託, 教授, , 数学, , 更新, 東大, 構築, , , 渋滞, 真夜中, 納得, 自分, 西成活裕, 言葉, 記載, , 説得力, 転職, 選挙, 関係,