GUiLZ.ORG

GUiLZ Project Personal & Experimental Blog

■ [ネット] BaserCMS colorbox が動かなかった問題に対処してみた

今回も BaserCMS ネタ。ほぼ全ての修正作業も終わったので、テストしてみようといろいろ更新したりしていたら、colorbox がうまく動かないことが判明。悩んだ結果、動作するようになったのでメモ。

 

■ 問題など

環境によるのかもしれないけど、BaserCMS 1.6.9.1 にて、Baser標準タグを入れているにもかかわらず、画像のポップアップが行われなかった。

 

■ 解決策

colorbox のサンプルを見れば一目瞭然だったが、以下のようなコードをレイアウトファイルに追加することで解決。


 

単純にBaser標準タグで jquery.colorbox-min.js だけを呼んでも、そりゃ動くわけないよね。他のライブラリも同じようなものなんだし。つい、BaserCMS の FAQ を見て、それだけで大丈夫だと勘違いしちゃったんだ・・・。

ということで、問題に対処と言うよりは、単なる自分の無知ぶりを晒しただけだったとさ。まあいいか、このブログの名前は「恥=下記」なんだし。

 

■ [ネット] PivotX ハッキングによる改ざん点まとめ

現在も事態は進行中のため詳細には触れられないが、取り急ぎサイトの全データを取得できたため、簡単に解析した結果について書いておく。同様の被害に遭われた方の復旧の参考になれば。(ただし、全ての改ざんされたサイトで同様の手口だったかどうかは定かでありません。下記ハッキングチームであれば似たような手法を採るものと思われますが、あくまで参考にとどめ、必ず詳細な解析を行ってください)

 

■ 改ざんしたハッキングチーム

画像ならびにタイトル等に、Hacked By BoZKuRT という名称が見られ、かつ画像にはトルコ国旗があることから、トルコのハッキングチームによる可能性が高い。また、ログ解析結果を聞いたところによると、改ざんされたと思われる日時にトルコから複数のアクセスがあったとのこと。

 

■ 改ざん点

以下全て、PivotX の管理画面より

・サイト管理?設定

サイト名

サイトホームページ

サイト名が Hacked By BoZKuRT に変更されていた。サイトホームページは、次に記載する改変されたページがテンプレートとして指定され、表示されるようになっていた。(トップページとして表示されるようになっていた)

・エントリとページ 画面の、先頭カテゴリのインデックスページ

該当ページのテンプレートが

pivotx/templates/index.html

(不正にアップロードされたファイル)

を呼ぶように改変されていた。

ページ内容自体に変更はなかったが、タイトルが Hacked By BoZKuRT に変更されていた。

pivotx/templates/index.html は以下の通り

[html]
<HTML><HEAD><TITLE>||| Hacked By BoZKuRT|||</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-9">
<META content="MSHTML 6.00.6001.18294" name=GENERATOR></HEAD>
<BODY bgColor=#000000 onload=teclear();>
<embed src="http://www.fileden.com/files/2011/1/28/3068886/023_Hucum_Marsi.mp3" height="0"
type="audio/x-ms-wma"> </embed>
<center>

<img border="0" src="http://img.webme.com/pic/b/byarsslan/hackked.jpg" >

</center>
</body>
</html>
[/html]

!注意!

上記リンク先のファイルに、何らかのマルウェアがないとも限りません! アクセスする際には細心の注意を払ってください!!

 

以上の改変により、トップページにアクセスすると、上記 index.html の内容が表示されるようになっていた。

また、このほかに不正なファイル等が混入していないか確認してみたが、現時点では確認できていない。

 

■ 今回突かれた脆弱性

海外では 2011/02/18、日本では 2011/02/21 に公表された、パスワードに関する脆弱性の可能性が高い。

http://jvn.jp/cert/JVNVU175068/

理由として、スーパーユーザーと推測されるIDのパスワードが変更され、ログインできなくなっていた。かつ、推測されにくいスーパーユーザーのIDは問題なくログインできたことから、この脆弱性が最有力と思われる。

! この他にもXSSなどいくつかの脆弱性が存在しますので、PivotXユーザーの方は、至急 2.2.5 へのアップデートを検討してください !

 

■ 復旧方法などのリソース

・ PivotX 開発者による復旧手順等

http://forum.pivotx.net/viewtopic.php?f=2&t=1967

・ 改ざんの被害を受けたユーザーによる情報

http://forum.pivotx.net/viewtopic.php?f=2&t=1958

http://forum.pivotx.net/viewtopic.php?f=2&t=1949

・ パスワードリセットの方法

http://ufuso.dip.jp/faq/?paged=7

■ このような攻撃への対応策

