2010年12月31日金曜日

2010年大晦日。叔父さんになった日

毎年恒例の地元で迎える大晦日。今年の飯田は雪が少ない。おかげで御大の館へも行きやすかった。

ちなみに御大の館は年末年始は休まず10:00から営業するみたい。帰省組にとってはありがたい。ただ2時過ぎになると混みだすので、午前中に行くのがおすすめ。

その御大の館から帰ってきたら、うちの兄貴からメールがきた

「子供が生まれました。なんかゴリラみたいやけども・・・」

私が叔父さんになった瞬間です。4人兄弟初の子供なだけにうちの親は大喜び。今後もあーだこーだと兄貴へ連絡がいきそう。・・・頑張れ兄上!

さてさて、そんなイベントがあったので当然夕食はその話題でもちきり。といっても4人兄弟のうち私しか地元の帰ってないけど。

そして紅白を聞きながら、一年を振り返ってみる。

今年は、今までの延長線上を普通に走ってきた。努力してないわけではないし、成長してないわけでもない。これでいいのか悪いのか?そんな感じ。

来年は、いろんな変化があるし、たくさんの出会いもありそうなので今から楽しみ。

そして、「走りきった」と自信を持ってブログに書ける、そんな一年にしたい。

 

<関連記事>

2008年 大晦日
2009年大晦日

2010年12月21日火曜日

「SEを極める 50の鉄則」を読んだ

@ITの記事で紹介されていたので、読んでみた。

作者がSystem Engineerを経験している方なだけあって、共感できる部分が多数あった。自分がお客様とのやりとりの中で感じたことやSEの仕事をしていく上での「大事なこと」をうまくまとめてくれているので、「やっぱり、そうだよねー」と自分の今までの考え方が肯定されているみたいで嬉しくなった。

自己分析するにも役立つし、足りない部分も気付かせてくれた。

特に

仮に60歳まで働くとすると、7~8年というのはまだ20%にすぎない。まだ80%もある。

というのは、「あ、俺まだまだピヨッコじゃん」と楽になったし、まだまだ挑戦できるんだという意欲にもなった。

システムエンジニアを目指す人も、活躍している人にもお勧めできる一冊。

 

< 2012/08/31 Modified >
今のSingaporeの会社で肩書きを「System Engineer」にしてもらいながら、ふと「System Engineer」って英語圏で通じるのか?と思って調べてみた。

一般的ではないみたいなので、聞かれても英語で答えれるようにしといた方がよさそう。

2010年12月16日木曜日

負荷分散とロードバランサ

高負荷が予想されるサービスを提供するときに、どのようなハード構成にしたらいいか悩んだときのメモ。

下記ブログを読めば一通り分かる。

【LAMPで作るソーシャルアプリの負荷対策 ~アプリとインフラの調和のテクニック~】

APCを利用して、DBへのアクセスを軽減するような対策はしたことあるけど、ロードバランサを使って複数サーバーで負荷分散をしたことはない。

Linuxの場合はLinux Virtual Server(LVS)という技術を使って、比較的簡単に実現できるみたい。次回はVMwareを利用して、実際にやってみようと思う。

 

<関連記事>

【PHPチューニング】APCをインストールしてWordpressを高速化

2010年12月14日火曜日

iTunesで曲管理(アルバムアートワークの入手)

iPod touchを使って曲を聞くようになったので、音楽ファイルの管理はiTunesに任せようとしたときのメモ。

アルバムアートワークがiTunes経由で取得できない場合は「Broadway」というソフトを使うとGoogle画像検索から取得して設定することができる。

しかも歌詞も検索してiTunesに設定できるので、iPod touchで表示できて(何となく)幸せになれる。

iTunesのお供に~ちゅねとも」でも可能みたいだけど、今のところ出番はない。

今までの曲を整理しながら、ちょっとずつ更新していく予定。

ちなみにplayerとしては「Quintessential Media Player」の方が好み。たぶんEnhanceしているのかな?QMPでAAC(m4a)ファイルを聞くようにするには、下記からプラグイン(dll)ダウンロードしてきて、pluginsフォルダに置く。

RAREWARESのMP4 input plugin for QCD Player

 

<関連記事>

MP3音楽ファイルのタグをネット経由で取得してきれいにする

2010年12月8日水曜日

【Windows】システム構成とDirectX診断のコマンドメモ

使いたいときに忘れているWindowsのユーティリティを起動するコマンドメモ。

環境はWindows XP。スタート → ファイル名を指定して実行

dxdiag DirectX診断ツール
DirectXのバージョンを確認したいときに使う。
ビデオドライバの情報やサウンドドライバの情報がまとまっているので見やすい
msconfig システム構成ユーティリティ
サービスやスタートアップに登録されているソフトの制御ができる。タスクマネージャに表示されるけど、サービスに登録されていない怪しいソフトの自動起動を停止するときに使う。

最近はゲームしないし、怪しいソフトを使うこともなくなっているので使う機会がない。

<関連記事>

スタートアップで起動するアプリを停止する方法

2010年12月1日水曜日

猫まっしぐら!?ねこ用DVD「ネコミル」

将来、猫を飼えたときに見せてみたい。

ネコが見るDVD ネコミル

レンタルで試してみるのもあり。

pg_rmanを使ってPostgreSQLを別サーバーにバックアップ

PostgreSQLのバックアップに便利な方法はないものかと、試しにpg_rmanをコンパイル、インストール、設定したときのメモ。環境はCentOS5

pg_rmanはPostgreSQLのデータを簡単なコマンドでバックアップ・リストアできるツール。ダウンロードはGoogle Codeのプロジェクトページから。

インストールの方法は公式のwikiにもあるし、ここのサイトも分かりやすい。

以下自分でやったコマンドのメモ。pg_configにパスが通ってないとダメらしいので、パスの追記から。

# vi ./.bashrc
PATH=/usr/local/pgsql/bin:$PATH
export PATH
# source ./.bashrc

もしくはPostgreSQLがインストールされた場所に書き込み権限があればいいので、postgresをownerにする。
# chown postgres. -R /usr/local/pgsql
# su postgres

コンパイルしてインストール。

# tar xzvf pg_rman-1.1.2.tar.gz
# cd pg_rman 
# make USE_PGXS=1
# make USE_PGXS=1 install

環境変数を設定

# su postgres
$ cd
$ vi ./.bashrc
export PGDATA=/usr/local/pgsql/data
export BACKUP_PATH=/mnt/backup/pgsql
$ source ./.bashrc

環境変数が設定できたかどうか確認
$ echo $BACKUP_PATH

pg_rmanを初期化
$ pg_rman init -B  $BACKUP_PATH

WARNING: ARCLOG_PATH is not set because archive_command is empty
INFO: SRVLOG_PATH is set to '/usr/local/pgsql/data/pg_log'

archive_mode=offだとWARNINGが出るみたい。postgresql.confを編集。pg_logディレクトリも作ってログの設定もする。

$ mkdir /usr/local/pgsql/data/pg_log
$ vi /usr/local/pgsql/data/postgresql.conf

archive_mode = on
archive_command = 'cp %p /usr/local/pgsql/data/pg_archive/%f'

log_destination = 'stderr'
logging_collector = on
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 10MB

再起動してもう一度やってみる。
$ exit
# /etc/rc.d/init.d/postgresql restart
# su postgres
$ pg_rman init -B  $BACKUP_PATH

INFO: ARCLOG_PATH is set to '/usr/local/pgsql/data/pg_archive'
INFO: SRVLOG_PATH is set to '/usr/local/pgsql/data/pg_log'

試しに全体バックアップをとってみる。
$ pg_rman backup --backup-mode=full --with-serverlog

INFO: database backup start
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived

検証
$ pg_rman validate

INFO: validate: 2010-11-26 13:22:35

バックアップ一覧表示
$ pg_rman show

大丈夫みたい。

次にcronで定期実行するためにpg_rman設定ファイルにオプションを追記
$ vi /mnt/backup/pgsql/pg_rmain.ini

ARCLOG_PATH='/usr/local/pgsql/data/pg_archive'
SRVLOG_PATH='/usr/local/pgsql/data/pg_log'

BACKUP_MODE = F
COMPRESS_DATA = YES
KEEP_ARCLOG_FILES = 10
KEEP_ARCLOG_DAYS = 10
KEEP_DATA_GENERATIONS = 3
KEEP_DATA_DAYS = 120
KEEP_SRVLOG_FILES = 10
KEEP_SRVLOG_DAYS = 10

cronの設定
$ exit
# vi /etc/cron.d/postgresql

MAILTO=""

0 4 * * * postgres source /home/postgres/.bashrc; /usr/local/pgsql/bin/pg_rman backup; /usr/local/pgsql/bin/pg_rman validate

4:00にpostgresの環境変数を読み込んでバックアップ+検証を実行する。cronのログは/var/log/cronに出力される。

その他、ネットワーク上の別サーバーにバックアップを取りたい場合はNFSを使ってマウントするのが簡単。前の記事を参考に。

 

<関連記事>

【Linux】NFSv4を使ってサーバー間で共有フォルダをmountする
【PostgreSQL】pgpool-Ⅱでレプリケーション、インストールと設定
【Linux】PostgreSQL 8.3.3のコンパイル→インストール→設定

PostgreSQL 9.0.1でレプリケーションを設定

PostgreSQL 9.0からレプリケーションの機能がネイティブで実装されたので試しにコンパイルしてインストールしてみた。環境はCentOS

新機能については下記サイトを参考に

PostgreSQL 9.0 の新機能

ソースのダウンロードは本家のサイトから。コンパイルとインストールは前の記事を参考に。レプリケーションの設定はここのサイトを参考にした。

まずはプライマリー(マスター)側の設定。

postgresql.confを変更。各設定項目の意味は公式サイトのドキュメントを参照。
# vi /usr/local/pgsql/data/postgresql.conf

wal_level = hot_standby
archive_mode = on
archive_command = 'cp %p /usr/local/pgsql/data/pg_archive/%f'
max_wal_senders = 3

