Photo by Meruyert Gonullu on Pexels.com

【実写映画】【漫画】東京リベンジャーズを観ました.漫画だな.

2024.07.01

Logging

おはようございます.漫画、東京リベンジャーズの実写映画を今頃、ネトフリで観ました.完結に感想を書くと漫画的なストーリー展開で少し物足りない感じがしました.もしこれを中学生の時に観ていたら抱く感情が変わっていたんだろうなって思いもあります.

shallow focus photo of an old radio
Photo by Nothing Ahead on Pexels.com

映画って今見ても面白いと思う映画といまだけ面白い映画、そして歳を重ねて観ると理解できる映画があります.いまだけ面白いと思う映画って後から再度見ても刺さらない内容なんですよね.その時の感情や環境と合ってなんか共感できる内容の映画、それはいまだけ面白い映画だと思います.

東京リベンジャーズはそんないまだけ面白い映画のジャンルに入る映画だと思います.因みに東京リベンジャーズ2を観るかどうかは今のところ未定です.尚、ネトフリでは今のところ観れるようになっています.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

Photo by Nothing Ahead on Pexels.com, ジャンル, ストーリー展開, ところ, ネトフリ, 中学生, 内容, 再度, 完結, 実写映画, 少し物足りない感じ, 感情, 感想, 映画, 東京リベンジャーズ, , 漫画, 環境, 面白い映画,

サービスで提供しているサンドボックス使う派?使わない派?どっち?

2024.06.02

Logging

おはようございます、サービスで提供しているサンドボックス使う派?使わない派?ですか?自分は基本的にサンドボックスは仕事では使わない派です.コードの流出に繋がる可能性があるのでほぼ使いません.使うときは、PHPのドキュメントの例文を使用してどんな動きするか確認する時ぐらいです.

この頃はDockerでひとつサンドボックスとして使用する環境を作っています.これで情報漏れを防ぐことが可能です.ちなみにPHPのバージョンもコマンドで切り替えることが可能にしています.

仕事では使わない派ですが個人開発をするときは使用したりします.使用するサンドボックス環境はパイザアイ・オーさんのサンドボックス環境を良く使用します.よく使用する方は自分のアカウントを取得しておくと良いと思っています😌

これからPHPやPython言語を学びたいと参考書を買った方はアカウントを取得し非公開の状態で参考書のコードを試してみるのも良いかと思います.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

docker, php, Python言語, アカウント, コード, コマンド, サンドボックス, サンドボックス使う派, サンドボックス環境, ドキュメント, バージョン, パイザアイ・オーさん, ひとつサンドボックス, 例文, 参考書, 情報漏れ, , 流出, 環境, 非公開,

Photo by Abby Chung on Pexels.com

腕の良いエンジニアの下で

2024.04.23

Logging

おはようございます、腕の良いエンジニアの下で働くのとそうでもないエンジニアの下で働く一年とでは1年後の技術力は違う.こればかしは運になると思うのですが、腕の良いエンジニアがいなくても生成AIを使用するとスキルアップに繋がるので生成AIを使用するのはオススメです.

mountains with white snow
Photo by Pixabay on Pexels.com

今まで自分はコードレビューとかしてくれなかった環境で働いてきたのですが、ここ一年レビューしてくれる環境にいます.これは自分にとって大切な時間だと思っています.有り難いことです.

Supabse でミニアプリ Part 2

この頃YOUTUBEでninoさんというエンジニアさん向け動画を見つけました.初学者向けなんちゃって動画が多い中、ninoさんの動画はちゃんとしている動画だと思います.ただし詳しく学びたい方は会員にならないと駄目なんですが、この人の下で学べば良いエンジニアになれるだろうなって思います.

駆け出しのフロントエンドエンジニアさんで一応エンジニアとして従事しているひとがninoさんのターゲットなのかもしれないなって動画を見て思いました.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ninoさん, Photo by Pixabay on Pexels.com, エンジニア, エンジニアさん向け動画, コードレビュー, この頃YOUTUBE, スキルアップ, ターゲット, ひとがninoさん, フロントエンドエンジニアさん, 会員, 初学者向けなんちゃって動画, 動画, 技術力, 有り難いこと, 環境, 生成AI, , 良いエンジニア, ,

Photo by Pixabay on Pexels.com

ウラ漫

2024.04.20

Logging

おはようございます、ウラ漫を見て思ったことを綴っていこうかなって思います.まず、ウラ漫は漫画家さん目線ではなくて編集者の目線で描かれている動画になっています.それが良いか悪いかは別として漫画を生み出すっていうのは大変だなって思います.

特に週刊連載の漫画は余裕無さそうな気がしてならないし、今では連載という枠を超えた活動している人もいるわけだから、そういう才能をどうやって獲得するかなどが社運を握っているように感じます.

【家賃13万】東大卒・漫画編集者ルームツアー

いや本当に好きでなくては続きそうにない環境だなってヒシヒシと伝わってきます.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ウラ漫, , 余裕無, 動画, 才能, , , 漫画, 漫画家さん目線, 環境, 目線, 社運, 編集者, 良いか悪いか, 連載, 週刊連載,

流体シミュレーション

2024.04.15

Logging

おはようございます、Misaki Nakano(@misaki_mofu)さんの流体シミュレーション作り方を書かれた記事が素晴らしい.これは今年初の「うぉ」っていう驚きの内容でした、分かりやすく丁寧に解説してくれています.まだ半分ぐらいしか良いでいないけど、なんか自分でも出来そうなだなって思える内容.

https://mofu-dev.com/blog/stable-fluids

