« 2010年2月 | トップページ | 2010年4月 »

2010年3月の記事

2010年3月31日 (水)

太陽光発電2010年3月の実績

今日で3月も終わりですので、3月の発電量を発表します。

3月の発電量は259kwh でした。3月前半が98kwhでしたので、後半は161kwhだったことになります。後半も天気が悪く、発電量が少ないという印象でしたが、後半はほぼ平年並みの発電量ということになります。しかし、前半の少なさを挽回する事は出来ず、平年の8割に満たない発電量となりました。

Image_100331_1

2010年3月28日 (日)

Mac OS X 用メモ帳ソフトの作成に挑戦(4)

Core Data を使っていると、Table View の表示順序が起動するたびに変わってしまいます。どうやらCore Data では、データの順序が保存されないようです。

仕方が無いので、メモ箱はソートして表示するようにしていましたが、やっぱり自分の好きな順序に並べたい。ネットで調べてみると、Core Data の属性に順序を示す数値を保存しておいて、その属性を使ってDrag & Drop で並び替える方法が見つかりました。

Image_100328_1まず、Xcode のデータモデリングツールでエンティティBox に順序を保存するための属性order を追加します。そして、NSTableView のカラムを1つ増やし、Cocoa Binding でorder の内容が反映されるようにします。このorder のカラムは、Hidden をオンにして表示されないようにしておきます。

次にサンプルコードを参考にしながら、メモ箱を追加したときにorder に番号を追加するコードと、Drag & Drop のコードを追加。処理の中身は良く分からないところもありますが、なんとか自分の好きな順に並び替える事が可能になりました。良い感じです。

しかしUNDO を行うと、order 属性は元の状態に戻りますが、Table View の表示内容が変わりません。要するに、order の順序と、実際に表示されてる順序が異なるという状態になってしまいます。どうしたものか... 。

追記(2010/4/25)

Interface Builder で、NSArrayController のオプションである「Auto Rearrange Content」にチェックを入れれば、UNDO時にTable View の表示が更新されることが分かりました。

2010年3月27日 (土)

Mac OS X 用メモ帳ソフトの作成に挑戦(3)

前回でユーザインターフェースを作りましたが、メモ箱の一覧を見るためにドローワをオープンするのは面倒だと感じましたので、メモ箱のリストをメインウィンドウに移動し、メールソフトのような3ペインのインターフェースに変える事にしました。

また、自分しか使わないので、日本語リソースを追加して、ユーザインターフェースを日本語にしました。ひとまず英語リソースはプロジェクトから外します。

Image_100327_1

ツールバーのアイコンがカッコ良くないけど、取りあえず先に進めます。

ここまではプログラムを1行も書かずに、そこそこ動くところまで出来ていますが、このままでは使いやすいアプリケーションにはなりません。ここからはプログラミングが必要です。まずは下記の3つの機能を実装しました。

  • ウインドウを閉じるとアプリケーションが終了するようにする。
  • 箱、メモ用紙を削除する前に警告のシートを表示し、確認できる。
  • 環境設定ウインドウで上記のシートの表示を行うかを設定できる。

2010年3月21日 (日)

Mac OS X 用メモ帳ソフトの作成に挑戦(2)

前回でXcode のデータモデリングツールでデータ構造(エンティティと呼ぶらしいです)を作成しました。次はユーザインターフェースを作ります。

ユーザインターフェースは、Interface Builder を使って作成します。Core Data では、エンティティから直接ユーザインターフェースを作る事ができるようです。作成したエンティティをInterface Builder の空のWindow にオプションを押しながらドロップすると、そのWindow 内にユーザインターフェースが生成されます。

ただ、このままでは見栄えと使い勝手が良くないので、自動生成されたユーザインターフェースを編集し、参考書を見ながらCocoa Binding で繋いでいきます。そして、Xcode でビルドして実行。

Image_100321_1

ここまでの作業だけで、下記の事ができるようです。

  • 箱の追加と削除。
  • メモ用紙の追加と削除。
  • 箱に含まれるメモリストの表示。
  • メモの編集。
  • 追加削除、編集内容のUNDO、REDO。
  • メモの自動読み込みと保存。
  • メモのタイトルの検索(絞り込み)。
  • Window分割位置の変更と記憶。
  • ドローワ表示のオン、オフ。
  • ツールバーの編集。
  • Windowの位置と大きさ等の記憶。
  • 表のソート、列の移動処理。

ほとんど出来ているようなものですね。ここまでで、まだプログラムは1行も書いていません。Core Data とCocoa Binding 凄いです。

2010年3月20日 (土)

Mac OS X 用メモ帳ソフトの作成に挑戦(1)

Mac OS X でのプログラミングに再挑戦を開始した訳ですが、まずはメモ帳ソフトを作ってみます。練習なので凝った仕様にはせずに、簡単なものを目指します。こんな感じでしょうか。

  • メモには表題と作成日時を記載できる
  • メモは箱ごとに分類できる
  • 箱を選ぶと、箱に含まれるメモの表題が表示される
  • 表題を選択すると、その内容が表示される
  • 起動時にメモを自動で読み込み、終了時に自動で保存

