技術メモ カテゴリー

web系技術メモ

Vistaはファイルコピーが遅い!?

[技術メモ] 2008年7月11日(金曜日) 21:05

Vista ファイルコピー 遅いでググっても古い情報ばかりなのですよねぇ。ひょっとしたら家の設定に問題があるのでしょうか(´・ω・`)

作業フォルダくらいは頻繁にバックアップをしておきたいところ。20Gでファイル数は13万くらいでしょうか。コーダの性で細かいファイルが多いです。
しかししかし、大した容量でもないのに、コピーが異常に遅い(・ω・)上書きなどしようなら、大量のダイアログに襲われます。Vista最大の不満点。

目的はバックアップですので、おとなしくVistaデフォルトのバックアップ機能を使ってみることにしました。
なかなかどうしてコレも結構なお時間が必要でしたよ(ノ∀`)ゆっくりお風呂に入ってお釣りがきました。

本件とは全く関係がありませんが、Vistaのsuperfetchは快適です……ってXPでも使えるんですよね(ノ∀`)XPの方も是非superfetchを試してみてください。

Comments (0)

TrackBack URL :

個人的にはブログインターフェイスの革命(ノ∀`)

記事の呼び出し方を増やしました。
特定の記事単体()だけではなく、特定記事を含む「リスト」()で呼び出せるようにしました。
こんなのがなぜ革命的かと言いますと、これで単体記事のページから、その記事を含むリストのページに行けるのです。最初にたどり着いたのが単体記事でも、そこから簡単に時系列リストの該当ページに行けるのです。
これで、単体記事から記事リストに飛びたい等で懸案だった、インターフェイスの一部が実装できました。

一覧へ

無理やり実装

とはいえ、SQLもPHPもwordpressもいまいち分かっていない私。
実装の内実は酷いものです・゚・(ノД`)・゚・

  • 戻れるのは全記事時系列一覧のみ(つまりカテゴリ無視)
  • コアファイルを直接書き換えている(つまりバージョン変更でお陀仏)

等々、まだまだ問題が山積。

実装方法(仮)

ここから進めるかどうかも怪しいですが(仮)と言わせてください(ノ∀`)

wordpressのバージョンは2.5.1
query.php の1426行目に以下を挿入

		//rtype
		//paged定が無くpagewith指定があれば
		if (!$_GET['paged']) {
			$pagewith = ereg_replace('[^0-9]+','',$_GET['pagewith']); //ごみを取る
			if ($pagewith) {
				$pagewithby = "and ID>$pagewith";
				$prerequest = " SELECT COUNT(*) as postCounter FROM $wpdb->posts $join WHERE 1=1 $where $pagewithby $groupby $orderby";
				$this->prerequest = apply_filters('post_counter_request', $prerequest);
				$this->postposition = $wpdb->get_results($this->prerequest);
				//$paged $limit作り直し
				$paged = floor( $this->postposition[0]->postCounter / $q['posts_per_page'] ) + 1;
				$pgstrt = ($paged -1) * $q['posts_per_page'];
				$q['paged'] = $paged;
				$limits = 'LIMIT '.$pgstrt.','.$q['posts_per_page'];

			}
		}

同、link-template.php の611行目に以下を挿入

	$request = remove_query_arg( 'pagewith' );

後は、単体記事のスキン(single.php)のそれっぽいところから
<a href=”<?php bloginfo(‘url’); ?>/?pagewith=<?php the_ID(); ?>#post-<?php the_ID(); ?>”>等とリンク。

未消化の課題

  • カテゴリで抽出したリストに飛びたい
  • プラグイン化したい

とりあえず、この二つくらいは何とかしたいものです。
と言うか、どなたかやってくださいヽ(・∀・)ノ
と言うか、このくらいの機能、標準でつけやがれこのやろうです(笑)

Comments (1)

TrackBack URL :

amazonリンクを張った投稿が楽になるプラグイン、WP-Amazon-ReloadedがバージョンアップしてJPに正式対応していました。
以前はちょこっと書き換えて使っていたのですが、これでその必要も無くなり安心安心。IE7でも問題なく動いてます。

Comments (0)

TrackBack URL :

ヘルプ – Amazon.co.jp アソシエイト・セントラル

アソシエイトメンバーが運営するWebサイトのアソシエイトリンクを通しての自己注文はお控えください。メンバー自身の注文に対して紹介料は支払われません。別のお客様用の商品、代理注文、または結果的にメンバーや友人、家族、知人の方が使用する商品なども、メンバーが運営するアソシエイトリンクから注文することはできません。

し…知りませんでした(ノ∀`)

Comments (0)

TrackBack URL :

ページトップへ

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でしょうか。

Comments (0)

TrackBack 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

Comments (1)

TrackBack 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二度押しに関しては新・なまず日記の方が期待通りに動くようです。

Comments (1)

TrackBack URL :

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

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

ちょっと検証

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

Comments (0)

TrackBack URL :