メイン

「Java」のアーカイブ

2008年1月16日

Apache Wicket

↓このエントリ読んでWicket 使いたくなっちゃいましたよ。

ウェブ・アプリケーションの革命がここにある - Apache Wicketユーザーグループを始めます - 矢野勉のはてな日記

そういやJavaのフレームワークって、がっつり使ったことあるのstrutsくらいだもんなぁ。

Tapestryは、2年くらい前にSNS作って(友達登録くらいまでしかできなかったけど)それっきりだし、Seaser2 もやりたいやりたいと思ってちゃんと触ってないし。

その発想の根底にあるのは、デザインとプログラムのほぼ完全な分離と、「JavaプログラマはJavaで書くのが一番楽なんだ」という考え方です。WicketはHTMLはHTMLのまま、HTMLエディタで編集できる形式のままテンプレートとして使用します。Wicketは各種設定をすべてJavaソース内で行います。Wicketはウェブ・ページをステートフルにし、デスクトップアプリケーションを作るときのように、普通にインスタンス変数を使えるようにします*1。Ajaxによる画面のコンポーネント更新を、JavaScriptではなくJavaソースから行うことが出来ます。

そうだよねー。やっぱ言語は1つの方が作りやすいよねー。

そういう意味では、サーバサイドJavaScriptにも興味があります。

Wicketおもしろそうなんだけど、Javaアプリは、作ったアプリを簡単に公開できない(スクリプト言語に比べて)という点でちょっと二の足を踏んじゃうんだよなぁ。

安くでJavaのアプリをホスティングしてくれるサーバはないものか。

自前サーバ立てちゃうか? それはそれで結構な決心が必要なんだよね。

2007年10月28日

S2JDBC

S2JDBCについて言及されているひがさんのブログエントリ。

2007-10-26 - ひがやすを blog

仕事でJava を使いつつも Seaser2 まわりについては割とノーマークだったんだけど(便利で良いモノだと言うことは知っている)、このS2JDBC ってちょっとおもしろそう。

何でもJavaで書こうとすればきっとはまると思いますよ。でも、S2JDBCはそうじゃない。

・from()
・join()
・where()
・orderBy()
・limit()
・offset()

でかける範囲に限定して自動でSQLを生成し、それ以外は、明示的にSQLを書けというスタイルです。

そうなんだよなー。

結局のところ、DBへのアクセスって、生成されるSQLをそこまで意識する必要のない簡単なアクセスか、いくつものテーブルが結合した複雑なSQL の2種類がメインで、中間の適度に複雑なSQLってのはあまりない気がします(僕がそういうのを書かないだけかもしれないけど。いや、そうだな)。

外部にSQLを出せるってことで、O/Rマッパーとしては個人的にiBATISを推してきたけど、S2JDBCに手を出しちゃおうかな。

Rails熱もそろそろ落ち着いてきた頃だし、とりあえず知っているJavaの地盤を固めておこうかなと思ったり。

2007年7月23日

struts のタグのstyleClass

ほんと今更感のある話ですが、今日改めて「そうかー」と納得したので。

struts のタグを使ってimgタグを書き出すときは以下のように指定します。

<html:img src="hoge.jpg" />

でもって、この画像タグにclass属性を付けてstyleを指定したいときは、class ではなく、styleClass属性に指定します。

<html:img src="hoge.jpg" styleClass="moge"/>

なんでclassじゃだめかというと、classがJavaの予約語だから。

上記タグの指定だと、strutsのImgTagクラスで、getStyleClass が実行されるわけです。当然styleClassプロパティもあります。

これがclassだと、getClass とか、class というプロパティとかが存在することになって、それってNGですよね。

ほんと何を今更的な話ですが、strutsのタグ周りのソースを眺めていてなるほどなぁと感心。

stringbufferとかでベタにimgタグを作って書き出す部分とかあったりして、生々しいなぁと。

フレームワークって便利なんで、ただ使うだけってことになりがちですが、、ちゃんとソースを見るってのも重要ですね。

---

トラックバックスパムの量があまりに酷いのでトラックバックを一旦閉じました。

2007年6月 7日

iBATIS を使おう!

以前にこのブログでも紹介したことのあるiBATIS が CodeZine で特集されていました。


CodeZine:iBATISを使ったO/RマッピングによるDBアクセスの実例(O/Rマッピング, フレームワーク, java)


まとめに書かれている4点の中で、以下の3点は重要だと思います。

・SQL文をJavaソースコードから分離することができます
・SQLの埋め込みパラメータを、JDBCよりも分かりやすく指定できます
・検索結果をオブジェクトに格納する機能が付いています

SQLがソースから分離されていることで、開発中のSQLの修正がやりやすくなりますし、埋め込みパラメータもパラメータの順番を意識することなく指定することができます。

O/Rマッピングフレームワークとしては、Hibernate や S2Dao が注目されていて、iBATIS は今ひとつの知名度なので、もう少し利用者が増えればなぁと思います。

2007年2月 6日

Jakarta Commons で効率よいプログラミング - Commons Lang 編

プログラミングの中でStringをあれやこれやこねくり回すシーンは良くあります。

文字を分割したり、トリムしたり、固定長にしたり。

