鴨のいいカモです

ここでアヒルの話題は出てきません。予めご了承下さい。

エアロフォン AE-10を買った

自宅練習用にエアロフォン買ったったぜー

RolandのAerophone AE-10を購入。

Roland - Aerophone AE-10 | Digital Wind Instrument

サックス習ってるけど自宅で練習できず、外出して練習の時間も取れず悩んでいたところ、サックスの先生に練習にいいよと勧められた。試奏を何度かして、行けそうだと判断し購入。

1週間ほど使ってみて、実際良かった。以下よかったところ。

  • サックスとほぼ同じのキー配置に運指。ソプラノな感。
  • キーが物理ボタンで、他のウィンドシンセのようにタッチセンサーではないため、サックスのように指を置いてても大丈夫。
  • 軽い。電池入れても軽い。
  • 吹き込んだ息は別のところから抜ける。口の横から逃したりする必要なし。
  • スピーカー付き。思いっきり吹き込んでも小さい音で鳴らせる。なんならヘッドホンつけられる。
  • そのへんにヒョイっと置け、触りたくなったらすぐ手にとって音を鳴らせる楽さ。

強めに息を吹き込みつつ指を動かすのって思ったより難しくて、運指だけの練習をしてうまくできても、息を吹き込むってことを同時にやるだけでダメになったりする。ので、それを同時にやれるのが良い。消音器系だとどうしても音を小さくしようとしてしまうし、そもそもつけるのが面倒だし重い。e-Saxのことだけど。 その点エアロフォンは気軽に手にとってその練習をやれるのが良い。

練習にあたっては、フルートのような立ち上がりが悪い音色をセレクトし、H3の思いっきり吹き込まないとならない設定にしている。このあたりは先生のオススメでもある。エアロフォンはその気になればダラーっと吹いても音を出せるのだけど、それじゃ吹き込む練習にならないので。 あと、親指での音色コントロール機能はOFFにした。意図せず触ってしまうとうざいので。

ただ、サックスと一緒ではないので、アンブシュアでのコントロールとか、太い音を出す練習とかはできない。割り切りが必要。吹き込みと運指と、あとリズム練習と割り切る。

まだ数日だが、練習の効果は出てる気がする。何より、練習すると安心する。心の安寧が得られる。

イマイチなところとしては

  • 無駄にでかいケース
  • サックスの音色

くらいかしら、今のところは。

よく言われてるサイドキーの操作しづらさは割とすぐ慣れた。あと、マウスピースパッチを貼ってあげると持ちやすさが随分上がった。

ということで、サックス練習器具としてだけでも満足している。それに加えてウィンドシンセの機能も付いてくるなんて、なんてお得!というのが、今のところの感想。

Pebble Classicがtimeline表示に対応した

いつの間にやら後継機種が大量に発売され、通称Classicとなってしまった私のPebbleですが、ファームウェアのv3.8を使うことで、Pebble Time以降に搭載されていたtimelineが使えるようになりました。

これが猛烈に便利。

Pebble – Timeline for Classic Pebbles Is Coming! Accepting Android Beta Testers Now

WatchFaceを切り替えるといういらん機能が割り当てられていた上下ボタンで、過去や未来の予定や情報がみられます。年末の20%OFFで新しいのを買おうかと思っていたらこれが来て、試してみたらすこぶる良くて、これでいいやと解決してしまいました。Classicですがぬるぬる動いて気持ちいいですよ。

で、ファームウェアv3.8へののアップデートは従来とちょいと違ってましてちょいと手数がかかるんですが、難しくはありません。

Pebble | Updated Software for Classic Pebbles

iOS版ですが、上記を要約すると

  1. iOSPebble Timeアプリをインストール
  2. 今まで使っていたiOSのPebbleアプリとPebbleとの接続を解除
  3. iOSのPebble Timeアプリを起動し、デバイスでPebbleを選択
  4. Pebbleのアカウントでのログインを促されるので、アカウントがあるならそれでログイン、なければ作る
  5. あとは流れで。バッテリー残量は注意。不安なら電源に繋いでおきましょう

今まで設定で使っていたPebbleアプリに別れを告げ、Pebble Timeアプリを使うのがポイントですね。

日本語ですが、今まで使っていた日本語language packがそのまま使えます。すでに使っていたのならそのまま引き継がれ、新しくインストールし直す必要はありませんのでご安心を。

本当にありがたい日本語language packはこちらから。Pebble language pack: 日本語言語パック

table要素でセルの幅を指定したいときはtable-layout="fixed"

背景

table要素でレイアウトせざるを得ない!ということでFlexboxで書いたものをセコセコtableへ移していたのですが、CSSでセル(tdやth)の幅を指定してもそのとおりにならないという事象が発生。たとえばこんな感じ。

td.data {
  width: 100px;
}

こう書いても、100pxとならず、内容によっていろいろ変わるという。なんだこれ。

