Tagged: ガジェット

最近のiPhoneやAndroidではきれいな写真が撮れるので、デジカメなんて必要ないと思っているんだけど、やっぱりズーム機能だけは物足りない。
デジタルズームだと画質が極端に劣化するし、やっぱそこら辺は光学式ズームのデジカメの方が良い。

 

だけど、写真編集やSNS投稿とか、GPS記録も残したいとか言うとスマホの方が良い。

 
そんな訳で、手軽に光学ズームを楽しめるクリップ式のスマホ用カメラレンズを二種類試しに買ってみた。
クリップ式のスマホ用カメラレンズ

 
 
(さらに…)

去年は原発事故を引き金に、計画停電や節電やらと大変な思いをした。
そんななか、少しでも節電意識を高めたいと、「東京電力メーター」を作って公開した。

で、今年の夏は原発再稼働の問題もあり、東電エリアだけの話ではなく、全国的に電力不足に陥りそうな感じ。これはマズい。
そんな訳で「東京電力メーター」もアプリ名に反し、関西電力、東北電力、九州電力の電力使用率も表示できるよう対応してみた。

1
前にも、東北電力、関西電力に対応したモノを作ったけど、その後、関西電力がcsv公開を一時止めたりしたので、今回は、関西電力を復活したり、九州電力を追加したりと、最新の公開データに合わせて修正した。

[4つの電力会社に対応]
2_kansai2_kyusyu2_toden2_tohoku
でも何で、東京電力、関西電力、東北電力、九州電力のみの対応かというと、その他の電力会社から現状、CSVデータが公開されていないから。
あと、電力会社毎に微妙にCSVデータ形式が違うので取り込むのが大変だったりする。
でも、各電力会社からデータが公開されたら、東京電力メーターとしても前向きに実装したいと考えているので、CSVが公開されることを期待しながら待つとしよう。

(さらに…)

12/9(金)の東電の電力使用率が95%に達したけど、あまり世の中騒がれていないような。
95
東電電力使用状況
これからもっと寒くなってくるというのに大丈夫なのか?
Yahoo!の電力予報によると、12/16(金)は最大99%となっている。
みんなで節電を心掛けましょう。

以前作成した東京電力メーターを、東北電力、関西電力の電力使用率も表示できるよう改良してみた。
toden_meter
で、日本には他にも電力会社があるのに何故、東京電力、東北電力、関西電力の3つだけしか表示しないのか?
それは、各電力会社毎にフォーマットが微妙に異なっていたり、非公開だったりするから。
同じ電力会社でも所詮別会社ということなのか。
そこで、各社の公開情報がどれだけ異なるのか簡単に比較してみた。

(さらに…)

東電電力使用状況ガジェットを流用し、今度はアナログ的な電力メーターを作ってみた。
デザインの方は、以前WPFで作ったKMeterを流用した。
[東京電力メーター]
image
image2
今回、苦労したのはガジェットでの針の動き。
WPFとか、C#では針の座標を計算し線を描画していたけど、ガジェットでは、画像を指定しておけば、
後は、角度を指定してやれば、簡単に針が傾いてくれる。
例:
HTML側:

<g:image
 id=”needle”
 unselectable=”on”
 src=”img/needle.png”
 style=”position:absolute;left:60px;top:0px;width:13px;height:134px;z-index:10″ />

JavaScript側:

// 針を90度傾ける
needle.Rotation = 90;

角度を時計の針で例えると、
12時はRotation=0(360)
3時はRotation =90
6時はRotation=180
9時はRotation=270
と言った感じ。
これは楽だ。
だけど、今度は針をパッと表示しただけではアナログっぽくない。
0からスルスルと針が回ってくるアニメーションをさせたい。
これが意外と難しいというか、やり方が分からず少しハマった。
結局、setTimeout関数をループ処理の中で使って、時間差で針を描画するようにしたら
それっぽく表示できるようになった。

function test(){
 var cnt=0;
 // 0%から100%まで針を動かす
 for(i=0;i<=100;i++){
  cnt++;
  // 20ミリ秒ずつ遅らせて別関数を呼び出す
  setTimeout(“setRotation(” + i + “)”,20*cnt);
 }
}
function setRotation(_val){
 // 0%(180度)を基準に、引数で指定されたパーセントの値×2.7度
 // (100%までのトータル角度が270度だとすると1度傾けるのに2.7度)
 s.Rotation = 2.7 * _val + 180;
}

東京電力メーター

