WHAT'S NEW?
Loading...

開発環境をNetBeans+VirtualBoxからVagrant+SublimeText2に入れ替えて思ったこと

そろそろレガシーな開発環境も飽きてきたなぁ、なんてのはちょっと前に記事で書いたんだけど、俺の性格からして、少しずつ基礎を蓄え、ある程度の自信がついたら入れ替えるってパターンが多いんだよね。

でもこれだと確実に時代に出遅れるし、周りのみんなにも追いつけない。

まぁ毎回Google検索でヒットした誰かのブログ記事を見たり、無理やり本家の英語を独自解釈した意訳で勝手な理解で認識しちゃったり、そうやってパクりながら環境整えてるんだけど、今回はまじめにちゃんとやってみたいと思う。

で、何がアレかというと、じつは、デスクトップはWindowsでいいんだけど、ノートだったらMacの方がいいんじゃないかって思い始めてる。

いわゆる、MBAってやつね。MacBookAir。軽そうだし、それにOS自体が開発環境に向いたOSだ。

Linuxが好きなのでBSDベースはちょっと抵抗があるんだけど、そういう本来本人の好みでしかない部分に無理やり理由をつけるのって、なんだか時代に乗り遅れる人の典型だよね、と思い始めているので、MBAでもいいかなって思ってる。


それにスクラムなんかする時とかさ、みんながMBAなのに俺一人だけWindowsとかFedoraだと、それだけで面倒くさいじゃん。そういう、周りの環境に合わせることによるコストリダクションってのもやっぱり意識しないとダメだよね。

前々ではノートPCにFedoraいれて持ち歩いてたけど、スライドショーがプロジェクタで出力出来ないトラブルがあったり、LibreOfficeで作ったドキュメントをMS Officeなんかで開きやがるから、線がずれるとかいろいろ突っ込まれたんで、今はWindowsしか使ってないんだよね。

■以前までの環境

というわけで行ってみよう。

CakePHPとかNodejsとか、たまにPython、Perl、シェルスクリプトなんかちょろっとやるときに多い環境が、
  • Windows + VirtualBox(Fedora)
  • NetBeans + PHP
  • Eclipse + Nodeclipse