そんなとき、自前でUtilクラスを作る前に、Jakarta Commons Langを利用してみましょう。

便利なメソッドが揃っていて、プログラミング効率は格段にアップするはずです(知っている人は知っている話なので、そんな人は読み飛ばしてください)。

ダウンロードはこちら↓から。

The Jakarta Site - Commons Lang Downloads

数あるクラス/メソッドの中から、今回はベーシックなStringUtilsクラスの split()、substringBefore()、substringAfter()、substring()を紹介します。

ということで、

String test = "hoge=1&moge=2";

のようなパラメータっぽい文字列を処理するときを想定してみます。

こういうときは、"="の前と後ろをそれぞれkeyとvalueに対応させてMapに格納していくのが定石なので、そのように処理してみます。

String test = "hoge=1&moge=2";
Map result = new HashMap();
String[] l = StringUtils.split(test, "&");
for (int i = 0; i < l.length; i++) {
result.put(StringUtils.substringBefore(l[i], "="), StringUtils.substringAfter(l[i], "="));
}

3行目のsplit()で、文字列を"&"で分割し、Stringの配列を取得します。

その後、配列の長さ分だけfor文を回して、配列に格納された"key=value"の文字列を処理してきます。

今度はその"key=value"を"="の前と後ろで分けて値を取得するのですが、ここでsubstringBefore()とsubstringAfter()を利用します。

これで、hogeの値を取得したいときは、

result.get("hoge");

で取得できます。簡単ですよね。

これをStringクラスのsubstring()を使って実装しようとすると、結構面倒です。文字列長を誤ると、StringIndexOutOfBoundsExceptionなんかも発生しやすかったりするので、バグも発生しやすいです。

ちなみに、StringUtilsクラスのsubstring()メソッドは、この文字列長の扱いが割とゆるやかで、

String test = "abcdefg";

このような文字列の4文字目から20文字目を取得しようとしたとき、

test.substring(4,20);

だと、StringIndexOutOfBoundsExceptionが発生しますが、

StringUtils.substring(test,4,20);

だと、"defg"が取得できます。

初心者Javaプログラマが一歩ステップアップするために、このようなAPIを積極的に利用するようにしましょう。


Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集
ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 テクノロジックアート
オライリージャパン
売り上げランキング: 39496

2007年1月 5日

Javaの専門誌がなくなった理由

JavaWorldが廃刊になり、Javaの専門誌がなくなりました。

最近立て続けに起きたJava専門誌の廃刊。時代の流れだとは思いつつも、その理由を考えてみました。


1.業務において"最新の"Javaの技術を利用することはなくなった。

先日、Java6が発表され、「Scripting for Javaの使いどころがわからないが、なんだかおもしろそうだ」なんて熱い技術者の間では話題になっていますが、実際のシステム構築業務において、"最新"のJavaの技術はもはや必要なくなっています。

「Javaのバージョンは1.4系だし、Webアプリ構築ならstrutsでしょ」という妙な暗黙の了解があります。

システム構築の現場には、「いくらがんばって新しい知識を身につけても、実践で使う場がない」という閉塞感が漂っています。

当然、安くない専門誌をわざわざ買って勉強しようと言う若いエンジニアは少なくなっていきます。

そんな状況なので、1.4系のことしか知らない技術者・プログラマ達に、急に「5系を使って構築してみて」と言ったところで、「GENERICS? メタデータ? Annotation? 何それ?」の世界になっちゃうのは仕方ない話です。


2.Java1.4系の技術のお話ならネット上にいくつも情報がある。

で、求められる知識がJava1.4系のもの(しかも基礎レベル)であれば、ネット上に情報は腐るほどあるわけです(実際腐っているものもありますが)。


3.開発環境の向上(Eclipseなど)により、詳しい知識がなくても簡単に動くものが作れるようになった。

さらに、ソース補完や構文チェック、自動ビルドを行ってくれる統合開発環境のおかげで、詳しい知識がなくてもプログラミングできて、動くものが作れてしまう時代になってしまいました。結果、わざわざ雑誌を買ってまで調べなくても良くなってしまいます。


上記の内容を要約すると、技術力がない技術者でも簡単に「動くもの」が作れるようになってしまった、ということです。

いわゆる「専門誌」は、かなーりできる上級の技術者と、初心者~中級者の技術者をつなぐメディアだったわけです。その「つなぎ」がなくなることで、上級者とそれ以下の技術者の技術力格差はどんどん広がる一方です。

Javaもいつかは廃れていくのだとは思いますが、まだもうしばらくは一線でがんばっていける言語なわけで。優秀な技術者を育てるという意味でも、最新のJavaのバージョンで、最新の機能を使ったアプリをどんどん作っていけるような環境を作っていかないとなぁと思いました。

でぃべろっぱーず・さいど http://dev.chrisryu.com/ 鹿児島出身子持ちSEのディベロッパーとしての一面 ja Copyright 2013 Wed, 16 Jan 2008 23:52:18 +0900 http://www.sixapart.com/movabletype/ http://blogs.law.harvard.edu/tech/rss Apache Wicket ↓このエントリ読んでWicket 使いたくなっちゃいましたよ。

