Hatena::ブログ(Diary)

ばぐとらぶごる このページをアンテナに追加 RSSフィード

2017-02-07

[]Windows 10のEdge推しが強すぎる

症状

いくらなんでもEdge使えアピールがひどすぎるだろう!

環境

Windows 10 RS1

結論

設定 → ホーム → 通知とアクション → Windowsを使用するためのヒントとおすすめの方法を取得

コメント

言いたいことはわかるがこれで「おおすごい!俺Edge使う!」なんてなる人がいるわけないだろ!

2017-02-06

[]Android端末-Windows間のBluetooth経由のテザリング

症状

Android端末のBluetooth経由でテザリングしようとWindows側からペアリングすると、デバイスとプリンターから当該端末を右クリックしても接続方法「直接接続」しか表示されずBluetoothテザリングができない。

環境

  • Windows 10 (RS1)
    • 本件はこれより前からの症状
  • Android 7系
    • 同じく6系時代からの症状

分析・結論

Android側からペアリング操作すると接続方法に「アクセスポイント」が現れる。

コメント

Windows側からペアリング要求すると、Bluetoothのプロファイルのうち必要なものが飛んでいないのだろうか?

2017-02-05

[]USB-SATA変換ケーブルでGPTパーティションは苦労する

症状

最近のWindowsはGPTパーティションを要求し、MBRだと蹴られるのはご存知の通り。容量のでかいHDD/SSDが当たり前になった時代にMBRパーティションなんて遺物は当然似合わない。

で、ノートPCなど内蔵SATAをほとんどいじれないマシンで、データ移行時に前のHDDをつなごうと思い、USB-SATA変換ケーブルをぶらさげたものの、出てきたのは空っぽの「GPT保護パーティション」。

以前のOS(XPや2000)でアクセスするとこうなる、という記事はたくさん出てきたものの、移行先はWindows 10 RS1なので当然該当しない。

分析

ここで、USB-SATA変換ケーブルを疑い出した。こいつは無理やり大容量リムーバブルディスクとしてOSに認識させる構造なので、変換ケーブル内でGPTパーティションを認識できなければダメに違いない。

調べると案の定「3TB以上未対応/対応」の記述が各製品に書かれている。

MBRの32bit制約が2.2TBの壁として存在しており、2TBのHDDはいけるけど3TBはダメということなのだろう。

結論

新しい3TB以上対応したやつ買えってことですワ……

ついでに

過去の遺物なMBRパーティションも、互換性(というより保護)のために生きているというお話でした。未対応システムで読んだらダミーのパーティションが表示されるなんて、うまいことできてるよね。

2017-01-18

[]Bluetooth接続のデバイスが勝手に切断される事象の解消方法

最近マウスをMicrosoft Bluetooth Mobile Mouse 3600に変えました。

Bluetooth 4.x(BLE)の超低消費電力の恩恵か、電池の持ちも割と良く、またノートPCのUSBポートを占有しなくなったのでゴキゲンです。

ただ不満が一つ。1時間ほど無操作で放置するとマウスが動かなくなる問題が。

おおかたUSBの省電力機能のせいだろうと思い、下記の手順を試し解決しました。

解消方法1

問題は解決したいが、省電力機能を全てOFFにはしたくない!というエコな方やモバイルな方向け。めんどくさい方。

デバイスマネージャを開き、Bluetoothドングルを探し、選択

f:id:ponapalt:20170118085124p:image

メーカー名やチップの型番らしきものが書いてあるものが対象です。

今回設定したのはBroadcom製ですが、別マシンでは「インテル ワイヤレス Bluetooth」などとなっていました。

Microsoft Bluetooth Enumeratorとか、汎用属性サービスとか、またBluetooth経由で接続済みのデバイスも入っていますが、それらは無視しましょう。

選択した状態のまま、表示をデバイス(接続別)に切り替える

f:id:ponapalt:20170118085125p:image

