サーバサイド処理を活用してCSSを書きやすく
このCSSを
ul.menu { list-style: none; } ul.menu li { padding-left: 2em; }
こう書けたら?
ul.menu { list-style: none; li { padding-left: 2em; } }
CSS Server-side Pre-processorを使えば、こんな風に見た目と意味が一致したCSSが書けてしまうようだ。
独自文法のCSSをサーバサイドでパースして、通常のCSSに落とし込もうというアイデアである。
このライブラリを使えば、ネスト記法の他にも定数を宣言したり、サーバサイドで別のCSSファイルをimportしたりできるようだ。
定数を使えば、色や幅など共通の値をいちいち置換してまわる手間が省ける。
@server constants{ colorOne: #336699; colorTwo: #3366CC; } .foo { color:colorOne; background-color:colorTwo; } .bar { color:colorOne; background-color:colorTwo; }
importはHTTPリクエスト数の大幅な削減につながる。
@server import url(stylesheetName.css);
普通のCSSと非常に近い文法で書けるのが良い感じだ。しかもmod_rewriteを使うので、あたかも普通のCSSであるかのようにHTMLからlinkするだけで使えてしまうようだ。
PHP、Apache、mod_rewriteで動くので、普段その周辺で開発しているなら試してみてもいいかもしれない。
EclipseでJavaコードを実行すると「Could not find the main class. Program will exit.」
症状
EclipseでJavaのプログラムをビルド・実行しようとすると
Could not find the main class. Program will exit.
とメッセージがポップアップし、さらにコンソールでは
java.lang.UnsupportedClassVersionError: FooClass (Unsupported major.minor version 50.0)
と怒られる。
コマンドプロンプトから直接コンパイルして実行するとうまくいく。
解決方法
Windowメニュー→ Preferences → Java → Compiler のCompiler Compliance Level を変えてみる。
CodeIgniterのファイル名はCase-Sensitive
久々にCodeIgniterでハマったのでメモ。
ローカルのWindowsで開発していたアプリを運用のためにLinuxのサーバにアップしたところ、訳のわからないところでエラーが出てまったく動かない。潜ってみると、原因はあるコンフィグファイルが大文字小文字の違いで正しくincludeされていなかったためだった。
たとえば自作ライブラリのクラス名を
CustomParser
とした場合、そのライブラリのファイル名は
application/libraries/CustomParser.php
コンフィグファイルを使うならそのコンフィグファイル名は
application/config/CustomParser.php
と、大文字小文字を完全に一致させる必要がある。
なおWindows環境ではファイル名はcase-sensitiveではないようなので、幸か不幸か問題なく動いてくれる。