go言語のレシーバー

https://qiita.com/ryo_manba/items/c567858befd04602e3ec
goで定義した構造体の型に対してメソッドを追加するための構文がレシーバ。

// 構造体の定義
type Person struct {
    Name string
    Age  int
}

// Person構造体にGreetというメソッドを定義する
func (p Person) Greet() {
    fmt.Printf("Hello, I'm %s, %d years old.\n", p.Name, p.Age)
}

func main() {
    person := Person{Name: "Taro", Age: 42} 
    person.Greet() // Hello I'm Taro, 42 years old.
}

C#の拡張メソッドに近いが、C#の拡張メソッドは糖衣構文なのでオブジェクトを引数に取った関数呼び出しに変換されるのに対して、go言語のリフレクションは実際に型にメソッドを定義する。

static class Extensions
{
    public static void Greet (this Person p)
    {
        Console.WriteLine(p.Name, p.Age);
    }
}

JUNK WORLD

視聴。
「JUNK HEAD」の続編にして前日譚となる過去のストーリー。
「JUNK HEAD」「JUNK WORLD」に続く「JUNK END」を予定した三部作の1つということで、どちらも物語は完結していないがキリが良い箇所で終わっている。
本作も気が遠くなるようなストップモーションアニメで作成されており、その独特の世界観は健在。
前作の1000年前ということで生命の樹の由来や、「JUNK HEAD」のメインボディがどういった経緯でそこにあったのかなどが語られる。
まだかなり先になりそうだが完結作が非常に楽しみな作品。

The Case of the GOLDEN IDOL - ザ・ケース・オブ・ザ・ゴールデン・アイドル

クリア。
単語が歯抜けになっているテキストを埋めて、そのシーンの登場人物やシーンで起きた出来事を完成させていく推理アドベンチャー。
プレイ前は黄金像をめぐった殺人事件を解くのかと思っていたら、謎の力を持つ黄金像をめぐる時代を動かす出来事を追っていく作品で、良い意味で予想を大きく裏切られた。
マイルドになったオブラディンという感じで、推理ゲームとしてはゲーム的な順当さを持つシステムながら、確定した場所から次の推測を連鎖させていく進め方が楽しい作品。
人物名を確定させることを次の推理の材料とするという部分を、システム的に明確にしたという意味で推理ゲーム系譜で重要な役割を持っている作品かと思う。

NuShell

https://www.nushell.sh/ja/
PowerShellに大きな影響を受けたコマンドラインシェル。
以下のようにPowerShellとかなり似た構造のコマンドが使える。

# NuShell
ls | sort-by size --reverse | first 3

# PowerShell
ls | sort Length -Descending | select -First 3

PowerShellの「文字列ではなくオブジェクトをパイプに流す」という考え方をさらに拡張して、自動的にjson,yaml,xml,csvなどのテキストをオブジェクト的に扱うパイプ操作が行えるという特徴を持つ。



正直、新たにシェルを導入せんでもデフォルトで入ってるpowershell使えばよくない?と思ってしまう。

PowerShellでPCのメーカー名や型番、OSバージョンなどを取得する

https://qiita.com/Tom-Panasonic/items/7e273f5a602d8a964237
機器情報の取得の時に使える。

# 例: PC基本情報をまとめて取得
$pc = Get-CimInstance Win32_ComputerSystem
$bios = Get-CimInstance Win32_BIOS
$os = Get-CimInstance Win32_OperatingSystem
$cpu = Get-CimInstance Win32_Processor

[PSCustomObject]@{
Manufacturer = $pc.Manufacturer
Model = $pc.SystemSKUNumber
Serial = $bios.SerialNumber
OSs = $os.Caption
CPU = $cpu.Name
MemoryGB = [math]::Round($pc.TotalPhysicalMemory/1GB, 1)
}