グラフィックボードの交換

最近 PUBG というゲームをやっているのだが、グラフィックを最低設定にしても、室内に入ると重くなる・急に振り向くことができない などの問題が生じていてなかなかドン勝を食べることができていなかった。勝てないのは自分の腕のせいではなくグラボのせいにするという PC ゲーマーの旧習に則り、私もグラボのせいにすることにして2011年ごろに購入したグラボを交換することにした。

まずは AMD のドライバを削除する。コントロールパネル の プログラムの変更・削除 から AMD Catalyst Control Center をアンインストール。 また、AMDドライバを完全に削除するユーティリティ を配布している。通常のアンインストールが失敗したら使用せよと書かれているので、コントロールパネルからのアンインストール終了後に1回実行しておこう。

続いて、完全に PC の電源を落として(裏面の電源スイッチまで切る)からグラフィックボードを差し替える。

電源を入れ、新しいドライバを GeForce のサイト からダウンロードしてくる。インストールの際に、標準でインストールしようとしたら失敗した。カスタムから、クリーンインストールする にチェックを入れてインストールしたら正常にインストールされた。

とてもスムーズに交換することができた。ファンが2枚から1枚になったので静音にもなり、足音がよく聞こえるようになった。 PUBG はグラフィック 中 設定で快適に動くようになった。高 でもわりと快適だがところどころひっかかりを感じる。 ちょっとまえに購入して、これまたグラフィック最低設定で遊んでいた Watch_Dogs 2 も高めのグラフィック設定でプレイできるようになったのでサンフランシスコの霧を味わいに行ってこようと思う。

Raspberry Pi 2 を AirPlay サーバーにする

Sharepoint Sync をインストール

本家 の General Build Instructions を参考に必要なライブラリをインストール。 libsoxr は負荷が高いようなので使用しないことにする。

$ sudo apt-get install build-essential git
$ sudo apt-get install autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev
$ sudo apt-get install avahi-daemon libavahi-client-dev
$ sudo apt-get install libssl-dev
$ sudo apt-get install libpolarssl-dev

続いて Sharepoint Sync 本体のインストールに移る。

$ git clone https://github.com/mikebrady/shairport-sync.git
$ cd shairport-sync
$ autoreconf -i -f

systemd が走っているシステムなのか System V なのかを次のコマンドで判断。出力に systemd を含むものがあれば前者。

$ ps aux | grep systemd | grep -v grep

コンパイルオプションを指定して make してユーザーを作って make install する。公式の手順に従っているだけ。

$ ./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-systemd
$ make
$ getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
$ getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null
$ sudo make install
$ sudo systemctl enable shairport-sync

名前の設定を変更する。

$ sudo vi /etc/shairport-sync.conf

general = {
  name = "AirPi";

}

あとは $ sudo reboot すれば使えるようになるはず。同じネットワークにある iOS 機器 もしくは iTunes から、さきほど設定した名前のデバイスが検出できていることを確認する。

USB オーディオ機器を接続

オーディオの音質を上げるため、USB サウンドデバイスを接続した。手順は ここ を参考にした。デバイスとしては、家にあった UA-4FX を利用した。

まずは何も接続していない状態でサウンドデバイスを確認。

$ cat /proc/asound/modules
0 snd_bcm2835

USB に UA-4FX を接続して、再度確認。

$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio

この機器番号 (1) をデフォルトとして使うように alsa のコンフィグを変更し、再起動。

$ sudo vi /usr/share/alsa/alsa.conf
...
defaults.ctl.card 1
defaults.pcm.card 1
...
$ sudo reboot

小型軽量有線USBマウスのケーブルを着脱可能に改造する

動機

ノートパソコンにはトラックパッドが付いているが、長時間のカーソル操作のしやすさではマウスに軍配が上がる。 無線マウスは電池を内蔵しているので重いうえに、使っていないとすぐに省電力モードとなり、動かし始めの最初の数百ミリ秒ではあるが移動に遅れが発生してストレスが溜まるため、小型軽量の有線マウス を常時持ち歩いている。

