« 2008年6月 | トップページ | 2008年8月 »

2008年7月

P906iで自作着うた

このまえ「開発用」と称して買ってしまいました。
せっかくなので、着うたとか自分で作ってみたくなるじゃないですか。

そんなわけで、いろいろ調べてみました。

■用意したもの
携帯動画変換ちゃん(Macで使う場合のみ)
携帯動画変換君(Win/Macどちらで使う場合も必要)
※以下は任意
spwave (お好みで切り抜くため。お好きなソフトでどうぞ。)
・iTunes (CDから取り込むため)

■データの作成
wave形式で作りました。
iTunesでCDから取り込み→spwaveで編集&作成。

■携帯動画変換君/携帯動画変換ちゃんのインストール
省略。解説サイトに従ってください。

■変換コマンドの組み込み
default_setting フォルダの下の、適当なiniファイルの末尾に追加(私は、「Transcoding_iMotion.ini」に入れました)。
ちなみに、P904iのがそのまま利用できます。容量の制限はなさそうです。1MB超えでもOKでした。そのまま転載(¥→バックスラッシュ修正)。

[Item**]
Title=AAC-LC / 音声:192kbps 44.1kHz Stereo
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -bitexact -vn -acodec aac -ac 2 -ar 44100 -ab 96 -f 3gp -muxab 64 "<%TemporaryFile%>_1.3gp""
Command1=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>_1.3gp" "<%TemporaryFile%>_2.3gp" -c QT_3GPP(MobileMP4)_QCIF_AAC.ini"
Command2=""<%AppPath%>\cores\ATOMChanger" "<%TemporaryFile%>_2.3gp" "<%OutputFile%>.3gp" "Camouflage_iMotion.ini""
Command4="rm "<%TemporaryFile%>_*.3gp""

■あとは実行あるのみ。
「3GPPファイル、着モーション設定」(※)→「AAC-LC / 音声:192Kbps 44.1Khz Stereo」を選択して、変換したいファイルをドラッグ・ドロップ。
※組み込んだiniファイルによって違ってきます。

Y08g2602

■注意事項(わりと重要)
microSD経由での転送は、着信音に設定できないようです。
Web/メール添付経由だと大丈夫なようです。
自作着うたが着信可にならない。 -OKWave あたりを参照すると、なんか出来そうな気がしますが、面倒くさかったのでパス。

■結果。
そして、作った結果。
Y08g2601

みのりんだらけなのは気のせいです(笑)

| | トラックバック (0)

メモ:RubyでMySQLにアクセス

今日は調子悪いんで、メモだけ。
組むのはあとでにします。

表題見ていきなり「MySQL」になっててびっくりした人がいると思います。
説明に「RDBMS(PostgreSQL)」ってあるし・・・(笑)
どうしてかというと、ホスティング先のサーバがMySQLしか使えなかったから・・・というだけです(苦笑)

いろいろ調べたら、いいサイトがありました。
複眼中心 : RubyからMySQLを使用
「MySQL/Ruby」「Ruby/MySQL」を使うって方法が便利そうです。
・・・ですが、今回は敢えて違う方法でいこうと思います。
Ruby DBIを使う方法です。
というのも、PerlでDBI/DBDをよく使っていたからという理由で(笑)
※参考
DBI/DBDについて (perlのほう)
Ruby DBI モジュールを使う (ここからRubyのターン)
DBI Specification Version 0.5 (Draft)
手順的には全くおなじ。Rubyの哲学に置き換えるだけ。
だいたいこんなかんじ。


require "dbi"
dbh = DBI.connect("dbi:Mysql:test:localhost", "user", "pass")
sth = dbh.execute("SELECT * FROM table")
sth.each do |row|
key = row.by_field("key")
val = row.by_field("data1")
end
sth.finish

サンプル見ながらこんなかんじかな、と。
あ、row[0] みたいな使い方も出来ますよーと。

体調回復して時間があったら、作ろうと思います。


※追記
検索して気付いたけど。
Sequelってのもあるようで。
これに関しては、機会あったら調べてみることにします。

| | コメント (0) | トラックバック (0)

最近はやり?のつぶやき系サービスの裏

