🏠️Top Page

🖊️おもしろき こともなき世をおもしろく 住みなすものは 心なりけり.

⏩️インフラじゃなくてインフレで殆どの人は毎月たいへんなだと思います.

おはようございます.インフラじゃなくてインフレで毎月たいへんな人もいると思います.物の価値が上がるのに賃金は追いついていない、インフレで儲かっているのは大企業だけなんじゃないかと思います、この高知県も2030年までには最低賃金を1500円にしようということで動き出しましたが、現時点で達成している会社は一社しかいないみたいです.夜の商売でしょうか・・・.

殆どの会社は苦しいと悲鳴を上げているようです.案外値段を上げてもそのものに対してお金を払うものだと思います、とくにサブスク系は値段を上乗せしても殆どの人は払い続けているのが現状だと思います.

BtoBという企業間の取引の場合、値上げ交渉はたいへんだと思います.インフレなので値段を上げましたで「はいそうですか」という企業はあまりいないじゃないかと思います.大企業が値段を上げることで皺寄せは中小企業や零細企業に行くのでしょう.アメリカにならってインフレにしたのは失敗だったのではないかと思います.

何だか失われた40年になりそうな予感さえします.因みに自分の世代は氷河期世代なのでバブルというものを知りません.政治家のみなさん、いつ景気が上向くのでしょうか教えて頂きたいです.

明日へ続く

⏩️低学年向けの学習サイトを作ってみました. 今のところ無広告で運営中.

おはようございます.低学年向けの学習サイトを作ってみました. 今のところ無広告で運営中です、因みにこのサービスは数年前にこのサイトにも存在しているものをlaravelとvueで再構築した形になります.

このサイト制作に費やした時間は1時間ぐらいです、いやー結構かんたんにそれらしい物が出来たので、自分としては満足です.アクセス数が多くなれば広告掲載などを考えています.

広告掲載はトップのみに表示させるようにします.学習中に広告があるのは気が散りますからね.尚、このサイトは生成AIのちからを借りて制作したのでものの1時間ぐらいで完成した形になります.これから先こんな感じで自然言語の命令でコードを生成AIに書かして人はソースコードのチェックや動作チェックだけをするようになるのかも知れないなと思いましたが、やはり100%と生成AIが生成したものに対して保証が担保出来ない限り、コーダーさんやプログラマーさんの職が無くなることはなさそうです.

因みに自分は生成AIに課金していません.

明日へ続く

⏩️Vue.jsでコードを書き直してみたけどバニラJSが良い時もある技術的な話といえばそんな感じ.

おはようございます.何もしていないわけではないけど毎日小銭が入ってきた頃を思うといまは前に戻った感じがあります、やっぱり無いよりある方が良いですね.さてHxH-moji.comサービスのバニラJSコードをVue.jsへ置き換えてみたのだけどもレンダリングが遅くなってこれは駄目だなと思ったので元の状態に戻しました.

たまにバックのソースコードがどんな感じに動いているのかを調べている人がいるのだけど、そんなに大したソースコードが動いているわけではないのでお恥ずかしいですね.最近やっと名前付けを変更してソースコードを見たらわかる感じにしたつもりでいます.

因みに下記がレンダリングが遅くてボツにしたコードです.本当ならVue.jsでサクサクと動くコードを作りたいのですがVue.jsはまだまだ初心者さんレベルです..あまりVue.jsもReactもあまり分からないのが現状です、業務で使用することはあるものの一から作るとなるとあんまり上手く作れないです.

トホホ・・・.

この頃思うのは広告掲載だけで何とか回るものを作りたいなとサブスクは個人ではちょっと荷が重い.重いもありますが何せ審査が通りそうにないECサービスはまだ手を付けていないのはそんな理由です.自分のテンション上がるのを待って作りたいと思います.

const { createApp, ref, onMounted, nextTick } = Vue;

