Bootcamp Windows のWiFiがおかしくなった
MacBook Pro の Windows10 の WiFi通信が突然おかしくなった。結論としてはWiFiドライバーを古いものに戻すことで解消。非常にはまったのでメモ。
症状
ある日から自宅機器のうち Bootcamp Windows のWiFi通信にだけ以下の異常が発生。たぶんWindows Upadateしたのがきっかけだと思う。
- Google, Youtube, Wikipedia 以外につながらない
- というか正確にはサイトが開けないくらい超低速になる
- LAN内のWiFi Web管理画面でも同じ
- 試した限り全てのブラウザで再現
- curl でも再現、レスが全然返ってこない
主な環境
ただし以下条件なら異常発生せず
解決策
WiFiドライバーを1つ前のものに戻したら解消した。手順は以下のとおり。
- デバイス マネージャーを開き
- ネットワークアダプター > Broadcom 802.11ac Network Adaptor > プロパティ
- ドライバー > ドライバー更新 > コンピューターを参照してドライバーソフトウェアを検索 > コンピューター上の利用可能なドライバーの一覧から選択
- Broadcom 802.11ac Network Adaptor 7.35.118.73 を選択 > 次へ
巻き戻したあとにドライバーの更新をしてしまえばまた問題が再現してしまう。その場合は上記をやり直せばよい。ドライバー修正に期待。
heroku向けrubyアプリと環境変数
twitter apiなどを使うアプリではその認証情報が必要になるけど、これを直接コードに書いたままgithubでさらしてしまう等はよろしくないので環境変数を使いたい。そこでheroku向けのrubyアプリでの環境変数の使い方について調べたのでメモ、、、と思ったら@shimosukさんの記事を発見、ここにほとんど書かれてました。
Railsアプリで認証のための情報はバージョン管理に含めないために - 千鳥足プログラマーの歩む道@shimosuk
ということでここに書かれてないことだけメモ。
sinatraアプリのProcfile
sinatraアプリの場合はProcfileはこんな感じになります。
web: bundle exec ruby app.rb -p $PORT
さらにshotgunで起動する場合はこんな感じ。
web: shotgun app.rb -p $PORT
Procfileを指定
foremanのfオプションを使えば任意のProcfileを指定することができる。例えばProcfile.devというファイルを指定して起動するのはこう。
$ foreman start -f Procfile.dev
これなら通常起動とshotgun起動それぞれのProcfileを用意しておき任意で切り換えることが可能。
.envを利用してherokuの環境変数を一発更新
heroku上の環境変数の設定方法のひとつにheroku-configというプラグインを使う方法があって、これなら.envファイルを利用して一発設定ができて便利。まずはプラグインのインストールを。
$ heroku plugins:install git://github.com/ddollar/heroku-config.git
下記コマンドを叩くだけで.envファイル内で定義された内容がherokuの環境変数に反映されます。
$ heroku config:push
個々設定は手間だと思っていたのでこれは便利。詳しくはここに。
Configuration and Config Vars | Heroku Dev Center
POIでExcelのセルに色を付ける方法
JavaでPOIを使ってエクセル出力する際にセルに色を付けようとして少しはまったのでメモ。
ポイントは2つ。setFillPatternが必要だったことと、setFillBackgroudColorかと思いきやsetFillForegroundColorが正解だったこと。じゃあsetFillBackgroudColorは何なのかについてはわからず。
Cygwinに.bashrcを読み込ませる
Cygwinに環境変数を設定したかったのでそのやり方をメモ。
環境
Windows XP SP3
Cygwin 1.7.16
※Cygwinのversionは uname -r で確認できます
Gitでローカル修正の入ったファイルをコミットさせない横着な方法
Gitでコミットさせないといえば.gitignoreですが、リポジトリに存在するファイルに対しては無力です。リポジトリ既存のファイルに手を入れたけどその修正は常にコミットしたくない、という状況での手間を省く方法を思いついたのでメモ。
何が不便だったか
例えばローカル作業がしやすいようにソースコードをおれおれカスタマイズすることがあります。当然そのファイルはコミットしてはならないので git add . などを気兼ねなく使うことができなくなります。そんな手間を解消する技はないかと調べてると、エイリアスでパイプが使えることを知りその応用でひとつの解決策を思いつきました。
git add .の代わりにadd + resetのエイリアスを使う
修正ファイルを一括ステージングする際に git add . に代わって下記エイリアスを叩くことでうまくいきました。ここではエイリアス名をaa、コミットしたくないファイルをhoge.txtとしています。
.git/config
[alias]
aa = !git add .|git reset HEAD hoge.txt
このエイリアスを叩くと、一度全ての修正ファイルをaddしてからhoge.txtだけステージから降ろすという処理になるので、何度叩いてもhoge.txtがコミット候補に上がることはありません。
ところがMacで問題が
しかし残念なことにこのエイリアス、Windowsでは動いたんですがMacだと下記エラーになってしまいました。
fatal: Unable to create '/hoge/hoge/myproject/.git/index.lock': File exists.
If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
しかしindex.lockは見つからないのでおそらくパイプの同期がうまくいってないとかそんな気がします。試しにパイプの真ん中に余計な処理を入れてみたら...うまくいってしまいました。
[alias]
aa = !git add .|echo ...|git reset HEAD hoge.txt
かっこわるすぎ。でも今日はもうこのへんで。
それにしてもgitって便利ですね。最初は難解だったけど一度その敷居を乗り越えると戻れない楽しさです。
ログファイルをtailするWEBサイトを作ってみた。
デバッグ中にログファイルを確認するのにいちいちエディタ開くのがいやになったので、ログをモニターするWEBサイトを作ってみた。
Tail Monitor
要件
- 指定したファイルをtailコマンド的に表示すること
- 自動更新されること
実装
最初はアプリを考えてたけど、この要件ならブラウザでことたりるんじゃないのと気付き、HTML一枚で作ってbootstrapかませただけ。運用はherokuです。ソースはgithubにて。