遅い→起動時

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

閉領域フィルのアルゴリズム

閉領域を塗りつぶすには、開いた領域を塗りつぶすことを考えればいい。 塗りつぶしのアルゴリズムで閉領域フィルができそう。→ SAIでもツールを組み合わせば閉領域フィル可能では? 1.元画像(白く見える部分は透明色) 2.範囲選択 3.選択範囲を別レイヤーに…

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

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

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

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

物音入力

UI

音声入力が広まってきている。特に携帯電話で。 音楽を入力→楽曲検索というのもある。 音声以前に物音の区別ができるんじゃないだろうか。 区別さえ出来れば認識処理なんて不要だし。 技術的に声の認識より簡単であろう物音での入力。でも実用的な入力補助が…

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…

pixivブログ

App

pixivブログ pixivが始めるブログサービス。 でもアクティブユーザーは自分のサイトを持っているから無意味。 pixivブログはROMにとって意味があるものになるんじゃないだろうか。 描く人のブログではなく、見る側のブログ。 個人が権利を持つライセンスを強…

ありがちなダメプログラマー:コピペはいけないと思っている

同じでなければならないものを別にするのはいけない。コピペでスタイルを統一すべき。コピペよりも優れたコードとは? 使用するライブラリのドキュメントを読んで、独自コードを試行錯誤?否、ドキュメント付属のコードをコピペするほうが優れている。 ライ…

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

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

ありがちなダメプログラマー:少なくともテスト要員よりは格が上だと思っている

「コードを書ける奴はテストしかできない奴よりも有能」とか。 でも成果の質には触れていないわけで、「C++プログラマー*1はVBプログラマー*2よりも優れている」と言っているようなもの。 既存の物事に合わせるのは好き勝手やるよりも難しい。 自分の判断で…

ATOKのAPI

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

ありがちなダメプログラマー:「return」が大好き

「○○チェック」というコメントが並んでいて、各コメントごとにreturnが用意されていて、浅いインデントばかりの平らなコードが続いていて、returnをかいくぐった後に本題が始まるようなコードをよく書く人。 それと、「この場合、以降の処理は不要だから」と…

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

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

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

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

Amazon S3またまた料金改定ですよ

d:id:pmint:20080425:p1の続き。 http://japan.internet.com/busnews/20081010/11.html Amazon S3がまたまたお安くなるそうで。 今度はデータ保管料が(お得意様にとって)安くなるらしい。 あとで書く

ありがちなダメプログラマー:プログラムをトレースする能力がプログラマーのスキルだと思っている

コードを読むときはもちろん、コードを書くときもトレース。 書くときはクックブックや既存コードをどう切り貼りすればいいか試行錯誤。トレースで確認。目的の処理ができれば完成。 完成までの見通しが立たないからコードがどれくらいの規模になるか分から…

コーディングの上達には

コーディングの上達、つまり考えたプログラムを効率よくコードで表現していくには… エラーを読む まず適切なエラーメッセージを表示させることができるように。 エラーを読まないとコードの完成は不可能。 開発者にとってエラー出力はコンパイラーの最大の機…

HTML::WidgetValidator::Widgetに書く属性名は小文字で

書くのを忘れていた。HTML::WidgetValidator::Widget::TegakiBlogを書いたときに困ったこと。 HTML::WidgetValidator::Widgetを書くとき、属性名は小文字で。 例えばFlashVarsなんてよく使われるけど、これも小文字で*1。 HTML::Parserの仕様から来ることだ…

アスペクト指向

別にアスペクト指向言語を使わなくてもできるアスペクト指向。 オブジェクト指向にオブジェクト指向言語が必要でないのと同じように。 ログ出力に便利。…としか思われてなさそう。 実装の一例というだけなのに。 「オブジェクト指向は構造体に関数ポインター…

ありがちなダメプログラマー:アスペクト指向とはログ出力を手軽にするものだと思っている