今回の攻撃は脆弱性の公表前に攻撃が行われる、いわゆるゼロデイ攻撃であり、セキュリティ情報に網を張っていても防ぐことは簡単ではないと考えられる。

しかしながら、それでも常に迅速なCMSのバージョンアップを行っていれば防ぐことができた可能性もあり(とはいえ、脆弱性対応がされた PivotX 2.2.4 公開後、攻撃を受けるまでの猶予は1週間もなく、かつ 2.2.4 公開のリリースは公式サイトで流されさえしなかったのだが)、迅速なパッチ当てが重要という、セキュリティの常道を守る大切さを身にしみて学習できた。

よく使われるIDの使用も考え直した方がいい。確かに役割が分かりやすいが、ブルートフォースアタック対策にもなるため、スーパーユーザーに類するアカウント名は推測されづらいものに変えようと思う。

そして、CMSの開発チームや開発元に対する精査も今後はより重要となっていくだろう。今回のように重要な脆弱性対応であるにも関わらず、リリース情報すら流していない PivotX 開発チームは、個人的には信頼できない(開発チームは、今回の件を大事にしたくなかったという声もある)。そのようにリスキーと考えられるCMSは、いかに魅力的であろうとも利用する前によくよくの検討が必要だろう。

またWAFの導入など、今回のような脆弱性には対応できないとしても、事前にできる限り大きく網をかけておく事も大切だ。今回はサーバー側の事情でそれが許されなかったが、今後のサーバー契約の際にはWAFを重要な設備として検討したい。

 

■ 最後に

下記サイトによると、未だトルコより日本を狙った攻撃が観測されているとのこと。

http://blog.abacustech.co.jp/blogx/entry/70

トルコは親日国だと思っていたが、私自身考えが変わった。トルコに限らず、親日・反日などと国単位で考えても意味がない(まあ当然の話だが)。自分以外の全ては敵なのだというくらいでなければ、自分自身のサイトは守れない。

とりあえず自分が運営しているサイトは、中国・韓国・台湾に加えて、トルコのIPアドレス帯もiptablesで全拒否にしておきます。

そして、今年のクリスマスは七面鳥を食べまくるよ! ターキー死ぬほど食うよ!!

 

■ [ネット] BaserCMS についての小ネタ

激しく間が空いたけれども、今回はBaserCMSネタを。Twitterでも書いたけれど、PivotXで作ってたサイトがハクられてしまったので、もうPivotXは使いたくない、というクライアントや私の個人的心情を踏まえ、BaserCMSに乗り換えるための作業を行っていた。

デザインや機能自体は、PivotXで実現していたものとほぼ同じものが2日(実質1日半くらい) でできたのだけど、若干デフォルトのテンプレートやコードを使うだけではうまくいかなかった点を備忘録としてメモしておく。

 

■ カテゴリーごとにバナー画像を自動で貼りたい

単純に、各カテゴリーごとに表示させるバナー画像を変えるためのテクニック。たかだかそれだけのためにレイアウトファイルを複数作るのも無駄だし、現在のBaserCMSでページごとに特定のレイアウトを適用する為には、ソース表示をして

layout = 'layout_file' ?>

のようにコードを埋め込む必要があるため、詳しい人ならまだしも、あまり詳しくない人がこの作業を新規ページ作成の度に行うのも難しいだろうということで、以下のようなコードをlayouts/default.ctpに書いた。

ページカテゴリ名をcategory、ページカテゴリタイトルをカテゴリーとした場合。

getContentsName().'.jpg'; $category = $page->getCategory(); $catname = $category['title'].'バナー'; echo $html->image("$bannerimg", array('alt'=> "$catname", 'width'=> "700", 'height'=> "150")); ?>

書き出されるコードはこんな感じ。

カテゴリーバナー

注意点としては、ページカテゴリ名が英文字の場合、先頭文字が大文字になるため、imgにアップする画像名も先頭文字を大文字にしなければいけない事くらいかな。画像以外にも、カテゴリをトリガーとして、何か変化を付けたい場合には応用できるかも。

 

■ カテゴリごとのローカルナビゲーションにアクティブ表示をしたい

自分がいるページを示すために、ローカルナビゲーションにid等を割り振ってCSSで表示を変えるというのはよく行われているけど、デフォルトのローカルナビゲーション用コードでは、アクティブ表示ができないようだったので、coreから以下のファイルを持ってきて書き換えてみた。

・ elements/submenus/local_navi.ctp を、自分のテーマのelementsにコピーして編集

getCategory();
?>

element('page_list',array('categoryId'=>$pageCategory['id'])) ?>

単純に<h2>が要らなかったので消しただけ。コメント部分は省略。