archive_commandで指定した保存ディレクトリを作成
# mkdir /usr/local/pgsql/data/pg_archive
# chown postgres. /usr/local/pgsql/data/pg_archive

pg_hba.confにレプリケーション接続許可するIPの範囲を設定
# vi /usr/local/pgsql/data/pg_hba.conf

host replication all 192.168.100.0/24 trust

これで再起動
# /etc/rc.d/init.d/postgresql restart

 

次にスタンバイ(スレイブ)側を設定

postgresql.confをプライマリーと同じように編集して無事起動することを確認。

# vi /usr/local/pgsql/data/postgresql.conf
# mkdir /usr/local/pgsql/data/pg_archive
# chown postgres. /usr/local/pgsql/data/pg_archive
# /etc/rc.d/init.d/postgresql restart

ログファイルを監視していれば何が起きているか分かりやすい
# tail -f serverlog

次はスタンバイになる設定。
# vi /usr/local/pgsql/data/postgresql.conf

host_standby = on(2011/10/03 修正)
hot_standby = on

プライマリー情報をrecovery.confに登録する
# vi /usr/local/pgsql/data/recovery.conf

standby_mode = 'on'
primary_conninfo = 'host=192.168.0.1 port=5432 user=postgres'
restore_command = 'cp /usr/local/pgsql/data/pg_archive/%f %p'
trigger_file = '/tmp/trigger_file'

これでサーバーを再起動する前にdataディレクトリをプライマリーと同期しておく必要がある。参考サイトを同じようにコピーすればできると思うけど、タイムアウトしたのでまた今度。

ちなみに8.4系以前でバックアップを取るには、pgpoolを使ったり、WAL(Write Ahead Logging)の設定をしたり、pg_rmanを使うなりする。

あとpgAdmin3にレプリケーションの項目があって、Slony-Iという仕組みを導入するとレプリケーションが構築できるみたい。また設定が複雑そう・・・。

(大分分かりやすくなったと思うけど)まだNFSで別ドライブをマウントして、スクリプトでバックアップする方がお手軽で分かりやすい。

 

<関連記事>

2010年11月30日火曜日

【Linux】サーバー(PC)のスペックを確認するコマンド

CentOSやUbuntuがインストールされているサーバーのスペックを調べたときのメモ。下記サイトが参考に。

Linux PCでのスペック確認方法

Ubuntuの場合はlshwというコマンドがあるのでサクっと分かる。詳細はこちら

# lshw -short

CentOSでyum経由でインストールするには追加パッケージ(dag)を使う。詳細は下記。

【CentOS】yumで追加パッケージ群DAG(RPMforge)を追加する

なければ次の表を参考に調べる。

確認 コマンド
cpu # less /proc/cpuinfo
メモリ # less /proc/meminfo
ディスク容量 # df -m
Raid構成 # less /proc/mdstat
※何も記述されてない場合も多い。

その他OS関係の確認コマンドも

確認 コマンド
OS(CentOS) # less /etc/redhat-release
OS(Ubuntu) # less /etc/lsb-release
kernel # uname -a

<関連記事>

【Linux】ディレクトリ(フォルダ)の容量を確認、表示する

2010年11月29日月曜日

Wordpressのプラグインmixiチェックが管理画面で登録できない

mixiチェックをwordpressに導入しようとプラグインをダウンロードしたけど、管理画面で登録できなかった。Wordpressが古いバージョンだとダメらしい。ダウンロードはこちらから。

利用したバージョンは、mixi-check-for-wordpress-1.2.1

ちなみにwordpress 3.0だと出来た。

しょうがないのでソースを変更。mixicheck_plugin_options直後に以下を追記。

if ($_POST['action'] == 'update') {
	update_option(MIXI_SETTINGS_KEY_MIXI_CHECK_KEY, $_POST[MIXI_SETTINGS_KEY_MIXI_CHECK_KEY]);
	update_option(MIXI_SETTINGS_KEY_MIXI_CONTENT_RATING, $_POST[MIXI_SETTINGS_KEY_MIXI_CONTENT_RATING]);
	update_option(MIXI_SETTINGS_KEY_MIXI_CHECK_ROBOTS, $_POST[MIXI_SETTINGS_KEY_MIXI_CHECK_ROBOTS]);
	update_option(MIXI_SETTINGS_KEY_MIXI_CHECK_EXCERPT_LENGTH, $_POST[MIXI_SETTINGS_KEY_MIXI_CHECK_EXCERPT_LENGTH]);
	update_option(MIXI_SETTINGS_KEY_MIXI_CHECK_BUTTON_TYPE, $_POST[MIXI_SETTINGS_KEY_MIXI_CHECK_BUTTON_TYPE]);
}

同じ関数内にあるformのaction属性を削除して、自分自身にpostするように変更。一応必須属性なので「action="#"」としてもOK。

2010年11月26日金曜日

Mac OS X ServerにiLifeをインストールしてスライドショー作成

前の記事でフォトストーリー3を使ってスライドショーの動画をDVDにするまで頑張ったけど、iLife11で幸せになれそうだったので購入してみた。4500円ぐらい。

インストールしたのは、この前買ったMac miniのMac OS X Server 10.6.5

CD/DVDドライブがないので、Windowsでisoに取り込んでインストール。前の記事を参考に。

インストール自体は無事終了。さっそくiPhotoを立ち上げようとすると最新バージョンに上げろと言われるので素直にアップデートする。

起動後スライドショーを作成しようとすると、強制終了させられた。ディスプレイの情報を取得しているらしく、ディスプレイ(DVI)に繋げたらできるようになった(さっきまではVNC経由でWindowsから操作してた)。

障害情報をアップルに送信しておいたので、そのうち直っていることを祈る。

スライドショーの作成自体は、直感的に出来るので流石Apple。細かく設定すれば、フォトストーリー3で出来ることは大抵出来る。

ただテキストスライドの位置を移動できない・・・。これをやるためにはiMovieで編集するらしい。

・・・で、iMovieを起動しようとすると、「Quartz Extremeが必要です。」と怒られ起動すらできない。Quartz Extremeに対応したグラフィックカードがないとダメらしい・・・。ハードの問題なら諦めるしかないと思いダメもとで検索してみると、下記コマンドをターミナルで入力すると使えるみたい(情報元)。

sudo defaults write /Library/Preferences/com.apple.windowserver.plist QuartzGLEnabled -boolean YES

これで一旦ログアウトしてiMovieを起動してみると・・・できた。わーい。

ネックだったオーサリングソフトとの連携もiDVDでシームレスにできる(720x480とか気にしなくていい)。iDVDでiso出力して、これをWindowsで焼いて終了。

その他気づいた点をメモ

  • iMovieで「NTSC 4:3」と「NTSC 16:9」両方作った。会場のプレーヤーで綺麗に表示できるのを再生するつもり。
  • 会場では「NTSC 4:3」を使った。どのディスプレイ(テレビ)でも画面いっぱいに(同じ見え方で)表示させるのは不可能なので、上下、左右が切れる前提のレイアウトにする必要がある。
  • iMovieで完成したらプロジェクト → ファイナライズする。その後iDVDを起動すると、右のメニューから選べるようになっている。
  • iDVDを起動してからiMovieでiDVD用動画を出力しないと、「レンダリング/エンコード中のエラー」になる。Appleのサポートサイト
  • iPod touch(iPhone)への転送は、共有 → iTunes を実行すると~/ムービー/iMovie 共有/iTunesに出力されるので、これをiTunesのappタブからGoodReaderとかにコピー(ムービーを同期してもOK)。
  • iDVDで作業するときは、環境設定 → プロジェクトでエンコーディング=最高品質に設定しておいた方がよさそう。
  • iMovieから好きなサイズで出力したい場合は、共有 → QuickTimeを使用して書きだす

 

<関連記事>

結婚式の披露宴で上映するスライドショー(DVD)を作成

2010年11月25日木曜日

Windows用のフォントをMacで使えるか調査

MacのiLifeを使いたくなったので、今までWindowsで使っていたフォントがMacで使えるか調べたメモ。

どうやら何もしなくてもMacのFont Bookアプリケーションからドラッグ&ドロップで使えるようになるみたい。

安心した。

<参考サイト>

Windows用のフォントをMacで使う

漢字が使える日本語フォント 無料ダウンロード 46種類

2010年11月24日水曜日

連休中は結婚式で帰省してきました

連休中はお世話になっている先輩の結婚式があったので帰省。今回はやらないといけない事がたくさんあったので、早めに帰っていろいろと打ち合わせ。

何をやったかというと

  • 友人のスピーチ
  • 披露宴の余興で空手の型「慈恩」
  • 披露宴の余興で四方割り
  • 披露宴のプロフィールビデオ作成
  • 二次会幹事

披露宴の余興は、練習不足もありカッコよく決めきれなかったので、少し心残り。

全体的には、とても良い式になったと思う。披露宴のプロフィールビデオが流れたときには少し泣けてきた。内容というよりかは

「俺頑張った・・・(泣)」

と、自分の苦労を思い返して(笑)。

2010年11月18日木曜日

結婚式の披露宴で上映するスライドショー(DVD)を作成

知人の結婚式で二人の歴史をスライドショーで紹介する動画を作成したときのメモ。

写真をスライドショーの動画にするにはWindowsのフォトストーリー3が一番使い易い。ダウンロードはこちらから。Windows XPまで。

フォトストーリー3の良い所

  • 「境界線の削除」でいい感じに画面いっぱいになるように切り取ってくれる
  • 簡単な画像編集もできる。
  • スライドショーの順番の入れ替えや表示する秒数など直感的で分かりやすい
  • アニメーションが豊富。写真の一部を指定して拡大するアニメーションがいい感じのスライドショーになる
  • 文字(コメント)も挿入できる。だけど細かい場所指定はできない。
  • 曲も挿入できる

Windows7の場合はWindows Liveのムービーメーカーを使うみたい。ちらっと使ってみたけど、直感的な使い易さと機能はフォトストーリー3の方が上。だけどフォトストーリー3には致命的な弱点がある。それは、

