タグ

2016年8月24日のブックマーク (48件)

  • オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

    2016年9月2日紙版発売 2016年9月2日電子版発売 Sandi Metz 著,髙山泰基 訳 B5変形判/304ページ 定価3,608円(体3,280円+税10%) ISBN 978-4-7741-8361-9 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 オブジェクト指向設計の名著として名高い“Practical Object-Oriented Design in Ruby”,待望の翻訳版!使いこなせるようになるととても便利なオブジェクト指向ですが,「なんとなく」の理解で使っていると,大きな罠にかかってしまいます。書は,保守性を上げて運用コストを下げるア

    オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
    quodius
    quodius 2016/08/24
  • オーブントースターハックの楽しさと難しさ - Qiita

    この記事はおうちハックAdvent Calendar 2015の3日目の記事です。 昨日の記事はbohemian916さんの我が家のおうちハックの現状でした。HueやNetatmoをIFTTTなどの仕組みでつないで、めちゃくちゃ未来感あふれるおうちを作られています。「2日間体重計に乗らないと、Facebookにその旨を投稿する」とか、ストイックで素敵です。実際に日々使われているのは素晴らしいですね。 僕は普段はBluetooth関連機器やロボットなどを作っています。仕事が忙しいと事もコンビニ弁当とかが多くなり、荒んできますよね。そこで、気分転換がてら楽しい事ができるようなおうちハックができないかと思い、オーブントースターをハックしてみました。 なお、オーブントースターのハックは火事に繋がるリスクも有りますので、ハックの際は無茶をしないようにしましょう。 オーブントースターをハックしてみ

    オーブントースターハックの楽しさと難しさ - Qiita
    quodius
    quodius 2016/08/24
  • WPF ViewModelから別のViewを開くには - Qiita

    アプリケーションを開発していると、あるウィンドウから別のウィンドウを開くというのはよくあるケースです。しかし、WPFでMVVMパターンを利用して開発していると、簡単そうに思えることでもちょっと頭を悩ませてしまいます。 例えば、 (ViewModel) MainViewModel => (View) MainWindow (ViewModel) SubViewModel => (View)SubWindow という関係で、MainWindowのボタンクリックでSubWindowをモーダルで開くとします。 ViewModelから直接サブウィンドウのViewを生成する 何も考えないでコードを書いたら以下のようになりました。 class MainViewModel : ViewModelBase { public ICommand OpenSubWindowCommand { get; priva

    WPF ViewModelから別のViewを開くには - Qiita
    quodius
    quodius 2016/08/24
  • MVVMでメッセンジャーを使わずにダイアログを表示する(MVVM Dialog Behaviorライブラリ提供)

    □導入 MVVMでのダイアログ表示では、メッセンジャーを使用することが一般的となっています。しかし、メッセンジャーは理解が難しく、扱い方が煩雑であるために、MVVMを使用すべきでないという理由のひとつにさえなっていました。 私自身、MVVM自体は使える技術だと思っているものの、メッセンジャーを使用してダイアログ表示を行うこと自体については疑問を感じており、 以前、私のブログにて、メッセンジャーを使わずにシンプルにダイアログ表示を行う方法を「MVVMでダイアログ表示のためにメッセンジャーを使用するのはおかしいのでは?」と題してご紹介もしましたが、あくまでこの時点では方向性の提案にとどまるものでした。 しかし、この度「MVVM Dialog Behavior(http://mvvmdialogbehavior.codeplex.com)」と呼ぶ、ダイアログ表示のためのライブラリを作成いたしまし

    quodius
    quodius 2016/08/24
  • 添付ビヘイビアを作る - SourceChord

    WPFやSilverlightなどのプラットフォームで、昔からよく使われていたテクニックで添付ビヘイビアというものがあります。 この手法は、後にBlendSDKにも取り込まれ、Behaviorという共通の実装がSDKに導入されています。 ですが、ここはまず、自分で添付ビヘイビアを作ってみるところから始めてみたいと思います。 以下を参考にやってみました。 [WPF][C#]添付動作(AttachedBehavior) M'sLabo report: 添付ビヘイビアでドラッグ&ドロップを簡単実装 添付ビヘイビアの作り方 添付ビヘイビアはザックリと以下3ステップで作れます。 ビヘイビア定義用のクラスを作成する 添付プロパティを作成 「propa」と入力して、コードスニペットを使うと簡単に作成できます。 添付プロパティの変更イベントで、対象のコントロールに目的の処理を付加する 添付プロパティが設定

    添付ビヘイビアを作る - SourceChord
    quodius
    quodius 2016/08/24
  • XAMLでズルいデザイン~その4・ズルいグラデーション・配色~ - SourceChord

    今度はグラデーションと配色についてです。 参考リンク ズルいデザインテクニック2013 + セミフラット version // Speaker Deck ズルいグラデーション ズルいグラデーションと説明されている、うっすらとしたグラデーションを作成するマークアップ拡張を作りました。 コードは以下の通り。 [MarkupExtensionReturnType(typeof(LinearGradientBrush))] public class ZuruiGradientBrushExtension : MarkupExtension { public ZuruiGradientBrushExtension() : this(Colors.Transparent, 0.95f, 90) { } public ZuruiGradientBrushExtension(Color baseColor

    XAMLでズルいデザイン~その4・ズルいグラデーション・配色~ - SourceChord
    quodius
    quodius 2016/08/24
  • ウィンドウをフルスクリーン化する添付ビヘイビア - SourceChord

    以前↓のような記事を書きましたが、このようにウィンドウをフルスクリーン化する処理を添付ビヘイビアにしてみました。 WPFでフルスクリーン表示 - SourceChord 添付ビヘイビアの実装は以下の通り。 FullScreenAttachedBehavior.cs public class FullScreenAttachedBehavior { class BackupState { public WindowStyle WindowStyle { get; set; } public WindowState WindowState { get; set; } public bool TopMost { get; set; } } public static bool GetIsFullScreen(DependencyObject obj) { return (bool)obj.Get

    ウィンドウをフルスクリーン化する添付ビヘイビア - SourceChord
    quodius
    quodius 2016/08/24
  • WPF/UWP用にBootstrap風Gridレイアウトを行うライブラリを作ってみた~ResponsiveGrid~ - SourceChord

    超定番cssフレームワークBootstrapのグリッドシステムのようなレイアウトをXAML環境で行うためのライブラリを作ってみました。 WPF/UWPともに、Nugetから以下のパッケージをインストールすることで使えます。 NuGet Gallery | ResponsiveGrid 0.3.1 (WPF/UWPともに共通のパッケージとなっています。) NugetのGUIでResponsiveGridで検索すれば出てきます。 Nugetのパッケージマネージャ コンソールから、以下のコマンドでもインストールできます。 Install-Package ResponsiveGrid 最初はWPF向けに作り始めたけど、こういうレスポンシブなレイアウトは、デスクトップとモバイルを共通で開発できるUWPのような環境の方が需要ありそうなんで、WPFとUWP両対応なライブラリにしてみました。 使い方 準備

    WPF/UWP用にBootstrap風Gridレイアウトを行うライブラリを作ってみた~ResponsiveGrid~ - SourceChord
    quodius
    quodius 2016/08/24
  • C# 6 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

    「C# 5.0」正式リリースの後、「.NET Compiler Platform」の開発が始まり、 当初は既存の C# コンパイラーとの互換性を保つことが優先されていて、しばらく C# の新機能実装が止まっていました。 これまでだと、C# 4.0の正式版がリリースされた瞬間に C# 5.0 のプレビュー版が提供されたりといったように、ほぼ切れ目なく新機能の発表がありましたが、 今回、C# 6 は、 5.0 から2年ほどの空きができました。 しかし、「.NET Compiler Platform」が完成したことで、 かかるコストの割には効果が薄いということでこれまで実装されてこなかったような、ちょっとした便利機能が実装されやすくなりました。 結果として、C# 6 では(C# 5.0 の時の非同期メソッドのような)大きな機能はない代わりに、 (C# 3.0 の時にも似たような)細々とした便利な

    C# 6 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
    quodius
    quodius 2016/08/24
  • WPFでの入力値検証・まとめ - SourceChord

    今まで何回かに分けて書いてきたWPFのバリデーション関係ネタについて、自分でもわりと見返すので、この入力値検証関連の記事をまとめておきます。 あと、各種バリデーション方法のサンプルコード一式を、以下のリポジトリに上げておきました。 色々書いたブログの記事とは微妙にリンクしていないサンプルですが・・・ まぁ、この手のバリデーション処理を実装するときには、少しは役に立つのでは、、、と思います。 サンプルの説明 Example1_WithException・・・例外を使った方法 Example2_ValidationRule・・・ValidationRuleを使った方法 Example2_1_ErrorTemplate・・・ErrorTemplateでエラー時の表示内容をカスタマイズ Example3_IDataErrorInfo・・・IDataErrorInfoを使った方法 Example_I

    WPFでの入力値検証・まとめ - SourceChord
    quodius
    quodius 2016/08/24
  • GitHub - sourcechord/WPFSamples: WPF Sample Applications.

    quodius
    quodius 2016/08/24
  • IDataErrorInfoの汎用的な実装 - かずきのBlog@hatena

    INotifyDataErrorInfoの実装は、前の記事でやりました。 http://d.hatena.ne.jp/okazuki/20100418/1271594953 ただ、INotifyDataErrorInfoはSilverlight4にしかないので、WPF4だとIDataErrorInfoとかプロパティでの例外で入力値の検証をしないといけません。 とりあえずIDataErrorInfoを汎用的?に実装するとしたらというのをでっちあげてみました。Errorプロパティがちょっと悩みどころですが・・・ using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; na

    IDataErrorInfoの汎用的な実装 - かずきのBlog@hatena
    quodius
    quodius 2016/08/24
  • WPFにもx:Bind欲しいよね - SourceChord

    UWPで追加されたx:Bind。とても便利ですね。 で、この機能WPFにも欲しい!!と思ったりするわけです。 VisualStudioへの要望などを投票する、↓のサイトを見てみると、WPFにx:Bind追加してほしいって要望にたくさんの投票が集まってます。 http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/7810488-implement-x-bind-for-wpf WPFにもx:Bind欲しいって方は、ここで投票しておくとよいかもです。

    WPFにもx:Bind欲しいよね - SourceChord
    quodius
    quodius 2016/08/24
  • VMからウィンドウを閉じる添付ビヘイビア - SourceChord

    MVVMな設計でアプリを作るときの、よくある悩みとして、 VMから画面を閉じる処理をどうやればいいんだ?? というのがあります。 これって、添付ビヘイビアを使えばスッキリ書けるのでは、、、と思い、 ウィンドウを閉じる動作を付加する添付ビヘイビアを作ってみました。 仕組み 仕組みは上の図のような感じ。 bool型のCloseプロパティを持った添付ビヘイビアを作成 このプロパティがtrueになると、ウィンドウを閉じる VMにウィンドウの表示状態を示すCloseWindowプロパティを作成 このプロパティと、添付ビヘイビア側で作成したCloseプロパティをバインド VMからウィンドウを閉じたりしたい ⇒「ウィンドウを開いているか/閉じているか」というビューの状態をVMに持たせる。 というのはMVVMの設計として自然な流れかなぁ、と思います。 コード この添付ビヘイビア自身と、このビヘイビアを使用

    VMからウィンドウを閉じる添付ビヘイビア - SourceChord
    quodius
    quodius 2016/08/24
  • Ito Blog » Blog Archive » メモリリークのまとめ(WeakEvent パターン)

    http://blogs.bitlan.net/ito/?p=1666 Ito Blog ≫ Blog Archive ≫ メモリリークのまとめ(管理されたリソース) http://blogs.bitlan.net/ito/?p=1672 Ito Blog ≫ Blog Archive ≫ メモリリークのまとめ(管理外のリソース) http://blogs.bitlan.net/ito/?p=1682 Ito Blog ≫ Blog Archive ≫ メモリリークのまとめ(Dispose Finalize パターンと応用) http://blogs.bitlan.net/ito/?p=1688 Ito Blog ≫ Blog Archive ≫ メモリリークのまとめ(Event Handler の削除忘れ) の続きです。 前回は、Event Handler の削除忘れによる問題

    quodius
    quodius 2016/08/24
  • Visual Studioでお手軽にメモリリーク調査♪ - atsukanrockのブログ

    Visual Studio 2013 (VS) の "Performance and Diagnostics Hub" が超いいです。とうわけでこの記事は自分向けのリンク集です。 .NETアプリのメモリリーク調査には従来からWinDbgという方法がありましたが、WinDbgはとても手軽とは言えません。Performance and Diagnostics Hubなら、VSでデバッグ実行しながら好きな時にメモリ状態のスナップショットを取れます。スナップショットを取る前には好きな時にGCを実行できます。スナップショットには、メモリ使用量はもちろん、オブジェクト型毎のインスタンス数が記録されます。これらの値はスナップショット間での比較が可能なので、リークしている (≒インスタンス数が増え続ける) オブジェクトを特定できます。この記事の方がイメージが分かるスクリーンショットが多いですね。 なおVS

    Visual Studioでお手軽にメモリリーク調査♪ - atsukanrockのブログ
    quodius
    quodius 2016/08/24
  • アプリの多重起動防止を拡張メソッド一発で行う - SourceChord

    以前↓のような方法でアプリの多重起動防止のコードを書きました。 アプリの多重起動を防止する - SourceChord でも、イベントハンドラをちょこちょこと追加しなきゃいけなくて、もうちょっとスッキリ書けないか考えてみました。 仕組み AppクラスのStartupとExitのイベントハンドラを使うのは前回と同様ですが、この二つのイベントを拡張メソッド内で設定しています。 この二つのイベントハンドラでは同じmutexインスタンスを使用しなければいけません。 C#には拡張メソッドで、既存のクラスにstaticメソッド相当のものを追加することができますが、プロパティを拡張メソッドのように既存クラスに追加する仕組みはありません。 で、どうしたかというと。。。 ラムダ式でキャプチャしてしまえ!! 拡張メソッドのローカルスコープでMutexクラスのインスタンスを作成して、その変数をラムダ式で書いたイ

    アプリの多重起動防止を拡張メソッド一発で行う - SourceChord
    quodius
    quodius 2016/08/24
  • 特定の値以上だったら動作するTriggerを作る - SourceChord

    WPFのTrigger、便利ですよね。 Styleを作るときに、特定の条件の時に表示を切り替えたり簡単にできて、非常に便利。 でも、ちょっと痒いとこに手が届かない。 Triggerだと、指定したプロパティが特定の値の場合に動作します。 なので、「指定したプロパティが○○以上だったら」みたいな条件を指定できません。 そんな時は、Converterを併用することで前述の動作を実装できます。 こんなコンバーターを用意しておくと、何かと便利だと思います。 public class IsGreaterThanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { var

    特定の値以上だったら動作するTriggerを作る - SourceChord
    quodius
    quodius 2016/08/24
  • VS2015のXAMLエディタの新機能~XAMLのRegion機能~ - SourceChord

    あんま知られてなさそうだけど、地味に便利そうな新機能。 XAMLでも、C#のRegionディレクティブのような感じで、コードにブロックを定義して折りたためるようになりました。 以前channel9のWPF4.6新機能紹介の動画を見て気になってた機能ですが、さっそく使ってみました。 Windows Presentation Foundation (WPF)-Anwendungsentwicklung | Visual Studio TV – Deutsch | Channel 9 ↓気がついたら、日語字幕付きのバージョンもアップされてました。上記動画の5:05~あたりのところで説明されてます。 こうやって、<!--#region 領域名-->・・・<!--#endregion -->というコメントで折りたたみたい領域を囲むと、、、 XAML上の任意の範囲をRegionとして折りたたむことが

    VS2015のXAMLエディタの新機能~XAMLのRegion機能~ - SourceChord
    quodius
    quodius 2016/08/24
  • UWPで追加されたバインディングの新機能~x:Bindマークアップ拡張~ - SourceChord

    UWPではコンパイル時にバインディングを行うx:Bindマークアップ拡張という機能が加えられました。 今までのBindingマークアップ拡張よりもパフォーマンスが良かったり、コンパイル時の型チェックができたり、と色々メリットがあります。 (ダックタイプ的なバインディングができなくなるので、コンパイル時の型チェックについては若干デメリットともいえる部分もあるかもしれませんが。) 参考資料 MVAの動画&スライド UWPの各種バインディングについては、 以下のスライドに一度目を通しておくとよいかと思います。 ↓のページの「04 | XAML Data binding」のスライド http://www.microsoftvirtualacademy.com/training-courses/a-developers-guide-to-windows-10?prid=mvp-5001048 MSD

    UWPで追加されたバインディングの新機能~x:Bindマークアップ拡張~ - SourceChord
    quodius
    quodius 2016/08/24
  • 「MVVMでダイアログ表示のためにメッセンジャーを使用するのはおかしいのでは?」 -ダイアログ表示を画面状態としてモデル化する-

    [2012/01/05 補足] 記事を記述した後、ダイアログ表示のためにライブラリを作成しました。このライブラリの紹介と解説のために「MVVMでメッセンジャーを使わずにダイアログを表示する(MVVM Dialog Behaviorライブラリ提供)」と題したブログを改めて記述しましたので、必要に応じてこちらをご参照ください。 MVVMでダイアログ表示をするためにメッセンジャーを使うのは、現在では最も主流の方法でしょう。しかし以前、MVVMの説明を行ってすぐの技術者に「MVVMでダイアログ表示のためにメッセンジャーを使用するのはおかしいのでは?」と聞かれたとき、説明を続けられずに途中で窮してしまったことがあります。 MVVMパターンはPresentation Modelパターンの一種であり、ViewModelに抽象化された画面状態を保持します。一方、メッセンジャーを使用する方法は、処理の起動

    「MVVMでダイアログ表示のためにメッセンジャーを使用するのはおかしいのでは?」 -ダイアログ表示を画面状態としてモデル化する-
    quodius
    quodius 2016/08/24
  • MVVMな設計でVMからダイアログ表示を行う - SourceChord

    MVVM界隈でよく話題になっている、「VMからViewに指示をしたい」という時の定番ネタ。 VMからダイアログを開く方法を添付ビヘイビアで作ってみました。 ↓の記事を参考に作ってみました。 トロこんぶ: 「MVVMでダイアログ表示のためにメッセンジャーを使用するのはおかしいのでは?」 -ダイアログ表示を画面状態としてモデル化する- 仕組み 大まかな仕組みは以下の図の通り。 親となるウィンドウのVMが、ダイアログのVMをプロパティとして持つようにする。 添付ビヘイビアを親ウィンドウに付加 上記プロパティにダイアログのVMがセットされnullから変化したらダイアログを表示 ダイアログのClosedイベントでは、親ウィンドウのVMに用意したコマンドを呼び出す ダイアログ画面での操作結果を扱いたい場合は、上記コマンドで処理 参考にした上記記事の実装との違いは主に以下の点でしょうか。 ・ダイアログを

    MVVMな設計でVMからダイアログ表示を行う - SourceChord
    quodius
    quodius 2016/08/24
  • WPFを使ったC#プログラミング

    Canvas要素の値のやり取り 追加・消去・プロパティ設定 例: 追加ボタンで長方形追加、楕円の色黄色、消去ボタンで長方形消去、楕円の色青に。ボタンは押されたら暗転。 FindName はうまくいかない。名前から図形オブジェクトの設定は以下のように。 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Canvas Name="canv"> <Button Canvas.Left="401" Canvas.Top="194"

    quodius
    quodius 2016/08/24
  • MVVMのModelにまつわる誤解 - the sea of fertility

    こちらに移転してきて初めての記事です。 最近たまに話題になるので書いておきます。MVVMのModelについて誤解されやすい部分のお話です。最近よく議論してるasync/awaitの話とは関係がありません。なおこの話は以下のスライドを理解している事が前提となります。 共有したい理解(ゴール) ViewModelはModelの影 ModelについてViewModelが行うことは、イベントに対する反応と戻り値のないメソッドの呼び出ししかない事 これについての理解を共有できるよう説明していきます。 VIewModelはModelの影 スライドにもしつこく書きましたが、MV○(MVVMやMVC/MVP)のModelは大変分厚くなるし、アプリケーション間で使いまわすことなんてできません。ModelはUIを意識しない??いや、何度も言っていますが、意識はする必要があるんです。ただUI実装の知識が必要ない

    MVVMのModelにまつわる誤解 - the sea of fertility
    quodius
    quodius 2016/08/24
  • WPF + MVVM初心者が躓きReactivePropertyに救われたこと - tmori3y2のブログ

    WPF + MVVMで開発を始めて、半年ほどの初心者です。 WPF+MVVMは初心者に優しくない(=習得が難しい)なっと思った部分をReactivePropertyに拾ってもらって、ようやく先に進めるようになってきました。 多分、同じように躓く人は多いのではないかと思われたので、これまで感じたことを初心者目線で書きたいと思います。 間違っていたら、指摘をお願いします。ブログ始めたのはそれが目的なので。 さて、インターネットを彷徨って、かずき大先生のBlogに辿り着き、 blog.okazuki.jp 「これなら、自分みたいな面倒臭がり屋でもいける。」 「後続の開発者にも、『WPF+MVVMの習得が難しい』と恨まれないだろう」 というわけで、ReactivePropertyでいきなりWPF+MVVMを始めました。(実際には予備調査を散々しましたが・・・) 面倒臭くないっていうのは非常に重要で

    WPF + MVVM初心者が躓きReactivePropertyに救われたこと - tmori3y2のブログ
    quodius
    quodius 2016/08/24
  • ViewModel設計の原則 その2

    □導入 今回のブログでは、2番目の原則として「画面定義後、Viewの実装の前にViewModelの(簡易)設計を行うこと」を説明します。順を追って説明するために、まずViewModel設計の優れた例としてMSDN Manazineのサンプルを見てみます。これをベースとして、「画面定義後にViewModelの(簡易)設計を行う必要があること」を説明します。その後、「ViewModelの設計を行った後にViewの実装を行う必要があること」を説明します。 なお、ここでの説明がどのプロジェクトにも適用可能な正しい内容であるかは分からないことをあらかじめご承知おきください。ここでの内容をそれぞれのプロジェクトで使用するのはもちろん構いませんが、すべて自己責任でお願いします。 □ViewModel設計の例 それでは早速、良いMVVMの設計例として、MSDN Manazineのサンプルを見てみましょう。

    ViewModel設計の原則 その2
    quodius
    quodius 2016/08/24
  • WPF4.5入門 その60「データバインディングを前提としたプログラミングモデル」 - かずきのBlog@hatena

    WPFでは、強力なデータバインディングを活かした設計パターンとしてModel View ViewModelパターンというアプリケーションを設計するうえでの定石となる設計パターンがあります。Model View ViewModelパターンはMVVMパターンと略されます。MVVMパターンは、WPFだけでなくWebアプリ開発や、その他のアプリ開発にも波及していて、それぞれの状況に応じて形を変えて存在しています。 MVVMパターンは、MSDNマガジンの以下の記事をきっかけに世間に認知されるようになりました。 Model-View-ViewModel デザイン パターンによる WPF アプリケーション : http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx また、MicrosoftはオープンソースでPrismというMVVMパターンをサポートす

    WPF4.5入門 その60「データバインディングを前提としたプログラミングモデル」 - かずきのBlog@hatena
    quodius
    quodius 2016/08/24
  • .NET アプリケーションのパフォーマンスとスケーラビリティの向上 - 第 5 章 「マネージ コ ード パフォーマンスの向上」

    quodius
    quodius 2016/08/24
  • DPIスケール変更時におけるWPFとSilverlightの違い - Yamakiの日記

    以前の投稿が@ITの.NET開発者中心厳選ブログ記事として転載されました。ここでは、以前の投稿では文章量の関係から書かなかったもう1つの要素について書きたいと思います。それは、高DPIへの対応です。 Windows 8時代のディスプレイ この15年くらいの間で、画面解像度*1は種類が増え、その大きさも大きくなりました。しかしながら、それとともに物理的なディスプレイのサイズも大きくなっているため、ピクセル密度は96PPI(pixel per inch)前後のままと大きな変化はありません。 現在一般向けとして販売されているデスクトップPC向けディスプレイで物理的に一番大きいものは27インチです。おそらくこれが常用できる最大サイズであり、これ以上大きいディスプレイが普及するということはないのではないかと思います。そう考えた場合、この先のディスプレイの進化の矛先はディスプレイの物理的な大きさはその

    DPIスケール変更時におけるWPFとSilverlightの違い - Yamakiの日記
    quodius
    quodius 2016/08/24
  • 今さらWPF?�いいえ、今こそWPF!

    1. VSUG DAY 2012 Winter 今さらWPF? いいえ、今こそWPF! グレープシティ株式会社 八巻 雄哉 Twitter: @yamaki00 blog: d.hatena.ne.jp/Yamaki/ 2. .NET開発者中心 読者調査レポート 2012年9月実施 Windowsフォーム 49% WPF 10% ASP.NET Webフォーム 28% ASP.NET MVC 7% Silverlight 5% 0% 10% 20% 30% 40% 50% 60% 利用状況 VSUG DAY 2012 Winter 2 3. .NET開発者中心 読者調査レポート 1年前と比較 Windowsフォーム WPF ASP.NET Webフォーム ASP.NET MVC Silverlight 0% 10% 20% 30% 40% 50% 60% 70% 2011年9月 2012年

    今さらWPF?�いいえ、今こそWPF!
    quodius
    quodius 2016/08/24
  • デスクトップアプリのUXガイドライン - Yamakiの日記

    Windows 8.1 UX ガイドライン」のPDFが日語で提供されましたね。正式なリンク場所はよく分からないのですが、以下のページの一番下の右側のほうにリンクがありますので、そこからダウンロードできます。 Windows 10 開発者・システム企画者向け技術情報まとめ | MSDN そこで以下のようなツイートをしたところ、ちょっと思った以上に反響がありましたので、ここではそのフォローを少ししたいと思います。 「Windows 8.1 ユーザー エクスペリエンス ガイドライン」全546ページ中、デスクトップアプリ開発者は486ページからのわずか2ページに満たない「デスクトップアプリのガイドライン」を読めばOKです。それ以外読むとこない(涙) URL 2014-02-13 06:00:07 via YoruFukurou 上記のツイートの通り、最新のUXガイドラインでは、デスクトップアプ

    デスクトップアプリのUXガイドライン - Yamakiの日記
    quodius
    quodius 2016/08/24
  • UX checklist for desktop applications - Win32 apps

    quodius
    quodius 2016/08/24
  • How to design UX for desktop applications - Win32 apps

    quodius
    quodius 2016/08/24
  • Desktop App User Interface - Win32 apps

    quodius
    quodius 2016/08/24
  • MVVMな設計のTips~サービスを作ってVMの依存性を排除~ - SourceChord

    最近、色々とMVVMな設計のサンプル類を見てると、○○Serviceみたいなクラスを作って、VMが他のモジュールへの依存を極力持たないように設計している例をよく目にするようになった気がします。 ここでは、MVVMでの定番の躓きポイント「VMからのダイアログ表示どうするの?」というネタで、実際にサービスを用いたパターンでコード書いて試してみたいと思います。 また、この手のサービスを使ったパターンでは、DIコンテナ、サービスロケータなどを提供する各種ライブラリを使ったサンプルが多いです。 ですが、DependencyInjectionなどは、MVVMな設計の質ではないと思うので、ここではそういったライブラリ類は使わず、素のWPFでの最低限なコードでサンプルを書いてみます。 色々参考にしたリンク http://wp.qmatteoq.com/the-mvvm-pattern-dependenc

    MVVMな設計のTips~サービスを作ってVMの依存性を排除~ - SourceChord
    quodius
    quodius 2016/08/24
  • UWPのアプリを作っているうえで、早く知りたかったこと。 - Qiita

    はじめに MSがWindows10への切り替えをしつこく行っているため、 WindowsStoreから配布できるUWPの需要は大きくなっているはずです。 私自身、ある程度作れる感触も持てるようになったため、UWPのソフトを作っているうえで、早く知りたかったことをまとめてみました。基的に自分の興味中心です。配布やテストまでの段階はまだです。 UWP関係は、ドキュメント自体はあるのは嬉しいのですが、バラバラでドキュメントがあるのが困ったところ。 Google検索では、一年以内の条件で検索するのもコツですかね(情弱っぽさあふれるコツ) 間違っていることとか、僕自身もあまりわかっていないので、コメントでの指摘よろしくお願いします。追加すべきものとかもありましたらどうぞ。 最強UWPのサンプル https://github.com/Microsoft/Windows-universal-sampl

    UWPのアプリを作っているうえで、早く知りたかったこと。 - Qiita
    quodius
    quodius 2016/08/24
  • 本を書くためのアウトラインエディタを作ってる - mizchi's blog

    少し前からアウトラインエディタを作ってる。 こんなの (画面は開発中のものです) ファイルツリー 複数シート同時編集 ファイルツリーUIというのをスクラッチで初めて作ってみたんだけど、「当然こう動いて欲しいよな」というヒューリスティックな挙動をたくさん作るハメになってて学びがある。 なぜ作ったか 技術書を書いて Kindle Direct Publishing で販売しようと思って、Macで売れてるアウトラインエディタを一通り試したんだけど、惜しい物が多くて、個人的にしっくり馴染むものがなかった。なので、技術書を書く前に、自分がを書くために必要なツールを作るところから始めることにした。 作家・藤井太洋に聞く 「小説を書くためのツール、Scrivener」 - DOTPLACE を読んで、その辺のアプリに対する感覚を自分でも意識して作ってる。Scrivener は wysysig なんで自

    本を書くためのアウトラインエディタを作ってる - mizchi's blog
  • 写真画像を無断使用されたので、使用料金をご請求申しあげた件【著作権裁判まとめ】

    2016年8月22日著作権侵害対策 昨年4月、旅行会社のA社のウェブサイトにぼくの写真画像が無断で使用されているのをみつけました。スクリーンショットはこれです。 小さな扱いですが、プロのフォトグラファーという著作権で成りたつ仕事をしている以上、これを捨て置くことはできません。 ふつうは出版社でも広告代理店でもクライアントの皆様は1枚の写真に対してきちんと使用料金を支払ってくださいます。それなのにA社は画像を無断で使用したことで料金の支払いを免れるというのでは他のクライアントとの公平性がとれなくなります。 そこでA社に連絡をとって抗議したところ、無断転載を認めないどころか「当社を中傷するなら名誉毀損で訴訟します」との回答をいただきました。対策に窮したぼくはやむを得ずこちらからA社を著作権侵害で提訴しました。 そして裁判所という場において、このたびA社社長は「写真を無断使用した」というぼく

    写真画像を無断使用されたので、使用料金をご請求申しあげた件【著作権裁判まとめ】
  • OLE開発記(1) - mizchi's blog

    昨日のブログでそれなりに注目が集まったので、開発メモ的なことを書いていくことにする。 OLE = OutLine Editor です。たぶんこのまま開発コードになる。リリース時にオシャレネームつける可能性はある。 昨日やったこと ゴミ箱に全部削除ボタンを実装 D&Dでアイテムとアイテムの隙間にドロップして挿入したいよね〜という内なる声に従って D&D 改良中。これ単純に難しい。実装できるか不明で後回しのがいいかも。 ブログ書いてベータテスター集めた。 ベータテスト開始の目標は10月頭としたい。 最悪DBスキーマさえ決まれば、ベータテストはできる。データワイプやらずに済むよう、スキーマとマイグレーションの仕組みをきっちり決めたい。 ベータテスター集まった 10人集まった。ありがとうございます。 ベータテストにあの結城浩先生が参加してくださるということで、プレッシャーがヤバイ。 要望 Twit

    OLE開発記(1) - mizchi's blog
  • 小さいReactアプリケーションのためのライブラリ書いた - Qiita

    EventEmitterバケツリレースタイル/フレームワークなしで小さくFluxする - Qiita これ見て最近は大体自分も同じような感じのことをしているので共通化できる最小限のコードをライブラリにしてみた。 元記事でも言ってるようにやることはとても少ないのでライブラリ使わないでもいいんだけどそのへんは好み。 Usage まず普通のステートレスなReactコンポーネントを作る。dispatchというpropsを受け取ってそれを通してイベントを発火するというのが唯一の規約。 import React from 'react'; // Stateless component export default class Counter extends React.Component { render() { return ( <div> <div>{this.props.count}</div>

    小さいReactアプリケーションのためのライブラリ書いた - Qiita
  • ソニックガーデンさんと大LT大会をした - TECHNICA Speee engineer blog

    Webマーケティング事業部エンジニアの@hatappiです。 弊社では毎週水曜日にエンジニアMTGを行っており、社内の中で手をあげた人が自身の業務で得た技術などの 知識を発表しています。 お盆明けのエンジニアMTGでは普段からお付き合いのある株式会社ソニックガーデンの@mat_akiさんと@mah_labさんをお招きしてLT大会を行いました。 発表スライド @mat_aki speakerdeck.com @kawakubox speakerdeck.com @anoChick speakerdeck.com @hatappi speakerdeck.com 所感 今回LT大会にご参加いただいた株式会社ソニックガーデンも含め 弊社では外部のエンジニアの方と一緒に働く機会が増えてきており、様々な刺激をもらっています。 今後もLT大会は開かれると思うので、色んな方が発表するような文化が出来ると

    ソニックガーデンさんと大LT大会をした - TECHNICA Speee engineer blog
  • Azure Web Apps を使ったReference Source による ブラウザ上でのコード追跡 - tech.guitarrapc.cóm

    2014年2月に Microsoft がブラウザ上におけるソースコード閲覧の新しい体験を提供しました。今でも使うことが多い、Reference Source です!! 個人的にこの時の衝撃はすさまじいものがありました。 blogs.msdn.microsoft.com http://referencesource.microsoft.com/ ※ Reference Source で閲覧可能なソースは、現在の 4.6.2 までの全ソースを zip でダウンロードすることもできます。 Download the entire reference source さて、今回はこの Reference Source を自分のソースコードにも適用できますよ。というお話です。こんな感じで! 目次 目次 Roslyn を使った Reference Source のジェネレータ サンプル SourceBro

    Azure Web Apps を使ったReference Source による ブラウザ上でのコード追跡 - tech.guitarrapc.cóm
  • #github tips: hub pull-request の向き先がリポジトリのデフォルトブランチにならないとき - 詩と創作・思索のひろば

    引数なしの hub pull-request を実行すると、リポジトリのデフォルトブランチに向けたプルリクエストを作ってくれます。このデフォルトブランチはふつう master を向いてますが、変更可能なので Git Flow で言う develop 的なブランチをデフォルトブランチにしているプロジェクトもあると思います。 さて、このデフォルトブランチプロジェクト歴史の中のどこかの時点で変えると、新しく clone したリポジトリで hub pull-request すると当然 develop に向けてプルリクエストを作りますが、デフォルトブランチの変更以前にこのリポジトリを clone していたリポジトリで hub pull-request すると master に向けたプルリクエストを作ろうとしてしまいます。-b develop すれば develop を向くのだけど、これは事故の元

    #github tips: hub pull-request の向き先がリポジトリのデフォルトブランチにならないとき - 詩と創作・思索のひろば
  • 厚切りジェイソン「年収2000万の勉強法」 勉強しないと給料は増えない

    芸人・厚切りジェイソンが日語の勉強を始めたのは、就職した後のこと。さらに日支社長をしながらお笑いの勉強をしてデビューしたといいます。今も芸人としてだけでなく、IT企業の副社長としても活躍中。勉強で人生を切り開いてきたというジェイソン氏に、社会人の勉強法(と、60kgものダイエット法)について聞きました。 PRESIDENT誌では、年収2000万円超の人と年収500万円台の人それぞれ500人に、「勉強」をテーマにアンケートを取りました。両者は何が違うのか。年収を上げるためにはどのように勉強すればいいのか? アンケートの結果について、17歳で飛び級でミシガン州立大学に入学し、日語能力検定1級を取得するなど、勉強で人生を切り開いてきたジェイソン・デイビッド・ダニエルソン氏に解説をお願いします。ジェイソンさんは、IT企業TerraSky Inc.の副社長と、同社日法人「株式会社テラスカイ」

    厚切りジェイソン「年収2000万の勉強法」 勉強しないと給料は増えない
  • AWSのALBがリリースされたので触ってnginxの機能の代わりになるか試してみた - Qiita

    概要 AWSでALB(Application Load Balancer)が 2016/8/11にリリースされたので試してみた AWS Application Load Balancer 設定方法・ELBとの違い 設定方法・ELB(Elastic Load Balancer)との違いは以下のblogなどで紹介されているので割愛します 【新機能】新しいロードバランサー Application Load Balancer(ALB)が発表されました AWS Application Load Balancer がきたので試しに作ってみた 概要 出来るようになったこと パスベースルーティング:URLのパスに基いてルーティングが可能です。 複数ポートの登録:1つのインスタンスに複数ポートを登録することが可能です。 コンテナアプリケーションのサポート:ECSはタスクスケジュールので未使用のポートを使用し

    AWSのALBがリリースされたので触ってnginxの機能の代わりになるか試してみた - Qiita
  • 【工作】子供の頃から夢だった『巨大なスイカバー』を作ってみました | オモコロ

    こんにちは、ARuFaです。 季節は夏。暑過ぎる日々が続いておりますが、皆様いかがお過ごしでしょうか。 僕は気持ちがいい程に夏バテです。 夏が暑いというのは常識ですが、それにしたって今年は暑すぎますよね。地球、やり過ぎです。 こうも暑いとアイスをべたくなりますが、「夏のアイス」といえば、やはりコレじゃないでしょうか。 そう、『スイカバー』です。 スイカのような見た目が特徴的で、今や夏の風物詩であるスイカバー。 来ならばべられない皮や種までもが見事に再現された、かわいらしい見た目が人気のアイスです。 さて、そんなスイカバーですが、実は僕には子供の頃から叶えたかった夢があります。 それがこちら…… 「巨大なスイカバーを見てみたい!」 これです。 普通のサイズでさえテンションが上がるスイカバー…… ならば、それをさらに巨大化したらとっても素敵だとは思いませんか? 日の記事では、そんな子供

    【工作】子供の頃から夢だった『巨大なスイカバー』を作ってみました | オモコロ
  • オレオレ認証局でクライアント認証 ~ ウェブの Basic 認証をリプレース - OPTPiX Labs Blog

    JINS PC を使い始めました。普段はメガネをかけていないため、レンズに照明がうつり込むのが気になる、耳が痛い、と気になって気になってしかたがない yone です。効果があればよいのですが。 1. オレオレ認証局の活用 前回の記事で、オレオレ認証局 (プライベート認証局) の構築と、それを使ったウェブサーバ証明書の発行を紹介しました。記事の最後に、その他の証明書活用を紹介しましたが、今回はそのなかから「クライアント証明書」の事例を解説します。 2. クライアント証明書 一般公開しているウェブページではなく、特定の人だけに見せたいページを作る場合、Basic 認証を使うことが多いでしょう。ほぼ全てのブラウザが対応しており、広く使われています。 お手軽でよいのですが、盗聴・改竄に弱いという弱点があります。弱点を改善した Digest 認証というものがありますが、Basic 認証ほど普及してい

    オレオレ認証局でクライアント認証 ~ ウェブの Basic 認証をリプレース - OPTPiX Labs Blog
    quodius
    quodius 2016/08/24
  • ApacheでIP制限とクライアント認証をor条件で運用する - Qiita

    あるIPから来たリクエストは無条件に許可し、それ以外のIPから来たリクエストについてはクライアント認証で許可不許可を判断したい。クライアント認証についての説明はよく見るが、上記のように併用する方法がなかなか見つからなかったのでメモ。 初めはsatisfy anyにすれば良いと思っていたが効かなかった。 httpd.confにて下記設定をする。 尚、DirectoryディレクティブやLocationディレクティブでも使用できる。 許可するクライアント認証のコモンネームは複数指定する事が可能。 SSLVerifyClientをoptionalで、SSLRequireをorで運用する事が肝。 SSLVerifyClientについて 値 意味

    ApacheでIP制限とクライアント認証をor条件で運用する - Qiita
    quodius
    quodius 2016/08/24