・elements/page_list.ctp を、自分のテーマのelementsにコピーして編集

getPageList($categoryId);
?>
    getContentsTitle(); if(!empty($pages)){ foreach($pages as $key => $page){ $no = sprintf('%02d',$key+1); if($curcheck == $page['title']){ $class = ' class="current"'; }else{ $class = ' class="page'.$no.'"'; } if($this->base == '/index.php' && $page['url'] == '/'){ echo ''.str_replace('/index.php','',$baser->getLink($page['title'],$page['url'])).''; }else{ echo ''.$baser->getLink($page['title'],$page['url']).''; } } } ?>

このコードで、ページのタイトルが一致したら、該当の<li>にclass=”current”が付き、それ以外にはpageXX(XXは連番) がクラスとして割り当てられる。idでもいいんだけど、元々がクラスだったので合わせてみた。(本当は番号のクラスも要らないけど、何かに使うかもということで、その部分のコードは元のまま残してある。要らなければelse以下を削れば桶)

レイアウトファイルからの呼び出しは、以下のようにする。

element('local_navi') ?>

書き出されるコードは、こんな感じ


これでカテゴリさえきちんと作っていれば、アクティブ表示も可能となる。

以上の事以外は、特に難しいことをしなくてもパンくずリストも出せるし、かなりテーマのカスタマイズはやりやすかった。ただ、惜しむらくはIEで重いことかな・・・。何故か今回作った、カテゴリごとに画像を読ませるところで、画像表示が遅い。テーマの作りやすさや柔軟さ、各種機能と使い勝手は素晴らしいので、今後の改善に期待しています。

■ 2011/02/28 追記(IE6への対応)

CSSの書き方にもよるのだろうけど、IE6ではクラスではなくIDでアクティブとなる要素を指定しないとうまく動作しなかった。よって、elements/page_list.ctp を以下のように再度編集した。

・elements/page_list.ctp

getPageList($categoryId);
?>
    getContentsTitle(); if(!empty($pages)){ foreach($pages as $key => $page){ $no = sprintf('%02d',$key+1); if($curcheck == $page['title']){ $class = ' id="current"'; }else{ $class = ''; } if($this->base == '/index.php' && $page['url'] == '/'){ echo ''.str_replace('/index.php','',$baser->getLink($page['title'],$page['url'])).''; }else{ echo ''.$baser->getLink($page['title'],$page['url']).''; } } } ?>

先のコードではアクティブ要素以外に出力されていた連番要素も排除した。このコードでは以下のように出力される。


IE6以外のブラウザ(IE7、IE8、Chrome、Firefox、Opera、Safari) では、IDでなくクラスで正常動作した。

今時IE6への対応なんて必須じゃなくなりつつあるけど、それでも対応せざるを得ない場合があるので追記。ほんと、もう、やりたくないんだけどね・・・。

■ [PC] 会社のUPSバッテリーをSuper Nattoに入れ替えてみた そのに

体調崩して寝込んでたりしたせいで、遅くなりましたが続きー。通称「超納豆(勝手に命名)」こと Super Natto の中身とかをご紹介。

 

■ 土日を挟んだけれど、金曜発注で月曜に到着したバッテリー

大きさの比較になる物を入れておけば良かったけど、写し忘れたので残念な感じに。梱包自体はちゃんとしてて問題ない感じでした。

SuperNatto 開封後の様子 01

SuperNatto 開封後の様子 01


SuperNatto 開封後の様子 02

SuperNatto 開封後の様子 02

■ Super Natto 外観

一見問題はなかったのですが・・・。

SuperNatto 本体

SuperNatto 本体

この白いの何!? まさか白いクスリ バッテリーの硫酸が外のケースに付着して結晶化してる!? シールド型なのにそんなことあるの!? とか考えて若干不安に。恐くて触りたくなかったので捕まりたくないし とりあえず見なかったことにする。

SuperNatto 端子部

SuperNatto 端子部

■ コネクタとかヒューズの入れ替え

元々のバッテリー(コネクタ・ヒューズ保護カバーを外した状態) の写真。こいつを・・・

APC SmartUPS 1500 バッテリー

APC SmartUPS 1500 バッテリー

互換バッテリーに移し替える。何度もやってる作業なので、特に迷うこともなく。互換バッテリーにしては端子のサイズや位置がベストフィットで、ほぼ純正同様の仕上がり。

他の互換バッテリーだと、端子サイズや位置が微妙に違ったりして、取り付けに工夫が要ることもあるので、取り付けやすくて良かった。あくまでうちのUPSでは、という話で、場合によっては違うこともあるかもですが。

SuperNatto と入れ替えた

SuperNatto と入れ替えた

