2009年06月09日

javascriptの関数の書き方 このエントリーをはてなブックマークに追加

javascriptという言語はかなり奥が深いな。
以下をみてみよう。下記3つのソースはすべて同じ(ような)挙動をする。

■code 1
<html>
<head>
<title>javascript test</title>
<script type="text/javascript">
function ipsum(i, j) {
    if (typeof(i) == "undefined"){
        i = 100;
    }
    if (typeof(j) == "undefined"){
        j = 500;
    }
    alert(i + j);
}
</script>
</head>
<body>
<input type="button" onclick="ipsum(1,4)" value="ipsum(1,4)"/>
<input type="button" onclick="ipsum()" value="ipsum()"/>
</body>
</html>



■code 2
<html>
<head>
<title>javascript test</title>
<script type="text/javascript">
function ipsum1(i, j) {
    i = i === undefined ? 100 : i;
    j = j === undefined ? 500 : j;
    alert(i + j);
}
</script>
</head>
<body>
<input type="button" onclick="ipsum1(1,4)" value="ipsum1(1,4)"/>
<input type="button" onclick="ipsum1()" value="ipsum1()"/>
</body>
</html>



■code 3
<html>
<head>
<title>javascript test</title>
<script type="text/javascript">
function ipsum2(i, j) {
    i = i || 100;
    j = j || 500;
    alert(i + j);
}
</script>
</head>
<body>
<input type="button" onclick="ipsum2(1,4)" value="ipsum2(1,4)"/>
<input type="button" onclick="ipsum2()" value="ipsum2()"/>
</body>
</html>



特にcode 3の部分とか直感的にわかりにくいな。

何れもiとjのデフォルト値(というか、iとjが指定されなければこの値を使うよという意味だな)を用意した関数だね。
これは論理和を求めているんだね。
i = i || 100;
どちらかが真の場合真ってことだな。
typeofとか実際あまりつかわないけど、こういうの使うとちょっと玄人っぽいよね。(とカタチから入ってみる)

うーむ。いろんな書き方ができるんだねぇ・・・
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2009年05月30日

「AdWords アカウントの変更に関する重要なお知らせ」というメールがきた このエントリーをはてなブックマークに追加

Googleから「AdWords アカウントの変更に関する重要なお知らせ」なるメールが届いた。
***アカウントに関する重要なお知らせ***

お客様各位

今後数週間のうちにお客様の AdWords アカウント (お客様 ID: xxx-xxx-xxxx) を新しい管理画面に切り替えさせていただきます。新しい管理画面はキャンペーンを効率的に管理できるよう設計されておりますので、アカウントにアクセスしてぜひお試しください。

このメールをお送りしてから 30 日間は、新旧の管理画面をいつでも切り替えていただけます。
この間も皆様のご意見に基づき、機能の追加と調整を行います。
ってGoogle Adwords使ってないんですけど・・・
うーむ。なんでだろ? というかなんだろう、このメール。間違えちゃったのか、新たなAdwords顧客獲得作戦なのか?
Google AdWords : キーワード ツールさえ使ったことないんだが?

参考情報
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2009年05月26日

サクラエディタでメールのSubjectの文字化けを一瞬で解消 このエントリーをはてなブックマークに追加

先日、ひどいスパムメールが届いたよという記事を書いたのだが、その際メールのタイトル(subject)をどのようにリスト化するか、ちょっと悩んだ。

Beckyの場合「eml形式」(1メール1ファイル)とUNIXの「mbox形式」全てのファイルを選択できるが、何れの場合もサブジェクトの文字は通常のエディタなどで開くと文字化け(?)している。
例えばこんな感じ
Subject: =?ISO-2022-JP?B?GyRCMHokQzFbJDckXiQ3JD8bKEI=?=
うーむ。これは何が書かれているのかよくわからない。
勿論emlなりmboxに書き出す前のメールをBeckyで見ればわかるのだが、大量にある場合はどうすればよいのか。

iso-2022-jp デコードで検索すればとりあえずそれらしきものが検索されるのだが、最も手っ取り早いと思われる方法を以下に書いておく。ちなみにWindowsの場合限定です。Macintoshの人、すまん。

1. サクラエディタをダウンロード&インストール
2. インストール後、Beckyなどで書き出されたメールをサクラエディタで開く。
3. 変換したい文字を選んで(若しくは全ての文字を選んで)メニューの「変換(C)」→「文字コード変換(C)」→「E-Mail(JIS-SJIS)コード変換(M)」を選択(ALT+F11でOK)

するとあら不思議、
Subject: =?ISO-2022-JP?B?GyRCMHokQzFbJDckXiQ3JD8bKEI=?=
Subject: 引っ越しました
に変換された。
うーむ。これは便利すぎる。
正直プログラム作ろうかどうか悩んだが簡単な方法があってよかった。

