2021年7月にやったこと

趣味をやっていたので書くのをさぼっていた

デジタルアイデンティティー 経営者が知らないサイバービジネスの核心

エンティティとは、とかアイデンティティとは、とかの説明が非常にわかりやすかった アイデンティティに関する話で、実際にどう動くのか?の外側の話(なぜそれをやると嬉しいのか、とかどう運用するべきなのか?とか)はあまりまとまった文章がいままでなかったような気がしていて、そのあたりがまとまっている点がよかった

NIST SP-800-63

openid-foundation-japan.github.io

NIST Special Publication 800-63Aまでよんだ あまりにもだらだらよんでいる 最近読む文章、IALとか出てくるしそういう文章を読むための前知識しては有効に働いている気がする

HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド

docs.oracle.com

社で読書会がはじまったので読んでいる たのしい

その他

会社でOAuth 2.0のRFCを読む会をやった 最近完走した いまはIntrospection編をやっている

dev.classmethod.jp

勉強会でちょっと混乱したので書いた

zenn.dev

Hydra というOSSが面白そうだったのでさわっていた

zenn.dev

zenn.dev

DenoでIDトークンの検証をしたので書いた なんでそんなことをしたのかは忘れた なんかWebアプリを書こうとしたんじゃないかという気がするが、IDトークンの検証をしたら満足してしまった気がする

zenn.dev

2021年3月にやったこと

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

おわった おもしろかった 今触っているコンピューターが何故動いてるのかはわからんが、なんらかのコンピューターが動く、ということに対してなんとなく納得した

NIST SP-800-63

openid-foundation-japan.github.io

とりあえずSP800-63-3までよんだ 対象読者ではないのでこれを読んで何を得ればよいのか、というところは正直ふらふらしている 世の中のすべての個人情報を扱うサービスがAAL2を求めるかというと、そうでもない気がするな、みたいな意味で それとは別に、Identity界隈で出てくる馴染みのない単語に馴染むための文章、という意味ではすごく有効だなと思った EnrollmentとかAssertionとかそういうやつ 読んでてわからんところをどうしたらいいのかわからん 聞く相手がほしい

Identity and Data Security for Web Development: Best Practices

Identityの勉強、何したらいいのかいまいちわからんので読んでみた ちょくちょくしっくりこない部分はあるんだけどパスワード関連のハッシュとかの話は整理できてよかった ざっくり何が書いてあるのかのまとめ

主に以下のような話がかいてあります
* セキュリティ要件にユーザーがかしこいことを求めるな
* in transit、at restなデータに対する暗号化をちゃんとやれ
* パスワードのエントロピーについて
* パスワードのハッシュ、どうする?(ソルトとかの話も含む)
* パスワードに対する攻撃いろいろと対策について
* UXを落とさずにセキュアにしたい(フィンガープリントとかの話)
* OAuth 2.0、OIDCについて(薄め)
* MFAについて
* FIDOについて(薄め)
* セッションの実装について(Express)
* あるあるな攻撃の話(XSSやらCSRFやら)
* SSL/TLSについて(ざっくり)

読んでてレインボーテーブルってよくわかってないなということに気づいたので整理した

zenn.dev

パスワード認証最強論: 貴方の〇〇認証、本当に安全ですか?

www.amazon.co.jp

Kindle unlimitedで読めたのでなんとなくよんだ

序盤の

  • 認証方式(生体、所有、知識)のメリデメ整理
  • クレデンシャルによる認証の実装分類と歴史の話

あたりがよかった

その他

WebIDながめたりした

かいた

dev.classmethod.jp

zennの触り心地がよかったので

zenn.dev

zenn.dev

zenn.dev

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン
  • コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
  • Identity and Data Security for Web Development: Best Practices
  • NIST SP 800-63
  • 数学やりなおし
  • DBS

2021年2月にやったこと

ダイエットやめた とりあえず自分の意思で体重が落とせることがわかった

会社ではRFC 6749を読む会をはじめた

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

1月 NANDから各論理ゲートの実装→加算器実装→ALU実装→ゲートとDフリップフロップからレジスタやらRAMの実装→書いてみようアセンブリレジスタとゲートとALUでCPU実装してRAMと組み合わせてコンピューター実装→作ったコンピューターで動くアセンブラ実装→バーチャルマシン実装(いまここ)

2月 バーチャルマシン実装→コンパイラ実装→OSという名の標準ライブラリ実装(いまここ)

OSが微妙に残ってしまい2月中に終わらなかったがかなり終わりが見えてきた

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン
  • コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
  • Identity and Data Security for Web Development: Best Practices
  • NIST SP 800-63
  • 数学やりなおし
  • DBS

コンピューターシステムの理論と実装12章の除算のサンプルコードが何をしているのかよくわからなかったので整理

大変なことになってしまった

