結城浩のはてなブログ

ふと思いついたことをパタパタと書いてます。

アマゾン・アソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する秀丸マクロ

先日の版を、/dp/, /ASIN/, /product/ でも動くようにしたものです。

// amazon.mac
// アマゾンの商品URLがクリップボードに入っている状態で起動すると、
// アソシエイトIDを含んだ商品URLとはてなのasin記法を生成して秀丸エディタに挿入する秀丸マクロ。
// クリップボードのURLの形式は、
//      …/dp/XXXXXXXXXX/…
//      …/ASIN/XXXXXXXXXX/…
//      …/product/XXXXXXXXXX/…
// という形式を想定している。

// My associate amazon id.
$id = "hyuki-22";

// Get a string in the clipboard.
beginclipboardread;
$url = getclipboard;

// Check patterns.
if (strstr($url,"/dp/") != -1) {
    #pos = strstr($url,"/dp/") + 4;
} else if (strstr($url,"/ASIN/") != -1) {
    #pos = strstr($url,"/ASIN/") + 6;
} else if (strstr($url,"/product/") != -1) {
    #pos = strstr($url,"/product/") + 9;
} else {
    #pos = -1;
}

// Compose an insert string.
if (#pos == -1) {
    $s = "ERROR: /dp/XXXXXXXXXX/ is not found in clipboard.\x0D\x0A";
} else {
    $asin = midstr($url, #pos, 10);
    $s =  "http://www.amazon.co.jp/exec/obidos/ASIN/" + $asin + "/" + $id + "/" + "\x0D\x0A"
        + "asin:" + $asin + ":detail:large" + "\x0D\x0A";
}

// Insert it.
insert $s;

インストール方法

実行方法

  • アマゾンの商品ページを開く。
  • URLをコピーする。
  • 秀丸上でamazon.macを[マクロ]→[マクロ実行]する。

入力例:コピーした元URL(『数学ガール』の例)

http://www.amazon.co.jp/%E6%95%B0%E5%AD%A6%E3%82%AC%E3%83%BC%E3%83%AB-%E7%B5%90%E5%9F%8E-%E6%B5%A9/dp/4797341378

出力例:秀丸にペーストされる文字列

http://www.amazon.co.jp/exec/obidos/ASIN/4797341378/hyuki-22/
asin:4797341378:detail:large

書籍『数学ガールの秘密ノート/丸い三角関数』刊行記念《サイン本無料プレゼント》(応募終了)

応募は終了しています
こんにちは、結城浩です。いつも応援ありがとうございます。
2014年4月末に、書籍『数学ガールの秘密ノート/丸い三角関数』SBクリエイティブさんから刊行されます。
恒例になりましたが、みなさんへの感謝を込めて、本書を無料プレゼントいたします。
このエントリをよくお読みの上、どうぞご応募ください!

  • 当選者に送られるプレゼント:書籍『数学ガールの秘密ノート/丸い三角関数』
  • 当選人数:7人
  • 応募〆切:2014年4月2日(水)
  • 応募条件:以下の(A)(B)(C)のうち少なくともいずれか1つを実行してください。
    • (A) あなたのWebサイトやブログに「数学ガールの秘密ノート」という文字列を含むエントリを書く。またはTwitterFacebookで「数学ガールの秘密ノート」という文字列を含むつぶやきを行う。内容はどんなことでもかまいません。
    • (B) あなたの知人に「『数学ガールの秘密ノート』の三冊目の本が出るんだって」と伝える。
    • (C) http://www.hyuki.com/girl/note3.html のページを、Webのブックマークサイト(はてなブックマークでなくてもよいです)を使ってブックマークする。
  • 応募方法:以下の表題をつけて、までメールをお送りください。応募メールには住所を含める必要はありません。

■応募メールにつける表題■
[NOTE3]『数学ガールの秘密ノート/丸い三角関数』無料プレゼント応募

    • お願い1:応募の際にはメールの中に、結城浩の活動に対する感想・今後結城に書いてほしい本・最近読んでいる本・興味を持っていること・興味を持っている技術・よく見るWebサイト・毎月のおこづかい・(中学生・高校生は)将来の夢・(中学生・高校生以外は)中学・高校時代の思い出などを自由にお書きください。感想の有無や内容は、当選するかどうかにはまったく無関係ですが、いろいろ書いてくださると、私はとてもうれしいです。みなさんからのお手紙を読むのは、大きな楽しみなんです。長いメールでもかまいません。そうそう、結城メルマガをご購読なさっていたらその旨も書いてください。
    • お願い2:結城は、メールの振り分けに上記の表題を使っています。必ず上記の表題を書いたメールを送って下さい。コピー&ペーストすることを強くお勧めします。
  • 抽選:2014年4月3日(木)に抽選を行い、当選者あてに直接メールをお送りして送付先をおたずねします。
  • 発送:プレゼントの発送は2014年5月中頃になる予定です。
  • 注意:
    • お送りするのは日本国内限定です。
    • お送りするのは結城のサイン本です。
    • お送りいただいたメールアドレスには今後、結城からのお知らせがときたま届くことがあります。
    • この企画は結城が個人的に行っているものです。出版社へのお問い合わせなどはご遠慮ください。
  • 履歴
    • 2014-03-23 19:40 募集を開始しました。
    • 2014-04-02 23:59 現在の応募数は89名です。締め切りました。
    • 2014-04-03 08:46 当選者7名全員にメールを送り、送付先住所をお尋ねしています。実際の発送は5月に入ってからです。
    • 2014-04-12 23:50 当選者全員(7名)の住所が確認できました。
    • 2014-04-22 12:00 当選者全員(7名)へ書籍を発送しました。

「数学ガール」はどこから読めばいいの?(2014年版)

(最新版はこちらをごらんください→「数学ガール」って、どれから読めばいいの?
数学ガールって、なんかたくさん出てるんだけど、どこから読めばいい?」という質問への回答です。
まず最初に数学ガール」シリーズと、数学ガールの秘密ノート」シリーズという二つのシリーズがあります。
簡単にいうと「数学ガール」シリーズより、「数学ガールの秘密ノート」シリーズの方がやさしいです。めっちゃやさしい。
「数学ガール」シリーズは現在5冊が刊行されています。

「数学ガールの秘密ノート」シリーズは現在2冊が刊行されています(2014年4月には3冊になります)。

さてそれで、どこから読めばいいか。もちろんみなさんの好きにしてくださって構わないわけですが、作者として思うことを以下に書きます。

  • 理系の高校数学くらいはまあまあいいかな、という方は「数学ガール」シリーズをどうぞ。数学好き!な人なら、中学生でも大丈夫。
  • いやもう数学苦手なんすけど。という方は「数学ガールの秘密ノート」シリーズをどうぞ。
  • 数学ガール」シリーズでは、基本的には第1巻から順番に読むのがお薦めです。物語の時間はこの順番で流れていきますし、後の巻で前の巻を参照するところが多少あります。
    • 数学的内容は各巻でいちおう完結しています。
    • 物語内容も各巻でいちおう完結しています。なので…
    • 「きっと結局全部読むことになるだろうなあ」という人は第1巻から順番にどうぞ。
    • 「わたしはピンポイントでこの巻のテーマに興味があるし、すぐ読みたい。他の巻は読むかもしれないし読まないかもしれない」という人はお好きな巻を個別にどうぞ。
    • なお、各巻に含まれている数学的内容がWikipedia数学ガールの項に「作中に登場する数学のトピック」として列挙されています(まとめてくださっている方々に感謝)ので、必要な方はどうぞ。
    • 数学ガール - Wikipedia(多少ネタばれ注意)
  • 数学ガールの秘密ノート」シリーズでは、基本的にどの巻からでも問題なく読めます。なので、興味があるところからぜひどうぞ!

数学ガール (数学ガールシリーズ 1)

数学ガール (数学ガールシリーズ 1)

数学ガール/フェルマーの最終定理 (数学ガールシリーズ 2)

数学ガール/フェルマーの最終定理 (数学ガールシリーズ 2)

数学ガール/ゲーデルの不完全性定理 (数学ガールシリーズ 3)

数学ガール/ゲーデルの不完全性定理 (数学ガールシリーズ 3)

数学ガール/乱択アルゴリズム (数学ガールシリーズ 4)

数学ガール/乱択アルゴリズム (数学ガールシリーズ 4)

数学ガール/ガロア理論 (数学ガールシリーズ 5)

数学ガール/ガロア理論 (数学ガールシリーズ 5)

Vimでインデントを使ってアウトラインエディタ風の編集ができる

以下のファイルをVimで編集する。詳しくは :h folds を読む。

# vim:set foldmethod=indent:
# zc: 畳む(zCなら再帰的)
# zo: 開く(zOなら再帰的)
# 詳しくは :h folds

aaaaaa
  bbbbb
    ccccc
    ccccc
  bbbbb
  bbbbb
  bbbbb
    ccccc
    ccccc
    ccccc
    ccccc
  bbbb
  bbbb
  bbbb
aaaaa

参照

Vimで誤って":wq"のようなファイルを作ってしまうのを防ぐ方法(autocmdを使う)

背景

  • Vimを使っている。

問題

  • Vimの「書き込んで終了」コマンドは ":wq" だが、誤って ":w:wq" のようにしてしまうと ":wq" という変なファイルができてしまう。

解法

  • autocmdを使って特定のファイル名の書き込みには警告を出す。

詳細

" Checking typo.
" http://d.hatena.ne.jp/tyru/20130419/avoid_tyop (一部修正)
autocmd BufWriteCmd :*,*[,*] call s:write_check_typo(expand('<afile>'))
function! s:write_check_typo(file)
    let prompt = "possible typo: really want to write to '" . a:file . "'?(y/n):"
    let input = input(prompt)
    if input =~? '^y\(es\)\=$'
        execute 'write'.(v:cmdbang ? '!' : '') a:file
    endif
endfunction

謝辞

Vimで自動的にコメント文字列が挿入されるのをやめる方法(autocmdを使う)

背景

  • Vimを使っている。

問題

  • プログラムのコメントを書いているとき、挿入モードでの改行やノーマルモードでのコメント行から'o'などで自動的にコメント文字列が挿入されてしまう。
  • たとえばスクリプト言語で'#'が自動挿入される。

解法

  • autocmdを使ってオフにする。

詳細

" https://gist.github.com/rbtnn/8540338 (一部修正)
augroup auto_comment_off
	autocmd!
	autocmd BufEnter * setlocal formatoptions-=r
	autocmd BufEnter * setlocal formatoptions-=o
augroup END

謝辞

  • 困っていたときにrbtnnさんに教えていただきました。ありがとうございます。
  • id:mcknさんに、formatoptions-=roとまとめて削除ではなく、formatoptions-=rとformatoptions-=oのように分けるのがよいと教えていただきました。感謝します。