タグ

2020年4月6日のブックマーク (9件)

  • Real World HTTP 第2版

    TOPICS Web 発行年月日 2020年04月 PRINT LENGTH 496 ISBN 978-4-87311-903-8 FORMAT PDF EPUB 書はHTTPに関する技術的な内容を一冊にまとめることを目的とした書籍です。HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。GoJavaScriptによるコード例によって、単純なHTTPアクセス、フォームの送信、キャッシュやクッキーのコントロール、Keep-Alive、SSL/TLS、プロトコルアップグレード、サーバープッシュ、Server-Sent Events、WebSocketなどの動作を理解します。 第2版ではHTTP/3の規格化など、初版の発行後に起きたウェブ技術への変化にともなう内容のアップデ

    Real World HTTP 第2版
  • box-shadowだけじゃない!CSSでできる色々な影の表現と意外に知らない落とし穴 - ICS MEDIA

    box-shadowだけじゃない!CSSでできる色々な影の表現と意外に知らない落とし穴 ウェブページのデザインやコーディングをしている人なら、誰でも一度は影をつけたことがあるでしょう。一方でその影にどれほどの表現や技術のバリエーションがあるか、意識したことのある人は少ないかもしれません。 影を付ける方法としてはCSSのbox-shadowが一般ですが、そのほかにもいくつもの技術・手法が存在します。ウェブの世界に限らず、年々変化するデザイントレンドにおいても影の扱いは重要なテーマです。 たとえば少し前に流行したロングシャドウや今年のトレンドとも言われるNeumorphism(ニューモーフィズム)など、ユニークな表現には影のテクニックを活用できるものがたくさんあります。 ▼ CSSで作成したロングシャドウ(画像上部)とニューモーフィズム(画像下部)の例: デモを別ウインドウで表示 デモのソース

    box-shadowだけじゃない!CSSでできる色々な影の表現と意外に知らない落とし穴 - ICS MEDIA
  • IO モナドと副作用 - Haskell-jp

    純粋関数型プログラミングで副作用を扱う方法Posted by Mizunashi Mana on April 05, 2020 Haskell は他のプログラミング言語には見られない特徴を多く持っている。その中の1つが純粋性だ。Haskell は純粋関数型プログラミング言語であることを、売りの1つにしている。しかし、純粋性は多くの場合表現力の縮小を招く。ところが Haskell は、IOモナドの導入により、通常のプログラミング言語と変わらぬ表現力を持てるようになっている。これは、とても驚くべきことだ。しかし、同時にこれは Haskell 入門者にとって、大きな混乱を招いているようだ。 今回は、そもそも純粋性とはなんなのか、なぜ他の言語は純粋性を担保できないのか、そして Haskell はどうやって IO モナドにより純粋性を担保しつつ他の言語と変わらない表現力を持てるようにしているのかにつ

    IO モナドと副作用 - Haskell-jp
  • Introduction - Rust By Example 日本語版

    Rust by Example 日語版 Rust は安全性、速度、並列性にフォーカスした現代的なシステムプログラミング 用のプログラミング言語です。 ガベージコレクション無しでメモリ安全であることが、これを可能にしています。 Rust by Example(RBE)はRustの実行可能なサンプルスクリプト集で、ここではRustの様々な コンセプトと標準ライブラリを紹介していきます。 この例をより活用するためにはRustをローカルにインストールし、公式ドキュメントをチェックすることをおすすめします。 興味がある方はこのサイト自体のソースのチェックもどうぞ。 訳注: 日語版のソースコードはこちらにあります。 それでははじめましょう! Hello World - お決まりのHello Worldプログラムから始めましょう。 基データ型 - 符号付き整数や符号無し整数、その他の基データ型に

  • ソフトウェアのもっとも重要な品質は発展性 - ソフトウェア設計を考える

    ソフトウェアでもっとも重視すべき品質は「発展性」なんだと思う。 機能要求や非機能要求は、時間とともに変化する。その要求の変化に対応してソフトウェアを発展させていける能力、つまり発展性こそがソフトウェアの価値を大きく左右する。 発展性に問題があり変化ができないソフトウェアと、発展性に優れ変化と成長を続けやすいソフトウェアの価値の差ということだ。 発展性の価値 顧客のニーズは変化する。また、市場の競合関係も変化する。そういう事業環境の変化にあわせて、ソフトウェアにも変化を続ける能力が求められている。 また、顧客のニーズや市場環境の変化がゆるやかだとしても、事業活動をすれば組織は経験を通じて学び成長していく。開発チームに限っても、ソフトウェア開発運用の経験を積むことで、開発の考え方とやり方にさまざまな学びと成長がある。そうやって学んだ知識を適切にかつ迅速にソフトウェアに反映できるほど、事業により

    ソフトウェアのもっとも重要な品質は発展性 - ソフトウェア設計を考える
  • 「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録

    データの暗号化はインターネットでサービスを提供する企業には欠かせませんが、パフォーマンスの低下を嫌って自社サーバーのディスクに暗号化を施していない場合もあります。そんなディスクの暗号化によるパフォーマンス低下を改善した事例をCloudflareエンジニアであるIgnat Korchagin氏が公開しています。 Speeding up Linux disk encryption https://blog.cloudflare.com/speeding-up-linux-disk-encryption/ ストレージの構造は「アプリケーション」「ファイルシステム」「ブロックサブシステム」「物理ストレージ」といった層に分けることができ、ネットワークにおけるOSI参照モデルに似ているとのこと。高次元の層に対して低次元の層での処理は抽象化されており、それぞれの層で暗号化が可能です。通常、高次元の層に

    「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録
  • Notyf: A minimalist JavaScript library for toast notifications.

    A minimalistic JavaScript library for toast notifications. Responsive, A11Y, dependency-free. Tiny (~3KB). Easy integration with React, Angular and Vue.

    Notyf: A minimalist JavaScript library for toast notifications.
  • jQueryを使わずにスライドメニューを実装しよう

    2022年4月27日 CSS, JavaScript スマートフォンのアプリやモバイルサイズのWebサイトでよく見かけるスライドメニュー。どうも「jQueryがないと実装できない」と思っている人がちょこちょこいるようなので、簡単なJavaScriptで実装できるんだよーというのを記事にしてみます。 ↑私が10年以上利用している会計ソフト! このようにボタンをクリックすると横からひゅるっと出てくるメニューを作っていきます。 1. メニューを開いた状態を作成 まずはHTMLCSSで「Menu」ボタンをクリックしてメニューが開いている状態を作成します。メニュー部分は position: absolute; で位置を指定しています。また、メニュー項目に white-space: nowrap; を加えることで、スライドさせた時に日語が変に改行されるのを防ぎます。それ以外は色や線、余白の指定など

    jQueryを使わずにスライドメニューを実装しよう
  • Big Sky :: Go言語で Lisp 処理系を作った。

    1週間ほど前の深夜、ふと Go で連結リスト構造を書いていたら次第に car/cdr 形式になってしまい、気付いたら手が滑って Lisp 処理系を作り始めてしまいました。 なぜかこんな時間から突然 lisp を書き始めてしまった。 — mattn (@mattn_jp) March 26, 2020 初日は深夜だったのでパーサを書いた所で終了。次の日の夕方には四則演算と FizzBuzz が動きました。実は Lisp 処理系を書くのは人生でたぶん4回目くらいで、前回はC言語で書きました。 GitHub - mattn/cisp: Minimal Lisp Interpreter https://github.com/mattn/cisp 今回のルールとして「過去の自分の実装や他の実装は見ない」というオレオレルールを作ってしまったので幾分時間が掛かってしまった様に思います。テストコードはさす

    Big Sky :: Go言語で Lisp 処理系を作った。