Windows アプリ開発で利用している Web サービス

近年は GitHub を始めとした Version Control Systems (VCS) のホスティングサービスと連携する形で、プログラミングやソフトウェア開発に関する様々な Web サービスが提供されています。私は専ら Windows のデスクトップ・アプリケーションを開発しています…

GitHub の Activity を意識し始めて 1 年が経ちました

2017 年の振り返りとして、GitHub の Activity を意識し始めて変化した事を記述してみます。 GitHub 自体は利用し始めて 10 年くらい経ちますが、長い間「Git のリモートリポジトリ」以上の役割を考えた事はありませんでした。しかし、去年の 2 月頃に何とな…

アジャイル開発と反復型開発は違うのか?

所用で Code Complete を読んでいると「反復型開発 (Iterative and Incremental Development)」と言うキーワードが出てきました*1。「反復」と言う単語を聞いてまず思い浮かんだのは昨今よく話題になっている「アジャイル開発」なのですが、「アジャイル開発…

iText の PdfReader クラスで RandomAccessFileOrArray オブジェクトを引数に取るコンストラクタは廃止予定 (Deprecated)

iText (iTextSharp) でファイルサイズの大きな PDF を扱う場合、メモリや速度の問題を解決するために RandamAccessFileOrArray クラスを利用すると言う方法が存在します。 対策方法はないかと調べたところ、PdfReader クラスのコンストラクター public PdfRe…

Visual C++ で .NET Framework を使用する際の注意点

Microsoft .NET Framework を使用したプログラミングを行う場合、特に制限がなければ C# なり VB.NET なり(最近は F# も?)を使用した方が良いと思うのですが、時には過去の資産(C++ のクラスライブラリ等)を利用する等の理由で C++/CLI を使用する事も…

Google Chrome のリッチ通知機能

Google Chrome 28 から「リッチ通知」機能と言うものが追加されたそうです。Google Chrome には以前から通知機能があったそうなのですが*1、この機能の強化版的な位置づけでしょうか。実際にどんな感じになるのかについて、github にサンプル があったので使…

git rebase に関するメモ

間が空きましたが、git の運用指針 - Life like a clown のフォロー記事、第 2 弾。 公開リポジトリに push した commit を rebase してはいけない rebase に関しては、まだ使いどころが今一つ掴めないでいるのですが、明快な指針が一つ示されていました。 …

git merge に関するメモ

前回、git の運用指針 - Life like a clown と言う記事を書きましたが、git の事をよく理解しない状態のまま取り急ぎ作成したために、やはりいろいろとまずい所があったようです*1。指摘された点としては、「merge や rebase の理解がまずい」、「git-flow …

git の運用指針

ソフトウェア開発に関しては、これまでほぼ一人で完結していた*1ので git の運用方法もかなり適当だったのですが(ただのコミットマシーン状態)、今回、同一プロジェクトに対して複数人でコミットしていく形になっているので、その状態だとやはりまずいなと…

Windows の標準的な UI ボタン用アイコン素材 59 種類

アプリケーションを開発する際、最終的なアイコン等の UI 素材はデザイナの方に作ってもらうのですが、開発途中等で方向性が決まっていない段階では取りあえず適当なアイコンを適用して開発を進める事がしばしば存在します。この際に「取りあえずの適当なア…

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

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

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

所用でさくら VPS に Redmine をインストールしていました。基本的には さくらのVPS を使いはじめる – アカベコマイリ で書かれている通りにやっていけば良いのですが、いくつか違うところもあったのでメモ。OS はデフォルト (CentOS 6.2 x86_64) のままです…

Templates for Inno Setup

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

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…

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

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

Visual C++ での開発でよくやらかす事

/MD を /MT に変更するのを忘れたまま相手に渡して「Microsoft Visual C++ 20XX 再頒布可能パッケージ がありません」と言うエラーを発生させてしまう事.開発環境では Visual C++ がインストールされているので,Visual C++ がインストールされていない環境…

Inno Setup で透過処理

厳密には,透過と言う訳ではないですが.Inno Setup の TBitmapImage クラスには ReplaceColor と言うメンバ変数が定義されてあり,ここに指定した値が ReplaceWithColor で指定した値に変換されるようです.なので,透過(っぽい)処理を行うためには,透過…

64bit 版のインストーラから 32bit 用レジストリ値を取得する

Inno Setup の 64bit 版用のインストーラから 32bit プログラム用のレジストリを見る必要があってどうやるのかなぁと探していたら,公式ドキュメントの最初に記述されていました. The root key. This must be one of the following values: HKCR (HKEY_CLAS…

Inno Setup でもインクルードガードが有効だった

何らかのアプリケーションのインストーラーを作成する際には Inno Setup と言うソフトウェアを利用しているのですが,ここの Pascal スクリプト部分([Code] セクション)を再利用したいと思う事が多々あります.Inno Setup の Pascal スクリプトは(オプシ…

.NetFramework 4 のみで 2.0 向けアプリケーションを動作させる

今年の 4月に Microsoft から .NetFramework 4 がリリースされましたが,.NetFramework 4 はこれまでの 2.0 〜 3.5 とは「別物」と認識されるようです.そのため,.NetFramework 4 しかインストールされていない環境で,.NetFramework 2.0 向けにビルドされ…

git で強制的に pull する方法

ようやく悩みが解消されたのでメモ.Visual Studio 辺りのプロジェクト・ファイル群を丸ごと git リポジトリで管理していると,(自動生成されるファイルなどの関係で)手動では何も変更を加えていない(ビルドしただけなど)にも関わらず git pull 時に衝突…

多言語対応のメッセージ表示

インストーラーを作成する必要が出てきたのでググってみたところ,Inno Setup が好評だったのでこれを使ってみました.スクリプトを GUI ベースで生成できる ISTool を併用していますが,なかなか快適に書けています.その中で,どうやるのか分かりにくかっ…

svn/git での trunk/branches/tags

ちょっと真面目に git を触る必要が出てきたので,今回は Subversion (svn) と git でのディレクトリの区切り方の違い,所謂 trunk/branches/tags の管理方法(方針)ついてメモします. Subversion における trunk/branches/tags svn では,root (または,…