Windows 10 anniversary update + VirtualboxでBSODを回避する方法
TL;DR Hyper-Vを有効にしてる方は,cmd(管理者権限付き)で以下のコマンドを打って再起動
bcdedit /set hypervisorlaunchtype off
要はHyper-VとVirtualboxの相性が悪いんでしょうかね.
Bash on Ubuntu on Windowsが来てうっひょーとなりながらアップデートしてBash動かしてapt-getしてうっひょーとなっていたのもつかの間,
Vagrant upしようとしたらBSODになって再起動しやがることを繰り返し始めました.
最初は最近アップデートしたVirutalboxがいけないのかなーとか思って,昔のバージョンに戻したりしても全部ダメ.
辛い辛いと思いながらググってたら以下のページを発見
virtualbox.org • View topic - Windows 10 Anniversary Update Broke VirtualBox?
皆さん同じようなことで困っていた様子.つまりはHyper-Vを無効にしろとのこと
そういえば最近bcdedit /set hypervisorlaunchtype auto
とかやってうっひょーってなってたっけなと思って冒頭のコマンド打って再起動したら治りました.
しかしここで重要なのは,筆者が使っているWindows 10はHomeエディションで,そもそもHyper-Vなぞ機能として使えないことです.
(じゃあなんでbcdedit /set hypervisorlaunchtype auto
なんて打ったんだよって話ですが,打つまでProでないとHyper-V使えないと知らなかった情弱でした)
使えない機能をオンにしたらBSODになったという話でした.ProにしてHyper-V有効にしてDocker for Windows使いたい
bash -c オプションの細かい話
とある案件でbash -c
めっちゃ使いてえな・・・となり,いろいろ見ていたんですが,なんか思っていた挙動と違っていたのでメモ
bash -c echo test
でtest
が出力されると思っていました.ところが・・・
$ bash -c test echo (何も表示されない)
どうやら"
などで囲まないと行けないらしい
$ bash -c "echo test" test
man bash
で-c
のセクション読んでもよくわからない・・・解釈力が低すぎる・・・
msys2のminttyを起動した時にcmd.exeが同時に立ち上がる問題への対処
個人的に一瞬困ったんで対処
pacman -Syuして,ターミナルを立ち上げようとしたときにcmd.exeが同時に立ち上がるという問題が起こりました.
実害はないのですが,普通に邪魔なのでいろいろ試した結果,いつも起動しているショートカットのプロパティを以下のように 弄ることでcmd.exeの窓が消えるようになりました.
前: C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\msys2_shell.bat
後: C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.bat
取り敢えず動きますが,もしかしたら何か副作用ががあるかも知れません. 取り急ぎ.
備忘録として自分にメールを送る
いろんなtodoアプリを試して、最終的にたどり着いたのがこれ
備忘録でもメモでもtodoでも、とにかくなんでもいいから自分宛にメールを送る。終わったらアーカイブ。
後から検索できるし、やるべきことが未読のメールとして残る。何よりいいのが、メールは自然と毎日見る習慣があるから、後から思い返しやすい。
高度に使いたければフィルタリングとかしてフォルダ分けとかしてもいいけど、取り敢えず自分は細かいこと気にせずフリーフォーマットで書くようにしてる。
しばらくはこれでいきたい。
Stack OverflowのAPIをPythonから使う
自分用メモ。Pythonは3.5で、Anacondaでインストールしたもの。
最初は標準ライブラリのurllibだけでなんとかしようと思ったんですが、オフィシャル読みに行ったらいきなりrequests使えって書いてあったし、anacondaには標準でrequests入ってる?みたいなので、素直にそうしました。(ただ、無意識に自分でpipなり使ってインストールしていたのかも知れません。)
requestsはHTTPプロトコル扱うのにとても便利なライブラリらしいです。確かにサンプル触った感じとても良さそう。
Stack Overflowについてはもはや説明不要ですね。Stack Exchangeという会社が運営しているそうですが、よくわからん。
今回は取り敢えず、Apache Hadoopにタグ付けされている質問をAPIで取ってきます。
In [1]: import requests In [2]: url = "https://api.stackexchange.com/2.2/" In [3]: r = requests.get(url + "questions?tagged=hadoop&site=stackoverflow") In [4]: r.status_code Out[4]: 200 In [5]: j = r.json() In [6]: for k in j: ...: print(k) ...: has_more items quota_max quota_remaining
取れてますね。これだけできれば後はなんとでもなりそう。便利