で、本来ならバッテリー同士を両面テープでくっつけてやるんだけど、あいにく会社には転がってなかったので、クリアーテープでぐるぐる巻きに。そうそう燃えたりはしないと思うので大丈夫だろうという感じで。

SuperNatto 2個のバッテリーをクリアテープで固定

SuperNatto 2個のバッテリーをクリアテープで固定

■ 動作テスト

バッテリーを繋いでテストボタンを押し、テスト完了した結果。バッテリー容量ランプが一つ消灯してる(繋いでテストする前はフル点灯)。

SuperNatto SmartUPS 取り付け直後

SuperNatto SmartUPS 取り付け直後

ただ、しばらく置いておくとすぐにフル点灯に回復したので、問題はない様子。

SuperNatto SmartUPS 充電完了

SuperNatto SmartUPS 充電完了

■ 使用感とか

1週間程度テストで付けていますが、特に発熱したり火を噴いたりはしてません(当たり前だ)。バッテリー負荷テストなどはしていないので、実際のバッテリーの持ちなどはまだ未知数ですが、この価格で純正品と同じくらいの寿命があれば、とてもお得なのではないかと。

Super Natto を購入してから知りましたが、otto さんも互換バッテリーを今年頭から発売してるようなので、信頼性を求めるならこちらも選択肢になるかもしれませんね。(コネクタなんかも付いてて楽だし)

KSG KBC7L(SU1500J,1400J用交換バッテリー)

http://www.ottonet.co.jp/products/detail/36339

ただ、生産国なんかは不明ですので、日本製最高! な方には、天翔電源製作所さんの新神戸電機バッテリーがいいかもですね。価格は一番高くなりますが(といっても、安いモデルのHF12-12 2本組だと価格は otto さんと変わらないですけど)。

HF12-12 【2本セット】

http://tensho-dengen.com/hf12-12.html

LHM15-12 【2本セット】

http://tensho-dengen.com/lhm15-12.html

最後に、当たり前ですが互換バッテリーを使用するかどうかは、ご自身の責任において判断してください。

互換バッテリーを利用した事による、機械の故障や発火による火災等が起こったとしても、私は一切責任を取りかねますのであしからず。純正品以外の利用は At your own risk でね☆

 

■ [PC] 会社のUPSバッテリーをSuper Nattoに入れ替えてみた そのいち

本来なら、特に企業ユースだとUPSバッテリーは純正品一択だろ常考とは私も思うのですが、このご時世、上からのコスト削減圧力にはなかなか耐えがたく、またシステム予算など雀の涙というか、下手なサラリーマンパパのお小遣いくらいしかない(マジで) 我が社としては、互換バッテリーは大変ありがたい存在。(リスキーですが)

ということで、今回、APC SmartUPS 1500のバッテリーを、Super Nattoのバッテリーに入れ替えてみた顛末とか。

■ Super Nattoの特徴

当然ですがコストが安い。送料抜き 13,460 で、SmartUPS 1500のバッテリー交換が可能。現在5000円以上購入で、送料無料キャンペーンをやっているのでさらにお得(うちの会社はキャンペーン開始前日あたりに買いました・・・orz)。

ただしこの値段なので、中身は中国産。とはいえ、販売店のバッテリーストア.com には実店舗もあって、サポートは良さそうだったので、その点を加味して購入。

■ LONG の互換バッテリーも値段は大差ないけど・・・

秋月電子で売られている、台湾製の LONG バッテリーと値段的に大差はないので、どちらを選ぶべきか悩むところですが、自宅の SmartUPS 1400 3台で、LONG をいくつか試した感じだと、

・LONG WP22-12

そこそこ持った個体がいくつか、UPSを巻き込んで加熱し、危険な状態になったヤツがひとつ。加熱したUPSは恐かったので捨てた。さすがに中のバッテリーから異臭まではしなかったが、UPSは素手で持てないくらい加熱したので、文字通り窓から急いで投げ捨てた(AA略)。田舎の実家暮らしで良かった&当時ヒッキー兼ニートで良かったと思った瞬間。それ以来UPSの温度は毎日チェックするクセがついた(余談)。

・LONG WP20-12E

1年ちょっとでバッテリー寿命アラートがUPSから出た。加熱されるより100倍マシとはいえ、全然ロングライフじゃなかった。送料抜きで 16,000 払っただけに、懐がショックだった。

という実体験から、会社で使うのはちょっとなーという個人的な思惑がありまして・・・。

■ 国産の互換バッテリーはどうか

天翔電源製作所さんが取り扱っていて比較的有名な、新神戸電機のバッテリーは国産。実際に会社の SmartUPS 750 などですでに1年弱利用しており、全く問題もないことから、それでもいいかなーと思っていたのだけれど、支払い方法にカードが選べないので、経理とのやりとりが個人的に手間というのもあって(支払いサイトとか、面倒な問題が多いんですよ・・・)、カード払いが選べるバッテリーストア.com を選択。

