vimでPHPのシンタックスチェック

最近、PHPなお仕事なんだけど、PHP用のvimの設定を何もしてないので、とても心細い。シンタックスハイライトくらいはデフォルトで用意されてるけど。

開発言語を変えると、エディタの設定も変えなきゃいけないから面倒だ。これは、vimに限らず、emacsでもeclipseでも同じはず。

極力エディタをカスタマイズしない派の人もいるみたいだけど、なんのために、拡張可能なエディタを使ってんだかわからない。メモ帳でも使ってろと言いたい。

サーバ管理を生業としている人は対象外だけど、複数の環境で作業する必要があるからカスタマイズしないという、よくある意見はスルー。そもそも、本番環境とかで開発するべきじゃないし、開発環境であれば、設定ファイルを共有する方法は、今ならいくらでもある。

シェルとエディタはカスタマイズしてなんぼ。どんどんカスタマイズするべきなんだよ。手に馴染むまで。そして、常に進化させる必要がある。現状に満足することはリスクだと思え。

ということで、まずは、PHPのシンタックスチェックを導入してみた。

vimでPHPを編集中、1秒で文法チェックする方法

ここで見つけて便利だなーと思ってたんだけど、しばらく使ってみて、いちいち手動で実行するのが面倒でたまらん。いつのまにか、こんなんじゃ満足できない体になってしまった。こういうのは、保存時に自動的にやるべき派なので、ちょっと修正した。.vimrcに追加すればok。

func PhpLint()
  let rslt = system('php -l '.bufname(''))
  if !strlen(matchstr(rslt, '^No syntax errors detected in .*$'))
    echo rslt
  endif
endfunc
au BufWritePost *.php :call PhpLint()

php -lを実行すると、シンタックスエラーがなくても、冗長なメッセージを吐きやがる。こういうのは、UNIXの哲学に反するし、ウザくてキライ。なので、エラーがあったときだけ通知するようにした。

systemで実行した外部プログラムの終了コードをチェックしたかったんだけど、やりかたがよくわからんかったので、とりあえず、文字列マッチングで対処。納得いかねーけど、まあ、目的のものはできた。

久しぶりに、vimスクリプト書いたけど、相変わらず、いい意味でキモイ。

Terminalで新しいタブを開いてsshを実行するAppleScript

クライアント側でscreen使ってて、サーバ側でもscreen使ってると自分がどのマシンで作業しているのかわからなくなったりする。

有名な記事だけど、ここで紹介されてる、ssh_screenっていうzshの関数を定義しておくと、sshしたときに新しいウィンドウを開いて、そのウィンドウ名をログイン先のホスト名に設定してくれるから便利。なんだけど、ログイン先でもscreen使ってる場合、混乱が起きる。キーバインドの問題だ。

ネットを調べた感じだと、みんな、サーバ毎にscreenのキーバインドを変えることで対処してるみたい。でもぼくは、キーバインドを変えるってことにすごく抵抗があるわけ。

どうしたもんかと悩んでいたら閃いた。LeopardのTerminal.appはタブ機能があるじゃないかと。そこで、新しいタブを開いて、sshを実行してくれるAppleScriptを書いてみた。

インタプリタ?っぽく書いてるけど、事前にコンパイルとかした方がいいんだろうか?AppleScriptはよくわからん。

使い方は、

alias ssh="~/bin/tabbed-ssh"

とでもエイリアス切って、あとは、いつも通りのsshの使い方でok。

話は変わって、今回、AppleScriptを始めて書いたのだけど、これ難しいな。

do script with command cmd in selected tab of the front window

inとかtoとかofとか。まあ、ぼくの英語の前置詞の知識が乏しいんだけなんだけど。あと、theとか意味わかんねー。ちなみに、このtheは省略しても動作するっぽい。冗長なシンタックスシュガーっていう認識でいいの?こんなの始めて。

自然言語に似せたプログラミング言語ってのは、一般の人には易しいのかも知れないけど、プログラマにとってみたら苦痛だよな。

Well Known Portを調べるやつをGitHubに移した

