plasmasphere.net -プラズマスフィア ドットネット-
Diary
副業
2026/05/24(Sun) 11:05
最近の日記が自分で作ったソフトの紹介みたいになってるのでちゃんと日記書こうと思ったけど特にネタが無かったという話し。
ここ何年かの物価上昇に比べて、主業の給料が上がらないという憂き目にあっていまして、流石に腹立ったので副業を始めました。
結局Web制作/開発なんですけども、知り合いとかツテとかでまあそこそこに。
やってることの紹介はここではしませんが、1年半くらい前からこっそり始めた、という事だけメモしておきます。
そして税金周りがクソ面倒。
ちょっと前に国民民主の玉木が所得控除の徴収下限額の事を「103万の壁」とか言ってましたが、ぶっちゃけ所得税はどうでもよくてむしろ払うのよ所得税は。住民税もね、大した金額じゃないから。
問題は社会保障費(国保、国民年金)の徴収下限額なんですよ。
年収130万超えたら発生しますが、取られる額がでかいし(20万くらい)、事業主側も同じ額払わんといかんというので、マジでこれ以上働く意味がない。
バカみたいに増えてる社会保障費抑える政策やんないとマジで日本潰れるんちゃうかと。年寄りの医療費1割負担優遇措置止めて一律3割負担にするだけで相当浮く筈なんだが??
税金チューチュー構造が壊れるから政治家も手入れたくないんでしょうが、日本のこと考えた政治家が…いねえな我が国は。
主業の方ですが、別に利益出してないわけではないんですよ。ちゃんと利益出してるんですけどね、チームの人件費諸々の3倍近くは毎年コンスタントに入ってきてる筈なのだけど。
「数字見なきゃいけないと思ってるんだけど、見たくないんだよなあ」「プログラマだから」とかいう人が代表やってるので、推して知るべしか…。
何で辞めてないのか不思議ですが、さすがに今年がターニングポイントかな、とは考えています。
ローカルLLM用RAGサービス
2026/05/16(Sat) 14:05
ローカルLLM用RAGサービスを作りました。
何言ってんのか分かんないって?俺もわかんねーよ。
Ollamaをはじめとした、ローカルLLMにRAGを追加するアプリです。
RAG(Retrieval-Augmented Generation)とは、AIが回答を生成する際に、外部のデータベースや社内文書などから関連情報を検索し、その情報を基に文章を作成する技術です。
https://www.google.com/search?q=rag%E3%81%A8%E3%81%AF
要するに自分の事を知ってるAIをある程度簡単に作れるよ、という中間のアプリです。
ファイルを読み込んでインデックス化しないと使えないので、しっかり時間はかかります。
が、ストレージにためてる音楽ファイルを読ませて、LLM経由で自然言語で検索するとか、画像のEXIF情報で検索するとか、そういう使いかができるよ、というもの。
RAG自体は使わなくてもチャット用のUIからOpenAI APIに接続できるので、UIだけ使いたい場合でもまあ使えなくはないです。
大体公式に良いUIがあるのであんまり使わないでしょうけど。
日本語に対応しているRAGサービスはあまりない筈なので、もしよければどうぞ使ってください。
ちなみに私は一文字もコードを書いてない。設計とプロンプトだけであとは全部Claude。
ランダム壁紙アプリ
2026/05/11(Mon) 21:05
デスクトップの壁紙を指定時間で切り替えるアプリを作りました。
Wallpaper Changer
起動中に壁紙を自動で切換えます。アプリを終了、または設定範囲から外れるとアプリ起動時の壁紙を復元します。
要するに、昼間は猫ちゃんの壁紙にしておいて、夜中はムフフ♡な壁紙にできる。という事。
GitHub https://github.com/sou1ka/wallpaper_changer
Windows11でBonsai-8Bを動かす
2026/04/29(Wed) 16:04
Qiitaに記事を投稿しました。
https://qiita.com/sou1ka/items/39c48a99feba7b9cc9d4
Realforce R4 のアクリルキーボードカバー(キーボードルーフ)を自作する
2026/01/13(Tue) 22:01
Realforce R4 テンキーレスのキーボードカバーが売ってないので自作しました。リアルフォースは良いものだ。
R2の頃はバード電子さんが専用品売ってくれてたんですが、無くなってんですよね。
ちゃんと調べてませんが、もしかするとテンキーレス用のルーフがピッタリなのかもしれない。
今回はアクリルをセミオーダーできるオンラインショップで自前で作ってみました。
アクリルは3mm厚を買うべきです。私は2mmでオーダーしましたがちょっと物理的に折れそうです。
サイズは、足が360mm x 11mm、ルーフが360mm x 131mm にするとピッタリだと思います。私が持っているのはテンキーレスなのでフルキーだと横幅は分かりませんが、縦131mmは変わらないはずです。
足の裏にはウレタンのクッションを貼るといいです。私はこれをつけました。
冂の形に接着します。足の上にルーフを乗っける感じです。
接着するのはアクリル用接着剤を使うといいと思いますが、私はゴリラグルーを使いました。
困ったときの呉工業です。元々持っていたとも言う。
クリアのアクリルだと販売品と同じになるので、グレースモークにしました。
とはいえ、仕舞う時にカバーを被せて上にマウスパッド等を乗せているので、カッケー見た目でもあんまり関係ないのですけども。
raspberry pi 4+ で気象/空間モニタリングする
2025/08/09(Sat) 15:08
ラズパイに温度・湿度・気圧・ガスモニタを付けて、ブラウザで見れるビューワ機能を作ってみました。