コストは確かに若干高いものの、国産という安心感・信頼性を求めるなら、国産の互換バッテリーが個人的には最善かなと(純正品が一番安全だろというのはさておいて)。

と、ここまでで結構な分量になったので、続きは後日。バッテリー到着までの話とか(Twitter では書いたけど)、入れ替えの写真なんかとともにお送りしたいと思います。(予定)

■ [ネット] Serversman@VPS でトラブった話

今回、twitter 経由でアドバイスをいただき、解決したお話の顛末でも一応。

■ Serversman に繋がらなくなったところから話は始まる

DTI が運営している Serversman@VPS は、VPSのデータ領域に WebDAV を使ってアクセスしたり、iPhone のアプリからダイレクトに写真のアップロードができたり、その上安いといういい感じなサービスなのだが、突然サービスと、Serversman のコントロールパネル両方に繋がらなくなった。

■ 原因は yum からのソフトウェアアップデート

数日したら直るかと放置していてもダメだったので、twitter 経由で DTI にメッセージを送ると、他のユーザーの方からアドバイスをいただけた。それによると、yum でソフトウェアアップデートを行うと、httpd.conf が置き換えられてしまい、その中の Script Alias がコメントアウトされてしまうのが原因とのこと。

yum でアップデートした記憶はないのに、変だなと思って調べると、コントロールパネルの BlueOnyx に自動アップデートが設定されていたようで、06月08日に自動アップデートがかかっていた模様。このせいで httpd.conf が置き換えられてしまったようだ。

■ httpd.conf の Script Alias を修正するだけではダメ

早速 SSH でログインし、Script Alias だけ有効化したところ、今度は「CGIWrap Error: Server UserID Mismatch」と出てアクセスできない。どうやら、元々のファイルはいくつかの項目が書き換えられていた模様。

/etc/httpd/conf ディレクトリを調べると、httpd.conf.1 という、06月08日に作られたファイルが見つかったため、これがバックアップファイルだろうと考えて、手っ取り早く書き戻す。そうすると、無事 ServersMan に接続できるようになった。

ただ、BlueOnyx から設定したバーチャルホスト設定もクリアされていたため(06月08日以前にバーチャルホスト設定してたんだけどなあ・・・)、そちらを元の httpd.conf から復活させて終了。BlueOnyx だと、ちゃんと別ファイルにまとめてバーチャルホスト設定を保存してくれてたので、復活も至極簡単だった。

■ まとめ

yum アップデートでも、設定ファイルは上書きされることもあるということを経験できたので、勉強にはなりました。(自分の経験だと、だいたい元ファイルはそのまま残されて、org みたいな名前で、デフォルトの設定ファイルが作られるってパターンが多かった気がしますが)

yum のようなツールは便利ですが、こういった落とし穴もあるのだなあと、今後はもっと注意したいと思います。だからといって、もう Slackware には戻れないので、多分 yum のようなアップデータを使い続けるのでしょうがw。

■ [オーディオ] HUD-mx1 の適当レビュー

Twitter はじめてから、ブログ投稿がますます疎かになってる今日この頃ですが、いろいろネタも溜め込んでいたりするので、少しずつ放出。ひとまず、数日前に買った HUD-mx1 についてでも書いてみる。

■ これまでの環境

MSI P35 Platinum から S/PDIF 出力で、ONKYO SA-907FX に繋ぎ、それをONKYO D-HD1 から出すという環境。まあアンプもそんなに高くなく、スピーカーは1万ちょいでたたき売られてた物なので(以前使ってたのも KENWOOD LS-K703 と、似たような価格帯だし)、環境としてはたいしたオーディオ環境ではない。

今回はこれを、HUD-mx1 から S/PDIF で、SA-907FX に繋ぐように変更しただけ。(いわゆる DDC としての利用)

■ オンボードと大差ないかと思ったけど、全然違った

S/PDIF なら、オンボードだろうとサウンドカードだろうと大差はないんだろうなーと思っていたけど、全然違った。今まであまり聞こえなかった、バックで鳴ってる楽器の音がちゃんと聞こえるようになった。

もちろんボーカルや他の楽器の音が聞こえにくくなることもなく、それぞれが明瞭な感じ。音の解像度が上がったようにも感じた。

昔使ってた KORG の ONKYO OEM な USB DAC も、音は良かったけど当時の PC では負荷がかかってたりすると、たまに音飛びなんかを起こしてイラッとくることがあったけれど、USB 2.0 に対応しているからか、最近のマシンはスペックが高いからか、そんなこともない。(と言っても、まだ数時間しか使ってませんが・・・)

