Firefox で F7 キーを押すとキャレットブラウズモードのオン/オフ

これを知らずにずっとオンのまま使っていた。 キーボードでカーソル操作をどんなページでもできるようになるエディタモードがあった。 ずっとIビームが点滅しててウザイなぁと思っていたのだが、[F7]キーを誤って押してからこの状態が続いていたらしい。 Firefox 2.0 から 3.0 に上げても元に戻らず、設定はどこにあるのかと調べたところ、「about:config」の「accessibility.browsewithcaret」がそれだとわかった。 ちなみにキャレットブラウズモードはアンカーリンクのテキストを部分的にコピーしたいときなどに使えます。

2008年8月2日 · Toshimitsu Takahashi

Windows Vista で ipconfig /flushdns として DNS キャッシュをクリアしたいとき

単にコマンドプロンプトを実行しても、Windows Vista の UAC によって下記のようになってしまう。 C:\Windows\system32>ipconfig /flushdns 要求された操作には管理者特権が必要です。 スタートメニューで「コマンド プロンプト」の項目を右クリックして、コンテキストメニューの「管理者として実行」から起動する。 このプロンプトで行えばよい。 C:\Windows\system32>ipconfig /flushdns Windows IP 構成 DNS リゾルバ キャッシュは正常にフラッシュされました。

2008年8月1日 · Toshimitsu Takahashi

CentOS 5.2 に LAN 内用の DNS を bind で構築する

設定メモ。 ローカル用、特に必要がなかったので逆引きは設定していない。 yum からパッケージをインストール # yum install bind # yum install caching-nameserver # yum install bind-chroot named.conf の設定 # cd /var/named/chroot/etc # cp -p named.caching-nameserver.conf named.conf # vi named.conf 下記に変更(編集)する。(ローカルドメインは、intranet.local はとしている) // // named.caching-nameserver.conf // options { // listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named\_mem\_stats.txt"; // Those options should be used carefully because they disable port // randomization // query-source port 53; // query-source-v6 port 53; allow-query { localhost; localnets; }; allow-recursion { 127.0.0.1; 192.168.1.0/24; }; allow-transfer{ 127.0.0.1; 192.168.1.0/24; }; forwarders { 192.168.1.1; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view "internal" { match-clients { localnets; }; match-destinations { localnets; }; recursion yes; include "/etc/named.rfc1912.zones"; zone "intranet.local" IN { type master; file "intranet.local.zone"; }; }; intranet.local ゾーンの正引きファイルを作成 # cd /var/named/chroot/var/named # vi intranet.local.zone $TTL 86400 @ IN SOA intranet.local. root.intranet.local. ( 2008073002 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS intranet.local. @ IN A 192.168.1.2 host1 IN A 192.168.1.3 host2 IN A 192.168.1.4 起動およびデーモン設定 named サービスを起動。 ランレベル 2〜5 で named を走らせる。 ...

2008年7月29日 · Toshimitsu Takahashi

Mac OS X (Leopard) にテキスト型ブラウザ lynx をインストール

http://www.apple.com/downloads/macosx/unix_open_source/lynxtextwebbrowser.html からアーカイブをダウンロード。 zip 展開、マウントして開き、Lynx-2.8.7d9-10.5.1+u の install.command をダブルクリックして、インストール。 このままだと文字化けしてしまうため、下記のとおり表示文字エンコーディングを UTF-8 にする。 lynx のオプション設定 ターミナルで lynx を実行して、「O」でオプションを実行する。 Save options to disk: [X] とチェックを入れる。 Display character set に UNICODE (UTF-8)を選択する 「Accept Changes」で保存する。 以上で .lynxrc がホームディレクトリに生成されて設定する。

2008年7月27日 · Toshimitsu Takahashi

PHP での HTTP レスポンスを Transfer-Enconding: Chunked から Content-Length 指定に変えたい

レンタルサーバに制作した php のプログラムをアップしたら表示が遅い。ブラウザから見たときだけそうなり、wget すると一瞬で取得できるのです。 Firebugs で HTTPヘッダを見てみたら、Transfer-Encoding: chunked になってました。ということはそのレスポンスのストリーム終端が検出できずに Keep-Alive がタイムアウトするまで待ってしまってるのが原因のようです。それで php スクリプトの最後に flush(); とか書いてみたものの特に変化は見られずでした。 そもそもチャンクなのもどうのかなぁと思っていたら、 DoCoMo のiモードコンテンツ作成時の仕様 HTTPより http://www.nttdocomo.co.jp/service/imode/make/content/html/notice/basis/#p04 CGI作成時に「Content-Type」、「Content-Length」は必須項目となります。 とあるので、ケータイからアクセス対応も考えるとチャンクではなく Content-Length で対応しないと駄目ということです。 http://jp2.php.net/manual/ja/function.ob-get-length.php#13715 を見たところ、ズバリの答えがありました。 <? ob_start(); ?> 〜〜〜〜〜 <? $size=ob\_get\_length(); header("Content-Length: $size"); ob\_end\_flush(); ?> 世の中、php でケータイコンテンツ作られている事例は多々あると思うのですが、みなさんこのように実装されているのでしょうか。

2008年7月23日 · Toshimitsu Takahashi

Subversion リポジトリの初期セットアップをコマンドから行うメモ

ファイルシステムでのプロジェクト (project) のリポジトリを /repo/project に作成して、trunk, tags, branches を作成する。 $ sudo svnadmin create –fs-type=fsfs /repo/project $ svn mkdir file:///repo/project/trunk $ svn mkdir file:///repo/project/tags $ svn mkdir file:///repo/project/branches ※ file:/// と「/」を3つ並べる(file:// と /repo… なので)

