11月
17
2009
2

amazon のページからワンクリックでアフェリエイトリンクを作るブックマークレット

タイトルの通りです。何となく需要がありそうな気がしたので作ってみました。
いずれも、AffiliateID 部分をご自分のアフェリエイト ID に置き換えて使って下さい。
(ブックマークレットの使い方)

URL のみ

javascript:void(function(a,l){if(a){l='http://amz.ly/jp/'+encodeURIComponent(a.value)+'/AffiliateID';prompt('Copy%20it!',l)}})(document.getElementById('ASIN'))

a タグ付き

javascript:void(function(a,t,l){if(a){l='<a%20href=%22http://amz.ly/jp/'+encodeURIComponent(a.value)+'/AffiliateID%22>'+t.firstChild.nodeValue+'</a>';prompt('Copy%20it!',l)}})(document.getElementById('ASIN'),document.getElementById('btAsinTitle'))

こちらの記事を参考にさせてもらいました。
Amazonのページからamz.lyで短縮してTwitterに移動するBookmarklet

amazon アフェリエイトやってないんですけどね。

Written by Otchy in: Development | タグ: ,
11月
13
2009
2

お釣りの小銭を減らすように支払う裏ワザ(暗算不要)

先日、Twitter でこんな事をつぶやいたところ、思いの外、大きな反響がありました。

1866円の買い物に対して、財布をさらって2416円を出す。ちょっと怪訝な顔付きでレジ打ちをした店員さん、おつりが550円になるのを見てハッとした顔になる。してやったり感がたまらない。
11:47 AM Nov 7th

これ、素早く頭を回転させて、足し算とか引き算の暗算をしていると思っている人も多いようですが、自分は 2 桁+2 桁の足し算でも繰り上がりがあると計算を間違えるほど暗算が苦手なので、決してそういう計算をしているわけではありません。

下記のような書き込みを見ると、正攻法で暗算している方が多数派なのかな?と思ったので、裏ワザというほど大袈裟じゃないかもしれませんが、自分流の計算方法を解説してみようと思います。

おつりの小銭を少なくする方法 – Yahoo!知恵袋
買い物をしてお釣りをもらうときに、お釣り硬貨の枚数を少なくなるようにお金を出しますか? – 教えて!goo

初めに

お店からの請求額とお財布の中の所持額を確認し、出そうとする金額から請求額を引いて、その値がキリのいい数字になるよう、計算をしながら出す額を調整する…わけではありません。それは暗算が得意な人のやり方です。

自分流のやり方の基本はこんな考え方です。合計金額を考えたり、引き算を使ったりする事はしません。

  • 請求額の 1 の位を確認する
  • お財布の中の 1 円玉と 5 円玉の数を確認する
  • 合いそうならとりあえずそれだけ出す
  • 請求額の 10 の位を確認する
  • お財布の中の 10 円玉と 50 円玉の数を確認する
  • 合いそうならとりあえずそれだけ出す
  • 請求額の 100 の位を確認する

至ってシンプルです。もちろん、合わなかったらどうするんだ?っていう部分は補足が必要ですが、基本的な考え方は、位の小さい方から順にお財布の中身と照らし合わせながら出していくだけです。
それだけで、最終的にはキリのいいお釣りをもらえるようになる、という方法で、計算らしい計算は行う必要がないため、やり方さえ覚えてしまえば、誰でも応用可能ではないかと思います。

基本編

まず、860 円の請求額があったとしましょう。
初めは位の一番小さいところ、1 の位から順に見ていきます。ここでは 1 の位が 0 なので、それは無視して構いません。
次に 10 の位を見ると 6 ですね。そこでお財布の中の 10 円玉と 50 円玉を探して、60 円を作れないかを考えます。50 円玉+10 円玉でもいいですし、10 円玉×6 枚でもいいです。60 円ちょうど出せるようだったら、60 円だけ小銭受けの中に入れます。

次に、100 の位を見ると 8 ですね。今度はお財布の中から、100 円玉と 500 円玉を探します。この時、どちらもなかったとしましょう。その時は頭の中で「1 つ上の位に繰り上がる」と考えます。小学生の頃、筆算で習ったあれです。(本来の意味の繰り上がりとは全然違います。言葉のアヤです。)
この場合、1 つ上の位というと 1000 の位ですが、もともと 1000 の位に数字はないので、あと必要なのは 1000 円札 1 枚という事になります。

そうすると結果として、860 円の請求に対して、1060 円を出して、200 円のお釣りをもらう事が出来ます。お財布から 10 円玉と 50 円玉を減らしつつ、10 円単位のお釣りをもらわずに済ます事が出来ました。

