<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
   <channel>
      <title>plucore.log（プラコア ブログ）</title>
      <link>http://log.plucore.jp/</link>
      <description>株式会社 Plugin and Core のスタッフブログです。</description>
      <language>ja</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Thu, 21 Feb 2008 16:28:42 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/plucore" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="plucore" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
         <title>plucore.jp リニューアルにおいての変更点</title>
         <description><![CDATA[<p>今さらですが、今年から <a href="http://plucore.jp/" title="東京都日野市、八王子市、立川市でのホームページ作成、Web制作ならプラコアで。">plucore.jp</a> がリニューアルしました。以前のサイトは自分が入社する前にあったので、ほとんど手をつけていませんでしたが、今回のリニューアルは少し CTO に手伝ってもらいながらほぼ全てを自分で制作しました。</p>

<p>さて、今回のリニューアルに際し、いろいろと実験的にやってみました。</p>

<h3>画像に幅と高さを指定していない</h3>

<p>去年の半ばから、画像（img 要素）に幅（width 属性）と高さ（height 属性）は必要でない気がしてきて、どこかで試してみたい気持ちがあったので、これを期に plucore.jp は画像に一切幅と高さを指定していません。なので <a href="http://openlab.ring.gr.jp/k16/htmllint/htmllint.html">Another HTML-lint gateway</a> では軽微なエラーとして警告されますが、基本的には Valid なのでとりあえずは問題ないかと思ってます。</p>

<p>そもそもこの問題については <a href="http://webtech-walker.com/archive/2007/09/04115352.html">imgにwidthとheightを指定しない理由</a>と言う記事があり、これに関して少しだけ<a href="http://d.hatena.ne.jp/ysk_lucky-star/20070907/1189144372">自分なりに反応してみました</a>。</p>

<p>問題提起は上記記事の通り、IE では画像に幅と高さが指定されていると、画像が読み込まれない状態ではその領域が確保された状態で alt 属性値が表示されることになる。逆に指定されていないと alt 属性値の分だけ領域が確保されることになる。</p>

<p>ただし、これを優先させることによってレンダリングに負荷がかかるデメリットも存在する。これに関して思うところは、ケースバイケースで考えられると思います。<br />
画像を多用するような Web サイトでは幅と高さは指定した方がよいとは思います。<br />
逆に今回の plucore.jp のように、そこまで画像を使用していない場合は幅と高さを指定してもしなくてもよいと思います。</p>

<h3>div 厨じゃないけど div を多用</h3>

<p>無意味に、レイアウト用途で div 要素を使うのはよろしくない。だけどキチンと意味付けをして行けば、それはそれでよいと思っている。</p>

<p>右側カラム内を例にしてみます。</p>

<pre><code>&lt;div id=&quot;sidebar&quot;&gt;
  <span style="color:red;">&lt;div class=&quot;advertisement webService&quot;&gt;</span>
    &lt;h2&gt;&lt;img src=&quot;/common/image/common/sidebar/webservice.png&quot; alt=&quot;弊社運営Webサービス&quot; /&gt;&lt;/h2&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://makit.jp/&quot;&gt;&lt;img src=&quot;/common/image/common/sidebar/makit_off.png&quot; alt=&quot;商材を探せる。販路開拓ができる。商材情報サイト:Makit（メイキット）&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  <span style="color:red;">&lt;div class=&quot;advertisement blog&quot;&gt;</span>
    &lt;h2&gt;&lt;img src=&quot;/common/image/common/sidebar/blog.png&quot; alt=&quot;Blog&quot; /&gt;&lt;/h2&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;http://log.plucore.jp/&quot;&gt;&lt;img src=&quot;/common/image/common/sidebar/plucorelog_off.png&quot; alt=&quot;plucore.log&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://plucore.jp/column/&quot;&gt;&lt;img src=&quot;/common/image/common/sidebar/knowhow_off.png&quot; alt=&quot;中小企業のためのWeb活用ノウハウ&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  <span style="color:red;">&lt;div class=&quot;advertisement inquiry&quot;&gt;</span>
    &lt;h2&gt;&lt;img src=&quot;/common/image/common/sidebar/inquiry.png&quot; alt=&quot;お問い合わせ&quot; /&gt;&lt;/h2&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://plucore.jp/contact/us.fcgi&quot;&gt;&lt;img src=&quot;/common/image/common/sidebar/contact.png&quot; alt=&quot;お電話でのお問い合わせは042-591-2421まで&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</code></pre>

<p>div id=&quot;sidebar&quot; 内にある div 要素にはスタイルは定義されていません。それなのに div 要素を定義した理由は以下の3つ。</p>

<ol>
  <li>見出しとバナーがセットなので、div 要素の class 属性でそれが何かを定義</li>
  <li>将来性を考え、Web サイトの構成要素を抜き出すことが容易な形にしたかった</li>
  <li>あまりよろしくないが、今後リニューアル時に何かしらのスタイルを定義する際に利用</li>
</ol>

<p>複雑にならず、だけど拡張可能な形にするものとして div 要素に class 属性を与えてそれに名前を与えることで、今後”何かで”利用できると信じています。つまり予定が今のところないわけですが。<br />
これの延長線上として <a href="http://microformats.org/">microformats</a> がありますが、今のところこれの対応は考えていません。面白い構想だと思いますが、結局ただの草の根的な活動だけで終わるのではないかと思ってしまいます。状況は追いかけてはいますが、個人的にも対応させることはないと思います。</p>

<p>2つ目は XPath で抜き出せるので、どうとでも応用が利きます。これもまた予定がないです。。。</p>

<p>div 要素をレイアウト目的で利用している人が多いですが、もっとセマンティックな方向で使ってみると何かが見えてくると思います。自分自身まだそこまで見えているわけでもないですし、理解もしていないですが、少しずつ勉強していくつもりです。</p>

<hr />

<p>次回は実際の作業上のお話です。Dreamweaver のテンプレートや SSI をどう使い、効率的にできるかです。<br />
意外と知られていない（？）Dreamweaver テンプレートのあんなことやこんなことを紹介したいと思います。</p>]]></description>
         <link>http://log.plucore.jp/2008/02/21/plucorejp.html</link>
         <guid>http://log.plucore.jp/2008/02/21/plucorejp.html</guid>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">html</category>
        
         <pubDate>Thu, 21 Feb 2008 16:28:42 +0900</pubDate>
      </item>
            <item>
         <title>フォーム関連のおさらい</title>
         <description><![CDATA[<p>先日、<a href="http://www.justsayhi.com/bb/html_quiz">How Many HTML Elements Can You Name in 5 Minutes?</a>（5分間にいくつ HTML の要素を言えますか？）をやったのですが、悲惨なことにフォームに関する要素が1つも出なかったのがあまりにも凹んだので、戒めを込めてフォーム関連の全要素のおさらいをします。</p>

<p>ちなみに上記のクイズの結果は<a href="http://www.double-team.org/2007/09/26/000046/" title="HTML と CSS の要素とプロパティ、それぞれいくつ思い出せますか？ - double-team.org">個人ブログ</a>に掲載されているのでそちらを参照。<br />
非推奨要素も答えに入っているのがちょっと卑怯だと思ったり思わなかったり。</p>

<h3>XHTML 1.0 で定義されているフォーム関連要素一覧</h3>

<p>まずは XHTML 1.0 で何が定義されているかを確認。ちなみに非推奨要素も含めます。</p>

<ul>
  <li>form</li>
  <li>input</li>
  <li>textarea</li>
  <li>button</li>
  <li>select</li>
  <li>option</li>
  <li>optgroup</li>
  <li>label</li>
  <li>fieldset</li>
  <li>legend</li>
  <li>isindex（非推奨要素）</li>
</ul>

<p>上記が XHTML 1.0 で定義されているフォーム関連要素の一覧です。<br />
各要素のサンプルページを設けましたのでそちらをご確認ください。</p>

<ul>
  <li><a href="/20070927/sample01.html">各フォーム関連要素サンプル</a></li>
</ul>

<p>思えばこれだけあります。主に使用する要素は form,input,textarea,select,option,label 各要素でしょうか。たまに fieldset,legend 要素を使うことがあります。<br />
逆に使う機会がないのが button,optgroup 要素で、button 要素はともかく、optgroup 要素は仕事上だと使うのを躊躇います。個人的には積極的に使っていきたいのですが、世間ではただの option 要素のみで構成されているフォームが大半を占めているので、普段と若干違う挙動をする optgroup 要素はユーザに混乱を招くのではないかと思っているからです。<br />
これが optgroup 要素が一般的になればいいんですけどね。この要素自体の存在を知らない制作者が多すぎるのが問題なんでしょうか。</p>

<p>とは言え UA 側の実装がヘボすぎる点も考慮すべきかもしれません。IE・Firefox・Opera・Safari 共に全て同じ表示をされます。まだ MacIE の方が optgroup 要素の（完璧ではないにしろ）理想的な挙動であると個人的に思います。<br />
下記にスクリーンショットを用意しましたので、確認してみると分かると思います。</p>

<ul>
  <li><a href="/20070927/winie.png">WinIE 6</a></li>
  <li><a href="/20070927/firefox.png">Firefox 2</a></li>
  <li><a href="/20070927/opera.png">Opera 9</a></li>
  <li><a href="/20070927/safari.png">Safari 2</a></li>
  <li><a href="/20070927/macie.png">MacIE 5</a></li>
</ul>

<p>ちなみに isindex 要素は IE 非対応のようで。<br />
なお、isindex 要素は Transitional,Frameset のみで定義されています。Strict では使用出来ません。isindex 要素を使用せず、input 要素を利用しましょう。</p>

<p>Strict DTD の場合、fieldset 要素以外は form 要素の直接の子要素として配置することが出来ません。必ずブロック要素内にフォーム関連要素を含めるようにしましょう。<br />
また、form 要素のネストはいかなる DTD であっても禁止されています。<br />
label 要素は IE だと for 属性で部品と紐づけなければ一部の要素に対して期待した動作をしてくれないのが悲しい限りです。</p>

<p>とここまででとりあえずフォーム関連のまとめです。isindex 要素は使わないようにしましょう。（知られてもいないでしょうが）</p>]]></description>
         <link>http://log.plucore.jp/2007/09/28/form-list.html</link>
         <guid>http://log.plucore.jp/2007/09/28/form-list.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">xhtml</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">html</category>
        
         <pubDate>Fri, 28 Sep 2007 17:12:25 +0900</pubDate>
      </item>
            <item>
         <title>スタイルシートを提供する意味</title>
         <description><![CDATA[<p>と言うタイトルですが、入り口はちょっと別違うところから入ります。</p>

<p>Web サイトを制作する上で障害となるのが対象とするブラウザの線引きです。最近はだいたいどの Web サイトも</p>

<dl>
  <dt>Windows</dt>
  <dd>
    <ul>
      <li>Internet Explorer 6 以降</li>
      <li>Mozilla Firefox 1.5 以降</li>
      <li>Opera 8 以降</li>
    </ul>
  </dd>
  <dt>Mac OS</dt>
  <dd>
    <ul>
      <li>Mozilla Firefox 1.5 以降</li>
      <li>Safari 2.0 以降</li>
      <li>Opera 8 以降</li>
    </ul>
  </dd>
</dl>

<p>こんな感じだと思います。多少のバージョンの差異はあると思いますが。<br />
そしてすでに Netscape は黒歴史と化している現状で、これに対応するにしても良くて Netscape 6 が妥当なところだと思います。それ以前の、特に Netscape Navigator 4.x は技術的にも対応するのが不可能です。（他のブラウザと同じレイアウトデザインにすると言う条件であればですが）</p>

<p>自分の中で対応ブラウザの線引きは実装の状況で判断してます。ですので、どんなに古いブラウザでも良くて Internet Explorer 5 か Netscape 6 が限界です。</p>

<p>ただし、全て同じ見た目にする必要性があるかと言ったら疑問でもあります。構造と表現の分離の観点から、1つの文書で複数の見た目を保持することは何らおかしなことではないですし。<br />
そもそもスタイルシートの仕様では出力メディアに応じて振る舞いを変えることが可能となっています。それでもやはり様々な端末の実装が”なってない”のが現実です。<br />
正直モバイルのフルブラウザがメディアタイプの screen 準拠になっているのがどうなのかと。handheld を最優先で、なければ screen を選択するのはアリだと思いますが、handheld さえも切り捨てられているのが納得いきません。</p>

<p>モバイルの話はともかく、技術的に画一的なレイアウトデザインを表現するのはナンセンスです。<br />
究極的な話をすれば、我々のような制作者側が提供する見た目の振る舞いはあくまでお客様からの要望を踏まえたブランディングやユーザビリティを提供し、それ以上はユーザが独自にスタイルシートを用いて自身が望む可読性を確保すべきだと思います。<br />
とは言え、それが様々な要因によって高いハードルであると思います。</p>

<p>未だユーザスタイルシートに関するサポートや、そもそもスタイルシート自体のサポートが弱いブラウザがあることによって、そのことの認知が低いですが、ユーザスタイルシートがあることをブラウザベンダだけでなく、制作者側でもアピールすべきだと思います。</p>

<p>ただやはり、ユーザスタイルシートも含めて、スタイルシートが取っ付きにくいのと、理解しづらいのが最大の難点ですが。</p>]]></description>
         <link>http://log.plucore.jp/2007/09/13/browser-corresponds.html</link>
         <guid>http://log.plucore.jp/2007/09/13/browser-corresponds.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">browser</category>
                  <category domain="http://www.sixapart.com/ns/types#category">css</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">browser</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">css</category>
        
         <pubDate>Thu, 13 Sep 2007 11:29:30 +0900</pubDate>
      </item>
            <item>
         <title>中小企業向け 成果を出すWebサイトの基本</title>
         <description><![CDATA[<p>これからしばらくの間、「中小企業向け 成果を出すWebサイトの基本」ということで、中小企業におけるWebの有効な使い方について書いていきます。<br />
これからWebを活用していこうと思っている方、現状のWebサイトに不満のある方の参考になれば幸いです。</p>

<h3>Webサイトを使って何ができるのか？</h3>

<p>Webサイトは、「人を集める」「人に伝える」「人に行動してもらう」ということができます。<br />
たとえば、「お客様に最新の商品情報を伝え、資料請求をしてもらう」とか「既存のお客様（もしくは見込み顧客）に情報を定期的に伝え、問い合わせをもらう」など、何かを伝えて行動を促すことが、Webサイトが得意としていることです。<br />
「人を集める」ための手段としては、インターネット上の広告や検索エンジン、紙媒体広告との連動や営業活動との連動など、様々な手段があります。<br />
Webサイトを活用していく上で、最初のハードルは「人を集めること」ですが、その手段は豊富であり、成功と失敗を見極めることも比較的容易です。それなりの努力をすれば、それなりの成果が得られることが、Webサイトにおける集客の魅力であると思います。</p>

<h3>Webサイトにおける成果とは？</h3>

<p>この連載では、「成果を出すWebサイト」について書いていきますが、そもそも成果とはなんでしょうか？<br />
もちろん、それぞれの会社で目指す目的は異なっているので、その目的を達成することが「成果を出すこと」だと言えます。<br />
ただ、そこで注意しなければならないことは、「どの程度の成果が出ているのかを測定できること」が重要だということです。<br />
成果を測定することができなければ、Webサイトの制作費や広告費などの投資に対して、費用対効果を把握することができません。費用対効果を把握しながら、Webサイトを有効に活用していくためには、測定することが可能な成果を目標とすることが大切です。<br />
具体的に言えば、問い合わせ数、資料請求数、申し込み数、アクセス数、などの数値で評価できる目標を立てることが重要です。</p>

<h3>Webサイトにも数値目標を！</h3>

<p>どのような会社であっても売上目標や利益目標などの数値目標を立てて経営を行っています。営業活動においては、訪問件数や商談件数などの販売プロセスの中での目標と最終的な売上目標を数値目標として立てることが常識です。<br />
それなのに、Webサイトには数値目標がない企業が意外に多いのではないでしょうか？<br />
特にBtoB のビジネスをされている企業では、Webサイトに数値目標がない企業が多いと思います。これは、会社のWebサイトが直接的に売上につながるケースが少ない（最終的には営業マンが訪問して仕事を取るため）ということが原因のひとつだと思います。</p>

<p>たしかに、BtoB企業のコーポレートサイトが、直接的に売上につながることは少ないと思います。しかしながら、単にWebサイトを置いておくだけではなく、積極的に活用していく意識を持てば、普段の営業活動と連動させることで商談の糸口を作ったり、既存顧客との関係強化を図ったりすることは可能です。<br />
そのような観点でWebサイトを活用するためには、アクセス数やユーザの訪問件数などの目標を立てることは、非常に有効であると考えます。<br />
目標があって初めて、目標達成のための活動やサイトの内容を明確にすることができるからです。</p>

<p>「成果を出すWebサイト」を作り、運営していくための基本は、「数値目標を立て、費用対効果を把握しながら、目標達成のための適切な行動を行うこと」であると考えています。<br />
次回からこのための方法論について書いていこうと思います。次回は、「妥当な数値目標の考え方」というテーマを書く予定です。また読んでいただければ幸いです。</p>]]></description>
         <link>http://log.plucore.jp/2007/09/11/furuitful_website.html</link>
         <guid>http://log.plucore.jp/2007/09/11/furuitful_website.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">web</category>
        
        
         <pubDate>Tue, 11 Sep 2007 18:13:19 +0900</pubDate>
      </item>
            <item>
         <title>emacs の基本操作一覧</title>
         <description><![CDATA[<p>今月頭に taro さんに教わりながら MacBook に開発環境を整備するのと同時に emacs を入れました。<br />
<a href="http://log.plucore.jp/2007/07/03/work-environment.html">以前にも書きました</a>が、この特異なキーバインドは敬遠してました。過去形です。むしろ今はこっちの方が楽ですｗ</p>

<p>とまあ早くも順応したわけですが、それでもたまに操作を間違ったりします。ちょっち本格的に覚えるためにもここに残しておきます。</p>

<dl>
  <dt>表記の例</dt>
  <dd>C-p：Ctrl+p</dd>
  <dd>M-v：Alt+v</dd>
</dl>

<p>注：M キーを Alt と表記しましたが、これはメタキーなので Esc でも良いです。</p>

<table width="100%" summary="emacs の動作とその操作" style="width: 20em;">
  <tr>
    <th>上へ移動</th>
    <td>C-p</td>
  </tr>
  <tr>
    <th>右へ移動</th>
    <td>C-f</td>
  </tr>
  <tr>
    <th>下へ移動</th>
    <td>C-n</td>
  </tr>
  <tr>
    <th>左へ移動</th>
    <td>C-b</td>
  </tr>
  <tr>
    <th>行頭へ移動</th>
    <td>C-a</td>
  </tr>
  <tr>
    <th>行末へ移動</th>
    <td>C-e</td>
  </tr>
  <tr>
    <th>1画面進む</th>
    <td>C-v</td>
  </tr>
  <tr>
    <th>1画面戻る</th>
    <td>M-v</td>
  </tr>
  <tr>
    <th>カーソルの左の1文字を削除</th>
    <td>Del</td>
  </tr>
  <tr>
    <th>カーソルの右の1文字を削除</th>
    <td>C-d</td>
  </tr>
  <tr>
    <th>カーソルから行末まで削除</th>
    <td>C-k</td>
  </tr>
  <tr>
    <th>カーソル位置にマーク</th>
    <td>C-@</td>
  </tr>
  <tr>
    <th>選択範囲をコピー</th>
    <td>M-w</td>
  </tr>
  <tr>
    <th>ペースト</th>
    <td>C-y</td>
  </tr>
  <tr>
    <th>画面を縦に2分割</th>
    <td>C-x 2</td>
  </tr>
  <tr>
    <th>別画面にカーソルを移動</th>
    <td>C-o</td>
  </tr>
  <tr>
    <th>別画面にファイルを読み込む</th>
    <td>C-x 4 C-f</td>
  </tr>
  <tr>
    <th>別画面を消す</th>
    <td>C-x 1</td>
  </tr>
  <tr>
    <th>上書き保存</th>
    <td>C-x C-s</td>
  </tr>
  <tr>
    <th>ファイル名を指定して保存</th>
    <td>C-x C-w</td>
  </tr>
  <tr>
    <th>終了</th>
    <td>C-x C-c</td>
  </tr>
</table>

<p>これだけ覚えればだいたい問題ないと思ってます。と言うかこれ以外にほとんど使うことがない。。<br />
ちなみに1文字でも何か書いたら自動保存される設定になっているので、上書き保存を意識することは全くありません。<br />
（と言うよりこの辺の設定は全て taro さんのをそのまま引き継いだだけなので、どこをどうしたらそれが可能になるのかとか全然知らないと言うオチ。多分ググれば出ると思いますｗ）</p>]]></description>
         <link>http://log.plucore.jp/2007/08/30/emacs-commond-list.html</link>
         <guid>http://log.plucore.jp/2007/08/30/emacs-commond-list.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">tips</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">emacs</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">tips</category>
        
         <pubDate>Thu, 30 Aug 2007 19:44:29 +0900</pubDate>
      </item>
            <item>
         <title>Plam 0.08 リリースします</title>
         <description><![CDATA[<p>こうやって blog で出すと何かしら反応がもらえるのがよいですね。</p>

<p>と言うことで、<a href="http://d.hatena.ne.jp/ikasam_a/">id:ikasam_a</a> さんから Plam の end アクションの処理が冗長になってるとのご指摘をいただき修正してみました。<br />
（feedback ありがとうございました！）</p>

<p><a href="http://log.plucore.jp/archive/Plam-0.08.tar.gz">ファイルをダウンロード</a></p>

<p>それから、他にもいくつか。</p>

<ul>
  <li>メール送信時、TracFormat なリンクを取り除く部分が甘かったので修正した</li>
  <li>改行を [[br]] とするフィルタを用意して、入力されたとおりに出力するようにした</li>
  <ul>
    <li>本当は [[br]] を打ってもらえば良いんですが、そうするとメール送信時にそれを取り除く羽目になるなぁと思って、フィルタで解決するようにしました。</li>
  </ul>
  <li>MANIFEST ファイルがひどいことになっていて、0.03 〜 0.05 までの Plam の tar ボールが入ってしまってたので修正しました。<br />
  0.06 をダウンロードした方、ゴミが混ざっててすいません。</li>
</ul>

<p>やはり、My Ticket は CSV を引っ張ってきたいなぁと思うのですが、レポートの SQL によって項目の並びが変わってしまうのでどうしようか迷っているところです。<br />
ブランチを切って社内特化でもいいかなぁ。</p>

<p>ちなみにプラコアでタスク管理に使っている Trac は下記のように手を加えてチケットの期限の項目を作っています。</p>

<h3>trac.ini</h3>

<pre class="prettyprint">
[ticket-custom]
term = text
term.label = 期限
term.value = 2007/MM/DD
</pre>

<h3>MyTicket の SQL</h3>

<pre class="prettyprint">
SELECT p.value AS __color__,
   (CASE status WHEN 'assigned' THEN 'Assigned' ELSE 'Owned' END) AS __group__,
   id AS ticket,
   c.value AS 期限, summary, component, version, milestone,
   t.type AS type, priority, time AS created,
   changetime AS _changetime, description AS _description,
   reporter AS _reporter
  FROM ticket t, enum p
    LEFT OUTER JOIN ticket_custom c ON (t.id = c.ticket AND c.name = 'term')
  WHERE t.status IN ('new', 'assigned', 'reopened') 
AND p.name = t.priority AND p.type = 'priority' AND owner = '$USER'
  ORDER BY (status = 'assigned') DESC, p.value, milestone, t.type, time
</pre>
  
<h3>担当者別一覧</h3>

<p>ついでに担当者別一覧という新規のレポートも作っているので公開します。デフォルトでアサイン済みの担当者別チケット一覧があるのですが、アサインしていない一覧もあればいいと思って作りました。</p>

<p>人数が少ない故にできることかもしれませんね。</p>

<pre class="prettyprint">
SELECT p.value AS __color__,
   owner AS __group__,
   id AS ticket,
   c.value AS 期限,
   milestone,
   (CASE status WHEN 'assigned' THEN '* '||summary ELSE summary END) AS summary,
   component, t.type AS type, time AS created,
   changetime AS _changetime, description AS _description,
   reporter AS _reporter
  FROM ticket t,enum p
    LEFT OUTER JOIN ticket_custom c ON (t.id = c.ticket AND c.name = 'term')
  WHERE status IN ('new', 'assigned', 'reopened')
AND p.name=t.priority AND p.type='priority'
  ORDER BY owner, p.value, (status = 'assigned') DESC, c.value, milestone, t.type, time
</pre>
]]></description>
         <link>http://log.plucore.jp/2007/08/24/plam_008.html</link>
         <guid>http://log.plucore.jp/2007/08/24/plam_008.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">programming</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">catalyst</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">plam</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">trac</category>
        
         <pubDate>Fri, 24 Aug 2007 20:00:59 +0900</pubDate>
      </item>
            <item>
         <title>XHTML+CSS Slideshow Tool の仕組み</title>
         <description><![CDATA[<p><a href="http://www.double-team.org" title="double-team.org">個人ブログ</a>の方で <a href="http://www.double-team.org/xcst/" title="XHTML+CSS Slideshow Tool Ver 1.0">XHTML+CSS Slideshow Tool</a> を紹介しましたが、簡単にこっちでもお話しします。</p>

<h3>XHTML+CSS Slideshow Tool とは</h3>

<ul>
  <li><a href="http://www.double-team.org/xcst/">XHTML+CSS Slideshow Tool Ver 1.0 サンプル ファイル</a></li>
  <li><a href="http://www.double-team.org/xcst/sample.pdf">PDF 印刷したサンプル</a></li>
</ul>

<p>純粋な XHTML と CSS の組み合わせで <strong>PDF 印刷することを前提に</strong>作られたプレゼンテーションツールです。<br />
XHTML 文書の中身は <a href="http://meyerweb.com/eric/tools/s5/" title="S5:A Simple Standards-Based Slide Show System">S5</a> と似たような構造になっています（かなり単純化されてますが）。<br />
なので JavaScript によるエフェクトは一切ありません。個人的にそんなのはいらないと思っているし。</p>

<p>とまあそのままコピペですが、目的はあくまで PDF 印刷です。ブラウザ上で見ることも出来ないことはないですが、JavaScirpt を使ってどうこうしなければ、それこそ S5 のようなツールのようにしなければ少し難しいです。ページ送りとか。</p>

<h3>XHTML+CSS Slideshow Tool の XHTML 文書の中身</h3>

<p>別に XHTML でなければならないわけではないです。HTML 4.01 でも構いませんが、将来的の構想（そこまで壮大な話じゃないけど）では HTML より XHTML の方がよいので XHTML にしました。<br />
将来的な構想を考えれば XHTML よりも XML の方がよいですし、むしろそっちの方が現段階でも XSLT との組み合わせでやれば出来てしまう。だけどそれじゃちょっちどころかかなり敷居が高くなってしまうので XHTML を選択したと言う背景もあったりなかったり。<br />
（でも XML+XSLT の方が汎用性が高いからこっちの方がよかったり。XML+XSLT パターンのスライドショーツールも作ってみようかしらｗ）</p>

<p>それはともかく、このプレゼンテーションツールの基盤である XHTML 文書の中身ですが、以下のような構造文書になっています。

<ul>
  <li>html
    <ul>
      <li>head
        <ul>
          <li>title</li>
        </ul>
      </li>
      <li>body
        <ul>
          <li>div id=&quot;contents&quot;
            <ul>
              <li>div class=&quot;canvas&quot;
                <ul>
                  <li>h1</li>
                  <li>本文</li>
                </ul>
              </li>
            </ul>
          </li>
          <li>div id=&quot;footer&quot;</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<p>必要な要素はこれで事足ります。<br />
<code>div class=&quot;canvas&quot;</code>（以下キャンパス）がスライド1ページに該当するので、ページを分けたい場合はキャンパスを増やしていってください。</p>

<p>head 要素に profile 属性が指定されていますが、これは link 要素に <code>rel=&quot;made&quot;</code> のリンクタイプを記述しているためです。XHTML（だけじゃなく HTML 4.01 でもそうなんですが）では定義されていない値なので、プロファイルを指定してこの値を定義してあげなければならないためです。<br />
この辺の詳しい話は<a href="http://www.kanzaki.com/">神崎氏</a>の「<a href="http://www.kanzaki.com/works/2007/pub/0715dws.html">名前のウェブとXHTML文書のプロファイル</a>」を参考にしてください。</p>

<p>ちなみにスタイルシートは2つ読み込んでいます。</p>

<ul>
  <li>slide.css</li>
  <li>review.css</li>
</ul>

<dl>
  <dt>slide.css</dt>
  <dd>対象メディアは印刷・スクリーン<br />
      これがメイン。対象メディアにスクリーンを入れたのは多少なりともスタイルシートによるレイアウトを楽にするため。PDF 印刷を目的にしているので、スタイルシートを書く度に印刷プレビューを行うのは相当なまでのストレスになるので、ある程度ブラウザ上で見て、たまに印刷プレビューをして問題ないか確認するフローがベターだと思ったのでこうしました。</dd>
  <dt>review.css</dt>
  <dd>対象メディアはスクリーン<br />
      ブラウザ上で見るためだけのスタイルシート。本来ならば不要だけど、少しはこっちも気を配った方がいいと思ったので一応定義しました。スタイルシートファイルもあります。たいしたこと書いてないですが。</dd>
</dl>

<h3>スタイルシートの仕組み</h3>

<p>あまり中身を見せたくないって言うかリファクタリングなんてしてないんでかなり酷いことになってます。とは言え、今回はここが本題と言うかメインなので、やらないわけにいかないんですが。。</p>

<h4>YUI Fonts CSS の利用</h4>

<p>必須じゃないけどあると便利。なライブラリ。利用できるものは全て利用するｗ</p>

<h4>スライドのヘッダを実現するには</h4>

<p>自分の作ったスライドショーツールではプレゼンテーションのテーマ（タイトル）をヘッダに示していますが、人によってはスライドの見出しをヘッダに持ってくる人もいると思います。で、個人的に自分は前者なので今の設計では後者の手段は実現しづらいかもしれません。<br />
これは文書構造の問題です。スライド1ページに対して見出しは h1 要素なので、プレゼンテーションのテーマをそれより上位の見出しは存在しないのためです。もっとも、title 要素を上位として位置づけたのが今回のツールですが。少しこの辺は考えてみるつもりです。</p>

<p>それはともかく、このヘッダは title 要素を可視化させてヘッダとして利用してみました。</p>

<pre><code>head,
title {
    display: block;
}

title {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    padding: 1em 2em 1em 0;
    background: #ccc;
    text-align: right;
    font-size: 122%;
    font-weight: bold;
}</code></pre>

<p>まず head 要素と title 要素を可視化させるために display プロパティを使用します。head 要素以下のメタデータ等はただ単に見えないようになっているだけで、実際にはこうしてスタイルシートで可視化させることが可能です。この詳しい話は「<a href="http://www.double-team.org/2007/02/07/000034/" title="link 要素を可視化してみ - double-team.org">link 要素を可視化してみる</a>」を参考にしてください。</p>

<p>title 要素をヘッダとして利用するには全スライドに対して上方部分に固定させる必要があるため、<code>position: fixed;</code> を利用します。ちなみに position プロパティの fixed 値は Windows Internet Explorer 6 では未対応のため、この時点で対象ブラウザから外れます。</p>

<h4>フッタを下方部分に固定させる</h4>

<p>フッタもメタデータから出してもよかったのですが、これはこれで少し面倒だったので通常の要素で構成しました。</p>

<pre><code>div#footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 0.5em 1em;
    background: #ccc;
    line-height: 1;
    font-size: 14px;
    font-family: Arial,Helvetica,sans-serif;
    font-style: normal;
    font-weight: normal;
}

    div#footer p {
        font-size: 100%;
    }</code></pre>

