ALIENWARE AURORA (R5)のメモリを40GBに増強

DELLのデスクトップPCのメモリを増強し8GBから40GBにアップグレードした。

DELLのALIENWARE AURORA (R5)を使っているが、最近、Windowsが激重になり、それからタスクマネージャーを開くとメモリが枯渇している状態になっていることがある。特にメモリを潤沢に使うアプリを使っているつもりはないのだが、プロセス毎のメモリ使用量を見ても原因がわからず、見方が違うのか、メモリを解放していない輩がいるのかは不明で、もともと8GBも少ないと思ったのでメモリを衝動買い。

買ったのはこれ、どのブランドが良いかはまったくわからず。

ちなみに、もともと刺さっていた8GBのメモリのブランドはMicronだった。

Memory

これで暫くは安泰のはず。

ディアウォールで壁に穴を開けずにVIVEのベースステーションを設置する

賃貸で壁に穴を開けられないのでツーバイ材とディアウォールキットを使ってHTC VIVEのベースステーションを設置してみた。

HTC VIVE Base StationHTC VIVE Base Station

https://findy.jp/8365
ディアウォール」とは、上のパーツの中にバネがあり、はめ込んだ木材を固定する仕組みになっていて、一言で説明すると、床と天井の突っ張り棒です。

前回同様、IPC DIY Lab.さんで必要な長さから半分にカットしてもらったツーバイ材と、LABRICOのジョイントとアジャスターを購入。VIVEのベースステーションは部屋の対角線上に設置することになるのでセット購入。

VIVEはドスパラWebサイトで購入。PlayStation VRがいつまでたっても定価で買えないので衝動買い。

ただ衝動で買うには設置面で問題があった。VIVEの設置動画を見ると何のためらいものなくベースステーションの設置で長いネジを埋め込んでいて「どこぞのアメリカの豪邸をモデルにしてるんだよ」と賃貸住宅では敷居が高かった。

そんな中、ディアウォールで自転車やらギターやらを掛けているDIY写真などを見て、VRのベースステーションもこれでいける…と判断できた。

モノの配置によっては、部屋の角にディアウォールを設置するのは面倒になるかもしれなかったが、半分にカットしている場合は部屋の角でジョイントすることでこれまた簡単にできた。ジョイントをつかったディアウォールの万能さに今後も頼ってしまいそうである。

Apple WatchでGoogleカレンダーの予定を見るアプリ

Apple WatchでGoogleカレンダーの予定が見れるアプリとして Tiny Calendar を使い始めることにした。

iOSのAndroidと比べた場合の数少ない不満としてOSデフォルトのカレンダーとGoogleカレンダーと連携が貧弱なところだ。仕方がないのでこれまではサードパーティ製のCalendars by ReaddleというGoogleカレンダーの予定を同期して、Googleカレンダーの予定を見やすく表示してくれるアプリを使っていた。

このアプリは時々同期が行われない以外は気に入っていたのだが、Apple Watchアプリに対応していないため、Apple Watch上でGoogleカレンダーの予定を表示できるアプリを探し、 Tiny Calendar を使うことにした。

Apple Watchで予定が見れるようになって便利になったが、いくつか問題も見つかっている。Apple Watchのアプリが通信しているのはiOS側のTiny Calendarアプリであるため、まずiOS側でTiny Calendarを起動して予定を同期しておかないといけないというところである。つまり、朝起きてApple Watchで予定を確認しようと思うと、まずiPhoneでTiny Calendarを起動して最新の予定を同期しておかないといけないので「いやその時点でiPhoneで予定見るわ」となってしまう…

予定が増えていないのであればこの「まずiPhone側のTiny Calendarの予定を同期する」手順は必要ないとも言えるが、予定を忘れないためにアプリに頼っているわけなので昨日から予定が増えていないかどうかを記憶や予測に頼るわけにはいかない。

