Home > お知らせ

2010.05.13

画像の表示方式(ライトボックス)の変更

 ながらく LightBox II を使ってきましたが、画像を表示するプラグインは多種あります。ブログ開設当時いろいろ試して見たんですが、当時どうしても使いたかった「続きを読む」を折りたたんでおくプラグインとどれも相性が悪く、結局それ一種しか選択枝がない状態で使ってました。

 ライトボックスを入れないと画像クリックで別ページに飛んでしまうのでそれは避けたい。

 現在は方針転換して「続きを読む」、つまり画面を折りたたむのはやめてますので、画像表示プラグインも選択枝が増えたはず。

 ということでいくつか試して見ました。どれも一長一短なんですが、表示画面サイズに合わせて表示してくれるのはいいとして、文字の多い画像など「読める大きさでアップしたのに画面サイズに合わせて小さくされると困る」というのがあるんですよね。画面からはみ出したらクロールしてもいいから大きくしたいときがある。

 ありました。マウスのセンターホイールでサイズ変更できるのを見つけたので、それを使うことにしました。画像をクリックすると画面にあわせた大きさで表示されますが、そこから拡大縮小できます。画面からはみ出してもだいじょうぶ。画像はマウスでドラッグできます。

使ったのはこれです。Picbox

以下は覚え書き
 使い方は簡単でした。ダウンロードしてブログに入れ、プラグインをONにするだけ。
 □Automatically add rel=”lightbox-post_id”
 そこにチェックが入ってなかったらいれて Save すればおしまい。


いえ 関連してそうな投稿

2010.05.02

Facebook の「Likeボタン」(いいね!ボタン)

 つけてみました。Facebookってなに?ってのは固い説明なら「FaceBook Wikipedia」 、もう少し柔らかいニュース的な解説なら「こちらのニュース記事」 が読みやすかった。世界的にはナンバーワンの実名系 SNS (ソーシャルネットワークシステム)だそうです。だそうです、ってのは日本ではまだまだ知られてないですからね。私もずっとその名前くらいしか知らなかったです。

 Facebook は登録したまま全然使ってない、ログインすらしてなかったんだけど、最近のニュースサイトの取り上げ方を見て、もしかしたらツイッター並みに一気に爆発するかもしれないな、と思いました。日本人の特性として、そろそろ Google が鼻についてくる頃。私って、知ってる人は知ってるんですけど、ものすごく平凡で平均的な感覚を持ったオタクなんです(笑)

 人より先に流行り物を始めるってことは、まず、ない。人より遅くまで流行り物の何かに凝ったままということもない。まさに「まつした」をもじって「まねした」と揶揄される「松下電産」そのまんまの人。典型的な日本人ですから、Google の極端な米国的ドライさが鼻についてきたってのもあります。やはり「義理人情」もどこかに残さないとね。Yahoo日本や、楽天あたりは日本そのものです。質問メールなんかにも数日で誠意溢れる返事が返ってくる。定型文じゃなく、担当者が一生懸命書いた感じがする内容で返ってくる。最近、リサーチ(アンケート)とか広告とかにはまってますんで、それなりに問い合わせ出すんですけど、日本の会社は一度もイヤな対応がないです。Google は返事がどうの以前に問い合わせメールを出す術がないです。

 ああ、話がずれまくり(笑)

 Facebook の Like ボタンってのは、Google に代表される「知りたいことを検索し、それが載ってるサイトを見に行く」というのとは方向性が全然違う、SNSの一環として、友達の友達は友達方式でリンクしていくって感じなのかな?
 ごめ。ほんとはまだ自分でもよくわかってない。とりあえず、つけてみた段階です。Facebook のアカウントを作って、ログインしておき、「Likeボタン」を押すと、つまり「このページ好き!」って意思表示になるわけです。で、Facebookで友達になってる人にその「好き!」が伝わっていくと。

 Facebook への登録は簡単です。無料だし、Googleアカウントを一つ持ってると便利なように、また、ツイッターに入ってると楽しいのと同じように、きっとそのうち(近いうち?)Facebook に入ってるのが普通になるような予感がします。何ができるのか、どうやって使うのかもまだ理解してないんだけどね。この際、入るだけ入っちゃっておきましょう(笑)

Likeボタン(日本語で「いいね!」ボタン)の設置方法は「CREATE DREAM」さんの記事を参考にさせてもらいました。


いえ 関連してそうな投稿

2010.03.28

.htaccess でのアクセス制御(IE6 関連)

 かなり納得のいく設定ができました。これまで「見よう見まね」で他のサイトに載ってる方法を利用しつつ「たぶんこれはこういうこと」と少しいじったりして調整してきたわけです。ブログ開くまではコメントスパムなど気にしてませんでしたし、.htaccess といえばBasic認証くらいでしか使ったこと無かったですから。

 でも「見よう見まね」で上っ面だけマネしたんでは行き詰まるのは必至。しっかりと学習しました。

