SQLの窓

2010年01月06日


Ruby : メソッド定義で URLエンコード

PHP で比較テストしています

特別な理由が無ければ、URI.escape で問題無いと思いますが、
ざっと使って以下のようになっていました
■スペースが%20 に変換される 
■/がそのまま
そこで、正規表現で置換しています。
( 他の文字はテストしていませんので、正式なテストではありません )

def は、メソッド定義でトップレベルでは「関数」のようなものですが、
単純なインタープリタのようなので、C言語と同じく前方参照でした。定義してから
でないと実行できません。

gsub は全て置き換える処理で、sub だと一つだけになります。
他の言語での /パターン/g と書かれる事のある処理ですね、
(ちょっと解りにくい)


#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=euc-jp\n\n"

require 'uri'

a = "日本/語A B /表示%"

print a + "<br>"

#トップレベルならばどこからでも呼べるメソッド
#このようなメソッドは結果として他の言語における
#「関数」のように使えます
# ■ 但し、前方参照
def urlencode(s)

	s = s.gsub(/ /,'+')
	s = URI.escape(s)
	s = s.gsub(/\//,'%2F')
	return s

end

print urlencode(a) + "<br>"





タグ:ruby
posted by lightbox at 2010-01-06 23:40 | Ruby | このブログの読者になる | 更新情報をチェックする

VBS : FileZilla用誰にでも使える拡張子ランチャー

FileZilla Client 用に作りましたが、どこでも使えると思います。ただ、呼び出し方は wscript.exe の正しい位置をパスで指定して "" で囲う事が重要です

▼ 例
"C:\Windows\System32\wscript.exe" "C:\user\runext.vbs"



FileZilla は、設定したエディタで開くと、その開かれたファイルは監視されて更新されるとアップロードするかどうか聞いてきます。つまり、直接サーバーのファイルを更新するような作業ができます。ただ、エディタを一つしか指定できないので、このようなランチャーを登録してやると、テキストも画像も変更した後にすぐサーバへアップロードできます。また、複数開いても全て監視されるので、更新されたものが対象となります。とても便利です。
Set WshShell = WScript.CreateObject("WScript.Shell")

Dim aData,strExt,strExe
strExt = ""
aData = Split( Wscript.Arguments(0), "." )
if Ubound( aData ) > 0 then
	strExt = UCase( aData( Ubound( aData ) ) )
end if

' 拡張子別エディタ
if strExt = "JPG" then
	strExe = "MSPAINT.EXE"
	RunExt( strExe )
	Wscript.Quit
end if
if strExt = "JPEG" then
	strExe = "MSPAINT.EXE"
	RunExt( strExe )
	Wscript.Quit
end if
if strExt = "PNG" then
	strExe = "MSPAINT.EXE"
	RunExt( strExe )
	Wscript.Quit
end if
if strExt = "GIF" then
	strExe = "MSPAINT.EXE"
	RunExt( strExe )
	Wscript.Quit
end if

' デフォルトのエディタ
strExe = "C:\Program Files\tpad093\TeraPad.exe"
RunExt( strExe )

Function RunExt( path )

	WshShell.Run( """" & path & """" & " " _
		& """" & Wscript.Arguments(0) & """" )

End Function

関連する記事

FileZilla FTP クライアントのサーバー情報の引っ越し作業

WEB 上のファイルに使用できる文字と FileZilla





posted by lightbox at 2010-01-06 19:35 | VBScript | このブログの読者になる | 更新情報をチェックする

Firefox拡張のバージョン制限の直接書き換え

手書きブログのほうで、Firefox の拡張を使ったアプリケーション
を配布しているのですが、Firefox がバージョンアップする毎にそこだけ
変更してリリースしています。

これは、裏を返せばご自分で変更すれば済むという事でもあるのですが、
何せ面倒な処理です。でも、どうしても動かないものを動かせたい場合は
有効かもしれません。

1) まずバージョン制限が記述されている install.rdf をエディタで開く

エディタはなんでもいいのですが、そのフォルダが面倒くさい場所にあります。
以下のスクリプトで途中まで開く事ができます
ブラウザでダウンロード
開いた場所に、vt9dkllz.default というようにランダムな文字列を使用した
フォルダがあるのでその中に入ると、extensions というアプリケーション用
のフォルダがあり、さらにその中に個別のフォルダがあります。それぞれの
フォルダ内に install.rdf があるので、それをエディタで開きます。

2) <em:maxVersion>3.6.*</em:maxVersion> という記述を変更する

XML になっていますので数字のところだけを変更します。
上記記述ですと、3.6 は動きますが、3.7 では動きません


3) extensions.rdf を削除する

