2009年12月22日火曜日

フリーウェアのみでのDVDからのAVIファイルの作成

必要なフリーウェア

VODファイルから音声を分割 (プロジェクトの保存にて.d2vファイルと .wavファイルができる)
DVD2AVI http://nextalpha.ddo.jp/alpha/dvd/d2.htm

音声と映像を合成 (もとのVOBファイルと wavファイルとを合成させる。)
・AviUtl http://spring-fragrance.mints.ne.jp/aviutl/

AviUtlをm2v形式に対応させるために必要なPlugIn
(解凍したファイルすべてをAviUtlフォルダ内にコピー)
・MPEG-2 VIDEO VFAPI Plug-In http://www.marumo.ne.jp/mpeg2/


VOBファイルをDVD2AVIで音声(wavファイル)を抽出し、AviUtilで元のVOBファイルと合成させるだけ。
注意点はDVD2AVIの音声出力形式の設定でwavを選択しないと
音声ファイルがでない。

2009年11月13日金曜日

SQLiteをGUIで楽に管理するまとめ

sqliteは癖があってなかなか使いづらかったのですが、
下記ソフトでインポートが特に楽にできました。
軽くてオススメ!!

TkSQLite - mynote

PupSQLite もsqliteを扱うのにすばらしいのですが
TkSQLiteはインポートもとの文字コードがSJIS等でも
読みこめるというところがいい。

インポートに関してはTkSqlite。
区切りの指定、改行の指定などを選択できるので
正しく読み込む。

pupSQLite は 半角( と .ドットがあると
エラーを起こすと説明にあり。(version 1.8.4.1)

他にかわりどころでFirefoxのアドオンで。
sqlite-manager
http://code.google.com/p/sqlite-manager/

ちなみにpupSQLiteは Sqlite3のみに対応。


2009年10月27日火曜日

IEでのz-indexの順番とposition:fixについて

IEだけはどうも使えなくて困りはてた。


IEでのCSSについて。(IEバージョン8でもそうなった)

htmlタグ内で、先に出てきた要素をz-indexにて一番上にするよう指定する。

次に出てきた要素をその下にしたいと思ったときに、どうも後からの要素を
上にしてしまうときがあるようだ。

対応として、body要素の最後にタグを移動させた。
jqueryを使った場合。
$("#higher").appendTo(document.body);

これで重なり順が一番上に表示されるようになる。


次にposition:fixについて。


ほかのサイトを見ていて攻略法がわかった。
#heigher{
position:fixed!important;
position:absolute;
}
これでいけます。

ちなみにjqueryでCSSをあとから指定してもだめで、
$("#heigher").css({position: "fixed!important", position: "absolute"});

静的に記述をしておく。

2009年9月2日水曜日

Vistaに移行した人のためのメモ VertrigoServ(その他プログラム)がうまく動かないときためすこと

VertrigoServをインストールしたのち動かすとMysqlがエラー出して動きませんといわれてしまいました。

コマンドラインから動かしてみると
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

のようにいわれてしまう。

はじめはファイヤウォールとかだろうなどと思ってたが、
直接動かないので権限周りだろうとあたりをつけたところビンゴ。

んで解決策。

やっぱりVistaの方が困っていたようで
このへんも見てみたけどprogram filesフォルダにインストールしないと動くみたいですね。

そしてもっとスマートな解決法がこれ


プログラムのプロパティを開いて「管理者としてこのプログラムを実行する」にチェックを入れればOK.

httpd.confなんかも編集できるようになります。

XPからVistaになり、権限が厳しくなって手間が増えました。

2009年7月31日金曜日

バイナリデータも含むmultipartをPOST送信

sendAsBinaryだとどうも日本語が含まれるとうまく送信できないみたい。


ソース:http://blog.footle.org/2007/07/31/binary-multipart-posts-in-javascript/



var dataURL = this.canvas.toDataURL(this.getImageType()); // grab the snapshot as base64
var imgData = atob(dataURL.substring(13 + this.getImageType().length)); // convert to binary

var filenameTimestamp = (new Date().getTime());
var separator = "----------12345-multipart-boundary-" + filenameTimestamp;

// Javascript munges binary data when it undergoes string operations (such as concatenation), so we need
// to jump through a bunch of hoops with streams to make sure that doesn't happen

// create a string input stream with the form preamble
var prefixStringInputStream = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
var formData =
"--" + separator + "\\r\\n" +
"Content-Disposition: form-data; name=\"data\"; filename=\"snapshot_" + filenameTimestamp +
(this.getImageType() === "image/jpeg" ? ".jpg" : ".png") + "\"\\r\\n" +
"Content-Type: " + this.getImageType() + "\\r\\n\\r\\n";
prefixStringInputStream.setData(formData, formData.length);

// write the image data via a binary output stream, to a storage stream
var binaryOutputStream = Components.classes["@mozilla.org/binaryoutputstream;1"].createInstance(Components.interfaces.nsIBinaryOutputStream);
var storageStream = Components.classes["@mozilla.org/storagestream;1"].createInstance(Components.interfaces.nsIStorageStream);
storageStream.init(4096, imgData.length, null);
binaryOutputStream.setOutputStream(storageStream.getOutputStream(0));
binaryOutputStream.writeBytes(imgData, imgData.length);
binaryOutputStream.close();

// write out the rest of the form to another string input stream
var suffixStringInputStream = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
formData =
"\\r\\n--" + separator + "\\r\\n" +
"Content-Disposition: form-data; name=\"description\"\\r\\n\\r\\n" + description + "\\r\\n" +
"--" + separator + "--\\r\\n";
suffixStringInputStream.setData(formData, formData.length);

// multiplex the streams together
var multiStream = Components.classes["@mozilla.org/io/multiplex-input-stream;1"].createInstance(Components.interfaces.nsIMultiplexInputStream);
multiStream.appendStream(prefixStringInputStream);
multiStream.appendStream(storageStream.newInputStream(0));
multiStream.appendStream(suffixStringInputStream);

// post it
req.open("POST", "http://yoursite.com/upload_endpoint", true);
req.setRequestHeader("Accept", "*/*, application/xml");
req.setRequestHeader("Content-type", "multipart/form-data; boundary=" + separator);
req.setRequestHeader("Content-length", multiStream.available());
req.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
req.setRequestHeader("User-Agent", "YourUserAgent/1.0.0");
req.send(multiStream);





2009年7月17日金曜日

Firefoxアドオンの為の、バイナリデータの表示など

バイナリデータからドキュメントに表示させる為のURIの作成
http://cheesy.dip.jp/diary/archives/101 ← 参考

var image_b64 = btoa(images[i]); // base64 encoding
image_b64.replace(/n/g, "");
var img = d.createElement('img');
img.src = 'data:image/jpeg;base64,' image_b64;
var div = d.createElement('div');
div.appendChild(img);

ちなみにcanvasには toDataURL メソッドがあるのでこれをつかえばOK.
document.getElementById('canvas').toDataURL();



その逆で data:image/png;base64, ・・・・うんたら・・・ からバイナリへ変換

「data:image/png;base64,」 この部分をまずは削除して残りの部分をatob。

atob(imagesDataURI);
https://developer.mozilla.org/en/DOM/window.atob

2009年7月13日月曜日

base64 encodeを改行する

var c = btoa(binary); // btoa base64 encode
var b = "";
var i = 0;
var bdata = "";

while(b = c.substr(i,76)){

if(b){
bdata = bdata + b + "\n";

}
i += 76;
}