飴屋

開発日記/2026年の日記

2026/10/6

最近、企業がサイバー攻撃にあって、個人情報流出の報道が連続して湧いてきてますね。多分、露見してないだけで、暗数はもっと半端ないんでしょうけどね。中小企業はまぁ、セキュリティにかけるお金がなくて、手が回らないという事情はわかります。(そもそもコスパ的にターゲットになりにくくて問題になってないのかも?)ただ大企業・有名企業はもうちょっとお金をかけてもいいのかもしれません。個人情報は最近は漏洩しても「お詫び」で済ませる傾向があるので、大企業ほど経済合理性を追求して、そこに大金は使わないのかもしれません。

今のセキュリティ最前線は、攻撃も守護もAIを使ったものになってきていると思います。ボットが昔より賢い気がしますもんね。gitのリポジトリまで気を付ける時代ですもんね。私のプライベートな雑コミットは危ういかもしれません。

というわけで、AIにちょっと診てもらうことにしました。一応、ちゃんとセキュリティは意識してプログラムを書いていたつもりですが、小さいコンテンツでささっと書いたプログラムにXSSの穴がみつかったり、構造がバレない前提で書いていた部分が見つけられたりしちゃいました。「そんなことされるはずがない」が通用しない世の中なので、穴は事前にすべて埋めていくつもりでやった方がよさそうですね。

気を付けるべき具体例をここに書くこと自体が、うちのシステムの穴をさらすことになりかねないので、詳細は秘した方がいいのかな。

2026/10/1

とりあえず、まずはクレジットカードの利用明細をインポート形式データに変換してやよいの青色申告に食わせてみたところ、うまくいきました。利用明細には業務とは関係ない項目も混ざっているので、それを除去する工程さえ入れれば、あとは記帳内容のパターンも限られているし問題はないと思う。最初の一回はさすがに検算的にデータチェックを人力で行ったけど、これは任せても大丈夫なやつでした。

次にさっき銀行の通帳データをインポート形式データに変換したんですが、こっちもあっさりうまくいきました。売掛金もちゃんと記録されている!わ~、これもう人力では二度とやりたくないかも!

となると・・・次はレシートの山を何とかしてくれる仕組みを考えたいけど・・・カメラとOCRからだよなぁ・・・最近は取引内容をQRコード化してレシート印字してくれるレジもあるから、そこから攻めたらいいだろうか。それか現金取引を極力抑えるのがいいんだろうか。○○Pay系はどの程度、利用履歴を保持してくれるんだろう?証拠能力とかも今と昔じゃ違うんだろうか?ぶっちゃけ、スマホの中に「ポイント」を扱うアプリが大量にありすぎてお得に買い物するのが困難なので、国主導でなんとかしてほしい気持ちはあります。手に障害があると片手をスマホ操作に取られると、もう何にもできないんですよね。レジ袋にも入れてくれないからね、今は。苦労してると見かねて代わりにやってくれる店員さんもいるんだけど、本当に「あなたは神か」って思いながら、お礼を言っています。またそのお店に行く動機にもなるんだけど、もうその店員さんには会えないのはなんでなの?(脱線)

AIで納税は遠くない未来だとは思うんですが、抵抗勢力がいくつも思いつきますね。でも、個人事業主程度の帳簿作業なんて、かかった時間の割りに得るものも少なそうだし、パパッと勝手にやってくれるのがいいなぁ。仕入れがある業種とかはまた違うのかなぁ。

2026/9/27

個人事業主なので、会計処理で難しいことをやる必要はなく、やよいの青色申告(古いバージョンのもの買い切り版)に収支をポチポチつけています。往年の名プレーヤーである弥生さんの製品ですから、とりあえずなんでもできるんですが、その分、私には一生不要な機能もついていて、余計な項目に目を奪われちゃって作業効率に影響があるなって思ってました。会計ソフト自作も考えてみたんですが、AIに相談したら「やめとけ」と言われた(意訳)ので、やめておきました。まぁ、きっとよくわからない税制とかいろいろ絡んでいるんでしょうね。で、さっき入力作業を始めようと思って、ソフトを起ち上げてみたものの、あまり楽しい作業ではないのでウダウダしていたら、画面のメニューに「インポート」「エクスポート」っていう項目を見つけました。これはもしやデータを外部システムとやり取りできる仕組みでは!?