const app = createApp({
    setup() {
        const canvas = ref(null);
        const languageInput = ref('');
        const fontsize = ref(16);
        const alertMessage = ref('');
        const mobileText = ref('');
        const isMobile = ref(window.innerWidth <= 768);

        const fetchText = async (flg) => {
            try {
                const body = new FormData();
                body.append('txt', languageInput.value);

                const response = await fetch("/common/jpcvn", {
                    method: "POST",
                    headers: { "X-CSRF-TOKEN": document.querySelector("[name='token']").value },
                    body: body
                });
                const resultdata = await response.json();
                drawCanvas(resultdata.txt);
                mobileHxH(resultdata.txt);

                canvas.value.toBlob((blob) => {
                    const formData = new FormData();
                    formData.append("upload_data", blob, "canvas_image.png");
                    formData.append("name", document.getElementsByName("name")[0].value);
                    formData.append("sns_name", document.getElementById("sns").value);
                    formData.append("text_data", resultdata.txt);
                    if (!flg) formSave(formData);
                }, "image/png");
            } catch (error) {
                console.error(error);
            }
        };

        const drawCanvas = async (text) => {
            await nextTick();
            if (!canvas.value) return;  // canvasがnullの場合は処理を中止
            const ctx = canvas.value.getContext("2d");
            ctx.clearRect(0, 0, canvas.value.clientWidth, canvas.value.clientHeight);

            const background = new Image();
            background.src = "/images/paper_00107.jpg";
            background.onload = () => {
                ctx.drawImage(background, 0, 0, canvas.value.clientWidth, canvas.value.clientHeight);
                ctx.fillStyle = "rgba(0, 0, 0)";
                ctx.font = `${fontsize.value}px HUNTERxHUNTER`;
                const lines = textChange(text, fontsize.value);
                lines.forEach((line, i) => {
                    ctx.fillText(line, 3, 10 + fontsize.value * (1.1618 * i + 1));
                });
            };
        };


        const textChange = (t, f) => {
            let n = parseInt(350 / f);
            let s = t.split("");
            let LLine = 0;
            for (let i = 0; i < s.length; i++) {
                if (LLine && (LLine + 1) % n === 0) {
                    if (s[i] !== "\n") s[i] += "\n";
                    LLine = 0;
                } else {
                    LLine++;
                    if (s[i] === "\n") LLine = 0;
                }
            }
            return s.join("").split("\n");
        };

        const formSave = async (formData) => {
            alertMessage.value = '';
            try {
                const response = await fetch("/common/image_save", {
                    method: "POST",
                    headers: { "X-CSRF-TOKEN": document.querySelector("[name='token']").value },
                    body: formData,
                });
                const result = await response.json();
                if (result.ret === "ok" && result.url) {
                    window.location.href = result.url;
                } else {
                    alertMessage.value = result.txt;
                }
            } catch (error) {
                console.error(error);
            }
        };

        const mobileHxH = (tt) => {
            if (isMobile.value) {
                mobileText.value = tt;
            }
        };

        const adjustTextareaRows = () => {
            isMobile.value = window.innerWidth <= 768;
        };

        onMounted(() => {
            adjustTextareaRows();
            window.addEventListener("resize", adjustTextareaRows);
        });

        return {
            canvas,
            languageInput,
            fetchText,
            alertMessage,
            mobileText,
            isMobile,
            fontsize
        };
    }
});

app.mount('#app');

明日へ続く

⏩️日本でもそろそろ発売されると思う.ビル・ゲイツの自伝ソースコード洋書はAmazonから.

おはようございます.日本でもそろそろ発売されると思う.ビル・ゲイツの自伝ソースコード洋書はAmazonから「Source Code: My Beginnings」と検索するとヒットします😌.英語が読める方は洋書で読むことをオススメします.自分は英語がわからないので翻訳(和訳)が出るまで待ちます.恐らく日本で発売される時の本の題名も「ソースコード ビル・ゲイツ」でしょう.

