2012年9月30日日曜日

SoftBank の「みまもりケータイ」を高齢者でも扱える設定に変更する - ワンタッチで電話をかけ、ハンズフリーで会話

1. ワンタッチボタンが使いづらい理由

祖母の携帯は、「みまもりケータイ」である。

齢90を超えたバァちゃんなので、一般的な携帯電話の操作を覚えることはできない。何かあったときのために連絡用の携帯が欲しかったので、操作が簡単で、できることが限られているタイプにした。

みまもりケータイ2 SoftBank 101Z - ZTE Japan によると、

かんたん操作で使いやすい
電話もメールもワンタッチ。かんたんな操作で未就学のお子さまからシニアまで、幅広い世代が安心して使えます。本体中央のボタンだけで操作することも可能ですが、サイドキーを使うことで、発信先や閲覧メールの選択、電話/メールの着信音や通話音量などの各種設定が可能です。

「電話もメールもワンタッチ」と書かれているが、この「ワンタッチ」がとても使いづらい。なぜなら、ワンタッチボタンに対して、2つの操作法が割り当てられているため。

それは、ワンタッチボタンを

  1. クリックすると ⇒ 液晶のバックライトが点灯する
  2. 「長押し」すると ⇒ 電話帳のリストが表示される

ただし、取扱説明書, 4-5 「電話をかける」には、

… ワンタッチボタンを押すと発信先リストが表示され、相手の番号を選択して電話をかけることができます。

「長押し」することが明記されてない。ここで「長押し」と言っても、携帯の電源を入れるために3秒ほどボタンを押し続ける操作とは違う。約1秒ほどボタンを押し続けること指す。

 

2. 祖母ができないこと

「みまもりケータイ」で電話をかけるには、

  1. ワンタッチボタンを長押し、電話帳を表示する
  2. サイドキーで相手を選択する。
  3. ワンタッチボタンを押す。

という手順が必要。家のバァちゃんにとっては、複雑過ぎて操作を覚えることができない。

祖母が理解することが難しい操作は2つあった。

  1. 電話帳を開くのに、長押しが必要なこと。
  2. サイドキーで項目を選択すること。

これに加えて、次の2つの動作を覚えることができない。

  1. 電話をかけたり、相手から着信があったときに、電話機を耳に持っていく。
  2. 携帯に着信があった場合、ワンタッチボタンを押してから話をする。

 

3. 携帯の設定を変更する

祖母の理解力から考えて、次のような操作に変更したい。

  1. ワンタッチボタンを長押したら、すぐに父の携帯にかかること。
  2. 父が電話にでられないときは、別の人に自動的に回されること。
  3. 会話をするとき、ハンズフリーで話せること。

このために、携帯電話の設定を以下のようにした。

  1. 発信方法を「ワンタッチ発信」にする。
  2. 順番発信を有効にする。
  3. 着信方法を「自動」にする。

 

ワンタッチ発信と順番発信

発信方法を「ワンタッチ発信」にすると、ワンタッチボタンを長押しした場合、オーナーに設定した人に対してすぐに電話がかかるようになる。「順番発信」を有効にすると、「音声発信先」に登録した3人に対して、順次自動的に電話がかかる。

設定方法は、

  1. 携帯本体のサイドキーの上ボタンを長押し、メニューを表示する。
  2. 管理設定 > 発信方法 を表示する。
  3. ワンタッチ発信を選択する。
  4. 順番発信設定」が表示されたら、「オン」にする。

cf. 取扱説明書, 3-7 「発信方法を設定する」

ただし、「オーナー、音声発信先」は、

  • My SoftBank から、サービス・ 端末設定 > みまもりケータイ

において行う。

 

着信方法

着信方法を「自動」にすると、ハンズフリーで会話をすることができる。

  1. 携帯本体のサイドキーの上ボタンを長押し、メニューを表示する。
  2. 管理設定 > 着信モード を表示する。
  3. 自動着信を選択する。

cf. 取扱説明書, 3-7 「着信モードを設定する」

この設定は、着信したときのみハンズフリーになると思っていたが、ワンタッチ発信をしたときにもハンズフリーで会話ができた。

特に重要なことは、「ワンタッチ発信をするために、ボタンを長押しすること」を覚えてもらう際に、電話をかける時の音がスピーカーから流れること。この音により、「電話をかけた」ということが認識しやすくなった。

 

みまもりケータイで改善して欲しい点

改善して欲しい点は一つ。

  • ワンタッチボタンに「短く押す、長く押す」の2つの操作を割り当てないこと。

2012年9月29日土曜日

PC からテレビに HDMI ケーブルで接続したが音声が出ない。最初に BIOS の設定を確認する

1. HDMI ケーブルで接続しても音声がでない

PC を HDMI ケーブルでテレビに接続した。しかし、画像は表示されたが、音声がテレビから出力されなかった。

HDMI – Wikipedia とは、