ということで、気になってちょっと調べてみました。どうも弥生インポート形式というテキストファイルの仕様が定められていて、「取引データ」と「期首残高データ」を表現できるそうです。「取引データ」なんて、ポチポチ面倒に思いながら入力していたあれですよね・・・自分用にカスタムされた入力システム作れちゃうじゃん!以下、弥生公式サイトより「取引データ」の仕様です。

列条件項目名桁数型備考
1(A)必須識別フラグ4文字次の中から設定する仕訳にあった適切な番号を半角数字で入力

2000・・・1行の仕訳データ
2110・・・複数行の仕訳データ  1行目
2100・・・複数行の仕訳データ  間行
2101・・・複数行の仕訳データ  最終行

取り込める仕訳の行数は20行まで
2(B)伝票No-数字取り込まない
3(C)決算-文字取り込まない
4(D)必須取引日付10日付西暦または和暦日付に限る
(例)2019年7月1日の場合、次のいずれかで入力

「20190701」「2019/07/01」「2019/7/1」
「R.01/07/01」「R.01/7/1」「R01/07/01」
「R01/7/1」

複数行の仕訳データの場合は1行目の[取引日付]で取り込まれます

取り込める期間に制限あり
インポートする際の制限事項
5(E)必須借方勘定科目10文字10文字を超える部分は切り捨て、その他制限あり
インポートする際の制限事項
6(F)借方補助科目15文字15文字を超える部分は切り捨て
7(G)借方部門-文字取り込まない
8(H)借方税区分-文字税区分や経理方式、請求書区分(インボイス用の項目)などを組み合わせた形式で記述
記述形式は、 インポートデータの税区分 を参照してください

<税区分を指定できない勘定科目>
[流動資産]タブの「現金・預金」カテゴリの科目
・[その他]タブの科目(「固定資産」を除く)
・「売掛金」「買掛金」「未払金」「未収金」「クレジットカード」
9(I)必須借方金額9金額税込金額を入力

整数(9桁まで)、マイナス不可

複数行の仕訳データで、借方勘定科目がない場合でも必須
借方勘定科目がない場合は「0」を入力
10(J)借方税金額9金額
11(K)必須貸方勘定科目10文字10文字を超える部分は切り捨て、その他制限あり
インポートする際の制限事項
12(L)貸方補助科目15文字15文字を超える部分は切り捨て
13(M)貸方部門-文字取り込まない
14(N)貸方税区分-文字税区分や経理方式、請求書区分(インボイス用の項目)などを組み合わせた形式で記述
記述形式は、 インポートデータの税区分 を参照してください

<税区分を指定できない勘定科目>
・[流動資産]タブの「現金・預金」カテゴリの科目
・[その他]タブの科目(「固定資産」を除く)
・「売掛金」「買掛金」「未払金」「未収金」「クレジットカード」
15(O)必須貸方金額9金額税込金額を入力

整数(9桁まで)、マイナス不可

複数行の仕訳データで、貸方勘定科目がない場合でも必須
貸方勘定科目がない場合は「0」を入力
16(P)貸方税金額9金額
17(Q)摘要30文字30文字を超える部分は切り捨て(半角全角問わず)
18(R)番号-文字取り込まない
19(S)期日-日付取り込まない
20(T)タイプ-数字取り込まない
21(U)生成元-文字取り込まない
22(V)仕訳メモ-文字取り込まない
23(W)付箋11数字0(指定なし)~5以外の値の場合、取り込まない
24(X)付箋2-数字取り込まない
25(Y)調整-文字取り込まない
26(Z)借方取引先名15文字15文字を超える部分は切り捨て(半角全角問わず)
27(AA)貸方取引先名15文字15文字を超える部分は切り捨て(半角全角問わず)