ということで、調べてみたら、table-layoutなる仕様があるとのこと。

table-layout って何

テーブルのレイアウトアルゴリズムを指定するCSSプロパティです。値には以下の2つがあります。

  • auto
  • fixed

autoは表のデータを全部読み込んだうえでレイアウトを決定するようです。デフォルトはこちら。 fixedは1行目だけ読み込んでレイアウトを決定するそうです。

で、autoはwidthが指定されていてもそれを守らず、いい感じになるように幅を決定するみたいです。 fixedだと、幅が指定通りになるそうです。

ということで、以下のようにしてあげると、セル幅が指定通りの100pxになりました。

table {
  table-layout: fixed;
}

td.data {
  width: 100px
}

ちなみにCSS2.1仕様を見ると、autoのレイアウトアルゴリズムは仕様できっちり決まっておらず、UA任せのようです。以下抜粋。

UAs are not required to implement this algorithm to determine the table layout in the case that 'table-layout' is 'auto'; they can use any other algorithm even if it results in different behavior.

止むを得ずテーブルレイアウトするときはrole="presentation"

止むを得ずテーブルレイアウトをすることになり、罪悪感でいっぱいだったところを、この一言が救ってくれました、というお話。

(もんどさん、いつもありがとうございます)

role="presentation"って何?

W3CHTML5仕様 4.9 Tabular data — HTML5 によると、

Tables should not be used as layout aids. Historically, many Web authors have tables in HTML as a way to control their page layout making it difficult to extract tabular data from such documents. In particular, users of accessibility tools, like screen readers, are likely to find it very difficult to navigate pages with tables used for layout. If a table is to be used for layout it must be marked with the attribute role="presentation" for a user agent to properly represent the table to an assistive technology and to properly convey the intent of the author to tools that wish to extract tabular data from the document.

table要素はレイアウト目的で使うべきじゃないけども、仕方なく使う場合は、レイアウト目的ということをユーザエージェントヘ伝えるために、role="presentation"をつけてあげましょうね、ということです。

こんなのあったの…

ということでWAI-ARIAを見てみる。

Accessible Rich Internet Applications (WAI-ARIA) 1.1

An element whose implicit native role semantics will not be mapped to the accessibility API.

要素が持ってるアクセシビリティAPIマッピングされなくなるんだそうです。

ユースケースを見てみると、

  • An element whose content is completely presentational (like a spacer image, decorative graphic, or clearing element);
  • An image that is in a container with the img role and where the full text alternative is available and is marked up with aria-labelledby and (if needed) aria-describedby;
  • An element used as an additional markup "hook" for CSS; or
  • A layout table and/or any of its associated rows, cells, etc.

あった、4つめ!

ということで、そんな行為を余儀なくされるときは、role="presentation"のことを思い出すと少し楽になりますよ、というお話でした。

Pebble Smartwatch購入

Apple Watchで賑わう最近ですが、私は先日Pebble Smartwatchを買いました。買ったのは一番安いいわゆるPebble Watchの白。

Pebble Smartwatch | Smartwatch for iPhone & Android

Pebble購入に至るまで

普段は自動巻きの時計を使ってるんですが、オーバーホールに1ヶ月かかるとかでその間に使える時計を探してました(ないとなにかと不便)。普通の安い時計も検討したんですが、1ヶ月のために動かし続けるのもなんか勿体無い気。そうだランニング時に使えるやつだと思って調べたら結構高い。そこでスマートウォッチの存在を思い出して。ランニングに使えそうだし使いたいときに充電すればいいし。ということで、iOSで使えて安いPebbleを買ったのでした。

購入は上記サイトで。込み込み99ドル。円安ェ…ちなみに1週間ちょいで届きました。Amazonでも変えるみたいですが、若干上乗せされてます。

Pebbleの特徴

自分視点で。ちなみにiPhoneユーザ。

  • 軽い。
  • 5気圧防水でつけっぱなしでもわりと安心。
  • 白黒メモリ液晶を採用していて、バッテリーが結構持つ。1週間とかあるけど、自分は3日くらいかな。E-Inkとか書いてるところもあるけど、それとは別モノのヌルヌル感。
  • そのままだと日本語非対応。ファームウェアの容量制限ギリギリに日本語フォントを詰め込んだTexpressさん作のPebble 日本語 (ひらがな, カタカナ) ファームウェアを使って、なんとか豆腐混じりの表示ができる。Androidなら通知アプリ経由でフォントを画像化してばっちり日本語化できるみたいです。残念ながらiOSは通知センターのデータを横から拝借できないので…
  • iOSの通知センターに表示される通知を表示。
  • RunkeeperやRuntasticのリモコン&時間距離速さを表示。
  • App Storeがあり、そこからアプリをインストールできる。

ってな感じです。

数日間使ってみて

