[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革命以上、つまり生涯最高の衝撃です。

[MacOS] Microsoft AutoUpdateを取り消す

以下にあるMicrosoft AutoUpdateファイルを削除します。

消していたはずのこのファイルが何かの拍子に復活したりするので困っています。

/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app

2023/8/14追記
新規Macにデータ移行したらExcelをMicrosoftサイトから上書きインストールしないとライセンス認証できなかった。おまけにMicrosoft AutoUpdateが復活したのですぐに削除した。Microsoftのサービスは本当に扱いづらい。勘弁して欲しい。

 [MacOS] “かなキー2回押しで日本語変換”同等機能をAppleScriptで実装 Montereyでも動作

[M1 Mac, Monterey 12.6.3]

Monterey以降ではアルファベットからのかなキー2回押し日本語変換が使えないため、自製のAppleScriptをcmd + opt + zに割り当てています。

Vanturaではうまく動作しなかったのですが、Montereyでは一応動くのでホッとしています。

use AppleScript version "2.5" --  (10.12) or later
use framework "Foundation"
use scripting additions

property NSString : a reference to current application's NSString
property NSStringTransformLatinToHiragana : a reference to current application's NSStringTransformLatinToHiragana

selectString()

set latin to the clipboard

set hiragana to alphabetToHiragana(latin)

set the clipboard to hiragana

pasteString()

henkan()

on selectString()
    tell current application
        tell application "System Events"
            keystroke "ac" using {command down}
        end tell
    end tell
end selectString

on pasteString()
    tell current application
        tell application "System Events"
            keystroke "v" using {command down}
        end tell
    end tell
end pasteString

on alphabetToHiragana(aStr)
	set aString to NSString's stringWithString:aStr
	return (aString's stringByApplyingTransform:(NSStringTransformLatinToHiragana) |reverse|:false) as string
end alphabetToHiragana

on henkan()
    tell current application
        tell application "System Events"
            keystroke "a" using {command down}
            key code 104
            key code 104
        end tell
    end tell
end henkan