ちなみに、1000 円札がなければ 5000 円札、5000 円札もなければ、1万円札を出してもいいです。この場合それぞれお釣りは、4200 円、9200 円になります。1 万円札もなければお金が足りてないので諦めて下さい。

この基本編は最もシンプルなパターンです。このくらいなら暗算でやっているよ、という人も多いかもしれませんが、「860 円の請求だから、仮に 1000 円払ったらお釣りは (1000 - 860 =) 140 円か…、切りよく 200 円にするためには (200 - 140 =) 60 円を足せばいいんだな…、よし 60 円あるから 1060 円払おう。」とか暗算しているわけではないところに注目して下さい。

あくまで下の位から順番に出せるものを出していくだけ、というのがポイントです。
必要とされるのは小銭を探す能力だけで、暗算能力は不要です。

発展編

日本の硬貨・紙幣には 5 円玉や 50 円玉などの 5 を単位とするものがあるので、それを利用してお釣りを切りよくするのが発展編のテーマです。そういえば 2000 円札なんてものもあった気がしますが、いまやレアすぎるので扱いません。
ここでも基本的な考え方は変わりませんが、ちょうど出せる小銭が無くても 5 を引いた数の小銭があれば出してしまうようにします。

初級編と同じく、860 円の請求があったとします。
1 の位は 0 なので、最初に探すのは 10 円玉と 50 円玉ですね。この時、10 円玉は余っているのに、50 円玉はなく、60 円を作れなかったとしましょう。ここで、6 を作れないなら、そこから 5 を引いた 1 を作れないかを考えます。つまり 10 円です。10 円玉なら余っているので、10 円だけ小銭受けの中に入れます。

このようにして、5 を引いた数を出した時は、その分お金が不足している状態になると考えて、全く出せなかった時と同様、1 つ上の位に繰り上げます。100 の位に 1 繰り上げるので、次に探すのは 900 円です。

もちろん次は、お財布の中から 100 円玉と 500 円玉を探します。ちょうど 100円玉が 4 枚あったものの、残念ながら 500 円玉はありませんでした。でも、9 引く 5 は 4 なので、構わず 400 円分を小銭受けに追加します。結局、100 の位も 5 を引いた数を出したのでまた上の位に繰り上げです。

あとは最後に 1000 円札を足すだけですね。そうすると結果的に、1410 円が小銭受けの中に置かれます。この時のお釣りは、(1410 -860 =) 550 円です。500 円玉 1 枚と、50 円玉 1 枚だけがお釣りで返されます。
なんとスッキリ!魔法のようじゃないですか?

実はここまでの過程で、一度もお釣りがいくらになるかを計算していません。実生活でこの方法を使っている時も、基本編くらい単純ならともかく、発展編のような場合はお釣りが切りよくなる事は知っているが、いくらになるのか知らない状態で使っています。
暗算能力は不要、というのが分かって頂けるでしょうか?

まとめ

以上で全てです。要約すると以下のルールに沿って順にお金を出していく、という事になります。
実にシンプルでしょう。

  • 下の位から見ていく
  • ちょうど出せたら出す
  • 5 を引いた数が出せたら出して、上の位に繰り上げ
  • どちらも出せなかったら、上の位に繰り上げ

意外な利点

実は、切りのいいお釣りをもらうためのこの方法には意外な利点があります。
まず 1 つめは、このルールに従ってお金を出していくと、ちょうどぴったり払える時は、自然とそうなるという事です。お釣りの量を最小にしようとしているのだから、これは当たり前かもしれませんね。

2 つめは、店員さんが早まってレジ打ちを始めない、という事です。
これはどういう事かというと、例えば暗算が早くって、発展編の 1410 円すらパッと判断出来る人がいたとします。この時、計算結果が先にあると、ついつい上の位、つまり 1000 円札から先に出してしまいませんか?
そうすると、その時点で請求額の 860 円を超えているので、店員さんがレジ打ちを始めてしまい、場合によっては 410 円取り出す前に、お釣りを渡されてしまうかもしれません。

一方、必ず下の位からお金を置いていくルールに従っていれば、最後の 1000 円札を出す時まで請求額は超えない仕組みになっているので、店員さんが早まるという事も未然に防ぐ事が出来るのです。

ちょっと蛇足が長くなりました。
簡単なルールを憶えるだけで実践出来るので、ぜひ暗算が苦手な皆さんも、してやったり感を堪能して下さい!

Written by Otchy in: Lifestyle |
11月
05
2009
2

1つのリンクで複数サイトにリンク出来る MultiLink.js 公開


