遅い→起動時

http://d.hatena.ne.jp/pmint/

Prog

WPFでアプリケーション名を取得するコード

正確にはアセンブリ名なんだけど。 System.Reflection.Assembly.GetExecutingAssembly().GetName().Name → "AssemblyInfo1" (…というアプリケーション名)だったら自分でアセンブリ情報(AssemblyInfo)にアプリケーション名を書いて、それを普通に読んだほう…

WPFでWindowsXPでも使える影付きウィンドウを作ってみた (3)

d:id:pmint:20130810:p1の続き。 ウィンドウの移動とリサイズを独自に実装して、やっと実現できた。 Thickness(30)の影付きウィンドウ。 画面端では影部分が細くなる。 ウィンドウのBorderを使っているので、ウィンドウサイズを広げた時にBorderThicknessを…

WPFでWindowsXPでも使える影付きウィンドウを作ってみた (2)

d:id:pmint:20130808:p1の続き。 設定と取得を完全に分けると震えなくなった。 プロジェクトファイル(VS2010) WindowMoving3.zip ClickOnceで実行してみる(InternetExplorer向け) コード(C#) using System; using System.Diagnostics; using System.Window…

WPFでWindowsXPでも使える影付きウィンドウを作ってみた (1)

d:id:pmint:20130801:p1の続き。 前回のはウィンドウとしては不完全で、画面いっぱいに広げたとしても画面端が空いているように見えてしまう。ウィンドウに見えるところが実はウィンドウ領域内(クライアント領域)なので。これをどうにかするため画面端に近…

WPFでWindowsXPでも使える影付きウィンドウを作ってみた (0)

できあがり。 Cream Pixels Made by Mizanur Rahman. (CC BY-SA 3.0) ### WPFで影付きウィンドウ作成 Window.WindowStyle = None Window.AllowsTransparency = True Window.BorderThickness を適当に太くする。ここに影を描画するとウィンドウ背景とは別に影…

WPF版チェックボックスのボックス部分をカスタマイズしてみた

WPF版チェックボックス(System.Windows.Controls.CheckBoxのほう)のボックス部分を任意のイメージにする方法を調べてみた。 参考にした情報。 Silverlight/WPFで使える逆引きTips集 ――ラジオボタンとチェックボックス機能 (4/7):CodeZine(コードジン) …

先頭集団を求めるアルゴリズム (2)

d:id:pmint:20130528の続き。 まとめようと思ったけれど、駄目だったよ。 コード(C#) using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication2013_05_28 { class Program { static void Main(string[] args) { F…

先頭集団を求めるアルゴリズム (0)

もしかしたらクラスタリングのアルゴリズムに入るのかも知れない。 例えばマラソン実況でよく出てくる「先頭集団」という言葉。その集団はどこからどこまでなのかを探す方法。 普通はしきい値を決めてそこまでを「先頭集団」と見なすんだろうけど、ここでは…

先頭集団を求めるアルゴリズム (1)

で、もし与えられる集合が { 10, 9, 8, 5, 4, 3, -1, -2 }だったりして、 { 10, 9, 8 } { 5, 4, 3, -1, -2 }にならないかなと思っても… count:6, ret:10, 9, 8, 5, 4, 3…のように「最大の隔たりは 3 → -1 間の4でしょ」ということになる。 「他は1しか差が開…

ロックのかけかた

ファイルなどを複数扱うとき、デッドロックしないロックの仕方。デッドロックは「自分が止めている相手が動くのを待っている」=「自分を待っている」状態。自分/相手というのは同じプログラムの別インスタンスだったりするのでややこしい。これを回避するに…

ゼロから作る単語辞書 (2)

d:id:pmint:20121013:p1の続き。 共起関係を使おうとしたけどいまいちいい方法が分からず、「共起相手が多い語ほど評価を低く」なるようにした。特定の語としか共起しない場合は評価を下げないように。 コード(Perl) use utf8; use strict; use feature qw/s…

ゼロから作る単語辞書 (1)

「1文あたり最長の1単語までしか検出しないようにしたら精度上がるんじゃないかな!?」と思って試してみた d:id:pmint:20121012:p1の続き。 コード(Perl) use utf8; use strict; use feature qw/switch/; use Encode; use Algorithm::Diff qw/sdiff/; my @i…

ゼロから作る単語辞書 (0)

文章間の共通点を集めて、日本語の文章から単語抽出。 diffで得た共通点とその出現数を元にして、多数の文章に現れる文字列ほど単語として使える文字列ということにしてみる。 テキストを2つ用意 diff 共通点を記録 同じ共通点が見つかるたびに出現数+1 出現…

部分集合を列挙するアルゴリズム

例えば{1, 2} → {}, {1}, {2}, {1, 2}のように(ある集合に含まれる要素の)全ての組み合わせ(全ての部分集合)を列挙するアルゴリズム。 各要素を使う/使わない(ということは → on/off → 1/0)の組み合わせなので、ビット値の列…つまり2進数の表現と同じ…

組み合わせを列挙するアルゴリズム

例えば5要素集合の5C3、10通りを生成。 組み合わせはビット演算。2進数で簡略化できそう。 …だったけど、帰納的なほうが分かりやすかったのでそっちで。 2進数に置き換えたり、2進数から置き換えたりしなくていいので圧倒的に分かりやすい。 コード(C#) usin…

データ駆動型テンプレートエンジンの提案

配列やハッシュを渡すと中身を全部HTMLテンプレートに埋め込んでくれるテンプレートエンジンは知ってる。 でも埋め込むためのデータはHTMLマークアップ済みでなければならなく、それをどうやるかというとアプリケーション開発者が自分で…つまりサポートして…

新しいWikiEngineの検索機能

Wikiのシステム作りの途中経過。codeなにがしに投稿していたサンプルの続編。 プロトタイプ03 X03.2011-12-08.zip VS2008Proj、C# 稼働中 http://x03.pmint.name/ 発想 WikiEngineは記法別の処理を行なうために、テキストを記法別オブジェクトに変換している…

WCFの名前付きパイプで双方向通信

WCFのサンプルは構成ファイル(Web.configやApp.config)を用意したり、HTTPの例だったりで名前付きパイプ(NetNamedPipeBinding)のいい例がない。 同一端末上での通信だからエンドポイントの事前公開なんて要らないはずなのに、どの例もエンドポイントの公開…

Amazon Product Advertising API サンプル(VB)

SignedRequestHelper.vb SignedRequestHelper.vb Amazon Product Advertising API のサンプルをVBにしてみた。 C#版はあるけど、VBで動くバージョンがなかったので。 ↓この公式サンプルの SignedRequestHelper.cs を書き換えたもの。 Product Advertising AP…

Webアプリケーションのフレームワーク部分

MVCを一通り持つプログラムを部品として、 View→他部品のControl ↑ Control ↓ Model(s) ※最初のCはActionも受け付けるもの。求めるページも受け付ける。 最初のCは「Action」と「欲しいView」と「そのView向けのパラメーター」をクライアントから受け、Actio…

DrawImage()ではなくLockBits()でイメージのコピー

Drawing.Graphics.DrawImage()の代わりにDrawing.Bitmap.LockBits()を使って、BitmapからBitmapへイメージをコピーする例。 DrawImage()より少し早い。 LockBitsCopy.zip LCopy2()が同じサイズのBitmap間でコピーする例。 LCopy()は異なるサイズのBitmap間で…

ストローク補正のアルゴリズム

ペイント系アプリによくあるストローク補正(手振れ補正)。 タブレットペンやマウスから入力された座標のほとんどを無視することで手振れを無くし、その上でアプリが座標間を補間する機能。 補間する割合が多ければ多いほど線は滑らかでペンの動き通りには…

クラスを再構成したペイントツール プロトタイプ17

ビューを実装。回転、拡大縮小、スクロールが可能。 操作は左ドラッグが円の描画、右ドラッグがスクロール。 回転、拡大縮小、スクロールとそれらのリセットなどはトラックバーやボタンで。 キャンバス(右側パネル)の赤い点は回転と拡大縮小の中心を表す。…

画像の拡大・縮小、回転、そしてスクロール

ペイントツールの試作に必要だった画像の拡大・縮小、回転、スクロール処理のサンプル。 いずれの処理もGDI+の機能にあるので、それを使うだけ。 こちらがプロジェクトファイル一式。 画像の拡大・縮小、回転、スクロールサンプル WindowsApplication2154.zi…

Wintabを使わないタブレット入力

HP TouchSmart tm2tが気になる。Wintab仕様なのでtx2のように「SAIで使えない」ということもない。 けど、Wintab*1を使用しているアプリ(有名なものほぼ全て)がある一方で、タブレットPC用のインターフェイスを使用しているアプリもある。HP TouchSmart tx…

はてなダイアリーにはコメントから始まるブログパーツを貼れないらしい

はてなアイデアから適当に選んで(idea:24593)のHTML::WidgetValidator::Widgetを作ってみた。 例1は通るのに、例2だと通らない。 HTML::WidgetValidator::WidgetContainerのmatchでは、どちらの例のいずれの比較対象でも正しく作られているのに。 HTML::Widg…

ATOKダイレクトプラグインを作ってみた

d:id:pmint:20081030:p1の続き。 実際のところ、ATOKダイレクトは仮想的な辞書を作るものらしい。*1ウェブから言葉を取り込める。 でもユーザーの知らない言葉がいくら使えるようになっても意味がないことに変わりはない。 そもそも… ATOKの辞書は読み物じゃ…

ATOKのAPI

ATOKの新しいAPI。 概要|ATOKダイレクト API|ATOK.com AMETが無くなってから「ATOKはもうダメだ」と思っていたけど、公開APIが復活した。 これでキーカスタマイズに難のあるJapanist2003*1にこだわらなくても良くなるかも。 IMEにはあらゆるアプリのフロン…

ブラックボックスのような変数をこねくり回すコード

トレースしなければ読めない可読性の低いコード。 動作、内部状態(変数の値)を追わなければならない。 「グローバル変数はどこでどう変化しているか把握しづらいので使うべきではない」と言いつつ、変数を初期化から順に追わなければ読み解けないコードを…

コーディングの掟(最強作法)

酷い本を読んだ。 コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション)作者: arton,宇野るいも出版社/メーカー: 翔泳社発売日: 2008/09/18メディア: 単行本(ソフトカバー)購入: 29人 クリック: 348回この商…