試しに、これまでのデータをエクスポートしてみると、カンマ区切り、改行文字はCRLF、文字列値・空値はカンマ区切りって感じで、補助科目なんかも辞書に登録されている名目をそのまま入力すればよさそうです。あと、Shift_JISですね。(間違えたらえらいことになりそう)あー、これは何か楽するためのシステムが組める予感!

追記

上に挙げたのはオンライン版の仕様だったみたいです。弥生会計 05以降版を別に発見しました。

  • 26(Z)借方取引先名
  • 27(AA)貸方取引先名

↑この項目が追加されてるのかな?

2026/7/22

Google Playから古いバージョンのAndroidがターゲットになってるよって通知がきました。8月中に直せとのこと。まぁ、ターゲットの数字を変えればいいだけでしょ、って思って素直にターゲットバージョンを37に上げたら、プログラムの一部機能が動かなくなりました!

CatLogを眺めながら、どうも通信でタイムアウトが起こりだしてるなと、問題に目星はつきましたが、原因がわかりません。ローカルネットワークへのアクセスが滞っているから、セキュリティ関連の何かかなと予想しつつ、Geminiさんと話し合ってみたらやはり、ターゲットのバージョンを上げたことで、ローカルネットワークにあるデバイスへの通信がデフォルトで遮断されるようになったと教わりました。SSDP通信はお目こぼしがあったみたいなんですが、TCP通信は厳格に運用されているようです。

新しい権限 ACCESS_LOCAL_NETWORK および NEARBY_WIFI_DEVICES を加えたら、許可取りダイアログを経て、ローカルサーバーへアクセスできるようになりました。

2026/7/2

もう長いことAIが開発に入ってきて、プログラミングに関するノウハウが増えにくくなってきています。AIへの指示の出し方やら、トークンの勘定の技術ばかりが研ぎ澄まされてきて、プログラマーぶってる自分がちょっと滑稽に思えてくるこの頃です。特にこの状況に否定的なわけではなく、まぁ、手が不自由なので、キーボードを叩く量が減るのはうれしいことです。それから、これまで手を出してこなかった分野のことも、やってくれるのが新鮮です。

人間がこれまでやってきたことは本当にうまくやってくれるので重宝してくれるのですが、あんまりやってこなかったことはそこまで万能じゃないなという印象もありまして、誰もやらなかったようなことへのチャレンジングは相変わらず自分主導で楽しくやっています。音とか3Dとかもっと身近に扱えるようになると思いますよ、これから。それから大量のデータを人間の言葉で指示して整理させられるのもいいですね。貯めるだけ貯めて未整理のまま死んじゃいそうなアレコレをちょっとずつ片付けてもらっています。やってることは生前遺品整理みたいなんですが、これをやっておくと次のアクションへの体が軽い!

Claude Fable 5が米政府に止められたときに、多くの人と同じように衝撃を受けて、「AIが使えなくなったら」っていう最悪の状況を想定して、対応手段を多くの人と同じようにローカルLLMに求めるのですが、あれは大手のAIにはどうしても規模では勝てないので、使われ方がまたちょっと変わってくるのかなって思いました。用途によっては全然使えますもんね。

でも、AIの達人になりたいわけでもなく、AIの知見もまた陳腐化が早そうで、どこかに書き残して構成に伝えたいことがあんまり思い浮かばないんですよね。何かまた新しい切り口が思いつくでしょうかね?

2026/3/14

長文を書いていて、途中でプログラムがハングアップする・・・最近あんまりなかったんですが、昨日久しぶりに発生しました。Windows端末でNAS関連のアクセスがうまくいかなくて、ファイラーとテキストエディタとビデオプレイヤーを巻き込んで反応しなくなっちゃいました。テキストエディタはTeraPadです。保存処理を試したんですが、半分くらい本文が保存された状態でtxtファイルが終わっていました。久しぶりの絶望感でした。