前回はラズパイ3B+と書きましたけど、GUIが重かったので結局4+を買いました。
- カメラ表示
- AtomCam2にカスタムファームを入れて、静止画を表示しています。静止画とはいえアクセスの度に更新されます。
本当はWebRTCで表示したかったんですが、ラズパイだとマシンスペック的にちょっと難しいようです。
ffmpegでHLSに変換しても良いですが、画像が乱れる場合があったのでこれも止めました。
EventStreamでバックエンドに接続して、バックエンドから取得するようにしてます。setIntervalはフロント側の負荷的に止めました。 - カレンダー表示
- 自作のカレンダーを使っています。https://github.com/sou1ka/koukicalendar
日をクリックするとその日のモニタをグラフ表示します。 - 天気表示
- 天気予報APIを利用させてもらっています。https://weather.tsukumijima.net/
6時間毎に更新しています。 - 気温・湿度・気圧・ガス検知を表示
- 気温・湿度・気圧はBME280、ガス検知はMQ-2でモニタリングしています。
Rustで実装して /sbin/ に設置して i2c-view というコマンドで値を返却するようにしました。ブラウザとはWebSocketでやりとりしています。
コードはこんな感じ。main.rs
use linux_embedded_hal as hal; use linux_embedded_hal::{Delay, I2cdev}; use bme280::i2c::BME280; //use tokio::process::Command; use std::process::{Command, Stdio}; fn main() { // using Linux I2C Bus #1 in this example let i2c_bus = I2cdev::new("/dev/i2c-1").unwrap(); let mut delay = Delay;/* ..delay provider */ // initialize the BME280 using the primary I2C address 0x76 let mut bme280 = BME280::new_primary(i2c_bus); // or, initialize the BME280 using the secondary I2C address 0x77 // let mut bme280 = BME280::new_secondary(i2c_bus); // or, initialize the BME280 using a custom I2C address // let bme280_i2c_addr = 0x88; // let mut bme280 = BME280::new(i2c_bus, bme280_i2c_addr); // initialize the sensor bme280.init(&mut delay).unwrap(); // measure temperature, pressure, and humidity let measurements = bme280.measure(&mut delay).unwrap(); println!("Relative Humidity = {} %", measurements.humidity); println!("Temperature = {} C", measurements.temperature); println!("Pressure = {} hPa", measurements.pressure/100.0); let process = Command::new("gpioget") .args(["gpiochip0", "17"]) .stderr(Stdio::piped()) .stdout(Stdio::piped()) .output() .unwrap(); println!("GAS status = {}", String::from_utf8_lossy(&process.stdout)); } - グラフ表示
- chart.js.4.5系で追加しました。表示軸が四つあるのでちょっとやかましい表示ですが、見れなくはない。
ログは i2c-log というサービスを Rust で作って、crontab で5分毎に sqlite に保存しています。
ほかに、カメラは一つだけでなくて増えても全部表示できるとか、設定周りはconfig.jsonでやってるとかありますが、とりあえずこんなところ。
以前書いた、AtomCam2の動画をGoogleDriveにアップロードする 処理もラズパイで動かして、サーバの機能を纏めようかと考えています。
遠方の実家用ですし、消費電力は低い方がいいですからね。今動いてるサーバも15Whなので大した事はないですが更に下げられるので。
Raspberry pi3+ でBME280を使ってデータ取得した
2025/05/27(Tue) 01:05
タイトルの通りの記事をqiitaに書いたのでどうぞ。
https://qiita.com/sou1ka/items/74be4cf028a900e94bdc
WebSocketを初めてまともに有効利用できた気がします。何年か前から「これやると楽しいじゃん!」とか思ってたんですが、あんまり使う機会が無かったので良かった。
今回使ったのは以下のモノたち。
10インチのタッチモニタはおすすめです。ラズパイ以外でも使えます。
ただし裏が基盤むき出しですが。(セクシー)
参考ページ
Xperia 5 III の画面が壊れました
2025/05/07(Wed) 22:05
タイトルの通りですが、Xperia 5 III の画面が壊れました。
あまりのことで写真は撮ってないのですが、緑の線が入って起動画面でループする状態でした。
初めての状態だったので、本体ごと壊れたのか画面だけ壊れたのか分からず、ネットで調べた感じ有機ELのパネルにはよくあることみたいに書かれていましたがイマイチ納得できず。
購入したのはソニーストアだったので修理の確認をしてみると、データも消えてすっきりさっぱり新品になるようで。もうそれ交換じゃね?
という事で物は試しにパネルを交換してみようということでやってみ…
ようとしたんですが、何とAmazonで40,000円。アリエクでも28,000円。パネル交換でダメだった時のリスクでかすぎるなあ…ということで、昔は無かったスマホ修理をしてくれる店に依頼してみることにしました。
何店か症状を見てもらって、パネル交換で一番修理の早い店に依頼してみました。
結果、パネル交換で元通りになりました。
税込みで45,000円ほどかかりましたが、パネルの購入費用、治る時間(次の日には治った)、など考えたら良かったと思います。
Xperia 5 III のパネル高すぎますね、何故なのか…。
ぼちぼち3年ほど使っていますし、指紋認証が言う事聞いてくれませんし、そろそろ新しい端末買った方がいいかもしれません。
あ、今回画面が壊れたのは水没したのが原因だろう、とのことでした。水没させた…記憶はあります。
指紋認証が言う事聞かなくなったときに、水で冷やしながら電源入れると復活することが多かったので、蛇口から出る水にさらしながら電源入れたりしてたからですね。
皆さんは気を付けてください。普通はやんないと思いますけども。
