2020年8月30日日曜日

遊ばなきゃ!~デジタル小物を愛でる

ここのところコーディング三昧で楽しかったけど、欲求不満。  

やはり電子工作的なことを楽しみたい。
 ここのところ触れてなかったデジタル・ガジェットを弄りたい。
 新しいのを買うばかりなのもつまらないので手持ちのものを再検証。

手持ちのデジタル・ガジェットたち
全てUSBはついている
なまえSoCClockFlashROMRAMIO
Arduino UnoATmega32816MHz32KB2KBEEPROM 1KB
ESP8266Xtensa LX10680MHz4MB96KBwLAN(技適無・NG)
Nucleo F401REARM Cortex-M484MHz512KB96KB
Wio TerminalARM Cortex-M4(+FPU)120MHz512KB192KBLCD,WLAN,μSD
Raspberry pi 1BARM1176JZF-S700MHz512MBSD
RasPi ZeroWHARM1176JZF-S1GHz512MBWLAN,μSD

ちょっと表が本文エリアからはみ出そうだけどまあいいか
とりあえずはraspizeroとnucleoをいろいろ弄ってみよう。
まずはRaspberry pi zeroをusbケーブルだけで使えるようにセットしてみる。

2020年8月14日金曜日

Excelでデータベース ~ 或いは今更のADO ~

 最近Excelを扱うプログラムをいくつか書いた

で、Excelでデータベースが扱えたら便利な気がした。

思い出したのがadodbを使えば楽にSQL構文でいろいろなデータソースを扱えるということ。

※そもそもaccessのVBAで書いていたころはあまりスピードも変わらなかったし別のリソースを読みこむということもなかったのでadoを使わず専らdaoを使っていた。フィールド名などのデータ構造もdaoであれば一元で扱えた。adoだとadoxが必要になる

で、recordsetの扱いとしては比較的似たコードになるとはいえ今更ながらのado入門(正確には最初にどちらかにするために弄ったときに一通りは書いたので再入門)を果たすこととなった。

こちらのサイトなどを参考にさせていただきつつExcelでいくつかの条件を付けてSQLを流してシートに抽出するマクロを用意した。

元データとしては「なんちゃって個人情報」さんで5000行のcsvを利用

いろいろと条件を変えつつベンチをとってみたがどうしても単一のテーブルからwhereで条件をつけてデータを抜くような単純なものになるので結構実行速度は速かった。またそのような使い方ではデータベースソースを置く媒体(SSD,HDD,NAS,USB,MO)でさほど速度も変わらなかった。
(例外的にMOでだけaccdbが遅くなったがもっとも複雑な構造なので遅い媒体上では不利なのかもしれない。)

皮肉なものでaccessでCOMを使って裏でexcelを起動してxlsxのファイルなどを作成・更新する時間が惜しいので速くなる方法を調べていてtransferspreadsheetに行き着いたんだけどc#ならclosedXMLでexcel無しに直接ファイルを操作できるので速いのにって調べているうちに小さなシステムで顧客の各PCにはaccessはないのだしexcelのファイルをexcelのマクロで扱う方が起動時間の分速くなるかなって思って考えているうちに今回の仕儀とあいなりました。こういう情報もあることだしexcelである程度まとまったデータはadoで扱おうと思う。

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...