SQLの窓

2011年03月28日


Firefox4 : ローカルPCからファイルをドラッグドロップしてファイルの中身を使用する事ができます

他にも WEB アプリケーションで使いたい機能はありますが、まず一番簡単で
誰でも利用してみたいと思う機能です。特に、getAsText() はいとも簡単に
データをインポートする方法なので、localStorage とあわせて使うととても
威力のあるツールを作成する事ができます。

ファイル名はパスを含みませんが、複数ファイルをドラッグドロップできる
ので、利用方法はいろいろ想像できます。メソッドは以前からあるようなの
ですが、ドラッグドロップとあわせて使う事によって幅が広がっています。

Flex を使うと、ファイルを開くダイアログを使って1ファイルは可能です
が、Flex そのものが簡単に使えるような一般的なものではありません。
getAsDataURL() メソッドはファイルの内容が base64 にエンコードされて取 得され、getAsBinary() メソッドはその名のとおり、バイナリです。まだ詳細 をチェックしていませんが、当然画像で使う事になるのでしょう
<div id="dropbox" style='border:solid 1px #000000;width:100;height:30px;'></div>
<script type="text/javascript">
var dropbox;

dropbox = document.getElementById("dropbox");
dropbox.addEventListener("dragenter", function(event){
	event.stopPropagation();
	event.preventDefault();
}
, false);
dropbox.addEventListener("dragover", function(event){
	event.stopPropagation();
	event.preventDefault();
}
, false);
dropbox.addEventListener("drop", function(event){
	event.stopPropagation();
	event.preventDefault();

	var dt = event.dataTransfer;  
	var files = dt.files;

	for (var i = 0; i < files.length; i++) {
		var file = files[i];
		console.log(file.fileName);
		console.log(file.fileSize);
		console.log(file.getAsText("shift_jis"));
		console.log(file.getAsDataURL());
		console.log(file.getAsBinary());
		console.log(file.name);
		console.log(file.size);
		console.log(file.type);
	}

}
, false);
</script>
このコードは リアルタイム html ですぐテストできます。
※ Firebug を使ってお試し下さい。(Firebugを開いてから「ページ作成」してドラッグドロップ)

関連する mozilla ドキュメント

Selecting files using drag and drop



posted by lightbox at 2011-03-28 00:27 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年03月26日


Firefox 4.0 のオレンジ色のアプリケーションメニューとメニューバー

Updating extensions for Firefox 4 - MDC Doc Center

英文ですがこんなふうに書かれています。
Windowsでは、メニューバーはデフォルトで非表示になっています。

代わりに、簡略化されたFirefoxのアプリケーションメニューを開く事ができます。 
このメニューは、アプリケーションの最もよく使われるメニュー機能が含まれています。

メニューバーはまだAltキーを押すことによってアクセスすることができます。
既存のアプリケーションの中にはメニューバーからしかアクセスできないものが あるので、必要に応じてこの「アプリケーションメニュー」にオーバレイする必 要がある事が示されています。 それ以外にも、そこへ到達するのにアクションが煩雑に思えるものも出て来る可 能性があるので、ここでその変更例を一つ示します。
<?xml version="1.0"?>
<!DOCTYPE window SYSTEM "chrome://confmania/locale/confmania.dtd">

<overlay id="confmania-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/javascript" src="chrome://confmania/content/browser-Overlay.js"></script>
  <commandset id="mainCommandSet">
    <command id="ConfMania:Open" oncommand="window['ConfMania'].open()"/>
  </commandset>
  <menupopup id="menu_ToolsPopup">
    <menuitem id="confmania" command="ConfMania:Open"
              label="&confmania.label;" insertafter="menu_preferences"/>
  </menupopup>
  
  <vbox id="appmenuPrimaryPane">
    <menuitem id="appmenu_confmania" command="ConfMania:Open"
              label="&confmania.label;" insertafter="appmenu_webDeveloper"/>
  </vbox>
</overlay>