分かりやすくするためのサンプルなのに、そのサンプルを理解できただけで「分かったつもり」。 自分の中では有能な技術者気取りなのかも知れない。 単純に知れば済む知識ならググるだけで分かる現在。 その上、ソフトウェアは「作ればある」という世界。「知…

クールなアーカイバーの条件…の続き

d:id:pmint:20080815:p1の続き。 圧縮と展開は結構高負荷。 HDDやCPUをめいっぱい使うから、処理時間が長くなると利用者をいらつかせることに。 → CPU負荷が低くなるように適度に休むとか、プロセスやディスクI/Oを低優先度にするとか。 さらに低負荷にする…

クールなアーカイバーの条件

Vectorあたりで公開されているアーカイバー*1ってDLL呼び出しの練習みたいになっててどうも頂けない。 アーカイバーはどれもDLL呼び出しの引数を設定するアプリになっている。詳しく書いても… 圧縮レベルなどの永続的な設定を、「オプション」ダイアログで設…

キャップについても一言

d:id:pmint:20070401:p1の続き。 そういえば、ペットボトルのキャップってどうしてどれもこれも溝が付いているのだろう。 あれのせいでキャップが滑りやすくなって、そのせいで開けにくくなっているんだよね。指も痛めやすい。 目立たないほど細かい溝だから…

HTML::WidgetValidator::Widget::PixivEmbedFeatureをCPANに登録してみた

d:id:pmint:20080709:p1の続き。 モジュールは勘でひどく簡単に作れたし、support@hatena.ne.jpへも.pmファイルを添付するだけで簡単に送れた。 …でもなかなか反映されない。d:id:hatenadiaryでもアナウンスされない。 ファイル1つじゃ足りない?テストが無…

HTML::WidgetValidatorのプラグインをひどく簡単に作成した

idea:19837を読んで、「あらたにす」のブログパーツを通すためのHTML::WidgetValidatorのプラグインを書いた。 HTML::WidgetValidator::Widget::Harbotを書き換えただけ。(勘で) テストも書いてない。だって目的は <script type="text/javascript" src="http://allatanys.jp/E003/bp_allatanys.js"></script>という(バリエーションの無い)文字列を…

HTML::WidgetValidator::Widget::Allatanys

d:id:pmint:20080709:p1の続き。 HTML::WidgetValidator::Widget::Harbotを書き換えたもの。 通したいHTMLタグとmodels部分が対応するので、あとは勘で。 書けたらsupport@hatena.ne.jpへ。 …採用されないかもしれないけど。 package HTML::WidgetValidator:…

ロディア類メモパッド

ロディアのように5mm方眼でマイクロミシンカットなメモパッドはいろいろなメーカーが作っているけど、これってみんなが理想形に近づいているから…じゃなくて真似じゃないのか? マイクロミシンカットはそんなに重要だろうか。 ミシン目がマイクロミシンであ…

idea:19649…の続き

d:id:pmint:20080526:p1の続き。 はてなアイデア …について。 日時→日付をお題化したページへ Wikipedia的な。 日時について範囲指定する代わりに、1カ月ごと/1日ごと/1時間ごとに「みんなの最新エントリー」をまとめたページを用意するのも良いのではないだ…

idea:19649

idea:19649で提案した はてなアイデア というアイデア。 お題という枠を越えて一覧したい。 古い投稿を発掘したい。 …という目的で提案したアイデア。 どうもこのままだとおかしい。 (日時部分が記事へのパーマリンクになってる現状もおかしいけど) という…

OpenIDのデリゲート機能って便利

pmint.nameをOpenIDとして使っているけど、複数のOpenIDプロバイダーを同時に使うことってできるんだろうか? http://pmint.name/ …を見ると分かるけど、*1現在… はてな Openid.ne.jp linksafe …の3つを利用している。 なんだかOpenIDを利用するサイトごとに…