[notTech]勤め続けることが期待されているという感覚

前回のエントリで書いたピープルウエアの中で、「これは!」と思った箇所を2つ記録しておく。

「品質第一、ただし時間さえ許せば」という政策の下では、作る人が全く意識しないのに、自然に品質の良いものができることは絶対にありえない。
ピープルウエア P27より引用

退職が次の退職を呼び、その影響は深く静かに潜行する。従業員が長く居付かなければ、研修に金を遣うのは意味がない。企業が社員への投資を全くやらないので、会社を変わることを何とも思わなくなる。(中略)企業が従業員の優秀さを認めないという印象は、個人として評価されていないという感じを従業員に抱かせる。同僚が次から次へと辞めていくと、翌年まで辞めないでいたら、何か無能扱いされているように思う。
ピープルウエア P141より引用

特に後者は、学生の時に読んだら通り過ぎていた箇所かも知れないが、今は酷く納得できた。
逆に「ずっと勤め続けることが期待されている」という感覚があれば、従業員は長く勤めようとする。

この本はきっと繰り返し繰り返し読むことになると思う。

ハードウェアでもソフトウェアでもなく、ピープルウェア。
標語を考えたり、壁に何か貼れば解決すると思わずに、理解しようとする継続的な努力がきっと必要になる。

帰ってくるべき原点になるから、やっぱり本は買って読むもの、私にとってはね。

テーマ : システム開発
ジャンル : コンピュータ

[notTech]読了まであと30分。(目分量)

今日はピープルウェアを読んでいる。
これは私が読むよりも、どちらかと言うと会社の事務的な部分を担うスタッフが読むべき本ではないか?

ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵
(2001/11/26)
トム・デマルコ、ティモシー・リスター 他

商品詳細を見る


副題がダサいのが難ですが、こちらも良本。
デッドラインが2時間で読了出来たことを考えると、夢中になって読める度合いは低いかも知れない。
夢中になって読むというよりも、あまりに痛むので時折左胸や耳の辺りを押さえながら読む感じ、頭を使うべきところで体を使って、褒められると思ったらしらっと全部見抜かれていたような恥ずかしさを覚えます。

何も感じないよりはましだ、と自分に言い聞かせ、嫌な汗と浮いてきた涙を拭いながら読み進める。
読了まであと30分。(目分量)

テーマ : 日記・日誌
ジャンル : コンピュータ

[notTech]Pluto

一人で考えごとがしたくて、会社を出てからなんとなく東京タワーを目指して歩いた。
お城のように、見えているのに中々近づけない。
求めている答えと同じだな。

定時過ぎに上がったので、終電まで時間はたっぷりとある。
あてどなく歩いても、メトロが発達した街なら15分も歩けば何処かしらの駅に辿り着ける。
迷子になっても構わない。
気持ちが迷子なんだから、いっそ物理的にも迷子になった方が、清々しく感じられるかも知れないくらいだ。

見知らぬ大使館の前でお巡りさんに挨拶されて、挨拶を返す。
真っ暗な道とオレンジに輝く東京タワー、芝公園、立ち止まったまま動かないひと、腕を組んで嬉しそうに歩いていくひとたち、御成門、さびれた中華屋、賑やかな道、強いライト、インカムをつけた黒服、厚いビニールで覆われたお店の入り口、新橋、知らない広場、石畳の水溜り、銀座に着くまで丁度2時間。
そんな長時間歩くための靴じゃないから、時々足首をひねって転びそうになりながら、一人でずっと考えごとをしていた。

自分の無力さを感じるのは、大抵「もう何もかも遅い」ときになってからだ。
私に何が出来る?
答えは大体分かっている、それを、それだけを考えるために冬の空気の中を一人で歩いている。

ランチの代わりに買ったデッドラインは帰りの電車で読み終わった。

評判どおり、「伝えたいと思っているであろう法則」と「話の筋道」が乖離していないし、こじつけてもいない、うんざりさせられることの多いこの手の本には珍しく良書だった。
15章と16章の法則が特に気に入っている。
買ったとき予感したように、明日には同じトム・デマルコの残りの本も買ってしまうだろう。

デッドライン―ソフト開発を成功に導く101の法則デッドライン―ソフト開発を成功に導く101の法則
(1999/03)
トム デマルコ

