itok's Lab

昔の開発ネタを記録として残してます

2006-01-01から1年間の記事一覧

タグ付けできるwebメモアプリ - wTagにRSS配信機能をつけました

wTagに一部から要望のありました新規メモのRSS配信機能をつけました。最新の10件分がRSSで配信されます。カテゴリとしてボード名やタグ名もつけてます。(カテゴリ表示に対応していないリーダのために本文中にも同様にボード名など記載してます) こんな感じ…

タグ付けできるwebメモアプリ- wTag β版公開

お待たせしました。タグ付けできるwebメモアプリ、wTagのβ版登場です。なんじゃそりゃ、と思われた方、とりあえず、下記リンク先をご覧くださいませ。 こんなことありませんか? 日ごろのメモをネット上に保存しておきたい wikiとかblogは設定が面倒だし文法…

wTag予告編

熱意製作中の wTag ですが、ベータ版が実装をほとんど終えて、テスト段階へ移行しております。そんなわけで、予告も兼ねた宣伝を。一新されたトップページからの一部抜粋です。 こんなことありませんか? 日ごろのメモをネット上に保存しておきたい wikiとか…

evalの引数と返り値

文字列を式として評価してくれる便利関数evalですが、(少なくとも)JSONの評価をする時なんかはクロスブラウザ対策(みたいなもの)が必要なのかも? SafariやFirefoxだとこれでいいんですが、 var json = eval(jsonStr); IE(6でも7でも)ではちゃんと評価…

キーイベントを受け付ける

Window上でのキーイベントを受け付ける。 -(void) keyDown:(NSEvent*)theEvent これでいいかと思えば、一概にそういうわけでもなく、ショートカットキー(コマンドキー+なにか)の場合はイベントを受け取ることができません。では、どれかっていうと、こっち…

wTagちょっとだけ更新

拙作のタグ付けできるWebアプリ"wTag"をちょっとだけ更新しました。メモ本文中に"="や"&"を含んでいると登録したメモが途中で切れてしまう、という問題がありまして、結構致命的だったので。 wTag preα ついでに、著名なAjaxライブラリprototype.jsを導入し…

Windowの背景を全て消す

