hで悩む

[技術メモ] 2008年6月30日(月曜日) 21:54

<h1>が悩ましい

<h1>タグ。言わずと知れた大見出しです。最近、これの使い方で悩んでおります。
皆様ご存知のとおり、hタグは、1~6と段階があり、h1から途中を飛ばさずに構造化して使うことになっています。h1タグは各ページに1つまで。SEO的には<title>とほぼ同じ内容のものが良いとされているようです。

ドキュメントの名前を明示する場所は何処?

<h0>が欲しいと思いませんか?(ノ∀`)それっぽいメタタグもありそうですが、いまいち一般的ではなく……<title>はパンくずまみれですし、本来<h1>的な「第1章 なんとかかんとか」なんてのでは、肝心のドキュメントの名前が伝わりません。ドキュメント名、本で言えば書名を明示する場所は何処が相応しいのでしょう。

<h1>に書いてしまうと文章構造としては不自然な気も

会社案内サイトの場合は<h1>は会社名(+コピー)にし、ヘッダ辺りに埋め込むのが常套でしょうか。
その場合、<h1>はメタタグ的な役割になってしまい、文章構造用としては死んでしまいます。サイト構造に引きづられると言いますか、そもそも「サイト構造=文章構造」なのだから良いではないかとも思いますが、見出しは見出しであって、サイトの名称は見出しではありませんので、なんか腑に落ちません。

世のサイトを見てみましょう

まずw3c

トップページの<h1>は「The World Wide Web Consortium (W3C)」
第2階層ページは7つ中6つの<h1>が「W3C」。w3cも、似たようなジレンマを抱えているように見えます。

次に米ヤフー

あまりにも大きすぎて、第2階層が別サービスになってます(ノ∀`)
ちょろっと眺めた感じでは、記事ページは記事名が<h1>、それ以外はコンテンツ名が<h1>かもしれません。
ルールは存在しているようですが、やはり自前ルールと言えそうです。

ああ、なんと悩ましげなhでしょうか。

コメント (0)

トラックバック URL :

ページトップへ

旧友の結婚式

[日常] 2008年6月29日(日曜日) 0:55

28日は旧友の結婚式でした。
披露宴では新郎友人席が数卓あり、それぞれは別コミュニティ。
一般的にコミュニティによって立場や求められるものが微妙に異なるので、望むと望まざるとに関わらず自身のキャラも若干変わってしまったりするものです。彼の場合、その差異はほとんど無い様で、概ね「いじられ役」。差異の少なさは、在りたい自身と在る自身が近い結果でしょうか。親ではありませんが、大変喜ばしい気持ちがします。

細部に関して驚くほど強すぎる男脳の彼。
これは本来、無用な衝突が少なくなくトッツキにくいはずの要素なのですが、彼の場合は同時に衝突を修復する包容力もあります。ケロッと謝れる素直さと真摯な愛嬌。その両者が相まっての「いじられ役」なのでしょう。