install.rdf を変更しただけでは、適用されません。
vt9dkllz.default 等のフォルダ内にある extensions.rdf
を削除して Firefox を再起動させます



関連する記事
めんどくさいフォルダを開く
【VBS】システムディレクトリを取得する為の Shell オブジェクトの壁



posted by lightbox at 2010-01-06 17:21 | Firefox | このブログの読者になる | 更新情報をチェックする

よくある理科実験(吊られた3つの金属球)ですが、びっくりしたので。

へえ・・・・


ちょっとおもしろかった。
後、鏡に映すと反対になるけれど、そうならない映し方。


#答え : L字型のあわせ鏡



タグ:うんちく
posted by lightbox at 2010-01-06 16:29 | 記録 | このブログの読者になる | 更新情報をチェックする

JUGEM で先頭から2件だけタイトルの下に広告を出す方法

この方法は、本来テンプレートが無く自由な位置に設置出来ない場合に、JavaScript を使って場所の移動を行って表示するものです。( その方法を使ってもいいかどうかは、広告を提供しているシステム側で確認しておく必要があります )

昔はこれでも良かった場合でも、最近はやはり固定位置に設置する必要があると思います。( JavaScript による方法は、間違ってクリックしてしまう可能性が大きいからです )

JUGEM は、有料版でないと広告を設置できないと思いますが、タイトルのような設置のテストを画像リンクでやってきました。
<div id="ad3" style='margin-left: 0px;margin-bottom: 25px;border: #a0a0a0 1px solid; padding: 8px; text-align: left'>
<table>
<tr>
<td valign=top>

<!--広告 : メイン -->
<a href="http://winofsql.jp" target="_blank"><img src="http://winofsql.jp/image/winofsql3.png" galleryimg="no" style='border-style:solid;border-width:1px;border-color:#000000' alt="HOME" title="HOME" /></a>

</td>
<td valign=top style='padding:20px;width:240px;'>

<div style='float:right;'>

<!--広告 : オプション -->

</div>

</td>
</tr>
</table>
</div>

<div id="ad4" style='margin-left: 0px;margin-bottom: 25px;border: #a0a0a0 1px solid; padding: 8px; text-align: left'>
<table>
<tr>
<td valign=top>

<!--広告 : メイン -->
<a href="http://winofsql.jp" target="_blank"><img src="http://winofsql.jp/image/winofsql3.png" galleryimg="no" style='border-style:solid;border-width:1px;border-color:#000000' alt="HOME" title="HOME" /></a>

</td>
<td valign=top style='padding:20px;width:240px;'>

<div style='float:right;'>

<!--広告 : オプション -->

</div>

</td>
</tr>
</TABLE>
</div>


<script type="text/javascript" charset="shift_jis">


try {
	var setTarget1 = 1;
	var setTarget2 = 2;
}
catch(e){}

try {
	var blogtxtbase,blogtxt;
	var baseDiv = document.getElementById("main");
	var len = baseDiv.getElementsByTagName("DIV").length;
	var len2,content_idx,content_idx2,content_cnt=0;
	for( content_idx = 0; content_idx < len; content_idx++ ) {
		if ( baseDiv.getElementsByTagName("DIV")[content_idx].className == 'entry_area' ) {
			content_cnt++;
			if ( content_cnt == setTarget1 ) {
				blogtxtbase = baseDiv.getElementsByTagName("DIV")[content_idx];
				len2 = blogtxtbase.getElementsByTagName("DIV").length
				for( content_idx2 = 0; content_idx2 < len2; content_idx2++ ) {
					if ( blogtxtbase.getElementsByTagName("DIV")[content_idx2].className = 'entry' ) {
						blogtxt = blogtxtbase.getElementsByTagName("DIV")[content_idx2];
						if ( document.getElementById("ad3") ) {
							blogtxtbase.insertBefore(document.getElementById("ad3"),blogtxt);
						}
						break;
					}
				}
			}
			if ( content_cnt == setTarget2 ) {
				blogtxtbase = baseDiv.getElementsByTagName("DIV")[content_idx];
				len2 = blogtxtbase.getElementsByTagName("DIV").length
				for( content_idx2 = 0; content_idx2 < len2; content_idx2++ ) {
					if ( blogtxtbase.getElementsByTagName("DIV")[content_idx2].className == 'entry' ) {

						blogtxt = blogtxtbase.getElementsByTagName("DIV")[content_idx2];
						blogtxtbase.insertBefore(document.getElementById("ad4"),blogtxt);
						break;
					}
				}
				break;
			}
		}
	}

}
catch(e){}

</script>

