2008年10月30日木曜日

【iPhone SDK】iPhone Dev Centerのドキュメントが日本語化

iPhone Dev Center日本語版が閲覧できます。

今のところPrograming Guideのみ日本語に翻訳されています。リンクが切れていたりしますがiPhone開発入門者やOjbective-C初心者にはとても助かります。

Objective-C文法など: Objective-C 2.0 プログラミング言語
iPhone開発全般: iPhone OSプログラミングガイド
iPhone UI関連: iPhoneヒューマンインターフェースガイドライン

上記以外にもiPhoneアプリ開発に役立つドキュメントが多数閲覧できます。

ラベル: , , ,

2008年10月28日火曜日

【iPhone】iPhone SDKを始める人におすすめの無料動画

ここ(Writing Your First iPhone Application)から無料の動画がダウンロードできます。

内容はiPhoneで開発するHello Worldサンプルです。iPhone SDKの情報公開についてしがらみが多くて情報が見つけづらいので、初心者には助かると思います。

また、iPhone SDK2.1がリリースされて、古いサンプルコードがうまく動作しなかったりと大変です。上の動画はiPhone SDK2.1の対応です。

ラベル: , , ,

2008年10月27日月曜日

【iPhone】GMap2がタップ(click)イベントを拾ってくれない

iPhone/iPod TouchのバージョンによってはGoogle Maps上のイベントを拾ってくれない。しかし、地図をドラッグできるのでユーザによっては使いやすくなっている。

駅しんぼ
のiPhone/iPod Touchである駅しんぼTouch!では地図の移動、各種ボタンが機能しなくなってしまった。

そこで、ボタンを<input type="image" src="..." ... />で実装してみた。



<input type="image" src="..." onclick="map.zoomIn();"/>



地図上にボタンを表示したいならstyle="position:absolute;..."などとする。

というわけで、これが新しい駅しんぼTouch!だ。

ラベル: , ,

2008年10月23日木曜日

テクノラティに登録するためのエントリー

テクノラティプロフィール

2008年10月22日水曜日

【Python】Mac OS XでDjango 2/2

前回の続き。Mac OS XでDjango環境を構築する。構成はLeopard + Apache + MySQL + Python。

Mac OS X 10.5.5 Leopard
MySQL 5.0.67-osx10.5-x86 (not 64bit)
Python 2.5.1
Django 1.0

では、MySQLのインストールから。MySQL本家からMac OS X (package) downloadsのMac OS X 10.5 (x86, not x86-64bit)をダウンロードする。mysql-5.0.xx-osx10.5-x86.pkgを起動する。後は指示に従う。

起動方法
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

停止方法
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

接続
/usr/local/mysql/bin/mysql -u root -p
(初めてのときはパスワードなし)

ROOTパスワード設定SQL

set password for root@localhost=password('mypassword');

このパスワードはDjangoのsettings.py DATABASE_PASSWORDと一致させる。

次にここからmysql-pythonをダウンロードする。今回使用したバージョンは1.2.2でコンパイルするには多少変更が必要。Tarballを解凍したら

sudo easy_install MySQL-python

エラーが出るので、/usr/local/mysql/binにPATHを通す。それから_mysql.cを編集する。

//#ifndef uint
//#define uint unsigned int
//#endif

Universal版のmysql_configが必要なため、Mac OS X 10.4 (Universal)のtarballをダウンロードして展開する。binの下にmysql_configがある。mysql-pythonのsite.cfgを開いて編集する。

mysql_config = /usr/local/src/mysql-5.0.67-osx10.4-universal/bin/mysql_config

再度コンパイル。

sudo python setup.py build
sudo python setup.py install


ではいよいよDjangoとの連携を設定する。/Library/WebServer/Documents/mysite/myprj/myapp/settings.pyを編集する。

DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'myprg'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'mypassword'
DATABASE_HOST = '127.0.0.1'
DATABASE_PORT = '3306'


myapp/models.pyを編集する。


from django.db import models

# Create your models here.