720 x 480のサイズで動画を出力できない。

DVD作成するときに必要な動画のサイズは720x480なので、別のソフトで変換が必要。

動画のサイズ変換で使ったのがTMPGEnc。体験版だと30日で期限が切れる。

まとめると

  1. フォトストーリー3でスライドショーを作成。1024x768のサイズで出力。
  2. TMPGEncでアスペクト比を維持したまま720x480のmpegに変換(両端が黒くなる)。
  3. DVDオーサリングソフトでDVDに書き出し(NTSC)。

他のフリーソフトを試してみたけど、どれもイマイチ。動画変換にフリーのWindows Media エンコーダーを使おうと思ったけど、アスペクト比を維持したままサイズ変更はできないみたい(横に太くなってしまう)。

次回DVDを作る機会があったら、MacのiLifeを試してみる予定。Mac mini持ってるし。

 

<追記>

PS3で再生してみたら上下がはみ出してしまった。TMPGEncの設定をいろいろ変えてみてもダメみたい。会場のプレーヤーがPCだったら問題ないのだけれど。

TMPGEncの設定(上下がはみ出す)

  • ソースアスペクト比: 4:3 525 line (NTSC)
  • 画像配置方法: 画面全体に表示(アスペクト比保持)

大人しく市販のソフトを使った方がよさそう。

2010年11月17日水曜日

【Linux】NFSv4を使ってサーバー間で共有フォルダをmountする

データセンターにおいてあるVMware Serverで構築されたサーバー群の中で、インストール直後の仮想マシンをどれか1台の共有フォルダに置いといて、それを他のサーバーでmountしたくて設定したメモ。

まずは共有ディレクトリがあるサーバー(CentOS)をNFSサーバーとする。

基本的に下記サイトを参考に。

CentOS5.0でNFSv4の設定

NFSサーバーをインストール
# yum install nfs-utils portmap

/etc/exportsを編集してNFSサーバーの設定をする(fsid=0を忘れずに)
# vi /etc/exports
   /home/VirtualMachines    192.168.100.0/255.255.255.0(rw,sync,fsid=0)

NFSサーバーを起動する
# /etc/rc.d/init.d/portmap start
# /etc/rc.d/init.d/rpcidmapd start
# /etc/rc.d/init.d/nfs start

ファイヤーウォールを設定する(NFSv4をチェック)。他のポートは開けなくても大丈夫みたい。
# system-config-securitylevel-tui

自動起動するように
# chkconfig nfs on

公開している共有ディレクトリを確認
# showmount -e

名前解決でエラーになるようなら/etc/hostsに記述する。

 

次に各サーバーで共有ディレクトリをマウントする(クライアント側の設定)

NFSサーバーをマウントするために必要なツールをインストールしてportmapを起動する(既にあるなら必要なし)
# yum install nfs-utils portmap
# /etc/rc.d/init.d/portmap start
# /etc/rc.d/init.d/rpcidmapd start

ファイヤーウォールを設定する(NFSv4をチェック)
# system-config-securitylevel-tui

マウントしてみる(サーバー側は「/」だけでいい)。
# mkdir /mnt/VirtualMachines
# mount -t nfs4 192.168.100.26:/ /mnt/VirtualMachines/

再起動したときに自動マウントする場合は/etc/fstabに記述する。

ちなみにアンマウントする場合は下記コマンド
# umount /mnt/VirtualMachines

 

<関連記事>

【CentOS】VMware ESXiのためにNFSサーバーを設定
【Linux】ネットワークストレージをCentOSでマウントする

2010年11月16日火曜日

Apacheを高速化する拡張モジュール「mod_pagespeed」

Googleがオープンソースで開発しているmod_pagespeedを導入すると、簡単にapacheの高速化ができるみたい。

[Google Code]Page Speed - mod_pagespeed

APCと組み合わせると、さらに効果が期待できそう。今回はメモだけ。また後で試してみる。

<関連記事>

【PHP】LAMPPの環境にAPCをコンパイルしてインストール
【PHPチューニング】APCをインストールしてWordpressを高速化

2010年11月15日月曜日

子育ての「三字経(さんじきょう)」

teniteoを眺めていて、何となく立ち読みした「警告!間違った子育てが家庭を崩壊させる」。立ち読みはGoogleブックスで。

そこで紹介されていた三字経が後で使えそうだったのでメモ。

養不教 養(やしな)ひて教(をし)へざるは
父之過 父(ちち)の過(あやま)ちなり
教不厳 教(をし)へて厳(げん)ならざるは
師之惰 師(し)の惰(おこたり)なり

【通釈】養うのみで厳しく教えないのは、父親の過ちである。教えながら厳格でないのは、教師の怠りである。

引用元

空手を子供たちに教えている立場として、一緒にワーイ♪と遊ぶだけではなく、厳しくしていこうと思う。

今度父親になる友人がいるので、この言葉をプレゼントしよう。色紙でプレゼントするやり方はGoogle先生に聞くといろいろ出てくる。

2010年11月12日金曜日

Adobe InDesignでプログラミングなしでiPadアプリを作れるか

Adobe InDesignを使えば簡単にiPadアプリを作れるのでないかと調査したメモ。

作りたいのは下記動画にあるようなアプリ

[Adobe TV]INTRODUCING WIRED ON IPAD

Adobe LabsのDigital Publishingには実際にInDesignを使って簡単に(プログラミングレスで)作っている動画がある。

動画では「Digital Content Bundler」を使ってInDesignから変換しているようだけど、このツールはまだ公開されていないみたい(探したけど見つからない)。そのうち公開されて使えるようになるらしい。

<追記>
2010/10/26にAdobe Digital Pulishing Suiteというツールが公開された。まだベータバージョン。商用利用でApple Storeで公開したい場合などはFAQに書いてある。

iTunes AppストアにはInDesign+Digital Content Bunlderで作成されたのをプレビューするアプリが公開されている。

Adobe Digital Content Preview Tool

ちなみに「ProBridgeDesigner-i」というツールで比較的簡単に紙媒体からiPad用のデジタルコンテンツに変換できるらしい。詳しくは下記。

プラグインでiPad化できる~iPadから見えるコンテンツの未来・その20~

さらに別の方法としては、adobe Pachager for iPhoneを使って、flashをiPhone用に変換したり、クロスプラットフォームな開発環境を使って作る方法もある。どちらも将来的にAndroidの製品などに対応させることが可能(だと思う)。

 

<関連記事>

【iOS開発】JavaScript, HTML, CSSでiPhone, iPadアプリ開発

2010年11月11日木曜日

【iOS開発】JavaScript, HTML, CSSでiPhone, iPadアプリ開発

twitterで知った衝撃的な事実。JavaScriptを使ってiPhone, iPod touch, iPadやandoroid向けのアプリを開発できるクロスプラットフォームな開発環境があるらしい。

他にもいろいろプロジェクトがある。詳しくは下記ブログ

Titanium Mobileはフリー+オープンソースだし、javascript, html, cssからネイティブなobjective-cに変換するので高速。変換後のobjective-cをxcodeで編集することもできるみたい。JavaScript Runtime上で動く。

objective-cも一応できるようになったけど、JavaScriptの方が得意なので簡単なアプリはTitanium Mobileを使って作ろうかな。

この辺の技術は最近進歩が激しいのでおもしろい。今度試してみよう。

to be continued.

 

< 2012/09/04 Modified >
JavaScriptをObjective-Cに変換するわけではないので修正。詳しくはこちら(Appceleratorの開発者が語るTitaniumとPhoneGapの比較 | A-Listers)。

2010年11月10日水曜日

「ねこんかつ」ですと!?

「とんかつ」ではなく、ネコ好き同士の合コンがあるようです。

猫と一緒に婚活しょう!「ねこんかつ」が大好評!

間違いなく猫好きの人と知り合うことができそう。

ただ一人で行く勇気はない。

ネコたちに赤ちゃん言葉で話しかけるのを見られるのが嫌。

2010年11月9日火曜日

GAE/Pythonのコーディングメモ

Macで開発環境を整えたので、コーディング規約とか参考サイトをまとめるためのメモ。Mac + Eclipse + PyDevは前の記事を参考に。

Pythonのコーディング規約は下記を参考に

PEP 8 -- Style Guide for Python Code

PEP 8 -- Style Guide for Python Code(日本語訳)

動作確認のためにHelloWorldアプリを作成する手順は公式サイトを参考に

[Google APP Engin] Hello, World!

 

<関連記事>

Google App EngineでJavaを使うかPythonを使うか迷う
GAE開発のためにEclipse + PyDevをインストール(Mac)
Mac環境にGAEの環境(Python)を整えてGAEOをインストール

2010年11月8日月曜日

Google App EngineでJavaを使うかPythonを使うか迷う

Mac + Eclipse + PyDevでGAEの開発環境を整えたけど、Javaで開発しようか迷ったときのメモ。

迷ったのはGoogle App Engine上でxml + xsltの技術を使いたかったから。

調べてみるとPythonではxsl変換するライブラリがデフォルトで用意されていない。Javaだとできるみたい。

「(GAEの)Javaは遅い」という噂があったので、Google先生に聞いてみると下記記事が参考になりそう。

[ひがやすを blog]App Engineではどの言語を使えばいいのか

Google AppEngine ? Java vs Python Performance Comparison

速度を考えるとやっぱりPythonみたい。

jythonを使えばPythonでxsl変換が実現できるみたい。

Transforming with XSLT on Google AppEngine and jython.

試してないけど、言語がPythonで、実質はjavaランタイムで動くんだと思う。言語にこだわっているわけではなくて、速度にこだわりたい。ちなみにjavaはandroidアプリを作ったことがあるので一応分かる。

この際、両刀使いになってもいいかも。

 

<関連記事>

GAE開発のためにEclipse + PyDevをインストール(Mac)

2010年11月5日金曜日

【Wordpress】類似ページ(関連記事)を表示するプラグイン開発

Wordpressの記事を表示したときに自動的に似た内容の記事を表示するプラグインを開発したときのメモ。