時計で通知見てもなーって買うまでは思ってたのですが、使ってみると便利で快適。チラ見で判断できるとほんと楽。Rebuild.fmでも少し触れられてたけど、iPhone見る時間が結構減りました。大体の内容がわかればよいので、豆腐混じりでもまあ問題なし。

Runttasticのリモコン&情報表示も便利。iPhone出さなくても手元でスタートと一時停止できるし、距離や時間もすぐわかるので快適。

あと、WatchFaceに現在地の気温を表示させてるんですが、これもなにげに便利。外にでる前に手元を見るだけで気温がわかると、どういう格好していけばよいかすぐ判断できるので。

この3点が嬉しいポイントでした。

期待とちょっと違ったのがアプリで、大してできることがないので(日本語表示も不十分だし)、通知機能のついたランニング時計、といった感じです。

まとめるととっても便利、買ってよかった。

メンテ中の時計が戻ってきても右手に装着して使い続ける予定です。

Ratchet試してみた(3) Push.jsでSPAっぽく

RatchetはPush.jsを利用して、Ajax+History APIでのページ遷移を簡単に利用できます。つまりSPAっぽいことが簡単にできるわけです。

Push.jsを使ってとありますが、Push.jsはratchet.jsに含まれているので、特に準備もなく使えます。

使い方

とりあえず遷移元と遷移先のHTMLファイルを用意しておきます。ここではそれぞれindex.htmlとhoge.htmlとします。

まず遷移元のファイルを作ります。遷移先へ移るためにa要素を書くわけですが、そこにdata-transition属性を追加すると、SPAっぽい画面遷移になります。値はfade, slide-in, slide-outの3つで、選択したものが遷移時のエフェクトになります。例えばこんな感じです。

<div class="content">
  <div class="card">
    <ul class="table-view">
      <li class="table-view-cell">
        <a class="navigate-right" href="hoge.html" data-transition="slide-in">
          hogeへ
        </a>
      </li>
    </ul>
  </div>
</div>

こうなりました(headerは別途つけました)

f:id:labduck:20150226232547p:plain

これでクリックすると、右にスライドしながら遷移します。通信の中身を見てみると

f:id:labduck:20150226233022p:plain

index.htmlからページ遷移無くhoge.htmlを読んでいることがわかります。楽ちんですね!

せっかくなので、hoge.htmlからindex.htmlへ戻るボタンも作りましょう。headerの左にボタンを付けて、data-transitionslide-outにしてみました。

<header class="bar bar-nav">
  <a href="index.html" data-transition="slide-out">
    <button class="btn btn-link btn-nav pull-left">
      <span class="icon icon-left-nav"></span>
      Index
    </button>
  </a>
  <h1 class="title">hogehoge</h1>
</header>

それっぽいのができました。

f:id:labduck:20150226233808p:plain

と、えらく簡単にSPAっぽいものを作ることができます。

ちなみに、Push.jsによるチェックをしたくないときは、data-ignore属性の値をpushとしておくとよいです。

<a href="http://www.google.com" data-ignore="push">Google<a>

という感じで、ささっとネイティブっぽい画面を作りたい場合に、Ratchetは結構使えるんじゃないかと思います。

ガスコンロで炊飯

もうずいぶん経つのですが、ガスコンロを買い替えました。いわゆるピピっとコンロってやつです。

東京ガス : ガス機器・設備 / ガスコンロ / レボア

ピピっとコンロですが、実はメーカーがリンナイとハーマン(ノーリツ?)の2つあります。どっちがどうなの?って気になりますが、差はなさそう。純粋に機能や好みで選ぶとよいかと。自分は天板の掃除しやすさと、両面焼きグリルの2点が必須、あとは見た目で上記にしました。

で、もうずいぶん使っているのですが、タイマーの自動消火機能、温度調節機能は便利。後者があるので揚げ物もやるようになりましたよええ。

あと特筆すべきは炊飯機能。炊飯ボタンを押せば火加減調整から蒸らしまでやってくれる!ガス炊飯、美味しいのはわかってたけど面倒見るのイヤだったんでスルーしてたんですが、これなら余裕!未来だ!未来はうまい!!ってことで、炊飯で炊飯器使わなくなりました。ただ、手持ちの炊飯に使えそうな鍋であったル・クルーゼは吹きこぼれが激しく立ち消えもあったので、こりゃあかんと炊飯用鍋を別途買いました。

おいしい ごはんなべ 18cm 427982

おいしい ごはんなべ 18cm 427982

これで吹きこぼれ皆無。おこげもできないし(あまり好きじゃない)、洗いやすいし、バッチリです。

炊飯器と違って保温機能はないですが、別途お米用タッパにつめて冷凍するようにしてます。

ごはん冷凍保存容器 一膳分 5個 250ml

ごはん冷凍保存容器 一膳分 5個 250ml

ということで、コンロを買い替えてお米生活が潤ったというお話でした。