OS X で日本語キーボード(JIS)を英語配列(ASCII)で使う

いつの頃からか、日本語キーボードのJIS配列ではなく、英語キーボードのASCII配列が馴染んでしまったこの体。自分で購入するマシンは英語キーボードを選択するのですが、会社支給の場合、まず間違いなく日本語キーボード。

Windows であればJIS配列でもASCII配列にする方法は知っていたのですが、ここ最近使っている Mac は知る必要がなかったので知らないままでした。ですが、この度、会社に借りることになった MacBook が案の定JIS配列。当たり前なんですが 🙂 そこで、なんとかならないものか調べることに。 続きを読む

広告

tableの属性cellspacing="0", cellpadding="0"をCSSで対応する

CSSによるレイアウトが普及して、table要素をレイアウト用途に使うことは少なくなったけれども、純粋な表として使うことはなくならない。

で、表とセルの隙間をなくすために<table cellspacing=”0″ cellpadding=”0″>なんてするんですが、CSSでコントロールしたほうが後々修正は楽。このやり方をすぐ忘れてしまうのでメモ。

cellspacing=”0″ cellpadding=”0を使った例

<table cellspacing="0" cellpadding="0">
	<tr>
		<th>見出し</th>
		<td>コンテンツ</td>
	</tr>
	<tr>
		<th>見出し</th>
		<td>コンテンツ</td>
	</tr>
</table>

cellspacing=”0″ cellpadding=”0″を使わない例

<style type="text/css">
table {
	border-collapse: collapse;
}
</style>

<table>
	<tr>
		<th>見出し</th>
		<td>コンテンツ</td>
	</tr>
	<tr>
		<th>見出し</th>
		<td>コンテンツ</td>
	</tr>
</table>

border-collapse: collapse;一発で隙間がなくなる。楽。多くの場合隙間は必要ないので、デフォルトで入れておき、例外として、cellpadding=”2″等の0以外のケースを対応する。これをCSSでやろうとすると下の通り。

table {
	border-collapse: separate;
	border-spacing: 2px;
}

ただ残念なことに、border-spacingはIEが対応していないので実質使えない。そういう時はどうするか。素直に<table cellspacing=”2″>としてやるのが正解。

Tumblr x del.icio.us 文字化けを FeedBurner で解消

Tumblrdel.icio.us の RSS を食わせると文字化けが激しい。原因は、『subtech – otsune’s SnakeOil – del.icio.usのrssをtumblrに喰わせると文字化けするのは、数値文字参照だからじゃね?』ということなんだと思います。が、上記方法だとちょいと面倒くさいので、del.icio.us の RSS を FeedBurner に一旦食わせてから、それを Tumblr に登録することにしました。

  1. 元の del.icio.us の RSS
  2. それを FeedBurner に食わせた結果
  3. それを Tumblr に食わせた結果

これで一件落着。文字化けせずコメントも Tumblr 側に表示されるようになりましたとさ。回りくどいけど、誰でもできる解決策。

Googleデスクトップのインデックス削除と無効化

Googleデスクトップのインデックスを削除する必要が出てきました。

Googleデスクトップ自体のアンインストールをしようかと思いましたが、ガジェットを使っているのでアンインストールはしたくない。でもインデックスはもういらない。そんなジレンマに陥る前に、インデックスの在処さえ分かればそれを消せばいいかと強引な手段を考えたりしましたが、何かツールがあるだろうと探していたところ TweakGDS というソフトがありました。

作業手順は以下の通り

  1. Googleデスクトップの設定で「インデックス作成を無効にする」にチェックを入れて、「設定を保存」
  2. Googleデスクトップを終了
  3. TweakGDS をインストールして起動してから、Indexing を表示させ Delete Cache でインデックス削除
    TweakGDS のキャプチャ画像
  4. Googleデスクトップを起動

これでインデックスはまっさら、しかもこれから何もインデックスされません。

TweakGDS でインデックスの削除だけでなく、インデックスの保存場所を変えられます。その手順は、『Shishimushi – Googleデスクトップの再インデックス』を参照してください。