的な環境が多いよ。
C#やPascal、Javaの練習もしてたりするので、細かく言うと
  • Blender(Python) + Unity(JavaScript)
  • VistualStudio2012 Express(C#)+ ADK
  • NetBeans + Groovy
  • Eclipse + ADT(Android開発ツール)
なんて環境もあったりするんだけど、これはまだ業務での経験が浅かったりなかったりするし、修行中ってことで、そのうちこのブログでもお話しできたらなってレベル。


ホストOSであるWindowsとゲストOSであるFedoraでは、ゲストOS側でsambaを起動させて、Windowsとフォルダを共有してる感じ。VirtualBoxのフォルダ共有は使ってない。

で、このsambaだけど、ゲストOSのFedora側で予め作ってあるプロダクト用ディレクトリの
  • 本番用『/home/product/』
  • 開発用『/home/develop/』
  • 自分用『/home/ogaaaan/』
  • その他『/var/www/html/』
ってのを個別に共有してるんだよね。
『/var/www/html』にWebアプリのソースを置かない理由は、ログの関係ね。経験上、/var/配下にはWebアプリは置きたくない感じ。
WindowsというOSの仕様かもしれないけど、これらのフォルダをネットワークドライブに設定しておけば、簡単にアクセスできるんだけど、当然ゲストOSであるFedoraが完全に起動している状態じゃないとといけない。

Windowsが起動した直後はゲストOSは起動してないわけだから、これらのネットワークドライブには接続出来てないんだよね。だからゲストOSが起動し終わる都度、自分でフォルダを一度開かないといけない。
そうしないとIDE開いた時に、プロジェクトが空になっちゃう。ネットワークドライブがつながってるのにもかかわらず。

これは毎度、面倒くさいって思ってる。
指定したアプリをタスクバーではなくタスクトレイに常駐させるアプリを使い、FedoraのVMファイルのショートカットをスタートアップに入れてるから、1~2数分待てば勝手にタスクトレイにVMが常駐するので、あとはネットワークドライブを手で開くだけなので、まぁ死ぬほど面倒ってわけじゃないけどね。
Windowsのタスクで、OS起動後1分で自動でネットワークドライブを開く設定にしたりしてたんだけど、開いたら閉じれないんだよね。これもうざいし、タスクが走る前にゲストOSが起動仕切らない時があったりするので、なんだかこういうのって、ちょっと気持ち悪いよね。

■今の環境

最近はもう少しシンプルにしようと思って、いろいろ試行錯誤してるよ。

まだ始めたばかりで個人的に確立されてないので未熟な部分もあるけど、現状はこんな感じで色々いじってるよ。
  • Windows + Vagrant
  • SublimeText2 + Emmet
超シンプルっしょwww

実際にはVagrantでVirtualBoxのboxファイル使ってるので、VirtualBoxは今回も使ってるんだけどね。

ホストマシンにWindows使ってるのは相変わらずだけど、Vagrant入れてコマンドプロンプト(以後cmd)からvagrantコマンド叩いてる。

ただvagrant sshだとつながらないので、vagrant ssh-configで設定調べて、Poderosaつかってコマンド打ってるけどね。

むしろcmdとPoderosaで別れてるから、Vagrantのコマンドなのか、Linuxコマンドなのかってのが明確に分かれてて、これは思ったより悪くない。

つまりミスが減るかも

あとSublimeText2だけど、これはIDEっぽいプロジェクト管理ができるテキストエディタないかなって思って探してたんだけど、秀丸を超えるものがないんだよね。秀丸にプロジェクト管理機能が加わればステキなんだけど、昔お金払って使ってたPeggyみたいになったらちょっとやだなぁ、てのがある。Peggyは大変優れたIDEなんだけど、2013年クラウド時代に使うのはどうだろうか、と思うわけですよ。それにあれってどっちかというと組み込み系とかハードに近い人達のためのエディタって感じがするので、もう少しバウンダリっぽい環境でさくさく使えるエディタがほしいんだよね。

というわけで、Linux、Windows、Macでも使えるというSublime Text2を選んだわけ。

これさ、Zen-Coddingを祖先に持つEmmetってプラグインがあるんだけど、やっぱり楽だよねー、これ系の入力支援って。

一番助かるのが、『!』だね。これ叩いて『Ctrl+E』叩くと、瞬時に以下のソースコードが生成される。
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  
</body>
</html>
そしてtitleタグ中のテキストノードが選択された状態になる。すぐにタイトルを入力することが可能だ。
これは便利。

ちなみにブログにHTMLタグを貼り付けると、そのままHTMLタグとして認識されてエラーが出ることがあるので、タグの不等号はエスケープしないといけない。

Emmetにはパイプ記号を使ったフィルタがあるので、『!』を『!|e』とすると、すべてのタグが実体参照状態になって展開されるので、メチャメチャ便利だ。上記サンプルはそうやって貼り付けてる。

それにAutoFileSizeというプラグインも便利で、
img[src=kickme.png]
と入力して『Ctrl+E』するとEmmetの機能で
<img src="kickme.png" alt="">
って展開されるだけど、
『Ctrl+U』を叩くと、画像ファイルのパスさえ正しければ、自動的に
<img src="kickme.png" alt="" width="400" height="300">
なんて言うふうに、画像サイズのアトリビュートを追記してくれたりするんだよね。

もうね、こういう奥さんほしいよね。うん。痒いところを痒いっ!て言う前に掻いてくれるような、そういう本来持っていてほしい女子力ね。
料理とかビーズアクセとか作れる女子力とか、激しくどうでもいいので。

実際にどういう動きをするのか、動画を撮ってみたのでご覧あれ。



アノテーションとか入れてないけど、入れようと思ってわざと動作がマヌケになってるけど、実際にはもうパパパーーーン!って感じで叩いて即時変換してくれるから、なれてくると神の領域にひたれるんだろうね。

俺はまだそこまで言ってないけど。

で、VagrantつかってVirtualBoxのVMファイル作っておくとさ、Winodwsだと自動的に『c:\users\<ユーザ名>\VirtualBox VMs\<VM名>\』の中が、ホストOSのWinodwsとゲストOSで共有になるんだよね。

で、これゲストOS側ではルートに『/vagrant』ってディレクトリが切られてて、そこが共有フォルダになってるから、ゲストOS側のドキュメントルートをこのVagrantにシンボリックリンク貼っちゃえば、今までやってたように、samba越しにファイルいじれるべ、なんて事が簡単にできちゃうわけよね。

これは、実に楽だね

もっともcmdでVagrantコマンド叩いておかないとゲストOS起動しないけど、Vagrantって別に仮想環境を短時間で構築するだけのツールじゃないし、サンドボックスとかもあるし、自分専用のboxファイル作れちゃったりもできるし、そういう意味では新たなVM管理の便利なミドルウェアって認識してるのよ。

だからこれは面倒とかいう話はナンセンスだと思うんで、苦じゃない。
まぁもっと早くからVagrant使ってて積極的にスキルアップしてる人たちは、更に便利な使い方してるんだろうけどね。

■まとめ

というわけで、まだここ数日で急ピッチで環境の変更をしてるわけなので、実は大したネタもないけどさ、そもそも何が言いたいわけ?と言われたらこう言うよ。

冒頭でも同じ事書いてみたけど、

自分の好みに理由をつけて変化を避けるのは
時代に乗り遅れる人の典型なのでは?

ということだね。
俺は、ちょっとこれっぽくなってたかなってここ最近気づいたので。

なんでもやってみればいいよね。


でさ、『オガーンさ、開発者なのに、なに今頃気づいてるわけ?』とか『Vagrantがリリースされてどれくらい経ってるわけ?』とかいう人もいるだろうけど、俺自身、周りにすぐにコンタクトが取れる仲の良い技術者が一人もいないロンサムガイなので、案外刺激的な変化が無いんだよね。

だから『こうすればいいよ!』みたいなアドバイスは当然ないわけで、実際問題その現状を理解してるから、自分の環境を自力で研ぎ澄まそうとするわけね。

無理があるし、時間かかるのよ。

だから、個人的には今のタイミングで環境の変化に届いた(気がついた)のは、ある意味『良し』としているんだ。第三者からすれば『良し』じゃなくて『マシ』かもしれないけどwww


そうそう、でね、そういう必要な変化とか、新しい便利な技術、たくさんあるじゃん?
そういうのに気づいてもさ、『いつかやろうと思ってる』とか『本当はやらないといけないんですけどね・・・。』って言いながら、本当になーんもしない人、俺の周りにはたくさんいたんですよ、実際。

で、そういう人を見てる時の俺って、『あぁ~、この人とは仕事したくないな・・・・。』って感じで、ちょっとだけなんだけど、下に見ちゃう時がある。申し訳ないんだけどね。

そしてそんな時の俺自身もすごくいやらしい人間になってるし、日本のIT業界ももっと(フィジカルとロジカルのバランスを旨く取るという意味で)活性化してほしいし、だから俺自身がそうなりたくないってのもあって、恥ずかしいけどこういう記事を書いてみたってことね。
時代の波に乗り遅れるのはしょうがないにしても、突っ立ってたら波に飲まれて大海原で遭難するか、サメに喰われて死ぬ。
おわりであります。