やっているサービスそのものは興味ないけど(笑)、いろいろ見ていて(技術的に)面白かったのでメモ。

プロジェクト Wassr 挑戦者たち:第2回 Wassr開発の舞台裏|gihyo.jp … 技術評論社
特集:memcachedを知り尽くす|gihyo.jp … 技術評論社

memcachedのあたりがね。

| | コメント (0) | トラックバック (0)

RubyでPOP3/SMTPクライアントを作る(中盤)

メールヘッダのMIMEデコードです。
これについてはRFC2047で定義されています。

エンコードされた文字列については、

'=?' + 文字セット + '?' + エンコーディング + '?' + エンコードされた文字列 + '?='

と、なってます。
エンコーディングについては、
 B・・・Base64
 Q・・・Quoted-Printable
を指定します。(RFC2047の「4.Encoding」を参照)
エンコード文字列は、いづれもString#unpackまたはArray#packで生成等できます。

今回は手抜きで、ISO-2022-JPのBase64にしか対応してません。

class DoMime
# 初期化
def initialize
end
# デコード
def decode( decode_string )
if decode_string == "" then
return ""
end
dtsp = decode_string.split( / / )
dcdout = ""
dtsp.each{ |dd|
if ( /=\?ISO-2022-JP\?B\?/ =~ dd ) then
cuthdr = "=?ISO-2022-JP?B?".length
cutlen = dd.length - 2 # 末尾の "?=" を除く
cutlen -= cuthdr # 最初の "=?" を除く
cutd = dd.slice!( cuthdr , cutlen )
dcdout << cutd.unpack("m")[0]
else
dcdout << dd
dcdout << " "
end
# あとは、UTF-8のquoted printable に対応させる。 =?UTF-8?Q?〜?=
}
return dcdout
end
end

本来は、
・'=?'で始まっていたら、
・'?'でsplitして、
・2番目の文字コード、3番目のエンコード種類を判別
しなきゃいけないんですけどね。
UTF-8のQuoted Printableなメールも結構あるので。


次は後半。マルチパートのメールの処理です。
まぁ、RFC2112を読めば難しいことではないけどね。
また後日ここで書こうと思います。
※実はまだ出来ていない・・・。

| | コメント (0) | トラックバック (0)

RubyでPOP3/SMTPクライアントを作る(前半)

メールサーバで、(諸事情により).forwardが使えない場合、強引にそれと同じようなことをやってしまおう、というのが本当の目的。

Rubyの場合、標準で添付のライブラリがありまして。
添付ライブラリ - Rubyリファレンスマニュアル


まずは受信です。
net/pop で出来ます。→net/pop - Rubyリファレンスマニュアル

require 'net/pop'

# ==== 本体。すたーと ====
pop = Net::POP3.new( POP3_SERVER , POP3_PORT )
pop.start( POP3_ACCOUNT , POP3_PASSWORD )
if pop.mails.empty? then
# no mail
# puts 'メールありません。'
else
ic = 0
pop.each_mail do |m|
mp = MailParse.new
mp.parse( m.pop )
m.delete
mp.fwd_send
ic += 1
end
end
pop.finish

newでサーバを指定、startでアカウントとパスワードを指定します。
あとは、each_mail でサーバのメール一覧がとれます。
いちいち、LISTやRETRとか考えずにすみます。

なお、MailParseのクラスは、メール本文を解析して、送るという内容です。
MailParse#parse で解析、
MailParse#fwd_send で送信です。


今度は、送る部分です。
MailParse#fwd_send の一部です。
net/smtp - Rubyリファレンスマニュアル

require 'net/smtp'

smtp = Net::SMTP.new( SMTP_SERVER , SMTP_PORT )
smtp.start( SMTP_HELO , SMTP_ACCOUNT , SMTP_PASSWORD , SMTP_AUTHTYPE )
mail_body << body
smtp.send_mail( mail_body , SENDER , FORWARDTO )
smtp.finish

newでサーバ指定、startで送信指定(認証とか)。
send_mailで送ります。
これだけ。


中盤では、MIMEのメッセージヘッダの処理のルーチンについて触れようと思います。

| | コメント (0) | トラックバック (0)

« 2008年6月 | トップページ | 2008年8月 »