Raspberry Pi の設定をした

f:id:cd01:20140503194104j:plain

Raspberry Pi(以下、raspi)の購入自体は結構前にしていたのだけど、 あまりまとまった時間を取れなかったり、ハマったりしていたのもあって、 なかなか使える状態にならなかったので、かなり時間が経ってしまった。

購入したのは、MODEL A というメモリが 256MB の安い方。
raspi のメリットは安いところだと思うので、低スペックでも安いのに慣れておいて、 同じ予算なら、多く購入できたほうができることが増えそうと思ったので。

ただ、LAN ケーブル刺すところ無いのと、USB ポート 1 つしかないのは、結構キツいなと感じた。

ラズベリーパイRASPBERRY PI, MODEL A, 256MB、正規品

ラズベリーパイRASPBERRY PI, MODEL A, 256MB、正規品

以下、ハマったところとかのメモ。

ケース

Raspberrypi making lego case を参考にして、作ってみた。

USB Hub

raspi に USB ポートが 1 つしかないので、SSH で接続できるようになるまでは、USB ハブでキーボードとか 接続したいので、USB ハブをつないで、作業しようとしていましたが、なんか色々おかしいし、 勝手に再起動したりして、なぜ??と思っていたら、電力不足みたいでした。

AC アダプター付きの自分で電力を調達してきてくれる USB ハブにしたら問題なく動作するようになりました。

無線 LAN アダプタ

最初は、USB のかなり小型のもの(↓のやつみたいな刺しても、ほとんど出っ張らないやつ)を使っていた けれど、Amazon のレビューを見ても書いてあるけど、起動してから時間が経つと熱をもって、速度が極端に落ちたり、 そもそも繋がらなくなったりした。

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM

なので、ちょっと高いけど、大きめのサイズのやつ(↓のやつ)にした。

BUFFALO Air Station NFINITI HighPower 11n/g/b USB用 無線子機 WLI-UC-GNHP

BUFFALO Air Station NFINITI HighPower 11n/g/b USB用 無線子機 WLI-UC-GNHP

これだと、今のところ特に速度低下もしていないと思う。

WLAN Settings

これはググるといっぱい出てくる。
ただ自分の場合、全然うまくいかなくて、原因が分からなくて放置してた。
結果的に設定を typo してたのが原因だった ...

下記のコマンドを実行するとテストできるらしく、これで、パースエラーみたいなのが出てて、 やっと typo に気づいた。

sudo wpa_supplicant -iwlan0 -Dwext /etc/wpa_supplicant/wpa_supplicant.conf -dddt -c /etc/wpa_supplicant/wpa_supplicant.conf

あと、とりあえず、ネットにつなぐだけなら、WiMAX を直接 USB ポートに接続してしまえば、つながるっぽいので、 ある程度使えるようにするまでなら、これで良かったかも。

SSH

raspi 側で、いちいち IP 確認するの面倒なので、接続する側の PC から nmap コマンドで IP 確認した。

sudo nmap -sP 192.168.0.0-255

感想

なんか 3000円PC みたいなキャッチコピーで登場してた気がするけど、本体以外にも、SDカードは必須だし、 無線接続しようとしたら USB の無線LANアダプタもほしいし、電源用に microUSB ケーブルとかも必要だし、 ケースも・・・とかやってると、全然 3000 円じゃ足りない!

今回の設定で、USBハブも外して、USB の無線 LAN アダプタ 1 つと、電源用のケーブルだけで使えるようになって、 SSH での接続もできるようになった。 消費電力も少ないので、サーバみたいにして、ちょっとしたタスクを実行させたり、いろいろ遊べそうな感じ。

Raspberry Pi 2 - Model B

Raspberry Pi 2 - Model B

Vim で PowerShell のコマンドレットを補完する poshcomplete-vim を作ってみた

この記事は Vim Advent Calendar 2013 71日目の記事です。

