<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>石輪っぷり!</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/" />
    <link rel="self" type="application/atom+xml" href="http://www.will3in.jp/blog/ishiwa/atom.xml" />
    <id>tag:www.will3in.jp,2009-05-05:/blog/ishiwa//10</id>
    <updated>2010-08-18T11:26:13Z</updated>
    <subtitle>Willさんいんのマークアップエンジニア 兼 講師 兼 日曜大工担当(笑) いしわのBlogです。主にサイト構築に関する私的メモ中心です。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Commercial 4.261</generator>

<entry>
    <title>Movable Type でエントリーリストに異なるブログのエントリーを表示する</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/08/16-0052.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2690</id>

    <published>2010-08-15T15:52:50Z</published>
    <updated>2010-08-18T11:26:13Z</updated>

    <summary>ちょっと意味不明なサブジェクトですが、どういうことかというと、今回 Movabl...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="MovableType" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>ちょっと意味不明なサブジェクトですが、どういうことかというと、今回 Movable Type で構築している案件で次のような仕様を実装することになりました。</p>

<ul>
	<li>多数の加盟企業がそれぞれのユーザー名でログインしてそれぞれにお知らせを投稿する。</li>
	<li>加盟企業はそれぞれに自身の紹介ページが作られる。（紹介ページを作らない企業もあり）</li>
	<li>加盟企業の登録・編集は事務局が行う。（但し、事務局は Movable Type の管理者ではない）</li>
</ul>

<p>制作を受ける際はできると考えていて、いざ構築を始めるとつまずくことがあるもので、今回の場合、Movable Type のユーザーにカスタムフィールドで企業情報を入力するフィールドを作って企業をユーザーとして登録し、企業の紹介ページはユーザー別アーカイブで生成っていうのが正当な方法なのでしょうが、これだと登録企業自身が情報を編集することが出来てしまいます。また、ユーザーの追加は Movable Type のシステム権限でないとできません。今回ユーザーを追加する事務局にはシステム権限を与えないので、別の方法を模索することになります。そこで、</p>

<ul>
	<li>あらかじめ想定される数のユーザーを user001，user002，user003，・・・というユーザー名で作っておく。</li>
	<li>加盟企業を登録するブログ（blog_id=&quot;2&quot;）を作り、登録の際にタグ欄にユーザー名を入力するようにする。</li>
	<li>加盟企業はそれぞれのユーザー名でログインし、お知らせのブログ（blog_id=&quot;3&quot;）に情報を掲載する。</li>
	<li>お知らせを投稿したユーザー名と加盟企業のタグを関連づけ、お知らせ一覧に企業名と業種を、企業紹介ページにはその企業が投稿したお知らせを表示する。</li>
</ul>

<p>という仕組みを考えました。しかし、テンプレートを書いていて問題が二つ発生しました。</p>]]>
        <![CDATA[<p>まず、お知らせのブログのエントリー一覧の中で、別のブログである企業情報のエントリーを表示する、つまりトップページとなるウェブサイトのメイン・インデックスに表示する場合、<code>&lt;mt:Entries blog_ids=&quot;3&quot;&gt;</code> の内側で <code>&lt;mt:Entries blog_ids=&quot;2&quot;&gt;</code> を利用することになるのですが、<code>&lt;mt:MultiBlog&gt;</code> の入れ子が出来ないのと同じことなのでしょう、<code>&lt;mt:Entries&gt;</code> の入れ子の場合テンプレートエラーにはならないのですが、内側の <code>&lt;mt:Entries&gt;</code> は表示されませんでした。</p>

<p>そこで考えた方法が、まず <code>&lt;$mt:BlogEntryCount blog_ids=&quot;2&quot;$&gt;</code> でリストアップするお知らせ件数を取得しておき、<code>&lt;mt:Entries blog_ids=&quot;2&quot; offset=&quot;n&quot; lastn=&quot;1&quot;&gt;</code> で1件ずつお知らせを表示。<br />
そのユーザー名から加盟企業一覧のブログで同じ値のタグを持つ企業名を取得して、<code>&lt;mt:Entries blog_ids=&quot;3&quot; lastn=&quot;1&quot; tag=&quot;(ユーザー名)&quot;&gt;</code> で企業名と業種を表示。<br />
これを、<code>offset</code> を1ずつ足しながら、取得したお知らせ件数分繰り返すという方法です。</p>

<p>具体的には以下のようになります。</p>

<pre><code><span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (お知らせ件数を取得) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:SetVarBlock name=&quot;count&quot;&gt;&lt;$mt:BlogEntryCount blog_ids=&quot;2&quot;$&gt;&lt;/mt:SetVarBlock&gt;
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (トップページの場合は最大10件) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:If name=&quot;body_id&quot; eq=&quot;home&quot;&gt;
	&lt;mt:If name=&quot;count&quot; gt=&quot;10&quot;&gt;&lt;mt:SetVar name=&quot;count&quot; value=&quot;10&quot;&gt;&lt;/mt:If&gt;
&lt;/mt:If&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (offset の初期値を 0 に設定) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:SetVar name=&quot;offset&quot; value=&quot;0&quot;&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (取得した件数分繰り返し) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:For var=&quot;i&quot; from=&quot;1&quot; to=&quot;$count&quot;&gt;<br />
&lt;mt:If name=&quot;__first__&quot;&gt;&lt;dl&gt;&lt;/mt:If&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (お知らせを表示) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:Entries blog_ids=&quot;2&quot; offset=&quot;$offset&quot; lastn=&quot;1&quot;&gt;
&lt;dt&gt;&lt;$mt:EntryDate format=&quot;%x&quot;$&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;&lt;$mt:EntryPermalink archive_type=&quot;Individual&quot;$&gt;&quot;&gt;&lt;$mt:EntryTitle encode_html=&quot;1&quot;$&gt;&lt;/a&gt;&lt;/dd&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (ユーザー名を取得) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:SetVarBlock name=&quot;author&quot;&gt;&lt;$mt:EntryAuthorUsername$&gt;&lt;/mt:SetVarBlock&gt;
&lt;/mt:Entries&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (ユーザー名に一致するタグの企業情報を表示) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:Entries blog_ids=&quot;4&quot; lastn=&quot;1&quot; tag=&quot;$author&quot;&gt;
&lt;dd&gt;&lt;a href=&quot;&lt;$mt:EntryPermalink$&gt;&quot;&gt;&lt;$mt:EntryTitle encode_html=&quot;1&quot;$&gt;&lt;/a&gt;
	&lt;span class=&quot;divide&quot;&gt;|&lt;/span&gt; &lt;$mt:EntryCategory$&gt;&lt;/dd&gt;
&lt;/mt:Entries&gt;<br />
&lt;mt:If name=&quot;__last__&gt;&lt;/dl&gt;&lt;/mt:If&gt;<br />
<span style="color:#069;">&lt;mt:Ignore&gt;&lt;!-- (offset に 1 を加算) --&gt;&lt;/mt:Ignore&gt;</span>
&lt;mt:SetVar name=&quot;offset&quot; op=&quot;++&quot;&gt;<br />
&lt;/mt:For&gt;</code></pre>

<p>実際は業種ごとに異なるアイコンを表示するために業種カテゴリのフォルダ名を取得して class 属性に代入したり、お知らせタイトルや企業名からのリンクがパーマリンクではなく外部サイトである場合があったり、業種もメインカテゴリだけでなく複数のカテゴリが設定され、そのうえその他の業種には別フィールドの具体名を表示したり、さらにお知らせ一覧ページでは PageBute プラグインを使ってページ分割したりと、もっともっと複雑です。</p>

<p>次に、企業紹介ページにそれぞれの企業が投稿したお知らせの一覧を表示する方法。<br />
上記の逆で、加盟企業を登録したブログのタグ名と一致するお知らせのブログのユーザー名を取得して、そのユーザーが投稿したお知らせ一覧を表示すればいいわけですが、この場合、企業紹介ページはブログ記事アーカイブです。つまり、MultiBlog を使ってもお知らせの更新時に再構築されません。</p>

<p>すぐに思いついたのが、サーバの cron を使って定期的に再構築を実行させる方法。しかし、今回のクライアント指定のサーバでは cron が使えませんでした。<br />
そこで、お知らせのブログにユーザー別ブログ記事リストを作り、これを企業紹介ページに php インクルードで読み込むことにしました。</p>

<p>今回の場合、ユーザー別ブログ記事リストのパスを <code>author/&lt;$mt:AuthorName$&gt;.php</code> とします。<br />
そして、企業紹介ページでこれを読み込む記述は以下のようになります。</p>

<pre><code>&lt;mt:SetVarBlock name=&quot;author&quot;&gt;&lt;mt:EntryTags&gt;&lt;$mt:TagName$&gt;&lt;/mt:EntryTags&gt;&lt;/mt:SetVarBlock&gt;<br />
&lt;mt:MultiBlog blog_ids=&quot;2&quot;&gt;
&lt;?php include(&quot;&lt;$MTBlogSitePath$&gt;author/&lt;$mt:Var name=&quot;author&quot;$&gt;.php&quot;); ?&gt;
&lt;/mt:MultiBlog&gt;</code></pre>

<p>特にたくさんのコンテンツがある案件ではなく、楽に構築出来る筈だったのですが、思いがけず頭を使うことになってしまいました。</p>

<p><ins>（8月１８日追記）<br />
ユーザー名の入力を必須にするために、タグ欄ではなく、カスタムフィールドに置き換えました。<br />
この場合、上記のソースコードの一部が以下のように変わります。</ins></p>

<p><ins>ユーザー名に一致するタグではなくカスタムフィールドの値の企業情報を表示するところ</ins></p>

<pre><code>&lt;mt:Entries blog_ids=&quot;4&quot; lastn=&quot;1&quot; <span style="color:#c00">field:(customfieldbasename)</span>=&quot;$author&quot;&gt;</code></pre>

<p><ins>企業紹介ページでユーザー別ブログ記事リストを読み込む記述</ins></p>

<pre><code>&lt;mt:SetVarBlock name=&quot;author&quot;&gt;<span style="color:#c00">&lt;mt:(CutomFieldName)&gt;</span>&lt;/mt:SetVarBlock&gt;</code></pre>]]>
    </content>