環境:CentOS 5.4, Lampp 1.7.1, wordpress 2.8.6

処理手順としては

  1. 投稿やコメントを保存したタイミングで記事内の名詞を抽出してMySQLに保存(辞書の作成)。名詞(単語)の抽出はオープンソースのMecabを使う。インストールなどの詳細は前の記事を参考に。
  2. 記事を表示したときに、その記事の特徴を表す名詞リストをMySQLから取得
  3. MySQLの全文検索機能を使って、名詞リストと類似する名詞リストを取得(表示しようとしている記事とコメントは除外)。

こんな感じ。

MySQLの全文検索が関連する順に並び替えてくれるので便利。

MySQLのテーブルの構造

CREATE TABLE `wp_1_wsa_dictionary`
  `dictionary_id`     BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY
, `post_id`           BIGINT(20)
, `comment_id`        BIGINT(20)
, `word_list`         TEXT
, `updated`           DATETIME
,  FULLTEXT (word_list)
)

実際のデータ例。日本語の名詞だけ抽出。「読み」も保存しておくことで、精度の高い類似検索ができる(はず)。

image

ただMySQLの全文検索では、検索対象とする単語長がデフォルトで4になっているのでmy.confを編集しておく(要再起動)。

[mysqld]
  ft_min_word_len=1

 

ちなみに、こんなことをしなくても、MySQL + Senna + Mecab = Tritonn というのが既にあるので、そちらを利用するのも手。

 

<関連記事>

PHPから日本語形態素解析「MeCab」を使うためにコンパイル
サイト内の類似ページ(関連記事)を取得するための日本語形態素解析

2010年11月4日木曜日

PHPから日本語形態素解析「MeCab」を使うためにコンパイル

前の記事ではwordpressの記事の類似ページ(関連記事)を表示するための方法を調べた。今回は実際に日本語形態素解析「MeCab」をコンパイル、インストールしてPHPから利用できるように設定してみた。

環境はCentOS 5.4, Lampp 1.7.1

まずはMeCabのコンパイル。詳しくは公式サイトを参考に。

必要なツールをインストール
# yum install gcc-c++

iconvはインストール済みだった。

# tar zxvf mecab-0.98.tar.gz.gz
# cd mecab-0.98
# ./configure --with-charset=utf-8
# make
# make check
# make install

辞書のインストール

# tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz.gz
# cd mecab-ipadic-2.7.0-20070801
# ./configure --with-charset=utf-8
# make
# make install

/usr/local/lib/mecab/dic/ipadic/
にインストールされた。他にも辞書はいろいろ。「IPA、NAIST、UniDic、JUMANの辞書実演比較」を参考に。

次はPHPで使うための拡張モジュールphp_mecabをインストール。ライセンスはMIT。ここからダウンロード。参考。ちなみにSWIGを理解すれば自作できそう(公式サイト「スクリプト言語のバインディング」)。

# tar xzvf php_mecab-0.3.0.tgz
# cd php_mecab-0.3.0
# /opt/lampp/bin/phpize
# ./configure --with-php-config=/opt/lampp/bin/php-config --with-mecab=/usr/local/bin/mecab-config

warningが出た

checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

一応解決しとく。ここからre2cをダウンロード、インストール

# tar xzvf re2c-0.13.5.tar.gz.gz
# cd re2c-0.13.5
# ./configure
# make
# make install

再度php_mecabのコンパイル

# ./configure --with-php-config=/opt/lampp/bin/php-config --with-mecab=/usr/local/bin/mecab-config
# make
# make install

php.iniに次の行を追加

extension="mecab.so"

lamppの再起動。

# /etc/rc.d/init.d/lampp restart

php.infoにmecabが表示されていれば成功。

さて、次はWordPressの記事を形態素解析して、関連記事を取得するプラグインを作らなければ。

 


< 2012/06/07 Modified >

最新Versionの0.994をCompileしようとしたら下記Error。