<p>実はここで問題が発生しました。文字サイズがスライドの1ページと2ページ以降で変化するのです。上記では文字サイズを px 単位で指定していますが、当初は YUI の通りパーセント単位で指定していました。そうすると文字サイズが変化してしまったので絶対指定の px 単位にしました。まあ IE は対象ブラウザから外れているので問題ないかとｗ</p>

<h4>キャンパスを定義する</h4>

<p>ここはそれほど難しく考える必要はなく、要はヘッダとフッタに被らなければいいだけなので、以下のように定義しました。</p>

<pre><code>div.canvas {
    page-break-after: always;
    position: relative;
    top: 5em;
    left: 0;
    padding: 2em 4em;
}</code></pre>

<p>ヘッダとフッタに被らなければいいとは言え、キャンパス内容があまりにも長くなる（A4 用紙の高さを超えるくらい）とさすがにどうにもならないですが。overflow プロパティ使ったところで PDF 印刷時には意味をなさないので。ですのでこの辺は長くならないよう気をつけてください。文字サイズや行間、マージンや余白を調節するなりして対処してくださいとして言えません。。</p>

<p>ここで page-break-after プロパティを利用していますが、これは印刷時にこの要素以降で改ページされるためのものです。ちなみに要素以前に改ページを行いたい場合は <code>page-break-before: always;</code> となります。<br />
値が always ですが、page-break-after,page-break-before プロパティでは以下の値が定義されています。</p>

