2012年2月22日水曜日

Thunderbird 起動直後エラー表示で固まる…… 修復方法


Thunderbird 10.0系あるいは、旧バージョン可能かも?
旧バージョンについては、下記の方法で修復を行った場合の動作保障は致しません。

Thunderbirdに新しいアカウント設定を行ったあとで、下記の様なエラーメッセージが表示された。


まぁ、Thunderbirdは昔から、新規設定直後にこの手のダイアログはよく出るので、別段気にもしなったが…… エラーメッセージ表示後、なんと完全に固まる状態に……

何もクリック出来ない。

これはマズイ!
何しろ完全にソフトが固まっている状態で何もできない。

とりあえず何が悪いのかを確認するために、いくつか起動を試みる。


セーフモードのでの起動
まず、【スタート】【すべてのプログラム】【Thunderbird】で
Shiftボタンを押しながら、Thunderbirdを起動させて、すべてのアドオンを無効化にチェックを入れて、【セーフモードを続ける】をクリック。


その後、Thunderbirdが起動するが……状況は変わらす、同じエラーが表示されて、再びハング……

では、オフラインではどうか?と思ったのですが、これまた問題でオフラインに変更しようとしても、起動直後にエラーアラートが表示されてしまい、メニューバーをクリックするような時間を与えてくれません。

つまり、起動後即ハングの状態。

エラー内容から、先ほど設定したアカウントに何らかの問題があって、固まっていているような雰囲気なので、そのアカウントを削除すれば、上手く起動しそうな感じですが、ソフトが固まっているので、通常の手続きではアカウントの削除は出来そうにありません……

では、どうするか……

Thunderbirdのサイトではこのような場合は、バックアップを取った上で、新規インストールを薦めていますが、アカント設定そのものが固まる原因の場合、バックアップにも当然問題のアカウントはあるはずですよね。そう考えると、新規インストールについては疑問が残ります。じゃあどうすればいいか……

こうなるともう、プロファイルデータを直接手動で変更するしか、手がないです。

と言う事で、ここから先の作業については、自己責任にてお願いします。
この作業を間違えた場合は最悪ソフトの起動すらできなくなる状態になり可能性もあるので、

あくまで自己責任でお願いします。
上手く動かなくても当方に文句わ言わないように。

では、まず肝心のプロファイルデータですが。場所は下記にあります。