1:コメントスパムの大半は IE5~6 を使ってるのでそれらでのアクセスは拒否。
2:しかし、業者ではない IE6 ユーザーからのアクセスは受け入れる。
3:さらに、上記で拒否できないコメントスパムは個別に deny で拒否登録。

 その三点について、なんとかなった気配。久しぶりにプログラミングにはまったような感触です。

 .httaccess でアクセス制御する場合に、冒頭で「Order allow,deny」「Order deny,allow」などと書きます。これの意味をよくわかってませんでした。どう違うの?って思ってました。

 allow 指定(許可)と deny 指定(拒否)、両方にマッチしたときにどちらを優先するのかの指定のようです。「Order allow,deny」を指定すると allow(許可) 優先。「Order deny,allow」は denny(拒否)優先。そしてそれぞれデフォルトで Order allow,deny ならその設定だけで「全部を拒否」したことになり、deny,allow なら「全部を許可」となる。

 でもこの設定の次行にどこの説明でもほぼ必ず allow from all とか書いてます。全部を許可するなら order で deny,allow とすればいいのに。と思いません?

 そこがミソ。こまかくアクセス制限をかけるために allow と deny を複数行書くことになりますが、普通のプログラムで多用する条件分岐ってのができません。allow と deny 、どちらを優先するのか決めておくことでうまいこと条件分岐みたいな仕事をさせるわけです。

 ブラックリストとホワイトリストみたいな考え方ね。すべてを許可しておいて拒否する物を指定していく「ブラックリスト」で、それにマッチしても部分的に許可したい使い方の時は allow 優先のほうが条件分けしやすいんです。でも allow 優先にすると全部拒否が初期値。ってことでわざわざすべてを許可する指定を書くってわけです。

 この優先の意味が説明サイト読んでもわかりにくいです。結局、サーバーソフトの Apache.org までたどりつき、各ディレクティブの説明読んでやっと理解できました(できたつもり、なだけかも)。

 現在ウチで使ってる .htaccess 内のアクセス制御部分は以下のようなものになってます。かなり小さくまとまりました。deny from にIP羅列してたときはすごい量だったです。.htaccess は毎回必ず全行参照するそうなので、短い方がサーバに負担かからないでいいかなと思うんですけど、どうなんでしょうね。

order allow,deny
allow from all

SetEnvIfNoCase User-Agent “(MSIE [3456]\.[0-9])” Kyohi
SetEnvIfNoCase User-Agent “(MSIE [789]\.[0-9]|TweetmemeBot|Lunascape|Sleipnir)” !Kyohi
SetEnvIfNoCase User-Agent “(Commerce|Baidu|sogou|YodaoBot|zh-TW)” Kyohi

allow from .jp

Deny from env=Kyohi
deny from .serverloft.com
deny from .elaninet.com

 いまのところその設定で気持ちよく、.jp ドメインからのアクセスは UserAgent に関係なく全部許可され、.jp ドメイン以外からのアクセスは IE3~6 までと、Commerce,Baidu,sogou,YodaoBot,zh-TW のものは拒否。さらにその条件から外れる(Agent で特定できない)けどスパムを書き込んだドメインを deny で拒否(現在のところ二つ)。環境変数のところは一行にまとめられますが、一行が長くなると見通しが悪くなるのと、将来ここに記述するのが増えたときのことを考えて複数行にわけてます。

 UserAgent での拒否のウチ、クローラーである Baidu 他いくつかは robots.txt で弾くのが普通なんでしょうが、Baidu(百度)は公式サイトに載ってる数種のクローラーを全部登録しても robots.txt を読まずに一時間に一回入ってくるのがあります。気持ち悪いから全面的に拒否です。UserAgent に正直に名乗ってるところはかわいげがあるかもしれません。ウィルスバスターは名乗りません。が、逆引きホスト名設定無し、生IPのみの IE6 なので上記の設定で一緒に拒否できてます。

 いつまでも IE6 のままじゃないだろうし、Agent での指定は脆いってのも、そのうちこの設定じゃ拒否できなくなっていくのも、わかってるけど、そのときはそのときでまた楽しもうと思ってます。


いえ 関連してそうな投稿

2010.03.25

IE6でも通過できるパターンの追加

 業者はまずこうなっていないだろうという部分をもう一カ所見つけましたので .htaccess に「通過できる分」として追加しました。

 詳しく書くと意味がなくなっちゃうかも知れませんので、内容は書かないでおきます。いつかそのうち業者もそれに気づくかもしれませんし、その前にIE6を使う業者がいなくなって、この分類じゃダメってことになる可能性も高いんですけどね。


