Development

ListView で表示用データを仮想化する

現在、プロジェクトの関係で初めて WPF を触っています。「GUI とデータ(および関連する処理)の分離と言う事にかなり気を使って設計されてるんだなぁ」と言う感動と「XAML の書き方がよく分からない!」と言う絶望が織り交じったファーストインプレッショ…

ReadOnly な参照型のメンバ変数

最近、プログラミング関係の事はほとんど書かないようになっていたのですが、ブログ継続の意味でも、差障りのない形でできるだけメモしていこうかと思います。さて、「ある参照型のメンバ変数を読み取り専用にしたい」と言う要求が出てきたのですが、ちょっ…

動的型付き言語と静的型付き言語

ここ数日、変数に型がないということの利点について考える - PerlならサンプルコードPerl入門 を発端として静的型付き言語と動的型付き言語の話題が盛んになっています。個人的にも、このトピックについていろいろググってみたので、考えの整理的な意味も含…

x64 設定中にデザイナで UserControl を表示しようとするとエラーになる

先日、Visual C# 2010 上で UserControl を継承したコンポーネントをデザイナ経由で貼り付けていたら、「ビルドは成功するんだけど、デザイナ上で表示しようとするとエラーになる」と言う状況に遭遇しました。適当にググっていたら「作成したコンポーネント…

さくら VPS に Redmine をインストールする

所用でさくら VPS に Redmine をインストールしていました。基本的には http://akabeko.me/blog/2010/09/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps-%E3%82%92%E4%BD%BF%E3%81%84%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B/ で書かれている通りにやっていけば良い…

サムネイル画像用の URL に変換する

SoGap - ソーシャルサービス内で尖っている話題を探す で、Flickr や TwitPic 等の画像投稿サイトや YouTube、ニコニコ動画等の動画投稿サイトの場合はサムネイル画像を載せた方が良いような気がしたので、サムネイル画像を取得する方法を調べてみました。こ…

C++ のテストフレームワークを選ぶポイント

Boost.勉強会 #8 大阪 に参加してきました。発表者、運営者の皆様お疲れ様でした。今回もいろいろと黒魔術的な発表があり「これが変態かー」と感慨深く見ていたのですが、それはそれとして、個人的に気になっていたテーマとして「C++ でのテスト」に関連する…

嘘のコメントを減らす努力

見やすいコード表記について - タコブネ開発者ブログ と言う記事が目に留まったので今回はプログラミングのコメントについて.プログラミングの可読性に関する議論は,個々の宗教に依るところも大きいので非常に難しいところです.前述した記事に書かれてい…

オプションのための引数をどのような形で用意するか

前回の Ruby で Twitter/Facebook/はてなブックマーク等の各種カウント情報を取得する - Life like a clown に関連してですが,あるメソッドを定義する際に「このメソッド,多分そのうちオプションがいっぱい出てきそうなんだけど,引数の定義どうしよう?」…

Web 上での C++11 関連記事まとめ

これは,C++11 Advent Calendar 2011 参加記事です.現在,開催されている Advent Calendar の一覧は Advent Calendar 2011 (jp) 開催予定リスト - Life like a clown を参照下さい.C++11 (C++0x) に関しての情報は 本の虫 や Faith and Brave - C++で遊ぼ…

Boost.GIL で HSV 変換を行う

これは,Boost Advent Calendar 2011 参加記事です.現在,開催されている Advent Calendar の一覧は Advent Calendar 2011 (jp) 開催予定リスト - Life like a clown を参照下さい.当初,Boost.GIL の(初歩的な)逆引きリファレンス的な記事にしようかと…

PDFWiki - Wiki 記法で PDF を生成する

これは,C# Advent Calendar 2011 参加記事です.現在,開催されている Advent Calendar の一覧は Advent Calendar 2011 (jp) 開催予定リスト - Life like a clown を参照下さい.iTextSharp の勉強がてら,ちょっとしたアプリケーションを作ってみようと思…

Windows における不正なパス名を変換する