class User(models.Model):
username = models.CharField(max_length=200)
password = models.CharField(maxl_ength=200)
description = models.TextField()
score = models.IntegerField()
datetime = models.DateTimeField(auto_now=True)



MySQLにデータベースを作成する。
# [mysql]/bin/mysql -u root -p
mysql> create database myprj
mysql> quit


myprj/myapp/models.pyとデータベースを同期する。
# python manage.py syncdb


これでひとまずDjangoのモデル、ビューの環境が整った。

ラベル: , , , , ,

2008年10月21日火曜日

【Python】Mac OS XでDjango 1/2

Mac OS XでDjango環境を構築する。Leopard + Apache + MySQL + Pythonとういことで一応LAMPだ(無理矢理)。

Mac OS X 10.5.5 Leopard
MySQL 5.0.67-osx10.5-x86 (not 64bit)
Python 2.5.1
Django 1.0

[System Preference] [Sharing] [Web Sharing]をチェックする。
http://localhost
でTest Page for Apache Installationがあらわれる。

Apache2が参照するディレクトリを変更する。

sudo vi /etc/apache2/httpd.conf

などでDocumentRootを変更する。たとえば、

DocumentRoot "/Library/WebServer/Documents/mysite"


sudo mkdir /Library/WebServer/Documents/mysite
sudo apachectrl restart
sudo vi /Library/WebServer/Documents/mysite/index.html


Hello Worldとか適当に打ち込んで、http://localhostに再度アクセス。
今後は/Library/WebServer/Documents/mysiteで作業することになる。

次にApacheでPythonを呼ぶためのmod_pythonをインストールする。
http://httpd.apache.org/modules/python-download.cgi
からmod_python-3.3.1.tgzをダウンロードする。

tar zxvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure

src/Makefileに以下を追加する(INCLUDESの直下)。


INCLUDES+= -Wc,-arch -Wc,ppc -Wc,-arch -Wc,i386 -Wc,-arch -Wc,ppc64 -Wc,-arch -Wc,x86_64
INCLUDES+= -Wl,-arch -Wl,ppc -Wl,-arch -Wl,i386 -Wl,-arch -Wl,ppc64 -Wl,-arch -Wl,x86_64
export ARCHFLAGS='-arch i386 -arch ppc -arch ppc64 -arch x86_64'


コンパイルとインストール。

cd ..
make
sudo make install

/etc/apache2/httpd.confを編集。

LoadModule python_module libexec/apache2/mod_python.so
<directory myprj>
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</directory>

<location "/myprj">
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['/Library/WebServer/Documents/mysite'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE myprj.settings
PythonDebug On
</location>


いよいよDjango本体をインストールする。
http://www.djangoproject.com/download/
よりDjango-1.0.tar.gzをダウンロードしてtar zxvfで解凍してディレクトリ移動(cd)。

tar zxvf Django-1.0.tar.gz
cd Django-1.0.tar.gz
sudo python setup.py install




cd /Library/WebServer/Documents/mysite
sudo python django-admin.py startproject myprj
cd myprj
python manage.py startapp myapp


settings.pyを編集する。

DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'myprj'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'mypassword'
DATABASE_HOST = '127.0.0.1'
DATABASE_PORT = '3306'

TIME_ZONE = 'Asia/Tokyo Japan'

TEMPLATE_DIRS = (
'/Library/WebServer/Documents/mysite/myprj/myapp/template',
)

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'myprj.myapp'
)


*エラーが出る場合はDATABASE_ENGINEを無効にする。
myapp/views.pyを編集する。


from django.shortcuts import render_to_response, get_object_or_404

def index(request):
return render_to_response('index.html')


index.htmlはmyprj/myapp/template/index.htmlに作って、中身は適当なHTML。

sudo /usr/sbin/apachectrl restartでApache2を再起動後、http://localhost/myprj/myappにアクセスする。エラーのときはmyprj/myappをchmod -Rしてみる。

ここまでで、MySQLを除く環境の構築方法。

次回のエントリーでMySQLとの接続とmodel.pyの使い方を紹介する。

ラベル: , , , , ,

2008年10月20日月曜日