<dl>
  <dt>auto</dt>
  <dd>改ページについて制御しない。初期値です。</dd>
  <dt>always</dt>
  <dd>必ず改ページを行う。</dd>
  <dt>avoid</dt>
  <dd>改ページを禁止する。</dd>
  <dt>left,right</dt>
  <dd>次のページが左右のページになるように強制的に改ページさせる。</dd>
</dl>

<p>今までスタイルシートはブラウザ上の見た目を制御するだけと言う認識が先行してましたが、印刷や音声ブラウザに対してもそれ専用のプロパティが存在するので是非とも利用してください。</p>

<h4>印刷時にのみ適用されるスタイル</h4>

<p>今回は PDF 印刷を目的としているので、印刷に特化した形になりますので必要に応じて最低限の対応はしておきたいところです。</p>

<pre><code>@media print {

    div.canvas.cover h1
        margin: 2em 0;
        font-size: 3.5em;
    }

    div.canvas.cover p.Author {
        width: 12em;
        margin-left: auto;
    }

    div.canvas a {
        color: blue;
    }

    div.canvas a::after {
        content: "（"attr(href)"）";
     }

}</code></pre>

<p>印刷時に適した形で見出しや段落のマージン等を設定します。なお class 属性値の cover は表紙の意味を示しています。表紙くらいはちょっとだけ飾らないと様になりませんからｗ</p>