f:id:inabajunmr:20210222013304p:plain

  • ざっくり言ってしまえば、割り算の筆算を2進数でやっている
  • qは現時点で埋まった解答
  • x - 2 * q * y は、x - 今までの計算で引いてきた値を合計したやつ
  • 表の4段目の状態だと、qは10で、ここまで引いてきた値の合計は 10 * 110000000 + 0 * 110000000であらわせる(3段目の2つの★)
    • これが2 * q * y
      • 1つ前の表で計算したy * qをする必要があって桁を上げるために * 2している(4段目であれば q2 * y2 をしたいが、この時点でyはy3なのでy2に戻している
  • x - 2 * q * y < y の場合、今の桁の解答を1にして次の桁に進む(これが 2 * q + 1+1
    • 結果、次の計算のqは101になる(最後の1が+1の1)

おんなじようなことを10進数でやるとこんな感じになる

function devide(x:number, y:number, d:number):number {
    if(y > x) return 0
    let q = devide(x, 10 * y, d * 10)
    var i = 9
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    i--
    if(y * i <= x - (q * y)) {
        return i * d + q
    }
    return q
}

2021年1月にやったこと

ダイエットしていた

f:id:inabajunmr:20210201221136j:plain

PICTのクローン書く

github.com

order増やすと返ってこなくなるのでそのへんの改善をいろいろしていた

あとサブモデル実装したら公開しようかなと思っているが止まっている

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方

今月はほぼこれ

前半は基本情報でやったやつが実際何に使われてるのかを勉強する会って感じ

NANDから各論理ゲートの実装→加算器実装→ALU実装→ゲートとDフリップフロップからレジスタやらRAMの実装→書いてみようアセンブリレジスタとゲートとALUでCPU実装してRAMと組み合わせてコンピューター実装→作ったコンピューターで動くアセンブラ実装→バーチャルマシン実装(いまここ)

ペース的に2月に終わるか微妙なライン

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン
  • コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
  • Identity and Data Security for Web Development: Best Practices
  • 数学やりなおし
  • DBS

Chrome拡張でお絵かきしたい

欲しい話

  • Chrome拡張からキャンバスが開いてお絵描きできる
  • 描いた絵をドラッグしてブラウザ側にもってける
  • たとえばNotion編集中にお絵かきして描いた絵をそのままNotionにアップロードできる

2020年12月にやったこと

AWSのDatabaseの資格とろうかなと思ってRDSのドキュメント読んでたけどまったくやる気がでないので一旦やめてTypeScriptに入門していた

相変わらずこれからやることリストを無視している

仕事ですぐに使えるTypeScript

TypeScriptやるならこのへんがよいというのを社の人に教えてもらったのでこれを読んだ

なんとなくざらっと書けるようになったのでよかった

一通り読んでとりあえずスネークゲームを書いた なんとなくかけた

起動周りめちゃくちゃなのでバグっている

github.com

PICTのクローン書く

冬休みはこれしかやっていない

ほんとうは

を冬休みの宿題にしようと思って12月頭に注文していたが、届かずに年が明けた

PICTは社のブログで知って最近ちょくちょく使うようになった

dev.classmethod.jp

便利

で、CLIじゃなくてブラウザでいじりたい(だいたいテストケース考えてるときはブラウザをみているのとGoogleスプレッドシートといい感じに連携したい)気持ちになった あとしらないサーバーに業務で書くコードのテストケース送りたくないなとか

inabajunmr.hatenablog.com

なのでTypeScriptでまるごとクローンしようと思って書いている

TypeScriptのチュートリアルをやっていたのはこれをやるため

とりあえずX組の因子でテストケースを出す、みたいのはかけた

Constraintsはサポートしてない機能がありつつもなんとなく動く、くらいまでかけたが、Constraintsを実装したらコードがかなり終わった だいたいそんな状況

かいている

github.com

冬休みで一段落させたい

DBS

RDSのドキュメント読んでた

モチベーションが全然でないのでこまった

その他

クソアプリアドベントカレンダーのネタ

inabajunmr.hatenablog.com

Base64エンコードの実装をした

しました

これは多分実際に実装なり何なりをしていたのは10月とか

ポエム

かいた

inabajunmr.hatenablog.com

ソフトウェアデザイン 2021年1月号

レビューの話をかいた

これは多分10月とか11月とかにしていたので12月はとくにしていない

レビューのインセンティブが偏るとレビューする人も偏るよねとかそういうのを書きました

眺めた

kratosが100パーAPIファーストでログインとか提供してるというfeatureが書いてあったのでどうやってんだろと思ってながめていた

ついでにsupertokensもみていた

github.com

github.com

これからやること

  • AWS入門する
    • ECS
  • Webエンジニアが知っておきたいインフラの基
  • 入門監視
  • クリーンアーキテクチャ
  • 実践ハイパフォーマンスMySQL 第3版
  • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
    • 停滞気味
  • Linuxの仕組み
  • Goならわかるシステムプログラミング
  • 英語
  • 中国語
    • Toeic900超えるまで止める予定
  • ここ最近ほとんど業務でプログラミングをしなくなって、調整とかレビューとかばっかしてるがかなり雰囲気でやってるので、マネジメント系の本を読もうとしている
    • なにがいいのかよくわからん
  • Effective Go - The Go Programming Language
  • パタヘネ
  • OAuth2.0のクライアント書く
  • OAuth 2.0/OIDC関連仕様全部読む
  • WebAuthnのドキュメント読む
  • マイクロサービスパターン
  • コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
  • DBS