Mashup Award 4th クウジット賞(PlaceEngine)でFaLLenが受賞!

マッシュアップアワード4thにてクウジット賞(PlaceEngine)としてFaLLenが選ばれました。PlaceEngine Koozyt様ありがとうございました。また、副賞としてFonを8台いただき重ねてありがとうございました。地元関西で配ってWiFiコミュニティ普及の一翼(?)を担いたいです。

また、最優秀賞に輝いたKentaroさん(Chamap)、本当におめでとうございます。

10月19日に行われた授賞式では関係者の方々と挨拶する機会にも恵まれました。そのときの様子を写した写真がここにアップされています。

クウジット様と座談会の席を近々もうけていただけるということで大変待ち遠しいかぎりです。

私のような地方開発者はある意味ガラパゴス的な日常の中でサービスを考えているので、第一線で活躍している方と交流できる機会を設けていただけることは本当にうれしい限りです。ただ、今回評価をいただけた理由としてガラパゴス環境をうまく活用できた気がしています。というのは、FaLLenに搭載されているSREngineは奇抜で突拍子もないアイデアです。自分で思いついた時は「これいける」と思って開発を始めたのですが、途中何度も挫折して投げ出しそうになりました。また、ほとんどのMA4応募作品がWebアプリかAIRアプリな中、インストール型のアプリでしかもウィンドウが半透明な板という奇抜なインターフェースを採用しました。周囲の雑音が最低限の環境にいたためオリジナリティがある尖ったものを貫けたと思います。

といっても、まだまだ実用段階にはほど遠いのでこれからも開発の過程で壁にぶちあたることになりそうですが、いまは受賞を素直に喜んでいます。

FaLLenに興味のある方はこちらの動画をご覧ください。


ラベル: ,

2008年10月7日火曜日

【拡張現実AR】ニコンからスカウター付きヘッドホン

ニコン、無線LAN搭載のヘッドフォン型映像再生機器「UP」

ヘッドホンに小さなディスプレイをつけるという今までにない発想のなかなか面白い商品だ。

しかし、難点は専用のソフトウェ経由でのみコンテンツを利用できる点だ。どうしてこういうことをするのだろうか?とてもクローズドな仕組みだ。

ラベル: , ,

2008年10月6日月曜日

【Objective-C/Cocoa/iPhone】iPhone SDK+Interface Builderの基本:おおまかな流れ

xcode 3.1.1, Window-Based Application

メモ。

プロジェクト名をMyAppとする。

追記:[Classes]を選択する。
[New File]から[Cocoa Touch Classes] [UIViewController subclass]を作成する。

MyViewControllerなどと名前を付ける。

MyAppDelegate.hに
@class MyViewController;

を追加する。インスタンス変数とアクセッサメソッドを追加する。
MyViewController *myViewController;

@property (nonatomic, retain) MyViewController *myViewController;


MyAppDelegate.mに追加。

#import "MyViewController.h"
...
@synthesize myViewController;
...



MyViewController *vc = [[MyViewController alloc] initWithNibName:@"ControllerView" bundle:[NSBundle mainBundle]];
self.myViewController = vc;
[vc release];

[window addSubview:[myViewController view]];

追記:addSubViewは間違い

deallocに追加

[myViewController release];


Interface Builderを起動する。

[New File]から[Cocoa Touch] [View]を選ぶ。

プロジェクトにControllerViewとして保存する。initWithNibName:@"ControllerView"

