技術情報 の記事一覧
マウスジェスチャで沢山のタブと付き合う
Firefoxネタが続いてすみません。
Firefoxを使っていると、ついついタブが増えますし、先のエントリで紹介した「選択範囲のリンクを新しいタブで開く」というような機能を使うと、もっとタブが増えます。タブを閉じるにはバッテンボタンをクリックするわけですが、こんなとき、マウスジェスチャを使うとバッテンボタンを押さずに済むので操作がちょっと楽になります。
![]()
http://www.xuldev.org/firegestures/
インストールするとマウスジェスチャが使えるようになります。マウスジェスチャは、ブラウザ画面で右クリックしながらマウスを動かすと緑色の線が表示され、その線の軌跡によってコマンドを実行するというものです。
デフォルトでは、マウスを「右左右」と動かすとタブが閉じます。

これでも画面の上のほうにマウスを動かさなくて済みますのでだいぶ省力化になったのですが、私はさらにカスタマイズして「下」だけでタブが閉じるように変更してみました。

タブをバンバン閉じられます(笑)
マウスジェスチャでよく使うものとしては「戻る」「進む」がありますが、そのほかにも沢山のコマンドがジェスチャで実行できますので、試してみてはいかがでしょうか。
投稿者 はるてん : 2008/04/15 | コメント (0) | トラックバック
Firefox + TabMixPlus = SNSの日記を読むのに便利
![]()
先日も紹介した TabMixPlus ですが、この拡張をインストールするとコンテキストメニューに「選択範囲のリンクを新しいタブで開く」というコマンドが追加されます。

