日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Fatal error: Uncaught ValueError: mb_convert_kana(): Argument #2 ($mode) must not combine 'h' and 'k' flags in Command line code:1

執筆:2022.09.27
編集:2022.09.27


Fatal error: Uncaught ValueError: mb_convert_kana(): Argument #2 ($mode) must not combine 'h' and 'k' flags in Command line code:1

ほえ?

php\8\8.1\php -r "echo mb_convert_kana('カな', 'kh');"
カナ
php\8\8.2>php -r "echo mb_convert_kana('カな', 'kh');"

Fatal error: Uncaught ValueError: mb_convert_kana():
Argument #2 ($mode) must not combine 'h' and 'k' flags in Command line code:

k 「全角カタカナ」を「半角カタカナ」に変換します。
h 「全角ひらがな」を「半角カタカナ」に変換します。

競合する要素が全くない

カナを知らない人がメンテナンスしたようで kとKフラグを混同しているようだ。

» 続きを読む

カテゴリー: ぷろぐらみんぐ
2022.09.27

rustをインストールしてみた

執筆:2022.09.26
編集:2022.09.26


GoogleはKotlin という言語や低レベルはrustにシフトしているらしく、GoogleのGo言語は、オワコンらしいのですね。

rustもオワコン説もありますが
開発元がmozillaというのがマイナスイメージ、ダメ実装ポイ雰囲気なので長年無視していましたが、最近大手が基幹システムに採用しているということで再注目を浴びているようなので、地位が確立し当面消滅はしないだろうということで触ってみることにしました。

初見

とにかく、rustの他人のコードは読みにくい。

はぁ? っていう感じですね。変な記号だらけで 頭をグルグル ブドウ糖消費しまくって 考えないと理解不能です。

考案した人パズルが好きなのかな?意地悪い性格じゃないかな?

人が読みやすい、わかりやすい構造考えようよ


mod 普通この分野のmodは 割り算のあまり だろう、 moduleを略すなよといいたい。
fnもそう 普通に functionやfuncでいいのに。
度が過ぎる省略は逆に生産性を低下させる。
変な略しているのに、他はたらたら長文、設計思想がめちゃくちゃ。
変なとこで略すと無意識に頭で変換で脳細胞がいくつかが痛むし養分減るからからほんと勘弁だよ

phpみたいに零細企業のアプリ ハカイダーみたいなのがOSSコード破壊するのがいるので、RUSTだとレベルが一定以上必要になるので
読みにくい考える仕様にすることで結果としてバグが減ることに貢献するとは思う。

ただ度が過ぎるとみんないなくなる。
他人のコード読みにくい = メンテナンス難

気になるところは、go言語と同じく外部ライブラリだよりで、バンドルではないのでライブラリのセキュリティや将来性(アップデート)、安全性に疑問が残ります

言語の例外を実装しないのが最近の流行り?

webで情報収集して概要はつかんだので
公式のdocを読みます

変数関係はすぐに理解できました。
その他が問題ですね。へんてこりんな記号だらけで、何がしたいのやら。

.is_ok()

.unwrap
  Result値がOk列挙子なら、unwrapはOkの中身を返します。ResultがErr列挙子なら、 unwrapはpanic!マクロを呼んでくれます。

は?
そんなもの用意するなら最初から例外実装しなさいよ。
エラーで実行止めるわけないだろ。設計したやつばかか?
アプリ終了か終了おすまでエンドレスだろ普通。

rustのコードみたらunwrapだらけ

delphiだと通常 try exceptで例外起きそうな場合は全部例外封殺するので
個人的には、なくてもいいかもと思ったりもしますが
完全にないとなると気持ち悪いですね。想定外のところをスルーされると怖いですね。
というか戻り値にエラー処理強要するなら例外を実装しろといいたい。

.unwrapとか 苦し紛れに後から実装したのでしょうか?

説明書を見ながら標準ライブラリを何か普通に使おうとしたら
 error[E0658]: use of unstable library feature
は? いやいや 仕様 糞すぎるでしょ

コアをフォークして自分色に染めようかと一瞬おもったくらいですよ

それはいいとして

実行ファイルがデカイ!

printしただけで 5MB。
うーん。ですね。
スタンドアロンならいいですが、webだとレスポンスに影響するので読み込みサイズは小さいに越したことはないです。

stripコマンドで少し小さくできるそうです

もやもやしますが SSDの時代なのでこれも気にしないことにします。

ということで、コンパイラをインストールして、サンプルのこんちにはを試して終了となりました。

サンプルだけなら、インストールしなくても 公式サイトのデモページで実行できます。

今のところバッファオーバーランを起こすようなアプリないですし、そういうのは、すべてC#とかdelphiとかスクリプト言語でかけば発生しませんしね。
低レベル操作やREST APIを
クロスコンパイルしたい場合は、便利かもですが、
rustの使い所が現在ないです。