ウェブ・アプリケーションの革命がここにある - Apache Wicketユーザーグループを始めます - 矢野勉のはてな日記

そういやJavaのフレームワークって、がっつり使ったことあるのstrutsくらいだもんなぁ。

Tapestryは、2年くらい前にSNS作って(友達登録くらいまでしかできなかったけど)それっきりだし、Seaser2 もやりたいやりたいと思ってちゃんと触ってないし。

その発想の根底にあるのは、デザインとプログラムのほぼ完全な分離と、「JavaプログラマはJavaで書くのが一番楽なんだ」という考え方です。WicketはHTMLはHTMLのまま、HTMLエディタで編集できる形式のままテンプレートとして使用します。Wicketは各種設定をすべてJavaソース内で行います。Wicketはウェブ・ページをステートフルにし、デスクトップアプリケーションを作るときのように、普通にインスタンス変数を使えるようにします*1。Ajaxによる画面のコンポーネント更新を、JavaScriptではなくJavaソースから行うことが出来ます。

そうだよねー。やっぱ言語は1つの方が作りやすいよねー。

そういう意味では、サーバサイドJavaScriptにも興味があります。

Wicketおもしろそうなんだけど、Javaアプリは、作ったアプリを簡単に公開できない(スクリプト言語に比べて)という点でちょっと二の足を踏んじゃうんだよなぁ。

安くでJavaのアプリをホスティングしてくれるサーバはないものか。

自前サーバ立てちゃうか? それはそれで結構な決心が必要なんだよね。

]]>
http://dev.chrisryu.com/2008/01/apache_wicket.html http://dev.chrisryu.com/2008/01/apache_wicket.html Java Wed, 16 Jan 2008 23:52:18 +0900
S2JDBC S2JDBCについて言及されているひがさんのブログエントリ。

2007-10-26 - ひがやすを blog

仕事でJava を使いつつも Seaser2 まわりについては割とノーマークだったんだけど(便利で良いモノだと言うことは知っている)、このS2JDBC ってちょっとおもしろそう。

何でもJavaで書こうとすればきっとはまると思いますよ。でも、S2JDBCはそうじゃない。

・from()
・join()
・where()
・orderBy()
・limit()
・offset()

でかける範囲に限定して自動でSQLを生成し、それ以外は、明示的にSQLを書けというスタイルです。

そうなんだよなー。

結局のところ、DBへのアクセスって、生成されるSQLをそこまで意識する必要のない簡単なアクセスか、いくつものテーブルが結合した複雑なSQL の2種類がメインで、中間の適度に複雑なSQLってのはあまりない気がします(僕がそういうのを書かないだけかもしれないけど。いや、そうだな)。

外部にSQLを出せるってことで、O/Rマッパーとしては個人的にiBATISを推してきたけど、S2JDBCに手を出しちゃおうかな。

Rails熱もそろそろ落ち着いてきた頃だし、とりあえず知っているJavaの地盤を固めておこうかなと思ったり。

]]>
http://dev.chrisryu.com/2007/10/s2jdbc.html http://dev.chrisryu.com/2007/10/s2jdbc.html Java Sun, 28 Oct 2007 21:05:55 +0900
struts のタグのstyleClass ほんと今更感のある話ですが、今日改めて「そうかー」と納得したので。

struts のタグを使ってimgタグを書き出すときは以下のように指定します。

<html:img src="hoge.jpg" />

でもって、この画像タグにclass属性を付けてstyleを指定したいときは、class ではなく、styleClass属性に指定します。

<html:img src="hoge.jpg" styleClass="moge"/>

なんでclassじゃだめかというと、classがJavaの予約語だから。

上記タグの指定だと、strutsのImgTagクラスで、getStyleClass が実行されるわけです。当然styleClassプロパティもあります。

これがclassだと、getClass とか、class というプロパティとかが存在することになって、それってNGですよね。

ほんと何を今更的な話ですが、strutsのタグ周りのソースを眺めていてなるほどなぁと感心。

stringbufferとかでベタにimgタグを作って書き出す部分とかあったりして、生々しいなぁと。

フレームワークって便利なんで、ただ使うだけってことになりがちですが、、ちゃんとソースを見るってのも重要ですね。

---

トラックバックスパムの量があまりに酷いのでトラックバックを一旦閉じました。

]]>
http://dev.chrisryu.com/2007/07/styleclass_attribute_of_struts_imgtag.html http://dev.chrisryu.com/2007/07/styleclass_attribute_of_struts_imgtag.html Java Mon, 23 Jul 2007 21:40:15 +0900
iBATIS を使おう! 以前にこのブログでも紹介したことのあるiBATIS が CodeZine で特集されていました。


CodeZine:iBATISを使ったO/RマッピングによるDBアクセスの実例(O/Rマッピング, フレームワーク, java)


まとめに書かれている4点の中で、以下の3点は重要だと思います。

・SQL文をJavaソースコードから分離することができます
・SQLの埋め込みパラメータを、JDBCよりも分かりやすく指定できます
・検索結果をオブジェクトに格納する機能が付いています

SQLがソースから分離されていることで、開発中のSQLの修正がやりやすくなりますし、埋め込みパラメータもパラメータの順番を意識することなく指定することができます。

