Vim で Scala のシンタックスハイライト(カラースキーマ)を使う

基礎的知識として、Mac とか Ubuntu の vi は vim です。つまりふつーに vi コマンドで拡張子が .scala のファイルを開いた場合に、Scala 用のシンタックスカラーになってくれるようにする設定方法です。

Scala 2.9 をインストールする

MacBook Air 使ってるので、MacPorts でインストール

$ sudo port install scala29

Scala のインストールディレクトリに Vim用の便利設定ファイル一式があるのでこれを使います。

$ ll /opt/local/share/scala-2.9/misc/scala-tool-support/vim/
total 8
-rw-r--r--  1 root  admin  1040 Aug 30 01:44 README
drwxr-xr-x  3 root  admin   102 Nov 23 23:58 ftdetect
drwxr-xr-x  3 root  admin   102 Nov 23 23:58 indent
drwxr-xr-x  3 root  admin   102 Nov 23 23:58 plugin
drwxr-xr-x  3 root  admin   102 Nov 23 23:58 syntax

使い方は README ファイルに書いてあります。

$ cat /opt/local/share/scala-2.9/misc/scala-tool-support/vim/README 
From Stefan Matthias Aust's website (http://www.3plus4.de/scala/):

* How to use it

The Vim editor (http://www.vim.org/) can be customized using the
following two resources located either in your home directory or
in some system-specific directory:

    .vimrc  is the main configuration file; it should at least
            contain the command "syn on" to enable syntax
            hightlighting

    .vim    is the Vim configuration directory; it contains scripts
            (http://www.vim.org/scripts/) in predefined locations.
            The support files for Scala are contained in the three
            directories "indent", "syntax" and "ftdetect"; simply
            copy them to your Vim configuration directory.

Vim searchs for user-specific resources at the following locations:

    - under Linux, Solaris, etc. usually /home/<username>/.vimrc
    - under Mac OS X: /Users/<username>/.vimrc
    - under Windows:  %HOMEDRIVE%%HOMEPATH%\_vimrc

* Thanks

scala.vim was contributed by Stefan Matthias Aust (nobody@3plus4.de)

要点は2つ。

  • ~/.vimrc を作成して、"syn on" って書く
  • ~/.vimディレクトリの中に Vim用の便利設定ファイル一式を突っ込む

Vim の設定

.vimrc を作成します

$ vi ~/.vimrc
syn on

Vim用の便利設定ファイル一式をコピー

$ cp -rp /opt/local/share/scala-2.9/misc/scala-tool-support/vim/* ~/.vim/

上手にできました

ちょーど Play2.0 のサンプル試してたので、開いてみます。

$ vi ~/git/Play20/samples/scala/helloworld/app/controllers/Application.scala 


これは買ってよかった!という厳選アイテムを紹介するぜ ver.2

id:naoya氏の元記事とはまったく無関係ですが勝手にバージョン2 です。

ドルツ ジェットウォッシャー

パナソニック ドルツ・ジェットウォッシャー 白 EW1250P-W

パナソニック ドルツ・ジェットウォッシャー 白 EW1250P-W

これずっと前から知ってたわー。2chまとめサイトでみたわー。口腔洗浄機(こうこうせんじょうき)というやつですね。ドルツはパナソニック製ですが、オムロンも人気みたい。
OMRON ELEPIC 口腔洗浄器 HT-J202

OMRON ELEPIC 口腔洗浄器 HT-J202

違いとしては、ドルツはノズルが2本付属だけどオムロンは色違いのノズルが4本付属している点。まぁ、ノズルは別売りで買えますけどね。水流はドルツのがより強く調節できるみたいですね。ウォシュレットで水流全開にするタイプの人はドルツで決まりだと思います。
僕は見た目がかっこいいドルツを愛用中!(画像とはちょっと違って白×パープルの清潔感あるデザインなんです)

鼻毛カッター

パナソニック エチケットカッター グレー ER-GN50-H

パナソニック エチケットカッター グレー ER-GN50-H

これも知ってたわー。どっかの別のエンジニアがブログで超オススメしてたわー。
ざっと調べてみたけど、毛を吸引してくれるタイプはこれしかないようです。比較対象となる製品なし。Panasonic つえー。

M4 SSD 128GB

Crucial 2.5インチ 内蔵型 SATA3.0対応 M4 SSDシリーズ 128GB CT128M4SSD2

Crucial 2.5インチ 内蔵型 SATA3.0対応 M4 SSDシリーズ 128GB CT128M4SSD2

Crucial(クルーシャル)のM4 SSDです。評価がとても高く、大分安価になってきました。この半年で7,000円くらい下がってます!(リンク
通常、自宅PCには大量のエロ動画を保存することになると思いますので、Cドライブを SSD にして OS と各種ソフト、そしてゲーマーなら最新の3Dゲームをインストールします。Dドライブは安価で大容量の HDD にして、動画を貯めこむ!というのがコストパフォーマンスが高くベストな構成と言えるでしょう。
会社のPCの場合は、128GBもあれば十分なのでこれ1個でいいですね。SSD は寿命が短いとか聞きますが、迷信とか都市伝説の類なので気にしなくて良いと思います。


PCのスペックアップというと、CPU・メモリが一般的ですが、効果には限界があります。CPUを最新のものにスペックアップすると当然処理速度は早くなりますが、一般家庭や会社でそこまで活用できる処理ってありません。なぜなら3〜4年前の Intel Core2Duo くらいの CPU で十分だからです。
メモリの増設は、メモリ不足のケースでのみフリーズをなくすことができるため、意味があるのですが、高性能のメモリを買っても体感速度が早くなるということはありません。
SSD はこれらのスペックアップとはまったく異なり、まず PC の起動が激速になります。その上あらゆる読込速度が早くなります。特に開発環境の IDE で大量のプロジェクトを読み込む場合とか SSD は神性能を発揮します。イケてるエンジニアは家のPCだけじゃなく、会社のPCもSSDにすべきですね!
デスクトップPCに取り付ける場合はいっしょにマウンタを購入しときましょう。これがあれば3.5インチのHDD用の格納場所に、2.5インチのSSDを取り付けることができます。
オウルテック 2.5インチHDD/SSD用→3.5インチサイズ変換ブラケット ネジセット付き シルバー OWL-BRKT04

モニターアーム

ところでこの動画を見てくれ。こいつをどう思う?


エルゴトロン LX デスクマウント モニターアーム 45-241-026

エルゴトロン LX デスクマウント モニターアーム 45-241-026

モニターアームの多くはその外見とは裏腹に自由に動かすことができず、使い勝手がよく有りません。このエルゴトロン LX Desk Mount LCD Arm はグイグイ動かすことができるのでとっても便利です。


イヤホン

【国内正規品】 Etymotic Research インイヤーイヤホン HF5-BLACK

【国内正規品】 Etymotic Research インイヤーイヤホン HF5-BLACK

No Life No Music とか言っておきながら、iPhone とか iPod 付属のイヤホン使ってる人はもうね、アホかと。
個人的に、イヤホンやスピーカーには8,000円の壁と20,000円の壁があるように感じています。それぞれの価格帯で性能が大きく変化するからです。このエティモティックリサーチの HF5 はいいですよー。1万くらいで買えるのに、20,000円未満のクラスでは最高峰の性能だと思います。具体的な良さについてはググると詳しいレビュー記事が見つかるので調べてみてください。
イヤホンの選び方にはいくつかポイントがあるんでが、一つは形状。オーディオテクニカみたいのは長時間耳に入れてても疲れにくい設計になってます。一番ダメなのは、MONSTER や AKG によくある金属式のタイプです。これは重いので30分もすれば疲れて嫌になります。そして冬場は冷たくて外で使いものになりません。あと手垢が目立つ。
今回紹介する HF5 の形状は、ツヤ消しブラックで変に主張してないところがシンプルで良いです。挿入部がドリルみたいな形してますが、耳の奥までねじ込む(これ重要、音質が全然変わります)と、耳栓みたいなもので遮音性がめっぽう高いので、つけるだけで周囲の音が半減します。より音楽に集中できる環境が作られるわけです。音漏れもほぼなし。

このくらいのイヤホン買うと、MP3 で 192kbps と 320kbps の違いが普通にわかるはずです。iPhoneiPod に曲を入れる場合も、高音質で取り込む設定にするのを推奨します。(リンク)

あと、イヤホンはサウンドハウスで買うのが安くて良いですよ!(リンク)

ノイズキャンセリング・ヘッドホン

これ、非モテなエンジニアに強くオススメします。対スイーツ系兵器として絶大な効果を発揮します!

スイーツ「あれ、俺くん何聴いてるの?」
俺「あぁ、これノイズキャンセリング・ヘッドフォン。試しに着けてみなよ(キリッ」
スイーツ「えぇ!?なにこれすごーーーい!!」
俺「空調の音とかノイズは聞こえにくくなるけど、中音域、つまり君の声はちゃんと聞こえてるから気にせず声かけてね」
スイーツ「///」

こうなること間違いありません。


さて肝心のノイズキャンセリングの性能ですが、いくつかのメーカーからでてるけど、BOSE 一択ですね。ヘッドホン自体の音質で選ぶとなると BOSE は微妙かもしれませんが、ノイズキャンセリングに関してはこれが最強です。
ホワイトノイズ(音楽とかなにもかけてない状態でザーッとか音がなるやつ)がないのが特に素晴らしく、またノイズキャンセリングには単4アルカリ電池が必要となりますが、BOSE は電池の持ちも抜群に長い35時間です。電池は内蔵式なので、PCに繋がなくてもノイズキャンセリング使えます。
電池はエネループ使ってます。SANYO NEW eneloop 急速充電器セット(単4形2個セット) N-TGR0204AS
ちなみに、BOSE公式のオンラインストアで購入すると、39,900円します。日本の Amazon で購入すると 30,000円強。そして、アメリカの Amazon で購入すると、送料入れても25,000円くらいです。(リンク)
僕はもちろんアメリカの Amazon で買いました。3日くらいで届きましたよ!仕事に集中したいオフィスはもちろん、地下鉄とか飛行機でも活用できる優れものです。

アクティブスピーカー

PCに繋いで使うスピーカーです。ONKYO はいろいろ出してるんですが、もっと低価格な GX-70HD はかなりドンシャリ気味なので、けっこう残念な音質です。高価格(35,000円くらい)な GX-500HD は低音が弱いです。ボリュームをかなり上げるとちゃんと出てくれるんですが、一般家庭ではちょっとキビシイですね。
GX-100HD はジャンル問わず合いますし、聴き疲れもしにくく、PC用アクティブスピーカーとして使いやすい機種なので、万人にオススメできる機種です。
スピーカーに18,000円は高い!と感じるかもしれませんが、2〜3万円のコンポやラジカセなんかより、よっぽどイイ音でますからね!Yotube で音楽聴いたり、ニコニコ動画でアニメみる日常をおくってる人は絶対買っとくべきです。エンターテイメントの充実度がグンと上がります。

Nginx の Warningログ

/var/log/nginx/error.log を見てみると、以下のような Warningログが大量にでていた。

2011/11/25 04:53:24 [warn] 17764#0: *9014074 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:04:28 [warn] 17766#0: *9020266 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:24:32 [warn] 17766#0: *9029016 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream
2011/11/25 05:50:15 [warn] 17768#0: *9039080 an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/20/0000006201 while reading upstream


これはバックエンドサーバからのレスポンスをメモリ上にバッファリングしようとしたが、すでに設定値いっぱいまで使われているため、一時ファイルに保存したよ という意味。
この場合、クライアントから再度同じリクエストがあると、メモリからではなく、一時ファイルから読み出すことになるのだろうからパフォーマンスは落ちるはず。
proxy_buffer_size, proxy_buffers の値をチューニングすべき(デフォルト値は 4KB 程度)。バッファリング自体が不要で、単にクライアントへレスポンスを返したいだけなら proxy_buffering を off にすべき。

参考リンク: HttpProxyModule#proxy_buffer_size

PCを新調


全パーツ指定でBTO購入記録。〜なぜそのパーツを選んだか〜

液晶ディスプレイ

BenQ 23.6型 LCDワイドモニタ (ブラック) XL2410T

BenQ 23.6型 LCDワイドモニタ (ブラック) XL2410T

Scala 2.9.0.1 をインストール

liquidfunc2011-06-08

MacBook Airに最新版のScalaをインストールしました。OSのバージョンは、Mac OS X 10.6.7です。

インストール

Macportでインストールします。

$ sudo port selfupdate
$ port search scala
$ sudo port install scala29

実行ファイルへのパスを通す

インストールされたディレクトリを確認

$ which scala-2.9
/opt/local/bin/scala-2.9


bash起動時に上記ディレクトリへパスを通すようにする

$ vi ~/.bash_profile

以下を記述

export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/share/scala-2.9/bin:$PATH

いま書いた設定を読み込む

$ . ~/.bash_profile

確認

$ scala -version
Scala code runner version 2.9.0.1 -- Copyright 2002-2011, LAMP/EPFL

補足

Macport の基礎知識と bash の基礎知識がなければ意味不明かもしれません。
要点は、Macport経由でインストールした場合、インストールディレクトリは必ず /opt/local 配下になる点がひとつ。
もうひとつは、Macのデフォルトシェルは bash であり、bash は起動時に、ユーザのホームディレクトリにある、.bashrc や .bash_profile を参照する点です。

Aterm WM3500R に複数の端末から接続できない件

liquidfunc2011-05-05


モバイルルータの WM3500R に MacBook AiriPad2 で同時につないでみたところ、片方接続すると、もう片方が接続できなくなってしまいました。

ちょっとググってみたらブログに書いている人がいたのですぐに解決しました。無線の11gのみ使う(11nは使わない)設定にすればいいそうです。

WiMAXとかその辺の備忘録 : WiMAXルータ Aterm WM3500Rへ Wi-Fi で複数の子機をぶら下げるテスト
結論から言いますと私の環境では 11g なら問題なしです。

やり方

WebブラウザからWM3500Rのクイック設定Web(192.168.0.1)を開きます。
無線LAN設定 > 無線LAN設定 > 「高度な設定を表示」ボタンを押下 > 拡張設定 > 「無線優先制御機能」のチェックをはずす


あとは下の設定ボタンを押せば完了です(自分は念のため保存&再起動しました)。設定後は問題なく使えました。ちなみにファームウェアのバージョンは2.0.0です。


ところで WM3500R はだんぜん白がオススメです。指紋も目立たないし、iPad2の白にもベストマッチ!

Firefox4をFirefox3に戻す(ダウングレードする)方法

Firefox4にして後悔した人のためのダウングレード方法です。

主な理由としては、Windows版のFirefox4のデザインが糞すぎるとか、アドオンがまだ対応してないとかですね。

やり方

以下のURLからダウンロードしてきてインストールするだけ!

http://mozilla.jp/firefox/download/older/

なかなかこういうURLが見つからないものなんですよね。