たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
nsIZipWriterを使えばアドオンでZIPアーカイブを作れるということを割と最近になってやっと知ったので、アドオンのXPIへのパッケージングまで全部アドオンでできるやん!と思ったんだけど、使い方がよく分からんかったので、実験と練習もかねてコンテキストメニュー拡張の短縮構文で使える汎用的な処理を書いてみた。
要点だけ抜き出すとこんな感じ。
// aSources = nsIFileの配列
// aZipFile = 作るZIPアーカイブのnsIFile
// aCompressionLevel = 圧縮率(0で無圧縮、9で最大圧縮、デフォルトは6)
zipFilesAs : function(aSources, aZipFile, aCompressionLevel)
{
// Firefox 3以降じゃないと動かないよ!
if (!('nsIZipWriter' in Components.interfaces))
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
if (!aSources || !aSources.length || !aZipFile) return;
if (aZipFile.exists() && !this.isZipFile(aZipFile))
aZipFile.remove(true);
const PR_RDWR = 0x04;
const PR_CREATE_FILE = 0x08;
const PR_APPEND = 0x10;
const PR_TRUNCATE = 0x20;
var writer = Components
.classes['@mozilla.org/zipwriter;1']
.createInstance(Components.interfaces.nsIZipWriter);
if (aCompressionLevel === void(0))
aCompressionLevel = writer.COMPRESSION_DEFAULT;
// 新規ZIPアーカイブと既存のZIPアーカイブではフラグが違う
var flags = aZipFile.exists() ?
PR_RDWR | PR_APPEND :
PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE ;
writer.open(aZipFile, flags);
aSources.forEach(function(aFile) {
var entry = this+aFile.leafName;
// フォルダに対応するエントリの有無を調べる時は、
// エントリ名の末尾に「/」が必要
var entryForCheck = aFile.isDirectory() ? entry+'/' : entry ;
// すでにあるエントリで、フォルダではない物は削除。
// (フォルダを削除しないのは、内容をマージするため)
if (!aFile.isDirectory() && writer.hasEntry(entryForCheck))
writer.removeEntry(entry, false);
// 新しいエントリを追加
if (!writer.hasEntry(entryForCheck))
writer.addEntryFile(entry, aCompressionLevel, aFile, false);
if (aFile.isDirectory()) {
var files = aFile.directoryEntries;
while (files.hasMoreElements())
{
arguments.callee.call(
entry+'/',
files.getNext().QueryInterface(Components.interfaces.nsILocalFile)
);
}
}
}, '');
writer.close();
},
// ファイルの内容を実際にZIPアーカイブとして読んでみて、ZIPアーカイブかどうか調べる
isZipFile : function(aFile)
{
var isZip = false;
if (!aFile || !aFile.exists()) return isZip;
var reader = Components
.classes['@mozilla.org/libjar/zip-reader;1']
.createInstance(Components.interfaces.nsIZipReader);
try {
reader.open(aFile);
try {
var entries = reader.findEntries('*');
while (entries.hasMore())
{
entries.getNext();
isZip = true;
break;
}
if (!isZip) {
entries = reader.findEntries('*/');
while (entries.hasMore())
{
entries.getNext();
isZip = true;
break;
}
}
}
catch(e) {
}
reader.close();
}
catch(e) {
}
return isZip;
},
コンテキストメニュー拡張を久しぶりにアップデートした……けどアップデートの内容は実質デグレードみたいなものだ。外部アプリケーションでソースを表示する機能、mailto:のリンクをメールソフトやWebメールのサービスに渡す機能、ユーザスタイルシートを編集する機能、任意のスタイルシートを登録して切り替える機能、あたりをゴッソリ削除した。
できれば無駄にRDFを使ってるバックエンドも全部捨てたいんだけど、これを捨てると旧版の設定が全部失われてしまうことになるというのが痛い。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。
前にも書いた気がするけど、ISBNコードが13桁になって前のやつが使えなくなったので、13桁ISBNコードを10桁ISBNコードに変換するコードを入れて書き直してみた(Amazonの個別商品ページのURIは13桁ISBNではなく10桁ISBNベースなのです)。
var title = prompt('タイトルを入力') || '';
var isbn = prompt('ISBNコードを入力') || '';
isbn = isbn.replace(/^(urn:isbn:|isbn)/i, '');
if (!isbn) return;
var urn = 'urn:isbn:'+isbn;
var urn_part = urn.match(/^urn:isbn:(\d{3}-)?(\d-?\d+-?\d+-?[x\d])$/i);
var numRaw = urn_part[2];
var num = numRaw.replace(/-/g, '');
/*
13桁ISBNのチェックディジットは10桁ISBNのチェックディジットと異なるので、
10桁ISBN基準で再計算する。
*/
var num10 = num;
if (urn_part[2]) {
var sum = (parseInt(num.charAt(0)) * 10) +
(parseInt(num.charAt(1)) * 9) +
(parseInt(num.charAt(2)) * 8) +
(parseInt(num.charAt(3)) * 7) +
(parseInt(num.charAt(4)) * 6) +
(parseInt(num.charAt(5)) * 5) +
(parseInt(num.charAt(6)) * 4) +
(parseInt(num.charAt(7)) * 3) +
(parseInt(num.charAt(8)) * 2);
var digit = (sum % 11);
if (digit) {
digit = 11 - digit;
if (digit == 10)
digit = 'X';
}
num10 = num.replace(/.$/, digit);
}
_setClipBoard(
'[<img src="http://images.amazon.com/images/P/'+num10+'.01._AA110_FMjpg_SCTZZZZZZZ_V66486851_.jpg" alt="" />'+title+']('+urn+')'+
'([Amazon.co.jp](http://www.amazon.co.jp/exec/obidos/ASIN/'+
num10+
'/outsiderrefle-22/ref=nosim))'
);
昨日から今日にかけてモリモリと書評を書いてたのはこれが原因。
おこづかいかせげるといいなあ!
ちなみにこのスクリプトでは基本のリンク先を urn:isbn:ISBNコード というURN形式のリンクにしてありますが、Firefoxでこれを読み込むにはURN Supportなどを使う必要があります。w3mの場合は近藤氏によるリダイレクタを使うといいでしょう。IEとOperaはシラネ。