CodeReposでホスティングしてた、well-known-portスクリプトをGitHubに移した。別に他意はないんだけど、オープンソースで開発してるやつは、gitで全部管理したいなと。

それに、基本的にはみごプログラマだから、誰かと一緒にワイワイ開発する感じが苦手なのかも。GitHubの勝手にforkして、pull requestってスタイルが性に合ってるんだろうな。

スクリプトの説明は昔書いたエントリを参照。

コードはこちら。

Terminal.appが固まる件

これは、トンデモだろ。

Terminal.app を軽くする方法 - IT戦記

プラシーボにもならねぇよ。まあ、マシンの個体差とかあるから、ぼくだけの環境の問題かも知れないけど、気休め程度に考えといた方がいいと思う。

ぼくは、screen使ってるし、ターミナルにスクロールバーが出るのは気持ち悪いから、スクロールバッファは0でずっと使ってるけど、普通に固まるぜ。

固まったら、強制終了 -> 再起動 -> screenリアタッチでことなきを得る。

結局、screenすばらしいっていう話だな。

というか、Appleさん改善してよ。256色対応と一緒にお願い。

users.jpとTyposquatting

まずは、この2つのURLを見て欲しい。違いがわかるだろうか?

なんてことはない、ドットとハイフンをタイプミスしちゃっただけなんだけど、知らないサイトに飛ばされて俺涙目。自分の管理するサイトがクラックされたのかと思っちまった。いやー、焦った焦った。

ちなみに、Arcだけじゃないよ。ほとんどのハブサイトが対象になってると思う。

  • http://as.users.jp
  • http://js.users.jp
  • http://perl.users.jp
  • http://php.users.jp

これが噂に聞くTyposquattingとかいう奴か。users.jp取ったもん勝ちだな。でも、中途半端なリンクサイトにするくらいなら、それぞれのハブサイトにリダイレクトするとかしてくれれば、その男気に惚れたのに。一躍ヒーローになれたかもしれないのに。もったいない。

みんな、ハブサイトを利用する時は、ドットとハイフンを確認するんだ。決して間違えてはいけない。

ミトニックさんに会って来た

先日申し込んでいた、情報セキュリティ勉強会に行って来た。

なんか、スーツな人が多くて、ロン毛ヒゲ面ハデシャツな奴なんかほとんど居なくて、来る場所を間違えたのかと思って後悔しかけた。だけど、講演が始まるとそんな心配は吹き飛んだ。話の内容はとても深く面白くて、モトローラの携帯のソースを盗んだ話や、実際のソーシャルエンジニアリングの手口の話とか、思わず聞き入ってしまった。

中でも、『悪いことをしたことは認めるし反省しているけど、当時の自分は知的好奇心からハッキングしていた。でも、今ではハッキングは犯罪に結びつくことが多いから、セキュリティの対策が必要。』みたいな事を言ってたのが印象に残った(超要約注意)。

確かに、当時のギークで、フリーキング(電話のタダ掛け)に興味を持たなかった人のほうが少ないんじゃないかと思う。それに、コンピュータ自体が高価で一部のエリートしか触れなかったような時代だし、なんとかして、コンピュータを使いたい、侵入したいって気持ちもわからなくない。

ぼくがコンピュータに興味を持って、プログラミングを始めたころには、自分専用のコンピュータを持っていたし、既にオープンソースという土壌が生まれていて、多種多様なすばらしいソースコードも育っていた。だから、 欲しい情報はすべて公開されているように思えたし、何不自由無くそれにアクセスする事が出来た。書籍も充実していたし、インターネットの普及や、検索エンジンの進化も一役買っていただろう。

そういう訳で、今まで、クラッキングとかソーシャルエンジニアリングなんかには、それほど興味がなかったんだけど、セキュリティを考える上では、やっぱり知識として持ってなきゃダメだなと思った。これを機会に、まずは彼の著書を読むところから始めて見ようかと思う。

欺術(ぎじゅつ)―史上最強のハッカーが明かす禁断の技法 ハッカーズ その侵入の手口 奴らは常識の斜め上を行く

« Older Entries