2008年7月27日

隠居のお勉強:JavaScript(12) throw

 MT のバージョンを 3.35 から 4.1 へアップグレードするのにずいぶん時間をとられて、続けていた JavaScript のお勉強がほったからしになっていた。
 過去の JavaSCript のエントリーを見直していると、 4.1 へアップグレードによってリンク切れを起こしていたり、必要なスクリプトがサーバーにアップされていなかったりしていた。それらを修復しながら復習することができた。

 W3School tutorial の続きで、今回は throw の勉強である。
  throw statement によって、例外処理ができる。前回の try....catch と一緒に使うと適切なエラー・メッセージによってプログラムを流すことができる。
 以下の例では、変数x に値を求め、x が 0 より小さかったり、10 より大きかったり、数字以外の文字がインプットされた場合に、それぞれにあったエラーを表示する。
 
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","");
try
{ 
if(x>10)
  {
  throw "Err1";
  }
else if(x<0)
  {
  throw "Err2";
  }
else if(isNaN(x))
  {
  throw "Err3";
  }
}
catch(er)
{
if(er=="Err1")
  {
  alert("Error! The value is too high");
  }
if(er=="Err2")
  {
  alert("Error! The value is too low");
  }
if(er=="Err3")
  {
  alert("Error! The value is not a number");
  }
}
</script>
</body>
</html>


 上の例を実行するボタンを作ってみた。Script は外部化し<head> 部で呼び出している。 

 

 ボタンをクリックしたときに、上の js を実行するためには、関数化しておかねばならない。作った関数は以下である。
// throwEx sample
function throwEx()
{
  ・
  ・
(上の青字部分)
  ・
  ・
}


これを<body> で実行するボタン(上のボタン)を置く、HTML は、次のコードである。
<input type="button" onclick="throwEx()" value="throw statement Sample" />


2008年7月22日

