win11のタスクバーを横に置く方法 - ExplorerPatcher
TL;DR
序文
仕事がデキる人の条件の一つにタスクバーを横に置く(ディスプレイはたいてい横に長いので)というものがありますが、win11はどうやら仕事をデキる人を増やしたく無いらしくタスクバーが下固定です。いつまで経っても実装される気配すら無く、win 10 のEOLにビクビクしていたところ、ちょうど求めていたExplorerPatcherというツールを見つけました。
方法
githubのreleaseからexeをダウンロードしてインストールするだけです。
Releases · valinet/ExplorerPatcher · GitHub
設定はタスクバーを右クリック -> [プロパティ]で表示されます。
色々項目がありますが、おすすめはCombine taskbar icons on primary taskbar
をAlways combine
にすることです。win11 だと何故かChrome等のブラウザを複数起動した際、起動した数だけタスクバーのボタンが増えますが、この項目を設定するとちゃんとグループ化してくれます。
良きwindowsライフを。
無線LAN暗号化規格の比較
ネスペで意味がわからなくなってきたのでまとめ
補足
暗号化規格
主に以下を定めた規格
主体認証
暗号化方式
メッセージ認証方式
SAE
PSKを推測しづらくして送信する。使用感はPSKと変わらないらしい。ハンドシェイクにSAEハンドシェイクなるものが追加。
暗号化アルゴリズムと暗号化方式の関係
暗号化方式は暗号化の手順を示したもので、暗号化方式が暗号化アルゴリズムを使う。
パケットごとの鍵の生成
TKIPとCCMPは同じように見えるが違う。
TKIPは2段階の鍵混合で生成(RC4)。
CCMPはAESで生成
https://fielddesign.jp/technology/wlan/ieee802_aes/
CCMP
メッセージ認証ができる暗号化方式。よって、メッセージ認証コード生成方式はCBC-MACになる。
WPA3の192bit暗号化
192bit安全の意味で、192bit鍵で暗号化しているわけではない。AES-256を使っているらしい。
参考資料
既刊報告書平成13〜30年度のH30システムセキュリティ構築の教育教材(テキスト)P224
無線LANの暗号化方式について整理してみた - トリコロールな猫/セキュリティ
Wi-Fi Alliance®、Wi-Fiセキュリティ規格 「Wi-Fi CERTIFIED WPA3™」を発表 | Wi-Fi Alliance
Bose QuietConfort EarBudsを買いました
Boseのノイキャンイヤホンを買いました。33,000円也。
とにかく何も聞こえなくなるものを
世の中にはいろいろ雑音があふれています。特に東京では外に一歩出れば車の重低音、人の会話、スーパーにいる甲高い人の声などなど。こういう音に精神ダメージを受けるのはもったいないということで、ノイキャンイヤホンを購入することに決めました。
重視した点はとにかくノイキャン性能。ビックカメラ行ってJebraやSonyのと比較しましたが、着け心地とノイキャン性能で一歩先を言っていたBoseを買うことにしました。
ノイキャンは抜群
ノイキャン性能はとても高いです。時々外でイヤホンを外すと「世の中はこんなにうるさかったのか」と良く驚きます。家にいても除湿器やエアコンが発する雑音に惑わされなくなり、勉強やプログラミングに集中できるようになりました。
逆に聞こえな過ぎて注意力が散漫になることも多々あります。例えば、気が付かないうちに漂白剤を服につけてしまいダメにしてしまったことも。人間は普段から聴覚からも結構情報を得ているみたいです。
音は微妙
以前BoseのQC30やスピーカーを聴いたときは低音が効いていて感動した記憶があるのですが、それと比較するとこのイヤホンはあまり低音が効いていないです。良く言えばおとなしい、悪く言えば物足りない。悪くはないのですが、Boseの特に低音を期待すると期待外れになるかもしれません。
後ワイヤレスの宿命か音のラグが大きいです。アズールレーンすら音がワンテンポ遅れて少しやりにくいです。
UIは物足りない
一応タッチパネルはついているのですが機能が少ないです。音量すらイヤホンから変えられないです。イヤホンから出来ることはノイキャンレベルの変更と、アシスタンス機能の起動、それと電話の応答位。もう少しスワイプで音量とか変えられれば有難かった。
とりあえずノイキャンが良いので満足です。家にいるときや通勤途中は、いつもこれつけて精神の安寧を得ています。
C#で内部クラスから外部クラスのメンバにアクセスする方法
コンストラクタで親クラスを渡す。privateもアクセスできる
class Outer { int value = 100; Inner inner; public void GetInner() { this.inner = new Inner(this); } class Inner { Outer outer; public Inner(Outer outer) { this.outer = outer; } public void run() { this.outer.value = 100; } } }
ref
C#で内部クラスから外部クラスのメンバにアクセスする方法
コンストラクタで親クラスを渡す
class Outer { int value = 100; Inner inner; public void GetInner() { this.inner = new Inner(this); } class Inner { Outer outer; public Inner(Outer outer) { this.outer = outer; } public void run() { this.outer.value = 100; } } }
KotlinでSpring FrameworkのTutorialする時にハマったこと
Getting Started · Building a RESTful Web Service
これやる時にハマったこと
src/main/java/hello/Application.java
package hello; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
こいつを次のようにする
package hello import org.springframework.boot.SpringApplication import org.springframework.boot.autoconfigure.SpringBootApplication @SpringBootApplication class Application fun main(args:Array<String>) { SpringApplication.run(Application::class.java, *args) }
エントリポイントは直接グローバルに書かないといけないので、この方法でグローバルに名前をつけてる?みたいですね。
VBAとC#で対話的にプログラムを実行する
VBA、つらいですね。
VBAとC#で標準入出力を介し、対話的にプログラムを実行する方法です。
やりたいこと
docx
というところが闇が深いです。
可搬性を考慮してRegAsmは使用禁止です。最初はC#のdllをラップするC++のdllを作ろうとしましたが、C++はよくわからないので断念しました。
C#側
文字列を返すだけの簡単なアプリケーションです。
using System; class Program { static void Main(string[] args) { var s = ""; while (s != "EOF") { s = Console.ReadLine(); Console.WriteLine(s); } } }
出力の種類をWindows アプリケーション
とすることでコンソールウィンドウを表示せずにすみます。
VBA側
標準入出力ですがWindows Script Object Model
のWshShell.exec()
から生まれるWshExec
オブジェクトを介して操作できます。
Option Explicit ' 参照設定 -> Windows Script Object Model Public Sub TestConsole() Dim path As String path = ThisDocument.path & "\sandbox.exe" ' フルパス If Dir(path) = "" Then MsgBox path & "が見つかりません" Exit Sub End If path = """" + path + """" Dim wsh As IWshRuntimeLibrary.WshShell Set wsh = New IWshRuntimeLibrary.WshShell On Error GoTo finally Dim exec As IWshRuntimeLibrary.WshExec Set exec = wsh.exec(path) ' 標準入出力の処理 exec.StdIn.WriteLine "test1" Debug.Print exec.StdOut.ReadLine exec.StdIn.WriteLine "test1" Debug.Print exec.StdOut.ReadLine exec.StdIn.WriteLine "test1" Debug.Print exec.StdOut.ReadLine exec.StdIn.WriteLine "EOF" finally: Set exec = Nothing Set wsh = Nothing End Sub
標準入出力とかよくわからない
AtCoderをやりましょう