2024年12月19日木曜日
庭にレイズドベツドを設置しました
2024年11月5日火曜日
XML 構造のファイルシステムへのシリアライズ化及びFUSEの導入について
2024年10月20日日曜日
Nuxt + PrimeVue をお試し中
Windows環境にあれこれ設定するのも嫌・・・
というかそもそもWindowsで開発するのが嫌なので、
うちに常時稼働しているRaspberryPiで開発することにする。
(別にWSLでもいいんだけど)
うちのRaspberryPiにはUbuntuが入っているので、VSCodeからリモートでつないでターミナルを起動
まずはnpmを入れる
sudo apt install npm
終わったら次はプロジェクトを作成するので、適当なフォルダをつくる
mkdir nuxt_test
cd nuxt_test
続いて、プロジェクトを作成する
npx nuxi@latest init timer
プロジェクト名はtimerにしてみた
(タイマーを設定して動かすだけのページでも作ろうかと思ってみた)
しばらくするとプロジェクトができるので、ターミナルから起動してみる
npm run dev -- -o
しばらく待つと、http://localhost:3000で起動される
ラズパイのIPじゃなくてlocalhostなんだけど、なぜか動く(なんで?)
nuxtのGetting Startedのページを読み進めると、Nuxtのフォルダ構造が出てきた
pagesフォルダを作るのがいいらしい
timer/pages/index.vueを作る
中身はコレ
つづいて、pagesを使う時にはapp.vueを書き換えるらしい
timer/app.vueはすでに存在しているので、中身を変える
NuxtPageはpagesフォルダを使う設定らしい
これによって、pages/index.vueがhtmlとして解釈されて表示されるようになる。
ブラウザでIndex pageと表示されていればオッケー
続いて、今動いているターミナルを一度Ctrl+Cで止め、primeVueを入れる
npm install primevue
npm install --save-dev @primevue/nuxt-module
primeVueのテーマを入れるnpm install @primevue/themes
アイコンも入れとくnpm install primeicons
ついでにpages/index.vueへボタンを追加してみる
ターミナルからnpm run devsして、
こんな感じで表示されればオッケー
ん?なんかCheckボタン形偏ってない?わざと?まぁ気を取り直して
pages/index.vueを編集
IftaLabelというのを使ってみる
にしてもこの緑、気に入らない・・・
2024年9月30日月曜日
MakoServerを動かしてみた
MakoServerというものがある
Lua ServerPage(LSP)を処理するWEBサーバという位置づけで、LSPという拡張子のファイルをHTMLとして表示してくれるLSPの中にはLuaScriptを書くことができる
ログインフォームのサンプルを表示してみた
これをIISなどで表示するのであれば、
IISからMakoServerへポートフォワードしてやればよさそう
Luaは型の無いスクリプト言語で最速といわれている
GitのサンプルにはWebSocketなどもあり
コンパイル無し(内部ではやってるようだけど)で動かせるため開発効率も高いはず
2024年9月27日金曜日
HTML+JavaScriptで封筒宛名印刷
封筒の宛名印刷をしようと思いHTML+JavaScriptで作ってみました
サンプルをこちらに置きます
ダウンロードして開くとこのようなページが表示されます
キーボードのnでNext、pでPrevious、rで180度回転します
うちのHP SmartTank 6006では回転印刷ができないので、
rを押してひっくり返った状態で印刷をします
ブラウザからプリントで封筒へ印刷できます
封筒は前面給紙トレイに、封筒の表面を下+封筒の閉じる側を手前に向けてセット
位置がずれる場合は適宜調整をお願いします(HTML内に座標が書いてあります)
データはHTML内にJSONで定義されているので、それを参考に差し替えてください
2024年9月25日水曜日
DBでMAX
DBでIDなんてものはオートインクリメントにしておけよと思うのだけど
こういうのでIDのMAXを取得してインクリメントしてインサートというパターンがある
ところで、上記SQLには大問題がある
データが入ってない場合、NULLになってしまうのだ
するとMAX取得ができないでエラーとなる
仕方ないのでこうする
これだと一件もデータがないときには-1となり、インクリメントして0
そのままインサートしてIDが0のデータが出来上がる
次からはMAXを取得するので0が取得できるため、インクリメントして1
そのままインサートしてIDが1のデータが出来上がる
元からダミーデータが入っているような環境だと気が付かないので要注意だ
ついでに書いておくけど
DBにテーブルを作るとPrimaryKeyが必要になる
これが何のために使われるかというと2点あって
1.重複しないため
2.ソートのため
ここで2はあまり重要ではない
IDでソートするパターンなんてあまりないからだ
なので重複しない目的のためならUDIDのようなものを割り振っても構わないはずだ
しかし、本当にそうか?
実はDBのPrimaryKeyとは、インデックスがあるため、順番を検索してインサートが行われる
すると、UDIDの山を一生懸命探しに行くことになるのでインサートは遅くなる
ちなみに大手のDBでは、インデックスを3つ作成するとインサートが10倍遅くなると言う
わたしはこの点、もはやDBの構造的問題に思えて仕方ない
ここ数年かけてXML DBについて考えてきたが
XML DBであればこういうソートだのインデックスだのいう概念をうまく包括できると考えている(インデックスが自動的に勝手に存在するようになる)
その果てにたどり着いたのはファイルシステムで表現してしまえばいいではないかという結論だった(様々な考察をして利点があると考えた)
しかし、次にファイルシステムでは足りないということにも気が付いた
そこで既存ファイルシステムでは何が嫌なのかという点を列挙してみることにした
1. 同じフォルダに同名のファイルやフォルダが作れない
2.ファイルやフォルダに任意のプロパティを設定できない
3.ファイルやフォルダの順序が明確ではない
4.パスに限界がある
何言ってるかわからないかも知れないが
わたしは非常識な事を言っているのである
逆に言うと常識で考えないでほしい
WindowsでもLinuxでもファイルシステムはかなり昔からあるものを拡張し続けている
しかし、上記4点を改善できれば、XMLのタグやInnerTextなどをそのままファイルシステムで表現できるようになる
もちろん、JSONやYAMLもファイルシステムに置き換えられるだろう
早速ファイルシステムを考え始めた(いまさらか?)
世の中にはFUSEというものがある
これを使うと結構簡単に実現できるかもしれない
あとは設計製造だ
今ここまでたどり着いた
2024年8月25日日曜日
2024年8月11日日曜日
XML Dataをフォルダやファイルシステムでシリアライズする方法に関して考察
2024年8月10日土曜日
散水機付けてみました
2024年7月31日水曜日
構文木
5÷(8−3)×2+1を正しく計算できる?
2024年7月20日土曜日
XML2Json再考
2024年7月16日火曜日
2024年7月12日金曜日
地熱
2024年7月11日木曜日
GoによるJSONのパースについて
2024年7月9日火曜日
Unityのデータ指向には賛成(と言うかゲームはそういう作りにするべき)
https://game-ace.com/blog/unity-dots-system/
わたしが作っているゲームエンジンはデータ指向でありオブジェクト指向なのだけど、Unityはオブジェクト指向が嫌いなようだ
両者は対立するものではない
オブジェクトがデータに沿って動けば良いだけの話だ
わたしはGo言語もやっているので、モジュール指向で作ることには抵抗が無いし、オブジェクト指向に凝り固まったJavaは嫌いで仕方ない
Goの作者がC++はなんか違うと思い続けてGoが作られたのも納得している
確かにクソコードの作者はクソなクラスを山のように作り出す
それ、なんのため?
意味わからん
遅いだけじゃん!
ずーーーーっとそう思い続けていた
繰り返しになるがオブジェクト指向がクソになるのはクソコーダーの所為なのだ
クソコーダーはアセンブラからやり直せ!
Windowsのクラスがクソなのは間違いない
あのクソ構造なMSお作法のために何人の有能なプログラマがその道を諦めたことか、、、
わたしは全部見て来たが、見ていない人には何もわからないだろう
こうやって歴史は大きな勢力に上塗りされるのだ
ところで、この紹介ページの図
下手すぎ
なんだこのJobが沢山ありますよ的な図は、、、
わたしがUnityを嫌いなのはC#だからだ
C#はJavaが欲しかったMSが苦し紛れに作った言語で、生まれながらにポリシーが無い
C#はクソ真似言語だ
登場当時、C#はC++--(シープラプラマイナスマイナス)と言われていた
C++からオブジェクト指向以外のものを削除した言語という意味だ
こんな古い話、今では知っている人も居ないだろう
とにかく面白く無い言語で、ゲームに向いているとは思えない
あんなもんやるならSwiftやGoの方が何倍も素晴らしい
2024年7月5日金曜日
2024年7月4日木曜日
2024年7月2日火曜日
庭の手入れ
2024年6月29日土曜日
JavaScriptでゲームエンジン作ってみた
2024年6月27日木曜日
Duet Web Controller Camera Setting(Microdia)
3D PrinterにつないでいるRaspberryPiにUSBカメラをつけて
Duet Web Controllerから見れるように設定した
※まず、Duet3 に接続しているRaspberryPiにSSHで接続し
1.mjpg-streamerをインストール
sudo apt update
2024年6月23日日曜日
2024年6月16日日曜日
詳細設計書きたくないと言う話
2024年6月2日日曜日
ライ麦の部分的収穫
2024年6月1日土曜日
ライ麦試しに剥いてみた
2024年5月25日土曜日
やってみれば良いだけの話なのだが土の話
-
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f0502813-9c4f-4b45-bab8-91f98971e407/popup-popupstaysopen-togglebutton-and-data-bindi...
-
どうも書かなくてはならないネタが出来てしまった。 マルチスレッドには欠かせないSleep(0)についてだ。 自分はSleep(0)を多用していた。 MSDNの記述 によると 「中断時間として 0ms を指定してこの関数を呼び出すと、現在のスレッドは自らに割り当てられている...