HDMI(エイチ-ディー-エム-アイ)とは High-Definition Multimedia Interface高精細度マルチメディアインターフェース)の略で、映像・音声をデジタル信号で伝送する通信インタフェースの標準規格である。

HDMI のメリットは映像と音声をケーブル一本で送れること。さて、どうしたことだろう?

 

2. BIOS の設定を変更する

Windowsパソコンで音が出なくなった場合の対処方法(チェック4~6) によると、

1.オーディオデバイスが機械的に存在しない。
2.オーディオデバイスが機械的に故障している。
3.オーディオデバイスがBIOS上で停止されている。
4.デバイスドライバーがインストールされていないか、正常に機能していない。

この内、BIOS の設定をしてなかったので確認した。

テレビに接続した PC のマザーボードは、

GA-MA78GM-S2H User's Manual (p.19) によると、

After installing the HDMI device, make sure the default device for sound playback is the
HDMI device. (The item name may differ by operating system. Refer the figures below
for details.), and enter BIOS Setup, then set Onboard VGA output connect to D-SUB/
HDMI under Advanced BIOS Features.

BIOS を起動し、

  • Advanced BOIS Features > Onboard VGA output connect

を D-SUB から HDMI に変更した。これにより、テレビから音声が出るようになった。

OS におけるサウンドのプロパティを確認したら、これまで表示されていなかった

  • Realtek HDA HDMI Out

が表示された。

In Windows XP, select Start>Control Panel>Sounds
and Audio Devices>Audio, set the Default device for
sound playback to Realtek HDA HDMI Out.

(同上より)

 

関連記事

2012年9月28日金曜日

Dexpot でウィンドウのタイトルに応じて、特定の画面へ送るルールを作成

1. ウィンドウを振り分けたい

SnapCrab_NoName_2012-9-28_2-14-30_No-00仮想デスクトップとして Dexpot を利用している。

Dexpot で、起動するアプリケーションのタイトルに応じて、ウィンドウを指定した画面へ送りたい。

 

2. ルールの作成

SnapCrab_NoName_2012-9-28_2-8-59_No-00Dexpot でウィンドウに対して特定の動作をさせるには、ルールを作成する必要がある。

  • Dexpot のアイコンを右クリック > Desktop Rules

を選択すると、Desktop Rules ウィンドウが表示される。

例えば、スピーカーの音質を調整するアプリケーションである VSTHost を、全ての仮想デスクトップに表示させたいとする。

 

a. 新規ルールの作成

最初に、新規にルールを作成する。

  1. Desktop Rules ウィンドウにおいて、New ボタンを押す。
  2. Overview タブにおいて、Name フィールドに適当なルールの名前を入力する。ここでは test とした。
  3. ウィンドウを開いたら、自動的にルールを適用したい。そのため、Apply rule automatically にチェックが付いていることを確認する。

SnapCrab_Desktop Rules - Dexpot_2012-9-28_2-19-7_No-00

 

b. 条件の指定

次に、対象のウィンドウを指定する条件を設定する。

  1. Conditions タブにおいて Type:Window title を選択。
  2. 対象のウィンドウのタイトルは、VSTHost ではじまるので、Type: の2番目の選択肢は starts with を選ぶ。Value: は VSTHost とする。

SnapCrab_Desktop Rules - Dexpot_2012-9-28_2-19-19_No-00

 

c. 動作の指定

最後に、動作を指定する。今回は、条件で指定したウィンドウを全ての仮想デスクトップへ送りたい。

  1. Actions タブの Type: において、Copy, all desktops を選択する。
  2. OK ボタンを押す。

SnapCrab_Desktop Rules - Dexpot_2012-9-28_2-19-22_No-00

 

関連記事

DrRacket でコードの整形

1. メニューから選択する

Emacs でコードの整形をする場合、C-M-\ を入力し、indent-region を呼び出す。

DrRacket でコードの整形をするには、

  1. インデントを整えたい式を範囲選択しておく。
  2. メニューより、Racket > Reindent を選択する。

表示されている全てのコードを整形するには、Reindent の下にある Reindent All を選ぶ。

 

2. キーボードで操作する

キーボードから、メニューの Racket > Reindent を選択するには、他のアプリケーションと同様に、

  • Alt, r, r

のキーを順に押せば良い。

もっと簡単に Reindent するには、整形するコードを選択した後、

  • Tab キー

を押す。

3.1 Menus によると、

Reindent : Indents the selected text according to the standard Racket formatting conventions. (Pressing the Tab key has the same effect.)

 

3. 移動、選択、整形の操作手順

コードを整形するには、式を選択する必要がる。S 式を選択するには、

3.3 Keyboard Shortcuts 

M-C-SPACE : select forward S-expression

 

