サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
arakan-pgm-ai.hatenablog.com
目次 GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 マルチバイト文字を扱う注意点 rune rune:マルチバイト文字数カウント rune:マルチバイト文字列のスライス 上記以外なら、マルチバイト文字列は普通につかえる 補足情報:TrimSpaceは「全角空白」も削除できる 補足情報:文字列連結は「join」のほうが「+」演算子より速い 補足情報:文字列の出現位置を文字数で取得するには一工夫必要 補足情報:全角・半角変換は「golang.org/x/text/width」を使う 補足情報:文字列の比較の前に「Fold」するのはおすすめ 補足情報:strings.EqualFoldは全角・半角の考慮をしない GO言語(golang)1.20:日本語を含むマルチバイト文字列操作 GO言語で、日本語文字を含む文字列(マルチバイト文字列)を扱うには、若干注意が必要な点がある
SpringBootに用意された、高機能なセキュリティ機構「SpringSecurity」を使います。 STS3(3.9.6)+SpringBoot2.0+Tymeleaf3.0迄動作確認しています。 SpringSecurity 認証ができるだけではなく、導入するだけで、CSRF(クロスサイトリクエストフォージェリ)攻撃対策などのセキュリティ対策もやってくれる、とてもありがたい機能であります。 汎用的で様々な認証方法にも対応してくれたりします。 が、高機能で汎用的であるがゆえに、パッと見になんか難しげに見えます。 少なくとも、自分はそうでした。 なので、あれこれ欲張って書かずに、現実的に使いそうなところだけにポイントを絞って説明を書いておこうかなと思います。 なお、MAVENベースです。 あと、いろいろあるので、数回にわけて書くつもりです。 今回は、とりあえず一発目なので、SpringS
目次 ComposerでインストールしたPHPUnitを素のPHPで使う PHPUnitをインストール PHPUnitの設定 PHPUnitの設定:テスト対象のソースの置き場所をPHPUnitに教える PHPUnitの設定:テストが置いてあるフォルダをPHPUnitに教える PHPUnitサンプルテストの実行 PHPUnitの動作確認につかったサンプルです ComposerでインストールしたPHPUnitを素のPHPで使う PHPUnitをComposerでインストールして「phpunit」を素のPHPで使います。 動作確認のための、PHPのプロジェクトの名前は「prac」にします。 とりあえず、「prac」フォルダを作って、下に「src」と「tests」の2つのサブフォルダを作りました。 PHPUnitをインストール PHPUnitを「composer」でインストールします。 phpun
目次 WSL2のUbuntu18.04LTSを、最新の20.04LTSにアップグレード アップグレード手順 1.現在の環境を最新化する。 2.パッケージソースのクリーンアップ 3.アップデートコアパッケージのインストール 4.リリースアップグレードの実行(1つ目の躓き) 5.リリースアップグレードの実行(2度目の躓き) 6.リリースアップグレードの実行(3度目の躓き) 7.リリースアップグレードの実行(やっといけた) 8.ターミナルを立ち上げなおしてバージョン確認 WSL2のUbuntu18.04LTSを、最新の20.04LTSにアップグレード Windows11のWSL2にインストールしてあるUbuntuを18.04LTSから20.04LTSにアップグレード(ubuntu 18.04 to 20.04)します。 18.04LTSは2023年4月までのサポートで、20.04LTSは2025
目次 Pythonの「import」について モジュールとパッケージの違い 通常パッケージ 名前空間パッケージ import モジュールのimport パッケージのimport Pythonの「import」について 今回はPythonの「import」についてです。 概要の説明だと混乱しがちなので、簡単なサンプルで注意点と検索の順序などを整理してみようと思います。 importの話をするには、まず「モジュール」と「パッケージ」の違いの整理が必要なので、そこからやります。 モジュールとパッケージの違い ひとつのPythonのソースファイル(.pyファイル)を「import」で参照するとき、そのソースファイルを「モジュール」と呼びます。 そのモジュールをまとめて扱えるのが「パッケージ」です。 パッケージには「通常パッケージ」と「名前空間パッケージ」があります。 通常パッケージ Python2
目次 WSL2のUbuntu20.04LTSにインストールしたNginx・php-fpm(php8.1)の初期設定 PHPとWebサーバーの連携について PHPモジュールモード CGIモード Nginx・php-fpmの設定 ドキュメントルート・ポートなどを決める 設定ファイルの場所を確認 php-fpmの設定 nginxの設定 簡単なphpソースを書いて動作確認 WSL2のUbuntu20.04LTSにインストールしたNginx・php-fpm(php8.1)の初期設定 WebサーバーNginxとphp8,1を連携して動かす設定をします。 WSL2:Ubuntu20.04LTSに、以下の記事でインストールしたところからの続きです。 arakan-pgm-ai.hatenablog.com PHPとWebサーバーの連携について 設定する前に、PHPとWebサーバーの連携の仕方を確認します。
目次 Numpyの基本構文や関数とかの抜粋/Python文法 初期化(Numpy配列の生成) 型(dtype指定) すべてを0のNumpy配列を生成 すべてを1でNumpy配列を生成 対角要素に1それ以外に0をセットしたNumpy配列生成 指定の値ですべてを埋めて生成 乱数を使って生成 等差数列の生成 pythonのlistとNumpy配列の相互変換 Numpy同士の計算・比較 算術演算子 比較演算子 属性確認 Numpy配列の形状やサイズなどの情報 Numpy配列のndimとaxis ループ データだけを取り出してループする インデックスとデータを取り出してループする データの取り出し スライス ソート ソート:配列の昇順(axisの指定無し) ソート:axis=0を指定 ソート:axis=1を指定 形状変換 一次元から二次元行列へ 1次元から2次元の行へ 1次元から列ベクトルへ 多次元
目次 PHPで「Yahoo!のテキスト解析/ルビ振りAPI」を使うサンプル WebApiをPOSTするクラスの作成 作成したクラスを使いYahoo!のルビ振りAPIを利用する 注意:実行には、アプリケーションIDが必要です PHPで「Yahoo!のテキスト解析/ルビ振りAPI」を使うサンプル Yahoo!デベロッパーネットワークの、ルビ振りAPIのサンプルコードページには、Pythonの例が掲載されています。 developer.yahoo.co.jp このAPIは、例えば「漢字のふりがなを取得する」という文字列を与えれば、以下のようなJSONデータを取得できるものです。 {"id":"1234-1","jsonrpc":"2.0","result":{"word":[{"furigana":"かんじ","roman":"kanzi","surface":"漢字"},{"surface":
目次 無料で会員登録も不要。ブラウザで試せる画像生成AIで遊んでみた Stable Diffusion online ゴッホ風の電車の絵 キース・へリング風の電車の絵 ロボットのピクトグラム 同じプロンプトでも実行する都度結果が変わる 無料で会員登録も不要。ブラウザで試せる画像生成AIで遊んでみた 画像生成AIツールはたくさんあります。 ざっと思いつくだけでも、「Stable Diffusion」、「DALL·E 2」、「Midjourney」、「starryai」、「Dream by WOMBO」、「Novel AI Diffusion」、「Canva」・・など多くのサービスが乱立してます。 無料で使えるもののほとんどが会員登録して制限付きのFREEプランがある感じなのですが、今回は、僕が知る限り唯一面倒な手続きなく試せる「Stable Diffusion online版」でさわりだけ使
目次 日本語文字列に対し頻繁に使う文字列操作 確認方法 トリム(前後の空白を削除) 大文字変換 小文字変換 全角変換・半角変換 数字から文字列へ返還 文字列の分割 文字列の切り出し(スライス) 文字列の連結 文字列中に指定文字列が含まれるか検査 文字列中の指定文字列の出現位置 文字列の長さ 文字列の比較 日本語文字列に対し頻繁に使う文字列操作 日本語文字列に対し頻繁に使う「文字列」操作ができるか?を確認します。 確認方法 正規表現は使いません。 確かめるのに使う文字列です。 var s = " 漢字123456abcdefGHIJKLひらがなカタカナハンカナ混在 " 半角全角の英数字かなカナ漢字混在で、前に半角空白、後ろに全角空白があります。 確かめは、こんな感じでソースコードを書いてやってます。 package main import ( "fmt" "strings" ) func m
目次 Eloquent ORMは必ず「id」が主キー Eloquent ORM:整数の範囲 Eloquent ORM:浮動小数点数と固定小数点数 Eloquent ORM:Boolean項目 Eloquent ORM:UUIDに関連するもの Eloquent ORM:日付・時刻に対応するカラム定義 Eloquent ORM:文字列を扱うカラム Eloquent ORM:バイナリを扱うカラム Eloquent ORM:特有のルールにそったカラム定義 $table->softDeletes(); $table->rememberToken(); $table->timestamps(); その他 Eloquent ORM:Geometry関連カラム まとめ 今回は、 Laravel6.0のマイグレーションで利用できるカラム定義を整理してみます。 Eloquent ORMは必ず「id」が主キー
目次 OpenAIの「ChatGPT」(プレビュー期間中)の使い方を確認 アカウントを作ります chatGPTを使ってみる まとめ OpenAIの「ChatGPT」(プレビュー期間中)の使い方を確認 2022年11月30日の公開開始後、6日間で100万ユーザを突破したそうです。 www.itmedia.co.jp chatGPTという「テキストで質問するとAIが回答する」・・ようするにチャットボットなのですが、その回答精度がすごいとのこと。 やっぱり興味があるので、アカウント登録すれば無料で使えるプレビュー期間中に試しておこうと思います。 アカウントを作ります アカウントを作るために、OpenAIのページを表示します。 openai.com このページの「SIGN UP」ボタンを押してアカウントを作ります。 SMSを受け取れるスマホが必要です。 メールアドレスを入力し、続けてパスワードを入
目次 HTMLのテーブルでチェック行の情報だけ処理するサンプル/PHP・JavaScript サンプルの概要 ソース全文です ポイント1:JavaScriptでチェックボックスの選択状態取得 ポイント2:PHPでのチェックボックスのついた行の処理 まとめ HTMLのテーブルでチェック行の情報だけ処理するサンプル/PHP・JavaScript HTMLのtableタグを使って対象を一覧して、行ごとのチェックボックスでチェックされた行のみを処理する・・なんてパターンは、とてもよく使います。 ただ、PHPとJavaScriptを併用して、ボタンを押された後はPHP側でチェック行を処理する・・みたいな処理にはちょっと癖があって、知らないと意外にハマるようです。 今回、そうなった人向けにサンプルで説明したら、割合好評だったので、そのサンプルをネタに記事にしようと思います。 サンプルの概要 HTMLで
目次 画像などをBase64データにしてURLで受け渡す場合の注意点と対策例 Base64テキストがそのままURLパラメータにできない理由 Base64テキストをURLパラメータに渡せるようにするサンプル JavaScriptで画像をBase64変換したものも注意が必要 画像などをBase64データにしてURLで受け渡す場合の注意点と対策例 BASE64は、バイナリデータを一定の規則に基づいてテキスト(文字)データに置き換える変換方式の一つです。 アルファベットの大文字(26文字)と小文字(26文字)、数字(10文字)、「+」「/」の2つの記号の64種類の英数字のみを用いてデータを表現します。 テキストしか渡せないURLパラメータなどによく使われますが、JavaScriptでBase64にエンコードした画像データをWeb-APIにURLパラメータで渡すような場合に、ちょっと落とし穴というか
目次 PDOのcommit()・rollback()が例外をスローする/PHP7とPHP8の非互換 PDOのエラーモードのデフォルト変更かと思ったが違った 例外にならないトランザクションとならないものがある 例外になるトランザクションには暗黙的なコミットが関係している 暗黙のコミットでPDO::inTransaction() がfalseを返してるのが原因 反則技かもしれないと思いつつ、修正の時間稼ぎに考えた回避策 PDOのcommit()・rollback()が例外をスローする/PHP7とPHP8の非互換 DBはMariaDBです(10.3)。 PDOを使ったPHP7.動いていたシステムを、PHP8にバージョンアップしたら、登録処理のいくつかが例外でおちるようになったと連絡がありました。 まだテスト段階なのですが、原因がわからないとヘルプを頼まれました。 その時の記録です。 PDOのエラ
目次 python3/pyaudioをwindows10にインストール pip install pyaudioではエラーになる ビルド済のWindowsバイナリでインストール pyaudioで音階を鳴らすサンプル 音階の周波数を求めるサンプルソース ドレミを鳴らすクラスのサンプルソース クラスのソースコードの補足説明 クラスを使って音をならすサンプルソース python3/pyaudioをwindows10にインストール pythonで音階を鳴らしてみたくなって、pyaudioをインストールしようとしました。 pip install pyaudioではエラーになる ところが pip install pyaudio ではインストールできません。 ERROR: Failed building wheel for pyaudio どうやら、VisualStudioのBuildToolでコンパイル
目次 ブロックチェーンを実装する:三回目:マイニング機能を追加する/Pythonサンプル マイニング機能を追加する 実装するマイニングの仕様 マイニングのサンプル実装 マイニングを「MyBlockChain」クラスに組み込む 実装ポイント マイニングを追加した三回目のソース全文 マイニングを組み込んだクラスの実行結果 第一回目と第二回目記事のリンク ブロックチェーンを実装する:三回目:マイニング機能を追加する/Pythonサンプル ブロックチェーンのお勉強がてら、pythonで実装してみる三回目です。 今回は二回目で改善したソースをベースにします。 arakan-pgm-ai.hatenablog.com ここに「マイニング」と呼ばれる部分を追加します。 マイニング機能を追加する ブロックの完成とみなしてもらえる条件を満たすまで、ナンスを変えながら、ひたすら計算し続ける行為を「マイニング」
目次 二回目:保存や改ざんチェック機能追加/Pythonサンプル 保存や改ざんチェック機能を追加する 実装ポイント1:構築したブロックチェーンをJSONで保存 実装ポイント2:JSONファイルからブロックチェーンを展開 実装ポイント3:ファイルから読み込む時に改ざんチェック MyBlockChain二回目ソース全文 テスト用JSONファイルで実行してみる 改ざんチェックをテストする 第一回目と第三回目の記事へのリンク 二回目:保存や改ざんチェック機能追加/Pythonサンプル ブロックチェーンの勉強に、ブロックチェーンをpythonで実装する第二回目です。 一回目で作成した骨格をベースにします。 arakan-pgm-ai.hatenablog.com 保存や改ざんチェック機能を追加する ここに、保存や改ざんチェック機能を付け加えます。 一回目の実装では、クラス生成時に空の「chain」を
目次 Pythonでブロックチェーンを実装するサンプル/一回目 一回目:ブロックチェーンの骨格を作る ブロックチェーンの概念 ブロックの仕様検討 ブロックチェーンクラスの仕様検討 処理順1:入力と出力を「input」「output」の辞書で用意 処理順2:新しいトランザクションを生成する。 処理順3:前のブロックのハッシュを取得する。 処理順4:新たなハッシュを計算する。 処理順5:新しいブロックを生成・追加する。 ブロックチェーンクラス一回目時点の全ソース ブロックチェーンクラスを使うサンプルコード 二回目・三回目のリンクと参考文献 Pythonでブロックチェーンを実装するサンプル/一回目 ブロックチェーンの勉強のため、pythonで「ブロックチェーン」を実装します。 ブロックチェーンは要素がいろいろあるので、3回にわけて少しずつ実装し、三回目での完成を目指します。 一回目:ブロックチェ
目次 PHPでよく見かけたcontinueの使い方間違い for文などで使う普通のcontinue 間違うのはforの中にswitch構文がある場合 正しい書き方は「continue 2」とかだったりする PHPではswitch構文はループとみなされるのです PHPでよく見かけたcontinueの使い方間違い PHPのシステムのトラブル対応時に、よく見かける「バグ」のパターンがあります。 そのひとつが「continue」の使い方の勘違いです。 for文などで使う普通のcontinue continueを使うシーンは、以下のようにforなどの繰り返しの中で、条件によって後続処理をスキップして繰り返しの頭に戻りたいときが、ほとんどです。 for ($i = 0; $i <= 5; $i++) { if ($i == 3) { continue; } print($i . "です"); } 実際
目次 ブレークポイントでとまらない原因と対策/PHP7から8へ移行/VsCode・XDebug 原因1:XDebugとPHPのバージョン不一致 原因2:PHP.iniのXDebug2と3の違い ブレークポイントでとまらない原因と対策/PHP7から8へ移行/VsCode・XDebug VSCode(Visual Studio Code)でPHPを開発している方が対象です。 VSCodeですでにPHP開発を行ってデバッグもできている環境を前提に書いています。 そんな環境で、PHP7からPHP8にバージョンアップしました。 そうしても、別にエラーとかはでません。 けれど、VSCodeでデバッグしても、ブレークポイントで止まってくれなくなります。 その原因と対策を整理しておきます。 原因1:XDebugとPHPのバージョン不一致 最大の原因は、PHPのバージョンとphp_xdebug.dllのバー
Spring Boot + JPA + MySQLで簡単なデータアクセスのサンプルを作ってみます。 なお、STS3(3.9.6)+SpringBoot2.0+tymeleaf3.0迄動作確認しています。 今回の仕様 プライマリキーが一つの単純なテーブルばかりではないので、後のことも考えて、簡単と言いながら、ちょっとだけ実用を意識します。 今回の目標は、以下にします。 複数キーを持つテーブルを作る。 そのテーブルに対するCRUDを、Jprepositoryで用意する。 一連のテーブルアクセスを、JUNITテストでやってみる。 複数キーを持つテーブルを作る。 名前は、person_entityにしています。 create table person_entity ( pid VARCHAR(150) not null comment 'パーソンID' , item_id VARCHAR(150)
今回は、Spring Bootで簡単なサンプルを作ってみます。 STS3(3.9.6)+SpringBoot2.0+tymeleaf3.0迄動作確認しています。 サンプルの仕様 例によって、”Hello world"です。 Viewの部分はJSPではなく、tymeleafを使います。 ただ、文字を表示するだけじゃ面白くないので、以下を確認事項とします。 テンプレートエンジン(thymeleaf)の利用方法 CSS/Images/JavaScriptの配置と読み込み方法 データベースへの接続方法(MySQL) コントローラクラスとビューの値の受け渡し方法 2017/12/07追記 >以降の画面は、時点の最新バージョン3.9.1のものにしています。 新規プロジェクトを作る ファイル>新規>Springスターター・プロジェクトを選びます。 続いて表示される画面で、名前/グループ/成果物/パッケー
Html5のCanvasAPIのチュートリアルを参考にやってみた・・の2回目です。 目次 前回からの続きの説明 JavaScript:ニコニコマークを描く JavaScript:実際に動く丸時計を描く JavaScript:全体の再掲 前回からの続きの説明 前回はこちらです。 arakan-pgm-ai.hatenablog.com MDNのCanvasAPIのチュートリアル。。 developer.mozilla.org これを参考に、自分なりにCSSにBulmaを使って以下のようなサンプル画面を作ってみました・・というのが前回の話でした。 今回は上記の「チュートリアル03」と「チュートリアル04」についてやります。 前回で書いた内容は再掲しませんので、前回の記事から見てもらう方がわかりやすいとは思います。 JavaScript:ニコニコマークを描く ニコニコマークを描いてみました・・て
目次 ブラウザで手書きした画像をBase64形式に変換するサンプル HTML部分 HTML部分の補足 JavaScript部分「canvas01.js」 実行してみます Base64形式テキストについて補足 ブラウザで手書きした画像をBase64形式に変換するサンプル レイアウトを定義するHTML部分と、Base64形式にそれを変換するJavaScript部分をわけて記載していきたいと思います。 HTML部分 ソースはこんな感じです。 <!DOCTYPE html> <html lang="jp"> <head> <!-- Required meta tags --> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /
目次 認識した顔はデフォルトでは丸で囲まれます 顔を囲む形を四角に変更する 認識した顔の上に画像をかぶせる(マスクする) 認識した顔に光があたってみるような加工をする JavaScript全体です 参考:第一回と第三回のリンクです 認識した顔はデフォルトでは丸で囲まれます ブラウザ上で高速に顔認識ができる「pico.js」で静止画像の人物の顔認識をやります。 3回続きの2回目です。 前回を踏まえて認識された顔を示すマークを変更します。 デフォルトだと、以下のように赤い丸です。 デフォルトの赤い丸を描いている部分はこうです。 ctx.beginPath(); ctx.arc(dets[i][1], dets[i][0], dets[i][2]/2, 0, 2*Math.PI, false); ctx.lineWidth = 3; ctx.strokeStyle = 'red'; ctx.st
目次 シンプルな万年カレンダー HTML ソース javascript のポイント1:現在日付情報取得 javascriptのポイント2:前月・次月ボタン javascriptのポイント3:月間カレンダー表示 javascriptのポイント4:タイトルの表示 javascriptソース全体 シンプルな万年カレンダー 出来上がりイメージはこんな感じです。 右の△を押すと、1月先、左の△を押すと1月戻る・・ようにします。 HTML ソース ベースとなるHTMLです。 <!DOCTYPE HTML> <html> <head> <meta charset="utf8"> <title>ごく簡単なカレンダー</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="styleshe
目次 WIndows版OpenSSLで自己証明書作成とMariaDB(MySQL)のSSL化 サーバー証明書の作成 手順1:秘密キーの生成 手順2:ルート認証局の証明書の作成 手順3:中間認証局の証明書の作成 手順4:クライアント証明書の作成 MariaDBサーバーのSSL化 確認用にSSL接続強制のユーザを作る SSLで接続してみる HeidiSQLでSSL接続してみる 同じ手順でもWindows Server 2019で実行すると結果が違う?? WIndows版OpenSSLで自己証明書作成とMariaDB(MySQL)のSSL化 OpenSSLで自己証明書(オレオレ証明書)を作成して、MariaDBをSSL化します。 今回はWindows版のOpenSSLとMariaDBを使いました。 MariaDBはインストール済の前提です。 Windows版のOpenSSLがはいっていないなら、
目次 JOINのイメージがわからないという相談 JOINで総当たりの表が生成されることを確認するサンプル 内部表をイメージできたら条件での絞り込みも理解しやすい 内部結合(INNER JOIN)と外部結合(OUTER) INNER JOIN(内部結合) 内部結合のイメージサンプル OUTER JOIN(外部結合) 外部結合のイメージサンプル INNER(内部結合)とOUTER(外部結合)の使い分け まとめ JOINのイメージがわからないという相談 SQLの勉強を始めた人に「JOINのイメージがわからない」と相談されたのをうけて、ちょこっと説明したら、思ったより喜ばれたので、役に立つかなと思って書いてます。 とはいえ。 内容的に、SQLを使える人なら誰でも知ってるようなごく簡単なことでしかないです。 なので、知ってるよ・・って方はは読む必要はないと思いますけどね。(笑) 説明には以下の2つの
次のページ
このページを最初にブックマークしてみませんか?
『SE_BOKUのまとめノート的ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く