大量のメールを処理する場合もサクラエディタのgrep機能で「Subject:」の文字列を検索し、検索結果で「ALT+F11」でSubjectをデコード後、別名で保存とかすればOKだね。

サクラエディタ完璧ですな。
posted by りょーち | Comment(2) | TrackBack(0) | Web周辺技術

2009年05月23日

Google ツールバー の404エラー表示を元に戻す方法 このエントリーをはてなブックマークに追加

なんだかわかりにくかったのでメモ
ツールバー → オプション → 検索 → 正しいURLの候補を表示するのチェックボックスをオフにする。
ウェブ閲覧ツール : 無効な URL やつづりの間違っている URL のサポート - ツールバー ヘルプ

機能の実態と表現が微妙に違っているようで調べるのに時間がかかってしまったな。

ちなみにDELLのマシンなどにインストールされているIEなどでDELLのカスタマイズされた404エラーが表示されることがある。
Dell 検索ページ
これは「Browser Address Error Redirector」「GoogleAFE」「URL Assistant」 などという名前でプリインストールされている機能のよーなので、これを削除すれば普通の404ページを見ることができるね。

そういえばこんな記事も昔あったな・・・
Googleツールバーによる「404エラー・ページ」の乗っ取り:ITpro

参考:秀逸な 404 file not found を集めたページ | りょーちの駄文と書評
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2009年05月16日

Youtube のダウンロードサイトには Google Adsense は利用できません このエントリーをはてなブックマークに追加

Google Adsenseから「ポリシーに反しているサイトがありますよ」と警告メールが届いた。文面を見るとどうもGoogle AdSense プログラム ポリシーが変更になったようである。


変更内容はInside Adsense - 日本語: プログラムポリシー改訂のお知らせにまとめて書いてあるようなので参考までに見てみると、こんな感じに変更されたようである。
  • Google 商標の不正使用: 利用規約でも述べられている事項ですが、プログラム ポリシーにも記載し、確認しやすくしました。このポリシーでは、Google のロゴ、商標、その他 Google ブランドをページのコンテンツや URL で不正に使用することを禁止しています。当該サイトが Google と提携関係にあるとの誤解を招く可能性があるためです。
  • 紛らわしい表示:最新のプログラム ポリシーにもあるとおり、広告をページ上の他のコンテンツと区別がつかないような表示方法で掲載することはできません。
  • 広告のメール内での表示:このポリシーでは、Google 広告や検索ボックス、検索結果を、メール内やメールの横に表示いただけないことを明示しています。
    他の Google サービスのポリシー: このポリシーでは、サイト運営者様は広告や検索ボックス、検索結果を、他の Google サービスのポリシーに違反するような方法で表示することを禁止しています。例えば、YouTube 動画をダウンロード可能にするサイトはYouTube の利用規約に違反するため、これに該当します。
今回警告メールの対象となったのは上記の「例えば、YouTube 動画をダウンロード可能にするサイトはYouTube の利用規約に違反するため、これに該当します。」に引っ掛かっていたようだ。
うーむ。そうだったのか。
つまりこれを見る限りではYoutubeの動画をダウンロードできるようなダウンロードサイトにはGoogle Adsenseを貼ることができないということのようである。

りょーちの場合は、そもそも動画のダウンロードサイトってのがあることを知り、自分でも作ることができるのかなと思い適当に作ってみたくらいのレベルなので、何時閉鎖してもよいくらいのレベルなのだが、Google Adsenseのポリシー違反ということなのでYoutubeのダウンロード機能をプログラムから削除してみた。

なので海外を含むYoutubeダウンロードサイトでGoogle Adsenseを利用しているサイトはGoogle Adsenseをやめるかダウンロードサイトをやめるかという岐路に差し掛かっていると思われる。
GooglegがYouTubeを16億5000万ドルで買収したことによりYoutubeはGoogleの持ち物のよーになっているためグループの不利益となるような行為は避けたいのではないかと思われる。

