技術メモ」カテゴリーアーカイブ

YAMAHA ルータ NVR500 で DHCP 静的 IP を割り当てる方法

まぁ、ルータが壊れたので、急遽新調。
その際にNVR500を購入したので、その備忘録。

1.「かんたん設定」で、LANのDHCP割当IPの設定までやる。

ここでは、以下のような感じで。

  • 識別番号「1」
  • IPアドレス領域「192.168.100.2~192.168.100.253」
  • サブネットマスク「255.255.255.0」

2.「かんたん設定」でSSHで接続できるようにする。
あとSSHでログインするためには、ルータ(に組み込まれているOSへのログイン)ユーザ登録も必要になので、登録する。

3.静的IPを割り当てたい機材のMACアドレスを調べておく。
(実はこれが一番面倒。 )

4.SSHクライアント(TeraTermPro とか Poderosa とか)でルータにSSHログイン。

(1)管理者に成る。

> Administrator
(ここで管理者パスワードを聞かれるので、
「かんたん設定」で登録した管理者パスワードを入力。)
#

管理者になれたらプロンプトが「>」から「#」に変わる。

(2)静的割当するIPとMACを登録。(やっと本題)

# dhcp scope bind 1 192.168.100.6 ethernet 12:34:56:78:9a:bc
#

(3)最後は「保存」のコマンドを実行。

# save
#

これを忘れると、ルータの電源切ったり再起動した時に登録した情報がすべてパーとなる。

(4)確認するときは show config コマンドの結果の中から、dhcp だけを grep して確認。

#show config|grep dhcp
(結果がここにダラダラでてくる)
#

Drobo FS の SSH 上から MAC アドレスを調べる方法

ルータを新調したので、DHCP の IP 静的割当を設定したのだが、Drobo FS の MAC アドレス探しがちょっと面倒だったので、備忘録。

まぁ Drobo FS 本体に貼られているラベルを見れば、MAC アドレスは判るんだけども、肝心のラベルが本体底面に貼られているので、引っ繰り返さないと確認できないのが難点。

我が家の場合、ラベルを確認するためには、Drobo FS の電源を切って、Drobo FS 本体が格納されているラックから引き剥がす必要があって、これがラックの場所とかの関係で、ちょっと大変。

ちなみに、IP アドレスとかサブネットとかは Drobo Dashboard から設定するものなので、そこから確認できるものの、MACアドレスは確認できない。(まぁ所詮米国製なので、こういうツールの「痒いところに手が届かない」のは、 米国の仕様(=御国柄と同意)。)

ということで、パソコンからは少し面倒ではあるが、Drobo FS の組み込み Linux にアクセスして調べることに。
という訳で以下手順。

1. DroboAppsから「dropbear」(SSHサーバ)をインストール

2. SSHクライアント(TeraTermProとかPoderosaとか)でDroboFSにSSHログイン。

ここでSSHの接続が確立できない場合は、DroboApps の挙動がおかしい可能性がある。
その場合は、Drobo Dashboard の管理者設定の「DroboApps を有効化」を一度切ってから、再度入れ直す。
ちなみに Drobo FS 再起動しても、接続は改善できない。必ず上記操作が必要。

3. ログインできたら、以下のコマンド実行

# /sbin/ifconfig
(ここにMACアドレスなどのネットワーク情報が表示される。)
#

(パスが通ってないので、最初に/sbin付けて、絶対パスでコマンド実行。)

これで本体をひっくり返さずに、MACアドレスの確認ができる。

とはいえ、とても面倒。

Windows 7 Professional を Windows xp Profesional にダウングレードする

使用していたPCのうち1台が御役御免になったので、臨時(とはいえ向こう3年ぐらいは使いそうな)VHSテープ動画編集機として換装してみました。

生贄となったPC

4年ぐらい前に買ったドスパラのショップブランドPCです。今までのスペックは以下

  • OSなしモデル
  • ASUSのOEMマザー
  • Creron 2.6G
  • 1G DDR2メモリ
  • 80G SATA HDD
  • DVD-ROMドライブ
  • ATX電源(メーカー不明だけど、そこそこ普通の電源)
  • ショップブランドらしい、白い無骨なケース
  • Windows2000 Professional(正規品、別に用意した)

これを、当初は以下の通り、編集機として必要な換装するだけにしようかと思ってました。

  • Core2 Duo E2600(2.6G)
  • 2G DDR2メモリ
  • Windows xp Professional(Windows7 DSP 版のダウングレード権を行使。)
  • DVDドライブはインストールが終わったら外す。
    (編集機なので本当はRWドライブに換装が必要そうだけど、実際このマシンでデータを焼くことはない。別のマシンで焼く。)
  • ケース換装

そんなこんなで、とりあえず手始めにCPUとメモリを手配して換装してみた。
まぁ、換装する前からOEM版マザーボードはBIOSアップデートができない()と情報を得ていたので、もしかしたら「CPUがマザーボードに対応していないかもなぁ」と思っていましたが。

見事に的中

結局のところ、当時の BIOS が、その後に発売された CPU に対応していないことが原因。

まぁ、チップセットなどをみる限り、BIOS をアップデートすれば問題なさそうだというのが判明したのだが、そこで更に問題が。

OEM 版マザーボードの BIOS アップデートが存在しない

OEM 版の BIOS の提供はマザーボードのメーカーからの提供ではなく、本体を組成したメーカーに提供委ねられることが多い 。

やっとこさ JS ヘルパーのおよそのコツがつかめてきました

