2006年11月30日

防衛庁の省昇格関連法案とは?

自衛隊の任務について付随的任務を本来任務に格上げするものです。


いろいろな意見があるとは思いますが私は防衛庁の省昇格関連法案には反対です。
場合により国際的な軍事的協力が必要であることはわかりますが、
一方で自衛隊が軍隊として活動するきっかけとなり得ないことや自衛手段以上のことを求めることになってしまうおそれがあります。

ご意見のある方は Trackback をしていただけるとありがたいです。
また、 Tarckback すべきサイトがあれば教えていただけるとありがたいです。

2006年09月06日

netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead") で常に例外が発生してしまいます

signed.applets.codebase_principal_support が false に設定されている可能性が高いです。
この場合、 user.js や about:config で true に設定してみると解消されるでしょう。

続きを読む "netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead") で常に例外が発生してしまいます" »

2006年05月08日

Thunderbird でファイルを添付してメールを送信するとファイル名が変更されてしまいます

日本語を含むファイル名のファイルを添付して送信した場合、 Outlook などのメーラーを利用して受信すると受信側のメーラーでファイル名が変更されます。

回避するには次のようにします。


  1. メニューの「 Tools - Options... 」より設定ダイアログを開きます

  2. 「 Advanced 」タブを選択します

  3. 「 Config Editor... 」ボタンを押します

  4. 「 Filter 」にて "mail.strictly_mime.parm_folding" を入力します

  5. "mail.strictly_mime.parm_folding" の値を 0 か 1 にします( default は 2 )

続きを読む "Thunderbird でファイルを添付してメールを送信するとファイル名が変更されてしまいます" »

2006年01月20日

Greasemonkey に User Script をインストールしようとすると "NS_ERROR_FILE_NOT_FOUND" となりインストールできません

Greasemonkey をインストールしたことがない Firefox に 0.6.2 以上のものをインストールすると発生するようです。これは User Script の格納情報を記述するファイルがないために発生しています。以下の方法でインストールできるようになります。

  1. 利用している Firefox の Profile ディレクトリに移動、 Profile ディレクトリがわからない場合は http://www.mozilla.org/support/firefox/profile#locatehttp://www.mozilla-japan.org/support/firefox/profile#locate を参考のこと
  2. Profile ディレクトリ以下に "gm_scripts" というディレクトリを作成する、すでにあればそのままでよい
  3. gm_scripts ディレクトリに "config.xml" というファイルを作成する、中身は空でよい
  4. この状態で User Script をインストールしてみるとできるようになっている

2005年11月30日

IE で JScript を利用して外部コンテンツを取得する際に Referer ヘッダを変更することはできませんか?

Microsoft.HTTPXML ActiveX には setRequestHeader というメソッドがあるのですが、ヘッダとして "Referer" を指定した場合、上書きされません。セキュリティ上の観点からだと思われます。

ただし "Referer:" のようにコロンをつけて指定すると Referer ヘッダとして、指定した値が送られます。これを利用すると Referer ヘッダを書き換えることができます。例えば以下の場合 Referer として "http://www.yahoo.co.jp" が送られます。

r.setRequestHeader("Referer:","http://www.yahoo.co.jp")