</entry>

<entry>
    <title>Movable Type で Goolge Maps を ThickBox で表示する際のあれこれ</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/08/15-2142.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2689</id>

    <published>2010-08-15T12:42:07Z</published>
    <updated>2010-08-15T13:00:57Z</updated>

    <summary>Movable Type で住所や緯度経度を Google Maps のに変換し...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="MovableType" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web制作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="googlemaps" label="Google Maps" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="thickbox" label="ThickBox" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>Movable Type で住所や緯度経度を Google Maps のに変換して表示することのできる <a href="http://code.google.com/p/ogawa/wiki/Mapper_Plugin">Mapper_Plugin</a>。3年前にあるサイトを制作する際に利用したことがありますが、今回また同様の案件があり利用しました。</p>

<p>3年前（MT3.35）と今回（MT5.02）と構築環境に違いはあるものの考え方は同じで、通常のブログ記事アーカイブとは別に、カスタムフィールドに入力した住所情報から Mapper_Plugin で Google Maps を表示するブログ記事アーカイブを作っておき、個別アーカイブページの地図表示のリンクからこの Google Maps のアーカイブページを表示させるという方法です。</p>

<p>前回はサブウィンドウで Google Maps を表示させましたが、今回は写真をオーバーレイ表示する Lightbox の jQuery 版、<a href="http://leandrovieira.com/projects/jquery/lightbox/">jQuery lightbox</a> を利用していることから、Google Maps も同じようにオーバーレイ表示したいと考え、画像だけでなく HTML もオーバーレイ表示できる <a href="http://jquery.com/demo/thickbox/">ThickBox</a> を利用することにしました。</p>