技術レベルは違えども自分も何故だかわからないけど、ソースコードを読んだり理解したりするのは好きですね.謎解きゲームのようなもので、複雑怪奇なソースコードも何か何度か見るとわかるようになる不思議なものです.昔はソースコードを読んだりするのは今みたいに好きではなかったのですが、いつの頃から何かわかるようになりました.仕様書がないソースコードを読む場合、全体把握は難しいので一つの関数がどういう振る舞いになっているのかを探っていくことで一つの機能を理解するという感じで徐々に全体像を理解していきます.

トイウコトデ、ソースコードの日本書籍が発売されたら読むつもりでいます.なんとなくですがソースコードは映画化されそうな気がします.

明日へ続く

⏩️フルテキストインデックスを業務で使用して思ったこと.MYSQLとかで

おはようございます.フルテキストインデックスを業務で使用して思ったこと.MYSQLとかで自然言語などを検索するときに便利、例えば商品検索を曖昧な単語で検索する時にフルテキストインデックスを与えていれば曖昧な単語でもヒットする確率が増えるというもの.

ただ、日本語はMeCab(メカブ)とか入れないとヒットしないかもですが、レンタルサーバーでも設定を変えれる人ならば使用できるかもです.試してみてはないので「かも」止まりですが....

こういうのを全文検索とかいうらしい.

尚、MYSQLやMariaDBなどでは対応しています、バージョンが低いと出来ない可能性はあります.

自分が今作っているサービスにも全文検索を一部導入する予定でいます、例えばYosakoi-Video.comなどもチーム名の曖昧な検索ができれば良いなと思っています.

明日へ続く

⏩️ネトフリドラマ、阿修羅のごとくを今見ています.まだ一話目を観終わったところ.

おはようございます.ネトフリドラマ、阿修羅のごとくを今見ています.まだ一話目を観終わったところです、予告に釣られて阿修羅のごとくを観ているのだけども一話目はまずまず止まりですね.ここから面白くなっていくのかな.仕事中にラジオ(J-WAVE)を聞いているのだけどラジオのMCさんが阿修羅のごとくを休みの日に全話観たみたいな話をしていて面白かったーなどと言っていたので期待しすぎてしまったのかも知れない.

監督さんは是枝裕和さんなので何だかジワジワ面白みが来る感じがします.時間があれば通しで観たほうが良いかもだけど、大体一話一時間なので7時間確保しないといけない.自分はせいぜい3時間確保するのでいっぱいいっぱいですね.

全話観終わったら感想を書きます.早ければ来週の末までに書くつもりでいます.

明日へ続く

⏩️久しぶりに個人の収益とかのお話です.結論から述べると収益は以前から比べて

おはようございます.久しぶりに個人の収益とかのお話です、結論から述べると収益は以前から比べて少し鈍化していますが一応、収益は発生しているけど銀行に収益が振り込まれない月が発生していて前のように、毎月のクレジット支払いとの相殺することも今はないです.いろいろと試行錯誤はしているもののこれと言った打開策を見出していない感じです.

この頃、少し弱気な自分がいます.このままこんな感じの収益しか得れないのかなぁなどと思う時があります.そろそろ花開いても良いじゃないかなぁなどと思う.アクセス数もそんなに悪くはないのに何故なのかなと思う所があります.恐らくなんだけど安い広告しか出てないのかも知れない、そして広告の制御が自分でうまく出来ていない感じもします.それが一つの原因なのかも.

あと一つは一度急落してから再度もとのページランクに戻るのは至難だったりします.理由は色々あるけど一番はそのジャンルページを格下げなどを検索会社がすると元の状態に戻るのは検索会社さんの方針を変えない限り底は上がらないので微妙です.

因みに、この頃このサイトでは技術ネタが少なくなったのは生成AIの肥やしにされるのはヤダからと言う理由とは別に生成AI使えば大体生成AIで完結するようになってきたので技術ネタではもうググらないと言う理由です.これからはサイトの魅力が大事になりそう、そうまさにキャラ作りできているサイトなどはリピーターが増えそうな気がします.

