Monthly Archives: August 2008

Art Envi

このエントリはiPhoneから書くので、あとで必要があれば追記します。

最近、Art Enviという絵画鑑賞ソフトがApp Storeに登場した。
こんなことを言っても後出しじゃんけんだが、こんなソフトがあったら楽しいだろうなとは思っていた。
初めに全部のデータをダウンロードするためか?動作速度が遅いのが難点だが、手軽に美術作品を楽しむことができる。

まだまだ色々な種類のアプリが出てきて、こんな可能性もあるよとiPhoneの可能性を教えてくれるのがとてつもなく楽しい。

機械アレルギーをどう超えるか

Crêpeをさわってもらったのですが、Crêpe自体の機能というよりも、機械アレルギーがとてもあるということの方が問題だなぁと思いました。

それは今までの機械によってうまくいかなかった(やりたいことと操作が直感的に結びついていない)という失望があるのかもしれないし、よくわからないメッセージを出すということもあるのかもしれないし、はたまた自分は機械に弱いという思い込みがあるのかもしれないし。

人の考え方を変えるのがほとんど無理なことと一緒で、人の発想を変えるのにもこれまたとてつもなく難しい。

哲学を持ってそれ以外を疎外するか、それとも全てを受け入れるか

(あまり文章をまとめようとか、そういう気持ちはありません、行きつ戻りつして記すのです)

タイトルのこの二つ。

哲学を持ってそれ以外を疎外するか?はたまた全てを受け入れるか?

たぶん哲学を持って、それ以外を全部疎外していたら、きっとどこかで壁にぶつかるだろう。
まったく逆に、全てを受け入れるとしたら、どこかで自分を見失いそうな予感がする。

でも、全てを受け入れることは自分を見失うということにはならないのか?
よくわからない。

たぶん一番良いのは、自分自身は哲学を持ちつつ、それを他人に強制するでもなく、全てを受け入れることなのだと思う。

ただ全てをコントロールすることはできない。
哲学の表明が、他人を怒らせてしまう可能性もある(個人的には怒りは他人が作るものではなく、自分が作り出すものだと思うのだが)。

それはまあどうしようもないか。

Mercurialを使ってXcodeのプロジェクトを管理しはじめる

バージョンコントロールをしようと思ってきた、今までの流れ

  1. Subversionを入れてみるが、個人で作っているため作りかけが多く、どんなときにコミットして良いのかわからず止める
  2. もう一度Subversionを使い始めてみるが、カフェとかでプログラミングをするときにコミットできないので止める。
  3. svkを使えば2.ができるらしいということを知り、svkを使い始めるが、(もう忘れてしまったが)何となくしっくりこなくて止める
  4. やっぱりバージョンコントロールはしないとまずいだろと思ってSubversionよりもしっくり来そうなMercurialを使おうと思い始める ← 今ここ

何となくSubversionがしっくりこないような気がする理由は、まず一つにレポジトリとかワーキングコピーとかの概念がイマイチよくわかっていないということだと思います。

まず最初に使っているファイルをコミットして、さらにアップデートしてとか、使い始めの時点で訳がわかりませんw。
あんたの頭が悪いだけだろうという突っ込みは置いておいて。

Mercurialの場合は、おっとその前に、インストールは得意のMacPortsでやりました。
一発完了です。

使い方は、ウノウラボ Unoh Labs: Mercurialでバージョン管理とかまちゅダイアリー – 個人で簡単に使える分散バージョン管理ツール Mercurialとかを参考にしました。

まずは、バージョンコントロールしたいフォルダまでcdでいっていただいて

hg init

これでバージョンコントロールを始める準備ができました。
この状態で

hg status

というコマンドを実行すると、ディレクトリ内のファイルの前に ? が付いた状況になります。
これはまだレポジトリには追加されていないためです。

なので、バージョン管理をしたいファイルをレポジトリに追加するんですが、その前に!!!

私はXcodeを使っているので、Xcodeのユーザー設定ファイルとかビルドファイルとかは管理させたくないので、それを追加しない設定をします(先ほどのhg statusコマンドを実行するとbuildディレクトリの中身まで?が付いていますよね)。

フォルダの位置はそのままで .hgignore というファイルを作成します。

vi .hgignore

.hgignore ファイルの中身はMercurialで無視するファイルや拡張子を指定できる.hgignoreファイルの書き方(symfonyプロジェクト対応版)を参考にしました。

syntax: regexp
/\.
DS_Store
^build/
.*\.mode1v3$
.*\.pbxuser$

この状態でもう一度、先ほどのhg statusコマンドを実行すると、今度はbuildディレクトリや.DS_Storeファイルなどがリストに表示されなくなります。

後はレポジトリに追加し、変更をコミットしましょう。

hg add *
hg commit -m "initial import"

PyMOLで分子をpngファイルに描画した後、pngファイルにテキストを入れる方法

PyMOLはPythonで書かれており、Pythonスクリプトを使って色々と操作することが可能です。

PyMOLで色々操作した後でpngで画像を出力することも可能なのですが、さらにその画像に文字を入れたいとします。
そういうときはどうするか?(Pythonはあまり使ったことがないのでイマイチ文法などがわかりません。そのため変なところがあるかも)
こちらを参考にさせていただきました。
サンボマスタージェネレータ