O/Rマッピングフレームワークとしては、Hibernate や S2Dao が注目されていて、iBATIS は今ひとつの知名度なので、もう少し利用者が増えればなぁと思います。

]]>
http://dev.chrisryu.com/2007/06/lets_use_ibatis.html http://dev.chrisryu.com/2007/06/lets_use_ibatis.html Java Thu, 07 Jun 2007 21:19:47 +0900
Jakarta Commons で効率よいプログラミング - Commons Lang 編 プログラミングの中でStringをあれやこれやこねくり回すシーンは良くあります。

文字を分割したり、トリムしたり、固定長にしたり。

そんなとき、自前でUtilクラスを作る前に、Jakarta Commons Langを利用してみましょう。

便利なメソッドが揃っていて、プログラミング効率は格段にアップするはずです(知っている人は知っている話なので、そんな人は読み飛ばしてください)。

ダウンロードはこちら↓から。

The Jakarta Site - Commons Lang Downloads

数あるクラス/メソッドの中から、今回はベーシックなStringUtilsクラスの split()、substringBefore()、substringAfter()、substring()を紹介します。

ということで、

String test = "hoge=1&moge=2";

のようなパラメータっぽい文字列を処理するときを想定してみます。

こういうときは、"="の前と後ろをそれぞれkeyとvalueに対応させてMapに格納していくのが定石なので、そのように処理してみます。

String test = "hoge=1&moge=2";
Map result = new HashMap();
String[] l = StringUtils.split(test, "&");
for (int i = 0; i < l.length; i++) {
result.put(StringUtils.substringBefore(l[i], "="), StringUtils.substringAfter(l[i], "="));
}

3行目のsplit()で、文字列を"&"で分割し、Stringの配列を取得します。

その後、配列の長さ分だけfor文を回して、配列に格納された"key=value"の文字列を処理してきます。

今度はその"key=value"を"="の前と後ろで分けて値を取得するのですが、ここでsubstringBefore()とsubstringAfter()を利用します。

これで、hogeの値を取得したいときは、

result.get("hoge");

で取得できます。簡単ですよね。

これをStringクラスのsubstring()を使って実装しようとすると、結構面倒です。文字列長を誤ると、StringIndexOutOfBoundsExceptionなんかも発生しやすかったりするので、バグも発生しやすいです。

ちなみに、StringUtilsクラスのsubstring()メソッドは、この文字列長の扱いが割とゆるやかで、

String test = "abcdefg";

このような文字列の4文字目から20文字目を取得しようとしたとき、

test.substring(4,20);

だと、StringIndexOutOfBoundsExceptionが発生しますが、

StringUtils.substring(test,4,20);

だと、"defg"が取得できます。

初心者Javaプログラマが一歩ステップアップするために、このようなAPIを積極的に利用するようにしましょう。


Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集
ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 テクノロジックアート
オライリージャパン
売り上げランキング: 39496

]]>
http://dev.chrisryu.com/2007/02/jakarta_commons_commons_lang_.html http://dev.chrisryu.com/2007/02/jakarta_commons_commons_lang_.html Java Tue, 06 Feb 2007 23:17:56 +0900
Javaの専門誌がなくなった理由 JavaWorldが廃刊になり、Javaの専門誌がなくなりました。

最近立て続けに起きたJava専門誌の廃刊。時代の流れだとは思いつつも、その理由を考えてみました。


1.業務において"最新の"Javaの技術を利用することはなくなった。

先日、Java6が発表され、「Scripting for Javaの使いどころがわからないが、なんだかおもしろそうだ」なんて熱い技術者の間では話題になっていますが、実際のシステム構築業務において、"最新"のJavaの技術はもはや必要なくなっています。

「Javaのバージョンは1.4系だし、Webアプリ構築ならstrutsでしょ」という妙な暗黙の了解があります。

システム構築の現場には、「いくらがんばって新しい知識を身につけても、実践で使う場がない」という閉塞感が漂っています。

当然、安くない専門誌をわざわざ買って勉強しようと言う若いエンジニアは少なくなっていきます。

そんな状況なので、1.4系のことしか知らない技術者・プログラマ達に、急に「5系を使って構築してみて」と言ったところで、「GENERICS? メタデータ? Annotation? 何それ?」の世界になっちゃうのは仕方ない話です。


2.Java1.4系の技術のお話ならネット上にいくつも情報がある。

で、求められる知識がJava1.4系のもの(しかも基礎レベル)であれば、ネット上に情報は腐るほどあるわけです(実際腐っているものもありますが)。


3.開発環境の向上(Eclipseなど)により、詳しい知識がなくても簡単に動くものが作れるようになった。

さらに、ソース補完や構文チェック、自動ビルドを行ってくれる統合開発環境のおかげで、詳しい知識がなくてもプログラミングできて、動くものが作れてしまう時代になってしまいました。結果、わざわざ雑誌を買ってまで調べなくても良くなってしまいます。


上記の内容を要約すると、技術力がない技術者でも簡単に「動くもの」が作れるようになってしまった、ということです。