商品詳細を見る


Bjorkの歌声が聞こえる。
「役に立つ」なんて下らない目盛りだろうか?

テーマ : 日記・日誌
ジャンル : コンピュータ

[Ruby][PHP]PHP使いから見たRuby - HelloWorldから分かる8つのこと

このエントリは、「[Ruby][PHP]PHP使いから見たRuby - 先ずはHelloWorldしてみる」の続きです。

HelloWorldから分かる8つのこと、行ってみよー。

2. HelloWorldから分かること

2-1. コンパイル不要

  2-1-1. PHP
    ・インタプリタ言語(実行時に自動的にコンパイルされる言語)なので、
     意識的にコンパイルする必要はない
    ・但し、敢えて事前にコンパイルすることで速度を上げる方法もある
  2-1-2. Ruby
    ・PHPと同じインタプリタ言語なので、こちらもコンパイルは不要
    ・コンパイルの手間や時間は節約できるが、エラーの原因が探しにくい
    ・パフォーマンスが悪い面もある

2-2. クラスは作成しなくても良い

  2-2-1. PHP
    ・PHP4までは基本的に手続き型の言語、クラスは作らなくても良い
    ・PHP5以降はオブジェクト指向言語のように書くことも出来る
  2-2-2. Ruby
    ・RubyはPHPと異なり、オブジェクト指向型の言語
    ・でもクラスは作らなくても良く、手続き型のように書くことも出来る

2-3. 標準出力はputs

  2-3-1. PHP
    ・PHPの標準出力は「echo」や「print」
    ・echoとprintの細かい違いについては「[PHP]echoとprintの違いを再確認」を参照
  2-3-2. Ruby
    ・Rubyの標準出力は「puts」や「print」
    ・putsとprintの細かい違いについては、「[Ruby]putsとprintの挙動の違いを確かめてみる」を参照

2-4. 文字列は「'」か「"」で囲む

  2-4-1. PHP
    ・文字列は「'」で囲っても「"」で囲っても構わない
    ・「'」で囲うと式の展開が行われないなどの違いがある
    ・この辺りの詳細は「[PHP]文字列内の変数の括り」を参照
  2-4-2. Ruby
    ・文字列は「'」で囲っても「"」で囲っても構わない
    ・「'」で囲うと式展開が行われない点など、PHPと感覚はほぼ同じ
    ・式展開を行いたい場合は、「"」で文字列全体を囲み、式展開したい箇所を「#{ }」で囲む

2-5. 式ごとの「;」は不要

  2-5-1. PHP
    ・式の終わりごとに「;」が必要
    ・書かないとどこが式の終わりだか分からなくなったPHPに
     「Parse error: parse error, unexpected ...」などと怒られる
    ・「;」で区切られていれば、「$a = 1; $b = 2;」のように1行で書いても問題ない
    ・「?>」直前の最後の行だけは、「;」がなくても大丈夫
  2-5-2. Ruby
    ・PHPとは異なり、式ごとの「;」は不要
    ・「;」の代わりに「改行」がその式の終わりを示す

2-6. ファイル名は自由

  2-6-1. PHP
    ・ファイル名は自由、拡張子は.php
  2-6-2. Ruby
    ・ファイル名は自由、拡張子は.rb

2-7. 開始と終了の宣言はない

  2-7-1. PHP
    ・最初と最後を「<?php ?>」で囲う
  2-7-2. Ruby
    ・ファイルの最初から最後までがソースなので、特に何かで囲う必要はない
    ・もしくは「__END__」という行を読み込んだ時点で終了となるので、
     その次の行以降に何か別のことを書いても構わない

2-8. 実行コマンドはruby

  2-8-1. PHP
    ・phpコマンドで、引数にファイル名を与えてやれば実行できる
  2-8-2. Ruby
    ・rubyコマンドで、引数にファイル名を与えてやれば実行できる

比較しながら書くって難しいな、でもこうして書くことで新しい発見もある。
なので、また次のエントリに続きます。

テーマ : PHP
ジャンル : コンピュータ

[Ruby][PHP]PHP使いから見たRuby - 先ずはHelloWorldしてみる

先日参加した「イケテルRails勉強会」で受けた「Java使いから見たRuby」が素晴らしかった。