<p>しかし、Google Maps の場合はすんなり行かず、いくつかの Tips がありましたので、その覚え書きです。</p>]]>
        <![CDATA[<p>まず、Google Maps の表示以前に、複数画像をグループ化して表示させるための rel 属性を付けると拡大画像が表示されません。rel 属性を付けなければ表示されるのですが、これではいちいち拡大画像を閉じなければ別の画像を拡大表示することができなくなってしまいます。</p>

<p>試しに ThickBox のデモサイトで使われている jQuery 1.1.3.1 をダウンロードして入れ替えてみると正常に表示されます。ググってみると、既に ThickBox の開発が終了していて、今回使用している jQuery 1.4.2 や 1.3.x に対応してないことがわかりました。同時にその解決策も紹介されていて、thickbox.js の79行目</p>

<pre><code>TB_TempArray = $(&quot;a[rel=&quot;+@imageGroup+&quot;]&quot;).get();</code></pre>

<p>の @ を取り、</p>

<pre><code>TB_TempArray = $(&quot;a[rel=&quot;+imageGroup+&quot;]&quot;).get();</code></pre>

<p>と書き替えれば rel 属性を付けてグループ化することができました。</p>

<p>参考サイト：「<a href="http://officesoya.net/weblog/2009/02/20/thickbox/">class="thickbox" に rel をつけると画像が表示されない」(Development memo)</a></p>

<p>次に、これも Google Maps 表示以前の問題ですが、Mac 版 Firefox で表示すると拡大表示の周りがブラックアウトされません。でもこれは単にダウンロードすべきファイルが足りなかっただけ。<a href="http://jquery.com/demo/thickbox/">ThickBox</a> のサイトの Download の項には thickBox.js もしくは thickbox-compressed.js、ThickBox.css、そして loadingAnimation.gif しかないのですが、How to Implement ThickBox の項を見ると、<q>As of version 3.1 you will also need to update the path to the macFFBgHack.png in the thickbox.css file.</q> と書かれています。英語は読めないのですが(笑)、macFFBgHack.png をダウンロードして thickbox.css と同じ場所に置いたら OK でした。</p>

<p>そしていよいよ、ThickBox のウィンドウ内に Google Maps を表示してみます。ThickBox の iFramed Content として表示させるので、Google Maps 用のブログ記事アーカイブのパスを <code>map/&lt;$mt:EntryID pad=&quot;1&quot;$&gt;.html</code> とすると、</p>

<pre><code>&lt;a href=&quot;map/&lt;$mt:EntryID pad=&quot;1&quot;$&gt;.html?width=750&amp;amp;height=570&amp;amp;KeepThis=true&amp;amp;TB_iframe=true&quot; class=&quot;thickbox&quot;&gt;地図を表示&lt;/a&gt;</code></pre>

<p>という具合になります。しかし、いざ表示してみると、ThickBox の領域内で表示した Google Maps の中心が大きくずれています。さらに Internet Explore 8 では地図が一部グレーに塗りつぶされた状態になっています。Thickbox で Google Maps は無理なのかなと思いつつ、これもググってみることに。</p>

<p>まず見つけたのが「<a href="http://blog.webbingstudio.com/2010/01/movabletype_googlemaps_thickbox.html">MovableTypeでGoogleMapsを住所からthickboxで表示する</a>」という記事。まさにいまやろうとしていることです。あらかじめページの下部でインラインフレームで Google Maps を読み込んで <code>style=&quot;display: none;&quot;</code> で非表示にしておき、iFramed Content ではなく Inline Content として ThickBox のウィンドウの中にインラインフレームごと表示させるという方法のようです。<br />
しかし、Firefox や Safari ではちゃんと Google Maps の中心が表示されるのですが、Internet Explorer では相変わらず中心がずれたままです。</p>

<p>さらにググってみて、特に Movable Type に関しての記事ではないのですが「<a href="http://www.kazumanishihata.com/technology/392.html">Google MapをThickBox上に表示する方法 - とあるWEBクリエイターのblog</a>」という記事が大変参考になりました。</p>

<p>ThickBox での表示方法は最初に設定した iFramed Content 方式に戻してページ下部での Google Maps の読み込みはやめ、ここに書かれているコードを参考に Mapper_Plugin の 131行目からの Google Maps 表示部分のソースコードを以下のように書き替えました。</p>

<pre><code>my $preamble_tmpl = &lt;&lt;'EOT';
&lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps?&lt;TMPL_IF NAME=&quot;language&quot;&gt;hl=&lt;TMPL_VAR NAME=&quot;language&quot;&gt;&amp;amp;&lt;/TMPL_IF&gt;file=api&amp;amp;v=2&amp;amp;key=&lt;TMPL_VAR NAME=&quot;google_maps_key&quot;&gt;&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
//&lt;![CDATA[
function attachOnLoad(func) {
    window.attachEvent ?
	window.attachEvent('onload',func) : 
	window.addEventListener('load',func,false);
}
function attachBeforeUnload(func) {
    window.attachEvent ?
	window.attachEvent('onbeforeunload',func) : 
	window.addEventListener('beforeunload',func,false);
}
function generateGMap(mapid, address, lat, lng, zoom, maptype) {
<span style="color: #c00;"><strong>	var check_flame_set = function(){
		if(!parent.document.getElementById(&quot;TB_window&quot;)){
			clearInterval(timerID);
			show_map();
		}else if(parent.document.getElementById(&quot;TB_window&quot;).style.display==&quot;block&quot;){
			clearInterval(timerID);
			show_map();
		}
	}
	var timerID = setInterval(check_flame_set, 500);
	var show_map = function(){</strong></span>
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById(mapid));
		map.addControl(new GLargeMapControl3D());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl(new GSize(180,150)));
		var center = new GLatLng(lat, lng);
		if (typeof maptype == 'string') maptype = eval(maptype);
		map.setCenter(center, zoom, maptype);
		var marker = new GMarker(center, G_DEFAULT_ICON);
		map.addOverlay(marker);
		var html = '&lt;div style=&quot;width:12em;font-size:small&quot;&gt;'+address+'&lt;/div&gt;';
		GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(html);
		});
	    } else {
		document.getElementById(mapid).innerHTML = '&lt;p&gt;The Google Map that should be displayed on this page is not compatible with your browser. Sorry.&lt;/p&gt;';
		}
<span style="color: #c00;"><strong>	}</strong></span>
}
attachBeforeUnload(function(){GUnload()});
//]]&gt;
&lt;/script&gt;
EOT</code></pre>

<p>これで当初の思惑どおり、ThickBox で Google Maps を表示させることが出来ました。</p>]]>
    </content>
</entry>

<entry>
    <title>「納期」</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/07/11-0053.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2629</id>

    <published>2010-07-10T15:53:09Z</published>
    <updated>2010-07-10T17:35:49Z</updated>

    <summary>私がWillさんいんで仕事をさせていただく前は、某大手企業で17年間ひとすじに納...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>私がWillさんいんで仕事をさせていただく前は、某大手企業で17年間ひとすじに納期管理をしていました。それも、原子力発電に始まり、戦闘機、ミサイル、ロケット、産業用ガスタービンといった、納期的にも品質的にも厳しい分野の部品材料を担当していました。</p>

<p>納期には「要求納期」と「回答納期」、そして「引受納期」と「約束納期」がありました。<br />
「要求納期」は文字通り、お客様からこの日に欲しいと見積／発注とともに要求される納期。それに対して、見積回答時点でこれぐらい掛かりますと答える納期が「回答納期」です。</p>

<p>そして実際に受注した際に、ほとんど自分の頭の中でその製品の生産スケジュールを組み立て、保険として多少のサバを読んで答える納期が「引受納期」になります。</p>

<p>その後、現場や協力会社に頭を下げながら行程を進める一方で、営業や問屋さんを通してお客様と折衝を重ねて、最終的に折り合いが付く納期が「約束納期」です。当然それは発送する日ではなく、製品がお客様に到着する日になります。</p>

<p>＃実際、品質が厳しい製品は最終検査で不良となるケースも多く、「約束納期」はおろか「引受納期」さえも守れないこともしばしばなのです。それ故に対現場、対顧客との信頼関係が重要。厳しい納期と品質管理によって、過去にはノイローゼになった人も何人か居たとか...。</p>

<p>当時は寝ても覚めても「納期」「納期」「納期」。日にちばかり追っかけているのであっという間の17年間でした。</p>

<p>それに対して今の仕事（業界）は「納期」っていう言葉さえ忘れてしまうほど、ちょっと異常なくらい「納期」に対してルーズだと感じています。</p>

<p>そもそも、お客様からの素材提供といったアクションが遅れるのだからどうしようもありません。<br />
以前の仕事では、上流行程が遅れると下流行程で挽回しなければならなかった（下流行程の職場だったのでほとんどそのパターン）のですが、今の仕事は、その上流行程がお客様である場合が多いので、あえて挽回する必要もないのです。<br />
＃長年の以前の仕事の経験上、挽回しなきゃっていう思いに駆られるのですが。</p>

<p>でも、「素材の提供が遅れたから納期がずれます」なんて、以前の仕事ではありえないことでした。</p>

<p>もっとも、ウェブサイトの場合は、原子力部品などの産業製品と違って、日にちが決まっているイベントの告知や募集サイト等でない限り、公開が遅れたからといって、特に企業や民間に大きな影響があるわけでもないですからね。</p>

<p>転職した当時は「納期」からの解放気分に浸っていた時期もあったのですが、最近「納期」に対する意識のギャップがなんだか悶々とするのです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>MT で生成したサムネイルの幅または高さを取得する</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/06/23-2235.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2608</id>

    <published>2010-06-23T13:35:05Z</published>
    <updated>2010-06-23T13:50:15Z</updated>

    <summary>＃blogっぷり！の中で志向の異なる技術ネタw Movable Type で画像...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="MovableType" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="サムネイル" label="サムネイル" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>＃blogっぷり！の中で志向の異なる技術ネタw</p>

<p>Movable Type で画像のサムネイルを生成する場合、元画像へのリンク付きで表示する <code>&lt;$mt:AssetThumbnailLink$&gt;</code> を使う方法と、<br />
サムネイルの URL を表示する <code>&lt;$mt:AssetThumbnailURL$&gt;</code> を使う方法とがあります。</p>