もう一つ、以前から感じていた問題で開始5分前の通知が来る予定と来ない予定があるところ。いろいろ試してみたがGoogleカレンダーのデフォルトの通知設定がモバイルには効いてないように見える。Googleカレンダーのヘルプにはデスクトップとモバイルで通知設定は共通のように書いてあるのだが、新規に予定を追加してデスクトップPCのブラウザで予定を見ると5分前の通知が設定されているが、モバイルのGoogleカレンダーアプリで見るととリマインダ通知が設定されていないのである。

基本的に予定はデスクトップPCから追加していることが多いが、それからモバイルのGoogleカレンダーアプリでリマインダの通知を追加すると通知が来るようになった気がする。

Apple Watchの通知も結局はiPhoneアプリ上の通知なのでこちらも、iPhoneでTiny Calendarを起動して通知設定を含めて予定を同期しておかないといけない。というわけで少し前準備設定が面倒だが、会議やら個人的なTODOをスケジュールにいれておくとApple Watchが通知してくれるので記憶に頼りたくない自分はその準備をするだけの価値は十分になると思う。

Raspberry PiのLANがとんだ

自宅サーバとして使っていたRaspberry PiのLANが止まってしまったのでSDカードだけ付け替えて復旧した。

外からサーバに接続できなかったので最初はハングしているのかと思ったけど、電源を入れ直して再起動しても接続できず。ディスプレイを繋ぐとちゃんとOSは起動しており、ネットワークがつながっていない状態であることがわかった。それからLANケーブルを繋ぎ直したり、別のLANケーブルに交換してみてもつながらないのでRaspberry PiのLANポートがお亡くなりになったと判断。

自宅サーバで使っていたRaspberry PiはB+で、このタイミングではModel 2やModel 3に置き換えることも考えたが特にModel B+で困っていることもなく、また1からセットアップしてデータを移行するのも面倒なので、バックアップ用に取っておいた新品のRaspberry Pi B+に壊れたRaspberry PiのSDカードを指したら普通に稼働再開できた。

Raspberry Piは製造している会社によって微妙に違うのでもしかしたら別のRasbperry PiのSDカードでもダメなケースがあるかもしれないが、今回は両方ともRSコンポーネンツ製だった。こんな簡単に故障から復旧できるのは素晴らしいが、逆にSDカードが死んだらこの方法は使えないので、SDカードを選ぶ際はあまり妥協しないほうが良いと思った。

3つのゲーミングマウスを試してみた

デスクトップPCをWindows 10にしてからMicrosoftのモバイルマウスの反応が悪く、やはり有線の方がよいかな…と思っているうちに何故かゲーミングマウスを購入していた。ゲーミングマウスのレスポンスが必要な作業をしているわけではないのだが、妥協して失敗するくらないなら良いのを買ってしまえと、注文してしまった。

G PRORazerEC2-A

購入したのは以下の3つ。

前提として手が小さく(それ故、マイクロソフト モバイルマウスを使っていた)、事前に手の小さい人でも使えそうかという視点で調べたところ、この3つが候補になった。自分の主観の持ちやすさのみで評価したところ ロジクール Pro Gaming Mouse が一番持ちやすかった。マウスについてはいろいろなレビューがあるが、結局のところ自分の手で握って試すしかないので店頭で触るか、無駄になってもいいから思い切って買うのが良いと思う。(ただゲーミングマウスのいろんな色で光る機能は要らない…)

というわけで、ロジクール Pro Gaming Mouseが一番良かったという個人的見解は他の人には役に立たないことがあります。特にゲームで試したわけではないのでゲーム用マウスを探している人には参考になりません。

今更 Debian Jessie

1年前に計画したJessie(Debian 8)へのアップグレード計画をようやく実行。

このblogを運用しているサーバはChefで構築していて、レシピの動作確認と開発環境を兼ねてVagrantでローカルのVirtualBoxの仮想環境に同じものを構築している。

