Connecting to eduroam (WPA-EAP) with Raspberry PI
I wanted to use eduroam with my Raspberry PI.
echo -n <password-for-wifi> | iconv -t utf16le | openssl md4
and create a hash for your authentication. Save the result somewhere for we’ll use it later on.
sudo vi /etc/network/interfaces
Open file for interfaces, and rewrite the wlan0 part as below.
allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- make sure you write DHCP, or else you’re going no where.
And of course, you need to rewrite the wpa_supplicant.conf as well.
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
At the bottom of the file,
network={ ssid="eduroam" scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP identity="<your-username>" password=hash:<your-hashed-password> phase2="MSCHAPV2" }
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B history -c sudo reboot
If above doesn’t work, try out different methods and protocols…
Reference
Raspberry PI でデフォルト以外のマイクを優先的に認識させる
以下、すべて Raspbian Jessie での話です。 外部 USB サウンドカードを挿して、マイクを Raspberry PI につないだはいいものの、なんだかうまく認識してくれない、というところで約1日詰まったので、記録まで……。
ちなみに、Web Audio API を使いたいだけなのであれば、Chromium のデバイス詳細設定を見ると、どのマイク、どのイヤホンを使うか、みたいなメニューが隠れていて、そこをいじればすぐ動く、はず。
aplay -l aplay -L cat /proc/asound/cards alsamixer
まず、上記のコマンドを実行すると、各フォーマットで alsa で使用可能なデバイスが表示される。 まず、自分のサウンドデバイスがこちらに表示されていることを確認。
*aplay と alsamixer は両方とも alsa のコマンドなので、まだ alsa をいれてない人は、
sudo apt-get install alsa-base alsa-utils alsa-tools
ですべて入るはず。 *一説によると alsamixer でもデフォルト変更できるらしいものの、うまくいった感じはしなかった
ここから先は先ほどのコマンドに対して、何番目に(aplay -l が一番わかりやすい)表示されたかを覚えつつ進めていく。
sudo rm /etc/modprobe.d/alsa-base.conf
*Raspbian Wheezy はこれを使っていたようだけれど、Jessie ではいらなくなってる(というか異なるファイル)
sudo nano /usr/share/alsa/alsa.conf
で alsa の設定ファイルを開き、
defaults.ctl.card 0 defaults.pcm.card 0
と書いてある行を発見し次第、0 を自分のサウンドカードの番号に置き換える。
さらに、
sudo nano ~/.asoundrc
とし、
pcm.!default { type hw card CARD_NUMBER } ctl.!default { type hw card CARD_NUMBER }
CARD_NUMBER を自分のサウンドカードの番号に置き換えて書き込む。
再起動したら自分が設定したサウンドカードが優先されるようになっている、はず……。
ただ、自分の用途のときはそもそもコード側で alsa に対してサウンドカードを指定できた(plughw:1,0)ので、この操作は結果的にあんまり意味なかった……。
plughw:1,0 ってなんぞやってなったときは、
linux - What do ALSA devices like "hw:0,0" mean? How do I figure out which to use? - Super User
の回答にとても丁寧に書いてあるけれど、aplay -l
を再度実行。
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM] Subdevices: 3/3 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2
この card の後に書いてあるのがカードの番号(当たり前)で、デバイスの後に書いてあるのがデバイスの番号。 それを組み合わせて、
plughw:カード番号,デバイス番号
と表記するらしい。
Node でのライブラリクラスの書き方
(function(global) { "use strict"; let hoge = "", fuga = ""; class ClassName { constructor(_hoge) { this.hoge = _hoge === undefined ? false : _hoge; }; functionName () { } if ("process" in global) { module["exports"] = ClassName; }; global["ClassName"] = ClassName; })((this || 0).self || global);
あらためて、ふざけた言語だ JavaScript。 本当の本当に最新版は何かは僕も分からないっす。
IE10 以下を切る場合の JavaScript チェックリスト - Qiita
最近の行儀のよい JavaScript の書き方 - Qiita
use strict で this がエラーを吐く
タイトルのとおり
ある大きな function の中で vars という変数を定義したとする
"use strict" /// 大 function var _vars = "hey!!!"; function something(hello) { hoge.fuga(params, function (p) { this._vars; /// エラーを吐く }; };
みたいなことが起きた。
どう怒られるかというと、
ReferenceError: _vars is not defined
とか言われる。
ES6 のドキュメントとか読んでいても this の扱い方としてはあっているはずなのになー、と思ったら、
"use strict" /// 大 function var _vars = "hey!!!"; function something(hello) { hoge.fuga(params, (p) => { this._vars; /// エラーを吐く }; };
という arrow 記述にしたら直った。
記述自体も新しくあわせろやっていうことですね。
個人的には function って書いてある方がある程度読みやすいと思うんだけどな……。
Node のバージョンをあげる
なぜか誰も書いてない気がする系記事。 Babel 使わずにあげたいと思った時は nvm 使えばよい。
nvm on github : nvm/README.markdown at master · creationix/nvm · GitHub
例のごとくバージョンによって違うはずなので、やるときはソース元をきちんと参照してください、、、。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" source ~/.bashrce
nvm が動いたら、
nvm install 4.0 nvm ls node -v
4.0 の代わりに node と書いておくと自動的に最新版をダウンロードする。
nvm use ???
で使いたいバージョンに切り替え可能。
あとは npm と他のライブラリもアップデート:
npm update -g npm npm update -g npm -v
追記:
sudo node
のバージョンが低いままなことが発覚。
$ sudo visudo
で visudo を開き、
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
を
#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin Defaults env_keep += "PATH"
に。
Terminal を再起動してハッピー。
Managing Node.js Versions with nvm