プログラムのGUIは完全に無反応で半分白っぽく描画されています。いつもなら諦めるのですが、今回ちょっとだけ抗ってみることにしました。タスクマネージャーを開いてプロセスが残っていることは確認できました。できそうなことは・・・メモリダンプファイルの作成くらいかな?TeraPad.DMPという200MBほどのファイルができました。試しにこれをTeraPad自身に開かせてみましたが、ファイルが大きすぎてダメでした。ノートパソコンの電池が尽きそうなのでこの日は諦めて寝ました。

翌日、デカいファイルを開けそうなエディタとして、VS Codeを試してみました。・・・開けたけど、200MBの制御文字だらけのバイナリの塊から何をどう探していいのかわかりません。ここは一旦AIさんに聞いてみましょう。

長文書いてたTeraPadがハングアップして保存が中途半端になっちゃいまして、とりあえずメモリダンプだけとっておいたんですが、テキストは復旧できるでしょうか?
TeraPadがハングアップして保存が中途半端になってしまった場合、メモリダンプからテキストを復旧できる可能性はかなりあります。ただし、成功率は状況によって大きく変わります(70〜90%くらいの感覚で、多くの人は取れてますが、100%ではありません)。TeraPadは軽量エディタの中では比較的素直にメモリ上にテキストデータを保持していることが多く、Notepadより復旧しやすい部類に入ります。...

いけそうな感じの回答!とりあえず進められた順に試してみます。まず、stringsコマンドを試します。これはファイルから文字列だけ抜き出すコマンドだそうです。デフォルトでも入ってましたが、Sysinternals Strings(Microsoft公式ツール)を勧められました。こっちには64bit OS用にstrings64.exeが同梱されており、-uオプションでユニコード文字も対応できるとのこと・・・しかし、日本語は全然拾えませんでした。文章中の英数字は拾えたので、多分、データとしては残ってるんじゃないかと思います。

次にバイナリエディタHxDを試してみます。200MB中身を見たくはないので、先ほど見つけた英数字をヒントに検索してみます。ここで気が付いたのですが、英数字のお尻にヌル文字がついていました。これはUTF16-LE(リトルエンディアン)の特徴と一致する!ってAIさんが我がことのように喜んでました。とりあえず、この辺かとあたりを付けた場所を選択して「ファイル > 選択範囲を保存」でテキストファイルとして保存してみます。

さて、バイナリを含んだUTF16-LEテキストファイルを何で読もうかと思いましたが、VS CodeはUTF16-LEも扱ってくれました。これでうまくいきました!復旧された文章をTeraPadにペーストして一件落着です。(時間はかかってしまった)うまくいったので。今後はメモリダンプを念のため保存しておくことにしようと思います。

2026/2/21

先ほど新しいAndroidアプリ「カーリングゆるくない」の公開申請作業を行いました。冬季オリンピックがそろそろ閉会式となって、この寝不足生活にも終止符が打たれそうですが、ウィンタースポーツの中でカーリングが一番視聴時間が長い私です。ロコ・ソラーレ(チーム)がメダルを取って改めて注目が集まるカーリングですが、フォルティウスっていうロコ・ソラーレの天敵みたいなチームが今回のオリンピックに出場して、大方の予想ほどにはパフォーマンスが上がんなかったんですよね。で、素人なので自分ならあーする、こーするをいろいろ妄想してたわけですが、実際どうなのかちょっと検証アプリを作ってみたのでした。選手の目線でいざ投石しようとすると、ハウスまでなんと遠いこと・・・。みんなこんなこと平気でやってのけてるのかっていう気分と、トップレベルのチームの精度の出し方がさっぱりわからない気持ちで包まれました。

せっかくなので、公開してみますので、何か「そうじゃない」があれば教えてください。

2026/2/13

先日ついにjQueryのメジャーバージョンが4に上がりましたので、使用サイトでちょこちょこ交換作業を行っています。手厚かった後方互換性をいよいよ切って、モジュールとしてスリムに軽快になるくらいの印象でいたので、そんなに問題にならないだろうと思っていて、実際にそれほど問題が出なかったのですが、地味にカットされたdeprecatedメソッドを使っていたことがさっき判明しました。