賢い人には敵わない気もするけど、環境を人を作るのだなって思うこともあります.因みにMisaki Nakano(@misaki_mofu)さんはgithub社に所属しているそうです.いやー天と地ほど能力に差があるけれども、近づけるように努力したいなって思えたwebサイトでした.

明日へ続く.

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

github社, Misaki Nakano, misaki_mofu, WEBサイト, , 内容, , 半分, 地ほど能力, , , 敵わない気, 流体シミュレーション作り方, 環境, 素晴らしい.これ, 自分, 記事, 賢い人,

バッド・ランズを観ました。

2024.01.13

Logging

おはようございます、大晦日にバッドランズを観ました。全然良かったんだけどヤバいなとも思った作品です。バッドランズとは悪地(住みにくい良くない土地)という意味だとか、映画を観ていると何となくだけども、その意味する所が分かる気がする。

環境が人を作るというのが正しいのか分からないけれども、少なからず環境が起因することはあると思います。そういう事を考えながら観ているとちょっと疲れはするものの、どういう結果で終わるのかと思うとやっぱり最後まで観てしまう映画でした。

◤本予告◢ 9/29(金)公開 映画『BAD LANDS バッド・ランズ』

明日へ続く。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

バッドランズ, , 作品, 土地, 大晦日, 悪地, 意味, , 映画, 最後, , 環境, 結果,

新語:物魂電才『ぶっこんでんさい』。#生成AI時代

2023.07.30

Logging

おはようございます、皆さん生成AI使ってますか?自分は日に一回は確実に業務で使用しています。今回はシン・ニホンを書かれた安宅和人 氏の動画をみていて日本結構大変ですね(・・;)。日本は結構瀬戸際に来ているじゃないかなって思います。そして世界も日本と同じ問題を潜んでいるということとか、結構たいへんな課題。

【シン・ニホン 2023:安宅和人】生成AIで起きた3つの変化/AIを議論しすぎ/世界の2大課題は「地球との共存」と「人口減少」/日本の勝ち筋は「物魂電才」/米中は「電魂物才」/ロボットは日本が勝てる

安宅和人 氏を聞いているとAIより世界的な問題などになりつつある。環境の問題などへ焦点を向けているなって思っています。AIの先の話をしているように感じました。まだYOUTUBEにUPされていない後半の部分、恐らくそういう事が今後大事になってくる。

close up photography of group of people
Photo by Sahil prajapati on Pexels.com

AIをどう使い今後の世界的な問題などとどう向き合うかが大切になってくるのではと動画をみていてそう受け取りました🗿。因みにこの記事をUPしている頃にはPIVOTに後半がUPされている頃になると思います。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

AI, Photo by Sahil prajapati on Pexels.com, PIVOT, シン・ニホン, 世界, 使い今後, , 動画, 問題, 安宅和人, 後半, 業務, 瀬戸際, 焦点, 環境, 皆さん生成AI, 自分, , 課題, 部分,

デジタルツインが胸熱かも。NVIDIA強し。

2023.01.21

Logging

おはようございます、毎日、タスクを消化していく日々です。

さて、今日はデジタルツインが胸熱っていうお話です。デジタルツインとはリアルの世界と同じ環境をデジタルの中で作ってシュミレーションして見るというお話です。

Mercedes-Benz Adopts NVIDIA Omniverse for Vehicle Assembly and Production Planning
デジタルツイン

シュミレーションした良い結果は、リアル世界に反映していくという事でとても効率よい方法です。いま、この手法でロボットの学習させたり、自動運転のテストを何度も繰り返してAIに学習させたりしています。ある程度学習を積んだAIでリアル世界で実地テストするという感じです。

因みにこの世界も実は仮想世界かも知れないというのは、否定出来ないのかって思っています。まぁその話はまた今度しますが、デジタルツインは結構胸熱ですよ。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

AI, タスク, デジタル, デジタルツイン, テスト, リアル, リアル世界, ロボット, 仮想世界, 何度, 効率よい方法, 実地, 手法, 日々, 環境, 程度学習, 胸熱, 自動運転, 良い結果, ,

dockerでlaravel環境構築したお話。 #hosts

2022.12.08

Logging

おはようございます、今日は早朝に明日の記事を書いています😆。

さて、dockerでlaravel環境構築したお話を書いていきます、Dockerの環境でApacheをインストールし、バーチャルホストを設定してwindows側のhostsも変更しDocker側のhostsも設定、起動確認も取れたので、一旦Dockerを終了し再度立ち上げるとDocker側のhostsが初期値に戻っている🤔。

これDockerの仕様らしいので、下記のようにdocker-compose.ymlを設定(extra_hosts)するか、Docker runでコンテナを立ち上げる場合はパラメーター–add-hostを付与してあげないといけない😳。

version: "3"
services:
  web:
    image: almalinux:latest
    container_name: Apache_v2.4
    ports:
      - 80:80
    privileged: true
    command: /sbin/init
    extra_hosts:
      - "example1.com:127.0.0.1"
      - "example2.com:127.0.0.1"
    volumes:
      - E:\var\www\html:/var/www/html
docker run --add-host=example1.com:127.0.0.1 .....

尚、Docker側のhostsを変更しないまま、立ち上げてもLaravelは動かないと思います。何故、動かないかはここでは割愛させて頂きます🙇。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

--add-host, , almalinux, ap, Apache, container, docker, docker-compose, extra, hosts, image, Laravel, latest, name, quot, run, services, Version, web, Windows, yml, インストール, お話, これ, こんてな, バーチャル, パラメーター, ホスト, 一旦, 下記, 今日, 仕様, 付与, , 再度, 初期, 場合, 変更, 早朝, 明日, 構築, 環境, 確認, 終了, 記事, 設定, 起動,