<p>前者の場合、<br />
<code>&lt;$mt:AssetThumbnailLink width=&quot;100&quot;$&gt;</code><br />
とすれば、<br />
<code>&lt;a href=&quot;(元画像のURL)&quot;&gt;&lt;img src=&quot;(生成したサムネイルのURL)&quot; width=&quot;100&quot; height=&quot;75&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;</code><br />
という具合に高さ（<code>&lt;$mt:AssetThumbnailLink$&gt;</code> で高さを指定した場合は幅）を自動計算してソースに表示してくれます。</p>

<p>しかし、後者の場合は<br />
<code>&lt;$mt:AssetThumbnailURL width=&quot;100&quot;$&gt;</code><br />
としても、単にサムネイルの URL を表示するだけなので、<br />
<code>&lt;img src=&quot;&lt;$mt:AssetThumbnailURL width=&quot;100&quot;$&gt;&quot; width=&quot;100&quot; alt=&quot;&quot; /&gt;</code><br />
って感じで、サムネイルの幅を指定した場合は高さが、高さを指定した場合は幅がわからず、ソースに表示できません。</p>

<p>でも、例えばクライアント側にリサイズのスキルがない場合や、画像からパーマリンクへのリンクを貼る場合など、<code>&lt;$mt:AssetThumbnailURL$&gt;</code> を使って、元画像へのリンクを作らずに縮小した画像を表示したいという場合もあります。<br />
このとき、<code>img</code> 要素は、幅（<code>width</code>）や高さ（<code>height</code>）が無くてもエラーにはなりませんが、ネット回線が遅い場合などでは、幅や高さの指定が無いと画像が表示されるまでレイアウトがずれてしまう結果となります。</p>

<p>そこで、<code>&lt;$mt:AssetThumbnailURL$&gt;</code> を使った場合でも、幅あるいは高さを表示できるように考えてみました。</p>]]>
        <![CDATA[<p>元画像の幅を「W」、高さを「H」、サムネイルの幅を「w」、高さを「h」とすると、「W : H = w : h」ですので、幅を指定して生成されたサムネイルの高さを求める計算式は、「h = H / W × w」ですね。<br />
これを Movable Type の変数処理で計算させます。</p>

<p>まず、<code>&lt;mt:Assets&gt;</code> または <code>&lt;mt:(custom field template tag name)Asset&gt;</code> の中で元画像の幅と高さを取得します。</p>

<pre><code>&lt;mt:SetVarBlock name=&quot;photo_width&quot;&gt;&lt;$mt:AssetProperty property=&quot;image_width&quot;$&gt;&lt;/mt:SetVarBlock&gt;
&lt;mt:SetVarBlock name=&quot;photo_height&quot;&gt;&lt;$mt:AssetProperty property=&quot;image_height&quot;$&gt;&lt;/mt:SetVarBlock&gt;</code></pre>

<p>続いて、サムネイルの高さを求める計算。（サムネイルの幅を 100pixel とした場合）</p>

<pre><code>&lt;mt:SetVar name=&quot;photo_height&quot; op=&quot;/&quot; value=&quot;$photo_width&quot;&gt;
&lt;mt:SetVar name=&quot;photo_height&quot; op=&quot;*&quot; value=&quot;100&quot;&gt;</code></pre>

<p>これを、<code>&lt;$mt:AssetThumbnailURL$&gt;</code> でサムネイルを生成する <code>img</code> 要素の <code>hieght</code> 属性の値に入れると、</p>

<pre><code>&lt;img src=&quot;&lt;$mt:AssetThumbnailURL width=&quot;100&quot;$&gt;&quot; width=&quot;100&quot; height=&quot;&lt;$mt:Var name=&quot;photo_height&quot;$&gt;&quot; alt=&quot;&quot; /&gt;</code></pre>

<p>ですが、先の計算結果によっては小数点以下が続く場合がありますので、次のようにします。</p>

<pre><code>&lt;img src=&quot;&lt;$mt:AssetThumbnailURL width=&quot;100&quot;$&gt;&quot; width=&quot;100&quot; height=&quot;&lt;$mt:Var name=&quot;photo_height&quot; op=&quot;+&quot; value=&quot;0.5&quot; sprintf=&quot;%d&quot;$&gt;&quot; alt=&quot;&quot; /&gt;</code></pre>

<p><code>op=&quot;+&quot; value=&quot;0.5&quot; sprintf=&quot;%d&quot;</code> は、四捨五入するための記述です。値に 0.5 を足して整数部分を取り出しています。<br />
※四捨五入の方法は「<a href="http://www.apstars.com/blog/211movable_type4/mt42_4.php">MT4.2:テンプレートタグのみで切り捨て，切り上げ，四捨五入の演算（Under the Bridge）</a>」を参考にさせていただきました。</p>

<p>これを、横長の画像と縦長の画像の両方に対応し、長い方の辺を 100pixel としたサムネイルを生成する場合で纏めると、以下のようになります。</p>

<pre><code>&lt;mt:Assets&gt; or &lt;mt:(custom field template tag name)Asset&gt;
&lt;mt:SetVarBlock name=&quot;photo_width&quot;&gt;&lt;$mt:AssetProperty property=&quot;image_width&quot;$&gt;&lt;/mt:SetVarBlock&gt;
&lt;mt:SetVarBlock name=&quot;photo_height&quot;&gt;&lt;$mt:AssetProperty property=&quot;image_height&quot;$&gt;&lt;/mt:SetVarBlock&gt;
&lt;mt:If name=&quot;photo_width&quot; gt=&quot;$photo_height&quot;$&gt;
    &lt;mt:SetVar name=&quot;photo_height&quot; op=&quot;/&quot; value=&quot;$photo_width&quot;&gt;
    &lt;mt:SetVar name=&quot;photo_height&quot; op=&quot;*&quot; value=&quot;100&quot;&gt;
    &lt;img src=&quot;&lt;$mt:AssetThumbnailURL width=&quot;100&quot;$&gt;&quot; width=&quot;100&quot; height=&quot;&lt;$mt:Var name=&quot;photo_height&quot; op=&quot;+&quot; value=&quot;0.5&quot; sprintf=&quot;%d&quot;$&gt;&quot; alt=&quot;&quot; /&gt;
&lt;mt:Else&gt;
    &lt;mt:SetVar name=&quot;photo_width&quot; op=&quot;/&quot; value=&quot;$photo_height&quot;&gt;
    &lt;mt:SetVar name=&quot;photo_width&quot; op=&quot;*&quot; value=&quot;100&quot;&gt;
    &lt;img src=&quot;&lt;$mt:AssetThumbnailURL height=&quot;100&quot;$&gt;&quot; width=&quot;&lt;$mt:Var name=&quot;photo_width&quot; op=&quot;+&quot; value=&quot;0.5&quot; sprintf=&quot;%d&quot;$&gt;&quot; height=&quot;100&quot; alt=&quot;&quot; /&gt;
&lt;/mt:If&gt;
&lt;/mt:Assets&gt; or &lt;/mt:(custom field template tag name)Asset&gt;</code></pre>

<p>強制的に幅または高さを指定してもよいですが、最近は写真のサイズが必ずしも 6 : 4 ではありませんので、場合によっては画像が歪んでしまいます。デザイン的にその方がきれいな場合もありますが。</p>]]>
    </content>
</entry>

