FireGestures でジェスチャーをキャンセルする
2008/05/06 | ラベル: Firefox, Tips | 0 コメント |設定画面に項目がなく、デフォルトで無効になっているのでメモ。
about:config を開き、
extensions.firegestures.gesture_timeout
を 3000 とかに設定する。単位はミリ秒。
設定画面に項目がなく、デフォルトで無効になっているのでメモ。
about:config を開き、
extensions.firegestures.gesture_timeout
を 3000 とかに設定する。単位はミリ秒。
Firefox 3 にしたら、Gmail のフィルタ設定のキーワード欄を複数行にする Stylish のスタイル定義が効かなくなっていた。
このスタイル定義は
-moz-binding: url(http://persistent.info/files/gmail-filter.xml#filter);
のように外部サイトを参照するようになっており、Firefox 3 のセキュリティ強化によりエラーとなってしまう。考えてみれば、外部サイトに置かれたファイルに定義された書き換えルールを使っているっていうのはかなり危険である。ファイルを置き換えられても気付かないだろうし。。。
自分は新バージョンの Gmail に対応するため、XBL ファイルをローカルに置き、
-moz-binding: url(resource:///chrome/gmail-expand-filter.xml#filter);
としているが、これもエラーとなった。
新バージョンの Gmail でこのフィルタを使うにはこちらを参照。
続・Gmail のフィルタ設定のキーワード欄を複数行にする
解決方法は、XBL ファイルを Stylish のクロムフォルダに置くこと。
パスは <Firefoxプロファイルフォルダ>\extensions\{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}\chrome\content
せっかくなので、手順をまとめておく。目的は Firefox 3 & 新バージョンの Gmail で使えることだけど、たぶん Firefox 2 以前、旧バージョンの Gmail でも動くと思う。
<Firefoxプロファイルフォルダ>\extensions\{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}\chrome\content を開き、次の内容を gmail-expand-filter.xml として保存。
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl">
<binding id="filter" styleexplicitcontent="true">
<implementation>
<constructor>
var textarea = document.createElement("textarea");
textarea.name = this.name;
textarea.id = this.id;
textarea.value = this.value;
textarea.style.width = "100%";
textarea.style.fontFamily = "monospace";
textarea.style.fontSize = "14px";
textarea.rows = 15;
this.parentNode.replaceChild(textarea, this);
</constructor>
</implementation>
</binding>
</bindings>
Stylish に新しいスタイルを作成し、次のコードを入力する。
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("mail.google.com") {
input[name="cf1_has"],
input.MtafId[tabindex="54"],
input.MtafId[tabindex="5"] {
display: none;
-moz-binding: url(chrome://stylish/content/gmail-expand-filter.xml#filter);
}
}
PAM を使った自作アプリ(C/C++)で、ユーザの認証を Active Directory で行う方法を紹介。
C/C++アプリのコーディングでは、Active Directory を意識する必要はなく、単に PAM に問い合わせるだけ。認証方法に依存しちゃったら PAM を使う意味ないしね。ここでは PAM ライブラリを用いたコーディングについては触れません。
アプリのプラットフォームは Linux 。今回は、ユーザの認証だけができればよく、Linuxシステム上にアカウントは存在しなくてよい。というより作りたくない。
手順はたかはしもとのぶ氏の Linux の認証を Active Directory で行なう方法 の通りでOK。また、Windows ActiveDirectory を利用した Linux ログイン認証環境構築時のメモ は Windows と Linux の認証の統合の方法についてよくまとまっている。
これだけ。
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = TEST.LOCAL
default_tkt_enctypes = des-cbc-md5
default_tgs_enctypes = des-cbc-md5
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
TEST.LOCAL = {
kdc = dc1.test.local:88
admin_server = kerberos.example.com:749
default_domain = test.local
}
[domain_realm]
.test.local = TEST.LOCAL
test.local = TEST.LOCAL
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Active Directory 側で、Administrator のパスワードを一度も変更していない場合、kinit に失敗するので注意。
ここで Active Directory で認証できるか簡易なテストをする。Active Directory 上に存在するユーザと同名のユーザを Linux 上にも作る。パスワードは未設定でよい。/etc/pam.d/system-auth の先頭エントリに次の1行を加える。
auth sufficient /lib/security/$ISA/pam_krb5.so
そのユーザで Linux にログインしてみる。成功すると、/var/log/messages に次のようなログが記録される。
Mar 5 16:39:02 localhost sshd: pam_krb5[22867]: authentication succeeds for 'test01' (test01@TEST.LOCAL)
テストが成功したら、/etc/pam.d/system-auth を元に戻し、Linux 上のユーザは削除しておく。
#%PAM-1.0
auth required /lib/security/pam_krb5.so no_user_check
認証のみでユーザが(ローカル)システムに存在するかチェックしなくてよいので、no_user_check オプションをつけること。
あとは C/C++ アプリで認証ができるか確認する。
krb5.conf から引用。HP-UXのだけど、Linuxでも多分同じ。
[realms] ATHENA.MIT.EDU = { kdc = KERBEROS.MIT.EDU kdc = KERBEROS-1.MIT.EDU:750 kdc = KERBEROS-2.MIT.EDU:88 admin_server = KERBEROS.MIT.EDU default_domain = MIT.EDU v4_instance_convert = { mit = mit.edu lithium = lithium.lcs.mit.edu } }
WMIを使ってディスク容量を取得するサンプルはたくさんあるけど、ドライブレターのない論理ボリュームの容量を取得するものがない。また、Win32_LogicalDisk クラスでも取得できない。
いろいろ調べて試した結果、Win32_Volume クラスで取得できることが分かった。以下は「C:\Users\xxx」にマウントしたボリュームの総容量と空き容量を取得する例。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Volume Where Caption = 'C:\\Users\\xxx'")
For Each objItem In colItems
WScript.Echo "Name: " & objItem.Name
WScript.Echo "Capacity: " & objItem.Capacity
WScript.Echo "Free Space: " & objItem.FreeSpace
WScript.Echo
Next
ExecQuery メソッドでは LIKE も使えるので、
Select * from Win32_Volume Where Caption LIKE 'C:\\%'
という書き方もできる。