Photo by Alexander Grey on Pexels.com

諦めたいと思った時が続ける時だ。 #KeepGoing

2022.11.24

Logging

おはようございます、昨日はPM4時頃から晴れましたね、高知県の話ですけどw。

さて祝日後の仕事は憂鬱かもですね。そんなモチベーションを下がった時に見る動画。動画でも強調している継続(努力)出来ない人が多い、継続は力なんだと思いますよ。

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

因みに、仕事で大事なのは何かと言えば気持ちです。前向きな気持ちになれる環境が大事になります、人を貶しているような環境の職場ヤバい、そんな環境では生産性は上がりません。そういうのは伝染します、そうなったら足の引っ張り合いが始まり大きな発展はしません。

環境作りは大事だということ、皆がやるぞという環境を作るのが上司の役割なのかなって思います、ダメなものはダメだという意識付けが大事なんだと思います。

マインドが大事、それは技術よりもです、技術は熟していくと最低限の技術は付きます。人を称えない会社に未来あるのかな🤔。

頑張りましょう、いってらっしゃい!!。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

4, KeepGoing, PM, , こと, それ, ため, マインド, モチベーション, もの, 上司, , 仕事, 会社, 伝染, , 前向き, , 努力, 動画, 大事, 強調, 役割, 意識, 憂鬱, 技術, 昨日, , 最低限, 未来, 気持ち, 環境, 生産性, 発展, , 祝日, 継続, 職場, , , 高知県,

Photo by Ender Vatan on Pexels.com

文字数カウントは奥が深いよ。日本語より𓅇エジプト😇 #javascript #code #プログラミング #unicode

2022.10.05

Logging

おはようございます、先日(日曜日のこと)は久しぶりに本屋さん巡りしていました😋。本屋📖は良いですね落ち着きます。

さて、文字コードのカウントは奥が深いなって話を記載していきます。人目線からすれば文字をカウントするという至って簡単な話にですが、PC(コンピューター)にとっては奥が深いです・・・日本語漢字も面倒だけどエジプト系の象形文字系(unicode)は本当に面倒そうです。まだ、作りかけですがツイッターの用な文字コードのカウントするjavascriptコードを書きましたのでサンプルコードとしてご使用ください

※WindowsOSの環境下でChromeブラウザ動作させ検証しました。コピペ文字には対応していません😇。UTF-8 ではない違う文字コードを貼り付けてみてください、変なことになると思います😂。例えばEUC文字コードだとか・・・。

動作サイトはこちらです。

        function moji(o) {
            let m = o.nextElementSibling;
            //ads
            let h = ((o) => {
                let l = o.value.match(/(https?:\/\/[a-z|A-Z|0-9|\-|_|%|\.|\/]{0,})/giu);
                let ml = l ? ((l) => {
                    return sum = l.reduce((s, e) => {
                        return s + e.length;
                    }, 0);
                })(l) : 0;
                return l ? {
                    len: (l.length * 23),
                    mlen: ml
                } : {
                    len: 0,
                    mlen: ml
                };
            })(o);
            //zenkaku            
            let k = ((o) => {
                let l = o.value.match(/[^\x20-\x7e]/giu);
                let ml = l ? ((l) => {
                    return sum = l.reduce((s, e) => {
                        return s + e.length;
                    }, 0);
                })(l) : 0;
                return l ? {
                    len: (l.length * 2),
                    mlen: l.length
                } : {
                    len: 0,
                    mlen: ml
                };
            })(o);
            m.innerHTML = "【 " + (o.value.length + h.len - h.mlen + k.len - k.mlen) + "文字{半角/280} 】";
            if ((o.value.length + h.len - h.mlen + k.len - k.mlen) >= 280) {
                m.innerHTML = "<span class='text-danger'>【 " + (o.value.length + h.len - h.mlen + k.len - k.mlen) + "文字{半角/280} 】</span>";
            }
        }
                    <label for="my-textarea" class="h3">文字を入力してください。</label>
                    <textarea id="my-textarea" class="form-control" oninput="moji(this);" name="" rows="3"></textarea>
                    <span class="h3"></span>

尚、サンプルコードは1バイトを一文字としてカウントしていきます、そしてURL文字はどんなに長くても23文字にカウントされます、これはTwitter社の仕様と合わしています。URL文字はURL短縮が行われ23文字の短縮URLが生成されるからその様にカウントしているのですが、なんか本物と違うですよね挙動が・・・🙇‍♂。因みに絵文字がどのようにカウントされるかは確認していません。

UTF8では絵文字(unicode)を3バイトで表記させているそうです。昔、UTF-8は2バイトで表現しているとか習っていたのですが、それはカナリ古い知識だったみたいです😇。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

8, Chrome, Code, EUC, javascript, PC, Unicode, UTF-, WindowsOS, エジプト, カウント, コード, こと, コピペ, コンピューター, サンプル, ツイッター, ブラウザ, プログラミング, 久しぶり, 人目, 使用, 先日, 動作, , , 対応, , 文字, 日曜日, 日本語, 本屋, 本当, 検証, 漢字, 環境, , 簡単, 記載, , 象形, 面倒,

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, イメージ, こと, こんてな, サーバー, スムーズ, そこ, それ, ため, テンション, パス, フォルダ, マウント, , , 人間, 今後, 今日, 今頃, 低め, 作業, 先週, 共有, 可能, 周り, 命名, 得意, , , 月曜日, , 木曜日, 理解, 環境, , 終了, 自分, , 金曜日, 開発,