自前のイメージなんかをwindowとして使いたい場合、タイトルバーもいらないし、四角いWindowの下地もいらない、と。 タイトルバーなどは初期化時。NSBorderlessWindowMaskを使います。普通はサブクラスとして実装するかな。 [[NSWindow alloc] initWithConte…

フォーカスリングを消す

ボタンなどにつくフォーカスリング(デフォルトならAqua色の枠)を消す方法。NSCellのメソッドを使います。 [cell setFocusRingType:NSFocusRingTypeNone]; すべてのボタンに適応したいならNSButtonのサブクラスを作ってそこでの初期化時に呼び出してもいい…

wTag pre α

ふとしたことから↓こんなことができたらいいなあと思い立って作ってみました。webベースのタグ付けできるメモアプリ。 思いついたことを簡単にメモしたい wikiまで複雑な構成はいらない。とにかく簡単にメモしたい メモをどこでも見られるようにしたい。なの…

AspectCocoa

アスペクト指向というプログラミング技法があります。以前、会社でも興味のある人たちで集まってAspectJを元に勉強会を開いたこともありましたが、Cocoa版のフレームワークもあるそうですね。MYCOMでHMDTの木下さんが執筆しているObjective-Cに関する連載で…

タグ付け可能なWebベースの簡易メモアプリ wTag ちょっと公開してみる

タグ付け可能なWebベースの簡易メモアプリwTagをちょっと公開してみます。 wTag プロトタイプ2号 基本的な機能としてはこういう感じで、もうちょっとちゃんと作り込んで、ソースを公開するか、あるいはサービスとして公開できたらいいなあ、とか思ってます。…

防犯マップ大阪 公開しました

大阪府警の発信している安まちメールを元に犯罪情報をGoogleMapsにプロットしてみました。以前も似たようなものを作っていたんですが、今回はもっとちゃんと作り直し。feedtailor Inc.の大石さんとの共同開発になります。 RSSでの情報配信も同時に行っていま…

Subversion

OSXでsubversionを使ってみる、メモ。 とりあえず、OSX用インストーラが公開されているので、ダウンロードしてインストール。 Subversion for Mac OSX マニュアルはこのあたりを参考に。ってcvsに慣れてる人なら、両者のupdateとstatusにおける違いさえおさ…

読み込み完了を検知する

例えばリモートにある動画・音声ファイルを指定してオブジェクトを生成した場合に、そのファイルの読み込みが完了(再生完了ではありません)したことを検知します。QTKitを使うと結構簡単で、NSNotificationの枠組みである程度処理できちゃいます。 { ... Q…

再生終了を検知する

動画や音声の再生終了を検知する。これもQuickTimeのAPIをそのまま使うやり方と、QTKitを使ってCocoaのみのやり方が必要があります。 QuickTime API使用 呼び出し側。一応Objective-Cからの呼び出しってことで。 @implementation MyObject ... { ... Movie q…

動画・音声などの情報取得

動画や音声ファイルの再生時間やファイルサイズなどをCocoa経由で取得します。 QuickTime API使用 まず NSMovie を生成しQuickTimeのオブジェクトに変換。 NSMovie* movie = [[NSMovie alloc] initWithURL:url byReference:NO]; Movie qtmov = [movie QTMovi…

エンコーディング名からNSStringEncodingを取得

まずCFStringを用意します。 CFStringRef strRef = CFSTR("utf-8"); CFStringConvertIANACharSetNameToEncodingを用いてCFStringEncodingヘ変換。 CFStringEncoding cfEncoding = kCFStringEncodingInvalidId; cfEncoding = CFStringConvertIANACharSetNameT…

対応アプリの一覧を取得する

例えば、"http://" とかメールの "mailto:"、 RSSの "feed://" とかを受け取ってくれるアプリを探す。いわゆるデフォルトアプリの設定をおこなったりするものですね。 CFArrayRef LSCopyApplicationURLsForURL(CFURLRef inURL, LSRolesMask inRoleMask) inUR…

明示的にコンテクストメニューを表示

control + 左クリックや右クリック以外のアクションでコンテクストメニューを表示させる方法。(CloCalXのダブルクリックでコンテクストメニューを表示させているのはこれ) NSViewのサブクラスに数行のコードを書けば出来てしまうみたい。その表示させたい…

文字列とメソッドの相互変換

文字列 → メソッド SEL sel_registerName(const char *str); メソッド → 文字列 const char* sel_getName(SEL aSelector); たとえば、状態に応じたメソッドコールをおこないたいときに、メソッドの詰まったテーブルを用意したりすることがあると思うのですが…

値変換の実装

Appleのドキュメントを見てもいまいち実装の仕方がよくわからなかったんですが、いろいろ徘徊して解決したので、メモっておきます。(ちなみに、CloCalXのホットキー文字列の表示や、iCalの色設定部分などで使用されています) 値変換を独自に実装するために…

使用可能なフォント一覧表示

わざわざフォントパネルを開くほどのことじゃないけども、とにかくフォントの一覧をメニュー形式で表示して選択できるようにしたい、ということ。 基本的にはこういう感じです。 NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSMutable…

メモリに関して

はじめに断っておきますと、完璧に理解しているとは言い難いわけでして、この文章はほんとにメモです。(Objective-C初心者の知人に説明するのに使いました)ご了承ください。 (おそらく)一般的な話 CやC++では、オブジェクトは「それを作ったオブジェクト…

ローカライズ

Cocoaアプリのローカライズメモ。たとえば、英語→日本語のローカライズの場合は、こんな感じかな、と。 まず/usr/bin/nibtoolを使用して、既存のnibファイルからテキストによる情報をとり出します。 nibtool -L English.lproj/XXX.nib > XXX.strings で、こ…

CD情報取得(AppleScriptとCocoa)

いろんな要素がからんでいるんですが、CocoaからAppleScriptを呼びだして、iTunesを利用することにより、CDドライブに挿入されている音楽CDの情報(CDDB情報)を抜き出します。 まず、単体で動くAppleScriptはこんな感じ。 tell application "iTunes" set aCD …

iCalとiCalendar

iCalはご存知の通りAppleの作ったスケジュール管理ソフトでして、iCalendarというのは、そのデータ形式の規格のこと。くわしくは、RFC2445, 2446, 2447に記述されているわけです。英語はいや、という人は、こちらにおおよその仕様が日本語でまとめてあります…