PC-Talker で Cygwin のコマンドを快適に読み上げられるようにする

PC-Talker 7 Ver2.x は、コマンド プロンプトでのコマンドの入力やコマンドの出力結果の読み上げに対応している。
ただ、PC-Talker のマニュアルにはほかのコマンドライン環境での読み上げに関しては何も書かれていなかった。ほかのコマンドライン環境の読み上げにも対応していれば、Cygwin を入れて PC-Talker で快適に UNIX コマンドを扱えるようにできたりしていろいろ捗んじゃないかと思って、とりあえず Cygwin を入れてみた。

Cygwin のインストール

ここから setup.exe をダウンロードして実行する。パッケージの選択画面は、PC-Talker では読み上げなかったので、周りの人に見てもらった。今回は、Devel に含まれるパッケージをすべてインストールした。Python のインストール中にエラーが帰ってきたけどPythonはしばらく使う予定がないのでスルー(ぇ
インストール後、Cygwin Terminal を起動して適当にコマンドを入れてみたが、入力されているコマンドもそのコマンドの出力も全く読み上げられなかった。

コマンド プロンプトから Cygwin のコマンドを扱えるようにする

環境変数を設定して使えるようにする方法もあるらしいが、私はバッチファイルを作った。中身はこんな感じ。当然だけど、Cygwin をCドライブ直下に入れていない場合はパスの部分を書き換える必要がある。

@echo off
C:\cygwin\bin\bash.exe -l

このバッチファイルを実行すれば、コマンド プロンプトから Cygwin のコマンドが扱えるようになって、PC-Talker でも読み上げられるようになる。

環境変数を設定してメモ帳を簡単に使えるようにする

PC-Talker で快適にCygwinのコマンドを使えるようになったので、いろいろ遊んでみた。なんであえてメモ帳なのかというと、今の環境に読み上げに対応したエディタがメモ帳しかないから。バッチファイルを実行して

echo 'alias notepad="C:/Windows/System32/notepad.exe"' >> ~/.bash_profile

と入力して Enter キーを押せば、notepad と入力すればメモ帳をすぐに起動させることができる。

Cで Hello World を出力するプログラムを作って、GCC でコンパイルしてみる

バッチファイルを実行して

notepad hoge.c

と入力してEnter キーを押す。するとhoge.c というファイルが開かれた状態でメモ帳が起動する。hoge.c の部分を書き換えればファイル名を変更できる。そこに

#include <stdio.h>
main()
{
printf("Hello World\n");
}

と入力して、hoge.c を保存してメモ帳を閉じる。これで hoge.c が作成されたので、あとはそれをコンパイルする。

gcc hoge.c

と入力して Enter を押す。 ls でファイルの一覧を見ると、a.exe というファイルがあるはず。最後に a.exe を実行してみる。 ./a と入力しEnter。Hello World と出力されれば成功。
UNIX系OS向けのスクリーンリーダーもあるらしいけど、ひとまず今の環境を変えずにちょっと遊ぶ程度のことができるようになったのでよかった。

64bit版Windows 7でASUS Xonar DG Audioからサウンドが出力されないときの対処方法

タイトルそのままです。購入したBTOモデルのデスクトップPC、サウンド関連のオプションのところでオンボードサウンドかASUS Xonar DG Audioというサウンドカードのどちらかを選択できるようになっていたので、私はサウンドカードを選択してPCを注文しました。
PCが届いたときはサウンドは出力されていました。ただ、OSの挙動がおかしかったので、すぐにOSを再インストールしました。するとサウンドが出力されなくなってしまいました。

原因

なぜか無署名の32bit用のドライバーがインストールされてしまっていた。そのために、有効な署名が検出されないためにドライバーが動かなくなり当然サウンドも出力されなくなる。

対処

.infファイルの一部を書き換え、ドライバーをインストールしなおす。XonarDG.INFは、ドライバーをサイトから落としてきた場合、PCI-DG-111007-7.12.8.1794(W7-ER)\SoftwareDriver\driverにある。書き換え前の記述と書き換え後の記述を書いてみる。

書き換え前

[SourceDisksFiles.amd64]
cmudaxp64.sys=222
cmudaxp.dll=222
CmiFltr.dll=222

[SourceDisksFiles]
CmiFltr.dll=222
cmudaxp.dll=222
cmudaxp.sys=222

書き換え後

[SourceDisksFiles]
cmudaxp64.sys=222
cmudaxp.dll=222
CmiFltr.dll=222

;[SourceDisksFiles]
;CmiFltr.dll=222
;cmudaxp.dll=222
;cmudaxp.sys=222
で、あとはドライバーを入れなおすだけ。
参考:http://www.amazon.co.jp/review/RXUUH0027IRIH

それでもサウンドが出力されない場合(2015/04/12追記)

先日突然にサウンドが出力されなくなる事案が発生してしまい、64bit用のドライバーを入れなおしてみたものの改善されず、いろいろと調べていたら、UNi Xonar driversというMODドライバを見つけました。これを適応したところ、サウンドは問題なく出力されるようになりました。今の環境では特に問題なく動いてはいますが、一応公式のものではないので、適応前にはバックアップを取っておくのがいいかもしれません。
http://maxedtech.com/asus-xonar-unified-drivers/

デスクトップPC購入done

ブログのネタにするためにバレンタインデーに合わせてチョコレートの画像を拾ってくるプログラム書きたかった。

デスクトップいつ買うか?今でしょ!

ってことでついに私のPCが手に入りましたとさ(これまでは家族教養のノート使ってた)。ほんとは自作したかったけど、周りに自作手伝ってくれそうな人がいなかったので断念。TSUKUMOのBTOモデルを購入。

スペック

  • ケース:eX.computerオリジナル ATXミドルタワーケース
  • M/B:MSI ZH77A-G43
  • CPU:Intel Core i7-3770
  • CPUクーラー:Zalmanのやつ(スペックを書いたファイルを紛失したため型番はわからない)
  • グラフィック:オンボードVGA
  • サウンドカード:ASUS Xonar DG
  • ストレージ:Samsung 840SeriesSSD(120GB)+WD10EZEX / AFT(1TB)
  • 光学ドライブ:LG GH24NS95
  • 電源:Topower TOP-650D-B2
  • OS:Windows 7 Professional 64-bit with Service Pack 1
  • ディスプレイ:祖父の家にあった使わなくなったもの(NEC製・型番不明)
  • キーボード:FILCO Majestouch2 108フルキー茶軸日本語配列
  • マウス:なし

このスペックの割にグラフィックとディスプレイが適当だったりマウスがない理由に関しては察してください。このエントリー見てる人はわかるはずw
あれ、そもそもこのエントリー見てる人なんているのかn…

今後購入したいもの

  1. PT3
  2. 今スピーカーとして使ってるしょぼいミニコンポに代わる新たなスピーカー

とりあえず早くPT3を手に入れたい。

CSSのspeakプロパティがスクリーンリーダーでの読み上げに影響するのか検証してみた

おせち料理食べてたら2月になってた。おかしいな。

今日はCSSのspeakプロパティがスクリーンリーダーでのページの読みあげにどう影響するのか検証してみる。

ことの発端

昨日Twitterでスクリーンリーダーの話をしてたら



と聞かれた。私はspeakプロパティ事態を知らなかったので少し調べてみた。で、読み上げには何の影響も与えないのではと考えた。理由は、speakプロパティをIEがサポートしておらず、IEコンポーネントブラウザのNetReader(私が使ってる視覚障害者向けのブラウザ)ではspeakプロパティをサポートしないと思ったから。ただほんとにそうなのか気になってきたので検証してみようということになった。

スピークプロパティとは

そもそもspeakプロパティとは何なのか。speakプロパティは、ページ内のテキストの読みあげ方法を指定できるCSSプロパティ。値には以下のものが設定できる。

  1. none(指定箇所を読み飛ばす)
  2. normal (言語に応じて読み上げる)
  3. spell-out (1文字ずつ読み上げる)

Speakプロパティをサポートするブラウザが見当たらない

上に書いたようにIEはこのCSSプロパティをサポートしていない。それにfirefoxchromesafariはこのCSSプロパティをサポートしているかわからないとのこと。
ただNetReaderは視覚障害者向けのブラウザだし、検証してみる価値はあると考えた。

ということで検証してみた

実際にCSSとHTMLを書いてNetReaderとIE9Google Chrome上でスクリーンリーダーがどのようにページを読み上げるか調べた。使ったスクリーンリーダーはPC-TalkerとGoogle Chromeの読みあげに対応してるNVDA。実際に書いたソースを貼ってみる。

HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>test</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<P>最近は<abbr title="Hypertext Preprocessor">PHP</abbr>の勉強をしている。</P>
</body>
</html>
CSS
@charset "utf-8";
abbr {speak : spell-out ; }

この二つのファイルを同じディレクトリに置いてHTMLをそれぞれのブラウザで開く。speakプロパティの値が読み上げに影響するとすればこのHTMLは「最近はP・H・Pの勉強をしている。」と読み上げられるはずである。

結果

NetReader、IE、Chromeのいずれのブラウザでもspeakプロパティの値は読み上げに何の影響も与えなかった。文字で表すとすれば「最近はPHPの勉強をしている。」と読み上げられた。

多くのブラウザがspeakプロパティをサポートしていない理由

多くのブラウザがspeakプロパティををサポートしていない理由。それはspeakプロパティが音声ブラウザ用に作られた機能だから。音声ブラウザは、ブラウザに読みあげ機能が実装されているもの。たとえば、かなり前に開発が止まってしまったIBMのホームページリーダーのようなもの。
なので、読みあげ機能のないブラウザではspeakプロパティはサポートされないという分け。今更気づくとかさすが私だね!はぁ。検証した意味あったのかな…。ま、楽しかったしいいや。

余談

昨日の夜に私がスクリーンリーダーに関してTwitterでわーわー言ったことをなんと@sakisaka7さんがTogetterにまとめてくれました!
視覚障害者向けのWeb設計を考える - Togetter
あまり多くのことは書いてありませんがぜひ読んでみてください。

私に関するFAQ

こんにちはこんばんは。先週負傷してしまったところもかなり治ってきました。よかったよかった。

ってことで

Twitterをしてると私に関して似たような質問をもらうことが多いので、その質問とそれに対する私の回答をまとめてみようと思います。このエントリーの投稿後も、ほかによく聞かれる質問があれば適宜このエントリーを更新しようと思います。

目が見えていなくて大変だと感じたこと

これはTwitterで知り合った人だけではなく、これまで会ったいろいろな人から聞かれます。
最近一番感じるのは、目が見えていないためにほかの人と比べて行動範囲が狭まるということ。Twitterでほかの人が勉強会などに参加してたり、オフ会をしているところを見るととくに思います。少しずつ行動範囲を広げたいとは思ってるんですが、そのあたりに関してなかなか家族から理解を得られていないために何もできていないのが現状。いろいろなところに行きたいっていう気持ちはかなりあるので、家族の人としっかり話し合っていきたいですね。
ほかには、当然私には周りの景色も見えないので、景色がきれいだといわれても何もわからないこと。最近はあまり気にならなくなりましたが、小さいときは周りの人が見ているものが見えないということがつらかったですね。
ほかにもたくさんあると思うんですが、こうして考えるとあまり浮かんでこないです。不便なことはあっても大変だと思うことは少ないのかな。きっと生まれつき目が見えていなくて目が見えるという感覚がわからないので、見えていなくて大変だと思うことはあまり浮かんでこないのかなと思います。

PCはどうやって扱っているのか

PCは、画面を音声で読み上げてくれるソフトを使って操作してます。マウス操作はできないのですべてキーボードで操作してます。私が使ってる読み上げソフトはPC-Talker。このソフトがあればPCの基本的操作はできるので、Twitterもその読み上げソフトを使ってやっています。

TwitterなどのSNSを始めた理由

そんな大した理由はありません。リア友にPCやPGの話で盛り上がれる人がいなかったから。それだけです。もっと全盲のTwitterユーザーもいるのかと思ったら、思った以上に全盲ユーザーが少なくて驚きました。
最近Facebookのアカウントも作ってみました。これはTwitterで書ききれないことをまとめたいと思ったから。Facebookは視覚障害のある人にとってはすごく使いにくいサイトだといろんな人から聞いたのですが、実際はそんなこともないです。
使いにくい部分もありますが案外何とかなります。FBに関してはまた別の機会に使って感じたことなどを詳しくまとめてみたいなとか思ってます。

そもそもほんとに目は見えていないのか

たまに疑われますが、上の文章を見れば私がほんとに目が見えてないことがわかるのではないかなと思います。「嘘ではないかと思った」ともいわれますが、「目が見えていない」なんて嘘をつくメリットなんて何もありません。

AAとか顔文字はわかるのか

顔文字やAAは、スクリーンリーダーではAAなどを構成している記号をそのまま読み上げるので、Twitterなどでよく使われているものならわかります。それ以外はわからないので、文脈やこれまでの会話の内容からなんとなく判断してます。

お前写真upしてんじゃんどういうことだ

写真は周りの見えてる人に撮影してもらったものをあげてます。

最後に

私は自分の目のことに関してあまり気にしていません。何か気になることがあれば、気軽にTwitterなどで質問してあげてください。

BFoD(Blue Face of Death.)が出たときのまとめ

BSoDじゃなくてBFoD。青くなったのは私の顔です。笑えないですね。

久々のBFoD

 3学期二日目の朝。6:30頃に起床しました。2階の自室からいつものように1階に降りようと思ったんですが、少し息苦しい感じがしました。これまでもたまに息苦しい感じがすることがあって、その時は少し安めばすぐに回復したので運動不足だな…とか思ってました。
で、その日も少し自室でじっとしていたら息苦しい感覚はとれました。とりあえず1階に降りてご飯を食べて、2階に靴下だけ取りにいこうと思い、2階へ。ここでまた息苦しい感覚が。しかも今までよりもひどい。とりあえず靴下を片方だけはきました。その先の記憶はあいまいで、もう片方の靴下はいて1階に行かないとな…と思ったのは覚えてます。
で、気付いたら階段で倒れてました。隣には父親がいました。
顎を切ってしまっていて、念のために親が救急車を呼んでくれました。んで、生まれて初めて救急車に乗りました。

病院へ

 救急車に乗ってる時の記憶ははっきりあります。救急隊の話を聞くと、私の体内の酸素濃度が少し低下していたらしいです。あとは正常とのこと。ってことで、酸素マスクを装備。病院につく直前には酸素濃度は回復しました。よかったよかった。

病院到着

 朝の通勤時間帯と重なり道が混んでたので病院につくのに少し時間がかかりました。病院についてからは私は念のために車いすで移動することに。とりあえず救急外来へ。

救急外来

 ここでとりあえず脳のレントゲンを撮りました。この時点で特に異常は見つからなかったです。次に、顎の傷の一時的な処置として傷にテープを貼られました。傷は形成外科に見せろと言われたので形成外科へ。

形成外科

 車いすで形成外科へ。たぶん傷を縫うことになるんだろうな…と思ってたらやっぱり縫うらしいです。
6針も縫ってしまいました。縫う時は部分麻酔を使ったので痛みはほとんどありません。次に、脳に異常がないかをしっかり調べてもらうために脳神経外科へ。

脳神経外科

 脳神経外科では脳のCTスキャンと採血、それと胸のレントゲンを撮りました。採血するところは2階にあるので2階へ。もう車いすいらないだろwと思い、階段で2階へ。2階についた瞬間に気持ち悪くなりました。素直に車いす使っておけばよかったですね…
ひとまず採血をとって、レントゲンも撮り、結果を待ちました。しばらくして結果が出ました。採血、レントゲンのいずれからも異常は見つからなかったとのこと。
結局はっきりした原因がわからないまま家に帰ることに。。原因はおそらく貧血っぽいですが…はっきり病院で原因を言われていないので何とも言えません。

その後

 その後は特に体調が悪くなることもなく、今は頭痛もとれました。よかったよかった。

余談

私が運ばれた某病院のマシン、ほとんどがWinXPでしたね。ああいうところのシステムは更新が大変そうだな…と。とは言ってもサポート切れてるしそろそろ更新しないとヤバい気もします。

学習パターン(Learning Patterns)

こんにちはこんばんは。冬休みですね。。
Facebook眺めてたら学習パターンについての投稿を見かけたのでなんとなくまとめてみる。

学習パターンとは

学習パターンとは、よりよい学びを実現するためのコツを抽出・記述したもの。自分が何かをしたいとき、具体的にどうすればいいのかっていうのがまとめられている。SFCの人たちが作ってるらしい。
参考:http://learningpatterns.sfc.keio.ac.jp/introduction.html

自分に当てはめて考えてみる

私は今phpの勉強をしている。なにかしらの知識、スキルを身に着けるにはどのようなことをするのが効果的なのか調べてみた。

新しくスキルを身につけたいとき

新しくスキルを身に着けたいときには下の11項目が効果的らしい。
1) No.8 「まねぶ」ことから
2) No.9 教わり上手になる
3) No.10 身体で覚える
4) No.11 成長の発見
5) No.12 言語のシャワー
6) No.13 アウトプットから始まる学び
7) No.15 学びのなかの遊び
8) No.28 学びの共同体をつくる
9) No.30 ライバルをつくる
10) No.32 外国語の普段使い
11) No.38 断固たる決意
それぞれ詳しく見てみる。