Application Data/Thunderbird/Profiles/*****.default/

内にある、prefs.js です。

まずこのファイルのコピーをとっておきます。
これは今後の作業でファイルが壊れた場合のバックアップです。
(上手く修正出来れば、最終的に削除してください)

コピー後このファイルをエディター等で開いてください。
そうすると、下記の様な表記がズラズラとでてきます。
で、削除したいアドレスを検索して関連する箇所を削除すれば、OKなのですが、どこを消せばいいか?

と言う事で、サンプルです。
削除したいアカウント【info001@ab012.com】
これを検索すると、赤文字の部分が出てきます。
実際には、もう2・3箇所検索ででるのですが、それはフォルダー関連ですので、今回は*****とさせていただきました。

さて、では削除しましょうか……?
何処から、どこまでを消せばいいの?
JavaScriptoが理解できる人はいいですが、そうでない人には、どこを削除すればいいのか、さっぱりですよね。(私もJavaScriptoは断片的しか理解できていないので……)

アドレスが表記してある行を消せばいいの?それともアドレスだけを消せばいいの??

と言う事で、削除範囲は、黄色になっている範囲全部です。
結構ごっそりです。

わかりやすい判断基準はそれぞれの、アドレスが入っている行の青文字の箇所を確認してください。
良く見ると選択範囲は全て同じ条件ですよね、つまり、その箇所が同じと言う事は、データ的には何らかの関連があると考える事が自然なので、同じ変数のエリアを削除します。

//////////////////////////////////////////////////////////////////////////

user_pref("mail.identity.id11.stationery_folder", "mailbox://*****");
user_pref("mail.identity.id11.tmpl_folder_picker_mode", "0");
user_pref("mail.identity.id11.useremail", "*****@ab012.com");
user_pref("mail.identity.id11.valid", true);
user_pref("mail.identity.id2.archive_folder", "mailbox://*****"); ここからid2
user_pref("mail.identity.id2.doBcc", false);
user_pref("mail.identity.id2.doBccList", "");
user_pref("mail.identity.id2.draft_folder", "mailbox://*****");
user_pref("mail.identity.id2.drafts_folder_picker_mode", "0");
user_pref("mail.identity.id2.escapedVCard", "");
user_pref("mail.identity.id2.fcc_folder", "mailbox://*****");
user_pref("mail.identity.id2.fcc_folder_picker_mode", "0");
user_pref("mail.identity.id2.fullName", "abcd0012");
user_pref("mail.identity.id2.organization", "");
user_pref("mail.identity.id2.reply_to", "");
user_pref("mail.identity.id2.smtpServer", "smtp3");
user_pref("mail.identity.id2.stationery_folder", "mailbox://*****");
user_pref("mail.identity.id2.tmpl_folder_picker_mode", "0");
user_pref("mail.identity.id2.useremail", "info001@ab012.com");
user_pref("mail.identity.id2.valid", true); ここでid2が終了

user_pref("mail.identity.id3.archive_folder", "mailbox://*****");
user_pref("mail.identity.id3.attach_signature", true);
user_pref("mail.identity.id3.doBcc", false);
user_pref("mail.identity.id3.draft_folder", "mailbox://*****");
user_pref("mail.identity.id3.drafts_folder_picker_mode", "0");

//////////////////////////////////////////////////////////////////////////

user_pref("mail.server.server2.login_at_startup", true);
user_pref("mail.server.server2.name", "オーダー");
user_pref("mail.server.server2.realuserName", "******@ab012.com");
user_pref("mail.server.server2.spamActionTargetAccount", "mailbox://*****");
user_pref("mail.server.server2.type", "pop3");
user_pref("mail.server.server2.userName", "0123");
user_pref("mail.server.server3.ageLimit", 30);  ここからserver3 
user_pref("mail.server.server3.applyToFlaggedMessages", false);
user_pref("mail.server.server3.check_new_mail", true);
user_pref("mail.server.server3.cleanupBodies", false);
user_pref("mail.server.server3.daysToKeepBodies", 30);
user_pref("mail.server.server3.daysToKeepHdrs", 30);
user_pref("mail.server.server3.defer_get_new_mail", true);
user_pref("mail.server.server3.deferred_to_account", "account1");
user_pref("mail.server.server3.delete_by_age_from_server", true);
user_pref("mail.server.server3.delete_mail_left_on_server", true);
user_pref("mail.server.server3.directory", "C:\\*****");
user_pref("mail.server.server3.directory-rel", "[ProfD]Mail/*****");
user_pref("mail.server.server3.downloadByDate", false);
user_pref("mail.server.server3.downloadUnreadOnly", false);
user_pref("mail.server.server3.download_on_biff", true);
user_pref("mail.server.server3.hostname", "mail.mail.jp");
user_pref("mail.server.server3.keepUnreadOnly", false);
user_pref("mail.server.server3.leave_on_server", true);
user_pref("mail.server.server3.login_at_startup", true);
user_pref("mail.server.server3.name", "info001@ab012.com");
user_pref("mail.server.server3.numHdrsToKeep", 2000);
user_pref("mail.server.server3.num_days_to_leave_on_server", 14);
user_pref("mail.server.server3.port", 995);
user_pref("mail.server.server3.socketType", 3);
user_pref("mail.server.server3.spamActionTargetAccount", "mailbox://*****");
user_pref("mail.server.server3.spamActionTargetFolder", "mailbox://*****");
user_pref("mail.server.server3.type", "pop3");
user_pref("mail.server.server3.userName", "info001@ab012.com"); ここまで

user_pref("mail.server.server4.defer_get_new_mail", true);
user_pref("mail.server.server4.deferred_to_account", "account1");
user_pref("mail.server.server4.directory", "C:\\*****");

//////////////////////////////////////////////////////////////////////////

削除が終わったら、ファイルをセーブして、上手く行きますようにとお祈りしながらThunderbirdを起動します……

結果は…… バッチリです。

通常起動に成功。元の状態に戻りました。
今まで受信したメールも無事です。

とりあえず一安心です。
一時は、再インストール?などと怖い考えも有りましたが、なんとか元に戻りました。

ただし、あくまでこの作業は緊急時に行なう手動でのアカウント削除作業です。
通常は、ソフトから正規の手順で削除してください
また単に偶然?上手くいった可能性も否定できませんので、作業はあくまで

自己責任でお願いします。

また、今回はアカウント関連でのエラーだったので、上記のような方法を取りましたが、違うエラーの場合は、今回の作業で必ずしもうまく行くとは限りませんので、ご注意ください。

要するにイヂルなら、自己責任でお願いします。

と言う事です。(笑





2012年2月15日水曜日

EC-CUBE2.11.X テンプレートカスタマイズ HTML5化?の覚書


EC-CUBEのテンプレートは基本的にHTML4で書かれています。スマートフォン用のテンプレートはHTML5ですが…… まぁ、ブラウザーもまだIE6あたりも使っている人もいますし、WindwsXPユーザーだと、IEを使っているかぎり、HTML5の恩恵は受けられないですしね。

しかし、制作者サイドとしては既に多くのサイトをHTML5で構築していると、

もうHTML4には戻れない!

というのが正直な感想では?と思うのですが……

ま。HTML5と言うより、CSS3の機能が使いたいだけ、なんですけどね。
CSS3の強力なグラフィカル表現だと、装飾画像の類がかなり省けるので、ブラウザーに優しく、表示も早い?です。

さて、前置きはこのくらいで。

では、HTML5とCSS3を実装するにはどうしたらいいのか。

単純で至極簡単です、ヘッダーのドキュメント宣言を変更すれば、完了です。

EC-CUBEのヘッダー情報はどこのファイルかといいまと、

/data/Smarty/templates/default
内の

site_frame.tpl

になります。


///////////////////////////////////////////////////////////

<!--{printXMLDeclaration}-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--{*
この下はコピーライト関連

 *}-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<!--{$smarty.const.CHAR_CODE}-->" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />





///////////////////////////////////////////////////////////

と、こんな感じです。

で、肝心のドキュメント宣言はどこでされているかと言うと、冒頭の2行目ですね

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

これを、

<!DOCTYPE html>

と変更すれば、HTML5の出来上がり……ですが、実は、1行目にXML宣言がされています。
ブラウザーからソース確認して頂くとわかりますが、1行目の

<!--{printXMLDeclaration}-->

によって、XML宣言がされています。これって大丈夫なのかな?
殆どのサイトでは、HTML5は

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Example document</title>

の様な書き方で書かれています。
つまりXML宣言が無いモノが殆ど。

では、HTML5ではXML宣言は不要なのかな?と思いきや。
どうやら、別段XML宣言がされていても問題は無いようです。
ただし、XML宣言をした場合は下記のように記述する必要があります。

W3C原文 ///////////////////////////////////////

The other syntax that can be used for HTML5 is XML. This syntax is compatible with XHTML1 documents and implementations. Documents using this syntax need to be served with an XML media type and elements need to be put in the http://www.w3.org/1999/xhtml namespace following the rules set forth by the XML specifications. [XML]

Below is an example document that conforms to the XML syntax of HTML5. Note that XML documents must be served with an XML media type such as application/xhtml+xml or application/xml.



<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Example document</title>
  </head>
  <body>
    <p>Example paragraph</p>
  </body>
</html>


////////////////////////////////////////////////////

つまり、XML宣言されたHTML5ファイルの場合は、application/xhtml+xmlまたはapplication/xmlメディアタイプでないとダメですよ。
と言っています。

では、どうするか?

方法は2つ。

1.上記のようにXML宣言タイプに変更する。
2.XML宣言を消して(テンプレートから、変数を削除)ドキュメント宣言文に変更する。

この2種類になります。
どちらのファイルタイプを製作しても、問題無くブラウザーので動作はするので、使用するテンプレートによって使い分けていいかと思います。

上記の変更で、基本的にHTML5に対応したhtmlファイルになります。

後は通常と同じ作業で製作すれば、OKです。
装飾系にCSSを限定して、HTML構文に変化(HTML5専用タグ)を使用しなければ、HTML5未対応のブラウザーでの表示でも崩れる事は無いかと思います。

このあたり、はクロスブラウザーチェックで回避するしか手段がありませんが、まぁこの程度の変更で、MTML5&CSS3が使えるのであれば、良いのではないかと。

参考サイト
HTML5 differences from HTML4
http://www.w3.org/TR/html5-diff/

2012年2月10日金曜日

EC-CUBE 2.11.X カスタマイズ テンプレート関連 覚書

EC-CUBEも2.11.Xから、ついにスマートフォン対応になって、非常に便利になった?感じもしますが、元々それなりに複雑な表示テンプレートシステムだったモノが、更に難しく?なった感じも否めないですね……

と言う事で、いじり倒す前に、基本のファイル設定は書き出しておこうと思って書いています。
EC-CUBE 2.11.X 系でテンプレートへの変更を考えている方は、参考にしてください。
(他にも似たようなところは有るし、本家のフォーラムも確認してくださいね)

EC-CUBE 2.11.X は、
  1. PC
  2. スマートフォン
  3. 携帯
の3つの機種に対応、正確には各ブラウザーのユーザーエージェントを取得して、各テンプレートを切り替えているだけの代物です。

つまり、テンプレートは、各機器ごとにあるので、全部で3タイプある事になります。
しかも各テンプレートは完全に独立しているので、PCを変えたからと言って、スマートフォンを変えないと、表示がおかしくなる、と言うような事はありません。

PC用は表示情報量が多いので、変更する事はそれなりに大変ですが、スマートフォンや携帯であれば、比較的簡単に変更が可能です。

また、新しいテンプレートを製作しなくとも、システム上からCSS等の変更が可能なので、かなり自由に変更は出来るかと思います。
むしろ、tplファイルをいじる方が面倒な場合もあります……


前置きはこれくらいで、ではそれぞれの、ファイルの場所を。


PC関連テンプレート //////////////////////////////////


テンプレートファイル .tpl ***************************************

data\Smarty\templates\default フォルダ内

この中の.tplファイルがhtml表示用のテンプレートになります。
この中に更に、各ページ名称が振らたフォルダがありますので、その中に更に各ページに対するテンプレートファイルがあります。

defaultフォルダ内にある、ファイルの主なモノです。

site_frame.tpl //ページ表示用のヘッダー部分になります。CSSやJavaScriptファイルの読み先
site_main.tpl //コンテンツ表示部分この中に各.tplファイルが読み込まれます。

その他のファイルは、だいたいファイル名称通りの内容が記述されています。
あくまでだいたいですよ。



CSS(スタイルシート) .css ***************************************

html\user_data\packages\default\css フォルダ内

メインで使われているファイルは

common.css

他のファイルについては、ファイル名の内容に関するCSSが書き込まれています。



img(イメージファイル) .jpg等  ***************************************

html\user_data\packages\default\img\**** フォルダ内

内部に各使用目的別のフォルダがあるので、その中の画像を使用します。
このフォルダの画像は、CSSと直接.tplファイルに読み込む為のモノと共通です。



スマートフォン関連テンプレート //////////////////////////////////

テンプレートファイル .tpl ***************************************

data\Smarty\templates\sphone フォルダ内


CSS(スタイルシート) .css ***************************************

html\user_data\packages\sphone\css フォルダ内


img(イメージファイル) .jpg等  ***************************************

html\user_data\packages\sphone\img\**** フォルダ内




携帯関連テンプレート //////////////////////////////////

テンプレートファイル .tpl ***************************************

data\Smarty\templates\mobile


img(イメージファイル) .jpg等  ***************************************

html\user_data\packages\mobile\img


CSS(スタイルシート) .css ***************************************

どうやら、携帯にはCSSは適用していないようで、ファイルが存在しません。




ざっと調べた限りでは、上記の箇所を変更すれば、デザインに関する変更は可能です。

まぁ、レイアウト変更と言っても、デフォルトのデザインが3カラムですので、それを2カラムに変更したとしても、変えるべきモノは、TOPにあるメインイメージだけで後は、CSSで対応可能なレベルのテンプレートになっているので、よく出来たモノだと思います。

この各ファイルの場所さえわかれば、変更は簡単ですので、どんどんテンプレートをくつってみてください。


もちろん、テンプレート製作の依頼も受けておりますので、お気軽にご相談ください。






2012年2月6日月曜日

【自転車 メンテナンス】 ハブのメンテナンスを怠ると…

ホイールハブのメンテナンス。

最近のロードモデル用のホイールハブは、シールドベアリングが主流で、比較的安いホイールでも、メンテナンスフリーになってきてますね。

※言っている意味がわからない人は、【ハブ シールドベアリング】で検索してください。

まぁ、この流れはビギナーライダーとかには、手間がかからず非常に良い事だとは思います。


が!
シマノのホイールはそうではありません。
シマノはエントリー用の500番台のホイールから最上位の7000番台のディユラエースまで、全てカップアンドコーンと言う方式を採用しています。
(ロードだけではなく、MTBのホイールも同じ)

何故シマノはカップ&コーン方式を採用しているのか?については、下記リンクを観て頂くとして。
http://cycle.shimano.co.jp/publish/content/global_cycle/ja/jp/index/enjoy_knowledge/m_function/bearing.content.html

このカップ&コーンが曲者で、長く使おうと思ったら、最低でも年に1回ぐらいのメンテンスをしてやらないと、トラブルが……


メンテナンスなんて言っても、やる事は開放して、清掃&グリスUP程度の作業です。
それほど難しい作業ではありません。

専用工具(ハブスパナ)が必要になりますが、作業自体は古いグリスを拭き取って、新しいグリスを詰めてやるだけの単純作業です。


しかしこのメンテナンスが結構重要で、ホイールの寿命を左右したりします。
では、メンテナンスしないでいると、どうなるかをご覧に入れます。

これが、衝撃画像!
左が問題のパーツ。右は新品。



左側のパーツに一段段差があるのが、わかりますかね?
このパーツは、下の画像の4番に当たるパーツで、コーンと呼ばれているパーツです。




斜めになった箇所でベアリングを支えているのですが、新品は当然綺麗ですが、左の奴は、なにやら、筋が……そう。実はその筋の部分でベアリングを支えていたんです。

つまり、何らかの異物等が混入して、ベアリングとコーンの間に入り込み、その異物がコーンを削っ


では、更に拡大ドン!
ここまで、コーン本体が削られるって…

実は、この状態になるまで、2年ほど掛かっています。
と言うかですね、スペアパーツを入手してから、半年以上放置(そのまま使用)していました…

もうね、ここまで来ると負の連鎖がはじまって、最初に発見した時はまだベアリングは大丈夫だったんだけど、現状はベアリングもこんな感じ……


ベアリングって、鋼材の中では、比較的硬い素材なんだけど…
ここまで傷が付いていると、もう最悪です。
この状態では、ハブの回転もまともに回りません。
もしこの状態で使い続けるなら、今度はカップ側(ハブ本体)までダメージを与えて、最終的に最悪ハブ本体の交換です。

今回は、カップ(本体)側には影響が無く、単純にベアリングとコーンの交換で作業終了。

ちなみに、使用しているホイールは、WH-R550です。
通称「鉄下駄」と呼ばれているシマノのエントリーホイールですね。
安くて、丈夫(重い)が取り柄の、素晴らしいホイールです。

その昔、自転車屋が
「シマノの500番系のハブは、最低でも年1回のグリスUPをしないと、性能がキープできないよ」
と言っていたのを思い出しました。

つまり、年1回グリスUPをすれば、必ずハブを開けるので、内部の状態が確認できるから、その時に内部状況を確認しなさいと、言う事ですね。

さて、ヤバいパーツを交換して、古いグリスを綺麗に拭き取ってから、新しいグリスを塗ってベアリングをセットします。


後は、ハブ軸を通して、新品のコーンをハブ軸に廻して入れながら、玉あたりの調整をして作業完了です。

玉あたりは、その言葉通り、ベアリングと、このコーンを抑え付ける力(玉をあてる)の調整です。この調整を緩く締める場合と、きつく締める場合でハブの回転が違ってきます。この締め付け調整次第で、ハブの性能?が決まるくらい実は重要だったりしますが…

作業自体は、15分程度かな?
問題が無ければ、本当に簡単に作業が終わります。

ハブのメンテナンスは、走行性能に直結する部分なので、結構走りの感覚が変わったたりします。

ハブはブレーキ周りに次いで、命を乗せている重要なパーツでもあります。
(最悪走行中、ハブがロックしたりすると…  とかね)

自分でメンテナンスする場合は、自己責任となりますからその辺りは慎重にお願いします。

メンテナンスに自信が無い人は、ショップで見て貰った方が良いでしょう。
その時に、出来れば作業を見せて貰って自分で出来るようにするのも、一つの手です。

ちなみに、このホイールは現在かみさんのクロスバイクに使用中です。