<entry>
    <title>無料で高品質な PDF 作成ソフト</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/06/09-2353.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2591</id>

    <published>2010-06-09T14:53:32Z</published>
    <updated>2010-06-09T15:35:50Z</updated>

    <summary>最近、あらゆる場面で PDF ファイルを作成する機会が増えてきました。資料をメー...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="PC全般" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="pdf" label="PDF" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="フリーソフト" label="フリーソフト" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>最近、あらゆる場面で PDF ファイルを作成する機会が増えてきました。資料をメールに添付して送る時や Web 上に公開する書類をアップロードする時、相手が編集するものでなければ Word や Excel のファイルをそのまま送ったりアップするのではなく、PDF に変換した方が閲覧環境を選びませんし、印刷する場合もページのズレなどが発生しません。</p>

<p>しかし、PDF を閲覧するのは Adobe Reader などのソフトウェアで可能ですが、PDF を作成するとなると、以前は有料のソフトウェアを購入する必要がありました。それも、本格的なもの（Adobe Acrobat など）は高価ですし、数千円の安価なものは品質が悪く、PDF 化した結果、文字と文字（特に括弧）が重なってしまったり、ということがよく発生していました。</p>

<p>でも最近は、元となるファイルをアップロードすると PDF 化してくれる Web サービスや、フリーで高品質な PDF 作成ソフトが登場しています。<br />
先日も、あるクライアントさんから「PDF にするにはどうしたらよいのでしょうか？」という問い合わせがあり、<a href="http://www.xlsoft.com/jp/products/primopdf/">PrimoPDF</a> というフリーソフトをお勧めしました。</p>

<p>この PrimoPDF、世界中で人気のソフトウェアというだけあってかなり高品質です。いくつかのファイルを PDF 化してみたところ、ほとんどレイアウトのズレは発生しませんでした。</p>

<p>そればかりか、PDF 化オプションも充実していて、用途に合わせた PDF ファイル作成の設定や文書情報の追加ができたり、開く時にパスワードが必要な PDF や、印刷を許可しない PDF の作成も可能ですので、セキュリティが必要な PDF 作成にも対応します。</p>

<p>さすがに、複数ファイルの結合やページの入れ替えなど、本格的なソフトウェアのようなことはできませんが、品質といい、機能といい、そこいらの安価な PDF 作成ソフトより十分に使えるフリーソフトだと思います。オススメです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Google ロゴがパックマンで遊べます！</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/05/23-0011.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2575</id>

    <published>2010-05-22T15:11:55Z</published>
    <updated>2010-05-23T05:01:30Z</updated>

    <summary>何らかの記念日やイベントに合わせて様々にデザインされている Google ロゴ。...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="Webサイト" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="google" label="google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="パックマン" label="パックマン" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>何らかの記念日やイベントに合わせて様々にデザインされている <a href="http://www.google.co.jp/">Google</a> ロゴ。今回、<a href="http://googlejapan.blogspot.com/2010/05/30.html">パックマン30周年を記念して</a>、5月22日、23日限定でパックマンのゲーム画面になっています。</p>

<p>そして今回、驚くべきは実際に遊べるということ。［Google 検索］ボタンの隣にある［Insert Coin］ボタンをクリックするか、10秒待つと懐かしのゲームが始まります。</p>

<p>さらに、もう一度［Insert Coin］ボタンをクリックすると、ミズパックマンが現れて対戦プレイも可能という充実ぶり。パックマンは矢印キーで、ミズパックマンは W、A、S、D キーで操作します。</p>

<p>世界初の遊べる Google ロゴ。遊んでる暇はないのですが、つい夢中になってしまいます。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.will3in.jp/blog/ishiwa/archives/images/2010/05/23/google_packman.png" rel="lightbox[photo]"><img alt="遊べる 'パックマン' Google ロゴ" src="http://www.will3in.jp/blog/ishiwa/assets_c/2010/05/google_packman-thumb-400x222-651.png" width="400" height="222" class="photo-n" /></a></span></p>

<p><ins>（追記）オリジナルに忠実に、レベルが256面あり、すべてクリアするとスペシャルなことが起こるらしい。時間的にとても無理だ。</ins></p>]]>
        
    </content>
</entry>

<entry>
    <title>CSS Nite LP9「Coder&apos;s Higher」 行ってきました。</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/04/18-0101.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2540</id>

    <published>2010-04-17T16:01:48Z</published>
    <updated>2010-04-19T00:48:39Z</updated>

    <summary>4月17日（土）、東京のベルサール神田で開催された、&quot;CSS Nite LP, ...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="Web制作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cssnite" label="CSS Nite" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="css3" label="CSS3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="html5" label="HTML5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>4月17日（土）、東京のベルサール神田で開催された、"<a href="http://lp9.cssnite.jp/">CSS Nite LP, Disk 9「Coder's Higher」</a>" に行ってきました。CSS Nite のイベントには、2006年7月に開催された "Web標準の日"、2007年7月の "Web標準の日々"、そして2008年4月の MT4 にフォーカスした "LP5MT4" に続いて4回目の参加です。</p>

<p>以前メールで送られてきた参加者属性によると、40歳代は約1割。この業界の中心は20歳代〜30歳代なんですね。そして、8割以上が関東圏からの参加。今までもそうでしたが、島根からは私一人です。行きたいイベントやセミナー等があると快く行かせてもらえるWillさんいんに感謝です。</p>

