pythonのコレクション

pythonのコレクションをいつも混同するのでメモ

[]:リスト
():タプル
{}:ディクショナリ

なお、タプルはリストと違って後から値やデータ構造を変更できない。

Eclipseのjavadocでandroidのリファレンスを参照する方法

Eclipseではjavadocを使用してdocumentを参照できることができます。

方法は簡単だけど調べるのに時間がかかったのでメモ。

1.android.jarを右クリックしてプロパティを開く。

2.javadoc LocationタブでJavadoc location pathを設定する。ApplicationフォルダにSDKを設置した場合pathはfile:/Applications/android-sdk-mac_x86/docs/reference/となる。

これでメソッド名などをマウスオーバーすればリファレンスがポップアップで表示されます。

はじめてのiOSアプリケーション開発

iOSアプリケーションを実際に作ってみましょう。

今回は題材として簡易メモ帳を制作します。

Xcodeでのプロジェクト作成

まず[File]->[New Project]をクリックする。すると次の画面が表示される。

この中の「View-Based Application」を選択する。プロジェクトの名前の設定になるのでMemoPadと入力する。これでMemoPadプロジェクトが作成されプロジェクトウィンドウが表示される。

Xcodeによってあらかじめいくつかのファイルが生成されている。その中でMemoPadAppDelegateとMemoPadViewControllerクラスがあるのが確認できる。また拡張子がxib(XML Interface Builderの頭文字)のファイルはユーザーインターフェースのレイアウトを行うためのファイルでInterface Builderを使って編集することになる。

MemoPadViewController.hの編集

次にMemoPadViewController.hを次のように編集する。

[objc]
#import

@interface MemoPadViewController : UIViewController {
// テキストビューのためのアウトレット
IBOutlet UITextView* textView;
}

// キーボードを隠すためのアクション
- (IBAction)done;

@end
[/objc]

textViewインスタンス変数の先頭に付いているIBOutletはアウトレットと呼ばれ、Interface Builderに対して、この変数をユーザインタフェース上の部品と関連づけることができることを示している。
doneメソッドの返り値のIBActionはアクションと呼ばれ、アクションもInterface Builderで利用される。

[File]->[Save]で編集を保存しておく。

Interface Builderでのレイアウト

次にMemoPadViewController.xibをダブルクリックし、Interface Builderを起動する。

すると4つのウィンドウが表示される。

  • MemoPadViewController.xibはxibファイルの内容を示すものである。
  • Viewはアプリケーションを実行した時に表示される画面でこの上に部品を配置していくことになる。
  • Attributesはビュー上に配置した部品の設定を行う画面
  • Libraryはビューに配置する部品を選択することができる。

上の画像のように部品を配置する。ナビゲーションバーにはタイトルを設定する。Bur Button Item Attributesの「Style」と「Identifier」を「Done」に設定しておく。

アウトレットとアクションの接続

xibウィンドウ中のFile’s Ownerアイコンを右クリックする。

ここでこのインスタンスから接続可能なアウトレットのアクションの一覧が表示される。textViewの右端にある○をドラッグしてテキストビュー上でドロップする。

さらにdoneの右端にある○をドラッグしてDoneボタン上でドロップする。

[File]->[Save]で作業内容を保存する。

MemoPadViewController.mの編集

@implementationと@endという指示子の間に次のコードを書く。

[objc]
- (IBAction)done
{
// キーボードを隠す
[textView resignFirstResponder];
}
[/objc]

これで入力が終わったらDoneボタンを押すことでキーボードが隠れるようになった。

ビルドと実行

メニューからSimulatorとiPhoneを選択する。

そして「Build and Run」ボタンを押し、コンパイル、インストール、シミュレータ起動までを行う。

これでひとまず完成である。次からは機能の拡張をしていく。

デバイスの回転への対応

MemoPadViewController.mの次の部分を修正する。

[objc]
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// デバイスが回転したとき、ビューも回転させる
return YES;
}
[/objc]

これで端末を回転すると画面も回転するようになる。

テキストの保存と読み込み

MemoPadViewController.mを次のように編集する

[objc]
- (void)viewWillDisappear:(BOOL)animated
{
// テキストファイルのパスを決定する
NSArray* paths;
NSString* path;
paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
path = [paths objectAtIndex:0];
path = [path stringByAppendingPathComponent:@"text"];

// テキストからバイト列を作成する
NSData* data;
data = [textView.text dataUsingEncoding:NSUTF8StringEncoding];

// バイト列をファイルに書きこむ
[data writeToFile:path atomically:YES];
}
[/objc]

[objc]
- (void)viewWillAppear:(BOOL)animated
{
// テキストファイルのパスを決定する
NSArray* paths;
NSString* path;
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [paths objectAtIndex:0];
path = [path stringByAppendingPathComponent:@"text"];

// テキストファイルが存在する場合
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
// ファイルをバイト列として読み込む
NSData* data;
data = [NSData dataWithContentsOfFile:path];

// バイト列をテキストに変換する
NSString* string;
string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[string autorelease];

// テキストをテキストビューに設定する
textView.text = string;
}
}
[/objc]

上のコードでビューが隠れるときにテキストを保存し、ビューが現れるときにテキストを読み込んでいる。

参考:

【特集】iPhoneアプリケーション開発入門 | エンタープライズ | マイコミジャーナル

mysqlのバックアップ方法

いざという時に備えてデータベースのバックアップをしましょう。

  • オフラインで行う場合

[plain]
# /etc/init.d/mysqld stop
# cp -r /var/lib/mysql /tmp/mysql-backup
# /etc/init.d/mysqld start
[/plain]

  • オンラインで行う場合

mysqldumpで指定されたデータベースおよびテーブルのASCIIダンプを生成します。

[plain]
$ mysqldump –add-drop-table -h mysqlhostserver
-u mysqlusername -p databasename (tablename tablename tablename) | bzip2
-c > blog.bak.sql.bz2
[/plain]

例:

[plain]
$ mysqldump –add-drop-table -h db01.example.net -u dbocodex -p dbwp | bzip2 -c > blog.bak.sql.bz2
[/plain]

復元方法:
bz2ファイルを解凍し、sqlスクリプトを実行します。

[plain]
$ bzip2 -d blog.bak.sql.bz2
$ mysql -h mysqlhostserver -u mysqlusername -p databasename < blog.bak.sql [/plain]

bzip2は圧縮のために使っています。以下のようにすれば無圧縮のsqlファイルが作れます。

[plain] $ mysqldump –add-drop-table -h db01.example.net -u dbocodex -p dbwp > blog.bak.sql
[/plain]

参考:

Backing Up Your Database « WordPress Codex

Restoring Your Database From Backup « WordPress Codex

MySQLデータのバックアップ方法 – SourceForge.JP Magazine : オープンソースの話題満載