技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

わんくま勉強会(109回メモ:終了まで随時更新)

youtu.be

PowerShellコマンドライン

  • はるにゃさん

歴史的な話。

2003 年から開発開始、2006 年公開、Windows10 の Creators Update で Win+R のデフォルトシェルになった。

コマンドプロンプトは、そもそも DOS からずっと動いてた。
拡張されてきたくせに実は仕様書がない(過去の仕様があるにはある)。
バッチファイルの正式には cmd が正しく、bat は下位互換でのこされた…はずがずっと生きてる。
exe/com が実行バイナリだが、com はもう殆ど残ってない。

dir /s /b g:¥Windows¥System32¥*.exe

とかで探す。

  • if 文と比較演算が大きく変化
    DOS だと基本コマンド(シェル系)と、実行コマンド exe に分かれる。 シェルコマンドは、if - else しか書けない、要するに elseif がないし、利用可能な比較演算子==, EQU, NEQ,GER, GEQ, LES, LEQ くらい。
    対して、PS だと -eq, -ne, -gt, -ge, -lt, -le と意味が分かりやすくなった。
  • DOS シェルの FOR が死ぬほど分かりづらかったが、PS で foreach (コマンドラインだと For-Each のみ)で書ける。
  • pause 消えた
  • goto / call / exit この辺りは Function に変わった
    call の代わりに Start-Process で扱うなど

ただ、パワーシェルスクリプトは署名がつかないとデフォルトでは実行できない。
Set-ExecutionPolicy で実行ポリシー指定する事で先ずは実行できる。

パワーシェルは言語寄りなので、細かい事できるようだ。
ただし、起動速度はどうあがいても DOS の方が早い、現状では DOS から PowerShell を呼び出して利用するのがオススメ。

LT

  • Marp 紹介
  • 5分でわかる MR
    MR の定義説明。

RDB と数学

  • うづきさん

正規形さえしていない非正規形データとは、以下のような感じ。

  • カラムにCSVとか複数の値

なんというか蕁麻疹湧きそうなクソデータである。
(発表が死ぬほど香川推しなんだが(汗)

ここから第四正規形まで…(面倒なので略。知らない人は調べて)

RDB はリレーションによる 1:N 関係のデータを作る。
これは n 項関係という数学モデルとマップできる。

N項関係(二つ以上の直積集合の部分集合)、直積集合(単純列挙)という事らしい。

直積集合 を S1 = (a, b), S2 = (c, d) として、S1 x S2 = (a, c), (a, d), (b, c), (b, d) となり、この部分集合 (a, d), (b, c) N 項関係というらしい。

この条件で見ると

  • 第一正規形、様々な種類のデータ(名前と職業等)がごちゃ混ぜとなっているものは、単純値と呼ぶ

ある集合値の特定組み合わせが決まると、他の値も決定できるというような従属性を関数従属性という。
例えば、郵便番号が決定すれば市区町村まで断定できる。要するに郵便番号に対して都道県市区町村名は関数従属なわけだ。
こうした関係が保たれているのが第3正規形。

DB で言えばプライマリキー決まれば、値がが取れると言える。

多値従属性…(時間がない

代数学の話題

  • IIJIMAS さん

集合の定義、基本の話から開始。A={x: x: 正整数}
d:X → Y X に対してただひとつの Y が対応する物を写像。 また、x ≠ z => f(x) ≠ f(z) の時単射という。
y∈Y において、f(x) = y が言える時、 f を X から Y の上への全射という。
直積: X,Y の要素に対して (x,y) という順序づけられた組み合わせ全体の集合を直積(XxY)という。
二項演算:ρ: SxS → S を二項演算という。

群:含まれる任意 2 要素でいくつかのルールが成り立つ 整数Z、有理数Q、複素数C、実数R

環:足し算で前後可換、乗法で結合律 (ab)c=a(bc)が成り立つ。分配律a(b+c) = ab+ac が成り立つ。

…数学記号が入力しきれない…

k-means を紐解く

  • XENO@小柴

クラスタリングアルゴリズムのひとつ。
つっても、分かりやすい話は、平面にデータマップして、大まかに「K 個グループあるはずだ!」という想定の元、画面上に K 個の移動可能なポインタをランダムに置く。

で、ポインタと各要素の平均距離を計算していって、ポインタの位置をずらしていき、移動しなくなったら完成。

で、ポインタから見て近い要素は同一グループとみなすと…