[Parsec] 外出先からPC電源ON 米粒マイコン ATtiny10

[MacOS Ventura 13.3.1, Windows11]

外出先からPC電源をONにする方法としてはIoTデバイスを使うのが便利です。

物理的にスイッチを押してくれるデバイスがまず思い浮かぶところですが、毎回確実にスイッチを押してくれるのか心もとない面があります。また自分で押す時には邪魔になります。

そこで今回はスマートプラグを使ってマザーボードの電源スイッチをショートさせる方法にしました。

余り物前提のArduinoを使う方法がネット情報にありましたが、かなりのオーバースペックになるので長さ3mmの米粒マイコン(ATtiny10)を使いました。これでもフラッシュメモリの使用率はたったの7%(74/1024Bytes)です。

主な部品(秋月電子で購入):
ATtiny10実装モジュール(DIP化) 150円 [マイコン単体は50円]
5V小型リレースイッチ 80円
USBコネクタ Type-B 50円

Arduinoは画期的で使い勝手の良い商品ですが、マイコンを使うと低コスト、小型化が可能になります。是非とも挑戦していただきたいものです。

ちなみにArduinoはUno正規品1個、互換品3個、ATmega328P(ブートローダ書込済)3個を持っていて余りまくっているものの、さすがに今回の用途では使う気になりませんでした。

電源ON/OFFユニット

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRB |= 0b00000001; //PB0を出力に設定

	PORTB |= 0b00000001; //PB0をON
	_delay_ms(500/8); //500ms待機(8分周のためコードで調整)
	PORTB &= ~0b00000001; //PB0をOFF

}
ATtiny10は5Vで書き込みをする(3Vではエラーになる)
PasSを使って部品配置図作成(Windows版のみ)

参考サイト

[Parsec] 外出先のMacからログイン待機WindowsPCを操作 Shared

[MacOS Ventura 13.3.1, Windows11]

外出先のMacからログイン待機WindowsPC操作を試みました。

使用した回線:povo データ使い放題(330円/1日)

接続先のWindowsPCはスタートアップにParsecのショートカットを入れておきます。Parsecはログインを保持した状態にしておきます。

外出先のMacをテザリング接続しParsecを起動すると、電源ONになっているWindows11PCを認識できるので接続してログインします。

一連の操作はデータ量的に動画を視聴しているのと同じ状況ですから、たまに速度制限がかかることがありますが、多少の遅延が生じる程度でさほど影響はありませんでした。ゲームは厳しいでしょうね。

電気代を気にしない方は外出時にWindowsPCの電源をONにしておけば良いのですが、やはり外出先から電源ONできるようにする方が経済的でしょう。

リモート電源ONの方法については次回以降検証します。

[Parsec] Macからログイン待機WindowsPCを操作 Shared, LAN

[MacOS Ventura 13.3.1, Windows11]

リモート操作アプリ Parsecの動作検証をしています。

LAN内のMacからログイン待機状態のAI用WindowsPCへコネクトを試みました。

MacへのParsecインストールの際にはWindows版のようにインストール形式で”Per User”と”Shared”のいずれかを選択する画面は出てきません。

Sharedと同等にするには、代わりに”プライバシーとセキュリティ”−”画面収録”−”Parsec”を有効にします。

これでMacからログイン前のWindowsPCにコネクトして、ログインできるようになります。

LinuxPCはHost(操作される側)不可

[Ubuntu] 02 BIOSのブートエントリを削除する

[Ubuntu 22.04.1]

下記方法でLinuxからブートエントリを削除できます。

加えてWindowsのbcdeditコマンドでもエントリを削除する必要があります。ただしEFIファイル自体を消さない限り、根本的な解決になりません。

それでもBIOSから消えない場合は優先順位設定でDisabledにします。最初からそうするのが手っ取り早いです。ただし優先順位を変えても勝手に元に戻ることがあります。ASUSのマザボではそうなりました。

# エントリ番号3を削除
sudo efibootmgr -b 3 -B

参考サイト(efibootmgr)

参考サイト(bcdedit)

[Ubuntu] 01 プロンプト表示を変更する

[Ubuntu 22.04.1]

環境変数PS1を.bashrcファイルで設定します。

# $のみ表示
export PS1="\$ "

# "ユーザ名@HH:MM:SS ~"の場合
export PS1="\u@\t \w\$ "

\d : 日付
\h : ホスト名(ドメイン名なし)
\H : ホスト名(ドメイン名あり)
\s : シェルの名前
\t : 時間(24時間制 HH:MM:SS形式)
\T : 時間(12時間制 HH:MM:SS形式)
\@ : 時間(12時間制 HH:MM AM/PM形式)
\u : ユーザ名
\w : カレントディレクトリ
\W : カレントディレクトリのベース名
! : コマンドの履歴番号を表示
# : コマンドのコマンド番号
\$ : rootなら#、それ以外のユーザは$を表示
\ : バックスラッシュ

[Adobe XD] アートボードを座標を変えずに動かす

[M1 Mac, Ventura 13.3.1, Adobe XD 56.1.12.1]

今まで何回も足止めを食らったのでメモ。