問題のデバイスがどのようにつながっているかを調べます。

Bluetoothの場合はたとえ内蔵であってもUSB経由のパターンが多いようです。*1

"USB Host"とか"USBホスト"とか"UART Controller"とか書いてあるデバイスまでツリーを遡り、それぞれ全部についてプロパティを開く

f:id:ponapalt:20170118085126p:image

Bluetoothドングル自身と、根元のUSBホスト/UARTコントローラに至るまでにつながるまでのデバイス全部について、右クリックしてプロパティを開いてください。

どこで止めればいいか分からないなら、とにかく木のように分岐して表示されるデバイスの根元に至るまで全部を対象とし、そのうち「電源の管理」があるもの全てについて設定を繰り返してください。

今回はUSB Hubと本体、合計5つが対象でした。めんどくさい…

「電源の管理」タブの「電力の節約のために〜」をOFFする

f:id:ponapalt:20170118085127p:image

この作業を上の手順で見つけ出したデバイス全てで繰り返してください。

Q.なんで根元まで全部繰り返さないと駄目なの?

A.Bluetoothデバイスの省電力設定を切っただけだと問題は再現しました。根元までたぐらないといけないんじゃないかなと思い上記の手順で解決しました。

根元まで手繰って設定していない人のもとで、勝手に切断される事象が再現した報告もありますので、全部やらないとうまく解消しないのではないかと思います。

Q.ウチのはUSB経由じゃないんだけど?

A.Serial Bus UART Controllerとかいうものの下にぶらさがっていることもあるようです。

やることは同じなので、根元の親デバイスっぽい何かに至るまで全部この手順を繰り返してください。

解消方法2

とりあえず簡単な手順で解決したい方向け。かんたんな方。

といっても、書くのが面倒なので下記からぐぐってください。

Google検索/USBのセレクティブサスペンドを無効にする

一言で書くと「USBのセレクティブサスペンド機能を全停止」です。

全域にわたって省電力機能を止めてしまうのはなんだか微妙な気もしますが、確実ではあります。

応用

今回Bluetoothマウスの問題解消がメインでしたが、他のBluetooth接続デバイスや(キーボードとかスピーカーとか)、他にもUSB接続のデバイスすべてで(もしかしたら他のデバイスも)同様の手順が使えると思います。

マウスやキーボードがつながっているなら、省電力機能を自動でOFFにしてくれれば良い気もしますが、このへんは実装の難しさ等あるでしょうね。仕方ない。

*1:USBじゃない場合もありますがやることはおおむね同じです

2016-12-25

[]SSP音声認識

本記事は 伺か Advent Calendar 2016 の25日の記事です

まえふり

メリークルシミマス!(風邪の残りに苦しみながら)

本日、SSPの実験版として、2.3.99 Test8 をリリースしました。

下記からダウンロードしてください。

http://ssp.shillest.net/archive/ssp_2_3_99f_test8.exe

クリスマスに何やってんだとお思いの方。あなたは正しい。

わざわざテスト版まで出して何をしたかったのかと申し上げますと…

音声認識

今更です。Windowsでさえコルタナさんと呼びかければ答える今時にコレがテーマなわけです。

しかもずいぶん前にMicCom/かしこが出たのに何やってんだと。あの時音声認識はすでに実現したではないかと。

そう、確かに自由文は送れるようになりました。

しかし、同時に使ってみてこう感じたのではないでしょうか。「何か違う」と。

そう!我々は!ゴーストに言うことを聞いてほしいのであって、音声認識技術にハマりたいわけではないのです!

というわけで、ゴーストに言うことを聞いてもらいましょう。

使い方

1

2.3.99 Test8をダウンロードします。

実験版なのでとてもバグいです。普段とは別のところに置きましょう。

2

マイク類をつけてください。内蔵しているなら問題ありません。

3

Windows Vista以降では標準装備されている音声認識機能を使います。

コントロールパネル -> 音声認識 を開いて、正常に動くようセットアップを済ませておいてください。