これは、Configuration Mania の呼び出しをアプリケーションメニューに
追加したものですが、insertafter="appmenu_webDeveloper" が位置を示していて、
appmenu_webDeveloper は、WEB開発メニューです。他の位置にセットしたい場合は、
chrome://browser/content/browser.xul をアドレスバーに入力して開いて、
Firebug(HTMLタブ) で Firefox の基本構成を調査して対象を決めて下さい。




関連する記事

実行の入り口であるメニューの位置のカスタマイズ


posted by lightbox at 2011-03-26 20:35 | Firefox | このブログの読者になる | 更新情報をチェックする

Firefox 4.0 限定機能らしい「XPIファイルを展開しない」というオプション変更できる Configuration Mania というアドオン

Configuration Mania :: Add-ons for Firefox



Firefox が 4.0 になって、「アドオン」の格納方法が変わってました
で思った事を掘り下げて行くとこういう事でした。正式な情報は未確認ですが、
これをチェックするといままで通り展開され、ものによっては展開されていた
のはこのオプションを使っていたのでしょうね。

で、中を見てみると単純で about:config で確認できるオプションの
「extensions.alwaysUnpack」をチェックボックス化していただけでした。
正式ドキュメントは見つける事ができませんでしたが、見たままですしその
へんは適当にどうぞ・・・という感じなのでしょうか。

で、about:config から変更すると、Configuration Mania のほうも変更されました。
但し、既に xpi でインストール済のものは変更されずにオプション変更以降に
再インストールまたはアップグレードで展開されるようです。

・・・・いや、だとするとインストール時にのみ展開するというオプションが必要に
なるはずだと言う事ですが、ここんところは解りません。
※ install.rdf に <em:unpack>true</em:unpack> をセットします


日本語化の為に、

Nightly Tester Tools を再インストールしました。
id は、{8620c15f-30dc-4dba-a131-7c5d20cf4a29} となっていますので、その中の
chrome\locale\en-US に入って、nightly.dtd を開いて "Open Profile Folder" を
"プロファイルフォルダを開く" と変更して、UTF8N で保存して下さい。
※ {8620c15f-30dc-4dba-a131-7c5d20cf4a29} が固定なのかどうかは未確認

本来(正式には) locale フォルダに日本語用のフォルダやファイルを作るのですが
配布目的でもなければそこまでしなくてもいいと思います。ただ、再インストール
してしまうと(含バージョンアップ)元に戻ってしまうので、変更した dtd は保存
しておくいいと思います。




posted by lightbox at 2011-03-26 19:27 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年03月25日


トラブル : IE9製品候補版の具体的技術的問題点を二つ。

震災の為、製品版の公開が日本では見送られていますが、Internet Explorer Platform Preview からおかしいと思っていた事がはっきりしました。


1) IE 拡張の 親 window オブジェクト

IEでは、IE 拡張という機能があり、そのコードからは、Windows の通常のアプリケーションの実行等が可能なのですが、親ウインドウオブジェクトが何故か参照できなくなっています。

参照用のコードは以下。
external.menuArguments

これが、現在表示しているページの window オブジェクトになるはずなのですが、アクセス不可でエラーになります。通常、ここから location オブジェクトを参照して URL を取得していたのですが、取得できません。

単独のオブジェクト( 今カーソルの下にある ) は参照できるので、そのプロパティの document オブジェクトの URL プロパティで URL そのものは代替え可能ですが、とうてい完全な解決策ではありません。


2) OBJECT 要素の中の embed 要素の記述 これは、Flash でよく行われている記述ですが、IE9 では、OBJECT の id と embed のname が同じ場合( もともと IE は name 属性から id 属性作成 ) window["idの文字列"] とするとコレクションになってしまい、Flash オブジェ クトの参照ではなくなってしまいます。この場合の対処方法は少し記述を変えて、 window["idの文字列"][0] とすれば同じ参照になります。 これは、「互換表示」で元へ戻ります。
タグ:トラブル IE IE9
posted by lightbox at 2011-03-25 14:55 | IE | このブログの読者になる | 更新情報をチェックする