2008年7月19日 · Toshimitsu Takahashi

PHP でのテンプレート機能に対応した簡単なメール送信クラスのサンプル

Smarty や Ethna などのアプリケーションフレームワークを使うレベルではないけど、ちょっとしたテンプレート対応させたメール送信を実装したいときのサンプル。 mb_send_mail を使っている。 sendmail.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <?php mb\_internal\_encoding("UTF-8"); /** \* テンプレートに対応したメール送信クラス */ class SendMail { protected $content; protected $lang; protected $subject; protected $options; /** \* コンストラクタ \* @access public \* @param String $tplfile テンプレートファイルのパス \* @param String $lang メール送信時の言語指定 */ public function __construct($tplfile, $lang = "ja") { $this->content = file\_get\_contents($tplfile); $this->lang = $lang; } protected function replace_options($matches) { if (array\_key\_exists($matches\[1\], $this->options)) { return $this->options\[$matches\[1\]\]; } else { return ""; } } protected function extract_subject($matches) { $this->subject = trim($matches\[1\]); return ""; } /** \* テンプレートにマップの値をセットしてメールを指定された先に送信します。 \* @access public \* @param String $to メール送信先 \* @param Array $opts テンプレートに当てはまるマップ \* @return bool 送信結果 */ public function send($to, $opts) { $this->options = $opts; // テンプレートにマップの値をセット $content = preg\_replace\_callback('/\\{\\$(\[a-z0-9\]+)\\}/', array($this, "replace_options"), $this->content); // メールのヘッダとボディを切り分ける list($headers, $body) = preg_split("/\\n\\n/", $content, 2); // ヘッダから件名を抜き取る $headers = preg\_replace\_callback('/Subject\\:(.*)/', array($this, "extract_subject"), $headers); mb_language($this->lang); $result = mb\_send\_mail($to, $this->subject, $body, $headers); $this->options = NULL; $this->subject = NULL; return $result; } } ?> テンプレートファイルの例 (mail.tpl) send_mail() の仕様により、改行コードは LF である。ヘッダと本文の間は二回連続で改行する。 ...

2008年7月14日 · Toshimitsu Takahashi

Eclipse 上で Target Management (RSE) を使って SSH / FTP / Telnet ターミナルを動かす

Eclipse 公認プロジェクトの 404 File not found を使うと、Eclipse 上から FTP したり SSH ターミナルを動かすことができるようになる。 これを入れてしまえば、リモートホストのファイルを直接、コード編集して、ターミナルから実行ということが Eclipse で全て行うことが可能なのでとても便利。 Eclipse のソフトウエアアップデートからインストールする手順は下記のとおり メニュー Help → Software Updates… を選択 [Available Software] をクリック [type filter text] テキストボックスに「RSE」と入力 表示されたプラグイン RSE ○○○○ を全て選択 [type filter text] テキストボックスに「Target Management」と入力 表示されたプラグイン Target Management ○○○○ を全て選択 [Install…] ボタンをクリックする。 後はダイアログに従ってインストール リモート接続のセットアップ パースペクティブ Remote System Explorer を開く。 メニュー File → New → Other… を選択 Remote System Explorer → Connection から SSH Only などを選択して進める。 ※上記は Eclipse 3.4 Ganymede で試しています。

2008年7月13日 · Toshimitsu Takahashi

モバイルサイト用のヘッダ出力を Ruby で書いてみた

モバイルサイト用のヘッダ出力を Python で書いてみた - Tosshi Note モバイルサイトを3キャリアでほぼ共通化して作りたい - http://d.hatena.ne.jp/tilfin/20080530/1212376626 上記のエントリで DoCoMo, au, SoftBank 用のモバイルサイトを XHTML で作成する場合のそれぞれの書き方を調べた。 その書き方に従って HTTP ヘッダと XHTML 宣言部分を出力する CGI サンプルを Python で書いてみた。 で書いたスクリプトを今度は Ruby で書いてみました。 require ‘kconv’ class UserAgent def initialize(ua) if ua.nil? @kind = 0 elsif ua.match(/^DoCoMo/) @kind = 1 elsif ua.match(/^KDDI/) @kind = 2 elsif ua.match(/^SoftBank|Vodafone|MOT/) @kind = 3 else @kind = 0 end end def is_mobile return @kind > 0 end def is_docomo return @kind == 1 end def is_au return @kind == 2 end def is_softbank return @kind == 3 end def get_content_type if @kind > 0 return “Content-Type:application/xhtml+xml; charset=Shift_JIS” else return “Content-Type:text/html; charset=UTF-8” end end def get_declare if @kind == 1 return «EOF ...

2008年7月10日 · Toshimitsu Takahashi

CSS : cursor 属性のブラウザ対応のまとめ

http://www.w3.org/TR/CSS21/ui.html#cursor-props 各ブラウザの URI指定(サポートファイル形式)対応状況 Internet Explorer 7 (Win) URI指定可能 ( .cur ○ / .png × ) ※相対パスは CSS ファイルからではなく本体 HTMLファイルからパスになるバグがある。 Internet Explorer 6 (Win) URI指定可能 ( .cur ○ / .png × ) ※相対パスは CSS ファイルからではなく本体 HTMLファイルからパスになるバグがある。 Firefox 2.0 - 3.0 (Win) URI指定可能 ( .cur ○ / .png ○ ) Firefox 2.0 - 3.0 (Mac) URI指定不可能(Bug に上がっているので対応する予定はある) Opera 9.5 (Win / Mac) URI指定不可能 ※url(〜)が含まれている定義は無視されてしまう。 Safari 3.1 (Win / Mac) URI指定可能 ( .cur ○ / .png ○ ) ...

2008年7月9日 · Toshimitsu Takahashi