いえ 関連してそうな投稿

2010.03.24

IE6関連:アクセス制限はできればしたくない(2)

 そこで「IE6 のアクセスを排除」となっていくんですが、排除だけなら簡単でも、IE6 なんだけどこれは違う、というのも分けないといけない。実際に実行したあと、それに引っかかってエラーになったアクセスログを眺めていたら、IE6 なんだけど業者ではないというパターンも発見。Internet Explorer6でのアクセスについて にも書いた二種を含め、以下のもの、

[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Tablet PC 2.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)]

[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)]

[Mozilla/5.0 (compatible; MSIE 6.0b; Windows NT 5.0) Gecko/2009011913 Firefox/3.0.6 TweetmemeBot]

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; Lunascape 4.1.3)

[Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; Sleipnir/2.9.3) ]

[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12)]

 上記以外で ed(小中高等学校)と gr(任意団体) を除く属性 jp ドメインは通るようにしたかったんですけど、このブログを稼働させているサーバの制約でその書式が通らず、できませんでした。

 気持ちとしてはホスト名が著名な会社だったり大学だったりのときは、つまりどうも自分のパソコンではないパソコンからネットにアクセスしてる分だと思うし、自分のパソコンではないからブラウザの更新などできないとか、仕事で使ってる特注アドオンが IE6 までしか対応していないから更新できないとかあるんだろうし、そういう「IE6 を使わざるを得ない環境」から個人サイトにアクセスする必要はないと思うんですよね。公開してるという部分で制限は本意ではないという建前を貫きたい気持ちもあるのやらないのやら。単にこういうのをするのがパズルを解く気分で楽しいからだけかもしれない(笑) 日本のドメインなら管理者に日本語でメール出せますから、何かあっても意見は言える。

 IE6 でアクセスしたときに「弾かれたときに出る参考画面」を出してアピールしています。IE6 以下のときだけ表示させる設定は作れても、IE6 以下の時だけ表示させない設定はできないので、通常のエラー時に出すメッセージも出てしまいますが、それはあきらめました。自分のパソコンでネットにアクセスしてる方なら、それを読めば IE6 から卒業してもらえるのではないかと。

 今回、このやりかたの効果を確かめるために、IE6 の制限を開始した3月14日以来、それまでの .htaccess 内でのIP制限を全部外しています。結果、ブラウザ(+α)の制限だけで十分そうです。思わぬ効果として、スパムとは別個に規制していたウィルスバスタのURLフィルタ攻撃。あれらは IE6 としてやってきますので、一緒に弾けるようになったです。

 最後に .htaccess 内の実際の書式も書いておきます。Remote_Host が取得できればかなり良い感じになるんですけど、そこが少し残念。

SetEnv !Kyohi
SetEnvIf User-Agent “(MSIE [3456]\.[0-9])” Kyohi
SetEnvIf User-Agent “(MSIE [789]\.[0-9]|TweetmemeBot|Lunascape|Sleipnir|IEMobile|Windows CE|InfoPath)” !Kyohi
SetEnvIf User-Agent “(Commerce|Baidu|SocialMedia)” Kyohi
#SetEnvIf Remote_Host “\.(or|ad|ne|co|go|ac)\.(jp$)” !Kyohi

order allow,deny
allow from all

Deny from env=Kyohi

(1)まず変数を作りリセットしておきます。(この行はなくても問題ないです)
SetEnv !Kyohi

(2)IE3~IE6 だったら変数をセット
SetEnvIf User-Agent “(MSIE [3456]\.[0-9])” Kyohi

(3)IE7~IE9 or ほかいくつかの要素のときは(2)にマッチしていても変数リセット
SetEnvIf User-Agent “(MSIE [789]\.[0-9]|TweetmemeBot|Lunascape|Sleipnir|IEMobile|Windows CE|InfoPath)” !Kyohi

(4)(3)にマッチしても下記の要素を含んでいたら変数セット
SetEnvIf User-Agent “(Commerce|Baidu|SocialMedia)” Kyohi

そうしておいて、変数がセットされていたら deny します。たまにこれらに該当しないスパムが来たら、(2) ~ (5) の修正でいけるなら修正。パターンとして馴染まないならそれのみdeny に独立で追加する予定です。

 数十数百と IP を羅列して弾いていくよりスマートではないかと思います。でも一般的にそうしてないということはなにか「このやりかたはまずいよ」というのがあるのかもしれません。それに気がついたらまた他の手を考えることにします。


いえ 関連してそうな投稿

« Previous | Next »