<p>今回のイベントは「Corder's Higher」ということで、私は行けなかったんですが2007年5月に開催された "CSS Nite LP3 「Corder's High」" の続編として、コーディングにフォーカスした内容で、特に今回は、スピードコーディングや、今流行の jQuery、そして HTML5 と CSS3 について取り上げられるということで、非常に興味深い内容でした。</p>]]>
        <![CDATA[<p>まず初めに「マークアップエンジニアのキャリアパス」というテーマで、"元祖マークアップエンジニア" の森田雄氏による講演。<br />
この"マークアップエンジニア" という肩書き、森田さんが命名されたんですね。今日最初の驚きでした。私も名刺に "マークアップエンジニア" と入れさせていただいているんですが、明らかに私は単なる "HTMLコーダー" ではないにせよ、"マークアップエンジニア" と胸を張って言えるよう、もっともっと多岐に渡ってフロントエンド技術を勉強したいと思います。</p>

<p>続いてのセッションは、大藤幹氏とスキルパートナーズ 大杉充氏による "XHTML&amp;CSS超高速コーディング術 LIVE!"。<br />
テンプレートの活用やシャドウ・コーディングによりコーディング作業自体を速くするということと、普段これが最大のネックなんですが、手戻りを最小限に抑えるということ。今回のセッションの元となる書籍『<a href="http://www.amazon.co.jp/gp/product/4883376710?ie=UTF8&amp;tag=haru3-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4883376710">XHTML&amp;CSS超高速コーディング術</a>』を事前に読んでいましたので、内容はよくわかりました。ただ、LIVEコーディングは正直眠かった。時間が限られてる中での実践は思うように進まなかったりで難しいですよね。</p>

<p>1回目の休憩をはさんで、マインドフリー 徳田和規氏による "Coding with jQuery"、続いて 24-7 長谷川広武氏による "UI実装におけるコーディングあれこれ"。<br />
今や JavaScript はユーザビリティの向上や IE 対応のために必要不可欠と言ってもよいくらいの存在ですが、jQuery などのライブラリによってとても簡単に使えるようになりました。私はこれまで既存の公開されているライブラリを、様々な環境で利用可能かどうかを検証しながら、これは使えると思ったものを利用させていただいてる程度なのですが、これからは jQuery 等も勉強して自分なりにいろいろと使ってみたいと思いました。</p>

<p>2度目の休憩の次は、ドーガ 石本光司氏による "Webパフォーマンス最適化のためのコーディング手法"。<br />
先日4月9日から Google が表示速度をランキングに加味しはじめました。今は google.com だけですが、そのうち日本語サイトも適用されるようになるでしょう。また、ユーザーにストレスを与えないためにも表示速度の改善は重要です。そのために、コーディングレベルでできる改善策として HTTP リクエストを減らすということ。つまり、画像や CSS、JavaScript 等、HTML に読み込むファイル数を極力少なくするということですね。<br />
その中で話に出てきた「CSSスプライト」。ナビゲーションボタンなどを、1枚の画像を CSS で表示位置をずらしながら、複数の要素の背景として表示する手法で、過去に私も使ったことがあります。しかし、テキストを画面から消す "オフレフト"と呼ばれるような手法で実装すると、画像が無効で CSS が有効な場合に何も表示されなくなってしまいますので注意が必要だと思います。</p>

<p>続いて、ピクセルグリッド 高津戸壮氏、AGN 福田泰雄氏による "CSS3 for tomorrow [ver.LP9]"。<br />
CSS3 はまだブラウザの対応が限られているのですが、非常に面白くて楽しく、便利です。今現在、div要素や背景画像を駆使して実現している複雑なデザインが、CSS3 ではおそろしく簡単に実現できます。これからは CSS3 が使えるところは積極的に使い、CSS3 に対応していないブラウザではスタイリッシュなデザインは表現できないけど、情報はきちんと伝えましょう（例えば先進的なブラウザでは角丸になるが、IE は直角など）という考え方でコーディングするのもありですね。既にいくつかのサイトではそのように実装されていますし。<br />
ただ、多くの方が IE を利用してるから難しいんですよね。クライアントも IE を利用してるからデザイン通りになってないじゃないか！ってことになりますし...。</p>

<p>3度目の休憩が終わって、次はピクセルグリッド 小山田晃浩氏とサイバーガーデン 益子貴寛氏による "ノリとツッコミで進める HTML5 ライブコーディング"。<br />
XHTML 1.0 で書かれたページを HTML5 に書き換えるライブコーディングをとおして、HTML5 のいくつかのポイントを知ることができました。プラグインなしで動画が再生できるとうのは有名ですが、より構造を明確にすることが可能になるという点で、早く標準的に使えるようになって欲しいと思いますが、これも IE が非対応。次期 IE9 では対応するということですが、当然 IE6 〜 IE8 もしばらくは使い続けられるわけです。IE で HTML5 を使えるようにする JavaScript "html5.js" を使えば、何とかなるんですが、JavaScript を無効にしている環境を考えると悩ましいです。</p>

<p>最後のセッションは、羽田野太巳による "今日から使えるHTML5 API"。<br />
HTML5 API によって様々なウェブ・アプリケーションが作れるようになるという話。既に <a href="http://www.youtube.com/html5">Youtube が HTML5 動画プレーヤーを試用運転</a>していたり、また、Gmail でのファイルの添付がドラッグ＆ドロップで可能になるなど、HTML5 API によりウェブとデスクトップの境目が無くなりつつある現状。<br />
内容的には難しいセッションでしたが、このようにユーザー体験が向上すると、当然クライアントからそのようなリクエストが来るわけで、そうなると我々コーダーは HTML5 API の知識が必要になってくるということを聞いて、こりゃあ、年齢が...なんて言ってられないなって、正直焦りを感じました。</p>

<p>最後はこのイベントに合わせて企画されたコーディングコンテストの審査発表。私は年度末のまっただ中で、全く参加する余裕がなかったのですが、この審査の解説も行われる、HTML5 と CSS3 にフォーカスした "<a href="http://lp9.cssnite.jp/reprise.html">CSS Nite LP, Disk 9.2（reprise）</a>" もまた興味深いイベントです。</p>]]>
    </content>
</entry>

<entry>
    <title>メイリオ と Arial と UTF-8 と IE との変な関係</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/03/21-2316.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2505</id>

    <published>2010-03-21T14:16:10Z</published>
    <updated>2010-03-23T17:38:33Z</updated>

    <summary>2年半前にも書いたのですが、CSS でのフォント指定を次のように書くと、&quot;メイリ...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="Web制作" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブラウザ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="internetexplorer" label="Internet Explorer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="メイリオ" label="メイリオ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p><a href="http://www.will3in.jp/blog/ishiwa/archives/2007/09/26-2151.php">2年半前にも書いた</a>のですが、CSS でのフォント指定を次のように書くと、"メイリオ" フォントがインストールされている環境では、日本語は "メイリオ" で表示される筈なのですが、なぜか Internet Explorer では "ＭＳ Ｐゴシック" で表示されてしまいます。</p>

<pre><code>font-family: Verdana, Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;</code></pre>

<p>でも、IE のインターネットオプションで、デフォルトのフォントを "メイリオ" に設定すると "メイリオ" で表示されます。つまり、font-family の指定の優先順位は無視されて、IE のデフォルトフォントでの表示になってしまうということ。Firefox など IE 以外のブラウザでは、デフォルトフォントが "ＭＳ Ｐゴシック" となっていても、ちゃんと font-family で指定した優先順位に従って "メイリオ" で表示されます。</p>

<p>これは、font-family の指定で、 "メイリオ" より前に英文フォントを指定していると、IE ではデフォルトフォントでの表示になってしまうのだと、今まで思っていました。</p>]]>
        <![CDATA[<p>Verdana と Arial の指定を外せば "メイリオ" で表示されるのですが、英数字も含めて日本語フォントになってしまうので、Windows XP などのデフォルトで "メイリオ" がインストールされていない環境では英数字も "ＭＳ Ｐゴシック" での表示となり、"メイリオ" や Mac の "ヒラギノ角ゴ Pro W3" とのフォント幅の違いから、新着情報などの日付表記がある部分などで、レイアウトに変な違いがでたりします。</p>

<p>Verdana と Arial の指定を "メイリオ" の後にして、</p>

<pre><code>font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "メイリオ", Meiryo, Verdana, Arial, "ＭＳ Ｐゴシック", sans-serif;</code></pre>

<p>のようにすれば、"メイリオ" がインストールされてない環境での英数字は Verdana または Arial で表示されるのですが、"メイリオ" が適用される環境や、本来英数字を Verdana や Arial で表示したい Mac の環境でも日本語フォントでの表示になってしまいます。</p>

<p>ちなみに、Mac のフォントを "メイリオ" や "ＭＳ Ｐゴシック" より前に書いているのは、MS Office がインストールされた Mac で、Mac のフォントを優先させるため。</p>

<p>そのため、最近は <a href="http://www.lalit.org/lab/javascript-css-font-detect">fontdetect.js</a> を IE の条件付きコメントで読み込ませ、IE では "メイリオ" がインストールされているかどうかを判別して、"メイリオ" があれば専用の CSS を適用させるなど、面倒なことをしていました。</p>

<p>それが、現在制作中のサイトでいろいろいじっていて、単に "メイリオ" より前に英文フォントを指定することによる IE の問題ではないということがわかりました。</p>

<p>まず、この現象は文字コードが UTF-8 の場合に発生するということ。Shift_JIS や EUC-JP の場合は Verdana と Arial を先頭に指定しても、IE でも問題なく font-family で指定した優先順位によるフォントで表示されます。</p>

<p>そして、もう一つ決定的なことが。それは、どうも Arial フォントの指定に問題があるということ。いや、問題があるのは IE なのですが...。</p>

<p>つまり、Arial フォントの指定をやめて、</p>

<pre><code>font-family: Verdana, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Osaka", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;</code></pre>

<p>とすれば、IE でも、そして UTF-8 でも正しく "メイリオ" で表示されます。</p>

<p>まあ、一般的に Mac も Windows も最近は Verdana フォントがインストールされているでしょうから、Arial フォントの指定がなくても影響はありません。</p>

<p>それにしても、IE の挙動にはほとほと困ります。次期 IE9 はかなり改善されるようですが、IE9 がリリースされても IE8 や IE7、さらには IE6 までもがしばらくは使い続けられるわけで、早く IE も古いバージョンのサポートを打ち切って欲しいものです。</p>

<p><ins>（2010年 3月24日追記）<br />
更に発覚。上記の表記で  "メイリオ" で表示されるのは、IE8 の場合でした。IE7 ではやっぱり "ＭＳ Ｐゴシック" になります。それも、文字コードに関係なく。<br />
なんだか、ホントに Internet Explorer って嫌なブラウザです。</ins></p>]]>
    </content>
