最近RustDeskを知ったので、AnyDeskからRustDeskに移行してみました。
RustDeskの方が後発(だと思う)ですが、これ、完全にAnyDeskを意識していますね。すごく似たような表示だし、ほとんど同じように使えます。
比較表を作ってみました。ただし、Windows版での動作評価限定です。LinuxやAndroid版は使っていないので、詳しくは知りません。
最近RustDeskを知ったので、AnyDeskからRustDeskに移行してみました。
RustDeskの方が後発(だと思う)ですが、これ、完全にAnyDeskを意識していますね。すごく似たような表示だし、ほとんど同じように使えます。
比較表を作ってみました。ただし、Windows版での動作評価限定です。LinuxやAndroid版は使っていないので、詳しくは知りません。
| 比較項目 | AnyDesk | RustDesk |
| インストール必要? | インストール無しで使用可 | インストール無しで使用可 |
| UAC操作(※3) | 対応(要インストール) | 対応(要インストール) |
| 特権レベルウィンドウの操作(※4) | 可(要インストール) | 可(要インストール) |
| 接続の簡単さ | 数桁のIDを入力 | 数桁のIDを入力 |
| 無人接続 | 可(パスワード設定後) | 可(パスワード設定後) |
| 画像のきれいさ | まずまず | やや粗い |
| 表示ラグ | 少ない | やや遅れる |
| ファイル転送 | 可 | 可 |
| クリップボード共有 | 可 | 可 |
| 音声再生 | 可 | 可 |
| チャット機能 | 有 | 有 |
| 英語←→日本語切替 (IME操作) | 難あり | ALT+漢字キー または 変換キー |
| CTRL+ALT+DEL対応 | 対応 | 対応 |
| デスクトップLock対応 | 対応 | 対応 |
| TLS | 対応 | 対応 |
| 自前サーバ対応(※1) | 不可 | 可 |
| マルチディスプレイ対応(※2) | 不可 | 不可 |
| 商用利用 | 有償 | 制限なし |
| 目立った不具合 | ローカルPC側でまれにWindowsキー、SHIFT/CTRLキーが使えなくなる | アンダースコア"_"入力不可 |
Vivadoを使ってFPGAの開発をしているとき、何かの拍子でプロジェクトが開けなくなったことが何度かあった。プロジェクトが何故かRead-onlyモードになり、すべてのIPコアがLockされた状態になって、Synthesis/Implementを含むすべての操作が禁止される状態になることがあった。
Xilinxのフォーラムでも質問が出ていたが、有益な情報はなかった。
https://support.xilinx.com/s/question/0D52E00006lLhAGSA0/vivado-project-converts-to-read-only?language=ja
これまでは、プロジェクトディレクトリを丸ごと削除して、新しくソースをgitからcheckoutしてなんとかやりくりしていたが、ようやく原因と解決方法が分かったので、その備忘録を記録。
(原因)
IPコアのディレクトリに、コンテナ化(Enable Container)したIPコア名と同じ名前のサブディレクトリが存在するときに発生する。
(対処方法)
そのIPコアをコンテナ化しているならば拡張子.xcixファイルだけあれば良いので、同名のサブディレクトリを削除する。
例えば、コンテナ化したmyIP.xcixファイルがプロジェクトにあるならば、myIPという名前のディレクトリは削除する。
このことに気付いてからよくよくTclコンソールをよーく見てみると、ちゃんと原因が出力されていた!
CRITICAL WARNING: [Project 1-635] The core container source file '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xcix' is sitting next to the IP directory '(プロジェクトのIPが置かれるディレクトリ)/hogehoge'. This configuration is not supported and will lead to unexpected behavior. The project will be opened as read-only. To resolve the issue, please move aside the IP directory and reopen the project.
WARNING: [Project 1-312] File not found as '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xci'; using path '(プロジェクトのIPが置かれるディレクトリ)/hogehoge.xci' instead.
なぜこんなことになったのかはっきりしたことは覚えていないが、そういえばコンテナ化IPファイル.xcixはバイナリファイルなのでgitでは扱いにくいなと思って、コンテナ化を解除(Disable Container)したことがあった。そのときに作られた(だろう)サブディレクトリが残っていたのかも知れない。
Git For Windows 2.33.1以降で発生する模様。
OpenSSHのバージョンが8.8以上に上がると、ssh接続時にデフォルトでRSAキーの使用が禁止されるようになったせいらしい。
RSAを使用している場合、非推奨ながらsshのconfigに
PubkeyAcceptedAlgorithms +ssh-rsa
を追加すると、とりあえずこれまでどおりRSAで接続は可能になった。
しかし、この方法はいつまで(安全に)使えるのだろう。
「 Windows11の」と書いたけれど、Windows10を使っていた頃から出ていた現象、Explorerの右クリックメニュー(コンテキストメニュー)でしばらくフリーズする件について、ようやく解決方法が分かったので、その備忘録。
現象はWindows10の頃から出ていた。Windows11が出た頃、もしかして直るかもしれないと淡い期待を込めてアップデートしたけれど、結局は直らずじまい、だましだまし使ってきたけれど我慢の限界が来て調べてみました。
現象の回避策としては、
・TortoiseSVN用のIcon Overlay Handlerを無効にする
というものでした。
えっ!?Context Menu Handlerではなく、Icon Overlay Handlerの無効化!?
確かに変です、でもこれを無効にすることでコンテキストメニューはスッと表示されるようになりました。
これまで、メニューが表示されるまでに10~30秒くらい待たされることがありました。一度メニューが表示されるようになると、続けて右クリックするとすぐに表示されていました。しかし、何分か別の作業をして再度Explorerに戻ってメニューを開こうとすると、また何十秒も待たされました。Explorerとは別のファイラーを使っても、コンテキストメニューを表示させようとすると同じ現象が発生していました。本当にイライラしながらも何とか我慢して使っていましたが、これでイライラから解放されました。
最終的には、フリーソフトのShellExViewが大変役に立ちました。手軽にContext Menu HandlerをEnable/Disable切り替えができるので助かりました。
Shell ExtensionのContext Menu Handlerのどれかが悪さしているだろうことは想像に難くないので、自前のテストプログラムを作り、レジストリを走査してContext Menu Handlerを実装しているWindows内DLLをロード&COM経由でハンドラを呼び出すようなテストをして調べていたのですが、作ったテストプログラムでは極端に遅くなる現象がどうしても再現せず、ほとんど諦めていました。
別の方法としては、ExplorerをVisual Studioのデバッガにアタッチしてシンボル情報(とは言っても、Windows系DLLのシンボルしか入手されませんが)や、デバッガ上のDLLロードタイミングなどから問題のDLLを探そうともしていましたが、こちらも問題の特定には至らなかったです。
それにしても、なぜIcon Overlay Handlerの無効化が回避策となり得るのか、本当に不思議です。でも、いいんです。PCなんてダマシダマシ使うものと割り切ってますから。
自分用の備忘録。
今まで、ちゃんとアクセスできていたあるページがブラウザで開けなくなりました。何度やっても、「この接続ではプライバシーが保護されません」(ERR_CERT_COMMON_NAME_INVALID)と出ていました。
原因は基本的には証明書絡みなのだと思いました。ググると色々と出てきますが、今回の私のケースに当てはまるものは無かったので、ここで記録することにします。
原因は・・・・
ということだったようです。
というのも、この現象が発生したPCは2台あってその2台ともESETをアンインストールした時点で問題がなくなりました。その後、ESETを再インストールしてもエラーは再現せず、正しく目的のページが表示される状態に直りました。
確かに、エラーメッセージに、ESET SSL Filter CAなんたら~というのが出ていました。ググったところによると、ESETはhttpsでデータを取得するとき、ESET自身がhttpsで暗号化されたデータを取得したあと、PC内で一旦展開して内容をチェック、更にESET自身の証明書を付けてデータを元アプリに渡すとか何とか・・・(ゴニョゴニョ、詳しいことはよく分かりません!!中間者攻撃がやる方法と同じような方法で接続先との間に立って内容をチェックしているとか何とか・・・)。今回はどうもその部分が何故かぶっ壊れていたのだろうと推測します。
この問題が出ておかしくなったPCは2台。その他にも、ESETを入れているPC4台で調べてみたけれど、この現象は出ていませんでした。何か発動条件があるのだろう。
ちなみに、ERR_CERT_COMMON_NAME_INVALID問題が発生している状態で、そのエラー・警告を無視して続行すると、変なページに飛ばされていました。例えば、えいちてぃーてぃーぴー コロン スラッシュスラッシュ vebee ドット info とか(↓)、
「飛ばされる」とは言ってもリダイレクトではなく、ブラウザのアドレスバーは自分で入力したURLのままで、ページの内容がこれらの妙なページが表示されるという不思議な状態でした。
Windows 10の[バックアップと復元](コントロールパネルで言うところの[コントロール パネル\すべてのコントロール パネル項目\バックアップと復元 (Windows 7)])がエラーのせいで開けないとき、コマンドプロンプトを管理者権限で開いて、
wbadmin delete catalog
を実行すると開けるようになった!
ListViewCtrlのアイテムの色を変える方法自体は、カスタムドロー(NM_CUSTOMDRAW)でできることは知っていて実際に使っていました。しかし、LVIS_SELECTEDで選択されたアイテムの色を変える方法、そして、そのListViewCtrlがフォーカスを外れても、同じ選択状態の色で表示する方法がどうしても分からなかったのですが、ようやくその方法が分かりました。それは、、、
カスタムドローのハンドラ内で、CDDS_ITEMPREPAINTイベントが来た時、
lpCustomDraw->clrTextBk = RGB(x,y,z);
lpCustomDraw->nmcd.uItemState = CDIS_DEFAULT;
とuItemStateの値を変更しておく、というものです。
この値を変更せずにそのままにしておくと、以降のカスタムドローイベントでデフォルト処理が走ってしまい、LVIS_SELECTEDなアイテム(ハイライトされたアイテム)はデフォルトのハイライト色で描画されてしまっていました。特に、フォーカスを失った時は選択表示でなくなってしまうか、LVS_SHOWSELALWAYSスタイルを付けていても薄いグレー表示になるので見にくかったですが、この方法で完全に選択された表示を維持できるようになりました。
昔Cygwin上で使っていたsh-elf向けGCCを動かす必要が出てきたので、再度Cygwinをインストールして動かしてみたところ、エラーで動かない。
sh-elf-gcc.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
原因:64bit版Cygwinで32bit版実行ファイルを動かそうとしても、必要な32bit版共有ライブラリが見つからない。
対処:Develカテゴリのcygwin32パッケージをインストールすると動くようになるらしいが、今回のケースでは動かなかった。sh-elf-gccがcygintl-2.dllを要求しているが、どうやってもこのファイルをインストールすることができなかった。
回避策:たまたま見つけたcygintl-3.dllをcygintl-2.dllにリネームして使う。推測だが、これらの共有ライブラリは目的とする機能は同じでバージョンのみ違うと思われるので、使える可能性大。もちろん、このdllも32bit版である必要がある。
Cygwinには依存ライブラリを調べられるcygcheckがあるが、64bit版cygcheckは32bitバイナリの依存ライブラリを調べられない。代わりに、Dependency Walkerで調べるとcygintl-2.dllのほか、cygiconv-2.dllとcygwin1.dllを要求していることが判明。これらの32bit版ライブラリは比較的すぐに見つかった。
これらの共有DLLを適当なディレクトリにまとめて置いておく。そして、sh-elf-gccを実行するときには、
PATH=(32bit用DLLを置いたディレクトリ):$PATH sh-elf-gcc
とすることで、sh-elf-gccを使うときだけそのディレクトリにパスを通す。
これで、64bit用Cygwinでも、32bit用sh-elf-gccが動くようになった。
java -cp h2-1.4.190.jar org.h2.tools.Script -url jdbc:h2:~/.gitbucket/data -user sa -password sa -script backup.sql
RUNSCRIPT FROM 'backup.sql'