■ オンボードの人には間違いなくオススメ

Audio Accessery 誌にも、この価格でこの音質は素晴らしい的な記事がありましたが(PR記事ではなかったと思うけど)、2万以下で(PCワンズだと1.8万) ちょっと心が豊かになれるブツだと思います。

記事ではヘッドホンアンプとして素晴らしいということも書かれていたので、アンプのヘッドホン端子と比較してみたものの、HUD-mx1 は若干クリアー感があった気もしますが、自分の耳ではあまり違いが分からず・・・。いいヘッドホンだと分かったりするのかもしれませんね。(うちのはオーディオテクニカの5000円程度のヘッドホンのOEMという、若干あやしげなヘッドホンですので)

■ 気になったこととか

うちのヘッドホンの問題かもしれませんが、HUD-mx1 のヘッドホン端子の接触が悪いのか、ちょっと端子付近を触っただけでノイズが出たりしてました。まあ触らなければ問題ないですが。

あと、S/PDIF 出力だと、HUD-mx1 の正面スイッチをヘッドホンにセットしてようが、アンプから音が出ます(ヘッドホンからも出ますが)。エロい動画なんかを見るときには気をつけておいた方がいいかもしれませんねww。この辺りの使い勝手を考えて、自分は HUD-mx1 のヘッドホン端子は使わず、アンプから繋ごうかなーと。

それから、本体も多少熱くなります(ACアダプタを使ってるからかもしれませんが)。横に置いてるアンプより若干マシですし、触れないほどではないですが、夏場は気になるかもですね。

■ 余談

ということで、いろいろと書いてみましたが、使って数時間でエージングも終わってないですし、音質については参考までにということで。ただ、安いシステムでもはっきり音質向上は分かったので、気になる点も多少あるものの(ヘッドホン使わないなら問題ないですが)、買って損はしないと思います。

あ、ちなみにこのメーカーは韓国の会社なので、その辺りにこだわりがある方にはオススメしませんww。

来週末くらいには、知人から Marantz PS7400 を譲り受ける予定なので、それに繋いだときの音質を楽しみにしつつ、しばらく使ってみようかと思います。

■ 参考リンク

HUD-mx1 メーカーリンク

http://audinst.com/jp/bbs/board.php?bo_table=HUDmx1&wr_id=5

おそらく最安価格 PCワンズの販売ページ

http://www.1-s.jp/products/detail/28845

■ [ネット] pivotx で某所のページ作成中のメモ

PHPしか動かなくてデータベースが使えないサーバー向けに、CMS導入するということで PivotX を利用して現在サイトを作っているわけだけど、これ、テンプレート作成もそんなに難しくなくて結構便利だし、かなり気に入ったので作業内容を少しメモしておく。

■ トップページに更新情報をブログ機能で載せたい場合

1個だけなら簡単だけど、例えば更新情報と簡単なお知らせ的プレスリリースとか載せたい場合は、ちょっと分かりづらかった。

例えばカテゴリが A B と2つあるときは、name に 共通の名前を入れて、カテゴリー設定で両者の出力を使い分ける。

<div>
[[ subweblog name="standard" category='A' ]][[ literal ]]

<p>[[ date format="%year%/%month%/%day%" ]]</p>
<p>[[title]] [[ editlink format="Edit" prefix=" - " ]]</p>
<p>[[introduction]]</p>
<p>[[more]]</p>

[[ /literal ]][[ /subweblog ]]
</div>

<div>
[[ subweblog name="standard" category='B' ]][[ literal ]]

<p>[[ date format="%year%/%month%/%day%" ]]</p>
<p>[[title]] [[ editlink format="Edit" prefix=" - " ]]</p>
<p>[[introduction]]</p>
<p>[[more]]</p>

[[ /literal ]][[ /subweblog ]]
</div>

この場合、サイト管理?ウェブログ?サブウェブログ で、サブウェブログに両方のカテゴリを出力させること。サブウェブログ設定は結構便利で、1ページに出力する記事数などもここでコントロールできる。

ただ、アーカイブページで使いたい subweblog name と、トップページで使う subweblog name が違う場合だと、トップページに

[[ subweblog name="other" noresult ]][[ literal ]]
[[ /literal ]][[ /subweblog ]]

なんて、何も出力しない subweblog name を追加で埋め込んでやらないと、サイト管理?ウェブログ?サブウェブログ にその subweblog name が出てこないので設定できない。