ちなみに、GoogleデスクトップのプラグインページURLが変わったらしく、上記ページで張られているリンクは NOT FOUND になっているのでご注意を。

FeedBurner を独自ドメインで利用してみる

RSS に統計解析やといった便利な機能を提供してくれる FeedBurner

Google に買収されて日本ではどうなるかと思っていましたが、GMOもやってくれました。

1.「FeedBurnerスタッツPRO」・・・高機能版アクセス解析機能
2.「マイブランド」・・・独自ドメインでのRSS(フィード)を配信可能に
3.「記事のクリックスルー集計-検索エンジン優先設定」・・・検索エンジンの最適化が可能に
4.新たにAPIを公開

Feedburner Infomation | 4つの新サービスを無料で提供開始のお知らせ

とりあえず、「マイブランド」を使って、自分のドメインで FeedBurner が吐き出す RSS を使えるようにしてみました。http://feeds.kawarano.net/shinji

この「マイブランド」。asahi.com では結構前から使われていて、使いたいなぁと思っていた機能だったんです。(asahi.com の RSS: http://feeds.asahi.com/asahi/TopHeadlines)

「マイブランド」を使用する詳しい手順はFeedburner Infomation | マイブランド設定例]をご覧頂くとして、なぜ独自ドメインで運用できると何が個人的に嬉しいかについて一点だけ。

万が一 FeedBurner サービス停止等で利用できなくなっても、RSS の扱いが楽だということ。

事が起これば、そのまま feeds.kawarano.net で運用するもよし、リダイレクトして新しい URL に転送するもよし。

せっかく気に入ってくれた読者を、自分のあずかり知らぬところでみすみす手放すのは避けたいですからね。

ちなみに、「マイブランド」を利用していても FeedBurner 側の URL にアクセスするとリダイレクトされません。RSS Auto-discovery のリンク先や、RSS のリダイレクト先を変える作業を変えることをお忘れなく。

しばらく動かしてみてちゃんと動いていることが確認できました。ただ、不明なユーザーに「マイブランド」を利用したフィードがリストされるのはよくないですねぇ。FeedBurnerヘルプ「不明なユーザ」とは?

CSSでフォントサイズを固定すると、ブラウザのフォントサイズ設定が無効になる

CSSで font-size: 13px; なんてすると、Internet Explore (IE)で表示サイズを変えられないという問題、ではなくて、どのブラウザにも当てはまる問題。

まず大前提として、IEのフォントサイズは、最大・大・中・小・最小の5段階を指定でき、他のブラウザ (i.e., Firefox, Safari) は、ブラウザの設定でフォントサイズを自由に指定できます。

Firefox の フォントサイズ設定ダイアログ

で、本題。

各ブラウザのフォントの見え方を統一する Yahoo! UI Library: Fonts CSS 等のCSSが出回っていますが、これらのCSSは基本的に、IEは small 等を、その他ブラウザには 13px 等を設定し、見た目のサイズを統一しようとしています。

ここで問題が起こるのは、IEではないブラウザ。先ほどののブラウザのフォントサイズ設定で設定した値を無視して 13px で描画するんです。。。困りました。例えば弱視の方がフォントサイズを大きく設定しても有効にならない等のケースが考えられます。

Firefox や Safari では、ページ表示中に一時的にフォントサイズを大きくしたり、小さくしたりはできますが、結局、一時的なんですよね。新しいウィンドウやタブでページを開くと、その設定はキャンセルされて元に戻ってしまっています。

以下、表示サンプル。

CSS で font-size:13px と設定

  • ブラウザのフォントサイズ設定が 16px の場合
    CSS 13px / ブラウザ設定 16px
  • ブラウザのフォントサイズ設定が 30px の場合
    CSS 13px / ブラウザ設定 30px

CSS で font-size:small と設定

で、はやりIE以外のことを考えても、相対指定にしておこうとなる。

