feed

2020年04月02日, 編集履歴

iOSのアラームがスヌーズ・停止した時に時刻を読み上げるオートメーションを作る

寝坊を恐れるあまりアラームを何本も設定していると、逆に油断して二度寝、三度寝が発生してしまいがちである。寝ぼけマナコで止めたアラームは一体何本目のアラームで今は何時何分なのか。アラームを止める手も慣れたもの、ほぼノールックなので時間なんて解らない。これは一本目のアラームだからまだ余裕があるなんて思ってダラダラしていたら、実は一本目のアラームは聞き逃していてすでに猶予がない状況だった、なんてのがありがち。

そんなときにアラームが現在時刻を喋ってくれると良いのではないか。iOSのショートカットとオートメーションの機能を使ってこの課題を解決する。

まずは上記画像の左側、現在時刻を読み上げるショートカットの設定。

  1. 「現在の音量」を取得
  2. 音量を任意に設定
  3. 「現在の日付」を読み上げ
    • 「日付フォーマット」は「なし」
    • 「時間フォーマット」は「短」
  4. 音量を最初に取得した「現在の音量」に設定

次に上記画像の右側、オートメーションの設定。

これでアラームがスヌーズ・停止したときに現在時刻が読み上げられる。寝過ごし防止の一助となるであろう。

オートメーション開始のきっかけとして、スヌーズ・停止時ではなく「アラームが鳴ったとき」のようなものがあればより良かった。というか、現在時刻を読み上げてくれる特別なアラーム音があれば、ショートカットだオートメーションだと騒がなくて済むのだが。

2020年03月19日, 編集履歴

ノブなしNSSliderでシークバーを作る

久しぶりにアプリをリリースしました。「Silver Baton」という、Music.appで再生中の曲の情報表示や再生・一時停止等の操作ができるmacOSアプリです。

上記画像のようなコントロールパネルをトラックパッドの3/4本指タップやマウスの右ダブルクリック、ミドルクリックで呼び出せるところがミソです。

さて、Silver Batonでは曲の進行具合の表示と変更のためにシークバーを実装しています(上記画像のウィンドウ最下部の青いバー部分)。

NSProgressIndicatorは何らかの進捗具合を表示するにはうってつけですが、「Indicator」の示すとおり、「表示」に特化していてマウス操作は受け付けません。

そこで、マウス操作を受け付けるNSSliderを利用しました。素のNSSliderには大きなノブが付いています(上記画像のシークバー上部の音量調節NSSliderの白丸)。ノブは邪魔なので、表示させなくするためにNSSliderCellをサブクラス化しました。

import AppKit

class KnoblessSliderCell: NSSliderCell {
  override func knobRect(flipped: Bool) -> NSRect {
    return NSRect.zero
  }
}

let slider1 = NSSlider(target: nil, action: nil)
slider1.doubleValue = 0.5

let slider2 = NSSlider(target: nil, action: nil)
slider2.cell = KnoblessSliderCell()
slider2.doubleValue = 0.5

slider1が通常のスライダ、slider2がノブなしスライダです。NSSliderCellfunc knobRect(flipped: Bool) -> NSRectをオーヴァライドしてサイズゼロのNSRectを返すことで、ノブを描画しないようにしました。ノブが描画されなくても、通常通りマウスのクリックやドラッグに反応してくれます。

欲を言えば、マウスオーヴァ時だけノブを出したりバーを太くしたりしたほうが良さげですが、今回はここまで。

2016年06月07日, 編集履歴

YAMAHA YAR24 EVAレインポンチョ

原付スクータでの通勤用にYAMAHAから出ているレインポンチョを購入、なかなか良かったので紹介。

全体的な使用感

ふつうのしっかりとした袖が付いているので、ポンチョというよりは前が開かないレインコート的な形。素材は薄く、ややラバーっぽい触り心地。

170cm、55kgの体型で膝下くらいまでの丈がある。サイズに余裕があり、ジャケットを着てメッセンジャバッグを背負った上からでも着用可能。鞄が濡れなくて良い。

裾の前面がゴムで絞られており、そこが膝に引っかかる形になっている。走行中はその状態で安定し、強風の日にも着用していたが巻き上がってくることはなかった。しかし、停車時に地面に下ろた方の膝は露出し、そのまま足をステップに戻しても膝は隠れてくれない。両足を同時に地面に下ろせば膝は隠れたままで使える。

袖口はキツ目のゴムで絞られており、雨水が入りづらくなっているものの、手首には跡が残るほど。

短時間で小雨程度ならばこれひとつでやりくりできるだろうが、やはり別途レインパンツが必要だろう。私はそれまで使っていたものを流用している。ふつうのレインスーツ+レインパンツの構成では、股の間に貯まる雨水が浸水してお漏らししたみたいになっていたのだが(それまで使用していたのが、よく解らんしょぼい奴だったせいもある)、このレインポンチョ+レインパンツに替えてからはズボンが濡れなくなった。

丈がもう少し長ければ、停車時の膝露出問題が解決するし、レインパンツの代わりに長めのブーツカバーを着用して膝下と靴の防水を兼ねられたんじゃないかと思う。そこは残念。

高い襟の角が顎下に刺さってチクチクすることがあるのも残念ポイント。

ポケット、フード、収納袋

前面左側にポケットがひとつ付いている。ボタンで留められるフラップ付き。水抜き用の穴が開いている。

着脱可能なフードが付属しているが、私は完全に原付でしか使わないので、取り外してポケットの中に突っ込んでいる。

本体と同じ素材の収納袋が付属しているが、綺麗に折りたたんでジャストサイズなので使いづらい。私の場合はレインパンツも併用するのでなおさら使えない。レインポンチョとレインパンツを適当に丸めて突っ込めるサイズの布袋を100均で購入して使用している。

おわりに

価格は3000円前後。スクータ乗りにはおすすめ。

2016年05月03日, 編集履歴

Siriを使ってすべてのアラームをオン/オフする

私のように寝起きの悪いひとはiPhoneのアラームを何個も設定しているのではないだろうか。

ここで問題になるのは、たとえば五個のアラームを設定していて、四個目以前で完全に目を覚ました場合に、残りを手動でオフにしておかないと、もう目を覚ましているのにアラームが何回も鳴ってしまうことである。ぽちぽちと残りのアラームをすべてオフにするのも、就寝前にひとつずつオンにするのもめんどくさい。

そこでSiriを使う。

「アラーム全部オンにして」「アラーム全部オフにして」と言えば、設定済みのアラームをすべてオン/オフにしてくれる。これなら小さいスウィッチを何個もタップしなくても良い。

2016年01月12日, 編集履歴

iOS標準メールの通知音設定は二種類存在する

 iOS標準メールの通知音設定は、

の二種類存在する。前者は全体的な設定で、後者はアカウントごとの個別設定である。

 全体設定を変更すると、登録している全アカウントの通知音も連動して変更されるが、一度でも個別設定を行ったアカウントは連動されなくなる。個別設定の画面には「全体設定に合わせる」のような選択肢はなく、個別設定を全体設定と同じものに変更しなおしても、もはや連動されることはない。

 仮に登録しているすべてのアカウントで一度以上個別に通知音を変更した場合、「設定→サウンド→新着メール」の設定項目はほぼ意味をなさなくなってしまう。過去に個別に通知音を設定したことを忘れていると、全体設定のみを変更して「通知音が変わらない」と勘違いをする可能性が大いにあるのだ。

 混乱の原因は通知音を設定する画面が二種類存在し、さらに場所が離れていることである。標準メールは組み込みとは言え、数ある中のいちアプリケーションに過ぎず、代替となるサードパーティ製品も存在するのだから、システム全体のサウンド設定を行う「設定→サウンド」からは除外すべきではないだろうか。「設定→通知→メール」以下で全体設定とアカウントごとの個別設定を行えるようにすると良いだろう。