メモのデータはCore Data で扱います。Core Data を使えばデータの読み込みと保存は自動で行われるようです。 まずはXcode でCocoa Application のプロジェクトを作成します。このときに「Use Core Data for storage」にチェックを入れておきます。

次に参考書を見ながら、Xcode のデータモデリングツールでデータ構造を作成します。こんな感じとなりました。

Image_100320_1

メモ箱(Box)には箱の名前(name)があり、メモ用紙(Paper)と関連付けます。箱とメモ用紙は1対多の関係です。メモ用紙には作成日時(date)と表題(title)、メモの内容(text)があります。

これでデータ構造の定義は終わりです。

2010年3月15日 (月)

太陽光発電2010年3月中間発表

今日で3月も半分が過ぎましたので、中間発表です。

3月前半は天気が悪すぎます。半月での発電量は98kwhでした。これは真冬並みの発電量です。例年ですと3月は340kwhくらい発電します。半月ですと約170kwhくらいになるはずですので、例年の60%ほどの発電量となります。後半はもっと晴れてくれるのでしょうか。

Image_100315_1

2010年3月14日 (日)

Mac OS X で Subversion を設定してみる

プログラミングを始めるのであれば、バージョン管理システムは要るだろうということで、Subversion を導入してみる事にしました。Subversion であれば、Mac OS X に標準で入っていますし、Xcode でもサポートされているみたいですので。

以下の手順で Subversion の設定ができました。(思い出しながら書いています。たぶん間違いないと思うが。)ここでは省略していますが、一般ユーザ権限でアクセスできない領域のファイルやディレクトリにアクセスしていますので、sudo で認証が必要となります。

Apache の設定

/etc/apache2/httpd.conf ファイルに下記の内容を追加します。

LoadModule dav_svn_module  libexec/apache2/mod_dav_svn.so

/etc/apache2/other/ ディレクトリに下記の内容で subversion.conf ファイルを作成します。このディレクトリに置かれたファイルは、httpd.conf にインクルードされるようになっています。

<Location /svn>
   DAV svn
   SVNParentPath /var/svn/repo
   SVNListParentPath on
   AuthType Basic
   AuthName "Subversion"
   AuthUserFile /var/svn/passwd
   Require valid-user
</Location>

Subversion用のディレクトリを作成

Subversion用のディレクトリを作成します。

mkdir /var/svn
mkdir /var/svn/repo

パスワードファイルの設定 passwd ファイルを使用して、全リポジトリにアクセス制限を行うようにします。

cd /var/svn
htpasswd -c passwd user-name
New password: ****
Re-type new password: ****
Adding password for user user-name

ディレクトリとパスワードファイルに適切な権限を設定します。

chown -R www:www /var/svn
chmod 600 /var/svn/passwd

リポジトリの作成

まず、テスト用にリポジトリを作成してみます。先ほど作成した /var/svn/repo/ ディレクトリ内にtestリポジトリを作成します。

mkdir /var/svn/repo/test
svnadmin create --fs-type fsfs /var/svn/repo/test
chown -R www:www /var/svn/repo/test

Apacheの起動

システム環境設定の「共有」で、Web共有をONにします。既にONになっている場合は、一度OFFにしてから再度ONにすれば、Subversionの設定が読み込まれます。これで、http://localhost/svn/test でリポジトリにアクセスできるはずです。

2010年3月13日 (土)

Mac OS X でプログラミングを再開

Mac OS X でのプログラミングに再挑戦をすることにしました。7年ほど前にも一度 Mac OS X でプログラミングに挑戦したのですが、簡単なMIDIプレイヤを作成しただけで止めてしまいました。

最近の iPhone 人気のためか、本屋でも Xcode や Objective-C に関する本が並ぶようになりました。Mac のプログラミング関係の本がこんなに並ぶのは初めてではないかと思うくらいです。そこで、またプログラミングをしてみたくなりました。

Image_100313_17年前にMIDIプレイヤ(左図)を作った時は、まだ Xcode ではなく、ProjectBuilder でした。Xcode も Excel用Automatorアクションを作ったりしていたので、全く触っていないわけではないのですが、Xcode に慣れるために、まず最初に、今は動作しなくなっているこのMIDIプレイヤを最新の SDK でビルドし、動作するようにする事にしました。

使用している API が使えなくなっていたり、色々と修正が必要だったのですが、なんとかSnow Leopard で 64bitアプリとして動作するようになりました。(元々あったバグはそのままですが... 。)

次はCocoa Bind と、Core Data の練習がてらに、メモ帳のようなソフトを作ってみようと思います。

« 2010年2月 | トップページ | 2010年4月 »

フォト

最近のトラックバック

無料ブログはココログ