2015年3月6日のブックマーク (11件)

  • C#の主要インターフェース解説:IObservable<T>、IObserver<T> - がりらぼ

    IObservable<T>、IObserver<T> この2つのインターフェースはクラスのオブジェクトどうしの監視と通知を実現するインターフェースです。 LINQのような文法で非同期処理を書くことができるReactive ExtensionsはIObservable<T>とIObserver<T>によって実現され、RXを理解する上でも非常に重要なインターフェースであるのですがその分理解が難しく、監視する人(IObserver)と監視される人(IObservable)、さらには監視者の監視を解除する人(IDiposable)の3つの概念を理解するのは非常に難しいです。 そこでブログでは、労働者と監視者の関係を用いて、簡単なサンプルコードと一緒に解説していきたいと思います。 登場人物紹介 まず、この解説物語には3人の登場人物が登場し、それぞれ以下のインターフェースを実装します。 労働者「M

    C#の主要インターフェース解説:IObservable<T>、IObserver<T> - がりらぼ
    crist18
    crist18 2015/03/06
    “監視する人(IObserver)と監視される人(IObservable)、さらには監視者の監視を解除する人(IDiposable)の3つの概念を理解する”
  • 触れてみようUIデザインツールExpression Blend

    はじめに Visual Studio 2008(以下、VS 2008)では追加インストールなしで、WPFアプリケーションを作成できます。しかし、格的なデザインを行うには、Expression Blend(以下、Blend)の利用は不可欠です。 稿ではBlendとVS 2008を使ったアプリケーション開発にフォーカスして紹介します。WPF/XAMLに関する詳細は割愛しますので、これらについては、Visual Studio 2008で標準搭載されたWindows Presentation Foundation、WPF(Windows Presentation Foundation)+XAML入門 前編、WPF(Windows Presentation Foundation)+XAML入門 後編などを参考にしてください。 これまでの記事 第1回:新しい統合開発環境 Visual Studio

    触れてみようUIデザインツールExpression Blend
    crist18
    crist18 2015/03/06
    Expression Blend デザイナとプログラマが一緒に触る
  • データ バインディングの概要 - WPF .NET

    ターゲット プロパティは、依存関係プロパティである必要があります。 ほとんどの UIElement プロパティは依存関係プロパティで、ほとんどの依存関係プロパティは、読み取り専用プロパティを除き、既定でデータ バインディングをサポートします。 依存関係プロパティを定義できるのは、DependencyObject から派生した型だけです。 すべての UIElement 型は DependencyObject から派生します。 バインディング ソースは、カスタム .NET オブジェクトに限定されません。 図では示されていませんが、バインディング ソース オブジェクトになりうるのは、カスタム .NET オブジェクトだけではないことに注意してください。 WPF データ バインディングでは、.NET オブジェクト、XML、および XAML 要素オブジェクト形式のデータがサポートされます。 いくつかの

    データ バインディングの概要 - WPF .NET
    crist18
    crist18 2015/03/06
    データバインディング
  • RxJavaでAPIクライアントを作る - Qiita

    RxJavaのモチベーション HTTPクライアントは今ならOkHttp一択なのですが、APIクライアントには非同期に通信をおこなってほしいものですが、非同期処理をおこなうAndroidフレームワークのAsyncTaskやAsyncTaskLoaderは正直使いやすいとは言えません。Volleyは設計は綺麗で拡張もしやすかったのですが、Googleとしての立ち位置がよく分からなかったので OkHttp + 非同期処理を担う何か を探していました。 それでPromiseライクなBoltsと迷ったのですが、個人的な好みでRxJavaを採用してみました。 APIクライアントの設計 以前書いたもの の参考実装としてライブラリを書いてみました。 Octodroid リソースへのアクセスの仕方は以下のようになっています。 // GET /users/rejasupotaro GitHub.client(

    RxJavaでAPIクライアントを作る - Qiita
    crist18
    crist18 2015/03/06
    Rx API
  • 作って分かるJavaScriptでデータバインド - Qiita

    はじめに JavaScriptにおけるデータバインドの実装方法を双方向データバインドライブラリのKnockoutJSのソースコードを読み、自分で以下のような最低限の機能を実装をしていきます。 変更をsubscribeできるobservableオブジェクト 他のobservableオブジェクトの値の変更を検知して、自身の値を変えるdependentObservableオブジェクト 上記の機能を実現するために、KnockoutJSの以下のオブジェクトの仕組みを解析しました。 ko.subscribable ko.observable ko.dependencyDetection ko.dependentObservable(ko.computed) この記事のソースコードはgithubで提供されています。 https://github.com/tenntenn/js-binding-hunds

    作って分かるJavaScriptでデータバインド - Qiita
    crist18
    crist18 2015/03/06
    重要な気がするデータバインド
  • 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳

    Web の場合は View と Controller の違いははっきりしてます。 View は html ページとその作成を担当します。 CGI は アドレスとパラメーター(アドレスの ? の後など)を受け取り、処理を行います。 その受け取り部分が Controller です。 Model と View ではなく、なぜ MVC としたのでしょうか ? 『 GoF 』 では Controller を分ける利点をいくつか挙げられています。 キーボードの応答を変えたり、メニューからの呼び出しに変更するとき、表示方法を変更しなくていい。 入力イベントを無視するといったことをコントローラーのインスタンスの入れ替えで可能。 その他にも "View を入れ替えれば、 PC アプリ、 Web アプリでも使えるように" という理由もあります。 ちょっと無理そうな話ですが、例えば、 PC アプリが次のような

    crist18
    crist18 2015/03/06
    MVVM
  • いまさら聞けない、IDisposableインターフェイス - Bug Catharsis

    マネジーリソースとアンマネージリソース.NET Frameworkで扱うリソースの種類は、大きく2つに分けることができる。 CLRが管理するマネージリソース(GCヒープ)と、CLRが管理しないアンマネージリソース。 ガベコレによってオートマチックに解放されるのがマネージリソースで、 開発者が責任を持ってマニュアル管理しなければならないのがアンマネージリソース。 マイクロソフトから提供されているクラスについては、ガベコレがマネージリソースを回収するときに、 アンマネージリソースの解放も一緒に行われるが、それは、そのようにそのクラスが実装されているからにすぎない。 自分でアンマネージリソースを扱った実装をするクラスについては、 ガベコレはあくまでマネージリソースしか回収しないので、自らの手でアンマネージリソースを 解放してあげるように実装しなければ、いつまでたってもアンマネージリソースは解放さ

    いまさら聞けない、IDisposableインターフェイス - Bug Catharsis
    crist18
    crist18 2015/03/06
    IDisposable
  • MacBookの容量を最大384GB拡張できる「microSSD」

    デザイン的にもいい感じ~。 いろいろ使っていると、すぐに手狭になってしまうMacBook AirやMacBook Proの容量拡張をmicroSDカードで簡単に実現できてしまう、夢のアダプター「microSSD」がKickstarterに登場して人気を集めていますよ! オーストラリアからArthur Kuo氏が資金集めに乗り出した「microSSD」には、SDカードスロット版とUSBポート版の2モデルが用意されており、いずれもMacBookにマッチするアルミニウムボディー仕上がり。ほとんど挿していても気にならない出っぱり具合です。 それでいて、1個のmicroSSDへ最大128GBのmicroSDカードをセットして、3個同時に使用すると一気に384GBもストレージ容量をアップできちゃいます。 すでに完売した早期入札者向け特典を別にしても、12豪ドル(約1,120円)でSDカードスロット版が

    MacBookの容量を最大384GB拡張できる「microSSD」
    crist18
    crist18 2015/03/06
    MicroSSD
  • Vimスクリプト基礎文法最速マスター - 永遠に未完成

    流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス

    Vimスクリプト基礎文法最速マスター - 永遠に未完成
    crist18
    crist18 2015/03/06
    vim スクリプト
  • Open Tech Press | Vimマスターへの道

    viクローンのVimは、Emacsと並ぶオープンソース・エディタの巨頭である。このエディタは、単にviのオープンソース版というだけではなく、スクリプトやプラグインによる高い拡張性といったオリジナルのviにない特徴も備えている。しかし、viから引き継いだ独特の操作法から、Vimを敬遠している向きも少なくないようだ。そこで以下では、Vimの操作を習得する、あるいはVimをもっと活用するためのハウツーを紹介する。 2007年11月13日更新:中級編に「Vimのステータスラインをより有効に活用する設定法」を追加 初級編 Vim 最初の一歩 Vimの簡単な始め方 2007年04月13日 Vimの無数の機能と柔軟さはベテランのユーザにとっては大きな利点であるが、初心者にとっての敷居を高くしてしまっているというのも事実だ。あなたがもし、Vimを使いたいとずっと思っていながらも初めて試したときにうんざりし

    Open Tech Press | Vimマスターへの道
    crist18
    crist18 2015/03/06
    vim マスター!!!!!
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

    crist18
    crist18 2015/03/06
    Omni Sharp