PowerShell 使い、かつ、Vimmer という人が、相当少なそうなので、 誰得ですが(と思ったら 70日目の記事PowerShell 関連なので、意外と居る??)、 PowerShell スクリプトVim で書いていたときに、捗らない感じだなあと思ったので作ってみました。

cd01/poshcomplete-vim

そもそも PowerShell って何なんです?

Vimmer で馴染みのある方が少なそうなので、簡単に説明しておきます。
PowerShellWindows に入っているシェルです。 細かい説明がほしい人には、ググってもらうとして、 個人的に下記の利点があるかなと思って、結構多用しています。

  • Windows7 以降ならデフォルトでインストールされている
    • サーバ・共用PCで自由にソフトをインストールできないときでも使える
  • オブジェクトで返ってくるので、パイプラインでつないだ後の処理とかがラク
  • .NET が使える
    • MingW とかで、がんばるよりも使える資源が豊富
  • 電卓として

使い方

  1. vimfiles に置く。もしくは、 NeoBundle cd01/poshcomplete-vim とかしてインストール
  2. _vimrcautocmd FileType ps1 :setl omnifunc=poshcomplete#CompleteCommand
  3. 補完したいところで、おもむろに <C-X><C-O> して便利

作った理由

PowerShell のコマンドレットは、 動詞-名詞 のような構成になっていて(例えば、Get-Content とか)、 まず、Unix 系のコマンド等と比べて長いです。
また、一度書いたコマンドレットを再度書こうと思った場合に、 <C-p> で補完しようと思っても、 ハイフンで区切られているため、動詞だけ、もしくは、名詞だけしか補完されません。

なので、PowerShell の補完プラギンは必要だなと。

また、PowerShell のシンタックスハイライト用のプラギン はあるのに、 補完プラギンがないのは、なんでもあるのではないかと思えるほどの豊富なプラギンがある Vim らしからぬことなのではないかと思ったので。

プラグインの構成

