Development
CubeICE の利用動機の一つとして Mac などで作成された zip ファイルを解凍する際に文字化けしない と言うものが挙げられます。この記事では、なぜ文字化けが発生するのかと言う基本的な情報から、Windows における主要な解凍ソフトの対応状況までを簡単に紹…
2019 年 4 月 2 日、Visual Studio 2019 が正式版としてリリース (GA: General Available) されました。この記事では、 Visual Studio 2019 に関連する内容として、C# の新しいプロジェクト形式 (csproj) への移行について記載します。新 csproj 自体は Visu…
CubeSoft の各種プロジェクトでは、継続的インテグレーション (CI: Continuous Integration) 用サービスとして AppVeyor を利用していますが、諸々の事情を考慮して Azure Pipelines でも同等の CI を実行できるように環境の整備を進めています。この記事で…
現在、cube-soft@GitHub には CubePDF や CubeICE 等の実装コードを始めとして様々なリポジトリが存在します。この記事では、これらのリポジトリを修正する際の基本的な情報について記載します。 ディレクトリ構成 Git ブランチ構成 ビルド&テスト方法 ディ…
先日、Ghostscript が 9.26 にバージョンアップしました。リリースノートによると Ghostscript 9.26 では再び、セキュリティ問題に関する修正が実施されているようです。CubePDF も、近日中に Ghostscript のバージョンアップを含めた最新版をリリースする予…
先日、7-Zip ライブラリとしての CubeICE と言う記事を公開しましたが、ライブラリ化の試みは CubePDF シリーズでも行っています。CubePDF シリーズは Cube.Pdf と言うリポジトリで管理しており、ライブラリ部分は Libraries に、最終的なアプリケーション部…
ここ 1, 2 年、主に キューブ・ソフト で配布している Windows ソフトウェアを中心に、ユニットテスト周りの整備を精力的に行ってきました。今回は、テストと言う視点で、自らのプログラミングの軌跡を振り返るような記事を執筆してみようかと思います。 テ…
圧縮・解凍ソフト CubeICE をゼロから改修 に記載した通り、昨年、CubeICE に対して大幅な修正を実施しましたが、この際にライブラリとしても利用できるようにインターフェース(クラスやメソッド)を整理する事をテーマの一つに設定していました。そこで、…
先日 CubePDF Utility 0.5.0β のリリースが完了し、数ヶ月にわたる CubePDF シリーズの改修、さらに言えば、去年からスタートさせていた CubeICE を含むキューブ・ソフト初期のソフトウェア大改修プロジェクトがようやくひと段落しました。そこで、この記事…
先ほど「Zip Slip」と命名された圧縮・解凍処理に関する脆弱性の情報を目にしました。 Zip Slip Vulnerability アーカイブファイル関連の脆弱性「Zip Slip」、大手プロジェクト多数に影響 広く採用されている書庫展開処理に任意コード実行を許す脆弱性 この…
近年は GitHub を始めとした Version Control Systems (VCS) のホスティングサービスと連携する形で、プログラミングやソフトウェア開発に関する様々な Web サービスが提供されています。私は専ら Windows のデスクトップ・アプリケーションを開発しています…
気付けば数年ぶりの更新となってしまいました。私は、普段 キューブ・ソフト (CubeSoft) と言う会社で様々な Windows ソフトウェアを開発・公開していますが、その一つに CubeICE と言うファイルの圧縮・解凍(展開)を行うソフトウェアがあります。今回、こ…
技術書を読むときにやってはいけない、たった1つの事 を見ながら、ふと、思い出した事。タイトルは、前述記事に倣ってみました。本題の個人的に勘違いしていた事なのですが、それは、「技術書も小説のように、最初から最後まで、順番に読み進めていくもの」…
プログラミングの話題を書くのは久々な気がします。先ほど、何となく「Windows/Cygwin の方の gem もアップデートしておくかぁ」と思い立ちました。ここで無事にアップデート完了したまでは良かったのですが、それ以降 gem install/update と叩くと、パッケ…
この記事は C++ Advent Calendar 2013 の 8 日目の記事になります(あれ、俺 8 日目なのか……)。このネタを思いついたのは、先月に boostjp の ML で見かけた以下の投稿からでした。 Boost 1.55.0 Beta 1 RCが公開されました。http://lists.boost.org/Archiv…
プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.3 “Parallel, Concurrent, and Distributed Programming” 並行世界の魔物に人類はどう立ち向かうのか。 序文(熊崎 宏樹) Lock-free 入門(熊崎 宏樹) OpenACC(藤田 典久) Erlang と Scala におけ…
今年もそろそろ Advent Calendar が始まる季節になりました。 一般的なAdvent Calendarは,12月25日のクリスマスを楽しみに待つために,12月1日から24日までのカレンダーの日付の部分(扉だったりする)を開けるようになっており,1日ずつその日の日付の部分…
Google+1 のソーシャルカウントについては SharedCount 経由で取得していたのですが、先ほど SharedCount からの反応がまったくなくなっていました。すぐに復帰したようなので一時的なものだったようですが、この際なので自力で取得する形に変更しました。つ…
Twitterの「ユーザーID」が32ビットを超える、アプリ開発者などは確認を -INTERNET Watch Watch と言う記事を読みながら「そう言えば C とか C++ 以外のプログラミング言語は long が 64bit と言う保証はあるのだろうか」と言う事が気になったので、64bit 整…
リンク無しでテスト用のソースファイルが複数ある状況でビルドしようとしたら嵌ったお話。先日、ユニットテストについての講義をする際に「取りあえず Boost.Test を使ってみましょう」と言うことで、リンク(≒ Boost をビルド)しなくても良い boost/test/i…
所用で Code Complete を読んでいると「反復型開発 (Iterative and Incremental Development)」と言うキーワードが出てきました*1。「反復」と言う単語を聞いてまず思い浮かんだのは昨今よく話題になっている「アジャイル開発」なのですが、「アジャイル開発…
iText (iTextSharp) でファイルサイズの大きな PDF を扱う場合、メモリや速度の問題を解決するために RandamAccessFileOrArray クラスを利用すると言う方法が存在します。 対策方法はないかと調べたところ、PdfReader クラスのコンストラクター public PdfRe…
Microsoft .NET Framework を使用したプログラミングを行う場合、特に制限がなければ C# なり VB.NET なり(最近は F# も?)を使用した方が良いと思うのですが、時には過去の資産(C++ のクラスライブラリ等)を利用する等の理由で C++/CLI を使用する事も…
Google Chrome 28 から「リッチ通知」機能と言うものが追加されたそうです。Google Chrome には以前から通知機能があったそうなのですが*1、この機能の強化版的な位置づけでしょうか。実際にどんな感じになるのかについて、github にサンプル があったので使…
間が空きましたが、git の運用指針 - Life like a clown のフォロー記事、第 2 弾。 公開リポジトリに push した commit を rebase してはいけない rebase に関しては、まだ使いどころが今一つ掴めないでいるのですが、明快な指針が一つ示されていました。 …
現在、Microsoft Ribbon for WPF を使用したアプリケーションを作成しているのですが、デザインを詰める段階になって、なかなかしんどい事態に遭遇しました(参考:残念なMS Ribbonについて - DICOM Viewer 開発記)。例えば、Ribbon の背景色をデフォルト色…
細かい話なんですが、どうインターフェースを定義しようか頭を悩ませてきたので、書きながら整理。何らかのファイルの「複数のページ情報を管理」するためのクラスを書いています。内部では何らかのコレクションクラスで管理する事になるのですが、管理して…
前回、git の運用指針 - Life like a clown と言う記事を書きましたが、git の事をよく理解しない状態のまま取り急ぎ作成したために、やはりいろいろとまずい所があったようです*1。指摘された点としては、「merge や rebase の理解がまずい」、「git-flow …
ソフトウェア開発に関しては、これまでほぼ一人で完結していた*1ので git の運用方法もかなり適当だったのですが(ただのコミットマシーン状態)、今回、同一プロジェクトに対して複数人でコミットしていく形になっているので、その状態だとやはりまずいなと…
アプリケーションを開発する際、最終的なアイコン等の UI 素材はデザイナの方に作ってもらうのですが、開発途中等で方向性が決まっていない段階では取りあえず適当なアイコンを適用して開発を進める事がしばしば存在します。この際に「取りあえずの適当なア…