eclipse3.5+PDT2.1 環境で、新規PHPプロジェクトが作れない。
debian上にPHPのeclipse環境(PDT)を構築してみます。
lennyのmainコンポーネントで提供されているパッケージを使った場合、javaはgcj、eclipseは3.2 しかインストールできないようです。
そこで、sun-java6+eclipse3.5+PDT2.1+pleiades1.3.0 をインストールしてみます。
sun-java6 インストール
/etc/apt/sources.list に non-free コンポーネントが含まれることを確認
deb http://ftp.jp.debian.org/debian/ lenny main non-free deb-src http://ftp.jp.debian.org/debian/ lenny main non-free deb http://security.debian.org/ lenny/updates main non-free deb-src http://security.debian.org/ lenny/updates main non-free
パッケージをインストール
$ sudo aptitude update $ sudo aptitude install sun-java6-jre
sun-java6 をデフォルトのjavaとする。
$ sudo update-java-alternatives -s java-6-sun
sun-java6が有効になったか確認
$ java -version java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
eclipse3.5+PDT2.1+pleiades1.3.0 インストール
PDT公式サイトより、eclipse3.5+PDT2.1 の オールインワンパッケージ eclipse-php-galileo-linux-gtk.tar.gz をダウンロードします。
PHP Development Tools (PDT) - Downloads
PDT 2.1 All In Ones / Eclipse PHP Package These downloads include PDT 2.1, Eclipse 3.5, Mylyn and all other required plugins. : *All-In-One Linux x86/GTK 2 32-bit 139M
次に、pleiades公式サイトより、pleiades_1.3.0.zip をダウンロードします。(日本語化不要なら、pleiadesのインストールは不要です)
Pleiades - Eclipse プラグイン日本語化プラグイン
Pleiades 本体ダウンロード 既にインストール済みの Eclipse に適用したい場合や、Windows 以外で使用する場合は 下記の Pleiades 本体のみをダウンロードしてください。Pleiades のソースを Eclipse プロジェクトとしてチェックアウトする場合は こちら を参照してください。 *安定版 1.3.0
/usr/local/eclipse 以下にを置く。
eclipse+pdtを解凍
/usr/local/eclipse$ sudo tar zxvf eclipse-php-galileo-linux-gtk.tar.gz
pleiadesを重ねて解凍
/usr/local/eclipse$ sudo sh -c "cd eclipse; unzip ../pleiades_1.3.0.zip"
オーナーを変更
/usr/local/eclipse$ sudo chown -R root:staff eclipse
フォルダ名を変更
/usr/local/eclipse$ sudo mv eclipse ecl3.5pdt2.1
eclipse.ini の最後に以下を追加
/usr/local/eclipse$ sudo vi ecl3.5pdt2.1/eclipse.ini --pleiades -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
/usr/local/eclipse$ sudo sh -c "cat > /usr/local/bin/eclipse-pdt" #!/bin/bash # # eclipse 起動 # HOME_ECLIPSE=/usr/local/eclipse/ecl3.5pdt2.1 cd $HOME_ECLIPSE ./eclipse "$@"
実行権を付与
/usr/local/eclipse$ sudo chmod a+x /usr/local/bin/eclipse-pdt
起動する。
$ eclipse-pdt &
壊れたlzhファイルを復旧する。
途中までしか解凍できない1Gを超えるlzhファイルの復旧を試みた記録。
ファイル数が多く大変だったのでツールを作り、全てではないが復旧できた。
============================= lzhrecover v0.1 20090526 ============================= これは何? ----------- 解凍できないlhaファイルから、出来る限りのファイルを救出する 作業を補助するツールです。 といっても、解凍できない理由はいろいろあるでしょうから、 とても限定的なツールです。あまり期待はできません。 +Lhaca もしくは Lhaplus で作られた、途中までしか解凍できない lzhファイルをある程度復元することができます。 (詳細は以下「後日談」参照) 作った背景 ---------- とある1G以上ある巨大lhaファイルを解凍していたところ、 半分ぐらいのところでエラー発生してしまい、 さまざまな解凍ツールを試してみるもやはりエラーになった。 「解凍できないファイルを少しでも救出できないか?」 ネット上でツール探すも見つからず。幸いバイナリエディタで対応 する方法を見つけるが、あまりに巨大なlhaファイルである為、 思うようにゆかず、作ったツールです。 自分のケースに使うだけの捨てツールっぽいものなので、 わりと手抜きです。他のケースで役に立つかは謎です。 lhaのファイルのファイル構造 ---------------------------- ものすごく簡略化すると +----------------------------+ ---- |ファイル1(ヘッダ+データ) | 1レコード +----------------------------+ ---- |ファイル2(ヘッダ+データ) | +----------------------------+ | | : : | | +----------------------------+ |ファイルn(ヘッダ+データ) | +----------------------------+ |0x00(エンドマーク) | +-------------------+ となっています。 このファイル構造で重要なのは、レコード間で相関関係がまったくないので、 単純に、壊れているレコードを特定し、これを削除してしまえば、正常な lhaファイルになる(可能性がある)ということです。 壊れているレコードをどのように特定すればよいのか? --------------------------------------------------- lzhrecover(本ツール)では、次の2つのアプローチが行えます。 A) UNLHA32.DLLで読み込み 最も有名なlhaの圧縮/解凍ライブラリです。 本ツールでは、このライブラリを使ってlzhファイル中の ファイルを読みます。 エラー検出は厳密ですが一度エラーになると、それ以降の レコードは解析できません。(オプションで破損ヘッダ読み 飛ばしは可能ですが) B) 独自解析 本ツール独自で本当に最低限の解析を行うツールで、 UNLHA32.DLLと比べるとお粗末もいいところです。 ただし、エラー発生しても次レコードを予測して 無理やり最後まで解析を継続します。 予測といっても、ヘッダ中の圧縮方式 "-lhX-" をさがし ているだけです。 動作に必要なもの ----------------- .NET Framework 2.0 [UNLHA32.DLLで読み込み] を使う場合、以下も必要です。 CaldBase.dll, CaldBase.ini (CaldBase.dll Ver.0.10 に含まれます) WrapperDLL - CaldBase.NET Website http://caldbase.sourceforge.jp/old_wiki/index.php?WrapperDLL UNLHA32.DLL (ulh3265d.exe に含まれます) Common Archivers Library: UNLHA32.DLL http://www.csdinc.co.jp/archiver/lib/unlha32.html 使い方 ------- 1.[lzh選択]で、壊れたlzhファイルを選択(drag&dropでも可) 2.[UNLHA32.DLLで読み込み]で、エラー発生するか確認 一覧に表示されたレコードは、正常と思われる。 (この操作は、本ツールの必須操作ではありませんが、 非力な独自解析を補助する情報が得られます) 3.[独自解析]で、エラー発生するか確認 エラー発生しても最後まで処理継続させる。 このときあきらかにエラーのレコードについては、 チェックOFFになる。 4.必要であれば、エラーと思われるレコードをチェックOFFする。 5.[lzh出力]で、新たなlzhを出力する。 6.出力したlzhを使って、1から繰り返す。 エラーが無くなれば、おそらく解凍できるはず。 解凍できないようなら、正常に解凍できたファイルの次の ファイルがエラーレコードなので、これを除外して新たなlzhを作る。 これの繰り返し。 解凍するツールはLHMeltがお勧め -------------------------------- LHMelt のダウンロード http://www2.nsknet.or.jp/~micco/mysoft/lhmelt.htm ----------------------------------------------------------------------- 初心者の方や書庫関係に明るくない方は, 解らない設定は弄らないほうがいいです。 少なくとも『オプション設定』ダイアログから呼び出せる各 DLL の設定ダイアログ の項目は弄ってはダメです。 LHMelt どころか, 他のアプリまで正常に動作しなく なります。 ----------------------------------------------------------------------- とあるので注意は必要ですが、UNLHA32.DLL の作者さん作成のツールなので 信頼できると思います。 機能的にも、書庫テストできる・破損ヘッダ読み飛ばしできる・ログが一覧で見られる と充実しているので、今回のように壊れたlzhファイルを見るのには最適でした。 他のツールもいくつか試してみたのですが、特殊事情(巨大なlzhファイルで、かつ ヘッダ周りがあやしいレコードが含まれている)があっても素直に動いてくれたのは LHMeltだけでした。 1.[編集→書庫のテスト]で書庫テスト 2.[編集→展開]で解凍 「ヘッダ CRC が存在しません」が発生したとき。 警告であって解凍はできるので無視しても構いません。 「格納ファイルのハフマンコードが壊れています」が発生したとき。 [モード→破損ヘッダを読み飛ばす]をチェックONしていれば そのファイルをスキップして処理(解凍/書庫テスト)を継続してくれます。 後日談 ------- 復元できなかったファイル名を見ていて気が付いたのですが、 エラーになっているlzhファイルは、+Lhaca もしくは Lhaplus で作られた 可能性がありました。(以下以外にもCRCエラーが大量に出ましたし) 『+Lhaca 1.24』について http://www2.nsknet.or.jp/~micco/notes/soft/Lhaca124.htm ----------------------------------------------------------------------- +Lhaca が作成する書庫については以下の制限が存在します: * 作成される書庫は h1 形式ヘッダーです。 * 基本は上記のとおりなのですが, 基本ヘッダーのファイル名項目 (のみ) で 表現可能な 255 バイトまで作成を行ってしまうため,自身を含めて取り扱い 不可能な書庫が作成されてしまいます。 ヘッダー読み込み時のリカバリーは 行われませんので,当該箇所以降の全てのメンバーは無視されます。 ----------------------------------------------------------------------- 『Lhaplus 1.56』について http://www2.nsknet.or.jp/~micco/notes/soft/Lhaplus156.htm にも同様の指摘があります。 これが原因で読めないlzhファイルについては、本ツールで 独自解析→lzh出力 とすれば一部「格納ファイルのハフマン コードが壊れています」が発生しますが、それ以外は復元できます。 備考 ----- ・本ツール自身は圧縮/解凍機能を持ちません。 ・元のlzhファイルはReadオンリーで開いているので、このツールがバグを もっていたとしても、オリジナルのlzhファイルには影響ないはずです。 ・唯一Writeしているのは、[lzh出力]ボタンの処理だけです。 ・処理速度とかまったくチューニングしてません。 ・内部32bitで処理しているので、lzhファイル4Gまでなら扱えるはず。 ・ヘッダレベルは1,2のみ対応しています。 参考にしたもの --------------- LHAの書庫構造 http://www2m.biglobe.ne.jp/~dolphin/lha/lha-header.htm 開けなくなったLZHの解凍 : データ復旧のオントラック http://knowledge.ontrack-japan.com/ontrack_now/20040515_mamechisiki.html Common Archivers Library: UNLHA32.DLL の ulh3265d.exe の API.TXT http://www.csdinc.co.jp/archiver/lib/unlha32.html 動作・サポートについて ----------------- 動作保障・サポート保障はありません。 いかなる責任も負いません。 gounx2 at gmail.com
ダウンロードは以下。
lzhrecover.exe - goungoun技術系雑記帳
WindowsでPHP環境を超簡単に構築
1年ぶりにPHP環境を構築してみることに。何とXAMPPも入っていたので以前にもまして簡単にインストールできました。使用させてもらったのは↓で配布されているもの。
Eclipse 3.4.2 Ganymede SR2 ベース / Pleiades All in One 3.4.2.20090316
解凍&バッチファイル1つ実行するだけで、以下が使えるようになります。
- Eclipse3.4.2
- PDT2.0.0
- XAMPP1.7.0
- PHP5.2.8
こんなに簡単でいいのかしら。
Sony スゴ録 RDR-HX8、電源投入→「WELCOME」表示のまま固まる
保障期間切れてるのでメーカー修理は選択支として無し。
自己解決までの過程をメモしておく。
(本当はファームウェアのバージョンアップしてもらうのが正攻法らしいが)
予兆・・・
数日前から、番組表(G-GUIDE)が1,2日分空白になる現象発生
タイトル名が入らないので、電源入れ直したら直るだろうと考えた・・・
電源ボタン押してOFF→電源コード抜く→ちょっと待って電源コード接続
としたら、「WELCOME」表示のまま固まったorz
保証期限切れだったので、中開けて掃除してみたが直らない。
HDDのモーター音も、振動もない。動作していないようだ。
HDD抜いてPCにつないでみた。つなげた。SMARTチェックまぁまぁな値。
HDDは壊れてなさそう?
ネットで情報探ってみた。
SONY DVDレコーダー スゴ録 RDR-HX 6 8 10 ハードディスク修理
http://www1.plala.or.jp/evolution/hx10.html
価格.com - 『か、固まった!』 SONY スゴ録 RDR-HX10 のクチコミ掲示板
http://bbs.kakaku.com/bbs/20277010051/SortID=3536515/
レコーダーネタ2日目、スゴ録をサクッとふわっと直しつつXD72D経過は良好・ハヤテ第36話なのですよ。 - パソコン改造記の憂鬱 セカンドシーズン - 楽天ブログ(Blog)
http://plaza.rakuten.co.jp/nxuser/diary/200712230000/
工場出荷時の状態に戻すことで自己解決した。
手順は次の通り。
1.
「録画一時停止」「システムメニュー」「ツール」ボタン押しながら電源コードさす。
「WELCOME」表示される。そのままボタン押し続け10秒ぐらいでサービスモード画面が表示される。
2.
「<
3.
「<
さらに 決定ボタン を押す。
4.
電源切って再投入
録画予約とか、番組表とか、全部リセットされてるが、HDDに録画してたのは残ってた。
また発生したらメンドクサイな。
そろそろ購入時期かな。
リードオンリー インターフェース って言うのか?
データを扱うクラスを作ってたんだけど、コード量や複雑度が増してくると「ここは参照系の処理だから、オブジェクトの変化を伴うようなメソッドをCallすることはあり得ない」というのを何とか機械的に保証したくなってくる。
C++ に constメンバ関数 ってのがあって、それでコンパイルエラーを発生させてたんだけど、C# には そんな機能はありません。
googleで「constメンバ c#」とか検索してみたものの「C#には無い機能」という情報はヒットするのだが「ではどうすればいいの?」というのが無い。
困ってたのだが「あー、こういうときにインターフェース使えばよさげ?」と気が付いた。
もう実装しちゃったので結果オーライなんだけど。
「こういうこと先人は悩んでいないのか?」と思うわけで「キーワード何で検索するのが正解なのか?」が、ずっと気になってた。
で、今現在何とかIPAの 3-2. カプセル化のすすめ にたどり着けたんだけど。
「リードオンリー インターフェース」で検索してもそれほどたくさんヒットしない。
それほどメジャーな概念ではないのかな?
もっと一般的な名称があるのかな?
う〜ん・・・
そのデータちゃんとファイルに書けてますか?
Ext3のコミット間隔を当てにしたアプリケーションは、Ext4でデータロスの恐れあり - スラッシュドット・ジャパン
OSクラッシュしたときにドットファイルが空になるという話。
今までもあった現象だが、コミット間隔がext4で長くなったことにより表面化。
「closeしたらHDDに書き込まれる」とか思って無いかい?
完全に保証するには、fsyncとか、renameとか考えること多いよと。