こんな事例はあまりないかもしれないが、自分の場合はデザイン上分けざるを得なかった。(ニュースリリースによくある、左右のフロートしたボックスを同じ高さに揃えるデザインにした場合、繰り返し出力するとデザインが崩れるため。力業で subweblog name をたくさん作って対処しました・・・)

■ トップページを静的ページっぽく作った場合のブログアーカイブ

ブログアーカイブのカテゴリ一覧は、トップページに対して出力されるため(ブログ的に)、トップページにアーカイブ一覧を出力するのが厳しいことがある。その場合、

index.php?c=カテゴリ名&o=0

とリンクすれば、アーカイブのテンプレートを使ってカテゴリ記事の一覧が表示できる。他のテンプレートタグを使う方法だと、

<ul>
[[category_list format="<li><a %active% href='%url%&o=0'>%display%</a></li>" isactive="id='active'"]]
</ul>

みたいに category_list タグを使う方法もある。(余談だが、category_list タグでも %active% とか isactive が使える。ドキュメントには全く書かれてないけど、これのおかげでサイトナビゲーション作成がとても便利だった)

ただ、エントリーページ(個別記事ページ) で自分の今いるカテゴリーをパンくずリストでリンクするのがどうしてもできなかったため、コードを変更した。

pivotx/modules/module_smarty.php 436行目辺りを

$output[] = sprintf("<a href='%s&o=0'>%s</a>", makeCategoryLink($value, $params['weblog']), htmlentities($thiscat['display'], ENT_QUOTES, "utf-8"));

こんな風に変更。これで

 [[category link="true"]]

できちんとリンクが張られるようになる。

■ その他

アーカイブのテンプレートを使ってカテゴリ記事の一覧を表示するとき、パンくずリストに自分がいるカテゴリ名を表示しようとしても、何故か

[[category]]

では表示されないため、以下のようなちょっとトリッキーな方法を採った。

<div id="breadcrumb">
<a href="[[home]]">トップページ</a> &gt; [[category_list format="<span %active%>%display%</span>" isactive="id='print'"]]
</div>

追加で、以下のような CSS を書いておく。

#breadcrumb span {
display: none;
}

#breadcrumb span#print {
display: inline;
}

これで、自分がいるカテゴリだけパンくずリストに表示される。

ということで、ざっとしたメモ。何か思い出したらまた追記するかも。

■ [その他] いろいろ

半年ほどいろいろ絶賛放置中ですが、生きてはいます、一応。死ねばいいのに。

えー、この間というかこの前から各種勉強会やらセミナーやらいろんな所に出て、いろいろ興味深い話をたくさん聞いたり勉強したりしていたのですが、もう今更メモ書きから記事を起こすのも面倒なので、適当に書いたメモデータを公開することでお茶を濁したいなーと思います。近日中に。

で、今回日記を書いた理由は、少し前から話題になってたクロマグロ捕獲禁止の件・・・についてではなく、以下の件について。

「非実在青少年」問題とは何なのか、そしてどこがどのように問題なのか?まとめ – GIGAZINE

http://gigazine.net/index.php?/news/comments/20100319_hijituzai_seisyounen/

しばらく前から経過を見てはいたんですが、仕事が忙しくイマイチ流れを追いかけきれなかったんですけども、東京都はとりあえず今回は継続審議ということで事なきを得たようで良かったかなと(まあ全面勝利ってわけでもないし、その上大阪も検討するとか知事が馬鹿なこと言い出してるようですが。ちなみに子供をたくさんお作りになられている大阪府知事に聞きたいんですが、その知識はどこから仕入れたものですかー?ww 非実在じゃなくて実在のエロビデオですかねー、リア充っぽい知事のことだからww マンガとかアニメとかゲームだけがダメで、エロビデオだけがいい理由って何なんですかねー、知事ぃ?www まー答えは聞かなくてもだいたい分かってますけどねー)。

っと話がずれましたが、「非実在青少年」問題に関するまとめ記事がGIGAZINEさんの所に上がっているわけなんですけど、その中程辺りに

この「非実在青少年」という造語を新しく作り出し、表現規制を推進する改正案を作ったのが「東京都青少年問題協議会」、略して「青少協」なわけですが、この協議会を構成するメンバーの発言がかなりひどく、ここに至るまでも山のように問題発言を議事録に残して公開するというとんでもないことを繰り返しており、以下のページが非常に詳しいです。こういった発言をすることに対して何の問題意識もないほど独善的で、自分たちこそが正義であり、自分たちの常識こそが世界の常識でなければならないという潔癖症の方々です。

という記述があって、なかなか痛い 潔癖な発言をされている方の紹介が続くのですが、こういう潔癖症の方のためにあるような言葉を、たまたまこの記事を読んでる最中に思い出したので、ちょっと書いておこうかなと。