隠居のBlog備忘録:MT4.1 で TagCloud ページをつくる

 MT3.3 のときに、はじめて TagCloud を設置したときはかなり苦労した。

 MT4.1 では「小粋空間」さんのテンプレート・セットの "two-colomn-liquid-right" を使わせてもらっている。TagCloud は右サイドメニューの中で表示する仕様になっている。Msajii's Blog のようにタグ(キーワード)が多いと「小粋空間」さんの「タグクラウドの折りたたみ for Movable Type 4」を使わせてもらって、折りたたみができる。ただ、私の場合はメッシュを細かくしてタグ(キーワード)をつけたので700 ちかくになっているから、全てを表示すると縦に長くなってしまう。

 それで、MT3.3 のときのようにページで表示できないかネットをググッテみたが、適切なインストラクションがヒットしなかった。それでもいろいろなページを参考に、MT3.3 のときに使っていた「小粋空間」さんの「Movable Type 3.3 エントリー・タグ詳説」のコードを使って、TagCloud ページを作るとうまくいったので備忘録的に書き留めておきたい。

 わかってみれば設置は簡単である。
  1. 方法はインデックステンプレートを新しく作るのである。(追記:2013/1/22)。インデックステンプレートのメインページをまるまる C&P して、新しく名前は何でもいいのだが、TagCloud とでもし、出力ファイル名はこれも名前は何でもいいのだが tagcloud_page.php としてインデックス・テンプレートに保存する。
  2. このテンプレートページの下記の部分を削除し、
    <MTEntries>
       <$MTEntryTrackbackData$>
       <$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
    

    「Movable Type 3.3 エントリー・タグ詳説」の下方にある次のコードを挿入する。
    <div class="module-tagcloud module">
        <h2 class="module-header">Tag cloud</h2>
        <div class="module-content">
            <ul class="module-list">
                <MTTags>
                    <li class="module-list-item taglevel<$MTTagRank$>">
                        <a href="<$MTTagSearchLink$>"><$MTTagName$></a>
                    </li>
                </MTTags>
            </ul>
        </div>
    </div>
    <h2> Tag Cloud </h2> の部分には、TagCloud の説明などに変更できる。
  3. スタイルシートには、次のCSS を追加する。
    /* (タグクラウド用) */
    
    .module-tagcloud .module-content a {text-decoration: none; }
    .module-tagcloud .module-content {text-align: left; }
    .module-tagcloud .module-content .module-list { list-style: none; }
    .module-tagcloud .module-content .module-list .module-list-item { display: inline; }
    .module-tagcloud .module-content .module-list li.taglevel1 { font-size: 32px; }
    .module-tagcloud .module-content .module-list li.taglevel2 { font-size: 28px; }
    .module-tagcloud .module-content .module-list li.taglevel3 { font-size: 24px; }
    .module-tagcloud .module-content .module-list li.taglevel4 { font-size: 20px; }
    .module-tagcloud .module-content .module-list li.taglevel5 { font-size: 16px; }
    .module-tagcloud .module-content .module-list li.taglevel6 { font-size: 12px; }
    
    .module-tagcloud .module-content .module-list li.taglevel1 a{ color: #000000; }
    .module-tagcloud .module-content .module-list li.taglevel2 a{ color: #0000ff; }
    .module-tagcloud .module-content .module-list li.taglevel3 a{ color: #000000; }
    
    表示するフォントの大きさや色は、ここでいじれる。ランクの区分は6段階が初期値である。
  4. 作ったページへのパス(私の場合:http://n-shuhei.net/atelier/tagcloud_page.php )でブラウザに TagCloud ページが表示できれば成功である。
  5. あとは適当な位置に TagCloud ページへのリンクボタンを設定すれば終わりである。右サイドにボタンを置いたので、サンプルはそちらをみて欲しい。


2008年7月20日

Hütte:Hachi でのDIY;古い和風壁に珪藻土を塗る

 共同所有者であるパートナーに時間ができたので、氷ノ山山麓にある Rabit House に補修にでかけた。海の日による連休前日の金曜日である。

 この Rabit House は「山小屋」と言ってきたが、何か名称が付けたくて、Hütte:Hachi としてみた。建っているところが、いわゆるハチ高原というところにあることや当初8人の共同所有であったことにちなんでいる。それに、八という字は縁起が良いことになっている。Hutte はドイツ語で山小屋の意であるが、山好きの友の指摘で「uはウムラウト付が正しい」と言ってくれたが、101英語キーボードで打つのは難しい。(ATOK の文字パレットunicode表に文字があるが、コードの種類によっては問題がでる。例えば、Shift-JIs での xml ファイルでは保存ができない。)

 今回の DIY は
  • よごれが目立つトイレの壁を珪藻土で塗ってみる。
  • これも汚くなった和室押し入れのふすまを張り替える。
  • モルタルが割れている入り口のたたきをやり直す。
がメインである。

 このような山行きのときの材料・食材は、もう30分ほど走ったら Hütte:Hachi に着くところにある、国道9号線八鹿バイパスの入り口近くのショッピング・モールで買い求める。ホームセンターの「コーナン」やイオン系のスーパーマーケット「Max Value」などがある。
ハチ高原近辺私的観光地図に掲載)

 珪藻土壁材の外箱には、畳2枚分が塗れるとある。きっちりと測ったわけではないが、足りそうに思われたが、結果として2箱で足らなかった。
 押し入れの襖は、のり付きの壁紙を使うことにした。
 入り口のたたきは、一坪弱だからと砂1袋とバラス1袋で足りると思ったが、これがとんでもない思い違いであった。結局、全然足りないので、足らない材料を求めて片道30分ほどのホームセンターまで往復する羽目になってしまった。

クリックすると大きな写真になりますDSCN0345.JPG やる仕事の分担は、これをしたいと言い出した方が担当する。二人でやらなければならないときは、二人でするが。
 今回、珪藻土塗りと襖紙の張り替えは彼が言い出していた。入り口のたたきの補修は私が言い出していた。
 珪藻土塗りは、Before の写真がないので比較がしにくいが、コテあとを残してなかなか上手く塗っている。ただ、このような塗り方をすると材料が沢山いるようだ。
クリックすると大きな写真になりますクリックすると大きな写真になります 入り口コンクリートの補修作業は単純な作業だが、炎天の下でバラスと砂とセメントを混ぜる作業は前期高齢者といえどもかなり苛酷であった。ミキサー車が入るなら頼むのがいいのだろうが。結局、1坪足らずの部分を厚さ 2 ~ 3 cm程度に覆うのに、18kg 入りのバラスが4袋、砂が3袋、25kg セメントが約1袋では足らないくらいであった。
 プラ舟にバラス、砂、セメントを入れて中腰で混ぜ合わせる作業は腰が痛くなってもっともつらい。大阪に比べれば、多少温度は低く、ウグイスのさえずりや虫の音が心地よいが、日中はやっぱり夏だ。冷たいお茶を何回も飲み、一作業するたびに腰をかける。よくサボル、腕の悪い職人だ。

 2日目の午後2時ころ、どうやら作業も一段落した。ウグイスのさえずりや虫の音に混じってカナカナゼミが鳴き出した。カナカナゼミは夜明け前とこの時刻くらいから鳴き出すようだ。ひょっとしたら、夕立が来る前だったからかもしれない。夕立がトタン屋根をたたくのを聞きながら、汗を風呂で流して帰途についた。

 Hütte:Hachi は、DIY を試すには格好の場を提供してくれている。

ハチ高原近辺私的観光地図に掲載 

 

2008年7月15日

瀞川平:但馬高原植物園、夏の花

 気象庁の梅雨明け宣言はまだのようだが、小学校以来の友を誘って氷ノ山山麓にある RabitHouse に出かけた。
クリックすると大きな写真になりますクリックすると大きな写真になります 小屋のあるところは、標高630m 程度だが、風が吹かないとさすがに暑かった。それでも、夕食に小屋の中で七輪の炭火BBQしても暑さはあまり感じなかったから、日が落ちると気温が下がったに違いない。
 近くの農道を散策すると、ハルジオン、トラノオ、ドクダミなどの白い花が満開である。紫色のノアザミの花に、ツマグロヒョウモウラギンヒョウモンンが羽を休めていた。傍らの雑草で、スジグロシロチョウモンキチョウ(上の黄色いほうが♂で、下側の白いのは♀)が交尾をしていた。StudioYAMAKOのオーナーが教えてくれた。
 電線にホウジロがさえずっている「ことりのさえずり」の岩下さんに教えてもらって、小鳥のさえずりも少しずつ分かるようになってきた。ネットで知識が amplify していくのを実感している。

クリックすると大きな写真になります 共同所有者のパートナーといくときは、たいがい補修作業に時間を費やすのだが、今回は花好きの友のために、翌朝、ハチ高原・東鉢伏経由で兵庫県美方郡香美町にある「但馬高原植物園」に行ってみることにした。この数年の間に道路がずいぶん整備されている。

 この植物園の近くには、安藤忠雄が設計した「木の殿堂」という博物館もある。なぜこんなところにと思うが、うろ覚えを頼りにググッテみるとバブル時の昭和45年(1970年:大阪万博開催の年、ついでに私が結婚した年)に、全国植樹祭が、この村岡で行われているのである。「木の殿堂」へのアプローチ横には、広大な芝生があり、その中に天皇と皇后がお手植えされた「兎塚杉」と「ナナカマド」が囲われた柵の中で大きくなっている。どうりでと納得である。

クリックすると大きな写真になりますクリックすると大きな写真になります 「但馬高原植物園」は、この「木の殿堂」からハチ北スキー場へ向かって 1km ほど広い道を走ったところにある。この一帯を、「瀞川平(とろかわだいら)」というらしい。入園料は 500円である。
 2年ほど前に、家内と来たときに比べると広大な庭はなかなか整備が行き届いているように思う。ヤマアジサイが見頃だというので、清楚な花を鑑賞しながら歩いていると、若い男性の作業員が花の種類などを丁寧に教えてくれた。ここの植物園は、珍しく若い男性達が園の手入れをしている。兵庫県の山奥には働き場所が少ないのかもしれない。

クリックすると大きな写真になりますクリックすると大きな写真になります 植物園の敷地内にある「和池の大カツラ」の根元からは清水が豊かにわき出ている。備え付けのグラスで飲んでみると冷たくて柔らかい純水が暑さで渇いた喉をうるおしてくれた。
 緑の中に続く散策道端には、ホトトギスや白蝶草、ヘメロカリスといった花が咲いている。もちろん、オオバギボウシ、トラノオといった初夏の花が満開である。
 入り口案内所と花の苗などを売っている売店横のクーラーの効いた洒落たレストランで、そば定食の早い昼食を摂った。

ハチ高原近辺私的観光地図に掲載 

 

2008年7月14日

7月のJazz Download:Imagination, Star Eyes

 先月は、MovableType のバージョンアップにすっかりふりまわされて、そちらに気をとられ eMusic からの毎月ダウンロードできる契約に期限を忘れてしまっていた。1ヶ月くらい経つのは速いものだ。

 今月は、ポストイットにメモを書いて、長い間パソコンのボディに貼っていた曲名から選んでダウンロードした。なぜ、これら曲名をメモしていたのかははっきりしない。おそらく、"Tin Tin Deo" が入っている Art Pepper のアルバムからメモしたものと思われる。今月ダウンロードした "Straight Life", "Imagination", "Star Eyes" の3曲とも "Diablo's Dance" というアルバムに含まれている。

クリックすると大きくなります。 この3曲も含めて、Radio Senboku のプレイリストを全面的に置き換えた。
 流している曲も、MT のバージョンアップにかまけて改定なしに2ヶ月近く放置していたが、チャネルを合わせてくれているファンもあるようだ。
 左のスクリーンショットにもあるように、この1ヶ月もアメリカのファンが多い。ポーランドにも Jazz 好きは多いようだ。Jazz は文句なしにインターナショナルである。
 現在放送している曲名と Artist の Playlist を用意した。

 MT のバージョンアップに合わせて、Jazz Collection List も今まで使っていたページのソースを全面的に見直した。今までのソースは、Excelで作った表をWebページとして保存したときのHTMLソースであり、私の知識では理解しがたいコードも入っていたので、自分で理解できるコードに置き換えた。単純な作業であるが、2000行以上もあるコードはいじるのに結構な時間を使った。
 訂正したものはこのブログのウェブページとして置き、/public_html/ の .htaccess に従来のリンクからリダイレクトするように設定した。  

2008年7月 5日

二上山・万葉の森のあじさい

クリックすると大きな写真になります 友に、蜻蛉池公園のあじさいとは、また違ったあじさいが味わえると教わった二上山のあじさいを見に行った。
 左の写真のように、あじさいは登山道脇の樹々の根元あたりに植栽されている。朝7時過ぎの早朝だが、土曜日のせいかそれとも平日でもそうなのか、挨拶を交わすのはもう登山をすませて下りてくる熟年族だ。

クリックすると大きな写真になりますクリックすると大きな写真になります 後期高齢者にとってはちょっとこたえる雌岳頂上への坂道の両側に、あじさいはずっと続く。
 ガクアジサイが多いようだ。ボール状のあじさい(ヒメアジサイ)は、濃紺のものが多い。
 ガクアジサイに小さな蝶に似たきれいな蛾が羽を広げていたが、もう少しいい角度からと思ったときは飛び去っていた。

クリックすると大きな写真になりますクリックすると大きな写真になります 登山道脇に、釣り鐘状のホタルブクロが咲いていた。ササユリも咲くようだが、「持って帰るな!」という看板ばかりで、肝心の花は見あたらなかった。
 家内が沢山の赤い実をつけたヒメリンゴの木を見つけた。


クリックすると大きな写真になりますクリックすると大きな写真になりますクリックすると大きな写真になります ゆっくりゆっくり歩いて雌岳の頂上までは、50分くらいである。頂上の看板脇につけられた寒暖計は、25℃を指していた。
 頂上の広場には、ロータリークラブ寄贈の石の日時計がしつらえられている。時計は辰の刻朝の8時ころだ。
 この山は万葉の森というだけあって、あちらこちらに万葉集の歌板がある。
 今朝は少々蒸し暑かったが、この山は来るたびに、途中で見かけた莫山の文句のような気分になるのかもしれない。




泉北近辺私的観光地図に掲載

2008年7月 4日

.htaccess で移転先URLページへ誘導する:MT4.1

 MT4.1 で「小粋空間」さんのテンプレート・セットに移行したときに、ブログ名を変更した。とりあえず、元のメイン・ページ( http://n-shuhei.net/blog/ )へ訪問された方には、以前 ISP のホームページを移転するときに使っていた次のようなメタ・タグをメイン・ページの<head> ~ </head> においた。
<meta http-equiv="REFRESH" content=" 5;URL=http://user-domain/new-blog/">

 これは、ページの移転の知らせを発信されている方のソースから、何も分からないままいただいたものである。この方法については、「.htaccessを活用する方法(6)」に詳しい。

 このメタタグをおくことで、元のメインページに訪問された方を新しいメインページに誘導できるが、Google search などで個別のアーカイブへ直接訪問される方は新しいページには誘導するには、全ての個別のアーカイブにメタタグを設置しなければならないから大変な作業となる。

 そこで、上の記事にも紹介されている .htaccess を使って誘導(redirect)する方法を試してみることにした。以前に、この .htaccess を使ってページへのアクセス制限を設定したことがあるが、redirect を使うのは初めてである。

 説明通りに、次のコードを元のブログ:http://n-shuhei.net/blog/ と同じフォルダーにある .htaccess ファイルに追加した。{私の場合、FTP ソフトは FFFTP を使っているが、いったんローカル側で、テキスト・エディター(私の場合は、秀丸)でコードを追加したファイルを作り、これを元の位置にアップロードしなければならない。}
Redirect permanent /blog/index.php http://n-shuhei.net/atelier/index.php

 このコード追加では、先ほどのメタタグの挿入と同じような効果が得られるだけである。

クリックすると大きくなります
 アクセス解析にはアクセス解析サービスの Research Artisan を使っているが、その解析のひとつである先月のページ別訪問は、screenshot のように、ほとんどが元のブログ(頭に Atelier Shuhei Weblog: とある。新しいブログは、頭に単に Atelier: とあるもの)のアーカイブへの訪問である。また、少ないがカテゴリー・アーカイブへの訪問もある。MT3.3 を単純に MT4.1 へバージョンアップした元のブログ・アーカイブはそのままおいているので、ページが見つからないということはないが、コメント入力などが不備な(実はそのために新しいテンプレート・セットを導入した)ページへの訪問となっている。
 図中にある 「Atelier Shuhei Weblog: 001DIY アーカイブ」への訪問を redirect するには、次のようなコードを .htaccess に追加する。
RedirectPermanent /blog/001diy/ http://n-shuhei.net/atelier/001diy/


 数が少なければ、上のようなコードを追加していけばよいのだが、個別アーカイブごとにコードを追加するのは大変な作業となる。そこで、「小粋空間」さんに紹介されている「.htaccess によるリダイレクト」を参考に、.htaccess に追加するコードを作成することにした。

方法は、
  1. この記事の 3.1 項にあるコードの次の個別アーカイブ部分を
    <MTArchiveList archive_type="Individual"> RedirectPermanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntries><$MTEntryLink$></MTEntries> <$MTBlogURL$>archives/
    <$MTArchiveDate format="%Y/%m/%d_%H%M"$><MTEntries>.php</MTEntries> </MTArchiveList>
    下のようなコードに書き換え、説明通り「リダイレクト」(出力ファイル名:htaccess.txt)という名前でインデックス・テンプレートを作成した。
     <MTArchiveList archive_type="Individual"> RedirectPermanent /blog/archives<$MTArchiveDate format="/%Y/%m/%d-%h%m%s"$>.php  http://n-shuhei.net/atelier/<$MTArchiveDate format="%Y/%m/%d_%H%M"$>.php </MTArchiveList>
    ここでの $MTArchiveDate format= は、元のブログ(blog)のものは「アーカイブ・テンプレート」→「エントリー・アーカイブ」(MT3.3 ではこのような名称である)の「アーカイブ・マッピング」のパスで使っているフォーマットである。新しいブログ(atelier) では、「アーカイブ・テンプレート」→「ブログ記事」「アーカイブ・マッピング」のパスで使っているフォーマットである。
  2. 新しく作成したインデックス・テンプレート「リダイレクト」を保存・再構築すると、FFFTP のサーバー側に次のようなファイル(htaccess.txt)が表示される。
    RedirectPermanent /blog/archives/2008/06/10-110702.php  http://n-shuhei.net/atelier/2008/06/10_1107.php
    RedirectPermanent /blog/archives/2008/06/04-102457.php http://n-shuhei.net/atelier/2008/06/04_1024.php
    RedirectPermanent /blog/archives/2008/06/03-194435.php http://n-shuhei.net/atelier/2008/06/03_1944.php
    .
    .
    .
    .

     この作成されたコードをコピー&ペーストで、.htaccess に約400 のエントリー分コードを追加した。
     一見、上手くコード生成していると思われたが、うまく機能しない。
     先ほどのResearch Artisan に表示されるページのURLと作成したコードを子細に照らし合わせてみると元のアーカイブURLの分表示(%M)が月表示(%m)になっている。
    2008/06/04-102457 が正解なのだが、参照にいっているURLの表示では、2008/06/04-100657 となっているのだ。どうやら、MT3.3 から MT4.1 にバージョンアップしたときに、アーカイブ・マッピングの指定を間違ったらしい。 小文字の %m は月表示であり、大文字の %M は分表示なのだ。2~3の例で .htaccess に追加するコードを間違った方にしたら、上手く機能するようになった。
  3. この作業を作成したファイルをテキスト・エディターの秀丸にコピー&ペーストして行った。単純な作業だが、400近くの修正は結構なアルバイトであった。
  4. 修正したファイルを、ローカル側の.htaccess にコピー&ペーストして、サーバー側にアップロードすると、うまくリダイレクトしてくれるようになった。



(追記:2008/7/4)元のカテゴリー別のアーカイブにも訪問が割合あるので、上と同じような方法で、.htaccess に追加するコードを「小粋空間」さんの記事を参考に作成した。数が少ないので、マニュアルにいじってもそれほどの作業ではない。ただ、バージョンアップしてから、カテゴリー名を変更している場合は、特別なひもつけが必要である。
(追記:2008/7/8) Research Artisan をつぶさにみると、数は少ないが元の月別アーカイブに訪ねて来る人があるようなので、先ほどの「リダイレクト」インデックス・テンプレートを次のコードに書き換えて、.htaccess に追加するコードを作成した。月別アーカイブについては、コードの修正は全くなかった。
 この「リダイレクト」インデックス・テンプレートは、コードを生成するためのテンプレートなので、書き換えても問題はない。
 これで、元のブログはサーバーから削除しても大丈夫と思うが、まだ容量にゆとりがあるのでしばらくおいておくことにしている。
<MTArchiveList archive_type="Monthly">
RedirectPermanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/index.php http://n-shuhei.net/atelier/<$MTArchiveDate format="%Y/%m"$>/index.php
</MTArchiveList>

 Monthly Archive の後尾には、index.php をつけないと、individual archive のリダイレクトに不都合が起こる。