まぁ、JS ヘルパーを使うことによって、jQuery の記述を分離する必要がなくなるのは利点といえば利点。
でもそれ以上の不利もある。

  • 繰り返しロジックの中で JS ヘルパーを使うと、そのたびにスクリプトが生成されることになり、これはコードの無駄な冗長に繋がる。
  • ビューの HTML の中の PHP 記述の更に内側に javascript(jQuery)記述が割り込んでくるので、これがわかりにくい
  • ヘルパーで自動生成される javascript(jQuery)記述ががわかりにくい。

まぁ JS ヘルパーに限らず、全体的にヘルパーというのは、使用した際に最終的にどのような HTML になるかを少なからず想像しなくてはならないものなのだが、JS ヘルパーはその想像が難しい。
しかも CakePHP 御大が提供しているドキュメントがウンコで、とても判りにくい。結局、JS ヘルパーの場合、ヘルパーのコアソースを追うのが一番早かった。
あと、Ajax ヘルパー(prototype.js)のように、jQuery の経年による陳腐化した際の仕様変更や廃止も怖い。

こうなると javascript(jQuery)は、ヘルパーを使わずに普通に記述したほうがよいのかもしれない。

でも、JS ヘルパーを利用することにより、ソースコーディング量が減るもの事実。
実際 javascript(jQuery)を記述するよりも、ソースコーディングは減った。(結果的に生成される HTML は、javascript(jQuery)を記述するよりも大きいのだが。)

WordPress 日本語メッセージの対応(面倒臭い版)

正直なところ、直接、テーマのスタイルやPHPソースファイルを修正したほうが手っ取り早いです。参考書籍でさえ、そのような記述が為されているものが多いです。

でも折角なので、なるべく TwentyTen のテーマを構成しているソースの構成をベースに残したまま、メッセージを修正してみます。

ちなみに、WordPress の日本語版に同梱されている TwentyTen テーマは、日本語ローカライズに対応していて、元文書のPHPソースを修正せず、設定ファイルみたいな物を介して、該当箇所の英語メッセージを日本語に置換して表示しています。
今回はこの仕組みをそのまま利用するための修正方法です。

続きを読む

WordPress をバージョンアップするときの注意事項

テーマをカスタマイズしている場合、特に TwentyTen などWordPress のデフォルトテーマをベースに style.css などをカスタマイズしている場合は、必ずバックアップを取得する事。

バックアップせずにバージョンアップするとテンプレートも上書きされてしまいます。

まぁ、やってしまった本人が語っているので、間違いない。。。(T_T)

CSS と DOCTYPE の設定に悩まされた週末

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

いわゆる「ゆるゆるHTML」フォーマットです。
でも互換モードブラウザが表示する形になるため、ブラウザによって見栄えが大きく変わってしまう場合がある。

今後の Web デザインのブラウザ間の統一性を図るためにも、以下参考に変更する方向で。

基本は「Strict」タイプで。
ちなみに「Strict」とは「厳格な」という意味。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

おそらく、意味としては「HTML 4.01 で定義されているタグと属性以外は認めない」でよいかと思います。

そう考えると、HTML 4.01 以降に定義された新しいタグや、ブラウザで独自拡張されたタグは駄目だと思います。

例えば、Flash などのオブジェクトを動作させるための <embed> タグなどは、今となってははどのブラウザでも動くようになっていますが、HTML 4.01 定義では <object> タグを使う必要があります。

それ以外にも、HTML タグとして利用できない要素(タグ名)や属性(タグの続けて記述する付属の設定)があり、それらは CSS に記述するなどの対応が必要です。

あとフレームセットも使えません。詳しくは以下のページ参照。

ただし、この厳格に沿った場合、想定したレイアウトが実現できない場合もあります。

その場合は、適宜以下を使って緩めてく方向で。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

ちなみに XHTML の厳格宣言は以下。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

phpMyAdmin のディレクトリを移動したとき

現象

Web サーバのメンテナンスや整備で、phpMyAdmin のディレクトリを移動し、phpMyAdmin のログインからユーザ名とパスワードを入力し「実行する」をクリックした際、

エラーが出たためセッションを開始できませんでした。 PHP やウェブサーバのログファイルに出ているエラーを確認して、PHP を正しく設定してください

というエラーに出くわすことがある。

原因

phpMyAdmin のディレクトリを移動する前はログインできていたのに、移動した途端に動かなくなった場合、cookie 内に保存しているセッションが不整合を起こしている可能性があり。

config.inc.php の中に

$cfg['Servers'][$i]['auth_type'] = 'cookie';

と設定している場合は、セッションは cookie に格納されている。

対処

  • クライアントの該当する cookie を削除。
  • ブラウザを再起動。phpMyAdmin にアクセスし、再度ログイン。

ただし、これでもエラーが発生する場合や、上記の場所とは違う画面や操作でセッションのエラーが発生している場合、php.ini の設定など別の問題が考えられるので、ググって確認するべし。

VBScript では Const 定義した整数値を、そのまま変数宣言の配列数として直接はセットできない

要するに、

Dim aryHogeHoge(15)

これはできるのに、

Const ARRAY_POINT 15
Dim aryHogeHoge(ARRAY_POINT)

これができない。

Microsoft VBScript コンパイル エラー: 整数型の定数がありません。

って怒られます。

Const ARRAY_POINT 15
Dim aryHogeHoge()
ReDim aryHogeHoge(ARRAY_POINT)

とかにしなくてはいけません。
つまり「面倒くさい」という話。