以前働いていた職場で、信念のようにずっと思い続けていたことがある。
「私はここに遊びに来て、親切にしてもらい、幸せをたくさんもらった。
 だからその親切や幸せを増やして、また誰かに渡してあげたい」
RBC(RubyBuisinessCommons)に参加していて、その気持ちを思い出した。

RBCの勉強会で、Rubyは面白いって教えてもらった。
じゃあ私は、その「面白い」をもっと増やして誰かに伝えていこう。
今度は「Java使い」じゃなくて、「PHP使い」にRubyの面白さを伝えてみよう。
PHP使いの視点から、「それPHPで言うと何?」という切り口でRubyを説明してみたら、分かりやすいんじゃないかな?

これはそんな気持ちから生まれたエントリです。

という訳で、先ずは「Hello World」から行ってみよー!

1. HelloWorld

  1-1. PHP
    ・こんなテキストファイルを作り、sample1.phpという名前で保存
      <?php
        echo 'Hello World';
      ?>
    ・コマンドラインで「php sample1.php」を実行する

  1-2. Ruby
    ・こんなテキストファイルを作り、sample1.rbという名前で保存
      puts 'Hello World'
    ・コマンドラインで「ruby sample1.rb」を実行する

次回は、このHelloWorldから分かる8つのことを説明します。
たったこれだけのHelloWorldから8つも分かることがあるという不思議。

テーマ : PHP
ジャンル : コンピュータ

[Ruby]putsとprintの挙動の違いを確かめてみる

この話はRuby 1.8.6を前提としています。

先日「[PHP]echoとprintの違いを再確認」というエントリで、echoとprintの違いを確認したばかりですが、折角なのでRubyのputsとprintの違いも確認してみようと思います。

・どちらもRubyの組み込み関数

・括弧で括っても括らなくても使える ※注釈1
  ○ puts 'hoge';
  ○ print 'hoge';
  ○ puts ('hoge');
  ○ print ('hoge');

・どちらも返り値は常に「nil」を返す

・どちらも複数のパラメータを渡せる
  ○ puts 'hoge', a, 'fuga'
  ○ print 'hoge', a, 'fuga'
  ○ puts ('hoge', a, 'fuga')
  ○ print ('hoge', a, 'fuga')

・putsのみ引数を出力した後、続けて改行を出力する

  ▼「puts 'aaaa', 'bbbb', 'cccc'」の実行結果
    ----------------------------------------
    aaaa
    bbbb
    cccc

  ▼「print 'aaaa', 'bbbb', 'cccc'」の実行結果
    ----------------------------------------
    aaaabbbbcccc

・末尾が改行(\n)で終わっている引数に対して、printは末尾の改行を出力するが、putsは末尾の改行を出力しない

  ▼「puts "aaa\nbbb\nccc\n", 'ddd', 'eee'」の実行結果
    ----------------------------------------
    aaa
    bbb
    ccc
    ddd
    eee
   (aaaとbbbの後ろの\nは出力されているが、cccの後の\nが出力されていない)

  ▼「print "aaa\nbbb\nccc\n", 'ddd', 'eee'」の実行結果
    ----------------------------------------
    aaa
    bbb
    ccc
    dddeee
   (cccの後の\nも出力されている)

・ちなみに末尾に改行(\n)がたくさんあった場合も、「末尾の改行だけが出力されない」ことに変わりはありません

  ▼「puts "改行が後ろに3つあります\n\n\n"
    puts "空行は幾つありますか?"」の実行結果
    ----------------------------------------
    改行が後ろに3つあります


    空行は幾つありますか?
    (1つ目の\nと2つ目の\nが出力され、3つ目の\nは出力されず、
     そしてputsは引数を出力した後に続けて改行を出力するので空行が2行になる)

・文字列以外の引数を渡すと、printは先ずto_sメソッドで文字列に変換してから出力し、
 putsは先ずto_aryメソッドで配列に変換を試み、次にto_sメソッドで文字列に変換してから出力する

・どちらも引数にnilを渡すと、文字列の「nil」を出力する

