鏡の中
1円起業した人付き合いの苦手な普通のプログラマの日々
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日火曜日
-
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 を指定してこの関数を呼び出すと、現在のスレッドは自らに割り当てられている...