これは IE のセキュリティホールのようです。したがってそのうち patch が出るかもしれません。(参考:http://secunia.com/advisories/16942/

Firefox で script が置かれているサーバー以外のサーバーのコンテンツを取得するにはどうすればよいですか?

スクリプトに以下のコードを入れて、ユーザーの判断を仰ぎます。

netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead")

これによりユーザーにどんなコンテンツを読み込んでも良いかどうか判断をさせるダイアログが表示されます。ユーザーが許可すればスクリプトは他のサーバーのコンテンツを取得することができます。

詳細は Signed Scripts in Mozilla にかかれています。

2005年11月28日

管理者でなくてもネットワーク上に存在するマシンを調べるコマンドはありませんか?

目的にもよりますが browstat を利用すると解決するかもしれません。これは「ネットワーク一覧」に似たような機能を提供しています。このツールによりドメインの管理者でなくてもドメインコントローラーのホスト名を知ることができます。

このコマンドは標準ではインストールされていません。 http://www.microsoft.com/downloads/details.aspx?FamilyID=49AE8576-9BB9-4126-9761-BA8011FABF38&displayLang=ja からダウンロードできる「 Windows XP Service Pack 2 サポート ツール」に含まれます。

2005年11月25日

Ruby on Rails で MySQL を利用したら "No such file or directory - /tmp/mysql.sock" というエラーが表示されてしまいます

MySQL で接続のために生成している UNIX socket のファイルが /tmp/mysql.sock にないために発生しています。 MySQL は default でこのパスにファイルを生成しますが、設定によって変更されている場合があります。この場合、明示的に設定してあげる必要があります。

  1. MySQL が UNIX socket をどこに生成しているかを確認
  2. mysqladmin variables | grep socket
  3. config/database.yml のデータベース設定の 1 つとして UNIX socket のパスを追記(データベース名やユーザー名と同様に記述すればよい)、以下 "/var/lib/mysql/mysql.sock" だった場合の例
  4. socket: /var/lib/mysql/mysql.sock
  5. WEBrick を再起動

JavaScript で文字数を数えるにはどうすればよいですか?

単純に文字数であれば length を使います。

var str="test"
alert(str.length)

全角・半角を意識しないバイト数を知りたい場合には charCodeAt() を利用すればよいでしょう。文字数えサンプルを参照してください。

2005年11月22日

MT は https に対応していますか?

基本的には利用できますが動作確認が甘いように見えます。以下を修正すると良いでしょう。(他にもあるかも)

diff -cr org/MT-3.2-ja-2/lib/MT/App/CMS.pm MT-3.2-ja-2/lib/MT/App/CMS.pm
*** org/MT-3.2-ja-2/lib/MT/App/CMS.pm	2005-09-28 09:47:00.000000000 +0900
--- MT-3.2-ja-2/lib/MT/App/CMS.pm	2005-11-22 17:20:47.795125216 +0900
***************
*** 2488,2494 ****
          if (!$app->param('cfg_screen') && $app->param('name') eq '');
      return $eh->error(MT->translate("Site URL must be an absolute URL."))
          if ($app->param('cfg_screen') eq 'cfg_archives'
!             && $app->param('site_url') !~ m.^http://.);
      require MT::Blog;
      return $eh->error(MT->translate("There is already a weblog by that name!"))
          if (grep { $_->id != $app->param('id')} MT::Blog->load({name => $name}));
--- 2488,2494 ----
          if (!$app->param('cfg_screen') && $app->param('name') eq '');
      return $eh->error(MT->translate("Site URL must be an absolute URL."))
          if ($app->param('cfg_screen') eq 'cfg_archives'
!             && $app->param('site_url') !~ m.^https?://.);
      require MT::Blog;
      return $eh->error(MT->translate("There is already a weblog by that name!"))
          if (grep { $_->id != $app->param('id')} MT::Blog->load({name => $name}));
diff -cr org/MT-3.2-ja-2/lib/MT/Util.pm MT-3.2-ja-2/lib/MT/Util.pm
*** org/MT-3.2-ja-2/lib/MT/Util.pm	2005-09-22 15:54:00.000000000 +0900
--- MT-3.2-ja-2/lib/MT/Util.pm	2005-11-22 17:37:26.610282232 +0900
***************
*** 930,939 ****
      return '' if ($url =~ /[ \"]/);
  
      # help fat-finger typists.
!     $url =~ s,http;//,http://,;
!     $url =~ s,http//,http://,;
  
!     $url = "http://$url" unless ($url =~ m,http://,);
  
      my ($scheme, $host, $path, $query, $fragment) =
          $url =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,;
--- 930,939 ----
      return '' if ($url =~ /[ \"]/);
  
      # help fat-finger typists.
!     $url =~ s,http(s?);//,http$1://,;
!     $url =~ s,http(s?)//,http$1://,;
  
!     $url = "http://$url" unless ($url =~ m,https?://,);
  
      my ($scheme, $host, $path, $query, $fragment) =
          $url =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,;

https サイトから Trackback されている場合、 mt_tbping の tbping_source_url に不正な URL が入っている場合があります。これはトラックバック一覧から修正することができます。