私の場合、兎角、他人に厳しく自分に優しい(’A`)ので、もう少々包容力が必要だなと感じました。

2次会も終わり、帰宅。
最寄り駅の街路樹が、近頃はムクドリ?の休憩場所になってしまったようで、連中は0:00でもチュンチュンと騒いでいました。

コメント (0)

トラックバック URL :

ctrl二度押しで検索窓

AutoHotkeyで、googleデスクトップのアレを作ってしまおう…な、
googleデスクトップのCTRLダブルクリックのあれ2のその後です。

CTRL2度押しの調整

ctrlを連打した際の挙動は好み次第でしょうか。

3度押し以上も2度押しと同じ扱いにする場合

新・なまず日記方式がエレガントです。
~Control::
SetTimer, Control_CheckCnt, 170
Control_cnt += 1
return

Control_CheckCnt:
Hotkey, ~Control, Off
SetTimer, Control_CheckCnt, Off

if(Control_cnt >= 2)
{
;ここにコード
}
Control_cnt = 0
Hotkey, ~Control, On
return

この場合ctrl連打が終了するまで反応しません。

2度押し直後に反応し再反応しない

ctrlを連打しても2回目で反応し、尚且つそのまま連打し続けても再反応しない挙動の場合。

~Control up::
if( A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 180
and (tempA_TimeSincePriorHotkey > 400 or tempA_TimeSincePriorHotkey == -1) ) {
GuiControlGet, Gui_mode, Visible, Value
if (!Gui_mode) {
Gui, Show, x204 y145 h41 w286, 検索してね-AHK
GuiControl, Focus, Value
} else {
Gui, Hide
}
}
tempA_TimeSincePriorHotkey := A_TimeSincePriorHotkey
return

前回と前々回 ctrl が押された時間を記録し、前々回が近すぎる場合を3度押しとして除外します。
こちらの挙動の方がしっくり来るので、現在はこれを利用中。

URLエンコード

Operaの備忘録のぺえじ 方式がエレガントです。別途テキストファイルを用意する手間が必要ですが、しっかりとした出力が得られます。
googleツールバーとの相性も抜群で、ハイライト表示などにも齟齬が全くありません。
urlencode

他のコードも何種か試しましたが文字コードの関係でしょうか、それらは、googleツールバーとの相性が悪く残念な結果に終わりました。
urlencode

今のコード

今のところ、このコードで使ってます。
そこそこ満足なので、この件は完了かなヽ(・∀・)ノ

Gui, Add, Edit, vValue x12 y11 w220 h20 ,
Gui, Add, Button, Default x242 y11 w30 h20 , GO
GUI, Hide
tempA_TimeSincePriorHotkey := A_TimeSincePriorHotkey

URLEncode(str)
{ ;http://orera.g.hatena.ne.jp/misttrap/20070214/p1
ret =
tmp = 0
ini = %A_ScriptDir%\sjis2utf8E.ini
Loop, parse, str
{
num := Asc(A_LoopField)
if tmp <> 0
{
tmp += %num%
IniRead, val, %ini%, zenkaku, %tmp%
ret = %ret%%val%
tmp = 0
}
else if A_LoopField in a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9,-,_,!,~,*,.,(,)
{
ret = %ret%%A_LoopField%
}
else if num < 128
{
IniRead, val, %ini%, ascii, %num%
ret = %ret%%val%
}
else if(num > 160 && num < 224)
{
IniRead, val, %ini%, hankana, %num%
ret = %ret%%val%
}
else
{
tmp := num * 256
}
}
return ret
}

~Control up::
if( A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 180
and (tempA_TimeSincePriorHotkey > 400 or tempA_TimeSincePriorHotkey == -1) ) {
GuiControlGet, Gui_mode, Visible, Value
if (!Gui_mode) {
Gui, Show, x204 y145 h41 w286, 検索してね-AHK
GuiControl, Focus, Value
} else {
Gui, Hide
}
}
tempA_TimeSincePriorHotkey := A_TimeSincePriorHotkey
return

~Esc::
GUI, Hide
GuiControl,,Value
return

ButtonGO:
Gui,submit
Gui, Hide
GuiControl,,Value
search_str := URLEncode(Value)
Run,http://www.google.co.jp/search?q=%search_str%
return

コメント (0)

トラックバック URL :

ページトップへ

2泊3日の修行

[日常] 2008年6月25日(水曜日) 23:59

25日。我が子も無事、2泊3日の入院で退院となりました。
出産や小児医療を取り巻く厳しい現状を思うと、諸関係者様方へは頭が上がりません。熱心な医者に子供の扱いを熟知した看護師や保育士。非常にありがたいことです。

病室に詰められるのは、概ね、朝6時から夜22時程度まで。
2泊3日程度だからでしょうか、詰めていても(妻に任せ、私はちょくちょく自宅に戻りましたが…)親側の体力は何とかなりました。
しかし、夜中はそうもいきません。看護師が見ていてくれるとは言え、8時間は離れなくてはならず、当然、子供の方は泣き明かしたようです。

子供にとっても決して楽ではない経験だったと思いますが、親の方にとってもなかなかの修行でした(ノ∀`)

コメント (0)

トラックバック URL :

ページトップへ

ママの居ない初めての夜

[日常] 2008年6月23日(月曜日) 23:56

我が子が本日入院。明日、ちょっとした手術を行い、明後日には退院の予定です。
手術やその為の全身麻酔のリスクも気がかりであるのですが、最も心配なのは「夜」。
寝付かせた後、我々両親は帰宅となります。母親なしで過ごす初めての夜なのです。

似たようよな月齢で同じく今日入院の方がいらして、その組は、我々よりちょっとだけ早めに寝かしつけて帰られました。
しかし、そのご両親が帰られてから10分もしないうちに、泣き出してしまい、看護師さんの元へ。
いくら看護師さんがあやしても、なぎ声は止まず…小学生の患者も少なくないのですが、気のせいか、声がかれている子が多いような…