ここで制作者として悩ましいのが、なぜか OSX Firefox のデフォルトフォントサイズが 14px だという事 (参照: 各ブラウザのデフォルトフォントサイズ | Bowz::Notebook)に端を発する、OSX の Firefox だけ文字が小さめになってしまうこと。結局、「まぁ、いいやw」と相対指定にしましたが。

関連リンク

日本語サブドメイン

SEOに関してちょいと調べることがあって、流れ着いたこのエントリ(『ずっと日本語ドメインのターン!』 日本語サブドメインでアクセスアップ (びっぱーず.ねっとで働く中の人のブログ))。

それでもやってみたいのであれば以下のツールを使うとすごく簡単です。

日本語JPドメインのPunycode変換・逆変換

変換したワード・・・例えば「xn--98jrbuxwm21i」みたいなやつを、通常通りサブドメインを設定するのと同じ流れで指定するだけです。
少なくとも俺が使ってるさくらサーバではそれでいけたよ。

この程度で運用できるようなら、スパム以外の用途にも使えそう。商品名とか、ブランド名とか。

ただ注意したいことが一つ。Internet Explore6以下で直接URLを入力しても、アクセスできないです。サブドメインではなく日本語ドメインだと、警告が出たり、ツールを入れたりする必要がありますがアクセス可能です。検索エンジン経由では、変換されているので問題ありませんでした。

IE6がブラウザシェアのほとんどを占めていることを考えると、まだ早すぎるテクニックではありますが、将来的には使えるテクニックかもしれません。

robots.txtでGooglebotをブロックすると、”Googlebot” で始まるすべてのロボットがブロックされる・・・

久しぶりにGoogle ウェブマスターツールを見てみると、kanshin.mobiの携帯サイトクロールエラーに相変わらず「robots.txt により制限された URL」が頻発していた。普通のGooglebotだけをブロックして携帯サイト向けクローラーは許可しているがどうもおかしい。ヘルプを探していると見つけたのがこれ。

Googlebot をブロックすると、”Googlebot” で始まるすべてのロボットがブロックされます。

  • Googlebot: ウェブ インデックスと Google ニュース インデックスからページをクロールします。
  • Googlebot-Mobile: 携帯サイト インデックスのページをクロールします。
  • Googlbot-Image: イメージ検索のインデックスのページをクロールします。
  • Mediapartners-Google: ページをクロールして AdSense のコンテンツを確認します。 このロボットは、お客様が AdSense の広告をサイトに掲載する場合にのみ、サイトをクロールするために使用されます。
  • Adsbot-Google: ページをクロールして、アドワーズ広告のリンク先ページの品質を評価します。このロボットは、お客様が Google アドワーズ広告を使用してサイトを広告する場合にのみ使用されます。

ウェブマスター向けヘルプ センター – Googlebot をブロックするにはどうすればよいですか。

robots.txt 解析でGooglebot-Mobileもテスト対象にしたときに、結果が「許可」。この表示を信じていたのが間違いだったようで。

robots.txt 解析結果

ということで、実際設定するには以下のように。ただトラップ有りのような気がします。

Googlebot をブロックして、Googlebot-Mobile など他の Google ロボットを許可する場合、Allow ルールを使用して特定のロボットにアクセスを許可することができます。 たとえば、次のように指定します。

User-Agent: Googlebot
Disallow: /
User-Agent: Googlebot-Mobile:
Allow:

User-Agent: Googlebot-Mobile:と書かれていますが、英語のヘルプを見るとUser-Agent: Googlebot-Mobileとなっているので、最後のコロンはいらない可能性があります。

PHPのアップロードファイル制限

PHPでアップロードできるファイルサイズの制限を調べたのでいろいろと。

どうやら、PHP側で関係しているのはupload_max_filesize, post_max_size, memory_limitの3つ。これらをphp.iniで設定してやる(PHPのテクメモ | ファイルアップロードの上限)か、.htaccessで個別に設定してやるか(php.ini ディレクティブ)、で対応できるみたい。