hellototomica SNS では、マイフレンド最新日記の「もっと読む」をクリックすると日記の一覧が表示されるのですが、ひとつひとつ選択して読んでは戻り、読んでは戻り、とやっても良いのですが、大量になってくるとこの機能が俄然威力を発揮します。
読みたい範囲の日記をマウスでズズーッと選択して、右クリックして、「選択範囲のリンクを新しいタブで開く」とやると日記ひとつにつきタブがひとつ開きます。
全部のタブの内容が読み込まれるまで結構時間がかかりますので、コーヒーを飲むのもよし、ミニカーマガジンを読むのもよし、気長に待ちます。
すべてのタブが読み込まれたら一番最後のタブを表示させ、読んだらタブを閉じます。次の日記が表示されますので、読んだら閉じます。こうやっていくと、どこまで読んだのかが一目瞭然です。
私はいつもこの方法でマイフレンド最新日記を読んでいますが、全体の「最新日記」の場合にはフレンドのホームにジャンプするリンクが含まれているためタブの数が2倍になってしまい、イマイチ不便です。こちらは、SnapLink という拡張機能を使うと便利になりますが別の機会に紹介したいと思います。
投稿者 はるてん : 2008/04/15 | コメント (0) | トラックバック
MovableType リダイレクトを一気に作成する
ふと思い立って、MovableType の「公開」のページにある「エントリー」の出力フォーマットを変更しました。
変更前:%y/%m/%F/%i
変更後:%e/%i
どうして変えようと思ったかというと、%Fの自動生成がイマイチしっくりこなくて、URLに期待しない文字列が入ってしまうので、数字のみのシンプルなURLにしたかったからです。
変更して再構築したあとで、検索エンジン等に記憶されている古いURLもケアしなければならないことに気がつきました。
.htaccess に RedirectPermanent を設定することにしたのですが、200個を超えるエントリがあるので手作業でやるわけにいかず色々悩んでみたのですが、最終的に、データベースから読み込んで半自動で生成することができました。
使用したSQLは以下の通りです。
mysql> select entry_created_on, entry_basename, entry_id from mt_entry; +---------------------+--------------------------------+----------+ | entry_created_on | entry_basename | entry_id | +---------------------+--------------------------------+----------+ | 2006-08-08 15:31:46 | rss | 1 | | 2006-08-11 15:44:37 | rss_1 | 2 |
出力された結果をテキストエディタに貼り付けて、以下のような形に整形しました。
RedirectMatch /blog/2006/08/rss http://hellototomica.com/blog/000001
これを、.htaccess に貼り付けました。本当はSQL文の段階で文字列操作を行って、そのまま .htaccess に貼れる文字列を生成できれば格好良いのですが、そう何回も使うものではないので、テキストエディタで手作業しました。
投稿者 はるてん : 2008/04/10 | コメント (0) | トラックバック
Firefoxのタブ機能を拡張する TabMixPlus
![]()
Firefoxを使う上で外せない拡張として TabMixPlus というのがあります。
Tab Mix Plus :: Firefox Add-ons
https://addons.mozilla.org/ja/firefox/addon/1122
たくさんの機能があるのでここでは説明しきれないのですが、お勧めの設定としては以下の3つがあります。
![]()
「イベント」→「タブを開く」→「以下を新しいタブに読み込む」
ブックマーク、ブックマークグループ、履歴、ロケーションバー、検索バーのすべてにチェックを入れています。ついでに、Googleツールバーの設定で「新しいタブに開く」をセットしておきます。
![]()
「表示」→「タブ」→「タブ幅」
私は「150から150ピクセル」に設定しています。幅はもうちょっと広くても良いかもしれませんが、タブの幅が変わらないというのが肝心です。タブの個数によってタブの位置が変わってしまったりすることがなくなります。
![]()
「メニュー」→「ページのコンテキストメニュー」→「ページのコンテキストメニューに表示する項目」
「選択範囲のリンクを新しいタブで開く」←これが非常に便利です。OpenPNEのSNSなどで沢山の未読が溜まっているとき、読みたい範囲をザッと選択するだけで新しいタブに開きます。沢山開くと時間がかかりますが、その間はコーヒーでも飲みに行って、あとでゆっくり読みましょう。読んだ記事はその都度タブを閉じていくと未読の処理もはかどります。
「選択範囲のリンクを新しいタブで開く」については、この機能を拡張するプラグイン「Snap Links」というのがあります。
投稿者 はるてん : 2008/03/04 | コメント (0) | トラックバック
Firefox拡張の「Internote」が便利です
表示しているウェブページに付箋紙を貼り付ける拡張です。付箋紙はウェブページに対して貼り付けられるので、ページをスクロールさせると付箋紙も一緒に上下します。付箋紙はURLに対して関連付けられるので、再度同じページを訪れると付箋紙が復活します。
![]()
この、“再度同じページを訪れると付箋紙が復活する”というのが、非常に便利です。そのサイトを閲覧したときに気づいたことなどを書き込んでおけば、同じページにアクセスすると自動的に表示されるので忘れる心配がありません。パスワードを書いておくのはあまりお勧めできませんが…
![]()
Internote Manager の画面から作成済みの付箋を管理することができます。文面を変更したり色を変えたりすることができます。
注意点として、Internote はアドレスバーに表示されているURLに対して関連付けが行われますので、hellototomica.com のようにフレームを使用しているサイトだと、フレームの内側のページが切り替わっても付箋紙は切り替わらないという状態になってしまいます。
投稿者 はるてん : 2008/02/25 | コメント (0) | トラックバック
php3 → php にリダイレクト
当サイトの記事データベースシステムは、当初はPHP3を使っていたので拡張子がphp3だったのですが、数年前にPHP4に移行したときに拡張子がphpに変わったためファイル名が変更になりました。
サイト内のリンクについてはファイル名の変更を徹底すれば問題はないのですが、外部サイトからのリンクが切れてしまうという状態になっていました。(これに気が付くまでだいぶかかってしまったわけですが)
たとえば、「教えてgoo」の中のトミカに関する質問の回答の中に、当サイトの記事へのリンクが含まれているのですが、クリックするとページが見つからないというエラーメッセージが表示されていました。
File does not exist: …(中略)…/article.php3, referer: http://oshiete1.goo.ne.jp/qa1026365.html
修正する範囲をなるべく少なく済ませるために、.htaccess に RedirectMatch を下記のように設定しました。
RedirectMatch \/article\.php3(.*) /article.php$1
カッコの中に該当した文字列が、$1 に反映されますので article.php3 に渡された引数をそのまま article.php に渡すことになります。
これで、記事へのリンクをクリックしてもエラーメッセージが表示されるようなことはなくなりました。
投稿者 はるてん : 2008/02/21 | コメント (0) | トラックバック
SNS 招待依頼フォーム
hellototomica SNS への招待状をご希望の方は、以下のフォームに必要事項を記入し「申し込み」ボタンをクリックしてください。自動応答メールが送られてきますので、その中にあるURLをクリックすると管理者に依頼通知が送信されます。
ドメイン指定や着信拒否設定をご利用の方は、hellototomica.com からのメールを受け取れるように設定をお願いします。
このページから入力できない方は:
招待依頼フォーム
申し込みを受け付けますと機械的に確認のメールをお送りします。このメールが受信できない場合はメール受信が拒否されている可能性がありますので、設定の見直しをお願いします。
投稿者 はるてん : 2008/01/15 | コメント (0) | トラックバック
OpenPNEで画像がアップロードできない現象を解決
「hellototomica SNS」では、OpenPNE というソフトを利用してSNSサービスを提供しているのですが、ユーザーさんより画像がアップロードできないという連絡をいただいていて、調査していました。
現象は、日記やメッセージを書くときに画像を添付すると、「確認画面」をクリックした後、真っ白な画面が表示されてしまって次に進めないというものです。
access_log, error_log, $OpenPNE/var/log/php_errors.log, /var/log/messages.log などのログファイルを見ても、それらしい情報は残されていませんでした。
OpenPNEでアップロードできる画像ファイルは、JPG、GIF、PNGで、ファイルサイズは(デフォルトでは)300KB以内となっています。アップロードできない画像ファイルはPNG形式、114KBなのでこの制約はクリアしています。
何種類か画像ファイルを作成して調べてみたところ、画像ファイルによって画面が真っ白になってしまったり、何の問題も無く次に進めたりするようです。ダメな画像ファイルは何回やってもダメなのですが、正常に処理ができるファイルとの違いが分からず、別の方面から調べることにしました。
最初にこの現象を確認したときの画像ファイルがPNG形式だったので、PNG形式がダメなのかもしれないと思ったのですが、JPG形式のファイルでも発生することがあり、ファイル形式とは関係ありませんでした。
画面キャプチャの画像ファイルで真っ白になる現象が発生したので、画像ファイルを作ったソフトが原因かもしれないと思ってグラフィックソフトを何種類か試したのですが、関係ありませんでした。
最後の手段としてOpenPNEのソースファイルに手を入れてデバッグメッセージを表示させるようにしたのですが、うまく表示させることができず断念しました。
それで、結論から言うとPHPの画像処理関数がメモリ不足で異常終了していたことが原因のようです。下記のページに書かれていた情報を参考に、php.ini の memory_limit を 8M から 12M に変更したところ、画像のアップロードができるようになりました。
[wordpress]画像のアップロードができない(解決) - メモ帳であり備忘録でありブログであり・・・
http://kohizuka.ddo.jp/blog/2006/06/07/132/
php.ini は以下のように変更します。変更した後は、Apacheの再起動(apachectl restart)が必要です。
memory_limit = 12M ; Maximum amount of memory a script may consume (8MB)
投稿者 はるてん : 2007/12/17 | コメント (0) | トラックバック
CentOS5.0でsystem-config-netbootを使う
CentOS5.0のサーバでPXEによるネットワークブートを提供するために環境設定をしていたのですが、普通にインストールしただけではsystem-config-netbootが入りませんでした。
下記のサイトにCentOS4.5用のsystem-config-netbootが使えるという情報があったのでCentOS4.5用のパッケージをダウンロードし、インストールしたところ無事に使えるようになりました。
http://bugs.centos.org/view.php?id=2304
ftp://ftp.riken.jp/Linux/centos/4.5/os/i386/CentOS/RPMS/system-config-netboot-0.1.40-1_EL4.i386.rpm
投稿者 はるてん : 2007/10/29 | コメント (0) | トラックバック
スタイルシートをリアルタイム編集するFirefoxプラグイン
私は普段、ブラウザとしてFirefoxを使用しています。サイトを見るときに便利な機能もたくさんありますが、特にサイトを製作する側として便利な機能が多いのも魅力だと思います。そんな中、Firefoxの便利なプラグインをひとつ紹介したいと思います。
Mozilla Re-Mix: サイトをプレビューしながらサイドバーでスタイルシートを編集できる「EditCSS」
http://mozilla-remix.seesaa.net/article/57764011.html
スタイルシート(CSS)を修正したり調整したりするときは、ちょっと数値を変えてはアップロードしてリロード、あるいは、数値を変えては「保存と再構築」を行ってリロードというやり方でした。でもこれは非常に面倒だし、他人が作ったスタイルシートの場合は特に、どこを変えると何がどう変わるのかわかりにくいという問題点がありました。
その点、このプラグインを使うと、スタイルシートの変更結果をリアルタイムに確認できるので非常に便利になり、ストレスも軽減されます。
右クリックメニューから「EditCSS」を起動すると、現在表示中のウェブページのスタイルシートが、左側のサイドバーに表示されます。(私は普段サイドバーは非表示にしているので OutSidebar が便利です)。
おもむろにスタイルシートを変更すると右側に表示されているページのデザインがリアルタイムに変わります。

