サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やる気の出し方
days-of-programming.blogspot.com
半年くらい前にSynologyという会社のNASを買いました。 NASと言ったらBuffaloのイメージが強かったんですが、このSynology NASはもうほとんどただのLinuxパソコンのようで、Webからログインするとデスクトップのような画面が表示されて、そこでパソコンを操作するかのようにNASを管理することができます。また、いろいろなアプリケーションがパッケージセンターに公開されていて、それらをインストールすることで自分好みのNASにしていくことができます。例えばDropboxのように自分の各PC間でデータを同期させたり…。非常に強力なNASで、もはやただのNASというより「自前のクラウド」と言ったほうが良いような代物でした。 ですので、ただのNASとして使って、ひたすらファイルを詰め込むだけじゃなんかもったいないなと思い、Gitサーバーを立ててみることにしました。 自分でしか使わ
身の回りの家電には赤外線リモコンで操作するものがたくさんあります。エアコンもその一つです。それらのリモコンと同じ赤外線信号を送れるデバイスを作ることができれば、例えばネットワーク経由で本来リモコンが届かないようなところから家電を操作することができ、便利です。 というわけで、ダイキンのエアコンのリモコンを解析してみました。 解析したのは「ARC478A18」という型番のリモコンです。 幸運なことに、世の中のリモコンはだいたい940nmくらいの赤外線を使っており、だいたい38kHzで変調されています。なので、市販の赤外線受信モジュールで読めてしまうのです。 写真に写っているのはDSO touchというオシロスコープで、時間軸方向で8192サンプルのデータを取って保存することができるので、ロジアナとしても使うことができます。 これである程度のデータを集めることができて、物理層としてのフォーマット
.NET4.0/C#5.0以降、どんどん非同期処理に関する機能が増強されてきています。 特にasync/await構文なんかは、今までは非同期で書こうとすると非常に読みにくいコードになっていたのを、上から下へ流れるようにプログラムを書くだけで非同期処理が実現できてしまうという非常に画期的なものでした。 しかし、そこには非同期処理特有の問題が付きまといます。いくら簡単に非同期処理が書けるからと言って、何も知らずに非同期処理を確実に動かすことはできないのです。 さて、非同期処理で注意しなければならないことの1つとして、「データの整合性」が挙げられます。 非同期処理は複数のスレッドが同時に走るわけですから、それぞれのスレッドから1つのデータにアクセスした場合どのような結果になるか、ということを常に想像しながらコードを書かなければなりません。 そして、必要ならば排他制御を行い、片方のスレッドからデ
MVVMとは何か、それはWPFプログラミングを始めた人は誰しもが気になることでしょう。 私はあまりWindows以外のプラットフォームは触らないのですが、最近はAndroidでもMVVMが流行ってるとかなんとか。 そのせいか、MVVM+適当なワードでググるといくらでもQi○taなどの記事がヒットします。ですが、多くは「データバインディングを使えばMVVM」くらいの浅はかな理解で、MVVMとは何かがまるでわかっていないようです。 まあ「初心者」というのは誰もが通る道ですからそういうのをはなから否定する気はないですが、情報汚染されているのは悲しいので私の理解の範囲を記事にしておこうと思います。 まず忘れてほしいこと MVVMとは何かというのを調べ始めるとまず見つかることですが、それはMVVMの本質ではないというのをいくつか挙げていきます。私の今回の記事を読むうえでまずは次の3点のことを忘れてく
さて、巷ではもっぱらリメイク版である「アルファサファイア」「オメガルビー」が話題ですが(とは言っても発売は1年以上前ですが)、ここではリメイクされる前の「サファイア」を対象にしています。 検証はしていませんが、「ルビー」「エメラルド」も同様に復活させられる可能性もありますし、また、サファイアでもロットが違う製品だと違うチップが載っていて同様にいかない可能性もあります。 流石にゲームボーイアドバンスはもうレトロゲーム認定してもいいのではないかと思います。とても懐かしいですね。 久しぶりにサファイアをプレイしたくなったので、起動してみました。 おお、時計が電池切れだと。 電池切れで時計が動かなくなったから時間絡みのイベントは起きなくなるけど、それ以外のイベントは正常に動くからプレイ可能だよとのメッセージが出てきました。 ゲームボーイカラーまではセーブデータがRAM上に保存されていて、バックアッ
世の中的にはWindows開発と言えばUWPとかなのかもしれませんが、まだまだレガシーなWindowsデスクトップアプリが滅びる様子はありませんよね。 そのレガシーな中でも最も近代的なプラットフォームと言えばやはりWPFで、WPFでアプリケーションを作るのならばやはりLivetは欠かせません。 Livet - ProjectHome しかし、LivetはVS2015対応としてリリースされたver.1.3を最後に更新されておりません。 作者自身もVS2015対応版がLivet 1.xの最終リリースとする旨の発言をしており、今後はLivet2を開発すると言っています。 ugaya40/Livet2 - GitHub しかし、現時点でLivet2のLastest commitは2015年8月。Livetの最大の武器ともいえるプロジェクトテンプレート付きのインストーラはおろか、正式リリースさえされ
2017/2/20追記: 続編はこちら WPFにおけるINotifyDataErrorInfoを使った値の検証 属性版 今回はこってこてのWPFの話をしたいと思います。 WPFには値の検証機能があります。 このように、認められた入力以外の入力があった場合、赤枠などにしてエラーを伝えてくれる機能です。ちょっといじればツールチップでエラーメッセージを表示したりすることもできますし、非常に明確にエラーの意を伝えられるので重宝しています。 この値の検証ですが、実装の方法と言えばValudationRule抽象クラスを継承したクラスを作り、それをバインディングのValidationRulesプロパティに指定してあげるという方法が私の頭の中にありましたし、それ以外知りませんでした。WPFの値の検証で調べるとこれに関する記事はたくさん出てきますしね。 しかし、この方法にはいろいろと問題点がありました。
突然ですが、複数のScrollViewerでスクロール位置を同期させたいことってありませんか? 画面に入りきらないような大きな領域を画面に表示するのにScrollViewerはとても便利です。そして、それは自動でスクロールバーの表示のON/OFFからスクロール制御までやってくれるので、何も考えずにスクロールしたいコンテンツをScrollViewerの中に突っ込めばたいていの場合は片付きます。 そこで、複数のScrollViewerでスクロール位置を同期させたいことがしばしば出てきますよね。 例えば、2つの画像の比較ソフトを作るとき、2つの画像は同時にスクロールさせたいですよね。個別にそれぞれスクロールさせたんじゃ使い勝手が悪すぎます。 そのほかにも、例えばExcelの「ウィンドウ枠を固定」機能みたいな感じで、何かしらの表を表示させるとき、タイトル領域とそのテーブル領域でそれぞれ縦方向のみス
(2015/12/19追記) Google等からこのページに直接来られる方が多いようなので。最新版はver.2.1.1になっていますので、こちらからどうぞ。 今回はWPFでの縦書きテキストについてです。 Win32API等を叩いたことがある人に「縦書きのテキストを表示したいときはどうする?」と聞いたら、おそらく即答で「縦書きフォント(通常のフォント名の頭に@を付けたもの)で90°回転させて文字列を描画する」と言うかと思います。LOGFONT構造体に文字列の角度を指定するメンバがあるので、そこに90°を指定して縦書きフォントを選択したうえでTextOut関数などを呼びだせば縦書きのテキストが完成します。 しかし、WPFではそう簡単にいきません。 というのも、なぜか縦書きフォントが封印されています。まあそもそもWPFはGDIベースではないので仕組みが全く違うと言えばそれまでなんですが、フォント
今回はC#でHTMLパースをしてみようと思います。 C#でHTMLをパースする方法をググると真っ先に出てくるのがHtml Agility Packというライブラリです。しかし、Documentationは何も書いておらず、ググって出てくる断片的な記事しか無いので、私も1つの断片的な記事を書いてみようと思います( さて、このライブラリ、どうもXPathというものと切っても切れない関係があるようです。 XPathというものを知らなかった私は、ググりながら、同時にHtml Agility Packを使っていかなければなりませんでした。 XPathというのは、XMLにおいて特定の場所を指し示すための言語みたいですね。 すなわち、このライブラリでは、HTMLの中の特定のタグ等をXPathを使って検索し、そこから目的の属性とか内容を取得するといった流れになっているようです。 まずは、HtmlDocum
このページを最初にブックマークしてみませんか?
『days-of-programming.blogspot.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く