あとで読むに関するmominisのブックマーク (41)

  • Comparison of ES dataflow proposals v1 (2021) • JSChoi.org

    JSChoi.org Comparison of JavaScript dataflow proposals v1 J. S. Choi 2021-12-24 Update (2022-03-25): This original article is now out of date. There is an updated version of this article from 2022-03. There are additionally some responses to this original article: 2022-01-06 • Tab Atkins • Holistic Review of TC39 “Dataflow” Proposals 2022-01-26 • TC39 plenary meeting 2022-01-27 • HE Shi-Jun aka Jo

    mominis
    mominis 2022/04/10
    Pipe operator, partial function application operator, call-this operator, extensions, Function.pipeのまとめ
  • Algebraic Effects 自習用資料まとめ

    俺は OCaml が好きだ。俺は Reason が好きだ。Algebraic Effects はもっと好きだ。 最高のリポジトリEffects bibliography: https://github.com/yallop/effects-bibliography もうこれだけあればいいんじゃないか?ってくらい言語実装と論文がまとまってる。あとは「OCaml Weekly News」とかにEffect関連の発表とか論文が紹介されてたりする。ICFPもEffect関連増えてる。 論文・An Introduction to Algebraic Effects and Handlers by Matija Pretnar Effを作った人。Computational Effectsの導入にあたって、Effect Handlerを扱えるようなコンパクトな追加の言語仕様を定義してそれをもとに入出力と

  • Optionに見るコンピュテーション式のつくり方 - ぐるぐる~

    またの名を入門コンピュテーション式(嘘 この記事は、「コンピュテーション式ってどうやって作ればいいの?」に対する自分なりの回答です。 matchのネスト optionを返す3つの関数f, g, hがあったとします。 で、このような処理がしたいとしましょう。 let niceFunction (arg1, arg2, arg3) = match f arg1 with | Some x -> match g arg2 with | Some y -> match h arg3 with | Some z -> Some (x, y, z) | None -> None | None -> None | None -> None この関数は、3つの関数すべてが成功したときだけ、その結果をまとめて成功として返しています。 それ以外は何もせずに失敗として返しています。 このように、「すべて成功した

    Optionに見るコンピュテーション式のつくり方 - ぐるぐる~
  • 詳説コンピュテーション式 - ぐるぐる~

    コンピュテーション式とは コンピュテーション式とは、機能を制限したマクロです。 ・・・では投げやりすぎるので、もうちょっとだけ説明を試みると、 「式変形によって言語の用意する構文の意味をカスタマイズできるようにする仕組み」です。 モナド用の構文として紹介されることもありますが、それはコンピュテーション式という仕組みの上でモナドを扱っているだけに過ぎません。 もっとも、コンピュテーション式はモナド用の構文として使うことが一番多いでしょうから、 モナド用の構文と理解しても問題はないでしょう。 また、このような状況を考えると、モナド以外のことにコンピュテーション式を使う場合は、 現状では「これはモナドではありません」という表明をドキュメントなりなんなりでしておくのが無難でしょう。 特に、let!とreturnを提供する場合でコンピュテーション式をモナドではない構文とする場合は、 うるさいくらいそ

    詳説コンピュテーション式 - ぐるぐる~
  • 計算機に推論できる型、できない型 | Wantedly Engineer Blog

    記事は Wantedly 21新卒 Advent Calendar の17日目の記事です。記事では、いくつかの言語の型システムに実装されている様々な機能を紹介するとともに、それが型推論の実現性に与える影響について述べます。 最近静的型付き言語が盛り上がりを見せ、動的型付き言語の筆頭格だった Ruby もバージョン 3.0 で型解析ツールを導入するまでに至った一因には、きっと型推論の有用性が知られるようになったことが挙げられることでしょう。C言語で、関数ポインタを含んだ複雑なプロトタイプ宣言を書いている時ほどストレスを感じる時間はないし、かと言って Ruby on Rails で書かれたバックエンドを弄っている時に、型チェッカがあれば自明に発見できたであろうエラーでインシデントを起こすほど悲しいことはありません。プログラマが型を書かなくても静的な型チェックの恩恵を受けられる型推論の、何と

    計算機に推論できる型、できない型 | Wantedly Engineer Blog
    mominis
    mominis 2021/12/19
    “これだけ針の穴を通す仕事をやっている訳ですから、VSCode で TypeScript の型を推定して any しか出なかったとしても大らかな心で接してあげましょう”
  • Rustacean のための F# 入門

    これは、 F# Advent Calendar 2021 の15日目の記事です なぜ F# なのか 皆さん Rust 書いてますか?良い言語ですね。私も好きです。私は C や C++ をちゃんと扱ったことがなかったので、Rust を学ぶことで、ムーブセマンティクスや左辺値と右辺値、スタックとヒープの使い分け、static dispatch と dynamic dispatch やスレッド安全性を徹底する方法など多くのことを学びました。 ゼロコスト抽象化を目標に掲げているだけあり、広い領域に適用できる言語である一方で、業務上は Rust が適さない場面も多くあります。一言でいうと、「借用チェッカがオーバーキルになる場合」です。 例えば 探索的なプログラミング データサイエンス GUI などです。私の場合、コーディングを通してドメイン知識を理解することが業務の殆どを占めるので、借用チェッカに煩

    Rustacean のための F# 入門
  • NixOSをVirtualBoxにインストールする - ぷゅあほわいとのぶろぐ

    ツイッターで時々耳にしていたNixOSをVirtualBoxにインストールします。今回はminimal installerを使います。目標は私が思う最低限のインストール、即ち一般ユーザからログインしてsudoを使える状態にします。 VirtualBoxは使える前提とし、EFIブートでの環境を構築します。 インストーラーの取得 VirtualBoxの設定 起動 インストール パーティショニング フォーマッティング マウンティング システムのインストール エディタのインストール 一般ユーザの追加 shell = pkgs.bash; createHome = true; home = "/home/name"; extraGroups = ["wheel"]; ルート取れるの? なお英語のつづりに自信がないのでコマンドやパスのつづりが間違っている可能性があります。シェルのタブ補完を有効活用しま

    NixOSをVirtualBoxにインストールする - ぷゅあほわいとのぶろぐ
  • Web のセマンティクスにおける Push と Pull | blog.jxck.io

    Intro 筆者は、 Web のセマンティクスに対する実装の方針として、大きく Push 型の実装 と Pull 型の実装 があると考えている。 もっと言えば、それは実装方法という具体的な話よりも、開発者のセマンティクスに対する態度を表現することができる。 この話は「Push よりも Pull が良い」などと簡単に切り分けられる話ではない。 「自分は今 Push で実装しているのか、 Pull で実装しているのか」この観点を意識するかしないかによって、セマンティクスに対する視野が広くなり、その応用として、たとえば今自分が行っている実装が、将来の Web においてどのような互換性の問題を生じるかなどを想像できるようになるだろう。最近問題になる Ossification を、こうした視点の欠如の結果とみることもできる。 (エントリでの Ossification は、一般に言われている Pro

    Web のセマンティクスにおける Push と Pull | blog.jxck.io
    mominis
    mominis 2021/12/09
    悩ましい話がすぎるが、出会えてよかった記事だ
  • 自作プログラミング言語と WebAssembly コンパイラ

    Photo by Lukas Tennie from unsplashはじめにこのエントリでは、僕が趣味で作っている PicoML という自作プログラミング言語の話を書こうと思う。 作ってから半年くらい経っているのだけれど、如何せん自作言語という無用の長物であり、登壇などでコイツの話をすることもないため、ある種の供養みたいなものだと思ってもらって構わない。 PicoML の概要まずは実装した言語の紹介から。ざっくり以下の特徴を備えた言語である。 ML ベースの文法による関数型言語単純 let 多相型推論による型チェックCLI として、Node.js 上での即時評価器(REPL)と WebAssembly をターゲットにしたコンパイラの双方を提供REPL やコンパイラの実装は TypeScript で行っている。自分の勉強が主目的であったため、REPL やコンパイラの CLI を動作させるの

    自作プログラミング言語と WebAssembly コンパイラ
  • ノンブロッキングI/Oと非同期I/Oの違いを理解する

    English

    ノンブロッキングI/Oと非同期I/Oの違いを理解する
  • OAuth Auth Server through Workers

    Let’s pretend I own a service and I want to grant other services access to my service on behalf of my users. The familiar OAuth 2.0 is the industry standard used by the likes of Google sign in, Facebook, etc. to communicate safely without inconveniencing users. Implementing an OAuth Authentication server is conceptually simple but a pain in practice. We can leverage the power of Cloudflare Workers

  • RustでJSONパーサーをフルスクラッチで実装する - Qiita

    この記事はRust Advent Calendar 2021 カレンダー2の1日目の記事です。 はじめに エンジニアは一度はJSONパーサーをフルスクラッチで実装したほうが良いという天啓を受け、RFC 8259を読みつつRustでJSONパーサーを実装してみました。パーサーの実装は面白く勉強になり満足しましたが折角なのでhands-on形式の記事にしようと思いこの記事を書きました。 Rustの基的な文法が分かる方向けに記事を書きましたが、これからRustを勉強してみたい方にもぜひ挑戦してほしいです。 複雑な機能は使っていないので、分からない文法や標準ライブラリは公式ドキュメントを読めば十分補完できると思います。 The Rust Programming Language 日語版 Rust by Example 日語版 monkey-json 記事ではRustでJSONパーサー(mo

    RustでJSONパーサーをフルスクラッチで実装する - Qiita
  • CloudflareのFull Stack Weekの発表まとめ - console.lealog();

    Cloudflare社は、定期的に「なんたらWeek」って感じでまとめてアップデートを発表する取り組みをやってるっぽく、今回のテーマはフルスタック! なんでもかんでもCloudflareでできるようにするよ!という強い意志を感じる発表たちだった。 Full Stack Week - The Cloudflare Blog 今回は実験的にTwitterでもまとめて流してたけど、やっぱりブログにまとめるほうがしっくりくるなってことで、改めて。 https://twitter.com/leader22/status/1460451057109127169 https://twitter.com/leader22/status/1460772775010791430 https://twitter.com/leader22/status/1461158193631936512 https://tw

    CloudflareのFull Stack Weekの発表まとめ - console.lealog();
  • OCamlのformat (型安全なprintf/scanf) の仕組み - 簡潔なQ

    OCamlのPervasives (デフォルトでopenされるモジュール) には、Printf/Format/Scanfで使うための format という型がある。 OCamlの特殊機能として、型推論時に文字列リテラルにstringではなくformatという型がつくことがある。 $ ocaml OCaml version 4.04.0+dev2-2016-04-27 # "%d";; - : string = "%d" # ("%d" : _ format);; - : (int -> 'a, 'b, 'a) format = CamlinternalFormatBasics.Format (CamlinternalFormatBasics.Int (CamlinternalFormatBasics.Int_d, CamlinternalFormatBasics.No_padding, C

    OCamlのformat (型安全なprintf/scanf) の仕組み - 簡潔なQ
  • IPv6を使ったLANを試してみよう (1/2)

    前回はIPv6アドレスの基フォーマットの紹介、WindowsでのIPv6の利用方法などを紹介した。続いては、LAN内でIPv6の通信を行なってみる。また、プラグ&プレイでIPv6アドレスが自動的に設定されることを確認しよう。 最小構成のLANを構築する 別のPCIPv6で通信を行なうために、図1のような最小規模のネットワークを構築する。ここでは便宜上、1台はWindows 7、もう1台はWindows XPとした。しかし、Windows Vistaが混ざっていたり、あるいは両方がWindows 7でも問題はない。また、IPv6はIPv4と共存できるよう設計されているので、それぞれのPCでIPv4が動いていても問題はない。とにかく、2台ともにIPv6を有効にして、それぞれのPCでipconfigを実行して、IPv6アドレスが割り当てられていることを確認しよう。 pingで導通を確認する

    IPv6を使ったLANを試してみよう (1/2)
  • 中国語文法 【54項目】

    中国語文法 まずは基的なレベルをしっかりと ここでは中国語を一人でゼロから学ぶ方を対象に、中国語文法のうち基的なレベルの内容を学んでいきます。大学の第二外国語で学ぶなら最初の2年間の内容に相当します。中国語検定試験でいうなら準4級~3級までの内容ですが、2級以上を目指す人にとっての文法の基礎でもあります。 基礎レベル54項目…「これだけは知っておきたい」内容がシンプルに 全部で54項目入っています。いずれも「これだけは知っておきたい」という内容をできるだけシンプルにコンパクトに収め、「文法の参考書は見ただけで嫌になる」という気分にならないよう考えました。また各項目にはすべて練習問題が入っていますので、読むだけでなくこの練習問題をやって内容がわかったかどうか確認しておいてください。 中上級レベルはより深く詳しく学ぶ では基礎の上の文法とは何かというと、さらに多くの文法項目があるというより

  • Activity Vocabulary

    Activity Vocabulary W3C Recommendation 23 May 2017 This version: https://www.w3.org/TR/2017/REC-activitystreams-vocabulary-20170523/ Latest published version: https://www.w3.org/TR/activitystreams-vocabulary/ Latest editor's draft: http://w3c.github.io/activitystreams/vocabulary/ Test suite: https://github.com/w3c/activitystreams/tree/master/test Implementation report: https://github.com/w3c/activ

  • ゲーム攻略メディア「神ゲー攻略」の記事配信システムを、五年の歴史がある SSG から二年の歴史がある lit-html による SSR にリプレイスした話 - CARTA TECH BLOG

    VOYAGE Lighthouse Studio の海老原 (@co3k) です。 ゲーム攻略メディア「神ゲー攻略」の記事は、これまで SSG (Static Site Generator; 静的サイトジェネレータ) を用いて構築、配信されていました。 このたび、従来の SSG を活用した記事配信の仕組みから、 SSR (Server Side Rendering) による仕組みにリプレイスしていくことにしました。 記事では、そうした新しい記事配信システムの詳細と、移行にまつわる工夫や苦労話などについてご紹介します。 [PR] エントリをお読みいただく前に そもそもリプレイス前の構成ってどんな感じだったの? というか「神ゲー攻略」って何? みたいなのが気になって記事が読み進められないかも〜とご心配の方に耳寄りな情報です。 実は「神ゲー攻略」の事業やシステム構成については『Enginee

  • Bitwarden and the Passwordless Revolution | Bitwarden Blog

  • 職場に乱入してきたセミを外に捨てる方法 - Qiita

    ■用意するもの ・空のゴミ箱(小さいのが良い) ・クリアファイル ■手順 1:セミが壁や天井に止まるのを待つ。 2:ゴミ箱をかぶせる 3:ゴミ箱と壁(または天井)の隙間にクリアファイルを差し込み、ゴミ箱の蓋にする。 4:そのまま外に持っていき、セミを解放

    職場に乱入してきたセミを外に捨てる方法 - Qiita
    mominis
    mominis 2021/10/17
    知見だ