以前、東京電力の電気使用状況を表示するガジェットを作ってみたが、本日7/1から東電が公開しているcsvデータにフォーマット変更があり、案の定、ガジェットの表示が崩れてしまったので、最新フォーマットに合わせガジェットを修正してみた。
[修正前]
old
[修正後]
new
東電電力使用状況ガジェット
7/1から以下のようなcsvデータ形式に変更となった。
[電力の使用状況データの説明]

電力の使用状況データの内容   説明
2011/6/27 23:55 UPDATE   2011年6月27日 23:55時点のデータ
ピーク時供給力(万kW),時間帯,供給力情報更新日,供給力情報更新時刻
4580,14:00~15:00,6/26,17:30>
  本日のピーク時供給力は、4,580万kW(14時~15時)
6月26日17時30分に更新した情報
予想最大電力(万kW),時間帯,予想最大電力情報更新日,予想最大電力情報更新時刻
3640,14:00~15:00,6/26,17:30
  本日の予想最大電力は、3,640万kW(14時~15時)
6月26日17時30分に更新した情報
DATE,TIME,当日実績(万kW),予測値(万kW)   DATE:
  当日の電力の使用状況の対象日
TIME:
  当日の電力の使用状況の対象時間
当日実績(万kW):
  当日の電力の使用状況の1時間平均の電力需要
  ※確定するまでは0が入ります。
予測値(万kW):
  9時から19時台の電力需要の1時間平均の予測値
  ※当日実績が確定したら0が入ります。
2011/6/27,0:00,2590,0
   ・
   ・
2011/6/27,15:00,0,4229
   ・
   ・
  2011年6月27日 0:00時台の当日実績 2,590万kW
   ・
   ・
2011年6月27日 15:00時台の予測値 4,229万kW
   ・
   ・
翌日のピーク時供給力(万kW),時間帯,供給力情報更新日,供給力情報更新時刻
4880,16:00~17:00,6/27,17:30
  翌日のピーク時供給力は、4,880万kW(16時~17時)
6月27日17時30分に更新した情報
※翌日のピーク時供給力をお知らせする18時頃から翌日の1時頃まで公開します。
翌日の予想最大電力(万kW),時間帯,予想最大電力情報更新日,予想最大電力情報更新時刻
4150,16:00~17:00,6月27日,17:30
  翌日の予想最大電力は、4,150万kW(16時~17時)
6月27日17時30分に更新した情報
※翌日のピーク時供給力をお知らせする18時頃から翌日の1時頃まで公開します。
メッセージNo,節電お願い文
1,節電にご協力いただき、ありがとうございます。皆さまのご協力により、電気の供給は、比較的余裕のある一日となりそうです。
1,Thank you very much for your cooperation to save electricity.According to your cooperation
  メッセージNo:
  節電お願い文のメッセージNo
節電お願い文:
  需給逼迫度に応じた節電お願い文を表示
※翌日のピーク時供給力をお知らせする18時頃から翌日の1時頃まで公開します。
DATE,TIME,当日実績(5分間隔値)(万kW)   DATE:
  当日の電力の使用状況の対象日
TIME
  当日の電力の使用状況の対象時間(5分毎)
当日実績(5分間隔値)(万kW)
  当日の電力の使用状況の5分間隔の電力需要
2011/6/27,0:00,2684
   ・
   ・
  2011年6月27日0時00分の実績 2,684万kW
   ・
   ・

で、以前のcsvファイルとどこが違うのかというと、主に以下の3箇所。

  1. 表現の修正(2、3行目)
    「時台」⇒「時間帯」
  2. 前日実績から予測値に変更(8~32行目)
  3. 節電お願い文や、5分間隔のデータ項目追加(33~332行目)

1.と2.は、直接ガジェットとして使用していないデータなので影響なし。
3.は、データ追加なので非互換に影響なし。
と、思いきや、8行目以降のデータをファイル終わりまでひたすら読み込む処理となっていたため、[修正前]のような現象に陥ってしまった。
まぁ、東電側も非互換をなるべく少なくということで考えてくれたんだろうけど、やっぱり懸念していたとおり、落とし穴にハマってしまった。
自作ガジェット以外にも、他の人達が作ったガジェットも似たような現象に。。
やっぱり、csvファイルでは無理があったのでは。
RESTとかXMLにしてくれればいいのに。。
Yahoo!には、そんなようなAPIが用意されているっぽい。
電力使用状況API

(さらに…)

