このブログを検索

大文字小文字を区別する 正規表現

Atelierで“continue”が含まれるブログ記事

2016年11月11日

隠居のスマホ備忘録:山旅ロガーを使う。測定結果を Google Map に表示する方法

前回のYahoo!地図印刷のエントリーを書くために、いろいろとウェブサーチをしているときに、Yahoo! が地図上にルートを描くことのできる「ルートラボ」というユティリティを提供していることが分かった。
 この「ルートラボ」を使って、ご近所散策ルートを作成したのが、下の地図である。作成方法などについては、ルートラボの使い方に詳しく載っている。
 旅行後の記録として、地図に記載しておくのは便利かもしれないが、まだ使い方をよく理解していないので記録ができない。

Yahoo! ルートラボによる地図作成

 

 この「ルートラボ」の学習と関連して、Google MAP での地図作成を再度復習してみると、前回2014年11月7日に記載した手順からさらに進化していることが分かった。 それで上で「ルートラボ」で表示した近頃散策しているコースを、スマホのアプリ山旅ロガーで記録した結果をもとにルート地図を作成した方法を記録しておきたいと思う。
 最新の方法で作成した地図を以下に示す。 

Google Map での地図作成



 2014年11月7日に記載した手順を最新の方法に修正して記録しておきたい。
山旅ロガーで記録したKML ファイルで歩行記録地図を作成する方法
 
  1. Google Map を起動する。Google のアカウントを持っていない場合には、新たに登録する。アカウントをひとつ持っておけば、Gmail(Web mail)、Google chrome(ブラウザ)、You Tube 、Google Map(地図検索)、Google ドライブ(クラウド型データ保存)などを利用できる。特に、Google ドライブは、スマホからデータを転送するときに便利なので、インストールしておきたい。
    起動すると登録したアカウントの場所を中心とする地図が表示されるはずである。

    Google 地図検索画面
    gmap01.JPG

  2. 画面左上の検索窓左にあるメニューアイコンgmap02.JPGをクリックすると表示される「マイプレイス」をクリックすると表示される画面で、さらに「マイマップ」をクリックすると枠の下の方に地図を作成という青い文字が現れる。
  3. 地図を作成をクリックすると「無題の地図」と表示されたポップアップが表示される。
    gmap03.JPG

  4. 上の画面で、インポートをクリックすると、下のようにKMLファイルを選択する画面となる。私はスマホで山旅ロガーに記録したKMLファイルを Google ドライブに転送しているので、<Google ドライブ>タグをクリックして <マイドライブ>を開き収納されているKMLファイルをインポートした。
    gmap04.JPG

  5. 最近の散策で山旅ロガーを使って記録した KMLファイルをインポートすると、下のスクリーンショットのように表示された。
    gmap07.JPG

  6. このとき、<プレビュー>タグをクリックすると適切な縮尺で表示される。
    ここで<編集します>をクリックすると下のスクリーンショットのように編集のためのボタンガ表示される。
    この手順以降の地図修飾手順がが、2014年11月7日のエントリーと大きく変わっている。
    gmap06.JPG

  7. <マーカーを追加>ボタンgmap11.JPGをクリックするとカーソルが十字マークになるので、目的とする位置でクリックしてマーカーを設置する。
    マーカーを設置するとその位置にポップアップ画面が表示されると同時に、左のポップアップ画面のマーカーのタイトルにカーソルすると、スタイルアイコンgmap13.JPGが出て来る。ここで<マーカーアイコンの色や形を選択できるようになっている。
    gmap14.JPG
  8. マーカーを保存し、再度マーカーをクリックすると、編集アイコンが表示されるので、<編集ボタン>でリンク先を挿入したり、<カメラボタン>をクリックして該当マーカーに関する写真をアップロードしたりできる。
    gmap15.JPG


  9. 上のいろいろなツールを使って、地図を編集し終わったら、左上のボックスの<コマンドボタン>gmap16.JPGをクリックすると表示されるボックスで「地図をコピー」を選択すると「Google マップ」⇛「マイプレイス」⇛「マイマップ」に保存できる。
    上の同じボックスで、「自分のサイトに埋め込む」を選択すると、HTMLコード( <iframe ・・></iframe>)が表示されるの、これをコピーしてブログに貼り付ければ、ブログ上に作成したMapが表示できる。

 行程を記録する KML ファイルがあれば、ルート地図の作成はなんとかなりそうである。もう少し学習して、旅行地図を google maps API の助けなしに作ってみたいと考えている。

2016年1月22日

隠居のJazz: Radio Senboku を閉鎖します。