Windows における不正なパス名を変換する関数を少し真面目に書いてみます.現在の実装項目を簡単に列挙すると以下の通りです. 「/*"<>|」の 6文字(Path.GetInvalidPathChars() メソッドで返される文字に「*」記号を加えたものに相当?)は無条件で置換して…

Templates for Inno Setup

最近,ちょっとしたアプリケーションのインストーラを書く機会が増えてきました.インストーラは Inno Setup で作成しているのですが,毎回,似たようなスクリプトファイルを記述するのは面倒になってきました(以前の Inno Setup 用 IDE であれば,IDE がテ…

amazon-ecs 周りの修正

amazon-ecs を利用したスクリプトが動かなくなっていたのでざっと修正.crown | RubyGems.org | your community gem host にも amazon-ecs に依存していた部分があっておかしくなっていたので,該当部分を修正しました. Amazon 自体の変更 1点目は,全ての …

ユーザパスワードとオーナパスワード

PDF には「ユーザパスワード」と「オーナパスワード」の 2種類のパスワードが存在します.「ユーザパスワード」は,ユーザが PDF ファイルを開こうとしたときに尋ねられるパスワードで,一般的に「パスワード」と言われて思い浮かべるのがこっちだろうと思い…

Hello, iTextSharp!

今まで適当に使っていたので,ここらでざっと概要を把握するためのまとめ.iTextSharp 自体のリファレンスは存在しない(?)ようなので,リファレンスとしては iText (Java) の API リファレンスで代用するか有志の方が作成したヘルプファイルを眺めるかに…

GetPixel/SetPixel は遅い

所用で簡単な画像処理の実装を(お願い)しているのですが,何というか実行が非常に遅いのが気になりました.どうやら Bitmap クラス の GetPixel/SetPixel が原因のようで,これらのメソッドは非常に遅い事で有名なようです. void TranslateImage(Bitmap o…

右クリックによるドラッグ&ドロップ時のドロップ先のパスを取得する

右クリックでファイルやフォルダをマウスでドラッグ&ドロップすると,「ここにコピー」や「ここに移動」のようなコンテキストメニューが表示されます.このメニューで「ここに〜」を選択すると,マウスでドロップしたフォルダへ該当の処理(コピー,移動,..…

_tcscpy_s (strcpy_s, wcscpy_s) の引数

深いディレクトリの削除を再帰的に行う。(ReadOnlyの場合も対応) を使おうとして気づいた事.cstring の文字列処理関数を使おうとすると CRT のセキュリティ機能 関係の警告がよく出てきます.めんどくさいから警告を抑止しようかと思ったのですが,ふと str…

GetLastError() に対応するメッセージを取得する

すぐ忘れるのでメモ.GetLastError() でエラー ID を取得して,FormatMessage() でそれに対応するメッセージを取得する関数 #include <string> #include <windows.h> #include <tchar.h> /* ------------------------------------------------------------------------- */ /* * GetError</tchar.h></windows.h></string>…

Ghostscript のオプション

Ghostscript のオプションのうちで分かりにくいものに -d オプションと -s オプションがあります.特に -dKey=Value の形になっているオプションに関しては,どちらを使って良いか分からない場合も多いです. -s オプションの Value はどうも「名前」を表し…

Ghostscript のフォント埋め込みポリシー

Ghostscript でフォント埋め込み指定した場合 (-dEmbedAllFonts=true),Base 14 Fonts と呼ばれる基本フォント (Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique, Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique, Time…

プログラミングの魔導書 Vol.2

Vol.2のテーマは「言語の進化」です。 いろいろな言語における日本の第一人者と言って差し支えない日本人プログラマの方々に、歴史や現在の状況、今後の展開について執筆していただきました。 『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave…

Ghostscript で PDF/X ファイルを作成する

Ghostscript で PDF/X ファイルを作成するには,-dPDFX オプションを付ければ良いようです.ただし,PDF/X には CMYK じゃないとダメ等の制限があるので,実際には以下のような設定が必要になります. -sDEVICE=pdfwrite を指定する.あるいは,ps2pdf スク…

「作りたいものがあるからプログラミングを学ぶ」と言う言説

24:名無しさん@涙目です。(内モンゴル自治区):2011/08/24(水) 01:53:21.34 ID:hNWJ4bKQOプログラミングを学ぶ→何を作りたいか決める=間違い作りたいもの決める→プログラミング学ぶ=正解 簡単にプログラミングが学べるサイトが登場 試しに使ったけどマジ…

テキストボックスのテキストを取得

テキストボックスのテキストの取得方法のメモ. #include <iterator> #include <string> #include <vector> #include <windows.h> #include <tchar.h> std::basic_string<TCHAR> GetText(HWND handle) { int length = ::GetWindowTextLength(handle); if (length <= 0) return std::basic_string<TCHAR>(); std::vector<TCHAR> bu</tchar></tchar></tchar></tchar.h></windows.h></vector></string></iterator>…

Trivial logger for VC++

ログ出力をどうしようかと google-glog を触ってみたのですが何か上手くいかず,結局,自作で逃げてしまいました.そんな訳で簡易リファレンス代わり.ログ出力関連は Boost.Log が採択されているようなので,正式に Boost 入りしたらまた考えようと思います…

C++0x 全会一致で承認され C++11 へ

C++0xの最終国際投票はこの水曜日に終わり、さきほど投票結果が届いた… “全会一致で承認する”我々が”C++0x”と呼んできたC++の次期改正案はついに国際標準になった! ジュネーヴのISOから発行されるのはもう数ヶ月先になるだろうが、それでも今年中には発行さ…

ウィンドウプロシージャをどうラップするか?

まだメモ書き段階.Win32 API で GUI プログラミングをする場合,WndProc と呼ばれるコールバック関数に処理が集中してしまうため,注意しておかないとこの関数がカオスになります.この問題への対策として最初に思い浮かぶのが,WM_XXX 毎に関数を分けると…