<p>ハイパーリンクは PDF ファイルや紙媒体に限らず印刷されるとそのリンク先が分からないので、URL を文字列として表示させてあげる必要があります。<br />
上記では a 要素の直後に URL の文字列を括弧で括って表示させるようにしています。ちなみに相対パスで記述すると意味が分からなくなるので、できれば絶対パスで記述して欲しいところです。</p>

<p>ここで @media 用いて印刷に適したスタイルを定義していますが、@media を利用するには通常のセレクタを利用するように { } で囲う必要があります。意外と忘れがちになりますが、@media の他にも @page,@font-face があります。</p>

<h3>最後に</h3>

<p>個人ブログの方でも書きましたが、正直言って実用性はそれほど高くはないです。ただ単に作ってみたかっただけなので。でも考え方次第で PDF 印刷と言う縛りがあるにしろ、XHTML 文書とスタイルシートでこうしたものも作れると言うことを表に出せただけでもよかったかと。<br />
スタイルシートで何でも出来るとは言っても、文書構造があって初めて成り立つので、スタイルシート（見た目）先行で考えるのはよろしくないです。今回のスライドショーツールの XHTML 文書が完全に正しいかははっきり言って微妙ですが、でも今考えられる限りではこれがベストだと思ってます。</p>

<p>ちなみにスライドごとにデザインを変えられたり出来るので、面白いことは出来そうです。（ヘッダとフッタはさすがに無理ですが）</p>]]></description>
         <link>http://log.plucore.jp/2007/08/23/xhtml_css_slideshow_tool.html</link>
         <guid>http://log.plucore.jp/2007/08/23/xhtml_css_slideshow_tool.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">css</category>
                  <category domain="http://www.sixapart.com/ns/types#category">xhtml</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">css</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">xhtml</category>
        
         <pubDate>Thu, 23 Aug 2007 11:12:48 +0900</pubDate>
      </item>
            <item>
         <title>Movable Type 4 を使用したサイト構築を承ります</title>
         <description><![CDATA[<p>世界中で最もポピュラーなブログソフトである Movable Type が先日アップグレードされました。<br />
弊社でも、<a href="http://www.sixapart.jp/movabletype/">Movable Type 4</a>の仕様に関する調査を概ね完了させましたので、<a href="http://www.sixapart.jp/movabletype/">Movable Type 4</a>を使用したサイト構築サービスを提供します。</p>

<h3>ページ内で画像を使用する際の操作が簡単になりました</h3>

<p><a href="http://www.sixapart.jp/movabletype/">Movable Type 4</a>では、多くのお客様にとってわかりにくいと言われていた「画像を使用する時の操作」が大幅に改善されました。画像の選択が容易になったほか、編集画面で画像の配置を確認できるようになりました。<br />
<a href="http://www.sixapart.jp/movabletype/features.html">Movable Type 4 での編集画面イメージ</a></p>

<p>従来より、弊社では「継続的にコンテンツを増やし、サイトを成長させていくことの重要性」をお客様にご提案しています。<a href="http://www.sixapart.jp/movabletype/">Movable Type 4</a>は、継続的にサイトを成長させていくためのプラットフォームとして、非常に有効なツールであると考えております。</p>

<h3>制作費用は、30万円から承ります</h3>

<p><a href="http://www.sixapart.jp/movabletype/">Movable Type 4</a>を使用したWebサイトの構築は、30万円から承ります（ライセンス費用5万円は別途必要）。<br />
ご興味のある方は、ぜひ<a href="https://plucore.jp/contact/us.fcgi">プラコアの問い合わせフォーム</a>からご連絡ください。</p>

<h3>既存のお客様には、アップグレードのご案内をお送りします</h3>

<p>過去に弊社で、Movable Type 3 を使用してサイトを制作させていただいたお客様には、順次アップグレード作業についてのご案内をお送りしてまいります。どんなに遅くても8月中にはお送りいたしますので、ご期待ください。</p>]]></description>
         <link>http://log.plucore.jp/2007/08/21/mt4.html</link>
         <guid>http://log.plucore.jp/2007/08/21/mt4.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">最近のプラコア</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Movable Type</category>
        
         <pubDate>Tue, 21 Aug 2007 13:32:13 +0900</pubDate>
      </item>
            <item>
         <title>スタイルシートのファイル分割ルール</title>
         <description><![CDATA[<p>ここ1年でかなりスタイルシートの分割ルールが変わり、それまではかなり無茶な書き方をしていたものです。<br />
今では固定パターンが出来て、状況に応じて多少仕組みを変えていく感じになってます。</p>

<p><a href="http://makit.jp" title="商材を探せる。販路開拓ができる。商材情報サイト:Makit（メイキット）">Makit</a> のスタイルシートのファイル分割を元に解説します。</p>

<h3>HTML 文書から読み込まれるスタイルシートのファイル構成</h3>

<ul>
  <li><a href="http://makit.jp/static/common/css/import.css">import.css</a> 
    <ol>
      <li><a href="http://makit.jp/static/common/css/default.css">default.css</a></li>
      <li><a href="http://makit.jp/static/common/css/elements.css">elements.css</a></li>
      <li><a href="http://makit.jp/static/common/css/layout.css">layout.css</a></li>
      <li><a href="http://makit.jp/static/common/css/header.css">header.css</a></li>
      <li><a href="http://makit.jp/static/common/css/footer.css">footer.css</a></li>
      <li><a href="http://makit.jp/static/common/css/sidecontents.css">sidecontents.css</a></li>
      <li><a href="http://makit.jp/static/common/css/table.css">table.css</a></li>
      <li><a href="http://makit.jp/static/common/css/contents.css">contents.css</a></li>
      <li><a href="http://makit.jp/static/common/css/style.css">style.css</a></li>
      <li><a href="http://makit.jp/static/common/css/top.css">top.css</a></li>
      <li><a href="http://makit.jp/static/common/css/clearfix.css">clearfix.css</a></li>
      <li><a href="http://makit.jp/static/common/css/niftyCorners.css">niftyCorners.css</a></li>
    </ol>
  </li>
</ul>

<p>ファイルは大きく分けて3つの役割で構成されています。</p>

<ol>
  <li>要素の再定義</li>
  <li>大枠のレイアウト定義</li>
  <li>部分装飾の定義</li>
  <li>その他</li>
</ol>

<p>それぞれの役割をスタイルシートのファイルに当てはめると以下のようになります。</p>

<h4>要素の再定義</h4>

<ul>
  <li>default.css</li>
  <li>elements.css</li>
</ul>

<h4>レイアウトの定義</h4>

<ul>
  <li>layout.css</li>
  <li>header.css</li>
  <li>footer</li>
  <li>sidecontents.css</li>
</ul>

<h4>部分装飾の定義</h4>

<ul>
  <li>table.css</li>
  <li>contents.css</li>
  <li>style.css</li>
  <li>top.css</li>
</ul>

<h4>その他</h4>

<ul>
  <li>clearfix.css</li>
  <li>niftyCorners.css</li>
</ul>

<p>import.css から呼び出されるスタイルシートの順番は重要で、マクロな定義からミクロな定義へと段階的に狭めていくのがセオリーです。<br />
これは @import 宣言を使用した場合、考え方として呼び出すファイルの @import 宣言に呼び出されるファイルが展開されると認識すると分かりやすいかもしれません。<br />
ソースコードで示すと分かりやすと思います。</p>

<p>例：import.css のソースコード</p>

<pre><code>@charset "utf-8";

@import "hoge.css";
@import "foo.css";</code></pre>

<p>例：import.css から呼び出される hoge.css のソースコード</p>

<pre><code>@charset "utf-8";

p {
    color: yellow;
}</code></pre>

<p>例：import.css から呼び出される foo.css のソースコード</p>

<pre><code>@charset "utf-8";

p {
    color: red;
}</code></pre>

<p>認識として、import.css では以下のように起こっている。</p>

<pre><code>@charset "utf-8";

p {
    color: yellow;
}

p {
    color: red;
}</code></pre>

<p>@import 宣言がされた順にスタイルシートは読まれていくので、マクロの定義を先に持っていき、ミクロの定義を後ろに順に宣言していきます。</p>

<h3>各スタイルシートの解説</h3>

<dl>
  <dt>default.css</dt>
  <dd>要素の再定義を行っているファイル。これは <a href="http://3ping.org/">wu</a> さんの<a href="http://3ping.org/2006/04/09/0747">「デフォルトスタイルの差異を無くすCSS」</a>を拝借して、さらに自分でいろいろ変えてます。</dd>
  <dt>elements.css</dt>
  <dd>default.css はブラウザ間の差異を可能な限り吸収したスタイルシートですが、elements.css はその Web サイトに似合った要素の定義を行います。なので Web サイトごとにこの中身は違います。</dd>
  <dt>layout.css</dt>
  <dd>大枠のレイアウトを定義したスタイルシートです。Makit では3カラムになっているので、その記述がされています</dd>
  <dt>header.css</dt>
  <dd>ヘッダ部分のレイアウトを定義したスタイルシートです。本来であれば layout.css に記述するところですが、細分化してヘッダ・フッタそれぞれでファイルを分割しました。<br />
  これは Makit の HTML テンプレートを <a href="http://www.template-toolkit.org/">Template-Toolkit</a> を利用していることにも関係しています。</dd>
  <dt>footer.css</dt>
  <dd>フッタ部分のレイアウトを定義したスタイルシートです。</dd>
  <dt>sidecontents.css</dt>
  <dd>左右のブロックを定義したスタイルシートです。ここは分割していません。理由はごにょごにょ（何</dd>
  <dt>table.css</dt>
  <dd>テーブル要素を使ったレイアウトの定義です。フォームなどのテーブルを使用する箇所が多いため、後述する contents.css 内に記述するよりテーブルは別ファイルで定義しました。ただの横着ですｗ</dd>
  <dt>contents.css</dt>
  <dd>コンテンツ内のレイアウトを定義したスタイルシートです。主にログイン画面や商材の一覧、詳細画面が定義されています。</dd>
  <dt>style.css</dt>
  <dd>コンテンツ内の装飾を定義したスタイルシートです。かなり細かいものはここに全て放り込んでます。</dd>
  <dt>top.css</dt>
  <dd>トップページのみで使用するスタイルシートです。トップページは他のページとデザインが異なるので、一括でこのファイルのみで完結させています。（大枠のレイアウトは別ですが）
  <dt>clearfix.css</dt>
  <dd>ClearFix のみを記述したスタイルシートです。同じ定義をいたるところに分散させるより、一カ所にまとめてしまった方が分かりやすいと思い、こうしました。ただし複数のファイルに跨いで定義されていることになるので、あまりオススメはしませんが。。。</dd>
  <dt>niftyCorners.css</dt>
  <dd><a href="http://www.html.it/articoli/niftycube/index.html">Nifty Corners Cube</a> で配布されている角丸を実現する JavaScript ライブラリのスタイルシートです。詳しくは Nifty Corners Cube にて。</dd>
</dl>

<p>スタイルシートは分割定義していくもの。1ファイルに全てを詰め込むのではなく、目的や用途に応じてファイルを分割し、管理・運営をスムーズに進めていくための考え方です。<br />
まだ自分の中でしっくりくる管理方法を見つけていませんが、当面は上記のような形になると思います。</p>]]></description>
         <link>http://log.plucore.jp/2007/08/16/stylesheet-file-management.html</link>
         <guid>http://log.plucore.jp/2007/08/16/stylesheet-file-management.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">css</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">css</category>
        
         <pubDate>Thu, 16 Aug 2007 10:29:58 +0900</pubDate>
      </item>
            <item>
         <title>マークアップエンジニアが生き残ると言うこと</title>
         <description><![CDATA[<p>何を書こうか非常に悩んだんですが、今回は時事ネタで行きます。</p>

<p><a href="http://d.hatena.ne.jp/amachang/" title="IT戦記">id:amachang</a> 氏の「<a href="http://d.hatena.ne.jp/amachang/20070807/1186485054" title="http://d.hatena.ne.jp/amachang/20070807/1186485054">マークアップエンジニアはどこへ向かうべきか</a>」を見て、昨日いつも通り八王子のお店で飲みながら考えてました。</p>

<p>自分はマークアップエンジニアです。(X)HTML と CSS しか書けません。JavaScript や Perl、PHP 他に DB 関連や Apache のインストールさえもやったことがありません（Apache のインストールは8年くらい前に1回だけやりましたが、あっさり挫折したり。。）。<br />
じゃあ危機感を覚えてないかと言われたら「NO」です。危機感とはちょっと違いますが、やりたいことがあって、そのために JavaScript なり Perl なり XSLT なりを勉強していきたいと思っています。そう思いつつもう1年（どころじゃないですが）経ってしまい、結局動けずにいる←結論。</p>

<p>そう言った行動できていない現状には危機感を覚えていると言っても良いかもしれません。<br />
正直、クライアントサイド（HTML もそうですが、JavaScript とか）よりもサーバサイドが今覚えるべきことだと思っています（技術的な分野以外だとプロジェクトマネジメント方面もそうですが、人がいない今だと優先順位はちょい低いと思っている）。</p>

<p>XML をアレコレパースしてうにょーん（何）とかやりたかったり、そもそも自分でいろんな API も作ってみたいなぁとか思うわけです。そのためにはサーバサイドの何かを覚えていくしかないかな、と。taro さんお願いします。</p>

<p>でも1つだけ言いたいのは、(X)HTML と CSS”しか出来ない”とか”しか書けない”人が淘汰されるかと言ったらそうじゃないと思う。会社に1人でも何かしらの能力が高ければそれに似合った仕事が割り当てられるし、他の人のヘルプにも入れるし、時間的制約がある中で物量をこなせる人とか、いるわけじゃないですか。組織の中でやっている人は分かると思いますが。<br />
もちろんそれに甘んじるかどうかは本人次第だと思いますが、ニーズと言う意味で言えばマクロでもミクロでもあると思う。そこまでに到達できる人が少ないだけで、HTML の仕様さえも知らないエンジニアはいっぱいいるし、どう考えてもスタイルシートで再現しずらいデザインをあげるデザイナもいるし、HTML なんて知らずに見た目だけのテーブルレイアウトをする Web デザイナもいる。</p>

<p>おざなりになりがちな HTML を武器にすることは必要不可欠な要素だと思う。Web 全体で仕様通りの HTML を書ける人が半数を超えたらニーズとして失うかもしれない。そこに固執するならば。<br />
だけどその先が JavaScript だったり Perl だったりの他言語なのかと言ったら必ずしもそこだけじゃない。マーケティングかもしれないしプロマネかもしれないしコンサルティングかもしれないし他の何かかもしれない。</p>

<p>と言うわけで、<q cite="http://d.hatena.ne.jp/amachang/20070807/1186485054">「CSSer ステップアップカンファレンス」やりませんか？</q>に賛同させてもらいます。具体的にどのような内容を行うつもりなのかお伺いしたいところです。</p>]]></description>
         <link>http://log.plucore.jp/2007/08/09/markupengineer-lifestyle.html</link>
         <guid>http://log.plucore.jp/2007/08/09/markupengineer-lifestyle.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">markupengineer</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">css</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">life</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">markupengineer</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">web</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">xhtml</category>
        
         <pubDate>Thu, 09 Aug 2007 14:35:28 +0900</pubDate>
      </item>
            <item>
         <title>プラコアのタイムマネジメント</title>
         <description><![CDATA[<p>時間を有効に使い、仕事の生産性を高めるため。<br />
自分のために使える時間を増やすため。<br />
多くの方がタイムマネジメント（時間管理）を意識していると思います。</p>

<p>タイムマネジメントは、個人として意識することも重要ですが、一緒に仕事をするチームとして意識することでより高い成果が望めるのではないかと思います。<br />
ということで、プラコアのタイムマネジメントをちょっとご紹介します。</p>

<h3>まずはタスクを洗い出す</h3>

<p>時間を有効に使うためには、「やるべきこと」と「やりたいこと」を洗い出して、それを「いつやるのか」を決めることが大切です。</p>

<p>プラコアでは、<a href="http://trac.edgewall.org/">Trac</a>にできるだけ細かくチケットを発行することでタスクの洗い出しをやっています。<a href="http://trac.edgewall.org/">Trac</a>の中で、優先順位や期限を把握できるようになっています。<br />
自分と他のメンバーのタスクが把握できて便利です。</p>

<p>タスクをどこまで分解するかは、仕事の内容や人それぞれの好みにもよるのですが、個人的にはできるだけ細かく分解した方が良いと思います。1つ1つのタスクが細かい方が短時間で解決できるので、仕事にリズムが生まれると思うのです。</p>

<h3>時間に区切りをつけてゴールを設定する</h3>

<p>効率よくタスクを消化するためには、「いつやるか」が重要だと思います。1日をいくつかのブロックに分解して、そこにタスクを配置していきます。</p>

<p>私の場合は1日を「午前」「午後3時まで」「午後6時まで」「夜」という4分割にしています。それぞれのブロックで、「このタスクを解決する」ということを決めています。1日に4回ゴールがあることで、ゴール間際の追い込みが何回もできて効率アップにつながると思っています。特に期限間際にならないと仕事が進まないタイプ（わりと、みんなそうですよね）の人におすすめです！</p>

<p>さらに、1日の中のブロックには、それぞれ役割を持たせます。たとえば、以下のような感じです。</p>

<ul>
<li>午前は頭を使う仕事やハードな仕事</li>
<li>午後3時までは、気分良くできる仕事</li>
<li>午後6時までは単純作業</li>
<li>夜はゆったりと考える仕事</li>
</ul>

<p>いつもちょうど良いタスクがあるわけではないので、必ずしも思い通りにはなりませんが、1日の中でリズムをつくることが大事だと思います。<br />
また、自分の中で最もパフォーマンスが上がる時間帯を見つけておけば、その時間帯に難易度の高いタスクを配置することで全体の効率を高められます。</p>

<h3>チーム内の決まりを作る</h3>

<p>タイムマネジメントは、結局のところ「計画を立てて、自分がそのとおりにできるように工夫すること」だと思います。<br />
そのように考えると、1人だけでそれを意識してもうまく行かない場合が出てきます。他のメンバーからの依頼事項やチームとしての段取りがあるからです。</p>

<p>そこで、プラコアでは次のようなルールを決めています。</p>

<ul>
<li>帰宅前に次の日の午前中のタスクを宣言して必ず実行する（いまは次の1日のタスクを報告しています。そのためのツールが<a href="http://log.plucore.jp/2007/07/30/plam_and_hatenaster.html">Plam</a>です。）</li>
<li>午前中は雑談や相談はしない</li>
<li>午前中は1人でタスクを完結できるように段取りする</li>
<li>お昼の時間にタスクの進捗を相互チェックする（あーこれはできてないや）</li>
</ul>

<p>「まずは、午前中だけはきちんとマネジメントできるようにしよう」という発想です。実際にできているかどうかの相互チェックが最近甘くなっているので、気を引き締めないといけませんが、ルールを決める前よりは仕事がやりやすくなったと思います。</p>

<p>うまく表現できていないと思うのですが、タイムマネジメントのポイントは、「いかに波に乗るか」だと思います。<br />
チームとして「波に乗れる」マネジメントができたらいいですね。</p>]]></description>
         <link>http://log.plucore.jp/2007/08/08/time_management.html</link>
         <guid>http://log.plucore.jp/2007/08/08/time_management.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">management</category>
        
        
         <pubDate>Wed, 08 Aug 2007 11:34:57 +0900</pubDate>
      </item>
            <item>
         <title>Plam 0.06 リリースとかはてなスターとか</title>
         <description><![CDATA[<p>最近友人から、「会社ブログなのにソースコード貼り過ぎじゃない？」と突っ込まれたりしてる僕ですが、<br />
気にせずに今日もバリバリ貼っていきたいところです。<br />
が、ちょっとネタを切らしているので今日は軽くお知らせをで済まそうと思います。</p>

<h3>はてなスター設置しました</h3>

<p>ブログ記事の横にはてなスターを押すボタンが付いていると思います。<br />
はてな ID をお持ちの方は是非ポチポチ押してあげてください。</p>

<h3>Plam 0.06 リリースします</h3>

<p><a href="http://log.plucore.jp/archive/Plam-0.06.tar.gz">Plam-0.06.tar.gz</a></p>

<p>以下の変更を加えました。</p>

<ul>
  <li>パスワード変更できるようにしました</li>
  <li>メールアドレスを変更できるようにしました</li>
  <li>チケットの URL へリンクするようにしました</li>
  <li>メール送信時に TracFormat なリンクを除去するようにしました</li>
</ul>

<p>チケットへのリンクがちょっと力業なので、この変更は微妙かもしれません。<br />
My Ticket は RSS ではなくて CSV とか引っ張ってくるようにした方が良いかな。</p>

<p>何かご意見などあればよろしくお願いします。<br />
ソースコード読んでおかしいところがあるとか、Catalyst の使い方でおかしいところがある等のツッコミは大歓迎です。</p>]]></description>
         <link>http://log.plucore.jp/2007/07/30/plam_and_hatenaster.html</link>
         <guid>http://log.plucore.jp/2007/07/30/plam_and_hatenaster.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">programming</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">catalyst</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">plam</category>
        
         <pubDate>Mon, 30 Jul 2007 20:42:22 +0900</pubDate>
      </item>
            <item>
         <title>とても便利な Firefox の拡張機能</title>
         <description><![CDATA[<p>当然のようにメインのブラウザは <a href="http://www.mozilla-japan.org/products/firefox/" title="Mozilla Japan - Firefox">Mozilla Firefox</a> を使用してます。Web を見るだけでなく、開発用としてもとても重宝しています。<br />
その中で日常的に開発時や単にブラウジング時などに利用している拡張機能12個を挙げてみました。</p>

<ul>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/5165">Firebug Japanese</a></li>
  <li><a href="http://www.google.com/tools/firefox/browsersync/">Google Browser Sync</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/249">Html Validator</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/1122">Tab Mix Plus</a></li>
  <li><a href="http://japanize.31tools.com/">Japanize</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/613">Save Link in Folder</a></li>
  <li><a href="http://firefox.geckodev.org/index.php?Wrap%20Bookmarks%20Toolbar">Wrap Bookmarks Toolbar</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/2108">Stylish</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/1419">IE Tab</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/1190">Opera View</a></li>
  <li><a href="http://paranoid-androids.com/tabgroups/">tabgroups</a></li>
  <li><a href="https://addons.mozilla.org/ja/firefox/addon/421">MR Teck Link Wrapper</a></li>
</ul>

<dl>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/5165">Firebug Japanese</a></dt>
  <dd>ページ内の DOM・HTML・CSS・JavaScript を解析してその場で一時的に書き換えたりデバッグしたりと、かなり便利ですよね。使っている人多し。</dd>
  <dt><a href="http://www.google.com/tools/firefox/browsersync/">Google Browser Sync</a></dt>
  <dd>ブックマーク・履歴・Cookie・セッションその他いろいろの情報を Google Browser Sync の入った他の Firefox と並列化できる最強の拡張機能。Firefox を新規でインストールした時は本当に頼りになる。<br />
  ただし初回起動時はかなり重い。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/249">Html Validator</a></dt>
  <dd>そのページの HTML 文書をその場で Validator にかけて文法チェックしてくれる拡張機能。最近ようやく日本語化してくれた。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/1122">Tab Mix Plus</a></dt>
  <dd>定番。タブの拡張ではこれを超えるものは無い。タブのフォーカス設定があるのが最大の理由。あとタブ上でマウスホイールでタブの切り替え。重要。</dd>
  <dt><a href="http://japanize.31tools.com/">Japanize</a></dt>
  <dd>英語の Web サイトを日本語化してくれる拡張機能。有名どころの Web サイトならばほとんどに対応してます。英語読めない人にオススメ。自分みたいな。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/613">Save Link in Folder</a></dt>
  <dd>ファイルを保存するディレクトリをあらかじめ登録しておいて、ダウンロード時に選択できる拡張機能。頻繁にファイルをダウンロードする人向け。</dd>
  <dt><a href="http://firefox.geckodev.org/index.php?Wrap%20Bookmarks%20Toolbar">Wrap Bookmarks Toolbar</a></dt>
  <dd>ブックマークツールバーを多段表示してくれる拡張機能。ブックマークレットを多用する人向け？　でもブックマークにキーワード設定してロケーションバーで呼び出す方が簡単だったりする。。。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/2108">Stylish</a></dt>
  <dd>ユーザスタイルシートの作成を支援してくれる拡張機能。ドメインごとに作れるのでわざわざテキストエディタを開かずにその場で書けるのが楽です。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/1419">IE Tab</a></dt>
  <dd>Firefox のタブ内で、開いているページを Internet Explorer で開く拡張機能。わざわざ IE を起動しなくてよいので便利。<br />
  <a href="http://ieview.mozdev.org/">IE View</a> よりこっちの方が個人的に好み。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/1190">Opera View</a></dt>
  <dd>開いているページを Opera で開く拡張機能。ちなみに IE Tab と違って Opera が起動します。たぶんただ単にページの URL を Opera に渡してるだけっぽいw</dd>
  <dt><a href="http://paranoid-androids.com/tabgroups/">tabgroups</a></dt>
  <dd>タブをグループ化してくれる拡張機能。タブを多く開く人向け。ちょっち重いのが難点。</dd>
  <dt><a href="https://addons.mozilla.org/ja/firefox/addon/421">MR Teck Link Wrapper</a></dt>
  <dd>長い URL を折り返してくれる拡張機能。開発時には使用しない方が良いです。あくまでブラウジング時に利用する感じで。</dd>
</dl>

<p>かなりマイナーな拡張機能も混じってますが、大抵は有名どころかと。<br />
これらが無いと Firefox は使いづらいですよね。</p>]]></description>
         <link>http://log.plucore.jp/2007/07/26/extensions-list.html</link>
         <guid>http://log.plucore.jp/2007/07/26/extensions-list.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">browser</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">extention</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">firefox</category>
        
         <pubDate>Thu, 26 Jul 2007 18:13:03 +0900</pubDate>
      </item>
            <item>
         <title>無料のアンケートを企画や提案に役立てる</title>
         <description><![CDATA[<p>プラコア加藤です。<br />
いきなりご無沙汰になってしまいました･･･。<br />
気を取り直して頑張ります。</p>

<p>さて、<br />
何かの企画を立てるとき、お客様（や社内）にプレゼンをするとき、ちょっとしたデータを示すことができるとグッと説得力が増してきます。<br />
企画を立てる仕事をしている人は、きっとデータ集めで苦労した経験があると思います。企画を立てることが仕事ではなくても、自分の考えているアイデアを裏付けるデータが欲しいと思う人は多いと思います。</p>

<p>私も「たった100人でもいいからアンケートができたらいいのに」「自分が聞きたいことに皆が答えてくれたらいいのに」と思ったことは数知れずですが、なかなか簡単にアンケートはできません。<br />
リサーチ会社はたくさんあるのでお金を掛ければ、それなりに情報を集めることができますが、そんなに気楽に使える値段ではありません。</p>

<p>ちょっとしたアンケートをしたい（しかも無料で）というときに使えそうなサイトがないだろうか？<br />
そんなに都合のいいものが･･･</p>

<p>あるんです！！（下手な通販番組みたいでごめんなさい。）</p>

<p><a href="http://www.enquete.ne.jp/hundred/index.html">アンケート100人に聞きました！</a>というサイトです。このサイトでは、無料で簡単にアンケートを作成できます。いまでもかなりの量のアンケートが登録されているようです。<br />
試しに1つアンケートを作成させてもらいました。<a href="http://www.enquete.ne.jp/hundred/survey/20070711-6/">「取引先の住所や電話番号を調べるときに何を使って調べますか？」</a>というアンケートです。<br />
我ながらあんまり面白くないアンケートにしてしまったので、残念ながらあまり回答は集まりませんでした。（2週間で10件だけ･･･）<br />
私のアンケートは、いまいちでしたが、皆が興味を持つようなテーマであれば、1週間以内で数10件の回答があるものもあります。数10件でも参考データにはなると思いますので、使い方によっては、役に立つのではないかと思います。</p>

<p>同じようなサイトで、<a href="http://www.01-station.com/asq/">無料アンケートサイト [ ASQ ]</a>というのもあります。</p>

<p>ちなみに、私の作ったアンケートの結果は、下記のような感じでした。<br />
<img alt="enquete_result.jpg" src="http://log.plucore.jp/images/enquete_result.jpg" width="767" height="459" /></p>

<p>もっと件数が集まれば、アンケート結果からウンチクを垂れてみようとおもったのですが、残念でした･･･。<br />
「Webって、既存のお客さんもけっこう見てるものなんだよね」と言いたかっただけなのですがね。</p>]]></description>
         <link>http://log.plucore.jp/2007/07/24/enquete.html</link>
         <guid>http://log.plucore.jp/2007/07/24/enquete.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">web</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">marketing</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">web</category>
        
         <pubDate>Tue, 24 Jul 2007 22:44:21 +0900</pubDate>
      </item>
            <item>
         <title>Plam（ぷらむ） - 明日なにやるの？</title>
         <description><![CDATA[<p>弊社では明日やる作業の内容を全員に送ってから帰宅するようにしています。<br />
そこで僕はいつも <a href="http://trac.edgewall.org/">Trac</a> のチケットをコピペしてメールを書いていたんですが、これが面倒になってきたので以下のような簡単なアプリケーションを作りました。</p>

<ol>
  <li>ログイン</li>
  <li>Trac の My Ticket をリストアップして表示</li>
  <li>選んで次へボタン</li>
  <li>選んだ項目が入ったフォームを出力</li>
  <li>登録してるユーザ全員にメール送信。内容を DB へ保存。</li>
</ol>

<p>せっかくなので公開しようと思います。<br />
（どうせならリポジトリを公開したいところですが、ちょっと準備不足なため、とりあえず tar.gz に固めておいておきます。）</p>

<p><a href="http://log.plucore.jp/archive/Plam-0.03.tar.gz"><del>Plam-0.03.tar.gz</del></a><br />
<a href="http://log.plucore.jp/archive/Plam-0.04.tar.gz">Plam-0.04.tar.gz</a><br />
（バグを発見したため version 0.04 を公開します）</p>

<p>Catalyst + TT + DBIx::Class で作ってます。<br />
バックエンドには MySQL を使ってます。展開したディレクトリの中には CREATE TABLE する SQL をまとめたファイル db/plam.sql を入れてあります。<br />
lib/Plam/Model/DBIC.pm に DB への接続に関する設定が書いてあるので適宜調整してください。（元々書いてあるパスワードはでたらめです。）</p>

<p>後は scripts/plam_server.pl するなりして起動してください。</p>

<p><a href="http://log.plucore.jp/images/plam0.03_login.png"><img alt="plam0.03_login.png" src="http://log.plucore.jp/images/plam0.03_login-thumb.png" width="300" height="216" /></a></p>

<p>起動したサーバにアクセスするとログイン画面が出ます。<br />
初めは administrator と言う管理者権限のユーザだけ登録されています。<br />
パスワード mypass と入れればログインできます。</p>

<p>パスワードを変更する機能は未実装なので、変更したい場合は DB を直接いじってください。以下のワンライナーで SHA1 ハッシュ化されたパスワードができます。</p>

<pre>perl -MDigest::SHA1=sha1_hex -le "print sha1_hex('mypass')"</pre>

<p><a href="http://log.plucore.jp/images/plam0.03_create_user.png"><img alt="plam0.03_create_user.png" src="http://log.plucore.jp/images/plam0.03_create_user-thumb.png" width="300" height="281" /></a></p>

<p>個々のユーザのプロフィールで Trac の URL、ユーザ名、パスワードを入れるとそのユーザでログインしたときに自動で Trac のチケットを取ってきてリストアップしてくれます。<br />
（弊社で使っている Plam に登録している Trac も弊社内で管理している物です。もし Plam を使ってみようと思ってくださった方は、Plam 内に別なアプリケーションのユーザ名とパスワードを預かることになる点に注意してください。）</p>

<p><a href="http://log.plucore.jp/images/plam0.03_tomorrow2.png"><img alt="plam0.03_tomorrow2.png" src="http://log.plucore.jp/images/plam0.03_tomorrow2-thumb.png" width="300" height="287" /></a></p>

<p><a href="http://log.plucore.jp/images/plam0.03_list.png"><img alt="plam0.03_list.png" src="http://log.plucore.jp/images/plam0.03_list-thumb.png" width="300" height="287" /></a></p>

<p>メールは Plam に登録しているユーザ全員に配送されます。<br />
メール送信後には DB 上にもデータを貯めるようにしていてその一覧もできるようになってます。<br />
<a href="http://search.cpan.org/~mizzy/Text-Trac-0.07/">Text::Trac</a> で Trac 記法が使えます。</p>

<h3>今後やりたいこと</h3>

<ul>
  <li>パスワード変更</li>
  <li>メールアドレス変更</li>
  <li>チケットにリンク張りたい</li>
  <li>マイルストーン名も出したい</li>
</ul>]]></description>
         <link>http://log.plucore.jp/2007/07/20/plam.html</link>
         <guid>http://log.plucore.jp/2007/07/20/plam.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">programming</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">catalyst</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">plam</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">task</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">trac</category>
        
         <pubDate>Fri, 20 Jul 2007 14:54:05 +0900</pubDate>
      </item>
      
   </channel>
</rss>