・どちらも引数は省略可能
  ○ puts ''  ⇒ 改行のみ出力される
  ○ puts   ⇒ 改行のみ出力される
  ○ print ''  ⇒ 何も出力されない
  ○ print  ⇒ 引数が与えられないと、変数「$_」の値を出力する
             「$_」は最後にgetsまたはreadlineで読み込んだ文字列を保持しており、
             何も読み込んでいない場合はnilを返す

  ▼「print; puts '名前を入力してください'; name = gets.chomp; print」の実行結果
    ----------------------------------------
    nil名前を入力してください
    hoge
    hoge
    (最初のprintはnilを返し、getsで文字列を読み込んだ後のprintは
     「$_」に保持していたhogeを返している)

※注釈1
Rubyのリファレンスには括弧がついた状態で書いてあるけど、本ではつけていない状態が多い。
暗黙的に「省略できる括弧は省略する」というポリシーが普及しているのだろうか?
この点をご存知の方がいらしたら教えてください。


かなり細かい話ですが、特に最後の「printは引数をつけないと$_を返す」などは、知らないままこの挙動に遭遇するとちょっと驚きます。
リファレンスって面白いなー、電車の時刻表を眺めて楽しそうにしている人と、そう大差ない感覚かも知れない。

ここでの情報は「オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル」を参考にしています。

putsのリファレンス
printのリファレンス
$_のリファレンス

併せてこちらもご覧頂き、間違いや不足している点がありましたら、コメントにてお知らせ頂ければと思います。

テーマ : プログラミング
ジャンル : コンピュータ

[GoogleAPI]iGoogle Theme Manager BETAを使ってみた

以前、iGoogle Themes APIで自分のテーマを作成した際に、GoogleグループアドバイスをくれたString氏がガジェットを公開したようです。

実際、iGoogleでこのガジェットを使ってみたのですが、
・Googleを通じて一般に公開されているテーマ
・「?skin=」のパラメータをつけて個人的に使っていたテーマ
のどちらも、テーマ名で瞬時に切り替えることができ、特に後者は毎度パラメータを付け直して使っていたことを考えると、感動的な使い心地です。

iGoogleThemeManagerBETA.png


こんな感じで簡単に切り替えが出来ます、便利ー。
iGoogleのテーマや、iGoogleThemesAPIを使っている人には、ぜひこちらのガジェットを使ってみることをお勧めします。

以下はString氏がGoogleグループに書いていたガジェットの紹介文、「New beta of Theme Manager gadget」の意訳。(間違っている所があるかも知れないので、原文を参照することをお勧めします)



もし関心を持ってくれる人がいれば、私はこの自分で作ったiGoogleテーママネージャガジェットの改訂版を今後リリースしていくつもりです。
このベータ版ガジェットは下記のURLからiGoogleに追加できます。

http://www.google.com/ig/adde?synd=open&source=ggyp&moduleurl=www.udell.name/inline_gadget.xml

新しいバージョンはiGoogleとの一体化を強化し、テーマごとに場所(ロケーション)の違いをサポートしたり、その他幾つかの良い点を含んでいます。
私がこのガジェットを広く普及させ始める前に、どなたかこのガジェットを試してフィードバックを頂ければ、感謝いたします。

String



技術を通じていなければ、恐らく一生関わることのなかった人のメッセージを、ここで私が翻訳している不思議。
不思議だな、人との関わりや繋がりによって私は今の状態の私で在る。

テーマ : Google関連
ジャンル : コンピュータ

[Ruby]第2回イケテルRails勉強会@東京に行って来た

2008年2月3日(日)に行われた「第2回イケテルRails勉強会@東京」に行って来た。

起きたら外は雪全開、電車動いてるかな、と思いつつ雪を踏みしめて茅場町へ。
前回の「第1回イケテルRails勉強会」に、誘われた参加をしたら非常に楽しかった(し、なんていうか素晴らしかった)ので、雪くらいではめげない。

Ruby 1.8.6
Ruby on Rails 2.0
JRuby 1.0.3
MySQL 4.1
NetBeans 6.0

を入れた状態で参加したのだが、先ずは環境設定の確認から始まり、
環境設定に激しくつまづく友人を横目に、RBC(RubyBusinessCommons)の紹介を聞き、恒例の円陣、私の中で今回最もイケテル!と思った「Java使いから見たRuby」、本編である「カレンダーアプリを作る」、途中で「Rubyで学ぶ はじめてオブジェクト指向」、さらに懇親会の中でも「はじめてのプラグイン」・・・・・と盛りだくさんな内容でした。