いわゆる「専門誌」は、かなーりできる上級の技術者と、初心者~中級者の技術者をつなぐメディアだったわけです。その「つなぎ」がなくなることで、上級者とそれ以下の技術者の技術力格差はどんどん広がる一方です。

Javaもいつかは廃れていくのだとは思いますが、まだもうしばらくは一線でがんばっていける言語なわけで。優秀な技術者を育てるという意味でも、最新のJavaのバージョンで、最新の機能を使ったアプリをどんどん作っていけるような環境を作っていかないとなぁと思いました。

]]>
http://dev.chrisryu.com/2007/01/java.html http://dev.chrisryu.com/2007/01/java.html Java Fri, 05 Jan 2007 00:38:23 +0900
でぃべろっぱーず・さいど: アーカイブ

アーカイブ

/* Base Weblog (base-weblog.css) */ /* basic elements */ html { margin: 0; /* setting border: 0 hoses ie6 win window inner well border */ padding: 0; } body { margin: 0; /* setting border: 0 hoses ie5 win window inner well border */ padding: 0; font-family: verdana, 'trebuchet ms', sans-serif; font-size: 12px; } form { margin: 0; padding: 0; } a { text-decoration: underline; } a img { border: 0; } h1, h2, h3, h4, h5, h6 { font-weight: normal; } h1, h2, h3, h4, h5, h6, p, ol, ul, pre, blockquote { margin-top: 10px; margin-bottom: 10px; } /* standard helper classes */ .clr { clear: both; overflow: hidden; width: 1px; height: 1px; margin: 0 -1px -1px 0; border: 0; padding: 0; font-size: 0; line-height: 0; } /* .pkg class wraps enclosing block element around inner floated elements */ .pkg:after { content: " "; display: block; visibility: hidden; clear: both; height: 0.1px; font-size: 0.1em; line-height: 0; } * html .pkg { display: inline-block; } /* no ie mac \*/ * html .pkg { height: 1%; } .pkg { display: block; } /* */ /* page layout */ body { text-align: center; } /* center on ie */ #container { position: relative; margin: 0 auto; /* center on everything else */ width: 720px; text-align: left; } #container-inner { position: static; width: auto; } #banner { position: relative; } #banner-inner { position: static; } #pagebody { position: relative; width: 100%; } #pagebody-inner { position: static; width: 100%; } #alpha, #beta, #gamma, #delta { display: inline; /* ie win bugfix */ position: relative; float: left; min-height: 1px; } #delta { float: right; } #alpha-inner, #beta-inner, #gamma-inner, #delta-inner { position: static; } /* banner user/photo */ .banner-user { float: left; overflow: hidden; width: 64px; margin: 0 15px 0 0; border: 0; padding: 0; text-align: center; } .banner-user-photo { display: block; margin: 0 0 2px 0; border: 0; padding: 0; background-position: center center; background-repeat: no-repeat; text-decoration: none !important; } .banner-user-photo img { width: 64px; height: auto; margin: 0; border: 0; padding: 0; } /* content */ .content-nav { margin: 10px; text-align: center; } .date-header, .entry-content { position: static; clear: both; } .entry, .trackbacks, .comments, .archive { position: static; overflow: hidden; clear: both; width: 100%; margin-bottom: 20px; } .entry-content, .trackbacks-info, .trackback-content, .comment-content, .comments-open-content, .comments-closed { clear: both; } .entry-excerpt, .entry-body, .entry-more-link, .entry-more { clear: both; } .entry-footer, .trackback-footer, .comment-footer, .comments-open-footer, .archive-content { clear: both; margin: 5px 10px 20px 10px; } .comments-open label { display: block; } #comment-author, #comment-email, #comment-url, #comment-text { width: 240px; } #comment-bake-cookie { margin-left: 0; vertical-align: middle; } .comments-open-header { clear: both; } #comment-post { font-weight: bold; } img.image-full { width: 100%; } .image-thumbnail { float: left; width: 115px; margin: 0 10px 10px 0; } .image-thumbnail img { width: 115px; height: 115px; margin: 0 0 2px 0; } /* modules */ .module { position: relative; overflow: hidden; width: 100%; } .module-content { position: relative; margin: 5px 10px 20px 10px; } .module-list, .archive-list { margin: 0; padding: 0; list-style: none; } .module-list-item { margin-top: 5px; margin-bottom: 5px; } .module-presence img { vertical-align: middle; } .module-powered .module-content { margin-bottom: 10px; } .module-photo .module-content { text-align: center; } .module-wishlist .module-content { text-align: center; } .module-calendar .module-content table { border-collapse: collapse; } .module-calendar .module-content th, .module-calendar .module-content td { width: 14%; text-align: center; } .typelist-thumbnailed { margin: 0 0 20px 0; } .typelist-thumbnailed .module-list-item { display: block; clear: both; margin: 0; } /* positioniseverything.net/easyclearing.html */ .typelist-thumbnailed .module-list-item:after { content: " "; display: block; visibility: hidden; clear: both; height: 0.1px; font-size: 0.1em; line-height: 0; } * html .typelist-thumbnailed .module-list-item { display: inline-block; } /* no ie mac \*/ * html .typelist-thumbnailed .module-list-item { height: 1%; } .typelist-thumbnailed .module-list-item { display: block; } /* */ .typelist-thumbnail { float: left; min-width: 60px; width: 60px; /* no ie mac \*/width: auto;/* */ margin: 0 5px 0 0; text-align: center; vertical-align: middle; } .typelist-thumbnail img { margin: 5px; } .module-galleries .typelist-thumbnail img { width: 50px; } .typelist-description { margin: 0; padding: 5px; } .module-featured-photo .module-content, .module-photo .module-content { margin: 0; } .module-featured-photo img { width: 100%; } .module-recent-photos { margin: 0 0 15px 0; } .module-recent-photos .module-content { margin: 0; } .module-recent-photos .module-list { display: block; height: 1%; margin: 0; border: 0; padding: 0; list-style: none; } /* positioniseverything.net/easyclearing.html */ .module-recent-photos .module-list:after { content: " "; display: block; visibility: hidden; clear: both; height: 0.1px; font-size: 0.1em; line-height: 0; } * html .module-recent-photos .module-list { display: inline-block; } /* no ie mac \*/ * html .module-recent-photos .module-list { height: 1%; } .module-recent-photos .module-list { display: block; } /* */ .module-recent-photos .module-list-item { display: block; float: left; /* ie win fix \*/ height: 1%; /**/ margin: 0; border: 0; padding: 0; } .module-recent-photos .module-list-item a { display: block; margin: 0; border: 0; padding: 0; } .module-recent-photos .module-list-item img { width: 60px; height: 60px; margin: 0; padding: 0; } /* mmt calendar */ .module-mmt-calendar { margin-bottom: 15px; } .module-mmt-calendar .module-content { margin: 0; } .module-mmt-calendar .module-header { margin: 0; } .module-mmt-calendar .module-header a { text-decoration: none; } .module-mmt-calendar table { width: 100%; } .module-mmt-calendar th { text-align: left; } .module-mmt-calendar td { width: 14%; height: 75px; text-align: left; vertical-align: top; } .day-photo { width: 54px; height: 54px; } .day-photo a { display: block; } .day-photo a img { width: 50px; height: 50px; } /* Vicksburg II (theme-vicksburg.css) */ /* basic page elements */ body { font-family: 'trebuchet ms', verdana, helvetica, arial, sans-serif; font-size: 12px; } a { color: #666666; text-decoration: underline; } a:hover { color: #66cc33; } #banner a { color: #fff; text-decoration: none; } #banner a:hover { color: #fff; } .module-content a { color: #666666; } .module-content a:hover { color: #66cc33; } h1, h2, h3, h4, h5, h6 { font-family: 'trebuchet ms', verdana, helvetica, arial, sans-serif; } .module-header, .trackbacks-header, .comments-header, .comments-open-header, .archive-header { color: #000000; font-family: 'Trebuchet MS', Verdana, sans-serif; font-size: x-small; border-bottom: 1px dashed #999999; text-align: left; font-weight: bold; text-transform: uppercase; padding: 3px; letter-spacing: .3em; } .module-header a, .module-header a:hover, .trackbacks-header a, .trackbacks-header a:hover, .comments-header a, .comments-header a:hover, .comments-open-header a, .comments-open-header a:hover .archive-header a, .archive-header a:hover { color: #fff; } .entry-more-link, .entry-footer, .comment-footer, .trackback-footer, .typelist-thumbnailed { font-size: 11px; } .commenter-profile img { vertical-align: middle; } /* page layout */ body { min-width: 720px; color: #333; background: #FFFFFF; } #container { width: 720px; margin-bottom: 20px; background: #fff; } #container-inner { border-width: 0 5px 5px 5px; border-style: solid; border-color: #FFFFFF; } #banner { width: 710px; /* necessary for ie win */ background: #66cc33; } #banner-inner { padding: 15px 13px; border-width: 0px 0px 0 0px; border-style: solid; border-color: #fff; } .banner-user { width: 70px; margin-top: 5px; font-size: 10px; } .banner-user-photo { border: 1px solid #fff; } #banner-header { margin: 0; color: #fff; font-size: 30px; font-weight: bold; line-height: 1; text-shadow: #666666 0 2px 3px; } #banner-description { margin-top: 5px; margin-bottom: 0; color: #fff; background: none; font-size: 12px; line-height: 1.125; text-shadow: #666666 0 1px 2px; } #alpha { margin: 15px 15px 0 15px; width: 480px; } #beta { width: 200px; background: #e6ecf2; } #gamma, #delta { width: 180px; background: #dddddd; } #beta-inner, #gamma-inner, #delta-inner { padding: 10px 10px 0 10px; border-width: 0px 0px 0px 0; border-style: solid; border-color: #fff; } .date-header { margin-top: 0; font-size: 11px; font-weight: bold; text-transform: uppercase; } .entry-header { margin-top: 0; border-left: 5px solid #66CC33; padding: 0 0 0 10px; color: #000000; font-size: 18px; font-weight: bold; } .entry-content, .comment-content, .trackback-content { margin: 0; line-height: 1.5; } .entry-tags { margin: 0 0 10px 10px; } .entry-tags-header, .entry-tags-list, .entry-tag { display: inline; } .entry-tags-list { list-style:none; padding: 0px; } .entry-footer, .comment-footer, .trackback-footer { margin: 0 0 20px 0; border-top: 1px solid #DDDDDD; padding-top: 3px; color: #666; font-size: 10px; text-align: right; } .comment-content, .trackback-content, .comment-footer, .trackback-footer { margin-left: 10px; } .content-nav { margin-top: 0; } #trackbacks-info { margin: 10px 0; border: 1px dashed #66cc33; padding: 0 10px; color: #292e33; font-size: 11px; text-align: center; background: #dddddd; } .comments-open-footer { margin: 10px 0; } /* modules */ .module { margin: 0 0 10px 0; border-bottom: 1px solid #f3f6f9; background: #DDDDDD; } .module-content { margin: 0 0 10px 0; padding: 10px 10px 0 10px; font-size: 10px; line-height: 1.2; } .module-search input { font-size: 10px; } .module-search #search { width: 100px; } .module-mmt-calendar .module-content table, .module-calendar .module-content table { font-size: 10px; } .module-powered { border-width: 0; } .module-powered .module-content { margin-bottom: 0; border: 1px dashed #66cc33; padding-bottom: 10px; color: #292e33; background: #fff; } .module-photo { background: none; } .module-photo img { border: solid 1px #fff; } .module-list { margin: 0 15px 10px 15px; list-style: disc; } .module-list .module-list { margin: 5px 0 0 0; padding-left: 15px; list-style: circle; } .module-list-item { margin-top: 0; color: #666; line-height: 1.2; } .typelist-thumbnailed .module-list { margin: 0 0 10px 0; list-style: none; } .typelist-thumbnailed .module-list-item { margin: 1px 0; padding: 0; background: #f3f6f9; } .typelist-thumbnail { background: #fff; } .module-photo img { border: 1px solid #fff; } .module-featured-photo { width: 398px; } .module-featured-photo .module-content { margin: 0; border-width: 0; padding: 0; } .module-featured-photo img { width: 398px; } .module-recent-photos .module-content { padding: 10px 0 0 19px; } .module-recent-photos .module-list { margin: 0; } .module-recent-photos .module-list-item { width: 64px; /* mac ie fix */ margin: 0 10px 10px 0; padding: 0; background: none; } .module-recent-photos .module-list-item a { border: #cfd4d9 1px solid; padding: 1px; background: #fff; } .module-recent-photos .module-list-item a:hover { border-color: #666666; background: #fff; } .module-tagcloud .module-list {text-align: center; } .module-tagcloud .module-list { list-style: none; } .module-tagcloud .module-list-item { display: inline; } .module-tagcloud li.taglevel1 { font-size: 19px; } .module-tagcloud li.taglevel2 { font-size: 17px; } .module-tagcloud li.taglevel3 { font-size: 15px; } .module-tagcloud li.taglevel4 { font-size: 13px; } .module-tagcloud li.taglevel5 { font-size: 11px; } .module-tagcloud li.taglevel6 { font-size: 9px; } /* calendar tweaks */ .layout-calendar #alpha { width: 260px; } .layout-calendar #beta { width: 420px; } .layout-calendar #gamma, .layout-calendar #delta { width: 190px; } .layout-calendar #gamma-inner, .layout-calendar #delta-inner { border: 0; padding: 0; } .module-mmt-calendar { width: 398px; } .module-mmt-calendar .module-content { margin: 0; border-width: 0; padding: 10px; } .module-mmt-calendar table { width: 378px; background: #66cc33; } .module-mmt-calendar th { color: #fff; border-top: 1px solid #fff; border-right: 1px solid #f3f6f9; border-bottom: 1px solid #cfd4d9; padding: 2px; text-align: right; font-weight: bold; } .module-mmt-calendar td { border-top: 1px solid #fff; border-right: 1px solid #f3f6f9; border-bottom: 1px solid #cfd4d9; padding: 2px; text-align: right; font-weight: normal; background: #dddddd; } th.weekday-7, td.day-7, td.day-14, td.day-21, td.day-28, td.day-35, td.day-42 { border-right: none; } .module-mmt-calendar td { height: 70px; } .day-photo { width: 49px; height: 49px; } .day-photo a { border: #cfd4d9 1px solid; padding: 1px; background: #fff; } .day-photo a:hover { border-color: #666666; background: #fff; } .day-photo a img { width: 45px; height: 45px; } /* artistic tweaks */ .layout-artistic #alpha { width: 260px; } .layout-artistic #beta { width: 420px; } .layout-artistic #gamma, .layout-artistic #delta { width: 190px; } .layout-artistic #gamma-inner, .layout-artistic #delta-inner { border: 0; padding: 0; } /* moblog1 tweaks */ .layout-moblog1 #alpha { margin: 0; width: 180px; background: #dddddd; } .layout-moblog1 #alpha-inner { padding: 10px 10px 0 10px; border-width: 0px 0 0px 0px; border-style: solid; border-color: #fff; } .layout-moblog1 #beta { margin: 15px 15px 0 15px; width: 320px; background: none; } .layout-moblog1 #beta-inner { padding: 0; border-width: 0; } .layout-moblog1 .module-recent-photos .module-content { padding: 10px 0 0 10px; } /* moblog2 tweaks */ .layout-moblog2 #alpha { margin: 0; width: 86px; background: #dddddd; } .layout-moblog2 #alpha-inner { padding: 10px 10px 0 10px; border-width: 0px 0 0px 0px; border-style: solid; border-color: #fff; } .layout-moblog2 #beta { margin: 15px 15px 0 15px; width: 260px; background: none; } .layout-moblog2 #beta-inner { padding: 0; border-width: 0; } .layout-moblog2 #delta { width: 154px; } .layout-moblog2 .module-recent-photos { border: 0; background: none; } .layout-moblog2 .module-recent-photos .module-content { padding: 0; border: 0; } .layout-moblog2 .module-recent-photos .module-list-item { margin: 0 0 10px 0; } /* timeline tweaks */ .layout-timeline #alpha { width: 260px; } .layout-timeline #beta { width: 420px; } .layout-timeline #gamma, .layout-timeline #delta { width: 190px; } .layout-timeline #gamma-inner, .layout-timeline #delta-inner { border: 0; padding: 0; } /* one-column tweaks */ .layout-one-column body { min-width: 520px; } .layout-one-column #container { width: 520px; } .layout-one-column #banner { width: 510px; } /* necessary for ie win */ /* two-column-left tweaks */ .layout-two-column-left #alpha { margin: 0; width: 200px; background: #dddddd; } .layout-two-column-left #alpha-inner { padding: 10px 10px 0 10px; border-width: 0px 0 0px 0px; border-style: solid; border-color: #fff; } .layout-two-column-left #beta { margin: 15px 15px 0 15px; width: 480px; background: none; } .layout-two-column-left #beta-inner { padding: 0; border-width: 0; } /* three-column tweaks */ .layout-three-column #alpha { margin: 0; width: 180px; background: #DDDDDD; } .layout-three-column #alpha-inner { padding: 10px 10px 0 10px; border-width: 0px 0 0px 0px; border-style: solid; border-color: #fff; } .layout-three-column #beta { margin: 15px 15px 0 15px; width: 320px; background: none; } .layout-three-column #beta-inner { padding: 0; border-width: 0; } /* * Preliminary styles added by Jay for Vicksburg II * for review by Luke/Walt and rest of team */ /* All or multiple templates Suppress underlines on linked entry titles */ .entry-header a { text-decoration: none; } /* Suppress the prev/next nav */ .content-nav { margin: 0px; display: none; } /* Search results templates */ .mt-search-results .search-results-header { border: 2px solid #669; background-color: #666666; color: #eee; padding: 5px; } .mt-search-results .search-results-container { margin-left:10px; } .mt-search-results form#search-form { width: 400px; margin: 0px auto 20px auto; } .mt-search-results form#search-form input#search { width: 80%; } .mt-search-results form#search-form p#search-options { text-align:center; } /* Entry tag display */ div.entry-tags { margin:0 0 10px 10px; } ul.entry-tags-list { list-style:none; padding: 0px; } h4.entry-tags-header, ul.entry-tags-list, li.entry-tag { display: inline; } /* Main index styles Suppress date header on main index */ .main-index .date-header { display: none; } /* Comment preview and individual entry Widen the comment form */ form textarea#comment-text { width:400px; } /* All archive templates Informational "where am I?" module at top of sidebar */ .module-welcome p { font-size: 12px; } .module-content p.first { margin-top:0px; } /* Date-based and category archives Archive title banner at top of page, below blog banner */ .master-archive-index #archive-title, .individual-entry-archive #archive-title, .date-based-archive #archive-title, .category-archive #archive-title { /* ie win (5, 5.5, 6) bugfix */ p\osition: relative; width: 100%; w\idth: auto; margin: 0; border-left: 10px solid #66cc33; padding: 5px; color: #fff; background: #666666; } /* Experimental comment styles Not currently in use anywhere in default templates For testing only... */ #comments-experimental .comment, #comments-experimental .comment .comment-inner { width:36em; } #comments-experimental .comment { padding: 0px; margin: 10px 15px; background-color:#eef; border:2px solid #bbb; } #comments-experimental .comment .comment-inner { position:relative; margin:-5px 0 0 -3px; background:#f3f3ff; border:1px solid #003; } #comments-experimental .comment:hover .comment-inner { border:1px solid #000; background-color: #fff; } #comments-experimental .comment a { text-decoration: none; border-bottom: 1px dotted #666666; } #comments-experimental .comment:hover a { color: #333; border-bottom: 1px solid #666; } #comments-experimental .comment .comment-footer, #comments-experimental .comment .comment-content { margin-right: 25px; margin-left: 25px; margin-bottom: 15px; } #comments-experimental .comment .comment-header { font-size: 16px; margin: 5px auto 5px 10px; text-shadow: #99A 2px 2px 1px #66F; color: #666; } #comments .comment-header { display: none; } #comments .comment-footer-experimental { display: none; } #comments-experimental .comment-footer { display: none; } でぃべろっぱーず・さいど: コメントの保留

コメントを受け付けました。

コメントを受け付けました。受け付けたコメントは、ブログの管理者の承認のため保留されています。

エントリーのページに戻る