Photo by NEOSiAM 2021 on Pexels.com

Sqliteで作った簡易掲示板のコードを配布致します。#php #code

2022.09.20

Logging

おはようございます。台風は過ぎ去りましたがせっかくの三連休が残念です💦。

今日は先日、Sqliteを使用して簡易掲示板を作ってみましたのでコードを配布致します、尚、PHP8の環境下で動作させています(PHP7系でも動作すると思います)。

Sqliteってnow()関数がなかったりだとか、Deleteする時に、noカラムを昇順しlimitを使用して削除出来ないだとか、いろいろとMysqlとは違う所があり、面倒だなと思いながらコードを書きました、尚、SqliteはWebサーバーの階層に置かないように、置いても良いですが・・・。そのままの状態だと誰でもダウンロードが可能になってしまいますのでご注意ください。自分は地下に眠らしています😅。

一応、二重投稿防止の為に20秒経過しないと再投稿出来ないようにしています😌。トライしていない事は禁止ワード等がありません🤔。つけようと思ったのですがまぁ良いかなと、、、。

動作している環境のリンクはこちら。

https://reborn9.sakura.ne.jp/

軸となるPHPのソースコードを2つ貼っときますね。

<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="Description" content="Enter your description here" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/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">
    <link rel="stylesheet" href="assets/css/style.css?<?= time() ?>">
    <title>掲示板</title>
</head>

<body class="p-3 text-white">
    <div class="p-4 shadow rounded" style="background-color:#d6dbdf;">
        <div class="container mt-5">
            <div class="row">
            <div class="col-12 text-center">
                <h1 class="shadow" style="color:#195a57;">掲示板::version 2.5</h1>
            </div>
                <div class="col-12">
                    <div class="input-group shadow rounded">
                        <div class="input-group-append">
                            <span class="input-group-text bg-dark text-white" id="my-addon">ニックネーム</span>
                        </div>
                        <input class="form-control" type="text" name="name" placeholder="ニックネームを入力" aria-describedby="my-addon">
                    </div>
                    <div class="form-group shadow rounded">
                        <label for="my-textarea">コメント</label>
                        <textarea id="my-textarea" class="form-control" name="comment" rows="7"></textarea>
                    </div>
                    <button id="btn" class="mt-2 btn btn-info text-white shadow rounded" type="button">投稿する</button>
                </div>
            </div>
        </div>
        <div class="container mt-5">
            <div class="row">
                <div id="view" class="col-12"></div>
            </div>
        </div>
    </div>
    <footer>
        <a href="/">TOP</a> :: © Reborn9.sakura.ne.jp <?=date("Y")?>
    </footer>
    <input type="hidden" name="csrf_token" value="<?= $csrf_token ?>">
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
    <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>
<?php
class db
{
    var $pdo = null;
    function __construct()
    {
        try {
            $this->pdo = new PDO("sqlite:../../bbs.sqlite3");
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        //code...
        } catch (\Throwable $th) {
            //throw $th;
            print $th->getMessage();
        }
    }
    function select_limit()
    {
        if($this->pdo){
            $stmt = $this->pdo->prepare('select * from bbs order by no desc limit 0,5');
            $stmt->execute();
            $result = $stmt->fetchAll();
            $stmt = null;
            $this->pdo = null;
            return new view($result);
        }
    }
    function insert($name,$comment,$sns_cnt=0)
    {

        try {
            $stmt = $this->pdo->prepare('INSERT INTO bbs (`time`,`name`,`comment`,sns_cnt)values(strftime(\'%Y年%m月%d日 %H時%M分%S秒\',CURRENT_TIMESTAMP, \'localtime\'),:name,:comment,:sns_cnt)');
            $stmt->bindParam(':name', $name, PDO::PARAM_STR);
            $stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
            $stmt->bindParam(':sns_cnt', $sns_cnt, PDO::PARAM_INT);
            $stmt->execute();
            $stmt = $this->pdo->prepare('DELETE FROM bbs WHERE bbs.no = (SELECT no from bbs ORDER BY no ASC LIMIT 1);');
            $stmt->execute();
            $stmt = null;
            $this->pdo = null;
            return true;
        } catch (\Throwable $th) {
            print $th->getMessage();
            return false;
        }
    }
}

class view{
    var $item = null;
    function __construct($item)
    {
        $this->item = $item;        
    }
    function view_item($item="")
    {
        try {
            $item = $item?$item:$this->item;
            ob_start();
            ?>
            
            <?php
            foreach($item as $key=>$value){
                ?>
                <div class="mt-2 row txtbox shadow rounded">
                <div class="col-3 name_<?=$value["no"]?> rounded-start fs-6">
                    ニックネーム::<?=$value["name"]?>さん
                </div>
                <div class="col-9 time_<?=$value["no"]?> fs-6">
                    投稿日時::<?=$value["time"]?>
                </div>
                <div class="col-12 comment_<?=$value["no"]?>">
                    <?= nl2br($value["comment"])?>
                </div>
                <div class="col-12 sns_cnt_<?=$value["no"]?>">
                    <!-- <?=$value["sns_cnt"]?> -->
                </div>
                </div>
                <?php
            }        
            ?>
                
            <?php
            $ret["view"]= ob_get_clean();
            $ret["msg"]= "done";
    
        } catch (\Throwable $th) {
            //throw $th;
            $ret["msg"] = "error";
        }
        return $ret;
    }
}