1つのリンクで複数サイトにリンクできる便利JavaScriptライブラリ「Pluralink」 で紹介されていた、Pluralink というライブラリですが、JavaScript 無効時の事は考慮されていないし、必要なファイルがいっぱいあって面倒くさいし、マークアップが HTML 的にアレだったりしたので、その辺を解決したライブラリを作ってみました。

こう書くと、

いろんな<span class="multi-link" title="検索エンジン">検索エンジン(
    <a href="http://www.google.com">Google</a>・
    <a href="http://www.yahoo.com">Yahoo!</a>・
    <a href="http://www.bing.com">bing</a>
)</span>があるから好きなのを使うといいよ!

こうなります。

いろんな検索エンジン(
Google
Yahoo!
bing
)
があるから好きなのを使うといいよ!

気になったら是非!
MultiLink.js

Written by Otchy in: Information | タグ:
11月
04
2009
3

Greasemonkey で 超お手軽に jQuery を使うスニペット

タイトルの通りです。

特徴

  • script タグ追加型の読み込み
  • $ 関数として利用可能
  • 該当ページですでに jQuery が読み込まれていればそれを利用
  • jQuery スクリプト自体のアップは不要 (Gogole の CDN を利用)
  • ローカルのキャッシュも多分有効 (CDN が適切なヘッダを返してれば)
  • jQuery 読み込み完了を待ってから実行される

作成動機

Greasemonkey で jQuery を使う方法検索してみると、GM_xmlhttpRequest で読み込んで eval する方法と、script タグを追加する方法に大別されます。
前者の方がスマートなやり方ではあるのですが、スニペットとして貼り付けるにはいかんせんコードが長くなりがちなのと、jQuery が導入される名前空間の違いからか、jQuery がフル機能で利用出来ないといった制限があるようです。
そこで後者を選択しようと思ったのですが、検索で上位に来るスクリプトはいまいち洗練されていなくて、二重読み込みなどの問題が解決されていなかったりします。

で、自分で書く事にしました。
特に任意のサイトで動作させるスクリプトを書くような場合、元々のページに jQuery が導入済みでもそれに干渉しない、というのがウリでしょうか。

スクリプト

(function(d, func) {
    var check = function() {
        if (typeof unsafeWindow.jQuery == 'undefined') return false;
        func(unsafeWindow.jQuery); return true;
    }
    if (check()) return;
    var s = d.createElement('script');
    s.type = 'text/javascript';
    s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js';
    d.getElementsByTagName('head')[0].appendChild(s);
    (function() {
        if (check()) return;
        setTimeout(arguments.callee, 100);
    })();
})(document, function($) {
    // ここにメインの処理を書く
    $('#button').click(function(){
        alert('clicked!');
    });
});

重たい処理は必要ないぞ、っていう場合はこちらも参考にどうぞ。
Greasemonkey スクリプトの冒頭に書く 5 行

Greasemonkey を書く時に頻繁に利用する関数をまとめたので、公開してみます。
外部の JavaScript ライブラリを読み込む方法を解説したサイトもありますが、そこまで大げさな機能が必要でもなく、軽く動作させたいときに便利です。
特に共通ライブラリを利用すると、Firefox 以外のブラウザの対応も無駄に読み込む事になるので、スマートじゃないなぁと思います。

Written by Otchy in: Development | タグ: , ,
11月
02
2009
2

TwitterAPI.js Ver 0.9.3 リリース。大幅刷新。

TwitterAPI.js の Ver 0.9.3 をリリースしました。

バージョンとしてはマイナーバージョンアップとしていますが、全面的に書き直して、大幅な機能追加を行っています。

JavaScript だけで Shift_JIS/EUC-JP のページから UTF-8 に変換して POST する方法 や、JavaScript だけでクロスドメインで POST メソッドを送る方法 の POST 完了時にコールバック関数を呼び出す技の成果などを取り込んだり、従来不可能と思っていた BASIC 認証における再ログインを実装したりと、意欲的なバージョンアップです。

全面的なリファクタリングに際して記述を洗練させたため、機能が増えても、容量や実行速度は減っています。
最初、Ver 1.0.0 を付けて華々しく…と思ったものの、全面書き換えでバグがあったりすると切ないので、やめました。「バグフィックス版の Ver 1.0.2 がスタンダードになる」みたいのって、格好悪いじゃないですか。

それと、本家の Twitter API も以前と比べ色々と追加されていたので、それらにも追随しました。report_spam とか、search とか出来るようになったので使い道も増えたんじゃないでしょうか?
近々、リスト系の API が追加されれば、それも取り込んでいきたいと思います。

さしあたって、スパム報告機能については、TwitMgr と相性が良さそうなので、そこで使っていきたいですね。

Written by Otchy in: Technology | タグ: ,

Powered by WordPress | Aeros Theme | TheBuckmaker.com