ところが、このマウスはケーブルが細いため、カバンの中に入れておくと頻繁に断線する。Amazon で購入記録を調べたところ、前回の購入日が 2016-10-30 であり、この記事を書いている 2017-01-21 の数日前に断線したのだから、実質今回は3ヶ月持たなかったことになる。もちろんメーカー保証期間内であるため家電量販店などに持っていけば交換してくれるのだが、交換までに数日・数週間かかるので現実的ではない(再購入のほうが総合的なコストは低いように感じてしまう)。

この状況があまりにもストレスフルだったため、断線したケーブルを取り去って着脱可能となるように改造した。もちろん保証範囲外となるので、試される方は自己責任でお願いします。

端子の選定

Android 端末・カメラ などの充電端子として使われている USB Micro B メス コネクタをマウスにつければ、常時持ち歩いている USB ケーブルを用いてマウスを使用することが可能となる。 ただし、通常の Micro B メス コネクタは表面実装用であるため、手で配線をするのは困難である。よって秋月電子で販売されている ブレッドボード用マイクロBメスUSBコネクタDIP化キット を利用する。

マウスの解体

裏面にある QC と書かれたシールを破るとネジが現れる。このネジを外すとマウス本体のケースを上下に分離できる。

コネクタ取り付け位置の選定

今回はちょうど前方にコネクタを取り付けることができそうなスペースがあった。

Mouse Base Front

周囲のプラスチックを切り落とし、コネクタの基盤も不要な部分は切り落としてその部位に嵌まるように加工する。

Cut USB Connector and Mouse Base

USB Connector Inserted

ケーブルの接続部分は太くなっていることが多いため、周囲をちょっと大きめに切り落としてケーブルとの干渉を防ぐ(このあたりは、いったん作ってみて、ケーブルと干渉した場合に微調整するという方針でよいだろう)。 クリック操作に支障が出ないように注意する。

Mouse After Remodeling Front View

ケーブルの取り外し・再結線

ハンダ吸い取り線を用いて USB ケーブルが基盤に接続されていた部位を切り離し、コネクタの基盤に再配線する。

Mouse Substrate Before Remodeling

New Cables Inserted

USB は通常 4 線なのだが、USB Micro B は 5 線であり、そのうちの 4 番目の線は拡張用なので、導線は 1, 2, 3, 5 番のピンに接続することに注意。

Cables Connected to USB Connector

ケースへの収納

ケースを閉じて、ケーブルを接続し、通常のマウスのように使えたら完成である。 コネクタがきちんとマウス自体に固定されるように、グルーガンや接着材などを使用してもよいかもしれない(ズボラなのである程度ガタガタでも私は許容してしまっている)。

Substrate Inserted

結句

荒療治ではあるが、けっこう簡単にできる加工なので(所要時間2時間弱)オススメである。

MacBook Air を半分放電させてからシャットダウンする作業を自動化する

数ヶ月に1回ほど使用する MacBook Air があるのだが、長期的に充電池を放置することになるので、充電池が劣化するリスクが有る。 こういう場合のベストプラクティスは、 Apple が公式に公開している記事によると、 【50% の充電状態で電源を切って適正温度で維持すること。半年に一度は確認して 50% を維持すること。】だそうである。 だから使用後には AC アダプターから外して 50% になるまで待ってから電源を切るという行動をする必要があるのだが、こんなこと人間がやる必要ないなと思ったので自動化した。 下のコードに名前をつけて $ caffeinate -di python BatteryTo50PercentAndShutdown.py というふうにスクリーンロックを抑止しながら実行してやればよい。

# Usage: $ caffeinate -di python BatteryTo50PercentAndShutdown.py

import time
import subprocess
import re

# Drain battery until it reaches to the percentage of aim.:
percentage_of_aim = 50
# percentage_of_aim = 100  # debug
cmd = 'pmset -g batt'
# re_percent = re.compile('-InternalBattery-0\s*([0-9]+)%')
re_percent = re.compile('\s*([0-9]+)%')
while True:
    proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    out, err = proc.communicate()
    percentage = int(re_percent.findall(out)[0])
    print percentage
    if percentage < percentage_of_aim:
        break
    time.sleep(60)