</entry>

<entry>
    <title>Windows Vista RTM、XP SP2、2000のサポート終了時期</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/03/10-1920.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2491</id>

    <published>2010-03-10T10:20:50Z</published>
    <updated>2010-03-10T11:00:52Z</updated>

    <summary>以前から予告されていましたが、本日、Windows Vista RTM（製品初期...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="PC全般" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="サポート" label="サポート" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>以前から予告されていましたが、本日、Windows Vista RTM（製品初期版）、Windows XP Service Pack 2（SP2）、Windows 2000 について、サポート終了時期が発表されました。</p>

<p>Windows Vista RTM のサポートは2010年4月13日に、Windows XP SP2 と Windows 2000 の延長サポートは2010年7月13日に終了します。サポート終了後はセキュリティ更新プログラムの提供が行われません。</p>

<p>Windows Vista RTM は Vista SP2 へ、WIndows XP SP2 は SP3 へのバージョンアップが、Windows 2000 は Windows 7 などの最新OSへアップグレードが必要になります。</p>

<p>そんな最中、Windows 2000 を"延命"させるソフトウェアが発売されたようです。<br />
（<a href="http://itpro.nikkeibp.co.jp/article/NEWS/20100310/345623/">Windows 2000 Professionalの"延命"ソフトを発売、フォティーンフォティ技術研究所</a>）</p>

<p>Windows 2000 Server 向けならともかく、個人的にはクライアントOS用までは要らないんじゃないかと。<br />
なぜなら、Windows 2000 は Internet Explorer 7 以上をインストールすることができません。先日も <a href="http://www.itmedia.co.jp/news/articles/1003/08/news030.html">Internet Explorer 6 の"葬儀"</a>が行われるなど、世界中で IE6 撲滅運動が行われている中、IE6 までしか使えない Windows 2000 は、延命などせずに、早急にアップグレードして欲しいものです。<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>オンラインで画像編集ができる PHOTOX</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/02/28-1239.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2465</id>

    <published>2010-02-28T03:39:37Z</published>
    <updated>2010-02-28T04:15:53Z</updated>

    <summary>PHOTOX（フォトックス）は、オンラインで画像編集ができる無料のサービス。サイ...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="Webサイト" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p><a href="http://photox.chicappa.jp/">PHOTOX</a>（フォトックス）は、オンラインで画像編集ができる無料のサービス。サイズ変更、トリミング、回転、シャープ、ぼかし、コントラスト、ガンマ補正や、セピア、鉛筆画などのエフェクトがブラウザ上で可能です。</p>

<p>他にも画像編集ができるウェブサービスがいくつかありますが、PHOTOX は日本語なので、初めての方にも簡単に操作できると思います。</p>

<p>手順は画像をアップロードして編集、ダウンロードするだけ。編集に失敗したら元に戻すことも可能で、ダウンロードする画像は10段階の画質から選ぶことができます。</p>

<p>ブログに掲載する写真のサイズ変更や補正など、Photoshop などの画像編集ソフトがなくても簡単にできますね。</p>]]>
        
    </content>
</entry>

<entry>
    <title>韓国のウェブ・アクセシビリティ</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/02/25-1908.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2464</id>

    <published>2010-02-25T10:08:29Z</published>
    <updated>2010-02-25T12:20:54Z</updated>

    <summary>IT先進国の韓国では2008年4月に、公共機関や企業のサイトにアクセシビリティを...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="Web制作" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="アクセシビリティ" label="アクセシビリティ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="韓国" label="韓国" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>IT先進国の韓国では2008年4月に、公共機関や企業のサイトにアクセシビリティを義務付ける法律が施行されています。</p>

<p>なんでも、公共機関、医療機関、福祉施設、従業員300人以上の企業のウェブサイトは2009年4月までに、その他のウェブサイトは5年以内に、アクセシビリティを遵守するよう義務付けていて、違反があった場合は、3年以下の懲役または3000万ウォン（日本円で約230万円）以下の罰金が科されるという、厳しいものなんだそうです。<br />
（参考：<a href="http://it.nikkei.co.jp/internet/news/index.aspx?ichiran=True&amp;n=MMIT13000002092008&amp;Page=1">動画大国・韓国で急務のユニバーサルデザイン対応：2008年9月2日付け IT-PLUS</a>）</p>

<p>アメリカでは2001年にリハビリテーション法第508条が施行されており、アメリカ連邦政府の機関が所有する電子技術や情報技術（ウェブサイトを含む）のアクセシビリティを義務付けていますが、それに対し、韓国の場合は最終的に全てのウェブサイトに適用されます。</p>

<p>一方、日本では、2004年に制定された JIS X 8341 がありますが、これは"規格"であり、"法律"ではないので、遵守するもしないも勝手。当然、罰則などありません。<br />
最近やっと各方面でアクセシビリティ対応が言われるようになってきた一方で、技術の進歩とともにアクセシビリティがなおざりにされてしまっている現状があるのも事実。</p>

<p>韓国のウェブサイトがその後どう改善されたか気になるところですが、高齢国日本ももう少し厳しくてもよいのではないでしょうか。</p>]]>
        
    </content>
</entry>

<entry>
    <title>ジャストシステム　ホームページ・ビルダー</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/02/16-2140.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2449</id>

    <published>2010-02-16T12:40:50Z</published>
    <updated>2010-02-16T15:34:11Z</updated>

    <summary>主に行政関係や個人ユーザーに人気のホームページ作成ソフト「IBM　ホームページ・...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="PC全般" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ibm" label="IBM" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ジャストシステム" label="ジャストシステム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ホームページビルダー" label="ホームページビルダー" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>主に行政関係や個人ユーザーに人気のホームページ作成ソフト「IBM　ホームページ・ビルダー」が、次期バージョンより「ジャストシステム　ホームページ・ビルダー」となるようです。<br />
<a href="http://www.justsystems.com/jp/news/2010f/news/j02161.html?e=dsibm0216_12">ジャストシステムがIBMから「ホームページ・ビルダー」のプログラム著作権と商標権を取得</a></p>