session_start();
$ret = null;
$mode =  xss_defence($_POST["mode"]);
// $time =  ;
$name =  xss_defence($_POST["name"]);
$comment =  xss_defence($_POST["comment"]);
$sns_cnt =  (int)xss_defence($_POST["sns_cnt"]);
if (isset($_POST["csrf_token"]) 
 && $_POST["csrf_token"] === $_SESSION['csrf_token'] && (function($t){
    return time() - $t > 20?true:false;
 })($_SESSION["save"])) {
    if($mode==="save"){
        $name = !preg_replace("/[ | ]/","",$name)?"匿名":$name;
        $comment = !preg_replace("/[ | ]/","",$comment)?"":$comment;
        if($comment){
            $db = new db();
            $db->insert($name,$comment);
            $_SESSION["save"] = time();
        }
    }
    $db = null;
    $db = new db();
    $ret = $db->select_limit()->view_item();
    print  json_encode($ret);
}
function xss_defence($value){
    if(is_array($value)){
        foreach($value as $key=>$val){
            $value["$key"] = strip_tags($val);
            $value["$key"] = htmlspecialchars($value["$key"],ENT_QUOTES);
        }

    }else{
        $value = strip_tags($value);
        $value = htmlspecialchars($value);
    }
    return $value;
}

配布コードはこちらです。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

20, 7, 8, Code, Delete, LIMIT, MYSQL, no, Now, php, Sqlite, web, いろいろ, カラム, コード, ご注意, サーバー, せっかく, そのまま, ダウンロード, トライ, ワード, 三連, , , 今日, , 使用, 先日, 削除, 動作, 可能, 台風, 地下, , 投稿, 掲示, 昇順, , 残念, , 状態, 環境, 禁止, 簡易, 経過, 自分, , , 配布, 関数, 防止, 階層, 面倒,

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, アクセス, エラー, コード, こちら, コマンド, これ, ご使用, ご自身, ダウンロード, ちょ, テーブル, ファイル, ブログ, リンク, , 一部, , , 今日, 保存, 動作, 参考, 変更, 実行, , 方法, 日差し, 昨日, 有言実行, 注目, 環境, , 簡単, 記載, 雛形,

先日、サーバーを移行しました。AWSさようなら。

2022.06.30

Logging

おはようございます。初夏らしいですが初夏? 増暑です…😆。映画、SLAM DUNKが待ち遠しいです。

其れはさておき、サーバーをAWSからさくらVPSサーバーに移行しました、迷っている暇は無かった・・どんどんと経費がかさむので止む得なく急遽、平日の休みを使用してサーバーを移行しました。移行したんだけど、少しミスってアクセスの多いサーバーを見えなくなるという現象が出てしまいました。40分ほど閲覧できなくなってしまっていた。

結構焦りますよね。

閲覧できない状態が数時間とか続いたら大変ですよ本当に…。仕事では失敗したくないなって思います。今回の反省点はやはりサーバー移行すると何かしら環境が違うので動かなかったりする。

そういう時は落ち着いて深呼吸でもして、ログを見ることが大事、結局のところログに答えが載っていることが多いです。今回もそんな感じでした。

因みに以前書いた、サーバー移行時にscpを使う方法。これはFTP使用するよりも時間短縮になるから覚えていたほうが賢明です。