ということでローカルの仮想環境で気兼ねなくアップグレードの練習をして、アップグレード手順を作ってから一気にこの運用サーバを更新した。Vagrant 1.8からsnapshot機能が標準で用意され3rd party製プラグインに使わなくても仮想環境の状態をそのまま保存・復元できるようになり、アップグレード前の状態を保存しておけば繰り返しアップグレードの練習ができるのも安心できるところ。結局、1回で上手く言ったので復元はしていないが。

はまって手順で対応したところ

  • 時間表示がUTCになっている → cp -p /usr/share/zoneinfo/Japan /etc/localtime
  • WordPressが動かない → php5-fpmphp7.0-fpmでsocketの待ち受けPATHが変わっていたのでnginxの設定を変更
  • Ruby 2.3.3にしたらChefのdatabasecookbookがmysql2 gemがなくて動かない → mysql2 gemインストール

基本、全部Chefのレシピで対応したので新規のインストールでも大丈夫なはず。

そうこうしているうちにDebian 9もリリースされてしまうのだが、今回はDebianのバージョンアップというよりPHP7に移行するのが目的だった。DotdebリポジトリからPHP7はJessie向けにしか提供されていないため。Debian 8も暫くサポートされるだろうから必要がある時にアップグレードすればよいだろう。

  • Debian 7.11 -> 8.6
  • PHP 5.5.38 -> 7.0.14
  • Ruby 1.9.3 -> 2.3.3
  • MySQL 5.6.35 -> MariaDB 10.0.28

とりあえず以上のようにアップグレードした。rbenvで入れているのでJessie関係ないがRubyを2.3.3にあげた。最近Redmineをバージョンアップする度にRedmineの依存パッケージがRuby 2.0以上を必要として運用に苦しんでいたので2.3.3にした。クリスマスに2.4がリリースされていたがアップグレードした時点ではRedmineのホームページの対応rubyバージョンに2.4が載っていないのでひとまず2.3系にした。

PHPにはOpcacheもついでに入れてみた。いろいろ速くなったような気もするし、気のせいかもしれない。そもそも自分のブログをアクセスして読まないのでよくわからない。

wp-gfm v0.9

GitHub上で公開している自作のMarkdownのWordpressプラグインを更新した。

https://github.com/makotokw/wp-gfm/releases
GitHub Flavored Markdown for WordPress

内部で使っているphp-markdownのバージョンアップと、フッターのデザインを少しポップにしてみた。

Markdown記法はWordPress本家のJetPackプラグインで出来るので基本的にはそちらを使えばいいはず。

wp-gfmはショートコードで囲った部分だけMarkdown変換するように作ってあり、Jetpackに乗り換えて過去記事を変換しなおすのが面倒なので使い続けている(メンテナンスし続けている)ところではあり、もともとソフトウェアエンジニアしか興味ないだろうと思ってGitHubにひっそり公開しているだけなのだが、何故か定期的にがつけられている。しかも大半が海外の人になっている。

ひょっとして世の中にはJetpackが使えない環境があるのだろうか? wp-gfmのスタンスとしては名前のとおりひたすらGitHubのMarkdownに記法、デザインを寄せるということでやっているのでそのあたりが良いのかもしれない。

サーバ証明書が更新されていなかった件

Let’s Encryptで取得したサーバ証明書がうまく自動更新できてていなかった。なお環境はDebian 7。

期限が20日と10日を切ると Let's Encrypt certificate expiration noticeという件名で期限が近いことをメールで知らせてくれた。ありがたい。

単にcronの設定を初歩的なミスで間違えていただけ。/etc/cron.d/certbotにchefでファイルを置くという運用をしていたが、個別のファイルにしたこともあってユーザのcrontabの設定と間違えてコマンドの実行ユーザを指定していなかった。それを直した次の日もcronはうまく実行できず、/usr/local/binにPATHが通ってなかったのでcertbot-autoコマンドが実行できていなかった。