sendoid というサービスがありますが、まだ「Symmetric NAT」を越える事ができないようです。

Sendoid Feedback and Support – Sendoid – Convore

上のリンクは、sendoid の フィードバック & サポートですが、
そこで以下のような記述があります。

one possible issue is a router doing "symmetric NAT" which doesn't 
preserve UDP points, this breaks the NAT hole punching technology we use
結局かなり昔からある NAT 越えをの問題をクリアしていないようです。 ※ 参考 : ネットワークアドレス変換 - Wikipedia 家で使っているルータを調べると古くてそんなに高価では無いものですが やはり、symmetric NAT で、ポートを固定にするには自分で設定する必要 があります。 ルータでは無い場合や携帯の場合は問題なさそうですが、今の時代でルータ を使わないほうが無理があるので、まだまだ使え無いのでは無いかという気 はします。ま、設定すればいい事ですが、一般の人は無理でしょうし。 高価なルータでは問題無いような事が、フィードバック & サポートで質問 している人がおっしゃってますが、そのへんの事情はさすがに場数踏んでい ないので解りません。 ただ、テストは一台の PC で自分自身に対して行えるのでやってみると、 確かにとんでもなく高速です。100メガ転送するのがあっと言う間でした。 Flash のインストール時間くらいです。
posted by lightbox at 2011-03-25 00:22 | WEBサービス | このブログの読者になる | 更新情報をチェックする

2011年03月23日


Firefox が 4.0 になって、「アドオン」の格納方法が変わってました

正式な情報は解りませんが、自分でも Firefox の拡張を作っているので、バージョン
アップされるたびにバージョン文字列の変更のみの目的で .xpi を作りなおしていたの
で気がついたのです。

※ 正式な情報です > XPI unpacking

関連する記事

「XPIファイルを展開しない」というオプション変更できる Configuration Mania というアドオン

<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>palette@tegaki</em:id>
    <em:name>tegaki</em:name>
    <em:version>1.3.10</em:version>
    <em:creator>lightbox</em:creator>
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->
        <em:minVersion>1.5</em:minVersion>
        <em:maxVersion>4.0.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

以前までは、.xpi をインストールすると、それが展開されて格納されるのですが、今回
からはそのまま .xpi として保存され、Firefox が使用時にアクセスします。Firefox が
終了するまで名称変更はできても、削除はできませんでしたので Open したままだと思わ
れます。

以下は、Firefox のプロファイルフォルダを開く為のスクリプトです。
Firefox のプロファイル

これで開いたフォルダ内の、例えば 952gqg41.default というようなフォルダの中のさら
に、extensions というフォルダに Firefox 拡張は格納されます。
また、今回よりバージョンアップは .xpi を入れ替えて Firefox を再起動するだけで可能 なようです( 前回までは、extensions.rdf を削除してから再起動していました ) 既に 4.0 対応済だった、アドオン 自分が使っていたものだけですが、一つを除いて最新に更新されて稼働しました。 ※ tegaki 1.3.10 は手作業でバージョンアップしました。 Extension Developer は何故かまだフォルダが残っています。まだ、非対応 のぶんはまだフォルダのままです。で、使っている中で非対応だったのが、 Screengrab です。これをバージョン文字列だけ変えて使ってみましたが、 暴走してしまったので真似しないで下さい。
 Firebug
 Firecookie
 User Agent Switcher
 IE Tab Plus
 ColorZilla
 Greasemonkey
 Extension Developer
GIGAZINE の、使え無くなったアドオンの対処法

Firefox4で動作しないアドオンを動作させる方法 - GIGAZINE

これは、そのアドオンの動作を保証するものでは無いので注意して下さい。
単に、Firefox が行っているバージョンチェックを無効化する方法です。
また、これを行う為に、Nightly Tester Tools というアドオンをインス
トールしています。

