2019-01-11

MySQL Haskell DES ろうと パッケージ Wikipedia Data Encryption Standard ページ そちら こいつ ところ ビット みたい ぴったり 日本語 下手くそ 表通り shuffle カフェ 立ち読み クッソ SICP PDF タイミング めちゃくちゃ gauche インストール Emacs Vtuber スパロボ ナデシコ ガオガイガー ゲッタードラゴン びっくり 主人公 BGM 楽しみ 英単語 さくら インターネット VPS ドメイン

仕事

MySQL周りに微妙に詳しくなるなどした。

数学

実質Haskell。

今日はDESを実装する。

実装してあるものをググろうと思ったけど、標準パッケージくらいしかなかったのでWikipediaみて実装する。

Data Encryption Standard

それとWikipediaよりもわかりやすい図を作っているページも見つけたのでそちらも置いておく。

DESとは?

ちなみにC言語での実装はあったんだけど普通に読めなかったので諦めた。

ところでこいつで一番わからないところが例えば64ビットない場合の処理なんだけど

64,64,24みたいなやつ。どうするんだろう。とりあえず実用化とかじゃなくて勉強なので

最終行は64ぴったりになるように0、もしくは空白文字を入れて調整することにしよう。

それに伴い、過去のものを修正したりした。

-- リストを内部でn個ごとに分ける。
nPiecesEach :: [Int] -> Int -> [[Int]]
nPiecesEach xs n
  | (length $ take n xs) == 1 = take 1 xs : nPiecesEach (drop n xs) n
  | (length $ take n xs) < 1 = []
  | otherwise = take n xs : nPiecesEach (drop n xs) n
  -- nPieceseach [1,2,3,4,5] 2 => [[1,2],[3,4],[5]]

これの強化版みたいな関数ありそう。残念ながら日本語が下手くそすぎてググりきれなかったので諦めて作った。

-- xsがmaxに達するまでnで満たす。
fillList :: Ord a => [a] -> a -> Int -> [a]
fillList xs n max
  | (length xs) >= max = xs
  | otherwise = fillList (xs ++ [n]) n max

流石にこれはないだろうと思ってすぐ作った。

さて、そろそろ転換表通りにならべかえるかといったところで転換表が見つからない。

これ自分で作るのかな・・・?作るっぽいので適当にshuffleして作りましょうね。

ちなみに配置転換関数も作った。

relocation :: [Int] -> [Int] -> [Int]
relocation target relo
  | length relo <= 0 = []
  | otherwise = target !! (head relo) : relocation target (tail relo)

とここまで書いたところでカフェに長居するのよくないなーと感じ始めたので一旦帰宅。途中で丸善寄ったりした。

日常

一年だ・・・(唐突)

1年間立ち読みしてきた本がある。クッソ迷惑

SICPだ。1年間チラチラみてきて、でも翻訳されたPDF公開されてるし、高いし、どうせやらないしで買わなかった。

このタイミングで買うのはアホだと思って買うのかなりためらった。

なぜならHaskellを初めてしまってるし、英語もあるのでそこに入る隙間はないはずだから。

や、アホなことしたな。

この後めちゃくちゃgaucheインストールしてEmacsの設定した。

後は家で見逃したVtuberの放送見ながらHaskell書いてた。

最近好きなVtuber増えすぎて時間足りない。

後スパロボTのPV2段きてたからみた。まあ買わんけど。今時スパロボはね。

鉄血救済でも来ない限り買いませーんwさっさと鉄血だせ

視聴後

Gガンとナデシコとガオガイガーと新ゲあるし買うかなってなりました。いやーw仕方ないよねw

竜馬、ゲッタードラゴンに乗っててびっくりした。非常に良い。

主人公機の戦闘BGMもよかった。

うーんwこれは買い!w

3月20日が楽しみだ。

それまでにHaskell一通り使いこなせるようになりたいな。

今日やったこと

明日やること

comment:

Tweet

Home