明日朝は早めに病院へ向かう予定ですが、我が子も声を枯らしているのかな(ノД`)

コメント (0)

トラックバック URL :

googleデスクトップのCTRLダブルクリックのあれのその後。いろいろ微調整中。今後もまた調整するかも。

Gui, Add, Edit, vValue x12 y11 w220 h20 ,
Gui, Add, Button, Default x242 y11 w30 h20 , GO
GUI, Hide

URLEncode(str)
{
	ret =
	tmp = 0
	ini = %A_ScriptDir%\sjis2utf8E.ini
	Loop, parse, str
	{
		num := Asc(A_LoopField)
		if tmp <> 0
		{
			tmp += %num%
			IniRead, val, %ini%, zenkaku, %tmp%
			ret = %ret%%val%
			tmp = 0
		}
		else if A_LoopField in a,b,c,d,e
		,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v
		,w,x,y,z,0,1,2,3,4,5,6,7,8,9,-,_,!,~,*,.,(,)
		{
			ret = %ret%%A_LoopField%
		}
		else if num < 128
		{
			IniRead, val, %ini%, ascii, %num%
			ret = %ret%%val%
		}
		else if(num > 160 && num < 224)
		{
			IniRead, val, %ini%, hankana, %num%
			ret = %ret%%val%
		}
		else
		{
			tmp := num * 256
		}
	}
	return ret
}

~Control up::
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 180)
	GuiControlGet, Gui_mode, Visible, Value
	if (!Gui_mode) {
		Gui, Show, x204 y145 h41 w286, 検索してね-AHK
		GuiControl, Focus, Value
	} else {
		Gui, Hide
	}
return

~Esc::
	GUI, Hide
	GuiControl,,Value
return

ButtonGO:
	Gui,submit
	Gui, Hide
	GuiControl,,Value
	search_str := URLEncode(Value)
	Run,http://www.google.co.jp/search?q=%search_str%
return

その後

↑だと、ctrl3回押しが2度押し×2回になっちゃいます(ノ∀`)
CTRL二度押しに関しては新・なまず日記の方が期待通りに動くようです。

コメント (1)

トラックバック URL :

近頃は、vista IE7をメインにコーディングしています。
本日ハマったのが、その vista IE7のlist-style-image。
マイナーCMSのスキンCSSをいじっている最中の出来事。
list-style-image:none; でオーバーライドしても、なぜか有効になりません。
いえ、ちょっと違います。有効にはなるのですが、オーバーライドして消したはずの画像がチラチラ表示されます(ノ∀`)
cssにミスがあるのかと思いきや、IEの窓を画面外に動かしたり、該当箇所をドラッグしたりすると、消えたり現れたり。
どうも、仕様と言うよりはバグっぽい挙動です。(NN3がバグった時を思い出しました…古)
OSレベルなのかレンダリングエンジンレベルなのか、はたまたハードが悪いのかw

未検証ですが、覚書として。

ちょっと検証

上記を書いた翌日です。そのCMSをいじる中、別のオーバーライドでハマりました。
簡単なコードで検証してみたところ、上記CMSのプレビュー画面でのみ再現しましたので、ひょっとしなくとも、そのCMSの謎仕様かもしれません。IE7無罪の予感。

コメント (0)

トラックバック URL :

この現象について記述しているサイトを見つけられなかったので、記録しておきます。windowsXP以降は一応IE7がデフォルトとなりましたので、今更なIE6です(ノ∀`)
しかし、コーダとしては、一応まだターゲットブラウザから外す訳にもいかず……

IE6のバグ
実働現物

どんなバグかと言いますと、3つ以上のブロックをfloatで並べると一部のテキスト末尾がゴーストよろしく、他所に表示されてしまうのです。何処に現れるかはケース次第で、場合によっては運良く見えない事もあります。

回避方法は、3つ以上並べないこと(笑)いえ、諦めろという意味ではありません。□ □ □ と並べずに、□ (□ □) と2分割の入れ子にすれば大丈夫なのです。
3ペインの場合、今でもIE6対策で、やむを得ずそのようなコーディングをしております(ノ∀`)入れ子自体は文章構造的にはまったく必然性がありません

はやくIE6が駆逐されますように\(^o^)/

コメント (2)

トラックバック URL :

ページトップへ