大晦日に、突如 Live365 から次のようなメールが入った。

Dear Live365 Listener,

For 17 years, Live365 has offered small webcasters the opportunity to stream music and talk programming, providing an alternative distribution channel for diverse, quality content on the Internet in a legally responsible way.

Recently, the Copyright Royalty Board, the governing entity for establishing the sound recording royalty rates that are paid to copyright holders, has published the new rates for 2016-20. The previous provisions for small webcasters to opt for a percentage of revenue model were not renewed.

The current provisions end at the end of 2015. The absence of this license will make legally streaming copyrighted musical content prohibitively expensive for many small to mid-sized Internet broadcasters. Live365 relies on this license for many of their broadcast partners and, as such, has hard decisions to make regarding their future in the streaming industry.

Two weeks ago, Live365 faced an additional blow, losing the support of its investors who have helped the company with its mission for over a decade.

The company was forced to significantly reduce staff and is now actively looking for partners to help continue the service into 2016. At this time, Live365 is planning to keep their stations active while getting the word out about this investment opportunity. With nearly two decades of Internet streaming experience and thousands of paying customers, this could be an ideal situation for a company looking to diversify into streaming audio.

CEO N. Mark Lam has begun initial discussions with possible business partners as the company looks to new options in the new year.

Dean Kattari, Director of Broadcasting for Live365:

"The true value of Live365 lies in it's diversity of content - it's a sanctuary where you can hear music and other content that it so unlike the template broadcasting that is heard on most terrestrial radio. These stations are the hard work of real human beings who use Live365 to share their vision with the world. It's a home for musical discovery because many of these stations play emerging artists that terrestrial stations are reluctant to take a chance on. It would be a great loss for this to all go away."

While Live365 is going through this process, we understand that our listeners will have questions about how all of this will affect their service so we have provided a simple FAQ section to help answer some of them.

We thank you for being part of the Live365 family and hope for the best in 2016.
Rock on,
The Last of the Live365ers

FAQ

So what happened?
Please refer to the full PR bulletin here. Basically, Live365 may not be able to continue service for our broadcasters after January 31, 2016; so streaming audio may stop at that point.

-------------------------------------------後略----------------------------------------------------------------

英語にはあまり自信のない私には、少々難しい表現もあるが、要するに著作権協会は、Live365 に期限付きで与えていた条項を2015年限りで更新しないことにしたらしい。 この条項がはずれれば、個人的 broadcaster は、とても支払いできるほどでない金額を負担することになる。それに、Live365 のスポンサー(investor) の支援が受けられなくなったので、small broadcaster へのサービスは打ち切ることにしたというのだ。
 そして、1月16日になって正式に、1月末をもって good bye したいと言ってきた。
 ほぼ9年間続けてきた Radio Senboku は閉局せざるを得なくなった。昨年12月に、Europian Piano Trio と日本人女子の Trio の曲を取り入れたためだとおもうが、ヨーロッパの国々からのアクセスが増えてきていたので、放送局の継続に意欲が燃えてきた矢先だった。残念である。
 最近の、そして最終のアクセス状況を記録しておきたい。

全ジャンルでのアクセスランク
160122-03.JPG

 順位が上がっているのは、どうやら撤退している broadcaster が増えているせいらしい。

ジャンルJazzでのアクセスランク
160122-02.JPG

地域別のアクセス時間(過去30日間)
160122-01.JPG

 今までは、Spain, Germany, UK, Italy などからのアクセスはほぼゼロであった。

2014年11月 7日

