アップデートの仕方
2022年5月8日日曜日
Duet3 6HC MBのアップグレード
2022年4月25日月曜日
PICのポートアクセスの仕組みをヘッダーから見る
かなり昔の事、PIC12F509というちっこいのを昔使ったことがあって、
最近はどうなの?と思って開発環境を入れてみた
まず、IDE
ここからインストール
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide
次にコンパイラが入ってないのでコンパイラのインストール
https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers#tabs
んで、MPLAB X IDEを開き
FileからNew Project
Nextを押してPIC12F509を選択
ちなみに、データシートによると、GPIOは06h割り当てられている。
さきほどのGPIObits_tを選択すると、pic12f509.hのヘッダが開くのだが、
そこに以下のように書かれてる。
構造体でビットが定義してあって、GPIObits.GP0=1;とかやればいいんだなってのが分かる
2022年4月24日日曜日
BisonとFlexで四則演算(カッコ未実装)
よくある、BisonとFlexを使った四則演算
カッコはまだ実装してない
しかも、抽象構文木も作ってないし、ABSの実装も適当
ただ、優先度つけてるだけ
mycalc.y
んで、これをBisonにかける
bison -d mycalc.y
mycalc.tab.hが出来るので、中身を見ると以下の記述が出来ている。
%tokenから定義が作られる。
つぎに字句解析部
mycalc.l
さきほどbisonが吐き出したmycalc.tab.hをincludeして、
ADDやSUBなどを返すのが主な仕事
値はyylvalに入れて、NUMBERを返すようになっている。
こっちにはmain関数は無い
flexでlex.yy.cを作る
flex mycalc.l
んで、lex.yy.cを見てみると、すげー長いコードが出来ていて、
こんな字句解析要る?ってみんな思うし、
自分で作ったほうがよくね?と話題になったりする。
最後にまとめる
cc -o mycalc XQParser.tab.c lex.yy.c -lfl
./mycalc
1+2
= 3
3+3
= 6
1+2+3*4/2
= 9
まぁ一応動くのが出来る。
ここまで、Bison And Flexのコードなんだけど、
ABS動かないよね、なんじゃこれ状態?
2022年3月22日火曜日
Win11Preview+WSL Preview+VSCode でリモートつながらなくなった
おんや?
WSL2をAppStore版にして、VSCodeを最新版にしたらリモートつながらなくなった・・・
WSL開いて以下のようにしたら繋がった
sudo apt-get update && sudo apt-get install wget ca-certificates
ターミナル見たらライセンスがどうたら謎のメッセージが出ていてわからんかったが、まぁ、こんなもんだろ
2022年1月20日木曜日
シェルスクリプト
最近シェルスクリプトを書くことがあって、
オプションを使ってパラメータを処理しようとしたわけなのだが、
シェルスクリプトで字句解析して、そのパラメータの組み合わせが出来上がったらアクションをするようないわゆるLexとYaccの処理を書かないといけないのかと調べていたところ、
getoptsという物があるとわかった。
今までPerlスクリプトでやってきたもので、Bashスクリプトなんてあんま書いてこなかった。
Bashスクリプトで正規表現も後方参照もできるし、
空白の混じったファイル名を扱うときに、Forで回すと空白のところで分割されてしまうので、
$IFSでなんとかするという風習があることもわかった。
まぁ、大体のことはできるんだねぇ?
でも、もっと何でもかんでもできるPerlやPythonのが流行るよなぁ?
2022年1月3日月曜日
lex & yacc プログラミング
https://github.com/ChaosReadman/lex_and_yacc_programming
lex & Yacc プログラミングのコードをUbuntu20.04LTSで動くように修正したもの
https://iss.ndl.go.jp/books/R100000002-I000002412297-00
ただし、3章までだ。
4章以降やる気が出なかった。
4章以降やったからといって、何ができるようになるわけでもない。
実用例を入れて欲しかった。
昔読んだ時もしっくりこなかった。
lexとyaccが何をするものなのか、という説明から全然載ってないのだ。
たとえば、スクリプトの組み込みするとかなんだとか色々できることはあるだろうに、
こんな説明しかできない連中ばかりなのだろうか?
2021年11月10日水曜日
Fujitsu AH53/B3にM2.SATA増設(ブートドライブに設定)
富士通のAH53/B3を使っている
前にSSDにしたときに、M2スロットがあるのを確認した。
調べたらSATA M2がささるようだ。
そんで、増設してみた。
念のためヒートシンクもつけてある。
M2 SATAのシールははがしてバッテリーの下に張り付けておいた。
(機種わからなくなると困るんで)
ヒートシンクは輪ゴムで止めるだけの簡単な奴だ。
M2用のネジやスペーサーのセットになったいたので、
これでいいやと購入した。
それと最初、M2のNVME買ってしまって認識しなかった。
切り欠きが一個しかなかったのでNVMEだと思ってたらSATAだった。
NVMEは後でケースに入れて、外付けSSDとして使おうと思ってる。
増設したらディスク1(今までのはディスク0)として認識された。
今までのところはdiskpartでパーティションを消してから、ボリューム作った。
今回の部分で、未割当があるのがちょっと嫌
なんとかならんのか?
このノートは8世代のCorei7で、SSD化してから起動も早くなったし、
かなり使い勝手が良くなった。
Win11Previewも入れてて、VMでかなり古いイメージとかも残ってて、
便利に開発につかっている。
VMのイメージはWin2008WorkstationにVS2005、VB6が入っている。
こんなのでも案件が来るから持っておかないといけない。
VMイメージの置き場に困ってたけど、ひとまずこれで安心だ。
2021年10月6日水曜日
船橋中央公民館でワクチン接種してきた
船橋は8月の予約システムは停止していて、2021/09/16に再開した。
嫁に知らされて予約をしたら10/06に予約が取れ、18:15にワクチン接種をすることができた。
船橋では実質2か月?ワクチン接種が出来ない状態が続いていたことになる。
次の予約は10/27に同じ時間となった。
これで、ワクチン接種が進んだ、すごい成果だと国は宣っているが、
嘘もいい加減にして欲しい。
ワクチン接種を勧めますと政府広報を行っていたが、
受けられない状態だったのだ。
歴史の事実をゆがめるのはやめて頂きたい。
国のワクチン接種スケジュールは遅々として進んでいない。
多くの人が受けたくても受けられない状態進んでいる。
2021年10月2日土曜日
ちっさいマシンたちについて徒然なるままに書いてみる
リナザウのCPUは400MHzかそこらだったよな
PocketChipは1GHzあるし、時代の流れを感じるなぁ
https://shop.pocketchip.co/
小さいPCが欲しいという連中の需要はある程度はあるんだけど、どうしても続けて使い続けてもらえるものには育たない。
ハードの問題もあるし、使う側の問題もある。
iPhone出始めの頃だってかなり怪しんだ。
まさか10年続くとはなぁ
WindowsCEでさえ流行らなかった。
俺はTouchDiamond使ってたし、WinCEのドライバ作ってたし、MFCアプリだって動くんだよ、でも、流行らなかった。
AppleのNewtonだって流行らなかった。
Palmだってごくごく一部だった。
Blackberryはクールだったけど、やはり廃れた。
Androidは出始めの頃に、なにこのJavaVM?ガラ系のVMのが早いじゃんて馬鹿にしてた。
実際、Dalvikは遅いしクソだったが、Androidは5.0からAndroidRuntimeに置き換わり、そこそこで動くようになったらしい。
今のAndroidは、Java信者がずっと焦がれていたJava OSだと言ってもいいのかもしれない。
だが、今まで下手したら30年くらい続いているOpenGLの流れをMetalで断ち切ったAppleはすげーなと思う。
SonyのCollada形式も正式に採用してるし、独自な物、良い物はどんどん取り入れている。
こだわりもなんもなく、ただ、いい物を採用する姿勢は他の会社には見られない事だ。
2021年9月16日木曜日
GAS使ってみた
2021年9月8日水曜日
golangで画像処理してDXF作った
ある会社さんから画像からDXFを作って欲しいという案件がきたので、
golangで試しに作ってみた。
ちなみに環境は相変わらず、RaspberryPi4 にVSCでリモート接続して開発している。
元画像から輪郭を抽出するところは、https://github.com/hybridgroup/gocv を使わせていただいた。
元画像
使わせていただいたものばかりだけど、
それを知っても出来ない人には一生できないだろう。
それがプログラムというものだ。
-
どうも書かなくてはならないネタが出来てしまった。 マルチスレッドには欠かせないSleep(0)についてだ。 自分はSleep(0)を多用していた。 MSDNの記述 によると 「中断時間として 0ms を指定してこの関数を呼び出すと、現在のスレッドは自らに割り当てられている...
-
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f0502813-9c4f-4b45-bab8-91f98971e407/popup-popupstaysopen-togglebutton-and-data-bindi...


