タグ

ichiroku11のブックマーク (1,300)

  • (翻訳) CoreCLRのソースコードを研究する(一) Objectとは

    .Netプログラマーたちは毎日Objectを扱っています。 もし彼らにObjectとはなんなのかを聞くと、おそらくObjectとはすべてのタイプの基底クラスだと答えるでしょう。 この答は正しいが不十分です。 この記事では、われわれはCoreCLRのソースコードを読んでObjectとはどんなものかをより深く理解できます。 そして最後はメモリー上のObjectの構造を実際に観察します。 Objectのメモリー構造 これからの内容をよく理解するために、まずはObjectのメモリー構造を表す画像をご覧ください: Objectは三つの部分に分かれています オブジェクトヘッダー(=シンクロブロック) (object header = sync block) lock(obj)またはMonitor.Enter(obj)が使うインディクス値、一部のビットフラグも保存されている タイプ情報を指すポインタ (

    (翻訳) CoreCLRのソースコードを研究する(一) Objectとは
  • 日本最大級のHTTP/2移行、TLS 1.3、そしてQUICについてヤフーに聞いてみた!

    最大級のHTTP/2移行、TLS 1.3、そしてQUICについてヤフーに聞いてみた! 白石 俊平(HTML5 Experts.jp編集長) こんにちは、編集長の白石です。 この記事は、9月24日に開催されるHTML5 Conference 2017に登壇するエキスパートに、予定しているセッションのトピックを中心に、様々な技術的なお話を伺おうというものです。セッションの内容をより深く理解する手助けになるだけでなく、記事単体でも面白く読んでいただけることを目指しています。 今回お話を伺ったのは、ヤフー株式会社にお勤めの大津繁樹さんと新部長則さんです。 ▲左から、ヤフー株式会社 大津繁樹さん、新部長則さん お二人のセッションは「大規模運用で見えるWebプロトコルの理想と現実、そして今後」(ルームB 13:20-14:00)です。 (現在HTML5 Conferenceは定員オーバーの状態で

    日本最大級のHTTP/2移行、TLS 1.3、そしてQUICについてヤフーに聞いてみた!
  • Windows 10 IoT Core(最新Creators Update版)で何ができるのか?

    最新Creators Update版のWindows 10 IoT Core(OS)は、どのような機能を持つのか? Raspberry Pi 3にインストールして試した結果を画像キャプチャして示しながら、その特徴と機能をまとめる。 安価な小型コンピューターであるRaspberry Pi(ラズベリーパリ、略してラズパイ)を活用すれば、お金を掛けずに手軽に電子工作が楽める。例えば、LEDを点滅させるような簡易なものから、ロボットのような機械の制御といったものまで、想像と工夫次第で「何でも」と言ってよいほどさまざまなモノが製作できる。特に、センサーなどから取得したデータをクラウドに送信して、蓄積されたビッグデータを分析・活用するIoT(Internet of Things)のデバイス製作には、お勧めできる。 もちろんIoT向きのエッジデバイスとしては、Arduino(アルデュイーノ)なども有力な

    Windows 10 IoT Core(最新Creators Update版)で何ができるのか?
  • bliki: CQRS

    CQRS stands for Command Query Responsibility Segregation. It's a pattern that I first heard described by Greg Young. At its heart is the notion that you can use a different model to update information than the model you use to read information. For some situations, this separation can be valuable, but beware that for most systems CQRS adds risky complexity. The mainstream approach people use for i

    bliki: CQRS
  • CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | POSTD

    書き込みと読み込みのどちらに力を入れているかは、ストレージエンジンによって異なります。たとえば昔ながらのリレーショナルデータベースは、外部キーなどの制約を使ってデータの整合性をうまく制御できるようになっています。一方でNoSQLデータベースは、スループットとスケーラビリティを確保するために、そういった組み込みのガードレールをはずしてしまいました。データ層においても、どちらか一方に特化した最適化をすることがあります。たとえば、あらかじめ計算済みの値を保持しておけば、「一日あたりのサイト訪問者数」などの読み込み操作を効率よく行えるでしょう。ストレージソリューションのメーカーはどこも、「うちのプロダクトならあらゆるニーズを満たせます」などと自社製品の機能を自慢します。しかし実は、昔ながらのCRUDモデルに沿ってストレージエンジンを選んでデータ層を設計した時点で、さまざまな関心事の間で何らかの妥協

    CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | POSTD
  • Home | BenchmarkDotNet

    BenchmarkDotNet helps you to transform methods into benchmarks, track their performance, and share reproducible measurement experiments. It's no harder than writing unit tests! Under the hood, it performs a lot of magic that guarantees reliable and precise results thanks to the perfolizer statistical engine. BenchmarkDotNet protects you from popular benchmarking mistakes and warns you if something

  • インターネット10分講座:DNSSEC - JPNIC

    今回の10分講座は、各TLDが対応を表明するなど導入の機運が高まりつつある、DNSSECについて解説します。 1. DNSSECの予備知識 1.1 DNSの仕組み まずはじめに、DNSではエンドユーザーのPCなど、DNSを利用するクライアントがどのようにドメイン名の情報を得るのか、その流れについて簡単に説明します(図1)。 図1:DNS 問い合わせ (1)クライアントから、所定のネームサーバに対し、問い合わせを依頼します。具体的には、ドメイン名に関する情報はリソースレコードという形式で管理されているので、www.nic.ad.jpというドメイン名のIPアドレスを知りたい場合にはwww.nic.ad.jpのAレコード(IPアドレスを格納するリソースレコード)を問い合わせます。 (2)依頼を受けたネームサーバは、問い合わせ内容を元に、ルートサーバ※1から委任をたどりながら順に問い合わせを行い、

  • インターネット10分講座:IPv6アドレス:

    今回の10分講座では、次世代のプロトコルとしてその普及が注目されているIPv6アドレスについて技術的見地から解説します。 1. インターネットとIPアドレス インターネットに接続している機器には、インターネット内で一意の識別番号(=IPアドレス)がつくのが基です(NAT等の機器を用いて、一つのIPアドレスを複数の機器で共有することはありえます)。インターネットを介して機器同士が通信をするためには、相手のIPアドレス宛にIPパケットを送ります。このIPアドレスは、現在広く利用されているIPv4(IPバージョン4)で32ビット幅、IPv6では128ビット幅となっています。 そもそもIPv6が開発された大きな理由は、IPv4においてIPアドレスが不足することが予想されたため、それを解決しようとしたことです。IPv4アドレスの絶対数は約43億個であり、インターネットが通信基盤の一つとなって世界中

  • WebGL 入門 - Web API | MDN

    次のページ » WebGL により、ウェブコンテンツで OpenGL ES 2.0 ベースの API を用いて、対応しているブラウザーではプラグインを使わずに、 2D および 3D の描画を HTML の canvas において行うことができます。 WebGL のプログラムは JavaScript で記述する制御コードと、コンピューターの Graphics Processing Unit (GPU) で実行するシェーダーコード (GLSL) で構成されます。 WebGL 要素は他の HTML 要素と混ぜられ、他のページ部品やページの背景と合成されます。 この記事では、 WebGL の基礎を紹介します。ここでは、 3D グラフィックに関して数学的に理解していることを前提とし、 3D グラフィックの概念自体の説明は行いません。 このチュートリアルで使用するコード例は、GitHub の webg

    WebGL 入門 - Web API | MDN
  • HTTP vs HTTPS Test

    HTTP vs HTTPS Test Encrypted Websites Protect Our Privacy and are Significantly Faster Compare load times of the unsecure HTTP and encrypted HTTPS versions of this page. Each test loads 360 unique, non-cached images (0.62 MB total). For fastest results, run each test 2-3 times in a private/incognito browsing session.

    HTTP vs HTTPS Test
  • HTTP/2 on IIS

    What is HTTP/2? HTTP/2 is a rework of how HTTP semantics flow over TCP connections, and HTTP/2 support is present in Windows 10 and Windows Server 2016. HTTP/2 is a major upgrade after nearly two decades of HTTP/1.1 use and reduces the impact of latency and connection load on web servers. The major advance of HTTP/1.1 was the use of persistent connections to service multiple requests in a row. In

    HTTP/2 on IIS
  • 「現場で役立つシステム設計の原則」はプログラミング設計の普遍的な教科書 - ビープラウド社長のブログ

    のDDD(ドメイン駆動設計)界の父ともいえる増田亨さんが著した「現場で役立つシステム設計の原則」を頂いたので、早速拝読させていただきました。 書をおすすめしたい人 書は、システム開発で以下のような問題を抱えている人におすすめです。 既存システムのソースコードの可読性が低く、理解に時間がかかる 機能追加・改修時の影響範囲調査に時間がかかる 機能追加・改修時の工数が予想以上にかかる テストコードが書きにくいソースコードになりがち 機能を追加・改修時の影響範囲が大きくなりがちで、テスト工数がかさんでいる デグレの確認に気を使い、多くの時間をかけている 不具合が発生したときに、調査・解決に時間がかかってしまう 新しいメンバーがプロジェクトに参画した時に、業務知識を伝えるのに多くの手間がかかる これらの問題のために、生み出す価値以上に、仕事時間が増えている このような問題を解消し、変更に強い

    「現場で役立つシステム設計の原則」はプログラミング設計の普遍的な教科書 - ビープラウド社長のブログ
  • The Blog | Welcome to Adobe Blog

    The Blog | Welcome to Adobe Blog アドビのブログでは、Creative Cloud、Document Cloud、Experience Cloudの最新情報や役に立つ情報を紹介しています。

    The Blog | Welcome to Adobe Blog
  • The Blog | Welcome to Adobe Blog

    The Blog | Welcome to Adobe Blog アドビのブログでは、Creative Cloud、Document Cloud、Experience Cloudの最新情報や役に立つ情報を紹介しています。

    The Blog | Welcome to Adobe Blog
  • The Blog | Welcome to Adobe Blog

    The Blog | Welcome to Adobe Blog アドビのブログでは、Creative Cloud、Document Cloud、Experience Cloudの最新情報や役に立つ情報を紹介しています。

    The Blog | Welcome to Adobe Blog
  • CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | POSTD

    (編注:2016/7/29、頂いたフィードバックを元に記事を修正いたしました。) CSS Variables、もっと正確に言うとCSSカスタムプロパティが、Chrome 49でサポートされました。CSS Variables は、CSSで値の繰り返しを減らすのに有効です。また、テーマの切り替えなどの実行中の強力なエフェクトや、将来のCSS機能をもしかすると拡張/ポリフィルすることにも役立ちます。 CSSの散乱 アプリケーションを設計するとき、アプリケーションの一貫した外観を維持するために再利用される独自のカラーセットを設定するのが一般的です。残念ながら、このようなカラー値をCSSに何度も何度も繰り返し設定することは面倒なだけでなく、エラーが発生しやすくなります。カラーを何カ所か変更する必要がある場合、思い切って、全部「検索して置換」することもできますが、大きなプロジェクトでは、危険な事態を招

    CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | POSTD
  • 僕がネイティブなCSS変数にわくわくする理由

    数週間前、CSS変数(より正確にはCSSカスタム・プロパティ)が、Chrome Canaryの「試験運用版のウェブ プラットフォームの機能」フラグ1を有効にすることで利用できるようになりました。 Chromeエンジニアであるアディ・オスマーニがそのリリースについてはじめてツイートしたとき、多くの否定的で、敵対的で、懐疑的な声が寄せられました。その量は驚くべきものでした。少なくともCSS変数にわくわくしいてる僕にとっては。 これらの反応をざっと見渡したところ、苦情の99%は次の2つの点についてのものだとわかりました。 構文が汚くて冗長。 Sassの変数がすでにあるじゃん。興味なし。 もちろん僕もあの構文は好きじゃありません。それは認めます。でも、あれがいい加減に決定されたものではないってことは理解しておくべきです。CSSワーキング・グループのメンバーは、CSSの文法と互換性があり、かつ将来

    僕がネイティブなCSS変数にわくわくする理由
  • .NET Standardとは

    .NET環境ごとにベースクラスライブラリがあり、その上にさらに個別にさまざまなフレームワーク/ライブラリが構築されている(もちろん、実際には.NETコードを実行可能な環境はこの他にも多数存在している)。.NET Standardはこの図にあるベースクラスライブラリ部分の仕様を策定して、統一的なものにしようという試みだ。 正確には、.NET Standardは「全ての.NET環境(.NETプラットフォーム)が実装すべきAPIセット」を示すものであり、.NET Frameworkや.NET Coreといった個々の.NET環境がこれに従ってAPI群を実装していくことで、「特定のバージョンの.NET Standard」をターゲットとする全ての環境で「ベースクラスライブラリレベルでのバイナリ互換性」が実現される。 さまざまな.NET環境で共通に使用できるコードを実装する仕組みとしては、これまでPCL

    .NET Standardとは
  • Three.jsを使っていると「問題が起きたため、このWebページを再度読み込みました。」と出る - Qiita

    iPadでThree.jsを使ったコンテンツを開発していたのですが、しばらくすると「問題が起きたため、このWebページを再度読み込みました。」というメッセージが表示されてページが再読み込みしてしまう現象に遭遇しました。 調べてみたところ、たくさんの画像を取っ替え引っ替え読み込んでいるうちにだんだん動作が重くなり落ちるという現象だということがわかりました。おそらくテクスチャーを切り替える時に前のテクスチャーがメモリ上に残り続けてしまってだんだん空きメモリがなくなっていくのだろうなと思い、実験してみました。 <html> <head> <title>My first Three.js app</title> <style> body { margin: 0; } canvas { width: 100%; height: 100% } </style> </head> <body> <!--

    Three.jsを使っていると「問題が起きたため、このWebページを再度読み込みました。」と出る - Qiita
  • Simple Injector

    Simple Injector is an open source Dependency Injection (DI) library for .NET Vision The Simple Injector Contributors are passionate software designers and our DI library supports our approach to software development Best Practice We promote best practice and have designed Simple Injector to steer the developer toward the pit of success