表題の正解は、スペースキーを押しながらドラッグです。キーボードで出来ないというのが大いに不満です。座標を変える場合はoptionと矢印キーです。

AdobeとはUIの感性が合わなくてストレスがたまります。可能であれば少しずつカスタマイズしていきたいです。

話は変わりますが、交感神経が高まる午前中にプログラミングやパソコン作業をしていて流れが止まったりするとイライラが増幅します。

夕食後、副交感神経が優位になる時間帯にこういった作業をすると沸点が高くなるためか、のんびり楽しくできますね。スピードは落ちますが、結果的に成果をあげやすい感じがします。

[Bing-ChatGPT] 日本語変換時に送信させない方法 ATOK

[M1 Mac, Monterey 12.6.3]

Bing-ChatGPTではUserScriptを使ってもEnterキーで送信してしまいます。

そこでATOKのキーカスタマイザを使って”かな”キーで変換確定するようにしました。変換中は”かな”入力に切り替えることはないので問題はないでしょう。

決してジャストシステムの回し者ではないので誤解なきよう。

[C++] SDLでテトリスを作る with ChatGPT

ChatGPTの力を借りながらプログラミングを進めています。

以下エラーへの解決策について有用なヒントをもらえました。

src/IO.cpp:27:2: error: no matching function for call to 'boxColor'
        boxColor (mScreen, 0, 0, mScreen->w - 1, mScreen->h - 1, mColors[BLACK]);
        ^~~~~~~~
/opt/homebrew/include/SDL2/SDL2_gfxPrimitives.h:98:31: note: candidate function not viable: no known conversion from 'SDL_Surface *' to 'SDL_Renderer *' for 1st argument
        SDL2_GFXPRIMITIVES_SCOPE int boxColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);

一つ目の質問には堂々の誤回答、二つ目の質問には正答を返してきました。回答の中から使えそうな関数をピックアップして解決させることができました。

Google検索のノイジーな情報に惑わされることなくプログラミングに専念でき、素晴らしいの一言です。

本来はSDLのドキュメントを自分で読み込むべきですが、学習初期や急ぎの時はChatGPTでさくっと解決させればいいでしょう。

ソースコードのコメント内にあるバックスラッシュの意味

ChatGPTによるとDoxygenのマークアップ記法とのことです。

このような書き方をすることで関数名や引数をホバリングした際にバックスラッシュ以下の説明を表示できたりします。

これまで様々なソースコードを見てきましたが、このような書き方をしているのは中級以上のプログラマで出現頻度は低めだと思います。

質問:
C++のコメント内に\param,\saのような表現がありますがどういう意味ですか

ChatGPT回答:
C++ のコメント内に \param と \sa のような表現がある場合、それらは Doxygen のマークアップ記法を使用していることが考えられます。

Doxygen は、ソフトウェア開発において、C++ や Java、Python などの言語のソースコードから文書を生成するツールです。Doxygen は、ソースコード内のコメントに特定のマークアップ記法を使用して、文書化する内容を指定することができます。

\param: 関数やメソッドの引数に関する情報を文書化するために使用されます。例えば、次のようなコメントは、関数 foo の引数 x の説明を文書化しています。

/**
 * This is the description of function foo.
 * 
 * \param x The first argument of function foo.
 */
void foo(int x) { /* ... */ }

\sa: 関数やメソッドと関連する関数やメソッドに関する情報を文書化するために使用されます。例えば、次のようなコメントは、関数 foo が呼び出す関数 bar に関連していることを示しています。

/**
 * This is the description of function foo.
 * 
 * \sa bar
 */
void foo() { bar(); /* ... */ }

このように、Doxygen のマークアップ記法を使用することで、より詳細かつ統一された文書を生成することができます。

 [MacOS] “かなキー2度押しで日本語変換”をATOKで実現 / ChatGPTに質問

[M1 Mac, Monterey 12.6.3]

Automatorで作成したJXAスクリプトの挙動が不安定なので、観念してATOK Passportのサブスクを契約しました。Basicコースは月330円です。

ATOKでは2度押し変換できるのですから自分でもなんとか作れるとは思うのですが、Appleネイティブな言語でないと厳しいような気がします。

ChatGPTとPerplexityという強力なAIを手に入れましたので、これらを駆使して何とか作れないか探ってみます。

まあMacOSの日本語入力(旧ことえり)はかなりひどい出来ですから、このままATOKに乗っかってしまうのも悪くはないでしょう。

と思いながらChatGPTに聞いてみると開発方法を即答してくれました。JapaneseInputMethodKitというツールがあるとは知りませんでした。この手のAI出現で最も打撃を食らうのはプログラミング教育業界ではないでしょうか。

先週からGoogle検索の頻度が激減していて、IT技術との関わり方が大きく変わってきています。ポップアップが邪魔なプログラミングスクールのサイトやSEO対策が優れているだけの中身の薄いWeb記事を目にすることもなく、効率的に学習できるようになるでしょう。

知的好奇心が希薄な手合いはチートに走り、意欲的な方は加速度的に力をつけていくようになる。プログラマの能力格差がますます広がっていきそうです。

えらい時代になったものです。私にとっては90年代のIT革命以上、つまり生涯最高の衝撃です。