libtool: link: g++ -O3 -Wall -o .libs/mecab mecab.o  ./.libs/libmecab.so -lpthread -lstdc++ -Wl,-rpath -Wl,/usr/local/lib
./.libs/libmecab.so: undefined reference to `__sync_val_compare_and_swap_4'
collect2: ld returned 1 exit status

環境はCentOS 5.8。

下記記事でg++の4.4以上を入れれば大丈夫らしい。

CentOS 6.2の環境では問題なく完了した。

さらにPHP 5.3以上だとphp_mecab-0.3.0が下記ErrorでCompile出来ない。

/php_mecab-0.3.0/mecab.c:3843: warning: ‘php_std_error_handling’ is deprecated (declared at /usr/include/php/main/php.h:296)

これはphp_mecab-0.4.1, 0.5.0があるので、それを使えば大丈夫。

# yum install php-pear
# pear channel-discover pecl.opendogs.org
# pear install opendogs/mecab-0.5.0
# echo "extension=mecab.so" > /etc/php.d/mecab.ini


 

< Related Posts >

2010年11月2日火曜日

サイト内の類似ページ(関連記事)を取得するための日本語形態素解析

wordpressの記事を閲覧したときに似た内容の記事を表示するために調査。応用すると「漢字」で入力された内容を「読み」で並び替えるとかできると思う。

プラグインとしては下記を導入すれば解決しそう。

WordPress Related Post for Japanese (関連投稿表示プラグイン)

ただしYahoo!Japanが提供する日本語形態素解析APIを使うので、別途デベロッパー登録+クレジット表示が必要。商用利用の場合は、問い合わせしないといけない。

Google先生がAPIで提供してくれないかと思ったけど、まだみたい

API経由の方が辞書のメンテナンスをしなくてよいので助かるのだけど、自前で形態素解析をできないかと調べてみると、下記のツールがオープンソースで公開されている。

  ライセンス 説明
MeCab (和布蕪) GPL/LGPL/BSD Chasenに比べて解析速度が早い。開発者はGoogle日本語入力を開発した一人(wikipedia
ChaSen(茶筌) 公式サイト参照 wikipedia参照

詳細な比較はMeCabのサイトが分かりやすい。

下記サイトも読んでおくと形態素解析について理解が深まる

形態素解析の基礎

次回はMeCabをコンパイルしてPHPで使えるようにするまで。

 

<関連記事>

Googleの類似ページ検索をAPI経由で利用できないものか

2010年11月1日月曜日

【JavaScript】ツールチップ(tooltip)を表示するjQueryプラグイン

マウスオーバーしたときに説明文をカッコよく表示したくて調べたメモ。いわゆるツールチップ(吹き出し、ポップアップと呼ぶ人もいるが)。

jQueryのプラグインで簡単に表示できるのを見つけたので紹介。下記サイトに他のプラグインも含め紹介されている。

30 Stylish jQuery Tooltip Plugins For Catchy Designs


 jQuery Tools - Tooltip

ライセンス:NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE(著作権もライセンスもない。あなたの好きなようにして)

jQuery Toolsの一部。オプションが豊富で、ドキュメントもしっかりしているので使いやすい。drop shadow付きでカッコイイのが簡単に作れる。迷ったらこれ。

image


jQuery Tooltip Plugin

ライセンス:MIT/GPL

デモを見るのが分かりやすい。使い方もシンプル。

image


qTip

ライセンス:MIT

多機能なツールチップを実装できる。デモ。callbackのイベントも用意されているので、ツールチップの動作に合わせてカスタマイズできる。ツールチップに表示したHTMLをクリックしたりとかポップアップ(ダイアログ)的な使い方もできる。

image


jQuery UI

ライセンス:MIT/GPL

まだ未実装。バージョン1.9で実装される予定なので一応メモ。ユーザーインターフェース部分はjQuery UIに統一していきたい。

 

<関連記事>

jQueryとjQuery UIのバージョンを確認(Google CDNを使う)

2010年10月29日金曜日

今更ながら気付いたWordCamp名古屋に参加したいけど・・・ #wcNagoya

オープンソースWordpressのイベントが明日名古屋であるのをさっき知った。

WordCamp Japan

行きたいのだけれど、明日は抜けられない空手イベントが・・・。

teniteo[テニテオ]もwordpressがベースになっているので、teniteoが使いやすくなるような情報が得られるかもしれない。

http://teniteo.jp/

Google Enterprise Day 2010に行ってきたばかりなので、teniteoを展示ブースで紹介するのも面白そうと思ったり。技術的に突っ込まれるのが恐いけど。

 

<関連記事>

Google Enterprise Day 2010に参加してきました。

Google Enterprise Day 2010に参加してきました。

Google Enterprise Day 2010に参加するため東京まで出張(自腹だけど)。主にクラウドとGoogle Appsのお話し。

セッションではGoogle ドキュメントを使って共同作業するデモやipadやAndroidで編集できるなど、コラボレーションと生産性を強調。この辺は「Google Appsの導入を検討している人向け」な感じなので、あまり目新しい情報はなかった。

Google Appsの講演は当然のように英語。同時通訳の無線がおいてあるので、もちろん言っている内容は分かる。だけど、ほとんどの人が無線を利用せずに聞いている。私も最初無線を利用していたけど、音漏れがひどかったので(隣の人に悪いと思って)途中で使わなくなった。

脳が疲れた。英語勉強しておきます。

セッションで面白かったのがゲスト講演。米倉 誠一さんと神田 瀧夢さんの全くGoogleと関係のない話し。でも疲れた脳にはいい刺激で「俺、頑張る!」という気持ちになった。

セッションの全てはGoogle Enterprise Virtual Conferenceで全て閲覧できるみたい(ゲスト講演はない)。・・・このサイト凄いけど、ちょっと重いのが気になる。

展示ホールではGoogle Appsを利用した各社のソリューションのデモを行っていて、スタンプラリーみたいに回ると「Google Apps完全ガイド(翔泳社)」をくれた。この本も「Google Appsの導入を検討している人向け」なので、広く浅い感じ。

その他、発表されたGoogleサービスのメモ

Google Product Search(ショッピングサーチ) ・・・ ECサイトを横断的に検索できる。ショップ側の商品の登録とか無償で利用できるらしい。お店側の人はこちらから商品登録。

Google Commerce Search ・・・ Googleの検索機能を利用した商品検索を自社のECサイトに埋め込める。年間250万円から。

豪華な会場で(美味しいお弁当も出たし)、いい話が聞けたので満足。

 

<関連記事>

Mixi meetupに参加してきました。

2010年10月27日水曜日

FeedBurnerの機能をざっと眺めてみた

Bloggerの記事をFeedBurner経由でtwitterに投稿できるように設定したときに、FeedBurnerが思ったより便利に使えるのでないかと感じたときのメモ。

下記サイトがまとまっているので参考に

FeedBurnerをちゃんと理解して使いこなす為の基礎知識

メニューだけ眺めれば、なんとなく出来ることが分かる

image image

Googleアカウントがあれば、これらの機能を無料で利用できるのがすごい。

2010年10月26日火曜日

BloggerとTwitterの連携。FeedBurnerを使って

前の記事ではFriendFeedを使って連携したけど、Googleのサービスの一つFeedBurnerでもtwitterへ投稿できるようになっていたので、切り替えてみた。

feedburnerにログイン後、フィードを選んで、集客支援 → Socializeから設定する。FriendFeedの方を停止しておくのを忘れずに。

さらにBloggerにガジェットで表示するのは、公式Twitter Widgetsから簡単にできる。いつの間に・・・。

ちなみに前のガジェットは下のような感じ。これはこれでシンプルで良かった。

image

 

<関連記事>

BloggerとTwitterの連携。記事を自動でつぶやくように設定

2010年10月25日月曜日

【xyzzy】Grepしたときに画像ファイルは無視するマクロ

普通にGrepすると画像もスキャンしてしまうので、検索対象から除外するマクロを書いた。正規表現で対象ファイルを限定することもできるけど、いちいち指定するのがメンド臭くなったので。

前に書いたフォルダを対象外にするマクロを拡張。

;;
;;Grepをしたときに特定のディレクトと画像は無視する
(defvar *ignore-scan-dirs* (list "dic" ".svn" ".hg")) ;;対象外にするフォルダ
(defvar *ignore-scan-files* (list ".png" ".jpg" ".gif")) ;;対象外にするファイル(拡張子)
(defvar *org-scan-files-1* (function ed::scan-files-1)) ;;元の関数
(defun ed::scan-files-1 (file pattern buffer scanner)
  (let (skip)
    (dolist (dir *ignore-scan-dirs*)
      (setq dir (append-trail-slash dir))
      (setq pos (string-match dir file))
      (when pos
        (setq skip t)
        (return)))
    (dolist (ext *ignore-scan-files*)
      (setq pos (string-match ext file))
      (when pos
        (setq skip t)
        (return)))
    (unless skip
      (funcall *org-scan-files-1* file pattern buffer scanner))))

 

<関連記事>

【xyzzy】Grepしたときに特定のフォルダを除外する

2010年10月22日金曜日

【iOS開発】Objective-Cの自分用コーディング規約プラス

次開発するとき用のメモ。まずは下記の公開されているドキュメントを読む。

Google Objective-C Style Guide(英語)

Google Objective-C Style Guide(日本語訳)

[Apple Developer Center]Coding Guidelines for Cocoa(英語)

ここからは自分の中にあるコーディング規約。他のサンプルを参考にしながら。

  • コメントは英語で。マニュアルも英語なので勉強だと思って手を抜かない。
  • defineは「k」をprefixにしてキャメルケース
  • クラス変数は「m」をprefixにしてキャメルケース。最後に「_」を付ける(上のコーディング規約に従うため)
  • 自作クラスのメソッドの引数は「a」をprefixにしてキャメルケース。
  • 「#pragma mark -」の前は2行空ける
  • 「#pragma mark」を使って機能ごとに分けてコメントも付ける
  • 「=」の場所は(できるだけ)合わせる
  • ヘッダーファイルのクラス変数、プロパティ名、メソッド名の開始位置(アスタリスクの位置)を合わせる。アスタリスクは名前の直前。
  • ヘッダーのdefineは「k」+「(プロダクト名)」を先頭に付ける
  • privateなプロパティやメソッドはカテゴリーの機能を使って、.mファイルの方に記述する。.hファイルは、そのクラスが外部に提供するプロパティやメソッドだけ。
  • クラスファイルは全て「Classes」ディレクトリに配置して、xcodeのグループ機能で分かりやすいように分ける
  • 言語ファイルは「jp.lproj」、「en.lproj」など2文字で。国名コード(wikipedia)
  • xibファイルと対応するクラスは「*ViewController」。xibはないけど画面の制御するクラスは「*Controller」
  • 自作クラスはプロジェクト共通の「Global.h」をimportする。
  • 自作メソッドの直後はLOG_METHODを記述する。参考
  • 波括弧「{}」はクラス名、メソッド名、ifの同じ行に記述

もっとobjective-Cに慣れたらドキュメントにしていきたい。自分用だけど。

 

<関連記事>

【iOS開発】Xcodeを使ったObjective-Cコーディングメモ
iOS(Objective-C)開発を始めるときのxcodeの設定
【Objective-C】iPhoneアプリの多言語化(ローカライズ)
【Objective-C】「json-framework」をインストール、設定

2010年10月21日木曜日

【iOS開発】Xcodeを使ったObjective-Cコーディングメモ

次回の開発までに忘れていると思うので自分用まとめ。

[コーディング規約]

 

[xcodeの便利ショートカットキー]

Control + 1 ファイルの参照履歴表示
Contorl + 2 関数一覧(function menu)表示
Command + ダブルクリック クラス、メソッドの定義元へ移動
Option + ダブルクリック リファレンスを簡易表示
F5 補完リストをポップアップ表示(Visual Studioのインテリセンスみたいに)
Command + Enter ビルドとデバッグ

 

[カスタマイズしたショートカットキー]
WindowsからVNC接続で操作するために、自分用カスタマイズをしているけど、忘れてしまいそうなものだけ。

Command + Tab ヘッダ/ソースファイルの切り替え
Command + → 進む
Command + ← 戻る
Command + ↑ 前のファイル
Command + ↓ 次のファイル

 

[その他xcodeの便利機能]

  • クラス、メソッドを選択しておいて、ヘルプ → 「選択したテキストを製品ドキュメント内で検索」で別ウィンドウにリファレンスを表示できる。ファンクションキーに割り当てると便利(F1にした)。
  • #pragma markとコメントの書き方で関数リストを見やすく。詳細はここ
  • ファイル → スナップショットでバージョン管理できる

 

[事前に入れておきたい情報]

原文をスラスラ読みたい!「MSDNライブラリによく出る英単語 100選」

 

また発見したら追記予定。

 

<関連記事>

iOS開発を始めるときのxcodeの設定
iPhone/iPod touchアプリの開発を始めるための参考情報

2010年10月20日水曜日

【iOS開発】UMLツールを使って頭の中を整理

普段のPHP開発は、すでにコーディング規約をドキュメントにして、頭の中にも入っているので、どんどんコーディングしていける(スクリプト言語だし)。

Objective-Cの場合は、コーディング規約(命名規則)が頭に入っていないし、サンプルを見ていると他にも命名規則に慣例的なものがある様子。

しかもクラスが増えてきて、役割や関連性など分かりにくくなってきたので、UMLを使ってまとめてみようと便利なツールを探してみた。

一番フリーでお手軽なのが、

UMLmemo

他のは動作が重かったり、使い方を覚えるだけで疲れそう。UMLmemoはメモのように書いていけるのがステキ。

本当はGoogle Docsの図形描画で済ませたかったけど、グループ化したり解除したりがメンド臭かったのでやめた。

本気でUMLを清書したい場合はMS VisioとかVisual Studio 2010とかEclipseのプラグインとかでできるみたい。まぁそれは必要になったときに。

Objective-Cの場合の書き方は「objective-c uml」で検索してみるといくつか出てくる。手描きの画面イメージだけでなく、ちゃんと設計しないとダメだなと再認識

昔、手続き型言語とオブジェクト指向言語の違いを誰かに話したときに

「経験からいうと、手続き型言語は思ったことを上から順番に書いていけばいいですが、オブジェクト指向言語はしっかり設計図を書いて、全体と個々の役割を把握して開発する必要があります。」

と偉そうに言っていたことを思い出した。

参考:オブジェクト指向とは

2010年10月19日火曜日

Macの日本語入力切替を設定(ことえりのショートカット割当)

WindowsからVNC経由でMacに接続して、リモートで操作していたけど、日本語入力切替が煩わしかったので設定したメモ。環境はMac OS X Server 10.6.4

VNC接続に関しては前の記事を参考に

【Mac】WindowsからMacにリモート接続(画面共有)する
WindowsからMacにVNCで接続すると「=」と「’」が入力できない

やりたかったのは、Ctrl + Spaceで入力モード切替。ことえりのショートカットを変更できるフリーのソフトがあったのでこれを使う。

ことえでぃ4(Kotoeri4 keybinding editor)

必ず実行する前に現在のキーレイアウトファイルを保存する必要がある。

$ cp /System/Library/Input\\ Methods/Kotoeri.app/Contents/Resources/MsimeKeys.plist /Volumes/Macintosh\\ HD2/Shared\\ Items/Backups/

バックアップをとったら「ことえでぃ4」を起動して、割当を設定。ファイル → システムに適用 → 再起動で反映されているのを確認

image

ことえりの入力を英字とひらがなに設定すれば、入力をトグルできるので、windowsの半角全角キーと同じ感覚で出来る。

2010年10月18日月曜日

MacからWindowsにリモート接続する(リモートデスクトップ)

前の記事ではWindows→Macだったけど、今度はMac→Windowsに接続する方法のメモ。

マイクロソフトのサイトからMac用リモートデスクトップをダウンロードできる(無料)

Remote Desktop Connection Client for Mac 2

ダウンロードを選択して、次の画面の(更新プログラムではなく)下の方にあるRemote Desktopを選択するとダウンロードできる。

もちろん接続できるのはリモートデスクトップ接続を許可しているWindowsだけ。

便利なのはMacのドライブをリモートデスクトップ接続したマシンでマウントできる。「環境設定」から設定する。

 

<関連記事>

WindowsからMacにVNCで接続すると「=」と「’」が入力できない
【Mac】WindowsからMacにリモート接続(画面共有)する

2010年10月15日金曜日

【iOSアプリ開発】Unknown class MyClass in Interface Builder file

TabControllerを使って、xibファイルのClass関連付けを変更していたら、下記エラーがでるようになった。

Unknown class MyClass in Interface Builder file

Google先生に聞いてみると、Interface Builderから設定したClassの参照(リファレンス)がコンパイラにうまく伝わってないみたい。

よく分からないけども、ここを参考に

  1. xibファイルとクラスファイルをプロジェクトから削除
  2. 新規作成
  3. クリーニングしてからリビルド

すると直った。

変にハマったので、Interface Builderを使わない開発も覚えていきたい。

2010年10月14日木曜日

【iOS開発】Sample Code(サンプル)のスクリーンショット一覧

iPhone, iPod touchアプリ開発するときにApple Developer Centerからサンプルをダウンロードして参考にしながら開発しているけど、どのサンプルがどんな感じか忘れてしまうのでメモ。一覧でまとめたサイトはないものか・・・。

実際に動かしたものと(個人的に)参考になりそうなものだけ。順不同


UICatalog

UIコンポーネントの一覧。

image image


AppPrefs

インフォメーション、設定画面への切り替え方

image image


CoreDataBooks

Core Dataを使ったアドレス帳。新規登録、削除、編集など基本的なことが分かる

image image


QuickContacts

上のCoreDataBooksを進化させてアドレス帳として完成度を高めた感じ。起動直後のメニューはplistファイルを使っている。

image image


SimpleDrillDown

ナビゲーションの使い方。データ部分がちゃんとクラスに別れている。

image image


DrillDownSave

多階層のナビゲーション。下の階層にいっても親の階層を覚えておく

image


NavBar

ナビゲーションのバーをカスタマイズ。info表示とスタイルの変更もできる。

image image


TableViewSuite

テーブルビューの使い方。アイコンの表示、カテゴリー表示

image


LazyTableImages

スクロールに合わせて動的にアイコンをダウンロードして表示する

image 


Table View Animations and Gestures

セクションごとに折り畳む。
※コンパイラのバージョンを「GCC 4.2」にしないとコンパイルできない。

image


TouchCells

テーブルの行をチェックして選択できる。

image image


ListAdder

TableViewへの追加、削除。カテゴリーを使ってprivateなプロパティを表現している。

image image


DateCell

TableCellをタップすると日付選択のpichkerが表示されて、動的に日付が変わる。応用すれば設定画面で指定範囲から選択させるのに使えそう。

image


PhotoLocations

現在日時と(保存済みの)写真を組み合わせて追加していく。位置情報も取得しようとする。
ちなみに「PhotoPicker」は保存済みの写真を読み込んで表示するだけ。

image image


PhotoScroller

フリックで写真をスクロールする

image


ScrollViewSuite

画像のタップによる拡大、縮小と下部タップで一覧の表示

image


Scrolling

上の画像を固定して、下の画像だけスクロール

image


TransWeb

HTMLファイルを読み込んで表示

image


HeadsUpUI

画面をタップすると別のviewを透過処理で表示する

image image


SimpleURLConnections

HTTPのGET, PUT, POST。

image image


AdvancedURLConnections

http経由で画像の取得をする際に「loading...」表示とURL選択時に履歴表示。認証サーバーの証明書も取得できる。オプションで設定可能。

image image


Reachability

www.apple.comへ接続できるかどうか。

image


URLCache

一度ダウンロードした画像をキャッシュする

image


PageControl

フリップでページング

image

 


SeismicXML

XMLをパースする。RSSを読み込んでTableViewに描画

image 


ほかのダウンロードできるサンプルを公開してくれているサイト

AppsAmuck iPhone Development Tutorials and Examples

 

Wordpressのクライアントとして動作するiOSアプリをオープンソースで公開されている。Wordpressの環境を準備できれば、いろんなテクニックが詰め込んであるので非常に参考になる。ただしGPLなので注意(このアプリを改変してApp Storeで公開したらソースコードも公開、ダウンロードできるようにしないといけない)。

Wordpress for iOS

 

最後に順を追って勉強するには参考書を買って読んだ方が早い。私が買ったのは

iPhone SDK アプリケーション開発ガイド(オライリージャパン)

サポートサイトからサンプルがダウンロードできる。

2010年10月13日水曜日

iOS(Objective-C)開発を始めるときのxcodeの設定

xcodeをバージョンアップして、久しぶりにiPhone, iPod touchアプリを開発しようとしたときに設定を忘れていたのでメモ。前の記事でも書いたけど自分用まとめ。

下記サイトを参考に

【Xcode】設定しておくと便利なカスタマイズいろいろ

xcodeの設定。

  • Xcode → 環境設定 → 全般 → レイアウトを「オールインワン」 。マルチディスプレイやiMacなみの画面の広さなら不要かも。
  • Xcode → 環境設定 → デバッグ → 開始時を「コンソールとデバッガを表示」
  • Objective-Cのコーディング規約(英語日本語)に従うためにインデントを設定。Xcode → 環境設定 → インデント設定 → タブ。(Appleのコーディングガイドラインも参考に)
    「スペースの代わりにタブを挿入」のチェックをハズす
    タブの幅:8 (←タブ文字を見分けるため)
    インデントの幅:2

 

プロジェクト設定

  • プロジェクト → プロジェクト設定の編集 → 組織名を自分の組織に
  • 参考サイトのデバッグモードのときにしかデバッグログを吐かないようにする設定を仕込むために、構成Debugの「プリプロセッサマクロ(GCC_PREPROCESSOR_DEFINITIONS)にDEBUGと記述

 

また気づいたら追記予定

 

<関連記事>

iPhone/iPod touchアプリの開発を始めるための参考情報

2010年10月12日火曜日

【iOSアプリ開発】keychainのビルドエラー?

久しぶりにiPhone(iOS)アプリ開発を始めて、サンプルプログラムをビルドして実行するときに、エラーでいろいろと困ったのでメモ。

現在のiOS SDKのバージョンは4.1。サンプルはまだ4.0が多い。

このサンプルプログラムをダウンロードして実行すると次のようなエラーになる。

error: There is no SDK with the name or path 'iphoneos4.0'

これはビルドオプションの「ベースSDK」を最新にすれば大丈夫。これでビルドすると次はこのエラーが

Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain

「ベースSDK」を変更したあと、xcodeの再起動が必要らしい。再起動すると無事ビルドできた。

それでもエラーになる場合は下記サイトを参考に。

iPhone アプリのDLしてきたサンプルソースでエラー

2010年10月8日金曜日

Gmailの新着をRSSフィード(Googleサイトのガジェット)で確認

OB会のホームページをGoogle sites(サイト)を使って構築していて、共通のメールアドレスに届いたものはサイトのトップページに表示しちゃえばいいんじゃない?と思って調査したメモ。


< 2011/12/06 Modified >
Gmailの仕様が変わってURLでのLogin認証が出来なくなったみたい。この辺の記事を参考に自前で作成するか、既にそのようなWeb Serviceがあるかもしれない。


複数のアカウントは管理したくないので、1つのGoogleアカウントで実現してみた。

Gmailの新着メールをGoogleサイトに表示するまでの流れは

Gmail → FeedBurner → Googleサイト(RSSガジェット)

1.Gmail → FeedBurner

GmailはRSSリーダーで新着できる仕組みを提供している。詳しくは下記サイト

Gmailフィードのまとめ

本当はGoogle Readerを経由してRSSフィードを一元管理したかったけど、Google Readerは
https://(account):(password)@mail.google.com/mail/feed/atom/
の認証形式に対応していないので不可能。

これを実現するためにはFeedBurnerを使う。Googleのサービスの一つなので、同じGoogleアカウントでログインして、すぐに使用可能。

上記の認証方式で登録するのはウィザードに従えば難しくない。登録後すぐにRSSフィードに反映されないので、1時間ぐらいしたらメールを送って確認する。

2.FeedBurner → Googleサイト(RSSガジェット)

FeedBurnerに登録したら、Googleサイトにガジェットを追加。「挿入」 → 「その他のガジェット」で「Google sites rss reader」で検索。下の方にあるので結構スクロールしないと出てこない。(他の便利なガジェットがあったら教えてほしい。)

このガジェットのFeed urlにFeedBurnerに登録した。

http://feeds.feedburner.com/gmailinbox?format=xml

のようなアドレスを登録すれば新着メールがチェックできるはず。

 

欠点はRSSフィードが外部から参照可能なこと。

それさえ気にしなければ、メール送信するだけで新着情報を更新できるので、応用(この方法に最適化したガジェットを作成)すれば、いろいろソリューションできそうな予感。

2010年10月7日木曜日

WordpressのログインにMixiのOpenIDを使用する設定

Wordpress MUのログインにMixiのOpenIDを使えないかと調査したメモ。(記事のタイトルとしては「Lampp環境でcurlのhttps通信をする方法」の方が適切だなと後で思った。)

環境はCentOS5.4, Lampp 1.7.1, wordpress mu 2.8.6

OpenIDについてはwikipediaで。OpenIDを使った処理手順は

  1. WordpressでOpenIDを発行するサイトを指定(ここではmixiとする)
  2. mixiのサイトに飛ばされ、mixiのユーザーIDとパスワードでログイン
  3. OpenIDの認証画面が表示され、「許可」をするとwordpressに戻る
  4. wordpress側ではOpenIDで処理をする

OpenIDを使うプラグインはopenidがあるので試しにインストールしてみた。この時点のバージョンは3.3.3

管理画面のプラグインでインストールすると、fatal errorが出る場合は、ここを参考にしながら、ファイル内のget_user_metaをget_usermetaに置換する。

次はサーバー(プラグイン)がhttpsでmixi.jpと通信するための証明書をインストールする。下記サイトを参考に。

cURL に HTTPS でアクセスできるように証明書を追加する

mixi OpenIDのサンプルコードをPHP OpenID Libraryで動かしてみた

実行したコマンドは

# cd /opt/lampp/share/curl/
# cat mixi.jp.crt >> crul-ca-bundle.crt

でも動かない。curlでのhttps接続が失敗するみたいなので、curl単独のコマンドを実行してみる。

# /opt/lampp/bin/curl https://mixi.jp/

これは下記エラーで失敗する。

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

次は証明書を指定して実行してみる。

# /opt/lampp/bin/curl --cacert /opt/lampp/share/curl/mixi.jp.crt https://mixi.jp/

これも失敗するので、証明書が有効でないみたい(形式が違うのか?)。

何となくCentOSにインストールされていたcurlで実行してみると

# curl https://mixi.jp/

なんと成功する!なぜ?メジャーな認証局の証明書を使うようになったのかな?でもLamppで失敗してたのは謎。

何はともあれ、使われた証明書を検索

# find /usr/ -name "libcurl.so*" -type f|head -n 1|xargs strings|grep ca-bundle.crt

パスが出力されるので、これをコピー

# cp /etc/pki/tls/certs/ca-bundle.crt /opt/lampp/share/curl/

あとは前のをバックアップして、curl-ca-bundle.crtにrenameすれば

# /opt/lampp/bin/curl https://mixi.jp/

が成功するはず。

これでwordpressのログイン画面からでもOpenID認証ができるようになったけど、このプラグインでは思ったような処理が実現できないので自作しそう。

OpenID2.0の仕様を勉強しないといけない予感。

2010年10月6日水曜日

Subversionでログ(履歴)を保持したまま移動

SubversionとTortoiseSVNを使用していて、フォルダ(ディレクトリ)構成を変更したくなったときのメモ。

単純にエクスポート・追加などをやるとログが消えてしまうのが嫌。下記サイトが参考に。

Subversionの履歴を保持したままリポジトリを移動するには

svnadmin dump/loadをやればできるみたい。

リポジトリを変更したあとはTortoiseSVNの「切替」を行うとサクっと完了する。

 

<関連記事>

Subversionのファイル追加コマンド。その他はWindowsから
Subversionをコンパイル・インストールしてsvnコマンドを使用

2010年10月5日火曜日

Windows Live Essentials 2011のWriterのためにWin7にする?

普段のブログ更新はWindows live writerに下書きを貯めこんでアップしているので、その最新版がリリースされたということで試してみた。

Windows Live Essentials(旧名:おすすめパック)

今のwriter(Windows XP版)で最大の弱点は

ブログ内の記事を最大500件までしか取得することができない(古い記事を開いて編集することができない)。

他は特に不満はなく、便利に使っている。

これが直っているといいんだけど・・・と思いつつダウンロードしようとすると、Windows Vista以上でないとインストールできないらしい。

・・・機能が知りたいだけなので、Windows 7の評価版をダウンロードしてきて、VMwareで起動 → インストールで試してみると、ブログ内の記事を取得するときに「すべて」が選択できるようになっている。

image

bloggerの編集機能を使えばいいのだけど、writerで投稿した記事を編集しようとすると、改行が変になるので嫌(最近は試してない)。

会社のPCは無理だけど、自宅のPCはそろそろWindows 7にしようかな。

 

<関連記事>

Windows Live Writerを便利に使ってブログ更新
Windows Live おすすめパック

2010年10月1日金曜日

mixi, GREE, モバゲーの比較。モバゲーへのデベロッパー登録

携帯向けゲーム(コンテンツ)を提供する相談をされたときに調べたメモ。この前はmixiのカンファレンスに参加してきて、mixiの意気込みを肌で感じたので、今熱いのはmixiかな?と思っていたけど、下の記事を読んで少し考えを変えた。

【2010年5月最新版】直近決算発表に基づくmixi,GREE,モバゲーの業績比較 ~ 明暗が際立つ三社業績,その要因と今後の展開は?

今熱いのはモバゲーみたい。

mixiカンファレンスでは「mixiはソーシャルで、モバゲーはゲームで、プラットフォームが違う。今後も協力関係を築いていく」と言っていたので、そのうちmixiとモバゲーが簡単に行き来ができるようになりそう。

ちなみにモバゲーは自社でPC版を提供するのを止めて(2010/9/21)、Yahooと提携し「Yahoo!モバゲー」として提供していくみたい。

期待のソーシャルゲーム市場を狙う『Yahoo!モバゲー』 - ヤフー・DeNA提携

既にモバゲーで設定したアバターなどが表示できる。Yahooとモバゲーへの会員登録が必要。

Yahoo!モバゲー

その他モバゲーについては下記ブログが分かりやすくまとめている。

【モバゲータウン解説その2】モバゲータウンってどんなサイト?

実際にログインしてみて、雰囲気は掴んだので、今度はモバゲーのAPIを使って何ができるか調査。

DeNa Developer's Site

【DeNA Developer's Site】モバゲーAPIで実現できること

APIの詳細はパートナーデベロッパー登録しないと参照できないので、さっそく登録。現在法人のみしか登録できない。登録するだけでドキュメントはすぐに参照可能になる。

開発環境は別途申請して使えるようになる。

できればGoogle App Engine+flash liteを使ったゲームにしたい。この辺はまた開発環境が整ったら試してみる予定。

その他のメモ

  • 携帯ゲームは「Javaアプリ」か「flash lite」を使う方法がある。
  • Javaアプリはdocomoユーザーのみ。flash liteは最近の携帯ならほとんど全てで使える
  • flash liteは制限があるので、凝ったゲームはJavaアプリが多い
  • モバゲーをちょっと覗いた限り、有名どころはJavaアプリがほとんど
  • サンシャイン牧場がflash liteとアバターを使っているので参考になりそう。

 

<関連記事>

Mixi meetupに参加してきました。

2010年9月30日木曜日

Wordpressのプラグインを手動で削除(アンインストール)

wordpressのプラグインをインストールしたら、fatal errorでどうしようもなくなったので、調査したメモ。

インストールしたプラグイン(OpenIDという名前)がwordpress 3.0から実装された関数を使っていたみたい。

削除する方法はphpmyadminを使って、データベースを直接変更する。

wp_1_options.option_name = active_plugins

に有効になっているプラグイン一覧が格納されているので、該当するプラグインを検索して削除(↓この文字列)

i:12;s:17:"openid/openid.php";

そして、先頭の

a:40:

の数字を一つ減らす(a:39:)。ちなみに全てのプラグインを無効にしたい場合は、

a:0:{}

とすればOK. もちろん各プラグインが個別に作成したテーブルやデータは残ったままになるので注意。

2010年9月29日水曜日

Windows Live Syncを使って複数PC間でファイルの同期をする

複数のPC間でファイル共有するのに、どのサービスが便利だろうかと調べたときのメモ。

dropboxが便利みたいだけど、なんとなくアカウントが増えるのが嫌なので、できればGoogle DocsかSky Driveを使いたい。

前の記事ではGladinetというソフトを使って、ネットワークドライブとしてマウントしてたけど、もっと気軽に同期したい。

Google Docsには商用ソフトで「Memeo Connect」というのがある。

Sky Driveには(一部)フリーで「SDExplorer」というのがある。

さらにMicrosoftが提供している「Windows Live Sync」というのもある。

やっと、本題。Windows Live Syncの特徴を調べてみると

  • Windows Liveアカウントが必要
  • 同期するPCにクライアントソフトをインストールする必要がある
  • P2Pで同期するので、同期するPCが起動している必要がある
  • 同期できるファイル数に制限があるらしい(P2Pだからサイズは無制限)。
  • リモート接続して遠隔操作もできるらしい(windowsのみ)

インストールの方法、使い方は下記サイトが詳しい

[窓の社]無料サービス“Windows Live Sync”で複数PCのファイルをらくらく同期!

母艦となるWindowsマシンが1台あれば活躍しそう。

でも、求めている機能とは少し違うので、やっぱりGladinetを使い続ける予感。

・・・調べていたら「SkyDrive Synchronizer」というのも見つけたので、今度試してみる予定。

 

<2010/10/07 追記>

2010/09/30に発表されたWindows Live Essentials 2011に含まれるWindows Live Mesh(旧Windows Live Sync)を使うと、同期先としてSkyDriveが選択でき、クラウドと同期できるみたい。詳細はこちら

5GBまで。インストールにはWindows Vista以上が必要。

 

<関連記事>

Windows Live Essentials 2011のWriterのためにWin7にする?
オンラインストレージをネットワークドライブとしてマウントする

2010年9月28日火曜日

【PHP】ZipArchiveで圧縮するときの日本語(文字化け)対応

PHPでzipファイルを生成してダウンロードするときに中身のファイル名は日本語にしたくて調べたメモ。

addFileするときにshift-jisに変換してやると大丈夫っぽい。

$objZip->addFile($sFilePath, mb_convert_encoding($sFileName, 'sjis-win', 'UTF-8'));

 

ZipArchiveはzip形式のファイルを読み書きするPHPの拡張モジュール。PHPインストール時に使えるようになっている場合が多い。使えない場合はphp.iniを確認するか、PECLでインストールする。PECLのzipページ

2010年9月27日月曜日

ASP.NETもPythonもPHPもRubyも動くWebサーバー「Mongrel2」

すごそうなWebサーバーがあるみたいなのでメモ。

[sourceforge]さまざまな言語に対応するWebアプリケーション用サーバー「Mongrel2」リリース

Mongrel2公式サイト

各言語を動かすためには、別途インストールしてあく必要がある。

.NETの場合はWindowsでないと動かないみたい。今後Linux上でもMono経由で動かすことができそう。

あとjava(jsp)に対応すれば言う事なし。

同じポートで複数の異なる言語で作られたアプリケーションを動作させるのに役に立ちそう。

 

<関連記事>

Linux上で.NETアプリケーションを動作させるMONOプロジェクト

2010年9月24日金曜日

Picasa Web AlbumのAPIを商用利用できるか利用規約を読んだ

Picasaを外部から利用するAPIの利用規約を読んだのでメモ。全て読んだわけではないので、間違っているかも。主に商用部分だけ。

[Picasa Web Albums Data API]Picasa Web Albums Data API Terms of Service

[原文]

You may use the Picasa Web Albums API as part of a commercial or non-commercial enterprise, subject to these Terms. You may not however charge a separate fee for use of the Picasa Web Albums API unless you have entered into a separate signed agreement with Google.

[訳]

あなたは、この規約に従う限り、商用または非商用としてPicasa Web Albums APIを使用することが出来る。しかしながら、Googleとの個別契約をしてない限り、Picasa Web Albums APIの使用を別途請求することは出来ない(再販禁止)

 

[原文]

In order to use the Picasa Web Albums API with your service, all End Users on your service must have previously created their own individual Picasa Web Albums accounts. You must explicitly notify End Users that they are accessing their Picasa Web Albums accounts through your service. In other words, you may not create one or more Picasa Web Albums accounts for the purpose of storing images on behalf of users without those users creating their own individual Picasa Web Albums accounts.

[訳]

Picasa Web Albums APIをあなたのサービスで使うために、全てのあなたのサービスを使うエンドユーザーは事前にPicasaのアカウントを作っていなければならない。全てのエンドユーザーにあなたのサービスを使ってPicasaにアクセスしていることを通知しなければならない。言い換えれば、あなたはエンドユーザーのアカウントを作らず、彼らの代わりに写真を保存する目的で、一つもしくは複数のPicasaアカウントを作ることは出来ない。

 

2つ目に訳したのが、実際やろうかと考えたことなので、利用出来ないのは残念。

間違っていたら誰かご指摘下さい。

 

<関連記事>

【PHP】WordpressでPicasaの写真を表示(非公開のも)

2010年9月22日水曜日

猫検定

ネコジルシの人が取得したとあった「猫検定」。1級~3級まであるみたい。

【動物検定】猫検定

受けてみるのも面白いかもしれない。

2010年9月21日火曜日

iPod touch 64GB MC547J/A(第4世代)を買ってしまった

前に欲しいと書いていたiPod touchを買ってしまった。気付いた点

  • 薄い。シリコンケースを買うか迷う。滑り落ち注意。
  • Retinaディスプレイが綺麗。Safariで小さい文字も拡大しなくて読める。産経新聞アプリも読みやすい。
  • マイクが内蔵されていて、「ボイスメモ」アプリが使えるようになったけど、Bluetooth経由のマイク(Jabra BT530)は使えなかった。
  • せっかくマイクが内蔵されたのに、Googleアプリの音声検索ができない。
  • Bluetooth周りが改善されて、変に途切れることがなくなった気がする。
  • 下部にスピーカー用の穴が開いて、本体からの音質が良くなった気がする。
  • カメラは普通に使う分には十分だと思う(まだ未使用)。
  • 複数のExchangeアカウントを登録できるので(これは第4世代とか関係なく、いつの間にかできるようになっていた)、会社のGoogle Appsと自分用Google Appsを設定して、スケジュール確認など幸せになった。
  • ホーム画面は2ページぐらいで、フォルダ分けした方が使いやすい。

前のipod touchとの違いは(前にも書いたけど)下記サイトが分かりやすい。

2010年のクリスマスを飾る“最強”の布陣――新型「iPod」ファミリー徹底レビュー (3/4)

写真を管理するのにPicasaと同期するアプリを使っていたけど、今イチ使いにくいので自作する予定。

 

<関連記事>

一つ前のiPod touchを1万円で買ってくれる人いない?
iPod touch 第2世代 32GB MC008J/Aを買った

2010年9月17日金曜日

SQL ServerからPostgreSQLへの移行(insert文の生成)

SQL Server 2000からPostgreSQLにデータ移行したときのメモ。困るのがEnterprise Managerではinsert文をエクスポートしてくれる機能がない。

しょうがないのでCSVで吐き出して、インポートするのが一般的。やり方は前の記事を参考に。

でもinsert文を出力してくれるツールが世の中にはあるみたい。

[Ruizata Project]SQL Dumper

image

英語だけど直感的に分かる。

PostgreSQLで実行するためには少し置換しないといけないけど、それは大したことはない。

元データがあるサーバー(SQL Server)を直接触れない場合は、

「必要なテーブルだけ別データベースにコピーして、そのデータベースをデタッチしてMDFとLDFファイルをください。」

と説明するのが大変。

私の知り合いは全体バックアップをもらって「データベースの復元」からやっていたので、その方がデータの受け渡しはスムーズかも。

 

<関連記事>

PostgreSQLにCSVデータをファイルから取り込む

2010年9月16日木曜日

HDDをSSDに変更してみたら体感速度が劇的アップ

SSDの速度が気になっていたので、自宅パソコンに導入してみた。

買ったのはcrucial RealSSD C300 CTFDDAC064MAG-1G1

元々システムパーティション(Cドライブ)は一つのHDDだったので、単純にこれを置き換え。クリーンインストールは久しぶりだったので、RAIDドライバの選択ミスで3回くらいやり直したけど、インストール自体は無事完了。

OSインストール後のWindows Updateと必要なドライバ+ソフトのインストールが結構大変。

メールは既にGoogle Appsを使ってクラウド化してあるので、GoogleデスクトップとGoogle トークをインストールしてアカウントを設定するだけで終了。やり方は前の記事を参考に。

GmailとGoogle デスクトップで脱メーラー。メール通知アプリ

PCが壊れたときのバックアップにもなるので、大事なドキュメントはGoogle DocsやSky Driveを使ってクラウド化していきたい。これは別の機会にやる予定。

実際SSDにしてみた感想は・・・体感速度が劇的アップ。

OSの起動も早くなったし、ログインしてからアプリケーションが立ち上げるまでの速度が全然違う。「サクサク軽快」という感じ。

CPUを速くしても思ったより体感速度が変わらない場合は、ハードディスクのread, writeがボトルネックになっている可能性があるので、SSDにしてみた方がいいかも。

2010年9月15日水曜日

Gmailフィルタメモ。必要なメールだけ携帯に転送

とっても強力なGmailのフィルタ。指定の仕方で特定のメールだけ携帯に転送したり、ラベルを付けたり、かなり柔軟に設定可能。やり方は下記サイト参照。

Gmailの検索やフィルタで使用できるコマンド(演算子)一覧表

会社のメールもGoogle Appsに移行して、必要なものだけ携帯メールに転送して便利に活用中。例えば、メルマガなど不要なメールは「受信トレイをスキップする」フィルタを設定(↓フィルタ例)

条件: from:(info@hoge.jp OR magazine.jp)
処理: 受信トレイをスキップ, 既読にする, ラベル「メルマガ」を付ける

最後に、携帯に転送するフィルタを設定(フィルタは上から順番に適用される)

条件: in:inbox
処理: hoge@docomo.ne.jp に転送

これだけだと、たくさん転送されて嫌な場合は、ラベルを指定したり、条件を自由に設定する。

 

<関連記事>

GmailとGoogle デスクトップで脱メーラー。メール通知アプリ
Google Email Uploaderを使ってGoogle Appsへ移行

2010年9月14日火曜日

Googleの類似ページ検索をAPI経由で利用できないものか

今見ているページと似た内容のページ(サイト)があったときに、GoogleのAPI経由で取得できたら絶対便利!と思って調査したメモ。

例えば掲示板で質問したときに、同じような質問を前に誰かがしているかもしれないし、別のサイトで質問しているかもしれない(回答があるかもしれない)。

調べてみると、Googleでも実装している最中みたい。

米Google、類似したページを表示する検索機能を追加(2010/04/28)

[Official Google Blog]Discovering pages “similar to” ones that you like

Google Chromeのプラグインとしてはベータ版だけど提供されている。

Google Similar Pages beta (by Google)

ちなみに類似画像検索はある。

早くAPIから利用できるようになってほしい。

2010年9月13日月曜日

Mixi meetupに参加してきました。

先週の10日(金)はmixi meetupに参加するため東京まで出張。

メインセッションが終わったあとに、偶然にもハタボウに遭遇。「久しぶりじゃん!」と言いながら、一緒に「Ask the engineers」に参加。

質問するまでに結構時間がかかったけど、聞きたいことが聞けて良かった。

グッと視野が広がった感じ。

提案書を書きながら、メモした内容はあとで記事にしようかな(?)

 

<関連記事>

Mixi主催のカンファレンスに行ってきます

2010年9月9日木曜日

一つ前のiPod touchを1万円で買ってくれる人いない?

新しいiPod touchがappleから発表された。iPhone4との違いは

  • 電話ができない
  • wi-fiがないとインターネットできない
  • GPS機能がない(wi-fiの位置情報は使える)
  • 薄い。iPhone4と比べて半分ぐらいの厚さ

ぐらいかな?

apple公式サイト

違いについては下記サイトが分かりやすい

[+D LifeStyle]2010年のクリスマスを飾る“最強”の布陣――新型「iPod」ファミリー徹底レビュー (3/4)

前のiPod touchも持っていて、毎日便利に使っているが、

  • カメラが内蔵されて、写真と動画が取れる。
  • マイクも内蔵されて、通話ができる。ボイスメモが使える。音声コントロールもおもしろそう。 Bluetooth経由のマイク(Jabra BT530)が使えれば文句なし。

これらがあまりに魅力的なので、すぐに買ってしまいそう。妄想中のアプリも作りたいしね。

値段は価格.comでチェック!

あと前のiPod touchを1万円で買ってくれる人募集!今でも売値は2万5千円ぐらい。スペックはこちら

前の記事では第2世代と書いたけど、第3世代のiPod touchでした。

 

<関連記事>

iPod touch 第2世代 32GB MC008J/Aを買った
【レビュー】Jabra BT530と携帯(P906i)でハンズフリー
Related Posts Plugin for WordPress, Blogger...

Blog Archives