日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
ラジコン
2024年5月
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 31

アーカイブ

2022年09月 のアーカイブ

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フラグを混同しているようだ。

» 続きを読む

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.16
編集:2022.09.16

内容

SQLITE_AUTH(23): not authorized in "INSERT INTO vacuum_db.'user' SELECT*FROM"repository".'user'"
SQL: SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM"repository".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0
SQL: VACUUM
SQLITE_AUTH(23): statement aborts at 1: [VACUUM] not authorized
SQL: VACUUM
Database error: not authorized: {VACUUM}

新規なのでファイルがないとかトランザクションが終了していないとか?
sqlite.c 14万7千行目付近で落ちている。
vacuumしなければ問題ないので
よくわかないので保留。

» 続きを読む

git-fossil

執筆:2022.09.14
編集:2022.09.14


$ git help fossil

GIT-FOSSIL(1) Git Manual GIT-FOSSIL(1)

NAME
git-fossil - Bidirectional operation between a fossil repository and Git

SYNOPSIS
git fossil <command> [<options>] [<arguments>]


fossilをごにょごにょ魔改造して定期的にオリジナル trunkとマージして同期するより、gitに詰め込んだほうが簡単だということに気が付いた。

圧縮ファイルとかwebui周りのセキュリティ強化とかCRLF、コードページ表示とかその他もろもろの魔改造しているので、いまさらいらない感もある。

公開ページだと文字化けやセキュリティ面で魔改造版が必要だが
ローカルネットワーク内だけなら本家版fossilとgit-fossilだけでいい感じではある。

fossilの web ui は魅力的だが
修正、これとこれまとめたいとか、このブランチ古いからいらないとか よくあるので、
コミット取り消しのできる gitのほうがいいかな
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にコピーする


PR

[PR]