たとえば、font-weight: normal のところを、font-weight: bold に書き換えてみます。

すぐにフォントが太字(bold)になり、修正結果を確認できます。
EditCSSで編集した内容はどこにも保存されませんので、こころおきなくスタイルシートをいじり倒してから、最終版のスタイルシートをコピー&ペーストして保存します。
投稿者 はるてん : 2007/10/15 | コメント (0) | トラックバック
Firebirdのシステムテーブル一覧
select rdb$relation_name from rdb$relations where rdb$system_flag = 1;
RDB$SYSTEM_FLAG = 1 のレコードを検索すると、システムテーブル名の一覧を取得できます。
RDB$RELATION_NAME
======================================================
RDB$PAGES
RDB$DATABASE
RDB$FIELDS
RDB$INDEX_SEGMENTS
RDB$INDICES
RDB$RELATION_FIELDS
RDB$RELATIONS
RDB$VIEW_RELATIONS
RDB$FORMATS
RDB$SECURITY_CLASSES
RDB$FILES
RDB$TYPES
RDB$TRIGGERS
RDB$DEPENDENCIES
RDB$FUNCTIONS
RDB$FUNCTION_ARGUMENTS
RDB$FILTERS
RDB$TRIGGER_MESSAGES
RDB$USER_PRIVILEGES
RDB$TRANSACTIONS
RDB$GENERATORS
RDB$FIELD_DIMENSIONS
RDB$RELATION_CONSTRAINTS
RDB$REF_CONSTRAINTS
RDB$CHECK_CONSTRAINTS
RDB$LOG_FILES
RDB$PROCEDURES
RDB$PROCEDURE_PARAMETERS
RDB$CHARACTER_SETS
RDB$COLLATIONS
RDB$EXCEPTIONS
RDB$ROLES
RDB$BACKUP_HISTORY
投稿者 はるてん : 2007/10/15 | コメント (0) | トラックバック
Firebirdでテーブル一覧を取得するSQL
select rdb$relation_name from rdb$relations where rdb$system_flag = 0 and rdb$view_blr is null
テーブルの情報は、システムテーブル RDB$RELATIONS に格納されています。テーブル名は RDB$RELATION_NAME に格納されています。
システムテーブルの場合は RDB$SYSTEM_FLAG = 1 になり、システムテーブルでない普通のテーブルの場合は RDB$SYSTEM_FLAG = 0 になっています。
最後に指定している RDB$VIEW_BLR は、テーブルのとき null、ビューのときは null 以外になっています。
投稿者 はるてん : 2007/10/15 | コメント (0) | トラックバック
OpenPNE:Smartyのエラー
ふと、SNSのコミュニティの画面を見ていたらページ最上部にエラーメッセージが表示されていることに気がつきました。エラーメッセージの内容は以下の通り。
Warning: Smarty error: ext_include: tpl file not found. in /www/.../lib/include/Smarty/Smarty.class.php on line 1095
SNS/webapp/modules/pc/templates/c_home.tpl を調べてみると、2.8.4 にバージョンアップしたときに(その途中のどれかで)インクルードするファイルが増えた模様。
({ext_include file="inc_c_com_topic_find.tpl"})
それで、inc_c_com_topic_find.tpl の格納場所を調べてみると
SNS/modules/pc/templates/inc_c_com_topic_find.tpl
SNSのトップディレクトリに modules なんてあったかなあ?入念に調べてみると、正しくは webapp の中に modules がないといけないみたいで、つまり、バージョンアップのときのパッチを当てるときに間違ったディレクトリで行ってしまったということのよう。
正しくは SNS/webapp の中で実行すべきところを、SNS で実行してしまった、と。
あのときは 2.8.1 から、 2.8.2、2.8.3、2.8.4 と続けてバージョンアップ(パッチ当て)を行ったんですが、もしかすると、バージョンによって実行ディレクトリが違っていたのかも。むむー。
追いかけきれないので、SNS/modules を SNS/webapp/modules に cp -r してしまいました。動作確認をしたところ、とりあえずOKのようです。modules 以外にも変な場所に入ってしまったファイルがあると困るけど…
OpenPNEのパッチ当ては、ドキュメントも少ないし、なかなか難しいですね。
投稿者 はるてん : 2007/10/12 | コメント (0) | トラックバック
OpenPNEを2.8.4にバージョンアップ
hellototomica SNS では、OpenPNE の2.8系を使用しているのですが、別件のトラブル解決のために 2.8.4 へのバージョンアップを行いました。バージョンアップに関する情報は以下のページで確認できます。
ChangeLog - OpenPNE - Trac
http://trac.openpne.jp/wiki/ChangeLog
修正内容には、問題となっていた現象の解決につながると思われるものはありませんでしたが、念のためバージョンアップを行うことにしました。
バージョンアップ前は 2.8.1 ですので、1個ずつ順番にパッチを当てていくことになります。
OpenPNE_2_8_1_to_2_8_2.patch
OpenPNE_2_8_2_to_OpenPNE_2_8_3.patch
OpenPNE_2_8_3_to_OpenPNE_2_8_4.patch
※別のエントリでも書きましたが、この中のどれかは SNS/webapp 内で実行しないとファイルの配置が正しくない状態になってしまうと思います。ファイルの中身を開いて確認する必要があるかもしれません。
パッチを当てるには以下のコマンドを実行します。
# patch -p1 < OpenPNE_2_8_1_to_2_8_2.path
私が実行したときは、「File to patch:」と表示され、なぜかパッチを当てるファイル名を聞いてきました。実行しているディレクトリが違うときに表示されるようなのですが、パッチファイルの中で指定されているパス名が webapp/ で始まっているので、webapp が見えるところ(SNSのトップディレクトリ)で実行することにし、File to path: には上で表示されているパス名をコピーして実行することにしました。
とりあえずパッチは全て摘要できたのですが、modules ディレクトリがSNSのトップディレクトリ直下に出来てしまい、一部のファイルが not found になってしまったので、modules ディレクトリを、webapp の中に移動して完了となりました。
投稿者 はるてん : 2007/10/11 | コメント (0) | トラックバック