特にJava使いから見たRubyはステキだった!

技術の友人と話していて、よく出るフレーズが「それPHPで言うと○○みたいな感じ?」とか、「Javaにはそれに似た概念ある?何に似てる?」みたいな「○○で言うと」という表現。
知りたかったことが見事にまとめられていて感嘆。
ああいう素晴らしい発表がしてみたいものなのだー。

テーマ : プログラミング
ジャンル : コンピュータ

[PHP]echoとprintの違いを再確認

この話はPHP 4, PHP 5を前提としています。

ずっと曖昧だったechoとprintの違い。
結構「違いはない」みたいに言い切っているサイトも少なくないけれど、違いはあるようだ。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

・どちらも厳密に言えば関数ではなく言語構造
・なのでどちらも引数を括弧で括る必要はない(括弧で括っても使える)
  ○ echo 'hoge';
  ○ print 'hoge';
  ○ echo ('hoge');
  ○ print ('hoge');
・echoは戻り値を返さないが、printは常に「1」を返す
  ○ $printResult = print 'hoge';
    ($printResultには1が入る)
  × $echoResult = echo 'hoge';
    (Parse error: parse error, unexpected T_ECHOで実行できない)
・戻り値を返さない故にechoはprintと比べて僅かに早い
 (ごく僅かに、だけどそれだけを理由にechoを選ぶべきではない)
・echoは括弧をつけない場合のみ、複数のパラメータを渡せる
  ○ echo 'hoge', $a, 'fuga';
  × print 'hoge', $a, 'fuga';
  × echo ('hoge', $a, 'fuga');
  × print ('hoge', $a, 'fuga');

ちょっとすっきり、やはり何を差し置いても先ずはリファレンスだね。

テーマ : プログラミング
ジャンル : コンピュータ

[notTech]メソッドでさえ

「returnを書かぬメソッドでさえ、返り値にfalseを寄越すというのに」

こういうこと書くときは、大体その後ろには

「お前ときたら(以下説教)」

が続く訳です。
ちなみにreturnを明示的に書かないと、falseを返してくるのはPHPです。

テーマ : 日記・日誌
ジャンル : コンピュータ

[Ruby]try ruby!

最近、try ruby!で遊んでいる。
あっという間に時間が過ぎるし、気付いたら色んなメソッドの使い方が分かってる。
こんな楽しいチュートリアルならいつまででもやってるのに!

テーマ : システム開発
ジャンル : コンピュータ

[GoogleAPI]iGoogle Themes APIで自分のテーマを作ってみた

Google,iGoogle用にオリジナルのテーマが作成できるAPIを公開:ITpro
という記事を見て、面白そうだったので自分だけのテーマを作ってみた。

WebAPIと聞くと「プログラムの中で、Googleから提供されてるこのメソッドを呼び出して・・・」と身構えてしまうかもしれないけれど、方法は意外と簡単。

1. リファレンスで指定されたとおりにXMLファイルを書く
2. Webサーバに置く
3. (もし持ってないなら)Googleのアカウントを取得してiGoogleにログイン
4. URLの後ろに「?skin=XMLファイルのURL」をつける

Googleがサンプルとして提供しているXMLファイルがあるので、そこを見てみると分かりやすいかもしれない。

http://www.google.co.jp/igにアクセスしたら、いつものiGoogleが表示される。
次にURLの後ろに「?skin=XMLファイルのURL」をくっつけた状態でアクセスしてみよう。

ちょっと長いけど、http://www.google.com/ig?skin=http://gadget-doc-examples.googlecode.com/svn/trunk/themes/theme_simple.xmlを開いてみる、さっきとおなじiGoogleに「skin=」というパラメータをくっ付けただけなのに・・・・・・背景とGoogleロゴの色が変わったー。

目に見える変化は楽しいし、嬉しい。
じゃあ自分のXMLファイルを作ってみよーうー、と勢い込んで作ってみた。

作るも何もiGoogle Themes APIのHOMEにある"How do I start?"に書いてある通り、例を見てデベロッパー向けガイドを読んで、必要に応じてリファレンスを参照して色々直すだけです。