このアドオンは、Firefox の見えている状態からタイトルを除いた部分の
スクリーンショットや、この記事で紹介したスクリプトで開くフォルダよ
り中の実際プロファイルフォルダを開く機能もあって便利です。

アドオンの無効化、有効化は、ON/OFF でメニュー設定し、それを有効化
する為に Firefox を再起動します。GIGAZINE の説明は少し解りづらい
ですが、そういう事です。



※「プロファイルフォルダを開く」はちょっと自分で日本語化してみました
※ Nightly Tester Tools は、何故か .xpi では無く展開されてました

※ install.rdf に <em:unpack>true</em:unpack> をセットします



posted by lightbox at 2011-03-23 21:04 | Firefox | このブログの読者になる | 更新情報をチェックする

2011年03月18日


VBS : 指定した HOST 名を現在の IP アドレスで HOSTS ファイルに登録するスクリプト

最初の PC 名は処理に必要ありませんが、確認表示の為に取得しています。「テスト用コンピュータ名」に指定する HOST 名を設定しますが、想定しているのは、Windows7 の XPモードで環境が移動した際に、その環境で取得した(DHCP) IPアドレスに対して、「固定」の HOST 名で名前解決しようというものです。

■ IPアドレスの取得
■ HOSTS があるディレクトリの取得
■ HOSTS ファイルを開いてすべてのテキストを取得
■ 新規なのか、既に以前設定されていたかをチェック
■ 書き込み

というプロセスで実行されます。作業する前には、HOSTS ファイルのオリジナルをバックアップしておくといいと思います。
' 現在のコンピューター名の取得
Dim ComputerName
Set objWMIService = GetObject("winmgmts:\.\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")  

For Each objItem in colItems
	ComputerName = objItem.Name
	Exit For
Next 

Wscript.Echo ComputerName


' テスト用コンピュータ名
Dim TestComputerName

TestComputerName = "layla"


' IPアドレスの取得
Dim IPAddress

Set obj = GetObject("winmgmts:\.\root\cimv2")
Set objTargets = obj.ExecQuery( _
	"select * from Win32_NetworkAdapterConfiguration " & _
	"where IPEnabled = True" _
	)
For Each objTarget in objTargets
	For Each objAddress in objTarget.IPAddress
		IPAddress = objAddress & ""
		Exit For
	Next
Next

Wscript.Echo IPAddress


' HOSTS があるディレクトリの取得
Set obj = CreateObject("Shell.Application")
Set objFolder = obj.NameSpace( &h25 )


' HOSTS ファイルを開いてすべてのテキストを取得
FilePath = objFolder.Self.Path&"\drivers\etc\hosts"
Set Fso = CreateObject( "Scripting.FileSystemObject" )
Set objHandle = Fso.OpenTextFile( FilePath, 1 )
strText = objHandle.ReadAll
aData = Split( strText, vbCrLf )
objHandle.Close


' 新規なのか、既に以前設定されていたかをチェック
bExist = False
For I = 0 to Ubound( aData )-1
	aWork = Split( aData(I), " " )
	if Ubound(aWork) >= 0 then
		if Trim(aWork(0)) <> "" then
			if Ubound( aWork ) = 1 then
				strServer = Trim(aWork(1))
				if Ucase(TestComputerName) = Ucase(strServer) then
					bExist = True
					aData(I) = IPAddress & " " & TestComputerName
					Exit For
				end if
			end if
		end if
	end if
Next

' 新規
if not bExist then
	strText = strText & vbCrLf & IPAddress & " " & TestComputerName & vbCrLf
else
' 既に以前設定されている
	strText = Join( aData, vbCrLf )
end if

' 書き込み
Set objHandle = Fso.OpenTextFile( FilePath, 2, True )
objHandle.Write strText
objHandle.Close





posted by lightbox at 2011-03-18 16:32 | VBS + WMI | このブログの読者になる | 更新情報をチェックする