# Shutdown:
# http://stackoverflow.com/questions/28438247/computer-shut-off-python-3-4
import subprocess
subprocess.call(['osascript', '-e', 'tell app "System Events" to shut down'])

Steam 版 Watch_Dogs 2 を英語音声でプレイする方法

  1. Steam のライブラリから Watch_Dogs 2 を右クリック→プロパティ
  2. 言語→このゲームで使用する言語を選択してください を English(英語) に変更。
  3. 音声ファイル 2 GB くらいのダウンロードが勝手に始まる。
  4. ダウンロード完了後にゲームを起動。この時点では文字・音声ともに英語になっているはず。
  5. 英語音声日本語字幕にしたい場合は Settings→Audio and Language→Written Language を日本語に。

iOS のリマインダーの記録を取得したのちに完了済みのリマインダーを削除する

はじめに

GTD-like なシステムを iOS のリマインダーを用いて構築しているのですが、さいきんリマインダーがバグいな〜と思っていたのです(そもそも動作が緩慢&携帯との同期が遅い&特にスケジュール情報の同期が壊滅的)。 これはもしかしたら4000件にも及ぶ完了済みの予定が影響しているのではないかと思い、完了済みの予定を全削除しようと考えました。 しかしせっかく記録があるのですからこれのログは残したい。そのために Pythonista でログを取ってから予定削除、という手順を取りました。

リマインダーの記録を取得(Pythonista を利用)

Pythonista 3 を利用して iOS のリマインダーの予定を全取得しました。コードは次のとおりです。 reminders モジュール から呼び出せるすべての attributes を読んでいるはずなので、これ以上の情報は取れないはずです。

Backup all reminders in iOS Reminders app, using P ...

完了済みの予定を削除

iCloud の Web インターフェース に完了済みの予定をすべて削除する機能がある、との情報が 世間には 広まっています が、実際にこれを数千件の予定に対して行うと100件を超えたあたりくらいで rate limit に到達し iCloud がエラーを吐きまくって死にます(経験済)。

完了済みの予定を削除するベストプラクティスは、macOS のリマインダーアプリ を用いて完了済みの予定を表示して、Shift+クリックで完了済みの予定を全選択し、右クリック→削除 です。

結果

プラセボかどうかわかりませんが、なんとなく動作が軽快になった気がします。

それにしても数千件程度の予定で音を上げる iOS の Reminders アプリってリマインダーアプリと呼べるのか疑問です。

おうちハック Advent Calendar の紹介

この記事は Advent Calendar 紹介 Advent Calendar 1日目の記事です。

さっそくですがみなさん、おうちハックって知っていますか。なんだかかわいい語感ですが、要は最新の技術(IoT とか)をいいかんじで使って家の中のいろんなものをハックしていこうというムーブメントです。最近このおうちハックにハマっているので、Advent Calendar 紹介 Advent Calendar の初日の記事として おうちハック Advent Calendar を紹介いたします。

たしかこの Advent Calendar を昨年見つけて、それから IRKit とか 気温気圧湿度測定IC とか 二酸化炭素測定デバイス とかを買いあさったのでした。 この Advent Calendar に従って私がやったこと・今後やりたいことを下にリストします。

やったこと

やりたいこと

今年も楽しみ

いやぁやっぱりおうちハックは夢が広がりますね。幼いころ、自分の部屋とか秘密基地とかに搭載したかった機能をいま搭載している感じ。 しかも Advent Calendar でひとまとまりに見られるのはかなり楽しい。やっぱり Advent Calendar 最高ですね。 今年のカレンダーも全部埋まっているようなので、どんな新技術が見られるのかいまからワクワクしています。ということで「おうちハック Advent Calendar」の紹介でした!

P.S. Advent Calendar 紹介 Advent Calendar, 参加募集中ですので自分の好きな Advent Calendar を紹介してください……! 短文でもいいので……!