隠居のスマホ備忘録:山旅ロガーを使う。(3)測定結果を Google Map に表示する他の方法


 山旅ロガーで得られたトラッキング・データ KML ファイルをGoogle Map で表示する方法については、前回のエントリーで記録した。そのような作業をしているうちに、もっと簡単で便利な方法を Google が提供していることが分かった。今回は、その方法について記録しておきたいと思う。

 地図検索に使ってきた Google Map は、今年の2月くらいに新しくなっている。
 新しくなった Google Map では、オリジナルのカスタム マップを作成して共有することができる。この場合に、山旅ロガーで得られる KML ファイルを使うことができる。

 作成方法を、以下順を追って記録する。
  1. Google Map を起動する。Google のアカウントを持っていない場合には、新たに登録する。アカウントをひとつ持っておけば、Gmail(Web mail)、Google chrome(ブラウザ)、You Tube 、Google Map(地図検索)、Google ドライブ(クラウド型データ保存)などを利用できる。
    起動すると登録したアカウントの場所を中心とする地図が表示されるはずである。

    Google 地図検索画面
    new-map-01.JPG

  2. 画面左上の検索窓をクリックすると表示される「マイマップ」をクリックすると、作成ボタンが現れる。

    new-map-03.JPG

  3. 作成ボタンをクリックすると「無題の地図」と表示されたポップアップが表示される。
    new-map-06.JPG

  4. 上の画面で、インポートをクリックすると、下のようなKMLファイルを選択する画面となる。どのような形式のファイルか確認はしていないが、CSV ファイルでもOKのようだ。
    new-map-07.JPG

  5. 前回のエントリーで使った山旅ロガーで得た KMファイルをインポートすると、下のスクリーンショットのように表示された。
    new-map-08.JPG

  6. この画面で、例えば 15 のマーカーをクリックするとこの地点について編集できる画面となる。
    new-map-09.JPG

  7. この編集画面で、様々なことができる。編集ボタンをクリックするとマーカーをクリックした時に表示されるテキストやURL へのリンク、写真の表示などを指定できる。
    また、左枠内のマーカーにカーソルを合わせた時に表示されるnew-map-12.JPGボタンをクリックすると下の画面のように数多くのアイイコンを選択できるようになる。アイコンは、自分が作成したものでもOKのようだ。
    編集画面の上部にあるツールアイコンのライン描画new-map-13.JPGを使うと自由に線を引くことができる。
    また、地図の表題を変更するのもこの画面でできる。
    new-map-10.JPG

  8. 上の編集のためのツールを使って、下のような地図を作成することができる。
    new-map-11.JPG

  9. この画面の右上にある緑の「共有」ボタンをクリックするとメールやFacebookでこの地図を送信できたり、ブログなどで公開できたりする。
    右をクリックすると地図が表示される。駅への道地図 


 このGoogle Mapでオリジナルのカスタム マップを作成する方法を使えば、散策するときにスマホの山旅ロガーを起動し、行動を記録しておけば、ブログのエントリーに面白いかもしれない。いろいろと試してみたいと思う。

2013年10月 4日

隠居のJazz:Radio Senboku の曲目(Piano Trio)を更新する


 私がWebradio の Live365 に開設しているRadio Senbokuでは、一昨年の11月から、Piano Trio Jazz ばかり流してきており、ほぼ1年となる。
 今年の6月の終わりに、6回目の更新して以来3ヶ月ほど同じ曲目を流してきたが、自分自身もそろそろ耳につくようにとなってきたので、更新することにした。

 Live365 サイトのジャンル Jazz station でのアクセス時間順位は、40位台になって聴いてもらっている人たちは増えているのだが。
 ただ、私と同じように、Jazz Piano Trio の曲目は好きだが飽きてきたリスナーがいるかもしれない。世界には同じような嗜好を持つ固定リスナーもいるようで、その人たちのためにもと更新した。この3ヶ月の間に、アメリカのソルトレークに住む方(モルモン教徒ではないといっている)やオーストラリアの人から、気に入ってるとのメールをいただいた。メールのやり取りを抜粋させていただく。

The more I listen to your station, the more I enjoy it. Great mix of sweet jazz!