jQuery.trim(string)

前後の空白文字をトリミングしてくれるメソッドですね。

今はString.prototype.trim()があるので、随分使った記憶はないのですが、太古のスクリプトの中に含まれていましたよ。

string.trim()

修正も大変ではなかったのですが、似たようなものあるかなと調べたけど、あんまりなさそうでした。(自分的には)jQuery.isArrayとか昔使ってたような気がしますが、探っても出てこなかったです。

ES Modules形式に対応したようなので、今度importしてみましょうかね。

2026/2/8

今日は衆議院の選挙の日ですが、あいにくの雪模様です。今回は注目度が高いのかわかりませんが、期日前投票に長蛇の列ができていたそうです。待たされるのと雪道を行くのとどっちがよかったかな?(午後に行く予定)冬季オリンピックも始まっていて、ジャンプ(ノーマルヒル)とスノーボード(ビッグエア)で早速メダルの色が三種類揃いました。これはしばらく生活時間帯が乱れちゃうな。

さて、今日はメーラーの話です。今どきはソフトウェアとしてPCに入れてない人も多いかもしれませんが、うちではメイン機にThunderbirdが入っていて、そいつを使っていたりします。スパムと広告とシステムからの定期動作通知がほとんどですが、お仕事のメールもいただくのです。ただ、長く使っている割に、あんまり操作方法を知らないなと思い、ちょっと調べたのでメモっておきます。今は3カラムで「メールフォルダペイン」「メール一覧+メール詳細」「スケジュール+TODOリスト」というレイアウトで使っているんですが、キーボードでフォルダと一覧を行き来してメールを選択したかったんですよね。何かフォーカスを二者で行き来するショートカットキーとかあるんだろうなと思ったら、ちょっと違ってました。

メール作成・送受信

  • 新規メール作成:Ctrl + N(または Ctrl + Shift + M)
  • 送信:Ctrl + Enter
  • 下書き保存:Ctrl + S
  • 受信トレイ更新(メール受信):F5
  • 印刷:Ctrl + P

返信・転送まわり

  • 返信:Ctrl + R
  • 全員に返信:Ctrl + Shift + R
  • 転送:Ctrl + L

メール整理

  • 削除:Delete
  • アーカイブ:A
  • 既読/未読の切り替え:M
  • 迷惑メールにする:J
  • タグ付け:1〜9(設定したタグに対応)
  • スター(重要)切り替え:S

検索・絞り込み

  • メッセージ検索(詳細検索):Ctrl + Shift + F
  • クイックフィルターバー表示/非表示:Ctrl + Shift + K

メール一覧の移動

  • 次のメッセージ:N
  • 前のメッセージ:P
  • 開く / 閉じる:Enter
  • スレッド展開/折りたたみ:*(テンキーじゃない方)

そのほか便利

  • アドレス帳:Ctrl + Shift + B
  • カレンダー:Ctrl + Shift + C
  • メッセージのソース表示:Ctrl + U

タグ付けは前からよく使ってましたね、そういえば。6番に「見積もり」と登録しておいてタグ付けして目立たせると、過去の見積もりを探すとき便利だなっていう利用方法です。
メッセージフィルタ窓をたまに開いて、広告メールをそれ用のフォルダに分類する操作をするのでショートカットキーがあるといいなって思ったんですが、それは用意されてないみたいです。「Alt」→「T(ツール)」→「F(メッセージフィルター)」でもいいけどさ。
私がやりたかったことはFキー、Bキーでメールの前後移動することでかなり満たされそうです。ペイン間のフォーカス移動も「F6」「Shift + F6(逆順)」でできるようです。

こんなに長く使うソフトなら、面倒くさがって調べずにいるより、知って楽できた方がよかったですね。今どきならThunderbirdがMCP的に動いてくれてLLMから叩けるようになっているとよさそうだけど、まだそれは自分で開発しなきゃならないみたいです。すぐ欲しいわけでもないから、なんか興が乗ったらやってみようかな。