とりあえず期限が迫ってきたのでおとなしく手動で実行したが、何故かaptnginxのパッケージの更新実行されて対話が必要だった。--no-self-upgradeを付けてもかわらなった。nginxが最新じゃないとだめだったりするのだろうか。

最新のドキュメント(Debian+Nginx)を見ると自動化はcronで以下の設定をしろと書いてある。見落としていたのか、いつの間にかコマンドが増えていたのか。

./path/to/certbot-auto renew --quiet --no-self-upgrade

ただ --force-renewal をつけてみたけどやっぱりnginxをreloadしないと反映されなかったので最終的に以下の設定にした。このブログは週末にアクセスが減るので日曜日に更新しておけばよいと思っている。

PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
0 5 * * 0 root certbot-auto renew --quiet --no-self-upgrade --post-hook "service nginx reload"

最初は && service nginx reload で繋いでいたけどrenewコマンドはデフォルトだと期限が近いもの(30日以内)しか更新されない。無駄なNginxの再読込が実行されてしまう恐れがあるので--post hookを使うのが良さげ。

PC VRへの道

二つの反動からPC VRへの道を模索している。

  • PS4 VRが買えなかったこと
  • 新MacBook Proの買い替えの踏ん切りがつかなかったこと

もともとはPS4 VRが10万とかで転売されているのを見て、その価格だったらPCのVRでも良くね?と思ったのがきっかけ。PCのVRの2大巨頭がOculusViveで大体10万前後する。

しかし、調べるとPCでVRを試すにはVR Ready PCと呼ばれる結構なスペックのPCが要することがわかった。特に高性能なGPUでないと描画が追いつかなくて酔ったりするらしい。自分は乗り物酔いも3D酔いもしないのでどうなるのかはわからないが。

ちなみに5年以上前に買ったDellのXPS-8300だとそもそも最新のグラフィックボードのインターフェースも合わないのでPCを買い換えるところから始めないといけない。最近のVR熱によってVR Ready PCで検索すると各社がVR Ready PCを販売し始めていて、15万くらいで買えそうである。

5万のPS4 VRを買えない反動にしては高すぎるが、もう一つの反動でMacBook Proを買い換えずに散財のしどころを奪われるので久しぶりにWindows PCを買い替えたくなってきた次第。今のMacBook Proで不満がそれほどないのでMacBook Proを買い換えるよりもWindowsのデスクトップPCをVR Ready PCに買い換える方がなんかお得感がある。

しかしながらOculusとViveのどっちを買うべきかは記事を読んでも決めかねる。マイクロソフトがOculus側についていてマインクラフトのWindows 10 Editionで対応しているらしき記事を呼んだが、普通にVive対応Modも存在するようなのでViveでも普通のPC版Minecraftで試せそうである。

Raspberry PiのDirty COW対応

基本的に自宅サーバとして使っているRaspbery Piは家の外のネットワークからはつながらないようにしているつもりだが一応Dirty COW対応した。

Dirty COWは管理者権限を取られてしまう恐れのあるLinuxカーネルの脆弱性で、LinuxベースのOSで漏れなく発生しているためDebianベースなRaspbianも例外ではない。Raspberry Piの用途はサーバであったり、デスクトップPCであったり、IoTであったり様々だと思うがそれなりに数が出ているので狙われる恐れがある。

Dirty COWの対応記事は Fix Dirty COW on the Raspberry Pi にあり、以下の対応策が書かれている。

sudo apt-get update
sudo apt-get install raspberrypi-kernel

自分のjessie環境では apt-get updateraspberrypi-kernel は更新されていたので明示的なインストールが必要な環境があるのかはよくわからない。

気になるのは該当記事に問題が起きる環境と修正された環境の確認方法が書いていないということである。これはコメントに書いてくれている人がいて 4.4.26 kernel 以上になっていれば良いとのこと。再起動後に uname -mrs などのコマンドで確認できる。

軒並みアップデートしたが、それなりに非力なPCであるので暫くアップデートしていないRaspbery Piでは apt-get update にかなりの時間を要した。