If you want divine justice, die. (神の正義を求めるなら、死になさい)  – Nick Seldon

これ、確か昔使ってた Slackware の fortune cookie に入ってた言葉で、米田さんという方が書かれた Slackware の解説書にも訳文とともに載ってたような記憶が。当時はまだ学生でしたけど、かなりお気に入りの言葉だったのを覚えています。

まあ、他人に迷惑を掛けずに自らと戦っておられる潔癖症の方に対しては、お気の毒と思いますし、その戦いを応援してもいいとも思いますが、他人に対して敵意を振りまく潔癖症の方はこの名言にあるように、いわば神の正義(=決して手に入らないもの) を求め続けているわけで。それならいっそのこと、

死ねばいいのに。

死ねばいいのに。

死ねばいいのに。

はい、これ大切なことなので3回書きましたww

死ねばきっとそこはあなただけの楽園(ユートピア)☆ まーユートピアの語源自体「どこにも存在しないもの」って意味だったような気もするし、やっぱり死ぬしかないっすね、自分だけの理想郷を得るためにはね。

・・・あー、俺もとっとと死ねばいいな、うんwww

■ [PC] 古い東芝製PCのリカバリ&リカバリディスクの解析をやってみた

会社の人に、古い東芝のノートPC T5/512CME のリカバリを頼まれたので軽い気持ちで引き受けたのだが、かなりいろいろ調べなければいけなくなった顛末のまとめ。

■ 症状

リカバリしようとしても、ディスク3で必ずディスクエラーが発生して止まってしまう、とのこと。リカバリディスク自体は未使用だったもので、ディスク自体の破損はないとのこと。

■ トラブル箇所の予想

ディスクエラーが3枚目のディスクで必ず起こるという点と、こういうトラブルはHDD絡みが多いことから、HDDを交換してリカバリをすれば治るのではないかと予想した。

■ 実際の作業

HDDを交換したにも関わらず、ディスク3ではなくディスク2でディスクエラーが発生。CDドライブの寿命ではと考え、復旧画面の様子から Norton Ghost のイメージから復旧されることが分かっていたため、各ディスクのイメージだけを抜き出し、別PCでイメージを書き出そうとした。

しかし、GHOST のイメージにパスワードがかかっており、この方法では不可能だった。パスワードの解除方法を探して、

http://www.weller.ws/toshiba/norton.html

のサイトにたどり着くも、サイトの説明通り、フェイク版 GHOST.EXE を使用してもパスワードの抽出はできなかった(機種によってはできるかも)。この辺りの試行錯誤だけで数時間かかった。(特にブータブルCDイメージの作成が失敗しまくった・・・。mkisofs はもう信じない。あと Infra Recorder も。結局うまくいったのは Free ISO Creator だけだった)

しかしこの作業中 CD-R に焼いたデータが読み取れず、仕方なしにレンズ部分を掃除したら読めたため、もしかしたらとリカバリディスクを入れると、無事リカバリを行うことができた。

■ 結論

・ CDドライブの読み込みが悪いと思ったら、まずはレンズを掃除してみよう

■ まとめ

まあ、何事も基本的なところから、ということですが、CDドライブの調子が悪いと思ったら、他の回避手段を試す前に掃除とかやってみると治ることもある、ということですな。

特に外観も中身もかなり汚れてたので、タバコの煙でレンズが汚れているという可能性も十分考えられたのに、掃除を試さなかったのは早計だったかも、と今更思う(だって自分タバコ吸わないから、レンズの汚れは想定できなかったし・・・)。

ということで、今回は自分にとっての盲点が勉強できた事例でした。あと、ブータブルCDをいろいろと解析して、東芝PC以外でもリカバリCDが動くようにできたりとか(本来はチェッカーによって止まる。実際使用してないのでリカバリまでできるかは不明だけど)、まあまあ面白かったので、トータルとしてはいい経験だったかなと。仕事に役立つかどうかは不明ですが(笑)。

■ リカバリCDメモ

リカバリCD内部に入っている、BOOTIMG.BIN がCD ブートイメージ。またはCDのブートイメージを吸い出せば同じものが入手できる。

これはフロッピーイメージなので、Virtual Floppy Drive で読み込めば内容を見ることができる。その中のバッチファイルでチェッカーなどが動いているため、そこをスルーするように書き換えれば、東芝PC以外でもリカバリCDが使えるかもしれない。未テストだが、少なくとも仮想PCでは動き、イメージのインストール手前までは行けた(パスワード解析用イメージだったため、それ以上はテストしなかった)。

スポンサードリンク

Twitter

利用中のサービス

GUiLZ Project では、以下のサービスを利用しています。


関連サイト

巡回先サイト様

アーカイブ