lupin

いまさらながらプラグインて

プラグイン形式なもんで、デバッグするためには、 標準出力に吐くコードを書く コンパイルし、Lupinにインストール Lupinを実行する という3ステップがかかるわけですが、これがやってられない。 プラグイン形式にしなければこんなに面倒ではなかったろうに…

ぼやき

というか、これくらいの機能なら誰でも思いつきそうなものなのに、ぼくが知ってるアーカイバはどれも対応してないですなぁ。 別に特許とかは取らんから、StuffIt ExpanderなりWinRARなり、対応してほしいものです。

展開時の惨劇

ZIPだとかLZHだとかいう書庫はインターネットからウェブブラウザを使ってダウンロードされ、ぼくの場合だとデスクトップに保存されます。 で、多くの場合書庫のある場所(つまりデスクトップ)にそのまま展開するのですが、書庫によってはたくさんのファイル…

バージョンアップ

http://lupin.sourceforge.jp/index?Lupin おとといですが、久しぶりにるぱんのバージョンアップをしました。 で、一ヶ月以上空けての更新なのでさぞかし変更点も多いだろうと思ったら、 (すべてのプラグイン)書庫情報の構築をフォアグラウンドで行うように…

いろいろと考えて

母「もしもあなたに生き別れの19歳の義妹(美人で巨乳)がいて、突然あなたと同居することになったらどうする?」 僕「例外をスローします*1」 …さて、今日の議題はC++やJavaだけでなく、OCamlにさえも付いている驚きの例外機構の話です(例によってISer以外…

こんなもの作ってます

るぱん(Lupin Plugins)の力を借りた「書庫内部画像ビューア」です。 誰でも思いつきそうなネタですが。 圧縮データをハードディスクに解凍せずにNSDataとして受け取り、NSImageに変換して表示します。画面右下の水色の三角はスライダーで、これを左右に操…

見過ごしてきたツケ

C言語での文字列処理は、つくづく面倒なことが起こりやすいということは(HTTPサーバ作りでも)常々実感しているのですが、るぱんでもやってしまいました。 なにをやってしまったかというと、デコードのミス。GNU Tarは、Tarアーカイブの内部ファイルを…

インストーラを簡単に。

圧縮・解凍が簡単に行えるプラグイン形式のアーカイブソフト。 (.tar/.tar.gz/.tgz/.tar.bz2/.tbz/.tar.Z)形式、(.zip)形式、(.lzh)形式に対応したプラグインが付属されています。FrameworksやPluginsをライブラリフォルダにコピーしないと使えないので少々…

標準エラー出力

るぱんを使っての作業中にエラーが起きたとします。でも突然るぱんが終了!では、そのエラーが起きた原因(るぱんにあるのか、書庫が壊れてるのか、パスワードが間違ってるのか、etc.)が分かりません。そこで、NSTaskでUNIXアプリケーションを動かしている…

大学のiMac

僕が通っている大学には昨年度からiMacが正式採用されているおかげで、快適にMac OS X(現行では10.3.9)を使うことが出来ています。さらにMac OS Xには無料の開発環境であるXcodeが入っているので、Cocoa/Objective-Cでるぱんの開発をしていたりする訳です…

アイコンを描いてみた

るぱんにアイコンがないのが寂しいのが最近の悩みです。 こういうときに代わりに描いてくれるドット職人が知り合いにいればよいのですが、生憎ぼくの交友関係は狭いので、しかたなく自分で描いてみました。 アイコンの作成にはPhotoshop Elements 2.0を使い…

フォルダの差分上書き

書庫を展開して出来たフォルダを、展開先に移動しようとしたら既に同じ名前のフォルダがあったとします。この場合貴方ならどう対応しますか?というのが今日のテーマ。 Mac OS XのFinderで同じことをやると、上書きするかキャンセルするかのダイアログが出て…

環境設定作り

http://lupin.sourceforge.jp/でも書いたりしてますが、るぱんの環境設定の実装を始めました。まずは今日のニ限に設定項目のリストアップを行い(現状では実装不可能なものもあり)、Interface Builderを使用してひたすらリソース作り。とここで倦怠感に犯さ…

マックをもっていない人のために

http://lupin.sourceforge.jp/index?%A5%B9%A5%AF%A5%EA%A1%BC%A5%F3%A5%B7%A5%E7%A5%C3%A5%C8 今日も今日とて更新しております。

るぱん更新…。

昨日のリリースに色々と問題点が見つかったので、被害が拡大する前に問題点を修正して再度リリースしました。4月20日版をダウンロードしていただいた方には申し訳ないのですが、新しい方を使ってください。 問題点が発覚したのは、ルパンの紹介ページを作る…

リリースしました

http://lupin.sourceforge.jp/index?Lupin 企画を立ち上げた12月18日から、当初の目標であった二月中のリリースを遥かにすっ飛ばし、実に4ヶ月をかけて最初のリリースビルドを公開いたしました。Lupin開発にずーっと使わせていただいた我が大学のiMac環境に…

リリース準備

Lupinのリリース準備に追われております。SourceForge.jpにはリリースファイルをアップしました。とりあえずサポートページはこのくらいにして、今は自分のウェブサイトの準備中です。

英語版リードミー

もう色々と泣きそうになりながら書きました。こんなに英語を書いたのって何ヶ月ぶりだろうか。 文法とかどうしようもない(上に推敲もしてない)ので、るぱんが有名になったら、誰か偉い人に書いてもらいたいです。 それにしてもエキサイト翻訳は仕事を減ら…

リリース準備

4月20日にSourceForge.jpを利用してバイナリの(一応)正式なリリースを開始します。 現在は英語版リリースはほぼ完成した(と思っている)ので、もうこれ以上ソースに手を入れることは一旦止めて、ドキュメント作りに励んでおります。 最初は取りあえずS…

リリース準備

そろそろリリースしなければならないだろうという危機感から、バイナリの配布を急いで準備しています。nibtoolを使って日本語リソースの作成、エラー時に表示するダイアログのテキストの編集、なんかをやっています。やっぱり日本語リソースが付くと、自作ソ…

Lupin開発に待った?

現在Mac OS Xで動作する圧縮展開統合ソフトLupinの開発が着々と進められているが、その流れを止めるような出来事が起きた。日本時間の一日、世界的なベストセラーを誇るハリーホッターシリーズの作者であるJ.K.ローリングストーンズさんのマネージャーによる…

サンプル

SMAPとTOKIOのメンバーのプロフィールを表示するサンプルを作ってみました。ソースコードとアプリケーションが入っていますので、お試しください。恐らくMac OS X 10.2でも動作するはずです。ただしXcodeで作ったので、Project Builderではプロジェクトファ…

実装の流れ(NSMutableArrayの配列編)

NSOutlineViewを表す場合、NSDictonaryなどを使って、木構造をとることが多いので、その例を使って整列を行うメソッドの例を挙げておきます。以下は、itemがchildというキーでNSMutableArrayを持つ場合の例です。子を整列した後、孫について再起呼出しを行っ…

実装の流れ(カラムのクリック編)

まずOutlineViewをパレットからウィンドウに置きます。 コラムをクリックできるように、Column Selectionにチェックを入れます。 クリックされたコラムがどれなのか簡単に判別できるように、OutlineViewのtableColumnにIdentifier(識別子)をつけます。 out…

Mac OS X 10.2でも動作させるための道のり

まずカラムがクリックされたことを受け取らなければなりません。NSOutlineViewの親クラス、NSTableViewには、 - (void)tableView:(NSTableView *)tableView sortDescriptorsDidChange:(NSArray *)oldDescriptorsというソートに適したメソッドがある(NSTable…

NSOutlineViewをカラムのクリックでソート

るぱんでファイルリストウィンドウをFinderのように(ファイル名やサイズで)整列できるようにしたいと考えました。ファイルリストにはNSOutlineViewを使っているので、カラムをクリックしたときに配列をカラムによって整列し、再表示する、という流れです。…

フォルダの上書き

昨日書き忘れてたんだけど、展開痔に同名のフォルダがあった場合の処理について。Windows(のエクスプローラ)とMac OS X(のFinder)におけるフォルダの上書きはかなり挙動が違います。試してみれば分かるけど、Windowsは移動先のフォルダ内にあるファイル…

展開の流れ

よーし、書庫を展開だ。頼んだぞ、るぱん! あれ、シートダイアログだ。なになに、同名のファイルが存在してるって? そんなことわかってるよ、よし「全てのファイルに適用」にチェックを入れてOK、っと。 ようやく終わったか。と思ったらまたエラーが出てる…

ファイルの移動

展開先にLupinX(Xは1から始まり、存在しないファイル名になるまで調べる)というディレクトリを作る。 LupinX/に展開を行う。 親ディレクトリにLupinX下のファイルを全て移動する。 1. NSFileManager* manager = [NSFileManager defaultManager]; [manager …

ファイルが既に存在していたら?

展開の時の難関にさしかかりました。それは「展開に失敗した時の処理」です。重要なのは、ユーザに選択を迫るのか、何回例外が発生するのか、をよく考えてどのような処理を行うか決めることです。 ファイルが存在しない場合 ファイルの書き込みに成功した場…