scp -irp /~/example.pem /var/www/html/* root@example.com:/var/www/html/
# scp -irp [鍵.pem] [転送元ディレクトリ] [ユーザー@ホスト:転送先ディレクトリ]

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

40, AWS, DUNK, SCP, SLAM, VPS, アクセス, こと, サーバー, さくら, ところ, ミス, ログ, 今回, 仕事, 以前, 休み, 使用, 先日, 其れ, 初夏, 反省点, , 大事, 大変, 失敗, 少し, 平日, 感じ, , 方法, 映画, , , 本当, 深呼吸, 状態, 現象, 環境, 移行, 経費, 閲覧,

Photo by Michal Hajtas on Pexels.com

物体認識ではラズパイが必ず必要でもないとふと思った。

2022.06.24

Logging

おはようございます。記事の投稿の時間帯から変えようか悩んでいます。

さて、今日のお題は「物体認識ではラズパイが必ず必要でもないとふと思った。」です。Iot(Internet of Things)で脚光を浴びたのが小さなパソコンとも言われるラズベリーパイです。これを使用して温度計や湿度、気圧などを測ったりそれを記憶出来たりします。ラズパイにカメラを接続し機械学習させて物体認識なども可能です。

ただ、物体認識に言えばお使いのWindowsやMacの入ったパソコンでもそういや出来てしまうなと思ったので、それを記事にしました。物体認識で重要なのはやはり学習なのですが世の中にはオープンソースで機械学習をある程度してくれているモデルが出回っています。なので、そちらをベースに再学習させる事により学習が可能かと思います。

物体認識するためには、WEBカメラが必要ですし、機械学習が出来る環境構築も必要になります。例えばTensorFlow(テンソルフロー)が動作出来る環境だとか、、、因みに古いパソコンでもTensorFlow(テンソルフロー)のバージョンを変えれば動きます。githubのmasterを使用せず古いバージョンを使いさえすれば。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

Internet, IoT, Mac, of, te, Things, web, Windows, オープン, お使い, カメラ, これ, ソース, そちら, それ, ため, はい, パソコン, ベース, モデル, ラズ, ラズベリー, , , , 今日, 使用, 可能, 学習, , 必要, 投稿, 接続, 時間, 構築, 機械, 気圧, 温度計, 湿度, 物体, 環境, 脚光, 記事, 記憶, 認識, 重要, ,

Photo by Josh Sorenson on Pexels.com

Windows10~起動時にアプリ(ソフト)を自動起動させる方法です。

2022.06.23

Logging

おはようございます。隠しフォルダーが見える環境です。

さて、今日のお題はITエンジニアなら朝飯前のことだと思います。「Windows10~起動時にアプリ(ソフト)を自動起動させる方法です。」知らなかったら恐らくとても運の良いITエンジニアかと思います。方法を箇条書で記載しますねーーー😌。

  1. 隠しフォルダが表示できるようにエクスプローラーの設定を変更します(ググって)。
  2. 下記のフォルダ場所まで移動します(ユーザー名はご自身の環境によって違います)。
  3. 移動したフォルダにご自身が自動起動したいアプリのショートカットリンクファイルをコピペ(コピーアンドペースト)します。
  4. 再起動してみてアプリが自動起動している事を確認する。
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

職場のPCが変わったりした時は必ず最初にやっていた作業になります。これをすることで出社しPC立ち上げ後、アプリの立ち上げなどは全くしなくて良くなります。因みにショートカットリンクにパラメーターを与えてあげることで、もっと短縮できる可能性があります。そこは割愛します。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

10, AppData, IT, menu, microsoft, PC, Programs, Roaming, start, Startup, users, Windows, アプリ, アンド, エクスプローラー, エンジニア, こと, コピー, コピペ, ご自身, ショートカット, ソフト, ファイル, フォルダ, フォルダー, ペースト, ユーザー, リンク, 下記, , 今日, 再起動, 場所, 変更, 方法, , 朝飯, 環境, 確認, 移動, 箇条書, 職場, 自動, 表示, 記載, 設定, 起動, , ,

サーバーの引っ越しのヒントです。いや答えですねw😌

2022.06.16

Logging

おはようございます。あと一ヶ月もすれば炎天下の下でお仕事をする人もいるでしょう。大変ですね。

昔はよくサーバーの引っ越しを仕事でしていました。代わりに誰か出来る人もいなかったので自分が行っていましたが、サーバーの引っ越しほど時間のかかる仕事はありません。

scp -r -p /var/www/html/ user@example.com:/home/user/www/
scp [コピー元のファイル] [コピー先のユーザー名@コピー先のホスト] [コピー先のファイル]

何より責任、重大ですから色々と経験して思ったのは、サーバーの移行作業後に何らかの「動かない」というバグとりを速やかに行えるかどうかが大事かと思います。それはある意味、経験が物を言う世界かもしれません。こんなズブの素人でも少しだけサーバーの事を理解できたので、今思えば良いことなのかもしれません。

因みに上記に記述しているコマンドを旧サーバー環境で実行すれば新サーバーへファイル転送出来ます。いちいちFTPソフトでダウンロードしてアップロードするという事を行わなくて良いです。そして何よりパーミッションやタイムスタンプまで引き継いでくれるので便利かと思います。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

-p, -r, com, example, home, html, SCP, user, var, , www, お仕事, こと, コピー, コマンド, サーバー, それ, どり, バグ, ヒント, ファイル, ホスト, ユーザー, , 上記, , 世界, , , , 仕事, 何より, 作業, 大事, 大変, 実行, 少し, 引っ越し, 意味, , 時間, 炎天下, , 理解, 環境, 移行, 答え, 素人, 経験, 自分, 色々, 記述, , 責任,

そろそろPHPのバージョン引き上げしないと駄目。WPの話。

2022.06.09

Logging

おはようございます。お腹が痛くなるとそれが一週間ほど続いたりします😭。

今日のタイトルは「自分のサーバーのPHPバージョンをアップさせない駄目。WPの話」です。いつの間にかWordPressのバージョンが6になりましたよね。いまの推奨環境ではPHP7.4以上になっています。ワードプレスのロードマップがどうなっているかは知りませんが、そのうちPHP7.4は非推奨になり何れ動作しなくなることは目に見えているので、近々、PHPのバージョンアップを行いたいと思います。

その際はサーバーを停止することもあるので、表示されないという事象が起こる可能性があります。

尚、cgi-binを使用して動かすようになると思います。エンジンエックスでcgi-binを使用するのは初めてですので、長い間、サーバーが不安定な状態になるかもしれません。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

6, 7.4, cgi-bin, php, WordPress, wp, アップ, いま, うち, エックス, エンジン, お腹, こと, サーバー, それ, タイトル, バージョン, プレス, マップ, ロード, ワード, , 不安定, 事象, 今日, 何れ, 使用, 停止, 初めて, 動作, 可能性, 推奨, 状態, 環境, , 自分, 表示, , , , 駄目,

Photo by Archie Binamira on Pexels.com

先を読む。未来を読む。

2022.05.31

Logging

おはようございます。5月も最後ですね、今年は梅雨入りしても即、梅雨明けするじゃないかって思っています。それがぐらい晴天の日が多い気がします。

今日のお題は「先を読む。未来を読む。」です、この力は何だか人より自分は強い気がします。そんな自分が今、未来はこうなると思っているのは、プログラマーという職は数十年後にはなくなっている気がする。コードはAIが自然言語から理解し生成してくれるので、AIが書いたコードを修正する人や正しく機能しているかなどを修正する人が必要になるぐらいなる。

デジタルの価値は限りなくZEROに近くなると思います。誰でもサービスが創り出せる世の中が到来する。これからはプラットフォームやコミュニティーを作れる人のほうが将来性があると思っていて、デジタルを知っていてそれを活かしつつ人との繋がりを提供するそういう環境やサービスを提供するほうが良いと考えている。昔も今も人は欲している。特に同じ考えを持った人々と語り合いたいと思っているので、デジタルを入り口にそういう環境を提供する人が生き残っていくだろうと。

banvox – open your eyes (feat. core mc)

自動運転だけが走る世の中になる、これは数十年先の話だけど恐らくそうなる。そうなったら殆ど交通事故がなくなるので、交通事故が重大事件のように放送されるだろうな。

自分たちが生きているうちに若返りが出来るようになる。たぶん、数年後には若返りの方法は発見され治療法が確立されるのに数年かかると思うけど、若返りは可能になると思います。それも注射一本で効果が現れると思います。これで世の中、大きく変わる特に日本は後期高齢者社会だったものが・・・、大きく変わると思います。

自分が考える未来を箇条書きに書いてみました…。こんなの当たらないよとか、失笑するかも知れませんが、多分これ。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

5, AI, ZERO, コード, コミュニティー, これ, サービス, それ, デジタ, デジタル, プラットフォーム, プログラマー, , , , 人々, , 今年, 今日, 価値, 修正, , 到来, , 将来性, 必要, 提供, 数十, , , 晴天, 最後, 未来, 梅雨入り, 梅雨明け, 機能, , 理解, 環境, 生成, , 自分, 自然, 言語, , ,

Photo by Markus Spiske on Pexels.com

開発環境はクラウドに持つべきか?いなか?悩ましすぎる問題🤔。

2022.05.29

Logging

おはようございます。

今まで開発環境はオンプレでしていましたが、外で開発した時やパソコンを買い替えるとデータなどをそのたびに移行しないといけなくなるという手間が発生したり、今ではあまり起きないのですがデータが消えたりする場合もありますよね。そう思うともうクラウドに開発データを移行しようかなって思っています。

MacBook Pro 14" M1 Pro Review For Programming

いろいろ調べた結果、開発データは手持ちのデータを使用してクラウドを使用する方法はあったのだけども全部クラウドで完結できる方法はイマイチ・・・、クラウドPCの中で開発するしか無さそうですね。実際、クラウドPCを使用したことがないのでなんとも言えないですが、それだと遅延などが発生しそう。

よってこの方法がベストかと思いました。

  1. 個人開発なのでローカルのデータをクラウドサーバーに転送後、削除。
  2. VScode拡張機能のsftpをインストールしてリモートでサーバーに接続。
  3. リモート側のデータを直接修正する。
  4. デプロイしたい場合はデプロイしたいサーバーへ転送。

因みにこんなサービスあるにはあります。githubを使用したりして・・・。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

PC, SFTP, VScode, いなか, いまいち, いろいろ, インストール, オン, クラウド, こと, サーバー, それ, たび, データ, パソコン, プレ, ベスト, リモート, ローカル, , , 使用, 修正, 個人, 全部, 削除, 問題, 場合, , 完結, 実際, 手持ち, 手間, 拡張, 接続, 方法, , 機能, 環境, 発生, 移行, 結果, 転送, 遅延, 開発,

Photo by Pixabay on Pexels.com

ゲームみたいに限界突破は簡単には出来ないけど何か😌

2022.05.09

Logging

おはようございます。

今日のお題は「ゲームみたいに限界突破は簡単には出来ないけど何か」。技術が必要とされている環境で自分の技術がそれを満たしていないことってあると思います。それで挫折する人も多くいると思いますが、どうやって限界突破を超えて改な技術を身に着けることが出来るか。

簡単に言えば毎日の鍛錬しかない、近道もない。ただ、勉強することや技術のために試行錯誤しながら身につけるしか無く、それが今日明日で身につく保証もないのです。もともと能力のある人ならそれほど時間をかけずに改な能力を身につけることが出来るかも知れませんが、凡人だとそうもいかない場合もあります。

FINAL FANTASY XVI “AWAKENING”

こんな事を書いたのは、自分もプログラムを勉強していて何度も壁にぶち当たった事がありました、結局、自分で勉強して身につけるしか無く誰かに助けてくれるわけでもないのです。

何故ならプログラムって数学みたいなもので自分で意味を理解しないと使いこなす事ができないようになっていたりします。なので、勉強や鍛錬しか限界突破することは出来ません。

そこの業界で仕事をしたいのならばやはり、頑張るしかない。でも、精神が蝕むまで頑張るのは辞めましょう。悔しい気持ちもあると思いますが、そこは諦めて新たなステージに目を向けたほうが賢明かと思います。今までやってきたことを全然活かせない職場に飛び込むのも良いかも知れません。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

ゲーム, こと, それ, ため, プログラム, もの, わけ, , , 今日, , 何度, 何故, 保証, 凡人, 勉強, 場合, , 必要, 意味, 技術, 挫折, , 数学, 明日, 時間, 毎日, 理解, 環境, 突破, 簡単, 能力, 自分, 試行錯誤, 誰か, , 近道, 鍛錬, 限界, ,

Photo by Markus Spiske on Pexels.com

デモ55ajax=jqueryを使わずに非同期通信するのが普通に。

2022.05.03

Logging

おはようございます。

祝日が始まりましたね、お休みの方も多いかと思います。

そんな中、連休からプログラミングの勉強を始めようと考えている方もいるかと思いましたので、フロントエンドエンジニアがバックエンドエンジニアとの連携で一番初めにぶち当たる壁である、非同期通信のコードを書きました。コードをコピペして階層など合わしてご自身の実行環境で実行してみてください。この頃ではフロントエンドエンジニアの方は非同期処理でコードを書いているので、非同期という言葉を聞くことも多くなったと思います。

非同期処理は処理の結果を待たずして次の処理を実行することです、非同期通信も同じです。バックエンド側に処理を問い合わせて処理の結果は待たずして行います。結果も順番に帰ってくる訳では無いのでフロント側で処理するときに注意も必要になります。

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id="api">非同期通信</button>
    <script>
        document.getElementById("api").addEventListener("click", api);

        function api() {
            let data = [];
            data.push({"name":"樹龍"});
            console.log(param(data));
            fetch("./api.php", {
                method: "POST",
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                },
                body:param(data)
            }).then(
                response => response.json()
            ).then(data => {
                console.log('data', data);
            }).catch(error => {
                console.log('error', error);
            });
        }
        function param(data){
            let str = [];
            for(key in data){
                for(keyname in data[key]){
                    str.push(keyname +"="+ encodeURIComponent(data[key][keyname]));
                }
            }
            return str.join("&");
        }
    </script>
</body>

</html>
<?php
$name = htmlspecialchars(strip_tags($_POST['name']));
$response['res'] = $name;
print json_encode($response);

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

55, ajax, DOCTYPE, gt, html, jquery, lang, lt, quot, エンジニア, エンド, お休み, コード, こと, コピペ, ご自身, デモ, とき, バック, プログラミング, フロント, , 処理, 勉強, 同期, , 実行, 必要, , 普通, , 注意, 環境, 祝日, 結果, 言葉, , 通信, 連休, 連携, 階層, , 順番,

Photo by Luciann Photography on Pexels.com

今頃になってdocker(ドッカー)を勉強していたりしている。

2022.04.30

Logging

おはよう御座います。4月も今日が最後になってしまいました。

皆さんGW(ゴールデンウィーク)は何処か行きますか?、自分はしれっと仕事しているかも知れません。明日は休みですが・・・。

さて、今頃になってdocker(ドッカー)を勉強していたりしてします。dockerとはなんぞやという人はエンジニアでは恐らくないと思います😭。知らない方はググってくださいな。

今までdockerなんて使わなかった、バーチャルボックスがあれば何でも出来ると今でも思っていますが、まぁ一応、dockerも触らないといけないなとか思いましてdockerを始めました。

dockerでイメージを作ってdocker Hubで公開しようと思います。公開する内容は、PHP5系から8系までの環境を構築出来る提供するつもりです。

公開したら追記としてURLを記載しますので、しばしお待ち下さい。来月の半ばまでには構築出来る環境を提供するつもりです。

尚、dockerのCUIなどの操作方法はこちらを参照すると良いですよ。

追記出来ました(5月を待たずして):https://hub.docker.com/r/zip358com/rockylinux-php-56-81-apache

docker pull zip358com/rockylinux-php-56-81-apache
docker run -d -p 80:80 --privileged --name 任意のコンテナ名 zip358com/rockylinux-php-56-81-apache /sbin/init

cgi-binを見てください。PHP5.6からPHP8.1まであります😌。

Apacheの設定、php-cgiを使用する方法はこんな感じです😀

<Directory "/var/www/cgi-bin">
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
Action php-cgi-7.1.9 /cgi-bin/php-cgi-7.1.9
<Directory "/var/www/html/xxxx.site">
    Options +ExecCGI
    AddHandler php-cgi-7.1.9 .php .html
    AddType application/x-httpd-php .php
</Directory>

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

4, 5, 8, docker, GW, Hub, php, url, イメージ, エンジニア, お待ち, カー, ゴールデンウィーク, しれっと, つもり, バーチャル, ボックス, , , 今日, 今頃, 仕事, 休み, 公開, 内容, 勉強, 半ば, 提供, , 明日, 最後, 来月, 構築, 環境, 皆さん, 自分, 記載, 追記,

Photo by Pixabay on Pexels.com

ITの仕事から遠ざかって数ヶ月、今思うこと。

2022.04.25

Logging

おはよう御座います。

たまには自分の近況を書いてみます。

ITの仕事から遠ざかって数ヶ月、今思うことは今の環境はとても良いと感じます。職業や職場を変えると、こうも違うのかと思う反面、IT技術で問題解決出来そうな場面を目にすると「こうすれば良いじゃね」と思う事もあります😌、しかし何も言わずに坦々と仕事をしています。

ITに戻りたいなと思う反面、このまま、この職場でいる自分も想像出来ます。でもお給与はかなり低くなりました。一番もらっていた時の手取りの半分ぐらいになっています。もし家族(子)が居たら恐らくこの職場で働くという選択肢はなかったと思います。

環境は良いです、会社としてもしっかりしているから潰れるという心配も無いじゃないかなって思っています。ですがいろいろと悩んでいます、それが本音です。

https://www.youtube.com/shorts/UxUe2JKxw0E

因みにニートだった時代は投資信託などや株の運用などやクラウドソーシングサイトで引き落としを相殺していました。そして引き落とし額も必要最低限にしていました、現在も基本その水準のまま生活しています。変わったのはお給与される様になったことです。毎月の引き落としの差し引いた額は貯蓄預金や投資信託へ廻せるようになった事です。徐々に最低レベルの固定費を中程度までに回復させたいなとは思っていますが、いろいろと入用です😌。夏頃まではマイナス運用かなって感じですね。

著者名  @taoka_toshiaki

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

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

OFUSEで応援を送る

タグ

IT, いろいろ, かなり, クラウド, こと, このまま, サイト, ソーシング, それ, たま, ニート, , , 仕事, 会社, , 半分, 反面, 問題, 場面, , 家族, 心配, 想像, 手取り, 技術, 投資信託, , , 時代, 本音, , 環境, , 相殺, 給与, 職場, 職業, 自分, 解決, 近況, 運用, 選択肢,