XP用、エクスプローラを右クリックしてそのフォルダで「コマンドプロント」を開くメニューを追加する .reg ファイル

Windows7 では、内部の記述は同様ですが、最初からSHIFT キーを押しながらポップアップメニューを表示すると、「コマンドウインドウをここで開く」というメニューが表示されます

▼ Windows7 での普通の右クリック


▼ Windows7 で、SHIFTキーを押しながらの右クリック




▼ Windows7 のオリジナル内容
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

※ 以下を Unicode で CRLF で保存しても使用できます。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="コマンドプロンプト(&P)"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""





posted by lightbox at 2011-03-18 15:51 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

Windows7 : イベントビュアーのログの設定をコマンドラインより行う(クリアを含む)



この画像はデフォルト状態ですが、以下はコマンドラインより現在の状態を表示したものです。
C:\Users\lightbox>wevtutil gl Application
name: Application
enabled: true
type: Admin
owningPublisher:
isolation: Application
channelAccess: O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU
)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\Application.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1

C:\Users\lightbox>wevtutil gl Security
name: Security
enabled: true
type: Admin
owningPublisher:
isolation: Custom
channelAccess: O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\Security.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1

C:\Users\lightbox>wevtutil gl System
name: System
enabled: true
type: Admin
owningPublisher:
isolation: System
channelAccess: O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x3;;;BO)(A;;0x5;;;SO
)(A;;0x1;;;IU)(A;;0x3;;;SU)(A;;0x1;;;S-1-5-3)(A;;0x2;;;S-1-5-33)(A;;0x1;;;S-1-5-
32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\System.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1

[必要に応じてイベントを上書きする] : retention = false、autoBackup = false
[イベントを上書きしないでログをアーカイブする] : retention = true、autoBackup = true
[イベントを上書きしない (ログは手動で消去)] : retention = true、autoBackup = false

2番目の、「イベントをイベントを上書きしないでログをアーカイブする」を、Application ログで実行すると以下のようになります。

wevtutil sl Application /rt:true /ab:true

ログの最大サイズの設定は以下のようになります( バイト )

wevtutil sl Application /ms:20971520

ログのクリア(バックアップなし)は以下のようになります

wevtutil cl Application



posted by lightbox at 2011-03-18 12:16 | Windows7 | このブログの読者になる | 更新情報をチェックする

2011年03月11日


これがいい方法かどうかは解りませんが、直観的で解りやすい UL 要素内の LI 間の改行調整

本当は他に方法あるのでしょうが、ブログのリンクでしか使わないので
一般的にも簡単なほうがいいと思ったので。

テストは、リアルタイムHTML で実行してみて下さい。
  • 1行目
  • 2行目
  • 3行目
  • 1行目
  • 2行目
  • 3行目
  • 1行目

  • 2行目

  • 3行目

  • 1行目

  • 2行目

  • 3行目

<ul>
<li>1行目</li>
<li>2行目</li>
<li>3行目</li>
</ul>

<ul>
<li>1行目<br /></li>
<li>2行目<br /></li>
<li>3行目<br /></li>
</ul>

<ul>
<li>1行目<br /><br /></li>
<li>2行目<br /><br /></li>
<li>3行目<br /><br /></li>
</ul>

<ul>
<li style='line-height:0px'>1行目<br /><br style='line-height:25px'/></li>
<li style='line-height:0px'>2行目<br /><br style='line-height:25px'/></li>
<li style='line-height:0px'>3行目<br /><br style='line-height:25px'/></li>
</ul>

ただ、ブラウザによって多少高さが違うようなんですが、まあもともと
かなり違うものですからデザイナでは無いのでよしとしてもいいと思い
ます。


※ Opera はこのページでうまくいかないですね。
( CSS の important がたぶん邪魔しています )


posted by lightbox at 2011-03-11 09:55 | HTML / CSS | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

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

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

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

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


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

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

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

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

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


Windows
container 終わり

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

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり