PayJPの決済処理。

2024.02.06

Logging

おはようございます、PayJPの決済処理をLaravelに導入してみました。そんなに難しい話ではないけれど、クレジットカードの入力欄はPayJPさんにもう少しデフォルト状態で頑張って欲しかった。

変更は可能なのだけども、ちょっとイマイチ感があります。PayJPとグローバル展開しているStripeを比べるとやっぱStripeの方がビジュアル良いですよね。恐らくどちらも個人事業主でも審査が通るらしいので(全てのひとが通るとは限らない)、良さげだなって思っています。

今回、試したPayJPのAPIかStripeのAPIでサブスク決済を作ってみました。テストモードですがちゃんと動いていたので良かったです。これで決済処理部分は出来たのだけど、サービスモデルが無い、いろいろ考えて入るもののこれは良さげだなっていうのが無い感じですね。

HxHのサービスはこれ需要があるだろうと思って結局当たりました、なので自分はそれなりにこれ上手くいきそうなアンテナを持っています。アイディアが降ってきたらそれを作ろうと思っていますが、なかなかアイディアがでてこないのは外に出ていないからもしれないですね。

なんか無いかな~。

明日へ続く。

タグ

API, APIかStripe, HxH, Laravel, PayJP, PayJPさん, Stripe, アイディア, アンテナ, イマイチ感, グローバル展開, サブスク決済, テストモード, ぱStripe, ひと, 審査, 少しデフォルト状態, 決済処理, , 需要,

React.js実践入門を購入しましたので・・・。

2023.12.06

Logging

おはようございます、先日、React.js実践入門を購入しました。少しずつ 少しずつ慣れていこうと思っています。この本は結構分厚いのですが結構、ぎっしり文字だらけという訳でもないので良さげです、読みやすい感じが気に入って購入しました。まぁ仕組みを学びつつローカルで手を動かして身につけていこうと思っています。

この本はReact,jsとフレームワークのNext.jsことも書いているので、まさに実践入門です😄。

こんな本を購入せずにドキュメントを読めばよいのですけど、それ以上の技を知りたくて購入しました。分厚いけどおそらく来週の休みの日に読了したいと思っています。フロントエンドエンジニアさんならReact,jsは登竜門かと思います、知っていて当たり前のことなんでしょうけど中々、使用する機会がないのを言い訳にしていると、自分がレガシィになってしまいそうなので。

トイウコトデ、ぼちぼちとはじめていきます。

明日へ続く。

タグ

JS, Next.jsこと, react, React.js実践入門, トイウコトデ, ドキュメント, フレームワーク, フロントエンドエンジニアさん, レガシィ, 休み, 実践入門, 感じ, , 文字だらけ, , 機会, 登竜門, , 言い訳, , ,

スポティファイ音楽を聞くやつ。無料で良いじゃないかな。

2023.10.02

Logging

おはようございます、スポティファイ音楽を聞くやつ。無料で良いじゃないかなと思い出しました。自分はYOUTUBEミュージックを使用しているのですけど、やはり音質はスポティファイが良いということが分かりましたので、Spotifyに戻そうかなと思い始めています。

ちょっと前にネトフリでSpotifyのドラマを見てからやっぱSpotifyは良さげだなという認識です。

なので、もしかするとまた、Spotifyに鞍替えするかも知れません。

一時間後、よくよく調べてみると!!

調べてみるとYOUTUBEで高音質で聞く方法がありました・・・・。設定の再生と進んでいくと高音質の設定項目がありましたので、どうやらこのままYOUTUBEミュージックで聞くことになりそうです。因みに、YOUTUBEの有料会員になるとYOUTUBEの広告なしとYOUTUBEミュージックとYOUTUBEオリジナル映像が付いてきます。やっぱSpotifyよりお得感ありますね。

明日へつづく

タグ

Spotify, youtube, YOUTUBEオリジナル映像, YOUTUBEミュージック, お得感, スポティファイ, スポティファイ音楽, ドラマ, ネトフリ, やつ, 再生, 広告, 方法, 有料会員, 自分, , 設定, 設定項目, 音質, 高音質,

プロンプトマスターには程遠い。 #chatGPT

2023.05.04

Logging

おはようございます、プログラミングのためにご指導をchatGPTに頼んでいろいろ試してみた結果。簡単なプログラムなら解答を得られるけど、エラーで困っている時には五分五分感が歪めない。確かに正しい解答を得れることもあるけど、質問の方法によるけど全然トンチンカンの解答も返ってくる。

やはりまだ検索は重要だし無料で何かする場合は、chatGPTを導入しているbingを使用するよりか公式のchatGPTを使用する方が良い。bingにはchatGPT4が導入されているというものの、恐らくマイクロソフトがカスタマイズしているためか、検索結果を進めてくる感が強い。

情報としては最新ではないものの、OpenAIのchatGPTを使った方が良いしお金に余裕があるなら有料を導入したほうが良さげです。

コードが動かないのに半日程、沼から出られなかったのでやはり辛い。尚、chatGPTの使い方に関して公式(OpenAI)が日本語で掲載しています。自分もこの際、じっくりとプロンプトの使い方(プロンプトエンジニアリング)を勉強したいところです。

追伸:沼から抜け出せたのもchatGPTでした😤。

タグ

bing, ChatGPT, chatGPT4, OpenAI, エラー, この際, トンチンカン, プログラミング, プロンプト, プロンプトエンジニアリング, マイクロソフト, 五分五分感, 半日程, 有料, 正しい解答, , , 解答, 辛い, 追伸,

人工知能の知能は指数関数的にだけど、人が追いつていない。

2023.04.01

Logging

おはようございます。この頃、ネットでもテレビでも人工知能を取り上げない事がないぐらい、人工知能の話題に持ちきりですが、さてどれぐらいの人が人工知能の良さを理解してそれを仕事なりに活用していっているのだろうか?、自分が思うに大半の方は人工知能の力を借りずに今まで通りタスクを熟しているのではないだろうかと。

AIによる「大規模言語モデル(LLM)」の最新潮流~Shane Gu×スプツニ子!×松尾豊×山田敦×上野山勝也

大規模言語モデルで、精度も良いのはchatGPTだけではない。RWKV 14B Alpacaとかも良さげです。

AI魂. また出ちゃった! RWKV 14B Alpacaファインチューニング版を試す!

これ・・・無料なんですよね。すごいな精度もまぁまぁ良さそうです。人工知能は週単位で進化していくのだけど、人ってそんなに週単位で賢くならないので確実に人より人工知能が賢くなりそうな気がしますが・・・・。人工知能が賢すぎると人工知能が言っていることを人が理解出来なくなるという問題と人が制御出来なくなる問題が生まれそう。正直なところ、今ぐらいの賢さで留めておいた方が良い気がします。映画、トランテンデンス(超越)が本気で起こるかもしれないからね笑。

映画『トランセンデンス』予告編

タグ

Alpaca, ChatGPT, RWKV, テレビ, トランテンデンス, ネット, 人工知能, 仕事, , 問題, 大半, 映画, , 精度, , 言語モデル, 話題, 超越, 通りタスク, 週単位,

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;
}

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

タグ

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

disられてる?勘違いでもない気がするかも?。

2020.08.11

Logging

なんかdisられてる気がする。勘違いでもない気がするかも?、疲れているのかなぁ?ディスリスペクトしているひとはイケハヤさんなのだけど、どうもイケハヤ大学とセカンドチャンネルでディスられてる気がする。ここ最近のここのブログネタとイケハヤさんの動画投稿を見比べてみてください、なんか軽くディスられているような気がします、勘違いかもしれないけれども・・・。

【有料級】「テーマ」がない人は、SNSで稼げません。

どうもイケハヤさんこの頃ネタがないじゃないのか・・・と。イケハヤさんの動画をブログに貼り付けたことが原因だろうけど、残念だけど別にテーマ決まっていなくても良いですよ。

確かにテーマ決めると読まれやすいので、自分も過去に同じようなアドバイスした事があります。だがしかし、絵日記系はテーマいらいないのですね、デザイン系やプログラム系のごった煮でも需要がアレばアクセスは付きます。

要は需要に答えれているかということです。そしてもし本当にディスられても自分はどうでも良いです。自分もたまにネタにしているわけだから。

『ふぅ?。』

タグ

dis, アクセス, アドバイス, アレ, イケハヤ, ここ, ごった煮, こと, セカンド, チャンネル, テーマ, ディス, デザイン, ネタ, ひと, ブログ, プログラム, リスペクト, , 動画, 勘違い, 原因, 大学, 投稿, 最近, 本当, 残念, , 絵日記, 自分, , , 過去, 需要, ,

さくらVPSを検討中です(並行運用するつもり)。業界地図:企業白書。

2014.12.14

Logging

さくらVPSのお値段がすごく安いです。635円からなので検討中です、zip358.comは共有サーバで運用するつもりですが、勉強がてらにさくらVPSをレンタルしようかなと考えています。お名前.comのKVMよりも充実したサービスになっていて何だか良さげです。ただSSDというのが難点かな。サイトの読み込みなどは早そうですが・・・物理的、耐久性が心配な感じがします。
全然関係ない話のですが、選挙行きましたか?、選挙権あるのに自分はあまり選挙に行くことが無いです。選挙に行くことは大事だと思いますが、実際、政治家が何をしているのか自分はあまりわかっていません。法案づくりとか国民の税の運用とかをどう振り分けるのかとか、税をどのように国民から徴収するのかなどを行っているのが・・・政治家であり政治屋であるという認識はありますがあまり理解していません、実質的にこの国を動かしているのは、政治家というよりは日本を代表する大企業や銀行などだと考えています。なので、選挙に行くことが必要不可欠かと言えば、どうなんだろうかと思ってしまうわけです。
それが自分の認識です、正しいかどうかはさておき・・・。

昔、本屋で見かけた本の話:タイトルは忘れましたが、企業白書みたいなものを見たことがあります、どの企業とどの企業が関連しているのかとを明確に記載した本です。見ていると結構面白かったです。ちなみに年に一度、出版されている本だと思いますので見てみると面白いかもしれません。また、就活にも役に立つ本かなと思います。
ググるとありました。 業界地図です!!

 

タグ

KVM, SSD, さくらVPS, タイトル, 企業白書, 共有サーバ, 国民, 就活, 政治家, 政治屋, 本屋, 業界地図, 法案づくり, 耐久性, , 認識, 運用, 選挙, 選挙権, 難点,

SNSで話題「世界一即戦力な男」が書籍化

2014.08.15

Logging

6年間引きこもっていた彼(菊池良さん)が
WEB会社LIG[リグ]から内定を勝ち取りました。
彼の就活{活動}がすごい、自ら就活のためのサイトを開設し、
そして会社から面接連絡を待つというスタンス。
ちなみにサイト名が「世界一即戦力な男・菊池良から新卒採用担当のキミへ」っていうサイトです。
洒落が聞いてて面白い。面白いだけではなくデザインもしっかりしているから、
LIGから内定を頂いたんだろうけど、一番は感心したのはSNSで注目を得たところ。
実際、SNSで注目を集めるのは難しい。
WEBデザイン技術のほか、SNSのマーケティングの知識がないと
ここまで伸びないので、それなりに知識があったんだと思います。
なので奇跡的でも運よくでもない。
よし!!自分も菊池良さんの真似をして就活をしようとしたら
結果的に後悔する可能性が比較的に高いので、余程、自分の技術に
自信のある人にしか自分はオススメしません。
ちなみに「世界一即戦力な男・菊池良から新卒採用担当のキミへ」っていう
サイトでPRしていることは、裏を返せば負の要素ばかりです。
その負の要素が結果的に他の人と違っていて、
会社から注目を集めることになっただろうと思います。

タグ

6, LIG, SNS, web, おすすめ, キミ, ココ, サイト, スタンス, ため, デザイン, ところ, ほか, マーケティング, よし, リグ, , 世界一, , 会社, 内定, 即戦力, 可能性, 実際, 就活, , 後悔, 感心, 技術, 担当, 採用, 新卒, 書籍, 注目, 活動, , 知識, 自ら, 自信, 自分, , 菊池, 話題, 連絡, 開設, 面接,