1) No.8 「まねぶ」ことから

学ぶことは、真似ることから。「型」がなければ、「型破り」はできない。
これを自分のことに置き換えてみると、私はphpのリファレンスにあるコードを実行してみたり、ほかの人が書いたコードを参考にしたりしながらプログラミングしている。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No8.html

2) No.9 教わり上手になる

他の人に「やってもらう」のではなく、
上手に「教わる」と、次につながる。
コードがうまく動かなかったとき、動かない原因がわからない時は人に聞く。その時になんで今のコードでは動かないのか、教えてもらったコードではなんで動くのかっていうことはしっかり考えるようにしてる。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No9.html

3) No.10 身体で覚える

習得したいスキルは、
意識しなくても自然に使えるようになるまで繰り返す。
これは…難しい。phpに関していえばコードをすぐにかけるってことになるのかな。。これに関してはまだできてないですね。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No10.html

4) No.11 成長の発見

昨日の自分と、今日の自分。
そのわずかな違いに敏感になる。
これは、自分が勉強したての時に書いたコードと今書いたものを見比べればよくわかる。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No11.html

5) No.12 言語のシャワー

じゃぶじゃぶに浴びていると、
不思議と、けっこう身につくものだ。
phpのシャワー!たまに浴びてる。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No12.html

6) No.13 アウトプットから始まる学び

与えられた知識をインプットするだけが、学びではない。
うーん…phpに関して誰かに教えるというのはできてないですね。ただ、phpに関してこのブログに記事を載せることで自分が得た知識をアウトプットしているといえますね。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No13.html

7) No.15 学びのなかの遊び

学び方にも工夫を。
ちょっとしたことで、学びを楽しくできる。
割と楽しくphpやってるので問題ないですね(適当
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No15.html

8) No.28 学びの共同体をつくる

独りで学ぶ必要なんてない。
普段phpに関して周りに質問で来てるから問題ないと思われる。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No28.html

9) No.30 ライバルをつくる

互いに刺激しあい、高め合う仲間がいること。
それが成長を促進させる。
周りに(いい意味で)頭おかしい人多いからいい刺激になってますフォロワーさんほんとにありがとうございます。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No30.html

10) No.32 外国語の普段使い

当たり前に使っていれば、
妙な「特別感」は薄れていく。
これは…どうなんだろう。英語知ってればphpの関数名とかも少しわかりやすくなる?…微妙ですね。普通に日本語のリファレンスあるしな…phpの勉強に関してこれはあんまり当てはまらないかも?
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No32.html

11) No.38 断固たる決意

気持ちだけでは心許ない。
決意をカタチにすることが、断固たる決意の表われ。
決意…具体的に何を作りたいか、どんなことをしたいかってのは明確にするようにしてる。
参考:http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No38.html

まとめ

えっと完全にここのパクリですほんとにすいません。最後に行くに従ってgdgdになるのは仕様です。
こうしてまとめてみると、私の場合は結構実践できていることが多いですね。ここに書かれていることは何か知識をつけるにあたって当然実践できてないといけないようなことですね。
これを見て新たに何か知識が付いたわけではありませんが、改めて自分の学習の方法について考えることができました。