タグ

ブックマーク / okapies.hateblo.jp (6)

  • ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive

    はじめに NFT って何ですか? ブロックチェーン上に記録された一意なトークン識別子をその保有者のアドレスと紐付ける情報、およびそれを状態変数として保持するスマートコントラクトのこと。 以上。 え、それだけ? はい。 「デジタル資産に唯一無二性を付与するインターネット以来の革命」なんじゃないの? これを読んでください: speakerdeck.com なるほど。ところで、この記事は何? いま話題の NFT について、NFT の標準仕様である EIP-721 の仕様書と、それを実装しているスマートコントラクトのソースコードから読み解けることを解説する。一般向けの解説とは異なる視点から光を当てることで、ソフトウェアエンジニアに「あ、NFT って単にそういうことだったのか」と理解してもらえるようにすることを狙っている。 また、NFT がソフトウェアとして具体的にどう実装されているかを知ることは、

    ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive
  • async/await は Promise を置き換えない - Okapies' Archive

    まとめ async/await 構文は、Promise で書ける処理のうち特定のケースしか表現できない 特定のケースとは、ある非同期処理の前処理と後処理がそれぞれ 1 個ずつの場合のみである async/await 構文は初心者に非同期処理を導入する際に適しているが、非同期処理を逐次処理として書けるという幻想を与えるので、どこかで知識をアップデートする機会を設けるべきである この記事はなに? 少しバズったのでまとめておこうかと。 「async/await があれば Promise なんて難しいものは要らない!」とか言ってるウブな子に、複数の API に並列にリクエストを投げて一つ以上成功した時だけ先に進む、みたいな問題を与えて愛でてみたい。— Yuta Okamoto (@okapies) 2020年12月11日 async/await は Promise のネストを手続き的なコードに見え

    async/await は Promise を置き換えない - Okapies' Archive
  • 「関数型プログラミングって何?」日本語訳 - Okapies' Archive

    この記事は、技術翻訳 Advent Calendar 2016 の15日目です(枠が空いてたので勝手にお邪魔してます)。前回(6日目)は、id:msyksphinz さんの「個人が趣味技術書を翻訳するという意義について」でした。 今回ご紹介するのは、昨年末に公開された Kris Jenkins さん (@krisajenkins) の "What Is Functional Programming?" です。日語訳の公開については著者から承諾済みです。また、London Functional Programmers meetup での同タイトルの講演動画が公開されています。 関数型プログラミングの考え方は、世間ではどうも小難しい話だと思われている節があります。その理由の一つに、議論の抽象度が(比較的)高いことが挙げられるでしょう。例えば、以前このブログで紹介した「なぜ関数プログラミング

    「関数型プログラミングって何?」日本語訳 - Okapies' Archive
  • 「なぜ関数プログラミングは重要か」を要約してみた(その1) - Okapies' Archive

    関数型プログラミング (functional programming) の利点を説く際によく持ち出されるのが、QuickCheck の開発者の一人である John Hughes が 1984 年に著した論文 "Why Functional Programming Matters" だ。「なぜ関数プログラミングは重要か」という題名で日語訳もされているので、読んだことがある人も多いと思う。 要旨としては、冒頭の1章および2章で述べられている「関数型プログラミングが優れているのは、高階関数と遅延評価という、モジュール同士を貼り合わせる強力な『糊』を持っているからだ」という話がほぼ全てで、以降はそれを具体例に基づいて説明する構成になっている。ただ、その具体例として「数値計算アルゴリズム」やら「ゲーム人工知能アルゴリズム」やらの話が延々と続くし、しかもコード例が Haskell の先祖にあたる

    「なぜ関数プログラミングは重要か」を要約してみた(その1) - Okapies' Archive
  • ReactiveX と「普通のやつらの上を行け」の意外な関係 - Okapies' Archive

    これは「関数型プログラマのための Rx 入門」の補足記事です(タイトル変えた)。 前編、後編とお送りしてきたこの記事だが、特に後編について「何を言ってるのか分からん」というコメントを何人かの方から頂いた。…なんというか、ごめんなさい。 繰り返しになるが、Rx を使う上で関数型プログラミングの知識は必ずしも必要ではないし、むしろ(関数型のコンセプトが基礎にあるのに関わらず)知らなくても使えるようになっている。ライブラリの作者たちは「過度な抽象化は害になる」ということを弁えているのだろう。 しかし、Rx と関数型プログラミングの関係を把握しておくと、非同期データストリームのビルディング・ブロックの作り方について大いに視野が広がるだろう。もし、貴方がこの記事の前提となる「関数型」のパラダイムに興味をお持ちなら、まずは「関数プログラミング実践入門」をお勧めしたい。 関数プログラミング実践入門 ──

    ReactiveX と「普通のやつらの上を行け」の意外な関係 - Okapies' Archive
  • マイクロサービスのための Tumblr 製フレームワーク "Colossus" - Okapies' Archive

    この記事は Scala Advent Calendar 2014 の 15 日目です。昨日は id:qtamaki さんの”「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる”でした。 今日は、先日に Tumblr が OSS 化を発表した Scala 製のノンブロッキング I/O (NIO) フレームワーク "Colossus" を紹介したい。”高性能なマイクロサービスを構築するためのフレームワーク”を謳っており、まだ OSS 化されて日が浅いものの Tumblr ではすでに production で使われているとされる。また、Colossus 自体がアクターフレームワーク Akka のアクターとして実装されており、それを使った独自のスレッドモデルを提供している点も興味深い。 Colossus Colossus: A New Service Framework

    マイクロサービスのための Tumblr 製フレームワーク "Colossus" - Okapies' Archive
  • 1