ITmediaに、『東電が電気使用状況データをCSVで公開 「アプリ作ったら知らせて」と経産省』なんて記事が載っていたんで、早速アプリを作って公開してみた。
image
東電電力使用状況ガジェット
最初はJavaScriptを使って、シンプルなAjaxのページを作ろうと思ったけど、ついでにWindows用ガジェットとして作ってみることにした。
でもガジェットを作るのは初めて。
基本的にはJavascriptが分かれば作れるっぽいけど、背景画像の設定や、設定画面の準備とか少々面倒だった。
あと、Ajaxを使って一定時間ごとに更新表示させたいけど、キャッシュ情報を拾ってしまい、古いデータを表示し続けてしまったりマイナートラブルにハマった。
最初は、東京電力が用意しているCSVデータに当日のピーク時供給力の電力が無くって、使用率の計算ができなかった。
ピーク時供給電力は、CSVではなく、普通のHTMLページに載っていたので、そこのページから強引に文字列操作で値を抜き取る処理を頑張ってゴリゴリと作ったんだけど、いざ完成して公開しようかと思った瞬間、HTMLページのレイアウトが変わり取得できなくなってしまった。
その代わり、CSV内にピーク値のデータが出力されるようになったため、そこから取得するよう急遽作り直した。
しかも、CSVと言っても、
1行目が、更新日時
2行目がピーク値のCSVヘッダ
3行目がピーク値のCSVデータ
4行目が空行
5行目が実績値のCSVヘッダ
6行目以降が実績値のCSVデータ
ってな感じで、CSVデータというか、フォーマットがバラバラなテキストデータに近い。

2011/3/26 1:05 UPDATE
ピーク時供給力(万kW),時台,供給力情報更新日,供給力情報更新時刻
3700,18:00,3/26,9:30
DATE,TIME,当日実績(万kW),前日実績(万kW)
2011/3/26,0:00,2889,2990
2011/3/26,1:00,2758,2848
2011/3/26,2:00,2674,2767
 :

CSVでは、やっぱり仕様変更したときに対応しにくいから、XMLとかで公開して欲しいなぁ。
できればRESTのAPIで。
今後もCSVの仕様変更がありそうで怖いなぁ。
東電の電力が気になってしょうがない方は是非お試しを。
#みんなで頑張って節電しましょう。
東電電力使用状況ガジェット

200609069/4にヤフーのデスクトップツール「YAHOO!ウィジェット」が公開された。

Macでは、ウィジェットは、もうおなじみっぽいが、Mac触ったこと無いんで、YAHOO!ウィジェットやVistaのガジェットとかは個人的に興味がある。
何がいいって、気軽にデスクトップツールが作れるところ。
# いや、まださっきチュートリアル見ながらHelloWorld作っただけなので全然偉そうなこと言えないけど、明らかにVC++とかで作るより簡単そう。

ガジェット同様、基本はXML + JavaScriptで作るらしい。
まぁ、Vistaのガジェットが真似したんだろうが。
日本語版のドキュメントも揃ってるんで、YAHOO!ウィジェットに挑戦してみよう。
コードはテキストエディタで編集できるけど、グラフィックは辛そうだな。
グラフィック描けないや。。
ペイントしか持ってないし、GIMP使うのしんどそうだし。

[Yahoo!ウィジェット]
http://widgets.yahoo.co.jp/
[Yahoo!デベロッパーネットワーク – YAHOO!ウィジェット]
http://developer.yahoo.co.jp/widgets/

窓の杜の記事によると、MSとインプレスでWindows Vista用プログラミングコンテストの作品募集を開始したそうな。
対象はVistaの新機能の「ガジェット」、「Windows Presentation Foundation(WPF)」に関するもの。
はて。ガジェットってナンだろう。
WPFもちょこっと記事を見た記憶もあるけど、イマイチなんだか分からない。

とにかく、Vistaの新機能らしい。
ちなみに、このコンテストに募集しようと考えている人は、1,980円でWindows Vista Beta2を入手できるらしい。
6月にダウンロードし損ねた人は是非。
この際、ガジェットなるものにも挑戦してみましょう。

ガジェットについて、ちょっと記事を読んでみた。
なかなか面白そうなんで、ちょっと触ってみようかな。
…と思ったはいいけど、これって何で開発するの?
Visual Studio 2005じゃできないだろうし、専用のSDKでも配布されているのか?

まだ、開発に関する情報が少なく良く分からない状態。
# 行き着くところは英語サイト。。。orz

何だかHTMLで書くっぽいことも書いてある。
イマイチよくわからない。
そのうち暇を見つけて調べてみるつもり。