I live in Salt Lake City, Utah, USA (I'm not mormon, slc is kind of the outlier of utah in that less than half the people are lds). Prior that that I've lived in Phoenix, western massachusetts, southern connecticut, napa and san francisco california, central vermont, southern maine and central new york (I was a chef, single until age 40 so whenever I wanted a new job I'd pack up the truck and drive away).

Keep on keepin' on !

Many thanks for your continued excellence. Your station always makes my wife and I happy.

Peace,
rob

Hello,

I wanted to let you know how much I enjoy listening to your station many hours a day. It makes a real difference in my life.
I am listening via Live365 from Canberra, Australia using an SGS2.

Cheers,
Arnie


180曲もの playlist を作るのは時間がいる仕事なのだが、インターネットの向こうで、聴いていただいている人がいると思うと楽しい作業だ。

 Live365 は broadcaster に、世界でどれくらいのリスナーが、どれくらいの時間 Radio Senboku を聴いてくれているかがわかるデータを提供してくれる。

ジャンルJazz(329局開設している)でのアクセス時間順位  graph01.JPG


国別視聴時間(過去30日間)
graph03.JPG
世界32カ国の人たちがアクセスしている。


アメリカの都市別視聴時間(過去30日間)
graph04.JPG
Salt Lake City が断然多い。


 なお、現在放送している曲名のリストは、右メニューの【Radio Senboku Playlist】に表示している。

2012年7月12日

隠居のパソコン備忘録:Google Maps API V3 で旅行地図を作成する


 Google が提供する自分好みの地図を作成できるサービス Maps JavaScript API の バージョンUP(V2 ⇒ V3)が2009年5月に発表されている。最近になって、V2 は廃止され、V3 がリコメンドされていることを知った。プロ向けと思われる【Google Deveopers】というサイトにある【Google Maps JavaScript API V3】 のページには、次のような記載がある。
注: このページに記載されている Google Maps JavaScript API バージョン 3 は、正式な JavaScript API となりました。JavaScript API バージョン 2 は、Google の廃止ポリシーにより正式に廃止されました。アップデート、拡張された新しいバージョンに、コードを移行することをおすすめします。

さらに、Deprecated(非推奨という意味か?) と記されている V2 のページには、次の記載がある。
Note: The Google Maps JavaScript API Version 2 has been officially deprecated as of May 19, 2010. The V2 API will continue to work until May 19, 2013. We encourage you to migrate your code to version 3 of the Maps JavaScript API.

なんと来年5月には、動かなくなりそうだ。私のサイトには、V2 作成した地図を数多く掲載している。慌てて、V3 の学習を始めた。V2 に比べると大幅に変更になっている。サンプルコードをパクリして、作成してきた地図を、基本的な知識が乏しい老人が、今までのコードをバージョンアップするのは至難の技に思われる。それで、今までのコードのバージョンアップは諦めて、ネットで紹介してくれているV3 版のサンプルコードを頼りに、新しく書いて見ることにした。

 ようやくたどり着いたのが、7月10日に収載した【加賀地方旅行地図】である。この地図を例として、作成方法を備忘録として記録しておきたい。

 やりたいことは、
  1. 旅行した地域をカバーする地図を表示する。
  2. 観光した地点にマーカーを立てる。
  3. マーカーをクリックすると吹きだし(infowindow) がでる。
  4. infowindow には、撮った写真の表示や観光地点のURL へリンクを表示できるようにする。
  5. 地図の枠外に訪問地点名を表示し、クリックすると地図上の該当マーカに、infowindow が表示するようにする。
  6. できあがった地図は、私のブログ(Movable Type 4)で、エントリーとして機能するようにする。

 このような地図は、Google Maps API V2 では、できていたのであるが、V3 では初めての試みである。
 ささやかな JavaScript の知識か持たない私の技術では、これを一から作成することは困難である。Sample コードをネットで探し回したところ、【Using the Google Maps API v3】 というページに、要望にあったコード(Mike Williams' tutorial The Basics - Part 2: Adding a clickable sidebar translated to v3)を見つけることができた。Mike Williams' tutorial は、V2 の地図を作成するときにほとんど丸写しに近く参照させていただいたサイトである。残念ながら、このサイトでの V3 によるサンプルコードはない。このV2 でのコードをどなたかが、V3 に translate されたコードである。

 このサンプルコードをもとに、作成した旅行地図 のコードは、以下のとおりである。
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Google Maps Javascript API v3 Example: Adding a clickable sidebar</title><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<style type="text/css">
  html, body { height: 100%; } 
</style>

<script type="text/javascript"> 

//<![CDATA[

    var side_bar_html = ""; 
    var gmarkers = []; 
    var map = null;

function initialize() {
    var myOptions = {
    zoom: 10,
    center: new google.maps.LatLng(36.338359,136.446075),
    mapTypeControl: true,
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
    navigationControl: true,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  google.maps.event.addListener(map, 'click', function() {
   infowindow.close();
   });

  var point = new google.maps.LatLng(36.056871,136.355095);
  var marker = createMarker(point,"永平寺","<a href='./travel-eiheiji.html' target='_blank'>永平寺 写真サムネイル画像</a>")

  var point = new google.maps.LatLng(36.237628,136.125712);
  var marker = createMarker(point,"東尋坊","<a href='./travel-tojinbo.html' target='_blank'>東尋坊  写真サムネイル画像</a>")

  var point = new google.maps.LatLng(36.228506,136.175559);
  var marker = createMarker(point," そば処あおき","<a href='http://fukui-shop.net/soba/208449/' target='_blank'>URL: そば処あおき</a>")

  var point = new google.maps.LatLng(36.243996,136.374664);
  var marker = createMarker(point," 山中温泉","<a href='./travel-yamanaka.html' target='_blank'>山中温泉 写真サムネイル画像</a><br /><a href='http://yoshinoyairokuen.jp/viewpoint/map_aki_fuyu.pdf' target='_blank'>PDF: 山中温泉案内図</a><br /><a href='http://www.daiwaresort.co.jp/kajikasou/' target='_blank'>URL: 河鹿荘ロイヤルホテル</a>")

  var point = new google.maps.LatLng(36.322871,136.294327);
  var marker = createMarker(point," 鴨池観察館","<a href='./travel-kamoike.html' target='_blank'>鴨池観察館 写真サムネイル画像</a><br /><a href='http://park15.wakwak.com/~kamoike/' target='_blank'>URL: 鴨池観察館</a>")

  var point = new google.maps.LatLng(36.56098,136.658249);
  var marker = createMarker(point," 金沢21世紀美術館","<a href='./travel-21seiki.html' target='_blank'>金沢21世紀美術館 写真サムネイル画像</a><br /><a href='http://ja.wikipedia.org/wiki/%E9%87%91%E6%B2%A221%E4%B8%96%E7%B4%80%E7%BE%8E%E8%A1%93%E9%A4%A8' target='_blank'>URL: 金沢21世紀美術館</a>")

  document.getElementById("side_bar").innerHTML = side_bar_html;
}
var infowindow = new google.maps.InfoWindow(
  { 
    size: new google.maps.Size(150,50)
  });

function myclick(i) {
  google.maps.event.trigger(gmarkers[i], "click");
}

function createMarker(latlng, name, html) {
    var contentString = html;
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        zIndex: Math.round(latlng.lat()*-100000)<<5
        });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(contentString); 
        infowindow.open(map,marker);
        });

    gmarkers.push(marker);

   side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a>  ';
}
 
