圧縮・解凍ソフト CubeICE をゼロから改修

気付けば数年ぶりの更新となってしまいました。私は、普段 キューブ・ソフト (CubeSoft) と言う会社で様々な Windows ソフトウェアを開発・公開していますが、その一つに CubeICE と言うファイルの圧縮・解凍(展開)を行うソフトウェアがあります。今回、こ…

Windows/Cygwin で gem install/update が失敗する

プログラミングの話題を書くのは久々な気がします。先ほど、何となく「Windows/Cygwin の方の gem もアップデートしておくかぁ」と思い立ちました。ここで無事にアップデート完了したまでは良かったのですが、それ以降 gem install/update と叩くと、パッケ…

Boost 逆引きリファレンスのサンプルコードをテスト化してみる

この記事は C++ Advent Calendar 2013 の 8 日目の記事になります(あれ、俺 8 日目なのか……)。このネタを思いついたのは、先月に boostjp の ML で見かけた以下の投稿からでした。 Boost 1.55.0 Beta 1 RCが公開されました。http://lists.boost.org/Archiv…

未来への魔導書 〜 プログラミングの魔導書 Vol.3

プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.3 “Parallel, Concurrent, and Distributed Programming” 並行世界の魔物に人類はどう立ち向かうのか。 序文(熊崎 宏樹) Lock-free 入門(熊崎 宏樹) OpenACC(藤田 典久) Erlang と Scala におけ…

Advent Calendar 2013 まとめのまとめ

今年もそろそろ Advent Calendar が始まる季節になりました。 一般的なAdvent Calendarは,12月25日のクリスマスを楽しみに待つために,12月1日から24日までのカレンダーの日付の部分(扉だったりする)を開けるようになっており,1日ずつその日の日付の部分…

Google+1 と Pocket のソーシャルカウントを取得する

Google+1 のソーシャルカウントについては SharedCount 経由で取得していたのですが、先ほど SharedCount からの反応がまったくなくなっていました。すぐに復帰したようなので一時的なものだったようですが、この際なので自力で取得する形に変更しました。つ…

プログラミング言語ごとの 64bit 整数対応状況

Twitterの「ユーザーID」が32ビットを超える、アプリ開発者などは確認を -INTERNET Watch Watch と言う記事を読みながら「そう言えば C とか C++ 以外のプログラミング言語は long が 64bit と言う保証はあるのだろうか」と言う事が気になったので、64bit 整…

Boost.Test (boost/test/included/unit_test.hpp) の使い方

リンク無しでテスト用のソースファイルが複数ある状況でビルドしようとしたら嵌ったお話。先日、ユニットテストについての講義をする際に「取りあえず Boost.Test を使ってみましょう」と言うことで、リンク(≒ Boost をビルド)しなくても良い boost/test/i…

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

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

Microsoft Ribbon のグラデーション効果を削除する

現在、Microsoft Ribbon for WPF を使用したアプリケーションを作成しているのですが、デザインを詰める段階になって、なかなかしんどい事態に遭遇しました(参考:残念なMS Ribbonについて - DICOM Viewer 開発記)。例えば、Ribbon の背景色をデフォルト色…

ページ番号とインデックス

細かい話なんですが、どうインターフェースを定義しようか頭を悩ませてきたので、書きながら整理。何らかのファイルの「複数のページ情報を管理」するためのクラスを書いています。内部では何らかのコレクションクラスで管理する事になるのですが、管理して…

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

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

JavaBlack で紹介されている書籍の統計

昨日は 変なネタ記事 を投稿してしまいましたが、本当にやりたかった事はこちら。カレーなる辛口Javaな転職日記 のブログは何度か話題(炎上?)になった時に見ていたので知っていたのですが、このブログを見たときに「紹介されているもの自体は良書が多い、…

JavaBlack オタが非オタの彼女に JavaBlack 世界を軽く紹介するための 10 冊

プログラミングは一朝一夕に達成できるものじゃない - カレーなる辛口Javaな転職日記 と言う記事で久々に id:JavaBlack が火を噴いていたので何となく書きました。本当は別の記事(追記: JavaBlack で紹介されている書籍の統計 - Life like a clown)がある…

ReadOnly な参照型のメンバ変数

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

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

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

サムネイル画像用の 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() メソッドで返される文字に「*」記号を加えたものに相当?)は無条件で置換して…

amazon-ecs 周りの修正

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

Hello, iTextSharp!

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

GetPixel/SetPixel は遅い

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

プログラマがやってはいけない97のこと

プログラマが知るべき97のこと改変シリーズ第4弾.抜粋元のメインは,#やってはいけないプログラマーのNG まとめ - Togetterまとめ,および twitter 検索 - #やってはいけないプログラマーのNG です.また,プログラマが体験するべきではない50の危険なこと …

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

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

_tcscpy_s (strcpy_s, wcscpy_s) の引数

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