生成AIに質問すると定量的な答えが返ってくるものの何か個性が足りないのですね、これから個性を持ったAI(人工知能)なども生まれてくるかも知れないけれどもそれはまだ少し先の未来かと思います.

なのでこれからは技術ネタより個性が光るサイトが発掘されそうな気がします.

明日へ続く

⏩️この頃、Chromeの調子が悪いのでF12をクリックして読み込みアイコンを右クリックして

おはようございます.この頃、Chromeの調子が悪いのでF12をクリックしてChromeの読み込みアイコンを右クリックしてハードキャッシュの消去読み込みをしています.この方法を行うとページを開いたときの画面のクラッシュが直ります.どうも読み込みに失敗したら連鎖的(他のタブ)にクラッシュするようになってしまったようです.

Chromeの話はこれで終わりにして、先日の休みに久しぶりに本を読みました.電子書籍はたまに読んでいるのだけども手にとって本を読むのは久しぶりでしたが、電子書籍とは違ってあとこれくらい読めば読了かというのが感覚的にわかるので、これぐらいならもう少し読めるなって気持ちになり読み進めて気づいたら2時間半で短な本を読了しました.

本を読むのはあまり速い方ではないのだけども、それでも読み進めれたのは感覚的に残りのページがわかったことにあるかなと思います.電子書籍もなんかそういう物が実感できれば積本を読了できるのかなと感じた次第です.

明日へ続く

⏩️快適なのかわからないけど、フラットに寝れるバスを開発した高知県のバス会社.

おはようございます.快適なのかわからないけど、フラットに寝れるバスを開発した高知県のバス会社.いやーこれ事故したときに悲惨な感じになりそうだなと思ってしまったのは自分がマイナス思考だからなのかな?

乗ってみたいけど...なんかヤダ.運行するときはカーテンとか取り付けられているのかなぁ.

全然別話ですみませんが今月の18日にドン・キホーテさんが高知県で開業されるとかで一部の人が騒いでいるようです.オープンしたらTVのニュースになるだろうな.これでドン・キホーテさんは全国をコンプリートした形になるそうです.余程、高知県には需要がないと思っていたんだろうな、収益的には赤字経営になりそうな気がします.

恐らく高知県側から打診があってのオープンだと思います.

ドン・キホーテオープンして時間が経ったら見に行ってみます.いまの段階では全く魅力を感じない...ドン・キホーテ、ヨドバシとかが来たほうが自分的には嬉しかったです.

明日へ続く

⏩️使っていないドメインだけど一番値が高いドメインに暇つぶしでコードを埋め込んでみました.

おはようございます.使っていないドメインだけど一番値が高いドメインに暇つぶしでコードを埋め込んでみました.これでソースコードを読める人は少しは楽しめると思います.とくに駆け出しのエンジニアさんには響きそうです.ちなみにドメインは9up.meです、このドメイン更新費用結構お高いけどいま全く使っていなかったドメインです.

少しは活用できたのではと....因みに業者でもないのにドメイン代で年間、1万5千円飛んでいくので自分でも馬鹿だなと思いますが、もっていると何かのとき役に立つのではとか思い込んでいます.恐らくそんな事はないと思いますが心の底あたりにあるですあるです欲が.....w

あと、こちらのドメインに限らずですがSSLのCNが変なんですよねぇ.どうやって直せばよいでしょうか🤔.リニューでもしないといけないのかなぁ?そもそもSSLのCNがFQDN(ドメイン)が不一致でも良いらしいですよねぇなのでまぁ良いかと思っています.

あと続きでVueの読み方はヴューが正しいらしいのですがビューと日本人は読んでいるらしいですよ.そしてそちらが定着していますよね、やっぱ日本人にはヴューは読みづらいですよね.

明日へ続く