【Tweets】2022 04 30

2022年 前半 ツイートまとめ. 新しいもの順.

「NSH」書き直している「グミ」を買うの巻

NSHを書き直している

自作シェル(NSH)を書いているわけだが、不必要にメソッドを作っている気がしてならない。構造体の値を更新したりしない関数を、メソッドとして用意するのはどないしたものか。構造体があって、その構造体に対するimplだ。メソッドの乱用とでも言っておこうか。

とりあえずコードを分解して、分解したコードを組み直している。

github.com

 

グミの仕入

箱で買うよね。

f:id:fuu192:20220404132108j:plain

 

NSH カーソル移動

カーソル移動をできるように、機能を実装した。

https://github.com/fuu19/nsh

let mut position = 0;
let mut buffer = String::new();

loop { ......

 

.....
//right
[67] => {
if position < buffer.len(){
write!(&mut io::stdout(), "\x1b[1C");
position+=1;
}
}

//left
[68] => {
if position > 0{
write!(&mut io::stdout(), "\x1b[1D");
position-=1;
}
}
....

 

.....
let string = String::from_utf8_lossy(&code).to_string();

let ch = string.chars().next().unwrap();


buffer.insert(position,ch);

position+=1;

write!(&mut io::stdout(), "\r{}{buffer}", self.get_prompt());
if position < buffer.len(){
write!(&mut io::stdout(), "\x1b[{}D",buffer.len()-position);
}
....

 

ANSIでそのまま移動できる。

移動した後そこからバックスペースを使って後ろ側の文字列を削除したり、またカーソル位置から追記できるようにした。

 

bufferへの書き込みは、pushからinsertに変更した。これで、特に何も考えず、簡単に任意の位置へ代入できる。

 

 

 

iCloud プライベートリレーが遅い話

通信をリレーさせれば遅くなる。当たり前で分かっていたと言えば、分かっていたのだけれども....思った以上に遅くて...と思いきや、アップロードが早くなってる???

 

リレー無し

ダウンロード:500Mbps

アップロード:59Mbps

f:id:fuu192:20220217101902p:plain

リレーあり

いや〜流石に遅過ぎます。

 

ダウンロード:107Mbps

アップロード:150Mbps

f:id:fuu192:20220217102034p:plain

切り替えを簡単にして欲しい

ダウンロードが100Mbpsだと、流石に使いたくない。とは言っても、外出先などでは、使いたい...

コントロールセンターなどから、簡単に有効無効を選択できるようにしてほしい...

(プライベートリレーの有無効は、わざわざシステム環境設定から行う必要がある。)

 

 

Go言語 ファイル暗号化してみた

テキストファイルと画像ファイルを、暗号化&復号してみた。

Cipher : AES

block mode : CTR

Key size : 256bit

KDF : Argon2id

キー導出やパスワードのハッシュ化に、SHA256を単体で使用することは、望ましくありません。PBKDF2やArgon2idを使いましょう。

実際にコンテンツを暗号化する時は、KEKとCEKに分ける事が適切です。

www.youtube.com

NSH開発日記 2022_02_10_2

NSHのカーソルキーでコマンド履歴を行ったり来たりするために、キーをロギングして判定....どうのこうのって考えていた。考えは甘く、これ無理。NSHでは使えないけど、普通にキー入力はロギングできるので、ソースコード部分だけ。

github.com