参考にするために見てみた Vim での補完プラグインは、 vim script で、どの補完候補を出せばよいのかを選択する処理を がんばっているものが多いですが、 poshcomplete-vim は、 .NET の System.Management.Automation クラスにある CommandCompletion メソッドで補完候補を取得しているので、候補の精度が良いです。(というか、自分では、ほとんど何もしていない
また、おそらく速度面でも vim script でがんばるよりかは速いです(比較はしていない
jedi-vim と似たような構成になるのかと思います。

vim.org にも上げてみた

今回で Vim プラギンを作成したのは2回目です。 前回の はネタプラギンで、役に立たなさそうだったからやらなかったけど、 vim.org にプラギンを上げてみたいなと思っていたので、今回のなら上げてみてもいいかな と思って、上げてみた。

poshcomplete-vim - Omni Completion for PowerShell : vim online

作ってみて気になったところ

  • PowerShell スクリプトで、 .NETメソッドを呼んで、コンソールに出力してから、 vim script で eval しているので、ちょっと遅い。
    • 補完候補が、ある程度絞れるところまで打ってから補完すれば、そんなに気にならないので現状放置
    • 速度が気になりだしたら、 if_lua , if_python などを検討する。
  • 補完した時に、タスクバーにコマンドプロンプトのやつが出てちょっと気になる。

おわりに

Vim のオムニ補完が、どんな感じで動いているのか、全く知りませんでしたが、 今回プラグインを作ってみて、 omnifunc に、どんな関数を設定すれば良いかが分かって、 少し、いや、なんとなくの雰囲気は、わかったような気がします。
Vim のことを、より知ることができたかと思うと、 Vim への愛着が増して便利ですね。

追記

ASUS U24E のキーボードをUS配列のものに換装してみた

ASUS U24E を使っていて、11インチという小型なノートパソコンに、 JIS配列のキーボードだからか、記号のキーが小さくなってたりして、 結構使いづらかったので、USキーボードにできないかと思って、 ググってみたところ、 2ちゃんねるキーボードモジュール売ってるところ が書かれていたので、 そこでUSキーボードのモジュールを買って、付け替えてみた。

f:id:cd01:20131123130559j:plain

付け替えただけだと、中身はJIS配列のままなので、 PowerShellレジストリ書き換えて、US配列に変更した。

$item = "HKLM:\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters"
Set-ItemProperty $item -name "LayerDriver JPN" -value "kbd101.dll"
Set-ItemProperty $item -name OverrideKeyboardIdentifier -value "PCAT_101KEY"
Set-ItemProperty $item -name OverrideKeyboardSubtype -value 0
Set-ItemProperty $item -name OverrideKeyboardType -value 7
Restart-Computer

f:id:cd01:20131123132842j:plain

アンダースコアとかのキーが小さくて、ミスタイプが多かったけど、押しやすくなって便利。

オープンソースなキーボード Ergodox を組み立ててみた

f:id:cd01:20131120174839j:plain

Open Source Hardware

Arduino や Raspberry Pi みたいに、オープンソースなハードウェアがいろいろと出ている (僕が知らないだけで、結構前からあったんだろうけど)
オープンソースなソフトウェアでも、コマンドラインツールだったりするとプログラマの人でも、 慣れていないと使えなかったりするけど、非常に便利なものばかりで使えないのは、もったいないなと思う。
オープンソースなソフトウェアと同様に、オープンソースなハードウェアを使えないのも、 もったいないし、巨人の肩に乗れていない感あるなあと思う。
なので、何かでオープンソースハードウェアに入門しておきたいなあと思った。

Ergodox

中学校の技術の授業でラジオ作ったりしたけど、 普段使いできるような感じじゃなかったし、 どうせ作るなら、ちゃんと使うものにしたいなあと思い、 Ergodox というキーボードが良いなあと思ったので、 パーツを集めて組み立ててみた。

まだ、キーキャップがないけど、キー入力はできるようになったので、一応、完成した感じ。
一応完成したので、あとでキーキャップ買って、はめれば使えるようになるので、 しばらくしたら、使ってみようと思う。 (追記:キーキャップ買った

ErgoDox.org - Home Page

Parts

部品類は、このあたりで調達

Assemble

組み立ては、この辺を参考にした。

おいくら万円?

製作費? 知らない子ですね。

See Also

Kinesis コンタードアドバンテージ が Windows7 のUSB3.0で動作しない件

タイトルそのままだけど、日本語で情報が全然見当たらなかったので書く。

Windows7USB3.0しか付いていないノートPCで、Kinesis Contoured Advantage を使おうとしたら、全然動かなくて困った。
はい、こういうときは、まず公式ページですね。

Advantage keyboard won't work with USB 3.0 ports

Windows7以外だと、ちゃんと動くので、Windows7インテルUSB3.0のドライバが、おかしいんではないのか?ということみたいです。

対応策

じゃあ、どうすればいいのかというと

  • インテル(の対応)マッテル
  • USB 2.0 が付いているパソコンを使う
  • Windows7 を捨てて、LinuxMacWindows8.1 などに乗り換える
  • テクニカルサポートに相談(エジクン技研から買った人は、そっちでも対応してくれそう)

といったところでしょうか。
よくある質問に書いてないので、あえて内容は書きませんが、 エジクン技研に聞いたら、応急処置的なものはあるみたいです。

追記

Will the Kinesis Advantage work on my Windows 7 USB 3 laptop? も参考にして、このエントリを書いたはずだったけど、見落としていたので追記。

詳細はリンク先を読んでほしいのですが、キーボードからPS/2で出力するようにして、 その先で、USBに変換するコネクタにつないでから、パソコン側のUSB3.0のポートに 接続すれば、対処療法的には使えるようになりますよということみたいですね。

面倒なので、僕はドライバ側で、なんとかしてほしいので待ちます。 (とか言っているうちに Windows7 を使わなくなりました)

特に注があるものを除いて、このサイトの内容物は Creative Commons Licence 表示 - 非営利 - 継承 2.1 のもとでライセンスされています。

© 2015 cd01