とはいえリファレンスは英語のままなので、「XMLファイルにコメントの形式でリファレンスの日本語訳をつけたもの」を以下にざっくり並べておきます。
リファレンスを0から10まで訳したありませんし、解釈の間違っているものがあるかも知れません。上手くいかないときはぜひ元のリファレンスも参照して下さい。
ついでにコメントで間違いや不足を教えていただけると嬉しいです。

■XMLファイルの書き方の例

<?xml version="1.0" encoding="UTF-8" ?>
<ConfigMaps>

 <!-- どんな時間も常に適用されるスキン -->
 <ConfigMap type="Skin">
  <!-- テーマ名(テーマ一覧で表示される), 0-30文字 -->
  <Meta name="title">HogeTheme</Meta>
  <!-- テーマの説明, 0-300文字 -->
  <Meta name="description">Tis the Theme of Hoge</Meta>
  <!-- 作者名(テーマ一覧で表示される), 0-50文字 -->
  <Meta name="author">mochikoAsTech</Meta>
  <!-- 作者のEメールアドレス(Googleやユーザからのコンタクト用), 0-100文字で@必須 -->
  <Meta name="author_email">myMailAddress@mail.ne.jp</Meta>
  <!-- 作者の所在地, 0-100文字 -->
  <Meta name="author_location">Japan</Meta>
  <!-- サムネイル(410px×70px)のURL(FQDN), png, gif, jpgのどれか -->
  <Meta name="thumbnail.url">http://hoge.com/image/thumbnail.png</Meta>
  <!-- スクリーンショット(680px×116px)のURL(FQDN), png, gif, jpgのどれか -->
  <Meta name="Screenshot.url">http://hoge.com/image/screenshot.png</Meta>

  <!-- ヘッダの背景色, 画像がない場合や透過画像の背景に表示される -->
  <!-- 指定方法は3種類, #xxxxxx, RGB(x,x,x), もしくは下記の色名(以下「色名」と書いてあるものは全てこれと同様) -->
  <!-- aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, or yellow -->
  <Attribute name="header.background_color">purple</Attribute>
  <!-- ヘッダ画像(640px×175px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="header.tile_image.url">http://hoge.com/image/header.png</Attribute>

  <!-- ヘッダリンク色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="header.link_color">white</Attribute>
  <!-- ヘッダテキスト色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="header.text_color">white</Attribute>

  <!-- iGoogleのヘッダロゴ, 28種類から選択 -->
  <!-- http://code.google.com/apis/themes/docs/reference.html#Ref_Logos -->
  <Attribute name="header.logo">beveled_white</Attribute>

  <!-- タブのボーダー色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.tab.border_color">silver</Attribute>
  <!-- 選択タブの背景色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.tab.selected.background_color">purple</Attribute>
  <!-- 選択タブの文字色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.tab.selected.text_color">white</Attribute>
  <!-- 非選択タブの背景色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.tab.unselected.background_color">purple</Attribute>
  <!-- 非選択タブの文字色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.tab.unselected.text_color">white</Attribute>
  <!-- ガジェットエリアのボーダー色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.border_color">silver</Attribute>
  <!-- ガジェットエリアのタイトルの背景色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.gadget.header.background_color">white</Attribute>
  <!-- ガジェットエリアのタイトルの文字色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.gadget.header.text_color">white</Attribute>
  <!-- ガジェットエリアのガジェットのボーダー色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.gadget.border_color">silver</Attribute>
  <!-- ガジェットエリアのリンク色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="gadget_area.gadget.body.link_color">white</Attribute>

  <!-- 選択タブのメニューアイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.menu_icon.image.url">http://hoge.com/image/01.png</Attribute>
  <!-- ガジェットのメニューアイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.menu_icon.hover_image.url">http://hoge.com/image/01.png</Attribute>
  <!-- ガジェットの削除アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.delete_icon.image.url">http://hoge.com/image/03.png</Attribute>
  <!-- マウスオーバー時のガジェットの削除アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.delete_icon.hover_image.url">http://hoge.com/image/04.png</Attribute>
  <!-- ガジェットの折畳アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.collapse_icon.image.url">http://hoge.com/image/05.png</Attribute>
  <!-- マウスオーバー時のガジェットの折畳アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.collapse_icon.hover_image.url">http://hoge.com/image/06.png</Attribute>
  <!-- ガジェットの展開アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.expand_icon.image.url">http://hoge.com/image/07.png</Attribute>
  <!-- マウスオーバー時のガジェットの展開アイコン(12px×12px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="gadget_area.expand_icon.hover_image.url">http://hoge.com/image/08.png</Attribute>

  <!-- フッタの背景色, 画像がない場合や透過画像の背景に表示される -->
  <Attribute name="footer.background_color">purple</Attribute>
  <!-- フッタリンク色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="footer.link_color">white</Attribute>
  <!-- フッタテキスト色, #xxxxxx, RGB(x,x,x), もしくは色名 -->
  <Attribute name="footer.text_color">white</Attribute>
  <!-- フッタ画像(640px×140px)のURL(FQDN), png, gif, jpgのどれか -->
  <Attribute name="footer.center_image.url">http://hoge.com/image/footer.png</Attribute>
  <!-- 作成者のロゴ画像(100px×50px)のURL(FQDN), png, gif, jpgのどれか -->
  <!-- リファレンスだと先頭にfooter.がついているがfooter.つけてると出ない -->
  <Attribute name="attribution.image.url">http://hoge.com/image/auther.png</Attribute>

 </ConfigMap>
</ConfigMaps>

補足事項

元々のリファレンスに間違いが有ります
 「attribution.image.url」はリファンレンスだと、「footer.attribution.image.url」になっていますが、正しくは「attribution.image.url」です
 (Googleグループでも同じ指摘が出ていた)
・時間ごとにスキンを変更することが出来ますが、そちらはまだ試していないので上記のサンプル(兼日本語リファレンス)には含めていません。「<Trait name="TimeOfDay">8am-10am</Trait>」のような形で、分単位で指定可能です。(例えば5:15pm-5:20pmのように、一日の中で5分だけ見られる特別なスキンも用意できます)
・さらにリファレンスを読むと、お天気によってもスキンを変えられるようです。
 「A ConfigMap represents one fully-qualified skin. That is, it represents a skin with all attributes that apply to it (for example, Foo skin for Cloudy weather)」とあったのですが、残念ながらその部分の書き方が分かりません。ご存知の方は教えてください。
・完成した!このスキンは我ながら素晴らしいので、公開してみんなに使ってもらいたい!と思ったら、Submit iGoogle ThemesでXMLファイルのURLを登録して、公開することが可能です
 但し、公開する場合は「メタデータを全て含めなければならない」「フッタのattribution.image.url以外の場所に社名を入れてはならない」など色々制限事項がありますので、よくガイドラインを読み、十分テストをした上で公開するようにしましょう
FC2ホームページのように、画像に対する直リンクを禁止しているWebサーバを利用すると、ヘッダやフッタの画像が表示されないことがあります(というか表示されません)
 iGoogleにskinパラメータをつけて開くと、HTTPヘッダにリファラが含まれた状態で、画像を置いてあるサーバにリクエストが行くため、「外部ドメインから画像への直リンクだ」と見なされて、302で「この画像に対するアクセス権限がありません」というページに飛ばされてしまいます

iGoogleの画面をずっと開きっぱなしということはあんまりないかと思いますが、使ってみると検索の折々で意外と目につきます。
自分のiGoogle Themeを自分で作る、暫く色々試して楽しめそうです。

テーマ : Google関連
ジャンル : コンピュータ

プロフィール

Author:mochiko
前職は携帯コンテンツ会社のエンジニア、現在は独立系SIerで色々。
GenesisLightningTalksのお手伝いをしたり、気になる勉強会に参加したりしつつ、毎日本を読んで過ごしています。
どれだけ本を読んでいるのか、はライトニングトークの動画を見てもらえれば・・・。

テクノラティお気に入りに追加する
はてな
mixi
SlideShare
Ustream.TV
YouTube
Wassr

最近の記事
最近のコメント
最近のトラックバック
全記事表示リンク

全ての記事を表示する

月別アーカイブ
カテゴリー
mochikoAsTechCnt
ブログ内検索
RSSフィード