認識エンジンが日本語用かも確認しておいてください。(設定項目は「高度な音声オプション」にあるかもしれません)

4

テスト版を起動して、 右クリックメニュー→音声認識 を開いてください。

f:id:ponapalt:20161225185217p:image

何か適当に喋ってみて、左下のゲージが振れるかどうか確認してください。

5

誰に聞いてもらうか決めないといけません。

名前を呼んでみましょう。

「会話相手」欄が埋まったら成功です。

同時にメニューが開く場合が多いと思います。こんな感じです。

f:id:ponapalt:20161225185420p:image

6

誰に喋るか決まれば、次はお願いしてみましょう。

メニュー上に表示されているすべての文字列が対象になります。

上のサンプルだと「なんか話して」がいちばん手軽でしょうか?……聞いてくれました。

f:id:ponapalt:20161225190003p:image

7

このように「誰に」「何を」お願いするかを発声すると反応します。

「何を」は現在表示中のアンカー/メニューが対象になります。

実は実験的に「ゴースト切り替え」「バルーン切り替え」「シェル切り替え」などと言うと特殊反応するらしい……?

必要無くなったら「音声認識」パレットを閉じてください。

結論

やっぱり声で反応するとテンション上がる。

以上です。

2015-12-25

[]新イベントOnHourTimeSignalについて

※本記事は伺か Advent Calendar 2015の12/25の記事です。

新イベント "OnHourTimeSignal"

SSP 2.3.71で新イベント "OnHourTimeSignal" を実装しました。

詳しくはこちら↓~

http://ssp.shillest.net/ukadoc/manual/list_shiori_event.html#OnHourTimeSignal

しかし、よく見たらReference群はOnSecond/MinuteChangeと同じだし、わざわざ新イベント名をつける意味って何なの?という疑問が間違いなく出てくると思います。

今回はこのイベント新設の狙いと、今後の展開についてです。

実装目的

OnSecond/MinuteChangeの説明をよく見ると「喋れないときはNOTIFYで通知され、トークは無視される」という重要な記述があります。

この部分が大事で、今までの時報処理ではたいてい「時」が前から数値が変わったらトークとか、そういう簡易的な実装だと思いますが、その場合、最小化されていたり、passivemodeだったり、そもそも前のトークを喋っている最中だったりと、この条件設定でトークが無視される機会はたくさんあります。

それならOnSecond/MinuteChange自体をトーク可能なタイミングにずらして通知すれば良いのではないか、という案も出てきますが、時刻をきちんと通知する定期処理イベントとしての役割が失われるので、できれば避けたいところです。

結局ゴースト内部で「トークできないフラグが外れるまでトークを保留してから処理」する実装で今までなんとかしてきたのですが、これが処理のフラグ管理が面倒で…

「本体側でどうせフラグ持ってるんだからなんとかそのへんよしなにやれよ!時報だけでなんでオオゲサな処理が要るねん!」ということで、このイベント実装となりました。*1

応用

単純な時報の簡易実装目的だけではなく、日付が重要になる処理をしているゴーストでの確実な日付変更イベントなどに応用できると思います。

今後実装要望の状況によっては、日付変更専用イベントや、?時30分用も作ったほうがいいのかもしれませんが、イベント名をいっぱい作りまくると仕様に埋もれてしまいそうなので、とりあえず今はこのくらいで。*2

意見ください

他にも「今でも実装できることはできるけどちゃんと作るのは超面倒」なものがあれば、本体側の実装を検討するので、今できるからいいや…と投げるのではなく、思いついたらBTSへ。

http://ssp.shillest.net/bts/guest.cgi?project=ssp&action=top

*1:「時報しゃべらないのでSSPのバグでは」という報告が複数上がってついに面倒になったからという本音は秘密である

*2:On30MinTimeSignalだのOn15MinTimeSignalだのOnDateTimeSignalだの乱立したら大惨事であります