<p>個人的に「ホームページ・ビルダー」は過去に講習で扱ったことがある程度ですが、どこでも配置モードなどという、とんでもない機能や、ワープロライクなツールボタン群によって、Web標準やアクセシビリティとは大きくかけ離れたウェブページを作り上げてしまうというイメージがあります。もちろん、"正しい"ウェブページを作ることも可能なんでしょうが、そのためには様々な知識を要しますし、操作が複雑になります。</p>

<p>現在のバージョンはそれなりに改善されているとは思いますが、どのみちビジュアルエディタのみで作るウェブページは、とんでもないソースコードを吐き出しますし、アクセシビリティ的に問題がある場合があります。</p>

<p>もっとも、これは Dreamweaver などでも同じことで、個人が趣味で作るウェブサイトならともかく、そうでない場合、HTML や CSS の知識がある程度あって、制作効率を上げるために Dreamweaver などのツールを使うのならよいですが、そういう知識なくワープロ感覚で使われると困ります。<br />
ワープロ感覚で作ってもよかったのは、Web標準やアクセシビリティが言われるようになる前の、テーブルレイアウトが全盛だった、過去の時代のことだと思っています。</p>

<p>ところでジャストシステムといえば、「一太郎」や「ATOK」が有名です。今後ますます「ホームページ・ビルダー」のシェアが拡大していきそうな予感がします。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Google 年内に IE6 サポートを終了</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/02/10-1845.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2445</id>

    <published>2010-02-10T09:45:40Z</published>
    <updated>2010-02-10T10:08:58Z</updated>

    <summary>3月までに Google ドキュメントと Google サイトで古いブラウザのサ...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="ブラウザ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="google" label="Google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ie6" label="IE6" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>3月までに Google ドキュメントと Google サイトで古いブラウザのサポートを停止すると発表していた Google ですが、Gmail と Google カレンダーについても、年内に IE6 などの古いブラウザ<sup>※</sup>のサポートを終了するようです。</p>

<p>既に YouTube（これも Google 傘下ですね）などが、IE6 のサポートを打ち切ると宣言するなど、IE6 撲滅運動が広がっています。</p>

<p>このブログで何度も書いてますが、IE6 は非常に問題のあるブラウザで（IE7 も多少問題あり）、IE6 が存在する為に Web制作者は苛立たしく、面倒な作業をしなければなりません。だからこうして大手サイトが IE6 のサポートを打ち切るのはとても前向きなよいことです。</p>

<p>しかし、マイクロソフトは Windows XP のサポートが終了するまで IE6 をサポートすると言っているようです。本当はマイクロソフトが率先して IE6 のサポートを打ち切り、強制的にでも IE8 へのバージョンアップをして欲しいのですが。</p>

<p>※古いブラウザ： IE6、Firefox 2.0、Safari 2.0、Chrome 3.0</p>]]>
        
    </content>
</entry>

<entry>
    <title>Firefox 3.6 間もなくリリース</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/01/21-1913.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2413</id>

    <published>2010-01-21T10:13:08Z</published>
    <updated>2010-01-21T10:56:52Z</updated>

    <summary>Firefox 3.6 が日本時間1月22日午前2時に正式にリリースされます。 ...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="ブラウザ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="firefox" label="Firefox" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="personas" label="Personas" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>Firefox 3.6 が日本時間1月22日午前2時に正式にリリースされます。<br />
<a href="http://mozilla.jp/press/releases/2010/01/21/">Mozilla Japan - プレスリリース - Mozilla、Firefox 3.6 正式版を発表！！</a></p>

<p>Beta 版と RC1（リリース候補）は更新機能によって正式版にアップデートされ、RC2 はそのまま正式版として使えるようです。私は一足先に RC2 を入れています。</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.will3in.jp/blog/ishiwa/archives/images/2010/01/21/firefox36.png" rel="lightbox[photo]"><img alt="Firefox 3.6 と Personas" src="http://www.will3in.jp/blog/ishiwa/assets_c/2010/01/firefox36-thumb-200x150-571.png" width="200" height="150" class="photo-l" /></a></span></p>

<p>他のブラウザに比べて Firefox は特に起動時など重い印象があるのですが、今回のパフォーマンスの向上と JavaScript の高速化によって幾分早くなっています。</p>

<p>また、「Personas」（ペルソナ）は、Google Chrome のテーマのように、ブラウザの外観を替えることができるもので、<a href="http://www.getpersonas.com/">Personas for Firefox</a> にはすでに40,000以上ものデザインが公開されています。テーマにマウスを乗せると実際にプレビューされるので便利です。<br />
さらに、<a href="https://addons.mozilla.org/ja/firefox/addon/10900">Personas</a> アドオンをインストールすると、ステータスバー左のアイコンから簡単にデザインを選ぶことができます。</p>

<p>なお、日本地図上にダウンロード状況をリアルタイムに表示する「<a href="http://tomoshibi.mozilla.jp/">Firefox 3.6 の灯</a>」が、今回もオープンするようです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>書いてたら年頭所感のようになってしまいました。</title>
    <link rel="alternate" type="text/html" href="http://www.will3in.jp/blog/ishiwa/archives/2010/01/10-2312.php" />
    <id>tag:www.will3in.jp,2010:/blog/ishiwa//10.2394</id>

    <published>2010-01-10T14:12:03Z</published>
    <updated>2010-01-10T15:51:47Z</updated>

    <summary>2010年もあっという間に10日が過ぎ去って行きました。 遅ればせながら、本年も...</summary>
    <author>
        <name>いしわ</name>
        
    </author>
    
        <category term="PC全般" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web制作" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブラウザ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.will3in.jp/blog/ishiwa/">
        <![CDATA[<p>2010年もあっという間に10日が過ぎ去って行きました。<br />
遅ればせながら、本年もよろしくお願いいたします。</p>

<p>今年もIT関連はめまぐるしく進化していくんでしょうね。<br />
年明け一番に、Google が Android 携帯"Nexus One"を発表しましたが、続いて Apple が、1月27日にサンフランシスコで開催されるイベントで、いよいよタブレットPCを発表するとの噂です。2009年、好調だったネットブックは更に売れ行きが加速するでしょうし、スマートフォンブームの火付け役だった iPhone もますます人気です。</p>

<p>今後、ウェブを閲覧する環境が、パソコンから画面の小さいネットブックやスマートフォン、あるいはゲーム機に、ますますシフトしていくのではないかと思います。また、操作方法もマウスとキーボードに加え、タッチパネルによる操作が普及していくのでしょう。</p>

<p>一方パソコンのブラウザは、Internet Explorer と Firefox のシェア争いがますます加速しそうですし、Safari や Google Chrome も僅かずつシェアを拡大しています。今年 Google からリリースされる予定の Chrome OS を搭載したパソコンが発売されると Chrome ブラウザのシェアはさらに増えるかもしれません。ただ、IE6 が消えるのはまだまだ先のようですが．．．。</p>

<p>そしていよいよ JIS X 8341-3 の改訂版も出ますし、HTML5 や CSS3 などの新しい仕様や技術の実装も進んでいきます。</p>

<p>ウェブの業界は、私より10歳くらい若い世代が中心ですが、私自身この業界ではまだまだ若輩者。<br />
ますます加速するIT業界と時の流れに呑み込まれてしまわないように、多様化する閲覧環境と新しい仕様や技術に一生懸命付いて行きながら、今年もアクセシビリティとユーザビリティを常に念頭において、ユーザーに優しいウェブ制作を心掛けてまいりたいと思います。</p>]]>
        
    </content>
</entry>

</feed>