WEBで使いたい場合は、

https://docs.rs/cgi/latest/cgi/
https://docs.rs/cookie/latest/cookie/
https://docs.rs/formdata/latest/formdata/

webフレームワーク を使いたい場合は
 axum
 actix-web

国際化は
https://docs.rs/rust-i18n/latest/rust_i18n/

https://docs.rs/gettext/latest/gettext/

リソース組み込む場合は、
https://docs.rs/resource/latest/resource/

このあたりを使えばサクッとかけるのではないでしょうか。

練習に小さいプロジェクトを移行するのもいいと思いますが
慣れた言語でサクッと短時間で書いたほうがストレスがなくていいですね

» 続きを読む

カテゴリー: ぷろぐらみんぐ
2022.09.26

PHP Warning: 'C:\Program Files\Microsoft\jdk-11.0.16.8-hotspot\bin\VCRUNTIME140.dll' 14.15 is not compatible with this PHP build linked with 14.29 in Unknown on line 0

執筆:2022.09.02
編集:2022.09.02


PHP Warning: 'C:\Program Files\Microsoft\jdk-11.0.16.8-hotspot\bin\VCRUNTIME140.dll' 14.15 is not compatible with this PHP build linked with 14.29 in Unknown on line 0


原因

その1: phpの身勝手な非互換性宣言

その2: jdkの身勝手なdll添付

その3: Netbeansのバグ
通常のdll読み込み順序に関係なく
子プロセスに環境を継承して起動しているため、読み込み済みのdllが優先される。

解決方法

(1) Netbeansを開いていたら終了する

(2) 通常のシステム環境変数 PATHを
C:\Windows;C:\Windows\System32;
が最初に現れるように訂正する

(3) 通常は最新版が C:\Windows\System32にあるもので
共通ランタイムをjdkフォルダにいれていること自体 間違った使い方

不要な
C:\Program Files\Microsoft\jdk-11.0.16.8-hotspot\bin\VCRUNTIME140.dll
を削除や名称変更して無効化する

消したくない場合は
C:\Windows\System32\vcruntime140.dllを
C:\Program Files\Microsoft\jdk-11.0.16.8-hotspot\binにコピーする
カテゴリー: ぷろぐらみんぐ
2022.09.02

SQLiteで多重同時アクセスすると本当に落ちるかやってみた!

執筆:2018.12.06
編集:2018.12.06


SQLite Version 3

チェック方法
・テーブル更新とSELECTをする

その1:PHP SQLite3クラスで試してみる

PHP Warning: SQLite3::exec(): database is locked in
と表示されクエリーは失敗する

書き込む必要がない場合は読み込み専用にすることができる
SQLITE3_OPEN_READWRITE

その2:PHP PDO_SQLiteクラスで試してみる

DBファイル名-journal
ができて、書き込み待ちになる
自動で対処してくれるのでこちらのほうが使い勝手がいい。
しかし書き込み中に、サーバースレッドのタイムアウトになるとデータが破損する可能性があるので
気を付けよう
★PHP7.3からPDO_SQLiteは読み込み専用モードで開くことができるようになった。

どちらがいいかは、案件によるので臨機応変に対応しよう。

Webサーバー SQLiteで同時アクセス対策するには?


よくある疑問

SQLiteは同時アクセスするとロックでエラーになる
トランザクションが・・・。
などなど

という意見がありますが、
月間数万アクセスくらいなら平気で耐えれます。
たいていは他の原因です。

主な原因と対策

  1. サーバーの同時プロセス数制限による503エラー
    1. 画像の枚数やサイズの確認
    2. ページキャッシュの利用を検討する
  2. SQLiteデータベースを長時間占有している
    1. プログラムを見直し、読み込み、書き込みを迅速に処理し、さくっとDBを解放する
    2. DBをきれいに解放してからクライアントに応答する。
  3. SQLiteは書き出しが遅いため、その処理時間を上回るリクエストが連続できている
    1. 設計の見直し
    2. データを更新する必要があるのか?
    3. SQLiteで運用できる限界を超えていないか検討する

まとめ


きちんと設計する。
サーバーのリソース制限などにより、実行中の処理中断でデータベースが破損することがあるので
SQLiteを利用する際は、定期的なバックアップを忘れないようにしましょう

カテゴリー: ぷろぐらみんぐ
2018.12.06

WYSIWYG エディター : Trumbowyg

試用してみた感想

サンプル:v2.10.0

テーブル
  • 表の作成
  • 行・列の追加・削除しか操作できない。

表やセルの詳細設定がないのが残念な仕様。

評価:★☆☆☆☆

今後も利用することはないでしょう。
カテゴリー: ぷろぐらみんぐ
2018.08.18



PR

[PR]