[File's Owner]を選び、MyViewControllerを選ぶ。

[File's Owner]から[View]に線(Ctrl+左ドラッグ)を延ばす。viewを選択する。

[Library]から[View]にUIパーツを貼付けていく。

MyViewController.hを編集する。インスタンス変数追加。

UITextField *textField;
UILabel *label;
NSString *string;

アクセッサメソッドとイベントハンドラ追加。

@property (nonatomic, retain) IBOutlet UITextField *textField;
@property (nonatomic, retain) IBOutlet UILabel *label;
@property (nonatomic, copy) NSString *string;
- (IBAction)someAction:(id)sender;


[File's Owner]からUIパーツに線を引く。
イベント源から[File's Owner]に線を引く。

MyViewController.mに追加。

@synthesize textField;
@synthesize label;
@synthesize string;

- (IBAction)someAction:(id)sender {
self.string = textField.string;

NSString *s = [[NSString alloc] initWithFormat:@"Hello, %@", self.string];
label.text = s;
[s release];
}
...
- (void) dealloc {
[textField release]:
[label release];
[string release];
[super dealloc];
}

ラベル: , , , ,

2008年10月4日土曜日

【Objective-C/Cocoa/iPhone】GC (ガベージコレクション)の設定

xcode 3.1.1

メモ。

[Groups & Files]からプロジェクト名をダブルクリックしてProject Infoを開く。

Configuration: All Configurations
Show: All Settings

[GCC 4.0 - Code Generation] [Objective-C Garbage Collection]を変更する。

ラベル: , , ,

【Objective-C/Cocoa/iPhone】WebKitで簡単ブラウザ: WebViewでloadRequest

xcode 3.1.1

簡単メモ。



// Initialize window
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Initialize web view
webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
[webView setBackgroundColor:[UIColor blackColor]];
[window addSubview:webView];

//[webView loadHTMLString:@"aaaaa" baseURL:nil];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com"]]];

ラベル: , , ,

【Objective-C/Cocoa】IBOutletとIBActionでHello World!

xcode 3.1.1

以下、勉強メモ。

[AppController.h] *編集後は保存する
IBOutletはInterface Builderで追加した部品を指す。
IBActionはイベント通知を受け取る。


#import <Cocoa/Cocoa.h>

@interface AppController : NSObject {
IBOutlet id textField;
}

- (IBAction)sayHello:(id)sender;
@end



xibファイルを開きInterface Builderを起動する。
[Tools] [Library]でUI部品ライブラリを起動する。
[Tools] [Inspector]でUI部品の設定ができるインスペクタを起動する。

ライブラリの[Cocoa] [View&Cells]からUI部品を選んで、Windowにドラッグしていく。

ライブラリの[Cocoa] [Objects & Controllers] [Controllers]から[Object]をxibにドラッグする。インスペクタのIdentityタブからAppControllerを選ぶとAppControllerがインスタンス化される。

xibのApp Controllerを選んでコントロールキー + 左クリックでテキストボックスまでドラッグ。

次は逆。ボタンからApp Controllerにドラッグする。

[AppController.m]
*エスケープキーでコード補完
*コマンドキー + Bでビルド
*コマンドキー + Enterでビルド実行


#import "AppController.h"

@implementation AppController

- (IBAction)sayHello:(id)sender
{
[textField setStringValue:@"Hello World!"];
}

@end



実行する。

ラベル: , ,

デジタル放送の実態:放送局・チャンネルで解像度が違う

デジタル放送がフルHDではないというのは知っていたけど、これは衝撃。
麻倉怜士先生が暴露、フルHDじゃない放送局はここだ

放送局・チャンネルでてんでばらばら。こんなんで「お客様、こちらはフルHD対応の液晶テレビでして」と家電量販店で言われても。有名人使ってデジタル放送のCMを流すくらいならこういった情報をきちんと説明すべき。

ラベル:

2008年10月3日金曜日

【相関くんのブログ】 9月の株価同士の相関と株価・為替間の相関に対応

相関くんでは、日経平均225銘柄の間の相関、NASDAQ/S&P/DOWと日経225の相関、米ドルと日経225の相関が調べられる。
9月のデータが計算された。

強い順 銘柄1 銘柄2 相関係数 詳細
1位 (株)三井住友フィナンシャルグループ (株)みずほフィナンシャルグループ 0.9744 相関推移
2位 (株)損害保険ジャパン (株)ミレアホールディングス 0.9702 相関推移
3位 (株)三井住友フィナンシャルグループ 住友信託銀行(株) 0.9679 相関推移
4位 (株)三井住友フィナンシャルグループ (株)三菱UFJフィナンシャル・グループ 0.9666 相関推移
5位 (株)千葉銀行 住友信託銀行(株) 0.9664 相関推移
6位 伊藤忠商事(株) 丸紅(株) 0.9660 相関推移
7位 (株)みずほフィナンシャルグループ 住友信託銀行(株) 0.9632 相関推移
8位 (株)みずほフィナンシャルグループ (株)損害保険ジャパン 0.9592 相関推移
9位 (株)横浜銀行 住友信託銀行(株) 0.9567 相関推移
10位 (株)千葉銀行 (株)横浜銀行 0.9563 相関推移

米ドルと相関が強い銘柄。
強い順 銘柄1 銘柄2 相関係数 詳細
1位 横河電機(株) アメリカドル 0.6309 相関推移
2位 コニカミノルタホールディングス(株) アメリカドル 0.6172 相関推移
3位 三洋電機(株) アメリカドル 0.6094 相関推移
4位 アルプス電気(株) アメリカドル 0.5884 相関推移
5位 トヨタ自動車(株) アメリカドル 0.5407 相関推移
6位 オリンパス(株) アメリカドル 0.5352 相関推移
7位 ソニー(株) アメリカドル 0.5227 相関推移
8位 三菱地所(株) アメリカドル 0.5220 相関推移
9位 住友化学(株) アメリカドル 0.5194 相関推移
10位 京王電鉄(株) アメリカドル 0.5043 相関推移

ダウと相関が強かった銘柄。
強い順 銘柄1 銘柄2 相関係数 詳細
1位 シャープ(株) DOW JONES 0.7410 相関推移
2位 ソニー(株) DOW JONES 0.7378 相関推移
3位 イオン(株) DOW JONES 0.7169 相関推移
4位 松下電器産業(株) DOW JONES 0.7094 相関推移
5位 大日本住友製薬(株) DOW JONES 0.6999 相関推移
6位 パイオニア(株) DOW JONES 0.6770 相関推移
7位 松下電工(株) DOW JONES 0.6764 相関推移
8位 横河電機(株) DOW JONES 0.6727 相関推移
9位 (株)フジクラ DOW JONES 0.6682 相関推移
10位 TDK(株) DOW JONES 0.6678 相関推移

ラベル: ,

2008年10月2日木曜日

【学ぶ】 スティーブジョブス(Steve Jobs)に学ぶ:Stay hungry. Stay foolish.

Steve Jobsのスタンフォード大学卒業式辞でのスピーチを視聴した。

その中でもっとも印象に残った言葉。

Stay hungry. Stay foolish.


"Stay hungry"はとてもわかりやすい。いわゆるハングリー精神のことだ。「満足」した時点で過去の人(死人)になってしまう。未踏の分野を切り開き、挫折し、成功した人にとって、繰り返し訪れる困難を克服するには情熱(heart)がモチベーションを支える最後の砦となる。

"Stay foolish"はどういうことだろうか?「馬鹿であれ」とか「愚か者であれ」と訳すのは誤解を招く恐れがある。スピーチに出てくる、周囲の雑音やドグマに惑わされずに"follow your heart (innver voice)"を表していると考える。私なりの意訳は「純真であれ」。

ということで、この様に訳したい。

"Stay hungry. Stay foolish"
「貪欲であれ。そして純真であれ。」

ラベル:

2008年10月1日水曜日

【Android】 T-Mobile G1はもっさり?

Android搭載のG1はiPhoneに比べてレスポンスが悪いみたい。
こういう端末って使っていて楽しいかどうかは多分一番大切。

Celluloco.com Presents: Google's G1 Android vs iPhone : War!

ラベル: ,

【AR】 拡張現実を搭載したデモ携帯、KDDI au

KDDI、「実空間透視ケータイ」の新技術を披露

6軸の加速度センサーと地磁気センサーで携帯のかざす対象を特定。
画面はかなり無骨だが、enkinに似た実直な実装。

ただ、この分野の技術は使っていて面白さがないと普及しないだろう。スクリーンショットをみる限りでは使ってみたいと思えない。

ラベル: , , ,