ちなみにりょーちの場合は今回の2009年4月にあったYoutubeの仕様変更に対応していなかったのですでにダウンロードできなくなっている状態だったのでまあ、これを機会にYoutubeのダウンローダからは足を洗うことにしてみた(^^;

機能的にはしょぼいが動画ダウンローダサイトを作ってみた経験からすると、各種動画サイトをスクレイピングして動画ファイルのURIを捜すところまでは意外と簡単にいく場合が多い。
ここで動画サイトにより、直接ダウンロードされないような工夫がいくつかされているっぽい。多くの場合はこんな感じ。
  • ログインIDとパスワードで認証が必要
  • 動画アクセス時にcookieを確認する
  • Refererのチェック
  • アクセス元のIPをチェック(クライアントと動画ダウンロードサイトのIPを比較する)
まあこれらを動画サイトごとにどのパターンなのかなってのを解析してダウンロードURIへのアクセスリンクを作るってのがダウンロードサイトでやっていることだ。
URIがわかり認証、Cookie、Refererなどのチェックを掻い潜るようにHTTPでのリクエスト用URIを作成できればあとは実装あるのみ。動画サイトによっては一度アクセスしただけではダウンロード用URIがわからない場合もあるので、一度スクレイピングした結果を元にプログラムで再度アクセスしなおして正規のURIを見つけ出すことも必要だったりする。
最終的にはHTTPでのアクセスになるのでプログラム言語はなんでもよい。りょーちの場合はphpしか知らないのでphpで作ってみた。いろんなライブラリが各言語にあるのでperlやrubyなどでも勿論作ることができるね。海外ではpythonなどで作られているものもあるようだ。
これだけ書けば動画ダウンロードサイトは誰でも作れそうな気がすると思われる。実際まありょーちでも適当に作ることができたのでまあホントに誰でも作れるのだ。しかしホントに大変なのは作った後からだな。以下ダウンロードサイトを作成した人が大変だなと思うこと。
  1. 各種動画サイトの仕様変更への対応
  2. アクセス負荷
  3. モチベーションの維持
特に1と3はかなり密接な関係になっている。開発した当初は、「お、ホントにダウンロードできた。じゃ公開してみよっと」という軽い気持ち?で公開したりする。で、りょーちのようにブログなどで「作ってみたよ」などとお知らせする。するとまあ自分以外の人も検索エンジンなどからたどり着きホントに利用される。
で、他の動画サイトにも対応したりして対応サイトがどんどん増えていく。このあたりは純粋にプログラムを作っていて最もオモシロイ時期だな(^^;
しかし、仕様変更などでダウンロードできなくなるとさあ大変。再度仕様を解析し、都度対応しなければいけない。モチベーションが維持できれば継続して対応していくが、そのうち、面倒になり放置されることもある。
りょーちの場合はホントに軽い気持ちで作ってみたのでいまや仕様変更への対応は殆どしなくなっているな。
今後動画ダウンロードサイトを開発しようとしている方へご参考になればと思い、ちょっと書いてみました。
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2009年05月06日

iGoogleの「順位を上げる」ボタン このエントリーをはてなブックマークに追加

iGoogleで検索すると何やら見慣れないボタンがあった。

googlesearchresult.png

「順位を上げる」ボタンと「検索結果から除外」ってのがあるな。

iGoogleだけの機能なので通常の検索結果には何の影響もないっす。まあ、iGoogleの利用者の検索結果の統計を取って検索順位を決めるわけではなさそうなのでiGoogle上で自分のサイトの検索順位をいくら上げても意味なさそうだね。
posted by りょーち | Comment(0) | TrackBack(1) | Web周辺技術

2009年04月29日

iGoogleでGmailガジェットが利用できなくなったときの解決策? このエントリーをはてなブックマークに追加

iGoogleのガジェットでGmailを閲覧できるGmailガジェットを利用しているが、昨日あたりから利用できなくなった。
エラーを見てみると、こんなことが書いてある。
The Gmail gadget does not support the "Always use https" setting that you chose in full Gmail. If you would like to use https, please open full Gmail. Learn more

どうやらGmailの設定で「常に https を使用する」と設定している人はこのガジェットではなく、Gmailでみてねってことのようだ。

Gmailの設定を確認するには、Gmailにログイン後「設定」のリンクを押し「全般」タブの最後の「ブラウザ接続:」を見ればよい。
「常に https を使用する」「https の使用を選択制にする」のラジオボタンが「常に https を使用する」になっていれば、上のガジェット利用時に上記のよーなエラーが出ると思われる。

まあ、iGoogleはhttpsで接続していないんだからGmailのブラウザ接続が「常に https を使用する」を選択している人から見れば当然の結果なのかもしれんな。

解決方法としてはGmailの設定で「https の使用を選択制にする」を選ぶしかないようだ。まあ、あまり解決してないな。

多分「常に https を使用する」を設定している人は下記の記事を見た方が多いのではないだろうか?(と勝手に推測する)。
Gmailユーザーは今すぐSSL接続にしましょう!ハッキングされる前に! | Google Mania - グーグルの便利な使い方

httpsにこだわるかhttpでもOKか。うーむ、悩むな。

GmailのGoogle グループでも質問されているよーなので今後はそちらを見たほうがよいかもしれませんね。(httpsに対応してねという要望のようですが・・・)

Gmail gadged does not work with HTTPS - Gmail Labs | Google グループ

なお、以下の情報によるとやっぱ、無理っぽいですね。
Enabling the HTTPS setting - Gmail Help
The Gmail gadget for iGoogle doesn't support https.
解決策
To enable this feature in Gmail:

1.Sign in to Gmail.
2.Click Settings at the top of any Gmail page.
3.Set 'Browser Connection' to 'Always use https.'
4.Click Save Changes.
5.Reload Gmail.
だそうです。
うーむ残念。
posted by りょーち | Comment(6) | TrackBack(0) | Web周辺技術

2009年04月27日

KickYouTube:Youtubeの動画(FLV)が保存できなくなった人向け このエントリーをはてなブックマークに追加

2009年4月のYoutubeの仕様変更によりYoutubeダウンロードサイトでダウンロードできなくなった人に朗報。KickYouTubeがあります。

http://www.youtube.com/watch?v=R7yfISlGLNU
をダウンロードしたい人はこんなURLにアクセスすればよい。
http://www.kickyoutube.com/watch?v=R7yfISlGLNU

そーすると、KickYouTubeに移動します。
画面の上部にダウンロード可能な形式がハイライトされるので、どれかを選んで右上の緑のボタンの「GO」を押す。「GO」が「DOWN」に変われば「DOWN」を右クリックして「対象をファイルに保存」すればよい。
メニューを見る限りではダウンロード形式は MP4 , FLV , HD , AVI , MPG , 3GP , iPhone , MP3 , OGG , GIF に対応しているようだ。
iPodやiPhone向けに変換された形でダウンロードできるのでとっても便利だな。

なんて簡単。しかも以下の方がブックマークレットを作成されている。これは便利。
Youtube動画をMP4でダウンロード :: ブックマークレット

ここにも掲載しておきます。
bookmarklet:KickYouTubeへ移動 (右クリックでお気に入りに追加)
Youtubeを見ているときに上記ブックマークレットを呼び出せばKickYouTubeに飛びます。

これは久々のヒットかもね。続きを読む
posted by りょーち | TrackBack(0) | Web周辺技術

2009年04月15日

jQueryとPHPでつくるショッピングカートjCartがシンプルですな このエントリーをはてなブックマークに追加

jQueryとPHPでつくるフリーのショッピングカートがあるようです。

jCart - Free Ajax/PHP shopping cart

商品購入時の画面遷移をなるべく減らすためにAjaxを利用してるのかねぇ。
上記サイトにてサンプルが紹介されているよ。

オープンソースでフリーのショッピングカートなのでphpユーザで利用したい人は結構いるかもね。
ちなみに、PHP5.2以降が必要っぽいな。
How to Install jCart - Free Ajax/PHP shopping cartとか見たけど意外とシンプルな設計だね。

多分ショッピングサイトとか一生作らないと思うけどメモっておこう。
posted by りょーち | Comment(0) | TrackBack(0) | Web周辺技術

2009年04月14日

id:icchan0000氏の青空文庫ゲートウェイbookmarkletが素晴らしすぎる このエントリーをはてなブックマークに追加

青空文庫 Aozora Bunko は以下のようなポリシーで運営されているインターネット電子図書館です。
青空文庫は、利用に対価を求めない、インターネット電子図書館です。
著作権の消滅した作品と、「自由に読んでもらってかまわない」とされたものを、テキストと XHTML(一部は HTML)形式でそろえています。
青空文庫の本を読むにはブラウザや専用ソフトウェアを利用することが多いですが最近話題になっているのは、青空文庫ゲートウェイです。

青空文庫ゲートウェイはブラウザで気軽に青空文庫を読みたい人に bookreader.js を利用して読みやすく整形された状態で青空文庫の内容を提供するサービスのようです。

青空文庫ゲートウェイの開発者TODOには「青空文庫からのページ移動」というタスクがあるようです。この「青空文庫からのページ移動」を実現するのが、id:icchan0000氏の青空文庫ゲートウェイ用ブックマークレット&Yahoo Pipes - 無造作な雲です。

上記サイトで紹介されているブックマークレットが死ぬほど素敵です。
ただ、ブックマークレットを紹介する際に、簡単にブックマークレットを取り込めるようなリンク(右クリックでお気に入りに追加的なもの)がなかったので以下に掲載しておきます。

青空文庫ゲートウェイbookmarklet (右クリックでお気に入りに追加)


利用方法は青空文庫ゲートウェイ用ブックマークレット&Yahoo Pipes - 無造作な雲に記載されている通りです。

青空文庫のXHTMLファイルを読んでいるときに上記ブックマークレットを呼び出せばあら不思議。こんな感じになります。

夢野久作 少女地獄 → ブックマークレット利用後:夢野久作 少女地獄
上田敏訳詩集 上田敏訳 海潮音 → ブックマークレット利用後:上田敏訳詩集 上田敏訳 海潮音

うーむ。素晴らしすぎる。
青空文庫ユーザの方、是非是非お試しを。
posted by りょーち | Comment(2) | TrackBack(0) | Web周辺技術