‘lang’ カテゴリーのアーカイブ

Flymakeのススメ(PHP版 , JS版)

Emacs使いなら普通に使ってるよね、ってな素晴らしいEmacs Lispの一つにFlymakeというのがあります。これは名前の通り、Emacsでファイル編集中にon the flyにmake(設定次第で何でも)してくれるEmacs Lispです。makeしてエラーが出た場合には、エラー箇所をハイライトしてくれます。typo などがあれば瞬時に気づくことができますので、開発効率がアップします。

青くハイライトされているのがwarning、赤はエラーの意味です。

PHPもJavaScriptも他の方が設定を公開されていますけど、社内で設定を紹介したところ、「Warningに別の色が付いたりしないんですね」などと言われたので、ムキになってWarningにも色を付けてみました。そんなわけで、他の方の設定とはひと味違うと思います。実はPHPに関して言うと滅多にWarningが出ないので、便利になったかどうかは疑問ですが…。

JavaScriptについてはJavaScript Lintが素晴らしいですね。macportsならport install javascript-lintでインストールできます。「JavaScript Lint – あどけない話」に書いてある通りなのですが、これもWarningに別の色が付くように頑張ってみました。

(続きを読む…)

Zend_Console_Getoptを使ってみた

今日はPHPでコマンドラインツールを作る際に便利なライブラリ、Zend_Console_Getoptの使い方とサンプルの紹介です。

Zend Framework って名前だけは皆さんご存知だと思うんですけど、実際に使ったことがある人は意外と少ない気がします。フレームワークって聞くとなんか面倒そうですし、自分はフレームワーク変える気無いしなあ、なんて人も多いですよね。でも、実はライブラリとして他のフレームワークと組み合わせて使うことも可能です。気軽に試してみてはいかがでしょうか。(例えばsymfonyならsfZendFrameworkBridgeを使えば簡単に利用できます)

インストール

まずはZend Frameworkをインストールしてみましょう。といっても、Zend Frameworkドキュメントの「1.2 インストール」に書いてあるままなんですが、私の手順を紹介します。

(続きを読む…)

Emacsでタブ・全角スペース・行末の空白文字列を目立たせる

最近Emacsの記事を書く率が異常に高い気がします。今日は、タブ、全角スペース、行末の連続する空白文字列に色を付ける、という話題です。

それ何度も見たよ、という方も多いかと思いますが、今回はtext-modeでも色がついたよ!という部分が(おそらく)新ネタなので勘弁してください。

まずは設定方法を先に紹介しておきます。.emacsにdotemacs-show-white-spaces.txtの内容を貼付けてください。これで色がつくようになったはずです。

emacs-spaces.png

上図が設定後のtext-modeです。色のセンスが非常に悪いので、何とかした方がいいと思います。

(続きを読む…)

PHPLintの紹介

ネット上でも言及している人が少ない印象ですが、PHPLintというツールがあります。これがどんなものか、触ってみたので紹介します。

結論から言うと仕事には使えなさそうですが、面白いソフトウェアだな、というのが個人的な感想です。

(続きを読む…)

ドメイン限定でコードジェネレーション

こんにちは、らいあです。
Dinoのプログラマーは毎日いろんなツールや関数を作って遊んでいます。

みなさんもライブラリってよく作りますよね?今日は、そのライブラリ製作の一手法として、コードジェネレータについて書いてみようと思います。

(続きを読む…)

講習会「intとfloat 〜小数をオススメしない理由」を開催しました

「intとfloat 〜小数をオススメしない理由」というタイトルで社内勉強会を開催しました。浮動小数点数に関する一般論とPHPでの実例についてです。最初に覚えた言語がPHPなどのスクリプト言語だったりすると、案外このあたりの知識が手薄なものです。簡単すぎる内容かとも思いましたが、意外と好評でした。

まとめ

  • 浮動小数点数は不要なら使わない
    • 整数で代用できないか検討
    • 理解しないと危険
  • 大きすぎる数も注意
    • 無限に正確に表せるわけではない

(続きを読む…)

DashboardでEmacsのコマンドタイピング

Screen shot
こちらでは初めまして。スタートアップ研修記の方で記事を書いてたりする新入社員のuchiumiです。
Dashboard上で動く、メタキーの使えるEmacsのコマンドタイピングゲームを作ってみました。
画面上に出てくるEmacsのコマンドを、ひたすら打って覚えよう!というような感じのものです。
遊び方は、解凍後、ダブルクリックでインストールしていただき、「保持」というボタンがあるので、それを選択するとDashboardに表示されるようになります。

Emacsを学んでいくうちに、コマンドのタイピングゲームみたいなのががあったら良いなぁと思い検索してみたところ、素敵なものを発見しましたが、残念ながらcommandキー(メタキー)がうまく使えないようでした。
どうやらブラウザなどのコマンドの方が先に優先されてしまうみたいです。
どうしたらメタキーが使えるか先輩社員の方に相談してみたところ、Dashboard上で動かせば大丈夫なんじゃないかという素晴らしい提案をいただいただきましたので、さっそくwidgetsを作ってみることにしました。

(続きを読む…)

講習会「XMLをPHPで扱おう (1)SimpleXML」を開催しました

「XMLをPHPで扱おう (1)SimpleXML」というタイトルで社内勉強会を開催しました。XML/DOM/XPathなどの整理とPHPのDOM拡張とSimpleXML拡張でのXML操作のコード例を紹介しました。

まとめ

  • PHPのSimpleXML拡張は、特にXMLの読み出しに関しては便利です。
    • 特にSimpleXMLElement::xpath()が使える場合は最高に便利です。

      • マニュアルによればPHP 5.2.0以降で使えるはずですが、私の実験環境ではPHP 5.0.0から利用できます。謎ですね。

(続きを読む…)

コマンドラインオプションを隠す。

こんにちは、らいあです。
Dinoのプログラマーは毎日いろんなツールや関数を作って遊んでいるばかりではなくて、うまく案件を運用するという責務も負っていたりします。

今日、とある開発サーバをぼんやりと覗いていたところ、bash_historyに次のような行が残っている事に気づきました。

mysql -u hogehoge –password=hogehoge hogehoge_db

(続きを読む…)

講習会「PHPの未定義値と値の検査」を開催しました

「PHPの未定義値と値の検査」というタイトルで社内勉強会を開催しました。PHPの型、未定義値、キャスト、==演算子などの知識の確認がテーマです。

まとめ

  • ==の挙動はキモいです。できるだけ===を使いましょう。
  • 未定義値にアクセスすると通常はNoticeが出ます。
    • isset関数とempty関数はNoticeが出ません。未定義値の可能性がある場合はまずどちらかでチェックしましょう。
  • isset関数はis_null関数と正反対の意味になります。
  • if($a)としたとき、$aをbooleanにキャストした真偽値として評価されます。
    • if(empty($a))が正反対の意味になります。

(続きを読む…)