ちなみに、私はMacPortsでPython 2.5をインストールしている状況です。
そのほかに必要なものはPIL (Python Image Library) なのでこれもMacPortsであらかじめインストールしておきます。

#!/opt/local/bin/python2.5
# -*- encoding: utf-8 -*-


import pymol
import ImageDraw, ImageFont, Image

pymol.cmd.load("PDBのファイル名")

png_file_name = "pngファイル名"
pymol.cmd.png(png_file_name)

font_file = "/Library/Fonts/Microsoft/Gill Sans MT.ttf"
font_size = 24
font = ImageFont.truetype(font_file, font_size)

image = Image.open(png_file_name).convert("RGB")

draw = ImageDraw.Draw(image)
draw.text((10, 10), "描画するテキスト", font = font, fill = (255, 255, 255))

image.save(png_file_name)

SKC-MINI120

先ほど週刊ASCIIをぱらぱら眺めていたら、なかなかよさげなケースがありました。

スカイテックという会社のSKC-MINI120というもの。
SKC-MINI120

シンプルなデザインだし元からACアダプタというのもいい。

というかほとんどのケースがシンプルじゃなくて選べません。
最近よかったなと思ったのはこれと、ANTECのSOLO Black(ANTECのサイトにはなくてどっかに写真があった)、Silverstoneのキューブのケース。

ATOMを載せればなかなかよさげなWebサーバーになりそうです。

ATOMのおかげで楽しい時代になってきた。

iPhone ソフトウェア・アップデート 2.0.1

iPhoneのソフトウェア・アップデート 2.0.1がリリースされていました。

インストールしてみたところ、キャリア用アップデートのところで 「不明なエラーが発生しました(0xE8000001) ネットワークの設定および接続を確認して、もう一度実行してください」 というエラーが出ました(他の方々も出ているようですね)。
でも、無事に使えるようです。

感想としては

  • 日本語入力が速くなったような気がする。
  • Safariのレンダリングが速くなったような気がする。

という感じです(気がするというのはちゃんと統計的に取った訳じゃないのでプラセボかもしれないという訳)。

そうそう、以前購入したNetShareもちゃんと動いているようです。

iPhoneのWordPressクライアントから投稿テスト

実はバージョン1.0の時に一度試しているんですが、そのときは投稿しようとすると落ちてしまい、使い物になりませんでした。
今回バージョン1.1になってマルチバイトのバグを直したそうなので、試しています。
以下、そのときに投稿しようとした文章です(文中のStage Handの話題は以前のバージョンのものです)。

先ほど、Keynoteのリモコン用アプリでのStage Handを試してみました。
が、、、練習をしていないせいか?間違ってボタンを押してしまったり、1分後にホールド状態になってしまったりと、なかなか思うようにはいきませんでした。
でも、コンセプトとしてはいいと思うので、これからに期待です。

とここまでタイトルに書きましたiPhone用のWordPressクライアント(名前もそのままWordPress)を使っているのですが、なかなか快適です。
というか、iPhoneの文字入力に慣れてきて結構快適だなぁというのがかなり大きいかも知れません。

SQLite 3でマルチスレッド

SQLite 3ではスレッドセーフなようなのですが、どうもそれがコネクション単位らしいです。

コネクション単位というのはsqlite3_openとかでopenした単位。

何も知らずに他のスレッドから操作しようとすると

library routine called out of sequence

というエラーが出て止まってしまいます。

となるとドキュメントに

If the filename is “:memory:”, then a private, temporary in-memory database is created for the connection.

C/C++ Interface For SQLite Version 3

と書いてあるので、“:memory:”でメモリ内データベースを作ってしまうととたんにマルチスレッドが不可ということになるのかな?

だとするとなぜ今までうまくいっていたのかがまったくわからなす。。。

そうなると内部が思い切り作り直しだなぁ・・・orz。

「プログラミングは愛情である」か

べにぢょ@ギークなお姉さんの、手作りお弁当に萌え!/Tech総研

この最後の文章がとてもとても素敵。

あなたにとってのプログラミングとは何でしょうか?

「愛情」です。私の場合、サービスは自分のために作るというより、誰かのために愛情を込めてつくり、楽しく使ってもらうのが何よりの幸せです。プログラマも同じですよね。プログラミングって、愛されるサービスを、愛情を込めてつくることだと思いますから。

べにぢょ@ギークなお姉さんの、手作りお弁当に萌え!/Tech総研

きっとなんでもそうなんだと思います。
別にプログラミングでなくても、料理でも、なんでも。

プログラミングであれば愛情を込めるっていうのは、このインタビューでも出てきたように、うまく動かなければそれを動く方法を見つけるということ。

プログラミングでは思いどおりに動かないこともありますけど、答えがあることはわかっているので、ワクワクしますね。「ゼッタイに見つけてやる!」って思いますから。

べにぢょ@ギークなお姉さんの、手作りお弁当に萌え!/Tech総研

この姿勢はすごい。
プログラミングに愛されようとはしていない訳ですよね、楽しい気持ちを奪い取ろうともしていない。
自分から与えて、与えてもらおう、愛してもらおうとはしていない。
そして与えるということが自然と受け取るということになっています。
そこがポイントなんだと思います。

自分も最近この「ゼッタイに見つけてやる!」っていう気持ちが少しわかるようになりました。
それはCrêpeに愛情を注いでいるからだと勝手に思っています。