ところで、DrRacket を Emacs のキーバインディングで利用している。また、Escape キーの入力は C-[ で代用している。

例えば、次のような式を入力した後、結果を display 手続きに渡したくなったとする。

(* 3
   (+ 1 2)
   (- 10 5))

キャレットが式に末尾にある場合、

  1. 先頭へ移動: Ctrl キーを押しながら [, b
  2. S 式の選択: Ctrl キーを押しながら [, Space
  3. 括弧で括る: Ctrl キーを押しながら [ 。次に ( を入力する。
  4. display と入力。

M-( : wrap selection in parentheses

このとき、キャレットは display の右横にある。

(display (* 3
   (+ 1 2)
   (- 10 5)))

全体を整形するために、

  1. 外側の括弧へ移動: Ctrl キーを押しながら [, u
  2. S 式の選択: Ctrl キーを押しながら [, Space
  3. 整形: Tab
  • M-C-u : move up out of an S-expression

  • M-C-d : move down into a nested S-expression

  •  

    4. その他

    メニューより、Edit > Keybindings > Show Active Keybindings を選択すると、現在有効なキーバインディングの一覧が表示される。

    S 式を選択する (forward-select-sexp) キーとして、上記以外に、

    • esc;c:s:f

    とあるが、キーを入力しても、forward-select-word

    • esc;s:f

    と同じ動作になってしまう。

    6.16 keymap% によると、

    For a special keyword, the capitalization does not matter. However, capitalization is important for single-letter keynames. Furthermore, single-letter ASCII keynames are treated specially: A and s:a are both treated as s:A. However, when c: is included on Windows without m:, or when d: is included on Mac OS X, then ASCII letters are not upcased with s:, since the upcasing behavior of the Shift key is cancelled by Control without Alt (on Windows) or by Command (on Mac OS X).

    その他、タブの入力に関する動作を以下に挙げておく。

    Index

    tabify
    tabify-all
    tabify-on-return?
    tabify-selection

    2012年9月23日日曜日

    自動的(60分ごと)に虫よけ剤を散布「自動でベープ」 - アースノーマットからへ乗り換えた

    1. 取替えの用の薬剤は使用時間の表示に注意

    夏が終わりそうな微妙なこの季節に、電気蚊取りの薬剤が切れてしまった。使用しているのは定番のアースノーマット

    久しぶりに薬局の蚊取りコーナーを覗いたら、プッシュ式タイプが主流になっている。ボタンを押して薬剤を散布すると、長時間作用するというもの。

    ヒーターで加熱して薬剤を散布するタイプは脇に追いやられていた。しかし、特別に安くなっている訳ではない。

    値段を見るときに注意することは、

    60日用

    と書かれていても、

    1日12時間使用

    と但し書きがされている点。24時間つけっぱなしにしておく場合、実質30日用ということになる。

     

    2. 「自動でベープ」は1時間ごとに薬剤を散布してくれる

    これに対して、自動でベープ は、

    24時間連続使用でも60日間(合計1440時間)使用できます。

    というように記載が潔い。使い勝手も良さそう。

    ミスト状の薬剤が1時間ごとに自動的に噴霧されるので、イヤな虫が侵入する隙を与えません。噴霧ボタンを押せば、タイマーの作動を待つことなく、気になるときにすぐスプレーできます。(同上より)

    【新製品】11年度政策共有会‐「ベープ」シリーズに新製品投入 フマキラー : 薬事日報ウェブサイト

    自動噴霧式虫よけ「自動でベープ」は、タイマー機能搭載で1時間に1回、嫌な虫の忌避薬剤を自動噴射する。薬剤には忌避効果の高いトランスフルトリンを採用。粒子径は5ミクロンと小さくて軽く、空間に舞いやすいため、長時間にわたって漂う。

    また、クリーン処方で、粒子の付着による壁や床のベタつきもなく、森林のほのかで爽やかな香りが広がる。

    取り替え用の薬剤の値段を比較した結果、購入した店舗では。自動でベープは今まで使っていたものより少し割安だった。

    今後、家ではこれを使うことにしよう。

    Firefox のアドオン Multiple Tab Handler で複数のタブを操作する

    1. タブグループを別のウィンドウへ移動させたい

    Firefox でタブをたくさん開いたとき、タブグループで分類する。

    タブグループとは | Firefox ヘルプ

    タブグループにより、関連するタブを視覚的にグループ化し、表示するタブグループを切り替えたり、すべてのタブからすばやく検索したりできます。

    更にタブを開くと、タブグループがウィンドウ一杯になってしまう。この場合、タブグループを別のウィンドウに移動して独立させたくなる。しかし、タブグループを D&D で簡単にウィンドウ化することはできない。

    仕方がないので、新しいウィンドウを予め開いておき、移動したいタブグループを選択した後、タブを一つ一つ移動している。開いているタブを複数選択し、一気に別のウィンドウへ移動させたい。

     

    2. Multiple Tab Handler で複数のタブを新しいウィンドウへ移動する

    SnapCrab_NoName_2012-9-23_12-35-7_No-00アドオン Multiple Tab Handler を使うと、複数のタブを操作できる。

    複数のタブを別のウィンドウへ移動させたい場合、

    1. 移動したいタブを、Shift または Ctrl キーを押しながら選択する
    2. タブの上で右クリック > 「新しいウィンドウに移動」を選択する。

    SnapCrab_NoName_2012-9-23_12-32-23_No-00

    関連記事

    Scheme のペアとリスト

    1. Haskell の (:) コンスはリストを生成する

    Haskell で、リストの先頭に要素を追加するには (:) 演算子を使う。

    Prelude> 1:[2,3,4]
    [1,2,3,4]

    演算子 (:) は「コンス」と呼ばれる。この関数は、リストのデータコンストラクタとして定義されている。

    The Haskell 98 Language Report > 6.1.3 リスト

    data [a] = [] | a : [a] deriving (Eq, Ord)
    リストは、二つの構成子をもつ代数的データ型であるが、3.7 節で述べたように特別な構文をもつ。最初 の構成子は空リストで、`[]' (「ニル」)と書く。二つ目の構成子 は、`:' (「コンス」)と書く。

    (:) の型を確認する。

    Prelude> :t (:)
    (:) :: a -> [a] -> [a]

    リストの要素は、同じ型でなければならない。そのため、次のような計算ではエラーとなる。

    "Hoge":[2,3,4]

     

    2. Lisp の cons はペアを生成する

    Lisp にも同じ名前の cons 関数がある。ただし、Haskell の (:) とは異なる。

    1. cons により、2つの、値または値へのポインタを持つオブジェクトを生成する。
    2. cons により生成されたオブジェクトは「ペア」と呼ばれる。
    3. ペアの1番目の要素は car により、2番目の要素は cdr により参照する。

    cons - Wikipedia, the free encyclopedia

    cons (play /ˈkɒnz/ or /ˈkɒns/) is a fundamental function in most dialects of the Lisp programming language. cons constructs memory objects which hold two values or pointers to values. These objects are referred to as (cons) cells, conses, non-atomic s-expressions ("NATSes"), or (cons) pairs.

    Haskell のように、リスト型に対して定義されている関数ではない。

     

    ペア

    Lisp の cons によって生成される「ペア」とは、順序対 のこと。

    順序対は、2つの要素で構成される。

    Ordered pair – Wikipedia

    … an ordered pair (a, b) is a pair of mathematical objects. In the ordered pair (a, b), the object a is called the first entry, and the object b the second entry of the pair.

    cons によって生成されるのは、リストではない。

     

    3. タプルでペアを表現できる

    Haskell には、Data.Tuple 型が定義されている。この型を順序対として用いることができる。データコンストラクタは、リストと同じように特別な表記がある。

    (,)

    タプルとは、要素が順に並んでいるリストのこと。要素の数 n に応じて、n-tuple と呼ばれる。特に 2-tuple は順序対と言う。

    Tuple – Wikipedia

    … a tuple is an ordered list of elements. In set theory, an (ordered) n-tuple is a sequence (or ordered list) of n elements, where n is a positive integer.

    The unique 0‑tuple is called the null tuple. A 1‑tuple is called a singleton, a 2‑tuple is called an ordered pair and a 3‑tuple is a triple or triplet.

    タプルは、順序対をネストしたものと見なせる。

    Tuples as nested ordered pairs

    Another way of formalizing tuples is as nested ordered pairs:

    1. The 0-tuple (i.e. the empty tuple) is represented by the empty set \emptyset.
    2. An n-tuple, with n > 0, can be defined as an ordered pair of its first entry and an (n-1)-tuple (which contains the remaining entries when n > 1):
      (a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, a_3, \ldots, a_n))

    This definition can be applied recursively to the (n-1)-tuple:

    (a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, (a_3, (\ldots, (a_n, \emptyset)\ldots))))

     

    4. Scheme と Haskell の比較

    Data.Tuple に定義されている関数は、順序対に対して適用できる。

    Lisp のペアに対する操作と名前を比較すると、

      Lisp Haskell
    ペアを生成 cons (,)
    1番目の要素を取得

    car

    fst
    2番目の要素を取得 cdr snd

    Haskell でタプルを生成し、上記の関数を適用する。

      print (1, 2)              -- (1,2)   print (1, "hoge")         -- (1,"hoge")
      print $ fst $ (1, 2)      -- 1
      print $ snd $ (1, "hoge") -- "hoge"

    リストと違い、タプルの要素は異なる型でも良い。

    次に、同じ操作を Scheme で書いてみる。Scheme は Lisp の一方言なので、上記と同じ関数が用意されている。

    11.9 Pairs and lists

    A pair is a compound structure with two fields called the car and cdr fields (for historical reasons). Pairs are created by the procedure cons. The car and cdr fields are accessed by the procedures car and cdr.

    (display (cons 1 2))             ; {1 . 2}
    (newline) 
    (display (cons 1 "hoge"))        ; {1 . hoge}
    (newline)  
    (display (car (cons 1 2)))       ; 1
    (newline)
    (display (cdr (cons 1 "hoge"))) ; hoge
    (newline)

     

    5. Scheme のリストはペアからできている

    リストの定義

    Lisp 系の言語は、ペアで「リスト」を表現する。ペアという構造の上にリストが作られる。Haskell では、ペアを表現するためのタプルとリストは全く別の型。

    Scheme において、リストは次のように定義されている。

    1. 空リスト
    2. ペアの cdr フィールドがリストであるもの

    A list can be defined recursively as either the empty listor a pair whose cdr is a list. More precisely, the set of lists is defined as the smallest set X such that

    • The empty list is in X.

    • If list is in X, then any pair whose cdr field contains list is also in X.

    11.9 Pairs and lists より)

    要素のない空リストは、特別に用意されており、

    ()

    と表現する。

    (display (cons 1 '()))          ;(1)
    (newline)
    (display (cons 1 (cons 2 '()))) ; (1 2)
    (newline)

    最初の例は、ペアの cdr フィールドに空リストがあるので、リストである。

    次の例は、(cons 2 ‘()) がリスト。そのため、全体では

    (cons 1 リスト)

    という構造になるのでリスト。

     

    リストはペアであるが、空リストはペアでない

    リストは、ペアの特殊な形として作成される。そのため、リストはペアでもある。

    対象がペアの場合真を返す述語 pair? と、リストである場合真を返す述語 list? を使って確かめてみる。

    (define ls (cons 1 (cons 2 (cons 3 '()))))
    (display (pair? ls))    ; #t
    (display (list? ls))    ; #t

    ただし、空リストはペアではない。

    The empty listis a special object of its own type. It is not a pair. It has no elements and its length is zero.

    また、述語 null? に対して唯一真を返すオブジェクト。

    (null? obj)    procedure

    Returns #t if obj is the empty list, #fotherwise.

    (display (pair? '()))  ; #f
    (display (list? '()))  ; #t
    (display (null? '()))  ; #t

    まとめると、

    1. リストはペアである。
    2. ただし、空リストはペアではない。
    3. 空リストは、null である特別なオブジェクト。

    当初、この点に違和感を覚えた。なぜなら、ペアが保持している要素によって、可能な操作が異なる。そのため、要素の内容により、型が変化するように見えたから。

    たとえば、リストの逆順を返す reverse 手続きはリストに適用できるが、ペアには適用できない。同じような手続きはライブラリにいくつか定義されている。

    Haskell でたとえると、

    • (1, [])
    • (1, (2, [])

    は、ペアであると同時にリストであり、この場合にのみ適用可能な関数がある、といった感じ。Scheme よりも Haskell を先に学んだので、Scheme のペアとリストの関係がしっくりこなかった。

     

    ドット対

    ところで、cons 関数で生成したペアを display 関数で表示すると、`.’(ドット)を用いて表される。要素が3つのときは、次のように表示される。

    (display (cons 1 (cons 2 3)))    ; {1 2 . 3}

    ネストされたペアは、ドットが省略された形。

    11.9 Pairs and lists

    A chain of pairs not ending in the empty list is called an improper list. Note that an improper list is not a list. The list and dotted notations can be combined to represent improper lists:

    (a b c . d)

    is equivalent to

    (a . (b . (c . d)))

    ドットで表現されたペアを、ソースコードにそのままの形で書き、実行するとエラーとなる。

    (display (1 2 . 3))

    括弧で囲まれた最初の要素は手続き、それ以降の要素は引数として解釈されるため。

    Procedure calls

    (<operator> <operand1> ...) syntax

    A procedure call consists of expressions for the procedure to be called and the arguments to be passed to it, with enclosing parentheses.

    これを回避するには、quote を用いる。

    11.4.1 Quotation

    Semantics: (quote <datum>) evaluates to the datum value represented by <datum> (see section 4.3).

    quote の代わりに ‘ を使うこともできる。

    (display (cons 1 (cons 2 3)))    ; {1 2 . 3}
    (newline)
    (display (quote (1 2 . 3)))
    (newline)

     

    6. Scheme の基本的な型

    Scheme で操作する対象となるオブジェクト(値)は「型」を持つ。

    1.1 Basic types

    Scheme programs manipulate objects, which are also referred to as values. Scheme objects are organized into sets of values called types.

    基本的な型に対応した述語が9つ定義されている。この手続きを用いて値の型を特定できる。

    11.1 Base types

    No object satisfies more than one of the following predicates:

    boolean? pair?
    symbol? number?
    char? string?
    vector? procedure?
    null?

    These predicates define the base types boolean, pair, symbol, number, char (or character), string, vector, and procedure. Moreover, the empty list is a special object of its own type.

    Note that, although there is a separate boolean type, any Scheme value can be used as a boolean value for the purpose of a conditional test; see section 5.7.

    上記には「ペア」と「空リスト」を特定する述語が挙げられている。しかし、リストに対応した述語は含まれていない。

    述語 list? は、ペアとリストの解説で述べられている。

    11.9 Pairs and lists

    (list? obj)    procedure

    Returns #t if obj is a list, #f otherwise. By definition, all lists are chains of pairs that have finite length and are terminated by the empty list.

    このことからも、リストはペアの特殊な形であることが分かる。

     

    関連記事

    参考サイト

    2012年9月17日月曜日

    Firefox でアドオンの動作が異常な場合、前のバージョンを利用する - AutoPager 7.1.8 が動かないので一つ前のバージョンに戻した

    1. AutoPager 7.1.8 が動作しない

    SnapCrab_NoName_2012-9-17_9-17-50_No-00AutoPager は「次のページを自動的に読み込む」ための Firefox のアドオン。AutoPagerize よりもカスタマイズがしやすいので、こちらを利用している。このアドオンがないとブラウザを利用する気が失せる。

    2012/09/11 にリリースされた Version 0.7.1.8 に更新されたら、動作しなくなった。アドオンバーに表示されていた AutoPager のアイコンも消えてしまった。設定画面を開くことも出来ない。

    AutoPager Version History より、一つ前のバージョンである

    をインストールすると、動作してくれる。

    追記(2012/09/17):最新のバージョンである Version 0.7.2.0 でバグが修正された。

     

    2. 自動的に更新されるのを防ぐ

    修正バージョンが出るまで、アドオンが自動更新されないようにしておく。

    Firefox ボタン > アドオン を開き、AutoPager の「詳細」リンクを選択し、

    SnapCrab_NoName_2012-9-17_9-21-25_No-00

    自動更新を「オフ」にした。

    SnapCrab_NoName_2012-9-17_9-23-43_No-00

     

    3. アドオンのバージョン情報をフィードでチェック

    各アドオンのページ下部には、Version Information の記述がある。リンク先のページでは、アドオンのバージョン情報がフィードとして配信されている。

    AutoPager の更新情報をチェックをするために

    配信されているフィードを購読しておいた。

    2012年9月10日月曜日

    Windows でコントロールパネルの項目を設定するスクリプト – Windows Script Host を利用し JScript によるバッチ処理を行う

    1. コントロールパネルの値を設定するためのスクリプト

    Windows のコントロールパネルをスクリプト(バッチ処理)により設定したい。

    SnapCrab_コントロール パネル_2013-3-1_9-37-52_No-00

    コントロールパネルの項目は、設定したい項目を起動した後、キーボードの操作により設定できることが多い。以下は、そのための JScript による関数。

    var setControlPanel = function(cmd, title, keystrokes){
        var WshShell =  WScript.CreateObject("WScript.Shell");
        WshShell.Run(cmd);
        do {
            WScript.Sleep(100);
        } while(!WshShell.AppActivate(title));
        WshShell.SendKeys(keystrokes);
    };

     

    関数の説明

    関数 setControlPanel の第1引数は、コントロールパネルの項目を起動するためのコマンドを与える。起動できる対象は、以下を参照。

    各項目を起動するためには、control を付ける必要がある。

    第2引数は、起動したコントロールパネルの項目の、ウィンドウタイトルを与える。

    第3引数は、起動したコントロールパネルの項目に対して、キーボードの操作により設定を行うための一連のキー入力を与える。キー入力の方法については、SendKeys メソッド を参照。

    上記を setControlPanel.js と名前を付けて保存する。

     

    2. スクリプトの使い方

    例えば、マウスの左右のクリックを入れ替えるには、

    setControlPanel("control main.cpl",
                    "マウスのプロパティ",
                    "{+}^{TAB}{HOME}{DOWN}{ENTER}");

    サウンドのデバイスを切り替えるには、

    setControlPanel("control mmsys.cpl",
                    "サウンド",
                    "{DOWN 2}%{s}{TAB 3}{ENTER}");

    電源のプロファイルを変更するには、

    setControlPanel("control powercfg.cpl", 
                    "電源オプション", 
                    "^{f}{TAB 11}{DOWN}%{F4}");

    この例の場合、最初に、検索フィールドをアクティブにしないと、正常にキー入力がされなかった。

     

    3. ショートカットからスクリプトを起動する

    コントロールパネルの項目を設定する各々のスクリプトは、独自に作成する必要はない。

    1. 以下のコードをを上記のスクリプトに追加し、
    2. そのショートカットを作成して、
    3. 引数を与えることによりスクリプトを起動できる。

    SnapCrab_NoName_2013-3-1_10-1-57_No-00

    setControlPanel(WScript.Arguments.item(0),
                    WScript.Arguments.item(1),
                    WScript.Arguments.item(2));

    ショートカットのプロパティを開き、リンク先には、

    C:\Windows\System32\wscript.exe [スクリプトへのパス] [引数...]

    を入力する。

     

    ショートカットアイコンのカスタマイズ

    ショートカットに独自のアイコンを設定したい場合は、以下を参照。

     

    wscript.exe で起動しないときの注意点

    追記(2013/03/01): 上記で作成したショートカットは、wscript.exe で起動しなくてもスクリプトは実行される。

    ただし、JScript ファイルを実行すると、スクリプトが実行されず、スクリプトを編集するためのアプリケーションが起動することがある。それは、拡張子が .js であるファイルを当該アプリケーションに関連付けてしまった場合に起こる。

    SnapCrab_NoName_2013-3-1_9-54-1_No-00例えば、Aptana をインストールし、.js ファイルをアプリケーションに関連付けると、以後、上記のスクリプトは Aptana で開かれてしまう。

    このときは、必ず wscript.exe でスクリプトを起動するようにしておく。

     

    4. スクリプトの内容について

    コントロールパネルの項目が起動していることを確認するために、AppActive メソッドを利用した。

    @IT:運用 Windows管理者のためのWindows Script Host入門 第5回 WshShellオブジェクトの詳細(1) 4.キー・ストロークの送信とプログラムのアクティベーション によると、

    AppActivateメソッドは、実行に成功すればTrueを、失敗すればFalseを返す。この戻り値を利用して、成功するまで待つことができる。

    ループについては、JScript のプログラム フロー制御 を参照。

    2012年9月9日日曜日

    Facebook のアカウントで WEB 上のサービスに登録したら、勝手に投稿されないようにアプリ設定を確認し、共有範囲を設定しておく

    1. 勝手に投稿される内容に注意

    Facebook のアカウントで登録できる WEB 上のサービスが増えている。登録が簡単なので利用することが多い。

    SnapCrab_NoName_2012-9-9_10-8-38_No-00

    SnapCrab_NoName_2012-9-9_10-8-43_No-00

    SnapCrab_NoName_2012-9-9_10-8-57_No-00

    このようなサービスに登録した後は、必ず Facebook のアプリの設定を確認する必要がある。なぜなら、自分が意図しない投稿が自動的にされるため。

     

    2. Facebook でアプリが投稿する内容と、共有範囲を設定しておく

    a. アクティビティログを確認

    例えば、ラジオ代わりに音楽を流しておく目的で、8tracks というサービスを利用している。

    このサイトに Facebook のアカウントで登録すると、聴いている曲名が自動的に Facebook に投稿される。

    投稿された内容を確認するには、Facebook における自分のプロフィールを表示。

    SnapCrab_NoName_2012-9-8_22-28-1_No-00

    「アクティビティログ」をクリックする。

    SnapCrab_NoName_2012-9-8_22-28-12_No-00

    これにより、8tracks が投稿した内容を確認できる。

    SnapCrab_NoName_2012-9-8_22-30-22_No-00

    自分の場合、Facebook は基本的に公開設定にしている。このため、アプリが投稿する内容はデフォルトで公開される。

     

    b. アプリが投稿する内容を確認

    8tracks のアプリケーション設定を見直すために、

    を確認した。8tracks の設定における「このアプリができること」を見ると、

    … あなたが聴いた曲、あなたが聴いたラジオ局等を投稿することを許可します。

    と書かれている。

    SnapCrab_NoName_2012-9-8_22-51-53_No-00

     

    c. 共有範囲を設定

    自分が聴いている曲を、他人に知らせたくない場合、「あなたに代わっての投稿」を

    自分のみ

    に設定しておく。

    同じような機能を持つ音楽サイト Thefuture.fm も、聴いている曲が自動的に Facebook に投稿されていた。こちらも共有範囲を「自分のみ」に設定した。

    共有範囲を「自分のみ」にしても、アクティビティログには記録される。誰かに聴かせたい曲があった場合、アクティビティログを開き、共有範囲を変更した方が良さげ。

     

    3. サービス側で Facebook に投稿する内容を設定しておく

    スライドを共有する SlideShare というサービスも、Facebook と連携させることができる。

    上記の音楽サービスと同じように、スライドを見ただけで、何を見ているのか Facebook に投稿されてしまう。

    Facebook 上で SlideShare が投稿する内容を確認すると、

    … presentations you uploaded, people you follow 等 …

    と書かれている。ここで注意して置かなければならないのは、「等」と表現されているものが何を指すかということ。

    SnapCrab_NoName_2012-9-9_9-12-39_No-00

    SlideShare では、設定画面において、Facebook に投稿される内容をコントロールできる。ここには自分が見ているスライドが共有されることが明記されている。

    SnapCrab_NoName_2012-9-9_9-8-33_No-00

    できることなら、Facebook 側でアプリの動作を事細かに制御できる仕組みを導入して欲しい。

    現状では、どこかのサービスと Facebook を連携したら、

    1. Facebook 上で、アプリが自動的に行うことを確認し、共有範囲を設定する。
    2. サービス側で Facebook に投稿する内容を設定する。

    ということが必要となる。

    2012年9月8日土曜日

    Windows でマウスの左右ボタンを入れ替えるスクリプト(2) - マウスポインタの表示も変更

    Windows でマウスの左右ボタンを入れ替えるスクリプト のつづき

    1. マウスポインタの形状も変更する

    マウスポインタの矢印の形は、左斜め上に傾いている。これは右手で操作することを前提とした形状。そのため、この形のまま左手でマウスを操作すると違和感を感じる。

    左手でマウスを操作するときは、マウスポインタの矢印の形が右斜め上に傾いていて欲しい。

    そこで、マウスの左右を入れ替えるスクリプトに、マウスポインタの形状を変更する処理を追加した。ただし、左手用のマウスポインタ画像は既に追加してあるとする。

    var setControlPanel = function(cmd, title, keystrokes){
        var WshShell =  WScript.CreateObject("WScript.Shell");
        WshShell.Run(cmd);
        do {
            WScript.Sleep(100);
        } while(!WshShell.AppActivate(title));
        WshShell.SendKeys(keystrokes);
    };
    
    setControlPanel("control main.cpl",
    	"マウスのプロパティ",
    	"{" + WScript.Arguments.item(0) + 
    		"}^{TAB}{HOME}{DOWN " +
    		 WScript.Arguments.item(1) +
    		 "}{ENTER}"
    );

     

    2. スクリプトを実行するためのショートカット

    左手用

    スクリプトを実行するために、

    1. 上記コードを changeMouseButton.js と名前を付けて保存する。
    2. changeMouseButton.js のショートカットを作成し、Click-Right と名前を変更する。
    3. ショートカットのプロパティを開き、「ショートカット」タブのリンク先の末尾に + 1 を追記する。

    … \changeMouseButton.js + 1

    最後に、ショートカットのアイコンを Arrow, Right, Small icon に変更した。

    これにより、ショートカットをクリックすると、マウスクリックが左利き用に変更される。

    ショートカットは、クイック起動で起動できるようにした。

     

    右手用

    右手用に戻すために、上記と同じ手順でショートカット作成し Click-Left と名前を変更し、ショートカットのリンク先の末尾を – 2 とする。

    … \changeMouseButton.js – 2

    アイコンは、Arrow, Right, Small icon を利用した。

     

    3. スクリプトの内容について

    スクリプトで行なっている内容は、コントロールパネルにおける「マウスのプロパティ」を開き、キーボードで設定を変更する操作をスクリプトで代行している。

    キー入力を行うには、SendKeys メソッド を利用する。

    マウスを左利き用に変更するキー入力は、

    {+}^{TAB}{HOME}{DOWN}{ENTER}

    右利き用に戻すキー入力は、

    {-}^{TAB}{HOME}{DOWN 2}{ENTER}

    ショートカットを作成しているのは、スクリプトを起動するときの引数で、上記のキー入力を指定するため。

    チェックボックスに対するキーボード操作に関しては、以下を参照。

     

    関連記事

    Facebook から通知される「お知らせ」を自分に対するコメント・いいね!に限定する

    1. お知らせに表示される内容が多すぎる

    SnapCrab_NoName_2012-9-7_23-57-3_No-00Facebook では、自分の投稿に対するコメントやいいね!があった場合、「お知らせ」に通知される。お知らせには、「親しい友達」の更新状況も通知される仕組みになっている。

    このため、自分の投稿に対する反応を見落とす場合がある。そこで、「親しい友達」の更新を通知対象から外すことにした。

     

    2. お知らせをオフにする

    SnapCrab_NoName_2012-9-8_0-1-23_No-00Facebook の左メニューから、

    • 友達 > 親しい友達

    を選択する。次に、右上に表示されている「お知らせ」のセレクトボックスで「オフ」を選ぶ。

    SnapCrab_NoName_2012-9-8_8-48-8_No-00

     

    3. 親しい友達を絞り込む

    SnapCrab_NoName_2012-9-8_8-48-8_No-002「親しい友達」のリストを空にした場合、お知らせをオフにしたときと同じ効果が得られる。

    1. 「親しい友達」を表示し、右上に表示されている「リスト管理」のセレクトボックスで「リスト編集」を選ぶ。
    2. 親しい友達を編集するダイアログが表示されたら、表示されている友達を削除する。

     

    通知される内容を限定する

    SnapCrab_NoName_2012-9-8_9-4-11_No-00しかし、「親しい友達」リストから全ての友人を削除すると、このリストの存在意義がなくなってしまう。そのため、「親しい友達」に追加する友人を絞り込み、通知機能を有効に活用したほうが良い。

    「リスト管理」における、「表示するアップデート」を限定することも効果的。

    何もかも知らされるより、知りたいことを意識的に限定した方が情報に煩わされることがない。

     

    4. メールに通知される内容を絞り込む

    メールに通知される「お知らせ」の内容を細かく設定しておけば、Facebook 内で通知される内容と分けることができる。

    において、「メールの頻度」のチェックボックスを外し、メールに通知して欲しい内容をチェックする。

    SnapCrab_NoName_2012-9-8_9-23-0_No-00

    通知される内容と媒体を整理すると、必要な情報を把握しやすい。