Seesaa は、複数のブログが作成できるので、何かあった時に一括対応できるように、設置する JavaScript 部分を外部にする仕様になっていますが、JUGEM では一か所に全て記述しています。

テンプレートによって動かない可能性はあります。



posted by lightbox at 2010-01-06 14:15 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年01月04日


Seesaa で先頭から2件だけタイトルの下に広告を出す方法やその他の正攻法

この方法は、本来テンプレートが無く自由な位置に設置出来ない場合に、JavaScript を使って場所の移動を行って表示するものです。( その方法を使ってもいいかどうかは、広告を提供しているシステム側で確認しておく必要があります )

昔はこれでも良かった場合でも、最近はやはり固定位置に設置する必要があると思います。( JavaScript による方法は、間違ってクリックしてしまう可能性が大きいからです )

Seesaa では、独自タグによって、メインインデックス、記事、カテゴリ、アーカイブ毎に広告位置を変更する事ができます。JavaScript では無くそうした方法を取るほうが現在では推奨されます。

最も簡単な方法は、メインインデックスページの記事数を 1 にして、記事テンプレート内で固定にする方法です。こうしておけば、ページ内の広告数に制限があっても特に問題は出ません。

また、Seesaa では、メインインデックス と 記事の下に同一カテゴリ内に記事が2つ以上ある場合に表示されるセクションがあるので、先頭記事のみ記事の後に表示する事もできます。( この方法を使うと、メインインデックス と 記事で共通化できます。( 記事前に表示する場合はメインインデックスでは、全体 HTML で、記事では必ず記事は一つなので、記事テンプレート内で好きな場所です。)


▼ 以下は古い JavaScript のサンプルです
<div id="ad3" style='margin-left: 0px;margin-bottom: 25px;border: #a0a0a0 1px solid; padding: 8px; text-align: left'>
<table>
<tr>
<td valign=top>

<!--広告 : メイン -->

</td>
<td valign=top style='padding:20px;width:240px;'>

<div style='float:right;'>

<!--広告 : オプション -->

</div>

</td>
</tr>
</table>
</div>

<div style='margin-left:30px;margin-top:20px;margin-right:20px;'>
<div id="ad4" style='margin-left: 0px;margin-bottom: 25px;border: #a0a0a0 1px solid; padding: 8px; text-align: left'>
<table>
<tr>
<td valign=top>

<!--広告 : メイン -->

</td>
<td valign=top style='padding:20px;width:240px;'>

<div style='float:right;'>

<!--広告 : オプション -->

</div>

</td>
</tr>
</TABLE>
</div>
</div>


<script type="text/javascript" src="Seesaaにアップロードしたad.jsのURL" charset="shift_jis"></script>


以下は ad.js です
try {
	var setTarget1 = 1;
	var setTarget2 = 2;
}
catch(e){}

try {
	var blogtxtbase,blogtxt;
	var baseDiv = document.getElementById("content");
	var len = baseDiv.getElementsByTagName("DIV").length;
	var len2,content_idx,content_idx2,content_cnt=0;
	for( content_idx = 0; content_idx < len; content_idx++ ) {
		if ( baseDiv.getElementsByTagName("DIV")[content_idx].className == 'blogbody' ) {
			content_cnt++;
			if ( content_cnt == setTarget1 ) {
				blogtxtbase = baseDiv.getElementsByTagName("DIV")[content_idx];
				len2 = blogtxtbase.getElementsByTagName("DIV").length
				for( content_idx2 = 0; content_idx2 < len2; content_idx2++ ) {
					if ( blogtxtbase.getElementsByTagName("DIV")[content_idx2].className == 'text' ) {
						blogtxt = blogtxtbase.getElementsByTagName("DIV")[content_idx2];
						if ( document.getElementById("ad3") ) {
							blogtxtbase.insertBefore(document.getElementById("ad3"),blogtxt);
						}
						break;
					}
				}
			}
			if ( content_cnt == setTarget2 ) {
				blogtxtbase = baseDiv.getElementsByTagName("DIV")[content_idx];
				len2 = blogtxtbase.getElementsByTagName("DIV").length
				for( content_idx2 = 0; content_idx2 < len2; content_idx2++ ) {
					if ( blogtxtbase.getElementsByTagName("DIV")[content_idx2].className == 'text' ) {
						blogtxt = blogtxtbase.getElementsByTagName("DIV")[content_idx2];
						blogtxtbase.insertBefore(document.getElementById("ad4"),blogtxt);
						break;
					}
				}
				break;
			}
		}
	}

}
catch(e){}







Seesaa独自タグ簡易リファレンス

タグ:Seesaa 広告
posted by lightbox at 2010-01-04 19:23 | Seesaa プログ管理支援 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり