togo= zumuya の人による机の上系情報サイト

JXA で Promise

MacDev

Yosemite から AppleScript の代わりに使える JXA、せっかく JavaScript なのだから Promise が使えるかどうか実験してみよう。

const getWindowNames = async (appName) => {
    const app = new Application(appName);
    const windows = app.windows;
    return windows.name();
}
const getFileNames = async (path) => {
    const fileManager = $.NSFileManager.defaultManager;
    let error = $();
    const fileUrls = fileManager.contentsOfDirectoryAtURLIncludingPropertiesForKeysOptionsError($.NSURL.fileURLWithPath(path), [], 0, error);
    return fileUrls.js.map(url => url.lastPathComponent.js);
}

let x = null;
Promise.all([
    getFileNames("/System"),
    getWindowNames("Finder"),
    getWindowNames("Calendar")
]).then((result, error) => {
    x = result;
});

const runLoop = $.NSRunLoop.currentRunLoop;
while (x === null) {
    runLoop.runModeBeforeDate($.NSRunLoopCommonModes, $.NSDate.dateWithTimeIntervalSinceNow(0.001))
    console.log("a")
}
x
Code

Promise の完了を待つように Run Loop を回しているのがポイント。これがないとすぐに終了してしまうし、ただのループだとずっとぐるぐる、何も起きない。スクリプトエディタ内で気軽に動かしたいだけなので idle ハンドラは試さず。 

関数を定義するときに async も使ってみたけど、どうだろう。

続きを読む

サクラスリングで iPhone を首にかける

MacHard

去年の“iPhone ケース展”のブースで見かけて知ったサクラスリングという製品がある。

幅広いスカーフ生地でアイテムの重さを分散させ楽に持てます。 小物が入る*ファスナーポケット付き。デザインと機能性にこだわった今までにないストラップです。

もともとはカメラ用アイテムらしいのだけど、iPhone 中心のイベントだったのでネックストラップタイプ1のものが RAKUNI という iPhone ケースとの組み合わせで展示販売されていたのだ。

派手な柄のものが多くて正直自分にはどうなのかと思ったけど、説明を聞いていると、単なる説明員さんだと思っていたその方はなんと発案者だったらしく、思想とか工夫を語ってくれた。

見た目から単なるファッションアイテムとしての印象が強かったこの製品は

  • 体との接触面積が広いので重さが分散される
  • 肌触りがいい生地を使用
  • 丈夫
  • 機材のちょっとした汚れが拭ける
  • カバンの中で機材を包みこんでおける
  • 汚れても普通に洗濯できる

など、シンプルな構造でありながら優れた機能性を両立していることがわかったし、並んでいる柄バリエーションを一つずつ見せてもらうと好きな感じのものもあった。何より語り口から製品への愛情あふれる感じが伝わってきたのがよかった2のでその場で一つ購入することに。

使ってみると、このネックストラップタイプは GoPro みたいな小さいカメラをぶら下げるのにぴったり。なんだか重さが変わる気がする。それは前述の通り物理的に重さが分散されるし、気持ちも「必要な機材を持つ」感覚ではなくなるので身軽な感じ。

ネックストラップタイプのサクラスリング

続きを読む


  1. カメラ用ものは接続パーツが 2 つでカメラの両側につけられるらしい。 ↩︎

  2. 「わしが作った」感、大事。ジョブズなんかもそれがよかった。 ↩︎

入ればよかった AppleCare+ for Headphones

MacHard

AirPods いいよね。発表当初は「落ちそう」としか思えなかったけど今ではすっかり生活に定着した。

外では AirPods Pro を使いつつ室内では初代 AirPods を引き続き使っているのだけど、最近はバッテリーの消耗が速すぎてすぐ使えなくなってしまう。

バッテリーを交換するといくらになるのか調べていて見つけた記事:

しかし、2019年10月に上位版という位置付けで「AirPods Pro」が発売され、同時に「AppleCare+ for Headphones」が開始した。

「AppleCare+」というサービスでみた場合、iPhone・iPad・Macと基本的には同じなのだが、特筆すべきは価格の安さ。

2年間「3,400円(税別)」というのはかなり安いと思う。

...

バッテリー消耗にともなうバッテリー交換は、2年間で回数無制限の無償対応だ。少なくとも2年使ううちに1度は使うと考えたら、サービス料の元は簡単にとれるだろう。

ええ、これなら AirPods Pro 買うときにつけておくんだった...

しまうケーブルに結束バンド

MacHard

コンピュータ、周辺機器、家電、ゲーム機、カメラなど、この時代どんな製品を買っても永遠に増え続けるのがケーブル。特に電源とか micro USB がひどい。

これまでは後で使うことを考えて適当に折りたたんだケーブルをビニールタイ1で軽くねじねじしてから箱に放り込んでいたのだが、どうしてもはみ出たビニールタイやケーブルが引っかかってばらけるため、目的のケーブルを探そうとかき混ぜるたびにかさが増えて溢れてしまう現象が発生。いつの間にか「開けたくない箱」になってしまっていた。

どうせここにあるケーブルの 8 割は何年も使わないのだけど、必要になったときに注文して届くのを待つタイムラグなく出てくることに価値を感じて手元に置いているのだ。いざというときに取り出せないのでは元も子もない...

続きを読む


  1. よくあるビニールで覆われたねじねじする針金をこう呼ぶらしい。 ↩︎

© 2005-2020 zumuya