//]]>

</script> 

</head> 

<body style="margin:0px; padding:0px;" onload="initialize()"> 
     <table border="1"> 
      <tr> 
        <td> 
           <div id="map_canvas" style="width: 720px; height: 650px"></div> 
        </td>
      </tr><tr>   
        <td valign="top" style="width:720px; font-size:small; color: #4444ff;"><strong>観光場所:クリックすると該当場所に吹きだしがでます。</strong><div id="side_bar"> </div> 
        </td> 
      </tr> 
    </table> 

    <noscript><p><b>JavaScript must be enabled in order for you to use Google Maps.</b> 
      However, it seems JavaScript is either disabled or not supported by your browser. 
      To view Google Maps, enable JavaScript by changing your browser options, and then 
      try again.</p>
    </noscript> 

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> 
 </body> 
</html> 


 このコードについて、若干補足して記録しておきたい。
  • マーカーを立てる経度・緯度の数値は、「Google マップ 地図検索」で検索した地点に出てくるマーカを右クリックすると出てくるポップアップにある「この場所について」をクリックすると 検索文字を入れるボックスに表示される。
  • infowindow の中に表示するURLや写真ページヘのリンクは、HTMLコードを書く要領で書けば良い。
  • side-bar は サンプルコードでは 地図の右枠外であるが、HTMLコードでテーブルを作成する要領で(</tr><tr> ) 行を変えれば、地図の下枠外に表示できる。


 なお、写真の表示に、ブログで使ってきた lightbox (当ブログで使っている写真表示手法)のコードを書いても、Google Maps API というJavaScript の中で、lightbox というJavaScript を使うことになり、うまく表示されない。もう少し勉強すればできるのかもしれないが、次善の策として、ワンクッションおいてサムネイル画像を表示することにした。なお、lightbox については、今回の学習中に、jQuery.js という JavaScript のライブラリーを使ったバージョンが出ていることが分かった。(従来は、prototype.js を使っていた)
jQuery 版lightbox については、稿を改めて記録したい。

 作成した地図を、MT4 のブログにエントリーするには、<iframe>をつかって次のようにブログの中に取り込めば良い。
<iframe src="http://n-shuhei.net/atelier/maps/travel-kaga.html" width="740" height="700" scrolling="NO" frameborder="0"></iframe>


 なお、ブログの右フレームに載せている地図は、Google Maps API V2 で作成しているが、ここでは、xml ファイルを使っている地図が多い。V3 でのXML との連携についても学習しなければならない。おかげで、当分痴呆にはならないだろうが。

2009年5月21日

隠居の音楽:(続)MP3 ファイルの ID3 タグを編集する

 前回の「隠居の音楽:mp3 ファイルのID3 タグを編集する」で書いたように、現在、昔にダウンロードした ID3 タグなしの MP3 ファイルに、 Roxio Easy Media Creator 10 Suite を利用して ID3 タグを附加している。
 実は、この作業の結果が音楽ファイルのデータベースである Windows Media Player(WMP) に反映されるタイミングがよく分かっていなかった。それを探るために、WMP ライブラリーをいろいろと操作していて気がついた点を記録しておきたい。

  • WMP のデータベース・ファイルの存在をあまり意識していなかった。 WMP のデータベース・ファイルは、 WindowsXP なら C:¥Documents and Settings¥username¥Local Settings¥Application Data¥Microsoft¥Media Player に、WindowsVista ならC:¥ユーザー¥username¥AppData¥Local¥Microsoft¥Media Player にあり拡張子が .wmdb のファイルがそれである。
    フォルダーが表示されない場合は、「マイコンピュータ」→「ツール」→「フォルダーオプション」→「表示」で「すべてのファイルとフォルダーを表示する」をチェックするなどの設定をしておく必要がある。
  • ..\Media Player のフォルダー:クリックすると大きくなります
  • 上のフォルダーをたどって、WMP のデーターベースを覗くと過去に分からないまま WMP Library データーベースをいじった残骸が残っている。
    マイクロソフトの「コンピュータのライブラリを "再構築" するには、どうすればよいですか?」を参照して、WMP Library データーベースの再構築を行った。
    メインと思われる CurrentDatabase_360.wmdb のバックアップをとってから、その他のファイルも含めて削除した。
    用心のため、上記のインストラクトに指示はないが、wmpfolders.wmdb も wmpfolders.bak としてバックアップをとった。
    その上で、WMP を開いて F3 キーで開くポップアップ画面から指定したフォルダーに存在するファイルの追加を実行すると、新たに CurrentDatabase_360.wmdb が作成された。
    と同時にスクリーンショットにあるように、wmpfolders.wmdb や LocalMLS_0.wmdb などのファイルが作成されたが、これらのファイルがどのような機能を持っているのか、よく理解できなかった。
  • ライブラリー追加結果画面:クリックすると大きくなりますライブラリー追加画面:クリックすると大きくなります
  • このように、WMP を再構築すれば、 Roxio Easy Media Creator 10 Suite を利用して附加したID3 タグは最新に更新されるが、 ID3 タグを附加するごとに再構築は面倒である。
     それで、いろいろと方法を探ってみたが、これといった方法がヒットしなかった。
    ネットサーチで示唆されているWMP の「ライブラリー」のセレクト画面にある「メディア情報への変更の適用」では、プログラムが動いてはいるがいつまで経っても終わらない。
    いろいろと試してみると、経験的に新しいファイルの追加ではないが、ライブラリーに追加(F3)を実行すると結果画面は「追加されたファイル数」は0となるが、附加した ID3 タグが WMP ライブラリーに反映されることが判明した。

 これで、 ID3 タグをWMP に付加する手順が分かったので、あとは時間を使って音楽ファイルの情報を充実したい。音楽データベースを豊かにすることで、いろいろな利用が簡単になるのを楽しみにしている。

2008年8月 3日

隠居のお勉強:JavaScript(13) onerror

 梅雨明けから酷暑の日が続き、屋外での活動はほとんどできない。特に、ここ大阪堺市は全国的に見ても暑い都市で連日最高気温が35℃を超えている。老齢を自覚して、クーラーの効いた部屋で過ごすようにしている。

 幸いウェブを開いておれば退屈することはない。JavaScript の学習がおろそかになっていたので、例によって W3Schools の tutorial で再開することにした。今回は、前回に続いてエラー処理の script である。

 onerror イベントハンドラーは、エラーをキャッチしてメッセージを出す古くからの標準的な方法である。

 次はその使い方サンプルである。
<html>
<head>
<script type="text/javascript">
onerror=handleErr;
var txt="";

function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n";
txt+="Error: " + msg + "\n";
txt+="URL: " + url + "\n";
txt+="Line: " + l + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
return true;
}

function message()
{
adddlert("Welcome guest!");
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()" />
</body>

</html>



上のスクリプトは、alert("Welcome guest!"); とすべきとろころが、adddlert("Welcome guest!"); となっているので、下のボタンをクリックするとスクリプトがエラーとなり、onerror イベントハンドラーが働き、エラーが表示される。



この間違ったスクリプトを訂正すると、"Welcome guest!" と本来のメッセージが表示され、エラーは表示されない。次のボタンをクリックしてみてください。



2008年4月28日

隠居のお勉強:JavaScript(11) try...catch

 サンデー毎日なのに結構なにやかやと時間をとられて、お勉強がすすんでいない。例によって、W3Schools の tutorial にしたがって、次のステップに進もうと思う。

 ネットでいろいろと調べてみると、try... catch という構文は、Ajaxでほぼ必須になっているらしい。私のJavaScript の勉強は、Web ページをもう少し動的にしたいという、だいそれた願望に基づいているから、Ajax に必須なら、特に力を入れて勉強したいと思う。

 try...catch の構文の文法は、次のように解釈できる。
try{エラーをキャッチしたいcodeの実行}
catch(err){エラーをキャッチしたときの処理内容}


 Script を書いていて、プログラムにバグがないかどうかを確認するときなどに使うらしい。エラーの内容を表示するようにしておくと、バグの箇所と特定するのに役に立つということである。本格的に JavaScript プログラムを書くことはまだまだ先のことであろうが、おぼえておきたい。

 W3Schools には、例示として次のようなコードが示されている。
<html>
<head>
<script type="text/javascript">
var txt=""
function message()
{
try
  {
  adddlert("Welcome guest!");
  }
catch(err)
  {
  txt="There was an error on this page.\n\n";
  txt+="Click OK to continue viewing this page,\n";
  txt+="or Cancel to return to the home page.\n\n";
  if(!confirm(txt))
    {
    document.location.href="http://www.w3schools.com/";
    }
  }
}
</script>
</head>

<body> <input type="button" value="View message" onclick="message()" /> </body>
</html>

 try ブロック部分の adddlert("Welcome guest!"); の adddlert は alert のミススペルでエラーとなるから、catch ブロックの処理を行って、confirm-box を表示させることになる。

 あまり意味はないが、テストのために上のコードを少しいじって、このエントリーに取り込んでみた。下のボタンをクリックしてみてください。 Confirm Box が出るはずです。

    
 なお、この JavaScript 部分を外部ファイル化し、テンプレートの head 部分に読み込んで使うことを試したがうまくいかなかったので、直接 head 部分に書き込んでいる。

2008年4月 7日

隠居のお勉強:JavaScript Basic (9) Break and Continue

 JavaScript の勉強が、1週間ほど空いているので再開することにした。

 W3Schools の次のレッスンは、Loop で使う break と continue である。

  • 二つの特殊なコマンド break, continue をloop の中で使うことができる。
    • break コマンドは、loop の途中である条件になれば、その loop を中止する。
    • 例を次に示す。
      <html>
      <body>
      <script type="text/javascript">
      var i=0;
      for (i=0;i<=10;i++)
      {
      if (i==3)
      {
      break;
      }
      document.write("The number is " + i);
      document.write("<br />");
      }
      </script>
      </body>
      </html>

    • 結果は次の通りになる。
      The number is 0
      The number is 1
      The number is 2

    • continue コマンドは、loop の途中である条件になる場合のみloop を実行しないが、loop は続ける。
    • 例を次に示す。
      <html>
      <body>
      <script type="text/javascript">
      var i=0
      for (i=0;i<=10;i++)
      {
      if (i==3)
      {
      continue;
      }
      document.write("The number is " + i);
      document.write("<br />");
      }
      </script>
      </body>
      </html>

    • 結果は次の通りになる。
      The number is 0
      The number is 1
      The number is 2
      The number is 4
      The number is 5
      The number is 6
      The number is 7
      The number is 8
      The number is 9
      The number is 10

 構文は理解できたが、どのような時に使われているのか分からない。

 なお、このようなエントリーを編集するときに、< や > を使う場合には、&lt; &gt; とエンコードしなければならないが、今回から HTML エンコードホームというサービスを使わせてもらうことにした。
 W3Schools などの example コードをこのページのエンコード前ボックスにコピペ(copy & paste)すれば、エンコードされた結果がエンコード後ボックスに表示されるので、これをエントリー編集画面にコピペすればよい。
 今までは、< などを一つずつ&lt; などと書き直していたのでずいぶん楽になった。
 今頃気がつくのは、老齢化現象の一つと思うが。

2007年3月14日

Web Radio を録音する:Ripping Live365

 友達に Live365.com の存在を教えたら、最近いろいろなステーションを探し出して楽しんでいるらしい。ついでに、愛聴しているステーション(Hawaiian:Live365 にある)の曲を車の中や散歩中に iPod で聴けるようにできないかとの相談があった。ちょっと面白いテーマなので取り組んでみることにした。

 例によって自分のブログサイト内で探索できるようにしている Google Search で "Web Radio Ripping" というような言葉でサーチしてみると殆どは海外サイトであるが沢山ヒットした。日本のサイトの「StationRipperでネットラジオを外へ持ち出せ」という記事に引かれて、StationRipper をインストールした。このStationRipper は対象とするRadioを<隠居、NetRadio で Jazz/Country を楽しむ!>で紹介したSHOUTcast では見事に動く。曲名・アーティスト・曲の長さなどが、Radio Station をフォルダー名として保存される。こんなことが合法的なのかどうか疑いたくなるくらいである。ただ、StationRipper では、Live365 のストリームを ripping することはできない。設定の方法が拙かったようだ。Live365 のストリームを録音することはできるらしいがまだよく分からない。
 さらに英語のサイトを中心にいろいろと調べていると、どうやら RipCast というソフトで Live365 を ripping できるらしいことがわかった。早速インストールしていろいろと試してみた。インストラクションでは、Live365を ripping できることがなっているがなかなか上手くいかない。さらに、サーチしてみると "OldSchoolLive.com" というミュージシャンのサイトにあたった。どうやらこのグループは、Live365で自らの演奏を流しているらしい。ここで、Live365 から ripping する方法を説明している。その説明を従って、Live365 を聴く player を Winamp に変えると ripping できるようになった。ただし、 SHOUTcast での ripping のようには曲毎を split してアーティストなどの情報をつけるようなことはしてくれない。昔、カセットテープでFM放送を録音した(aircheck といいましたね)と同じである。ストリーミングしている時間分だけディスクに MP3 ファイルとして保存してくれる。さきほどのOldSchoolLive.com" では、ストリームファイルを split するソフトも紹介されている。いつも使っている SoundEngine でも split できそうであるが、 split に特化したファイルがないか探してみると Direct WAV MP3 Splitter という手頃なソフトが見つかったのでインストールして使ってみた。このソフト、 ripping したファイルの pause (無声)部分を見つけて、そこでファイルを split してくれる。 pause の時間などを設定できるので、結構使えそうである。ただ、当然ながら SHOUTcast の ripping のように曲名とかアーティストの情報は付加してくれない。若いころ(30年以上も前)、FM放送を録音したカセット・テープから MP3 ファイルを作成するのと同じである。このような良い split ソフトはなかったので1曲ごと手動操作をしていた。古い LP の曲を MP3 にすることも split が面倒なので止めていたが再開しようかなと思ったりしている。
 ところで、気がかりなことが起こっている。以下のように、米国で、Web Radio を規制しようとする動きである。拝金主義のレコード会社のロビー活動と思われる。Live365 を ripping できるにもう一つの Free soft である StreamRipper のページには次のように出ている。
News 2006/05/02 Audio Broadcast Flag Bill and PERFORM Act
Please take a moment to educate yourself about a very dangerous proposal for legislation in the United States offered by Rep. Mike Ferguson (R-NJ), called the "Audio Broadcast Flag Licensing Act of 2006". If passed, this legislation would severely limit your rights to record and enjoy digital  audio.

 また、Live365 のページには、私のように趣味的に Web Radio を開設している人にも厳しい話がでている。そのうちにこのような世界は消えていくかもしれない。
Last week, the Copyright Royalty Board (CRB) issued the significantly higher new royalty rates for Internet radio for the 2006-2010 period. The ruling ignored webcasting community proposals and set out the SoundExchange proposed "per performance" rates (below) and a $500 minimum fee per channel per year. Although there is no clear definition of what a "channel" is, the $500 minimum fee per channel threatens Live365's ability to help make the small webcasters' voice heard on the Internet, by effectively forcing Live365 to raise the minimum broadcasting fees to a level that would cause most small webcasters to discontinue their service thus silencing their stations. The CRB's determination imperils small and large webcasters alike and threatens listening experiences of millions of Internet radio listeners.

(追記:2007/3/23) 現在、Ripcastでの Live365 の録音は上手くいかない。Ripcast のホームページに繋がらない状態が続いている。著作権の問題か何かで、 Ripcast が閉じられているのかもしれない。
(追記:2007/3/24) Live365 のストリームを Winamp で再生するように設定して、Winamp の Playlist Editor を表示させ、その画面に表示されているステーションを右クリックしたときにでるポップアップ画面にある View file info.. をクリックするとURLが表示されるので、これをコピーしてRipcast の CurrentDownload の ServerAddress 欄にペーストすると Ripping が始まる。聞くのには、SongTitle を右クリックすると出るポップアップ画面で、Play をクリックすればよい。
 いろいろと試したが、Live365の録音は強制的に停められているようだ。StreamRipper でも上手くいかない。ちょっとの間様子をみることにしようと思う。 

<参考エントリー>