minus3thetaのブックマーク (72)

  • system-design-primer/README-ja.md at master · donnemartin/system-design-primer

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    system-design-primer/README-ja.md at master · donnemartin/system-design-primer
  • みずをのむ on Twitter: "#Rust VSCodeのrust-analyzerで rust-analyzer failed to load workspace: Failed to find sysroot for Cargo.toml ... ... I… https://t.co/cw2wABu62O"

  • 普通の人が資産運用で 99 点をとる方法とその考え方 - hayato

    はじめに 資産運用で 99 点をとる方法とその考え方について説明します。この記事の対象はいわゆる「普通の人」です。 資産運用趣味ではない。 資産運用を始めてみたいが何をしてよいのかわからない。 資産運用をすでに行っているが毎年ころころと方針を変えてしまっている。 資産運用に無駄に時間ばかり費やしている。 今のところ資産はすべて銀行の普通口座や定期預金にいれている。このまますべて現金でおいておくのも何か損しているみたいでモヤモヤする。だけど難しいことは勉強したくないし時間も使いたくない。 といった人たちです。 記事では最初に結論、すなわち「やるべきこと」を述べます。資産運用で 99 点の投資効率を達成するためにはこの結論部分だけを実行するだけでよいです。 次に、それだけでどうして 99 点といえるのか、その裏付けとなる考え方や理論を中心に説明します。 99 点をとるにあたってこれらの知識を

    普通の人が資産運用で 99 点をとる方法とその考え方 - hayato
  • コンパイル技法: パターンマッチ

    書では関数型言語をはじめとして多くの言語にあるパターンマッチをコンパイルする方法を紹介します。パターンマッチはシンプルに条件分岐の連鎖にコンパイルすることもできますが、よく研究された手法を使えば驚くほど効率的なコードを生成できるようになります。そのような手法を2種類紹介します。 パターンマッチはデータ型に照合しそのデータを取り出すものです。例えばRustであれば match opt { Some(x) => f(x), None => g()} のように Option 型への照合などに使えます。書の前半ではパターンマッチの挙動や使い方などを学びます。挙動の確認にはプログラミング言語Standard MLを使い、一部Cのコードも使います。その後Common LispやJavaなどの他の言語でのパターンマッチの状況を確認します。後半ではパターンマッチのコンパイル技法について紹介します。パタ

    コンパイル技法: パターンマッチ
  • 非同期 Rust パターン - Qiita

    Rust で非同期並列処理を書く時に出てくるパターンについて解説します tokio 1.0 と futures 0.3 環境です async function 編 pic.twitter.com/ihHRXmSaFh — legokichi (@duxca) August 28, 2021 async fn hoge() -> () まずは基 async fn hoge() -> () { tokio::time::sleep(std::time::Duration::from_millis(100)).await; }

    非同期 Rust パターン - Qiita
  • 〇〇変換を使って畳みこみができる仕組み、完全に理解した - leaf1415の日記

    競技プログラミングでは、フーリエ変換やゼータ変換などを使って畳みこみの計算を行うことがしばしばありますが、こういった○○変換で畳みこみの計算ができる直感的なお気持ちを最近ようやくわかった気になったので、その勝手な解釈を文章にまとめました。 読みにくいところやいい加減なところがありますが、ご容赦ください。 畳みこみについて 集合 上の 項演算 があって、 与えられた つの 次元ベクトル から、 となる新たな 次元ベクトル を作る操作を、ここでは「畳みこみ」と呼び、 で表します。 演算 として、 などの場合が競プロにしばしば登場します。 ただし、 はbitwise-AND、 はbitwise-OR、 はbitwise-XORを表します。 の場合は、 を次の手順で計算できます。 まず、 と それぞれに離散フーリエ変換を行って、 つの 次元ベクトル を得ます。 次に、 と の各点積、つまり、 を計

    〇〇変換を使って畳みこみができる仕組み、完全に理解した - leaf1415の日記
  • CORSの仕様はなぜ複雑なのか

    Webアプリケーションを実装していると高確率で CORS の問題にぶつかります。CORSがどのようなものかはリンクしたMDNなど既存の解説を読むのが手っ取り早いと思いますが、「なぜそのように設計されたのか」という観点での説明はあまり見ないため、昔の資料の記述や現在の仕様からの推測をもとに整理してみました。 CORSとは 現代のWebはドメイン名をもとにした オリジン (Origin) という概念 (RFC 6454) をもとに権限管理とアクセス制御を行っています。その基となるのが以下のルールです。 Same-origin policy (同一生成元ポリシー): 同じオリジンに由来するリソースだけを制御できる。 上記Wikipedia記事によるとSOPの概念は1995年のNetscape 2.02に導入されたのが最初のようです。当時のドキュメンテーションを読む限り、これはウインドウ越しに別

    CORSの仕様はなぜ複雑なのか
  • デスマーチが起きる理由 - 3つの指標

    鳥のさえずり声を聞いて、私は悪態を吐いた。今日の早朝に予定されていたミーティングのことをすっかり忘れていたのだ。 まったく、最悪の朝だ。着替えている間に、電話も鳴った。「高い金を払ってコンサルタントを雇った極めて重要なミーティングだ」と念を押されていたというのに。 それもこれも昨日のバグのせいだ。睡眠時間も、開発スキルも、人員も、私の現場には何もかもが足りていない。 それにも関らず、理解の足りない上司は「テスト工程を削ってでも早く納品しろ」とプレッシャーを与えてくる。 あの馬鹿どもめ。一体何を考えているんだ? スーツに着替え終わった私は、冷蔵庫の缶コーヒーで空腹を誤魔化すと、バイクに跨った。通勤時間が5分なのが、せめてもの救いだ。 「遅れてすまない」 そう言って会議室に入ると、奇妙なことに気がついた。教室のように整然と並んでいたはずの机が、即席の半円形に並べ替えられていた。 何より、ホワイ

    デスマーチが起きる理由 - 3つの指標
  • VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み

    Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。今回主催の@nullpo_head 氏が、Armの仮想化支援機構について、その仕組みから深く説明します。前半は「現代のハードウェア仮想化支援機構」について。全2回。 ハードウェア仮想化支援とは何か 佐伯 学哉氏:入門セッション3つ目は『Armの仮想化支援機構』についての入門セッションです。どうぞよろしくお願いします。 発表のスタートとゴールです。VMwareとかQemuとか使ったことあるけど仮想マシンの仕組みなんも知らんというところがまずスタートになっています。 1個目のゴールは、最近のVMのざっくりした仕組みとハードウェア仮想化支援とは何かということがわかること。そしてその話のあとに実際にArmの仮想化支援機構の概要を説明し、Armの仮想

    VM環境のCPU仮想化はどうやって実現しているのか ハードウェア仮想化支援機構の仕組み
  • Tokio チュートリアル (日本語訳)

    Rust の非同期ランタイム Tokio のチュートリアルの日語訳です。オリジナルはこちら: https://tokio.rs/tokio/tutorial

    Tokio チュートリアル (日本語訳)
  • 2020年代のEmacs入門

    Author: conao3 Published: 2020-08-25 Last Modified: 2020-12-04 GitHub Source: md はじめに Emacsは1972年にMITで生まれ、今日に至るまで名だたるハッカーに愛されてきたエディタです。 Emacsがハッカーに愛されている理由は、Emacsがそれ自体、動的なEmacs Lisp環境であり、エディタの動作をEmacsの開発者ではないあなたが、ビルドなしで動的に自由にハックできることです。 OSと協調する必要のあるEmacsのコアとEmacs LispそのもののコアをC言語で提供する他は、ほとんど全ての機能がEmacs Lispによって提供されています。 あなたは細部にわたってEmacsの全てを制御できますし、Emacsの上にあなたの思い描く、あらゆるアプリケーションを構築することができます。 Emacsはあな

    2020年代のEmacs入門
  • MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)

    先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現在仕事を自宅の固定席で行っており PC を持ち運びする必要がなくなったため Mac より高速で安価な Windows デスクトップ機を使いたいこと(Ryzen 9使いたい!)、WSL2 が正式版となり使ってみた感じ問題なく WSL2仕事の開発ができそうだったことが挙げられます。 WSL2 はふつうに Linux なので問題なく開発環境の構築が行なえ、Windows からも VSCode Remote のおかげでで違和感なくWSL2上のコードを編集、実行ができ快適な開発が行えています。(なお、WSL2 についての記事は山程溢れているので、ここでは殆ど触れません。) しかしながら、WSL2 ではないふつうの Windows 上で開発する機会が出てきたので、M

    MacOS ユーザが WSL では無い Windows のコンソール環境を整える - 2nd life (移転しました)
  • Rustで組込みプログラミングや自作OS作成をするには

    これは以前からつくっていたErkOSという自作OSでの経験を元にして、どうやったらRustで自作組込みOSの最初の一歩を踏み出せるか、というものをドキュメントにしたものです。 このドキュメントはこの前の技術書展の告知が来たあたりから構想を練っていて、すきま時間にちまちまと書き進めていたものですが、とりあえず、プロセスの切り替えっぽいところまでの説明を終えることができたので公開しました。 組込みでRustをやる話や自作OSを書く話というのは先駆者がたくさんいて、僕自身もそれらの資料を参考にしつつ書き進めて来ました。 一応、それらの既存のものとは差別化はしているつもりではあるものの、既存のものを完全に上回るというものではないです。内容もまだまだ足りない。 以前、RustでOSを書くプロジェクトもろもろでいくつかOSを書く際に参考になりそうなプロジェクトをまとめましたが、情報も古くなってきたので

    Rustで組込みプログラミングや自作OS作成をするには
  • 帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ

    (高校で習うはずの)数学的帰納法をはじめとする帰納法(induction)と、(π計算など並行プロセス計算に出てくる)双模倣(bisimulation)をはじめとする余帰納法(coinduction)は、双対(dual)であると言われます(例)。双対というのは、大雑把に言うと、論理式のド・モルガンの法則 ¬(A∨B) ⇔ ¬A∧¬B と ¬(A∧B) ⇔ ¬A∨¬B のように、何か一組のもの(ここでは∧と∨)をひっくり返しても同じ式が成り立つという関係です(例)。 しかし、自分は学部4年ぐらいのときに余帰納法(というか双模倣)を習って、「(数学的帰納法のような)帰納法と(双模倣のような)余帰納法が双対」と聞いても、何となく「余帰納法は結論を仮定する(?)から、仮定を仮定する(?)帰納法と反対なのかなあ」と思うぐらいで、恥ずかしながら何が双対なのかよくわかりませんでした。かといって、詳しい人

    帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita

    概要: Rustの Arc 型の実装は宝の宝庫です。そこで、これを隅から隅まで解説してみます。 第1回「Arc/Rcの基」では、実際に Arc のソースを読む前に Arc/Rc の使い方を解説します。 第1回 Arc/Rcの基 第2回 Rcを読む基編 第3回 Rcを読む発展編 第4回 アトミック変数とメモリ順序 第5回 Arcを読む はじめに Arc<T> はRustの基的な型のひとつですが、 Box<T> のようにコンパイラに特別扱いされているわけでもなく、実装も比較的コンパクトです(コメントやテスト、安定性に関する指示などを除いて500LOC程度) その一方で Arc は並行性制御や Deref, ドロップチェッカー, Unpin, Layoutの扱いなどRustをよりよく理解するための題材を多く含んでいます。そこで記事では Arc<T> の実装を読んでいきます。 とはいえ、

    Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita
  • SLyDIFi でらくらくスライド作成 - Qiita

    この記事は SATySFi Advent Calendar 2019 18 日目の記事です.前日は puripuri2100 さんの「SATySFiのoption型を扱おう」という記事でした.明日は hsjoihs さんの記事が入る予定です. monaqa です.記事では,今年作成した SLyDIFi というパッケージを紹介します. SLyDIFi とは SLyDIFi は,組版用言語 SATySFi でスライド作成を行うためのパッケージ(クラスファイル)です.LaTeX でいうところの beamer のような立ち位置に相当します. なお,SATySFi でスライドを作成するためのクラスファイルはこれが初めてではなく,先発のものとして satysfi-steamer があります.SLyDIFi 作成の際にも参考にさせていただきながら,自分好みの仕様に変えています. SLyDIFi ででき

    SLyDIFi でらくらくスライド作成 - Qiita
  • AtCoderで赤になるまでにやったこと - koba-e964の日記

    AtCoderで赤タッチしたのももう1.5年も前ですが書きます。覚えていないこと・抜け・漏れなどのオンパレードですがご容赦ください。 お前は誰 kobae964 - AtCoderです。2017年11月に初めてAtCoderでredになりました。 RedCoderになりました!!!! pic.twitter.com/PcRWWu32qS— koba (@kobae964) 2017年11月11日 なんで今更これ書いたの 当時は面倒だったので書きませんでした。その後人々が変色時に記事を書いていくようになり、見かけた記事は大体全部読んでいました。 微笑ましいと思ったもののAtCoderの赤でそれをやった人を見たことがなかったので、せっかくなので書こうと思いました。すでに誰か書いていたらごめんなさい。 注意事項 筆者はAGCよりもARCの方が得意なため、AGCでの立ち回りは強い人に聞いてください

    AtCoderで赤になるまでにやったこと - koba-e964の日記
  • Best practices for writing Dockerfiles | Docker Documentation

    Docker overview Get started Overview Quick hands-on guides What is a container?Run a containerRun Docker Hub imagesRun multi-container applicationsPersist container dataAccess a local folderContainerize your applicationPublish your image Getting started guide Part 1: OverviewPart 2: Containerize an applicationPart 3: Update the applicationPart 4: Share the applicationPart 5: Persist the DBPart 6:

    Best practices for writing Dockerfiles | Docker Documentation
  • Rustで競技プログラミングの入力をスッキリ記述するマクロ - Qiita

    モチベーション Rustで標準入力から望みのデータを入力するのは意外と面倒で、標準ライブラリにあるものを使って素直に書こうとすると、結構コード量がかさみます。例えば、文字列を一行読み込むのに、 let s = { let mut s = String::new(); // バッファを確保 std::io::stdin().read_line(&mut s).unwrap(); // 一行読む。失敗を無視 s.trim_right().to_owned() // 改行コードが末尾にくっついてくるので削る };

    Rustで競技プログラミングの入力をスッキリ記述するマクロ - Qiita