<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>tshinobu.com</title>
	<atom:link href="http://tshinobu.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://tshinobu.com/blog</link>
	<description></description>
	<pubDate>Fri, 05 Feb 2010 04:19:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SOY CMSのSOY Inquiryのフォームに一工夫加える</title>
		<link>http://tshinobu.com/blog/archives/285</link>
		<comments>http://tshinobu.com/blog/archives/285#comments</comments>
		<pubDate>Fri, 05 Feb 2010 04:13:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[cms]]></category>

		<category><![CDATA[cms soycms]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=285</guid>
		<description><![CDATA[SOY CMS の SOY Inquiry は簡単にお問い合わせフォームを作ることができます。お問い合わせされた内容はCSVではき出したり SOY Mail で管理することができるので大変便利です。いくつかのサイトで利用させてもらっているのですが、出力されるフォームをカスタマイズしたいということがあると思います。チェックボックス「その他」の後に入力ボックスをつけたい、メールやサンクス画面で項目名がまるまる表示されてしまうので管理用とは別に表示用の長い項目名を使用したい、など。そういうときに使えるハックを覚書しておきます。SOY CMSの既存ファイルを優先的に表示する特性を活かした、フォームの入力画面を静的HTMLで偽装する方法です。
１．app/webapp/inquiry/src/template/以下のSOY Inquiryのテンプレート、form.phpとconfirm.php中の &#60;form aciton="#"&#62; を &#60;form action="index.php"&#62; へ変更しアップロードし更新します。
２．出力されたフォームをファイル名index.htmlでローカルに保存します。
３．保存したフォームのHTMLファイルをエディタなどで直接編集しカスタマイズしていきます。
フォームの項目名や項目の表示位置などを変えていきますが、name属性やvalue値は変更しないでください。
フォームの最後のほうにある、 &#60;input name="data[hash]&#8221; type=&#8221;hidden&#8221; value=&#8221;ほげほげ&#8221; /&#62; はコメントアウトしておきます。
４．保存したフォームのHTMLの一番上に以下の記述を加えます。
&#60;?php
if(isset($_GET["complete"])){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ＜お問い合わせフォームのURL＞/index.php?complete&#38;trackid=".$_GET["trackid"]);
exit();
}
?&#62;
５．保存したフォームのHTMLを、お問い合わせフォームのURLと同じディレクトリ構成でアップロードします。
６．お問い合わせフォームのURLと同じディレクトリに以下内容が含まれる.htaccessを制作しアップロードします。
AddType application/x-httpd-php .htm .html
７．お問い合わせフォームへはindex.htmlでリンク、もしくはスラ止めにしたときにindex.htmlが表示されるようにしておきます。以上で完成です。
最初は静的なHTML（index.html）を表示させて、データの投入はSOY Inquiry（index.php）にリンクさせています。フォームの最初の画面のみ注意事項が表示されるといったことも可能ですので、一手間かかりますが細やかなカスタマイズをしたリッチなフォームを作ることができます。ただし、送信後の画面から「訂正する」を押すとカスタマイズ前のSOY CMS独自のページとフォームになりますので、デザインの変更程度にとどめるのがよろしいかと思います。ちょっと変えたいといったときに試してみてください！バージョンやサーバ環境のかねあいもありうまくいかなかったらごめんなさい。あと脆弱性につながるようでしたらこそっと教えてください。
なお、2月20日に開催する「CSS Nite in TAKAMATSU, Vol.2 powered by KDDIウェブコミュニケーションズ 国産CMS特集」でこのSOY CMSについて触れられます。昨今業界で多く取り上げられている各種CMSを知ることは、Web業界の流れを知り、これからWeb制作を行っていく上で重要なポイントになると思います。またCMSの導入に併せて考えないといけないのがレンタルサーバー選び。レンタルサーバー選びのツボも教えていただけるとのこと。興味のある方はぜひご参加ください。

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.soycms.net/">SOY CMS</a> の<a href="http://app.soycms.net/list/app/SOY%20Inquiry"> SOY Inquiry</a> は簡単にお問い合わせフォームを作ることができます。お問い合わせされた内容はCSVではき出したり <a href="http://app.soycms.net/list/app/SOY%20Mail">SOY Mail</a> で管理することができるので大変便利です。いくつかのサイトで利用させてもらっているのですが、出力されるフォームをカスタマイズしたいということがあると思います。チェックボックス「その他」の後に入力ボックスをつけたい、メールやサンクス画面で項目名がまるまる表示されてしまうので管理用とは別に表示用の長い項目名を使用したい、など。そういうときに使えるハックを覚書しておきます。SOY CMSの既存ファイルを優先的に表示する特性を活かした、フォームの入力画面を静的HTMLで偽装する方法です。</p>
<p>１．app/webapp/inquiry/src/template/以下のSOY Inquiryのテンプレート、form.phpとconfirm.php中の <code>&lt;form aciton="#"&gt;</code> を <code>&lt;form action="index.php"&gt;</code> へ変更しアップロードし更新します。</p>
<p>２．出力されたフォームをファイル名index.htmlでローカルに保存します。</p>
<p>３．保存したフォームのHTMLファイルをエディタなどで直接編集しカスタマイズしていきます。<br />
フォームの項目名や項目の表示位置などを変えていきますが、name属性やvalue値は変更しないでください。<br />
フォームの最後のほうにある、 <code>&lt;input name="data[hash]&#8221; type=&#8221;hidden&#8221; value=&#8221;ほげほげ&#8221; /&gt;</code> はコメントアウトしておきます。</p>
<p>４．保存したフォームのHTMLの一番上に以下の記述を加えます。</p>
<pre>&lt;?php
if(isset($_GET["complete"])){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ＜お問い合わせフォームのURL＞/index.php?complete&amp;trackid=".$_GET["trackid"]);
exit();
}
?&gt;</pre>
<p>５．保存したフォームのHTMLを、お問い合わせフォームのURLと同じディレクトリ構成でアップロードします。</p>
<p>６．お問い合わせフォームのURLと同じディレクトリに以下内容が含まれる.htaccessを制作しアップロードします。</p>
<pre>AddType application/x-httpd-php .htm .html</pre>
<p>７．お問い合わせフォームへはindex.htmlでリンク、もしくはスラ止めにしたときにindex.htmlが表示されるようにしておきます。以上で完成です。</p>
<p>最初は静的なHTML（index.html）を表示させて、データの投入はSOY Inquiry（index.php）にリンクさせています。フォームの最初の画面のみ注意事項が表示されるといったことも可能ですので、一手間かかりますが細やかなカスタマイズをしたリッチなフォームを作ることができます。ただし、送信後の画面から「訂正する」を押すとカスタマイズ前のSOY CMS独自のページとフォームになりますので、デザインの変更程度にとどめるのがよろしいかと思います。ちょっと変えたいといったときに試してみてください！バージョンやサーバ環境のかねあいもありうまくいかなかったらごめんなさい。あと脆弱性につながるようでしたらこそっと教えてください。</p>
<p>なお、2月20日に開催する「<a href="http://cssnite.webridge-kagawa.com/vol2/">CSS Nite in TAKAMATSU, Vol.2 powered by KDDIウェブコミュニケーションズ 国産CMS特集</a>」でこのSOY CMSについて触れられます。昨今業界で多く取り上げられている各種CMSを知ることは、Web業界の流れを知り、これからWeb制作を行っていく上で重要なポイントになると思います。またCMSの導入に併せて考えないといけないのがレンタルサーバー選び。レンタルサーバー選びのツボも教えていただけるとのこと。興味のある方はぜひご参加ください。</p>
<p><a href="http://cssnite.webridge-kagawa.com/vol2/"><img class="alignnone" title="CSS Nite in TAKAMATSU, Vol.2" src="http://cssnite.webridge-kagawa.com/vol2/shared/img/bnr-reservation-vol2.jpg" alt="" width="180" height="165" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/285/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fireworksでスライス名を一括置換するスクリプト(jsf)</title>
		<link>http://tshinobu.com/blog/archives/279</link>
		<comments>http://tshinobu.com/blog/archives/279#comments</comments>
		<pubDate>Thu, 14 Jan 2010 05:19:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[html/css]]></category>

		<category><![CDATA[fireworks]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=279</guid>
		<description><![CDATA[Fireworksのスクリプトの実行、今日めんどいなあと思う作業があって調べてみたんですけど、便利すぎて衝撃的でした。今までどうして知らなかったんだろうという感じです。以下サイトでいくつか紹介されていますが、スライスに連番＋一括名前設定は効率的すぎてやばいです。さっそく使わさせてもらっています。
■オリジナルツール / Fireworks用オリジナルコマンド(jsf)一覧 (PIXEL LAB)
http://www.pixelimage.jp/blog/2008/02/_fireworks.html
で、上記サイトを参考に僕もFireworksでスライス名を一括置換するスクリプトを書いてみました。以下スクリプトを拡張子「jsf」で保存、対象のスライスを選択して「コマンド」→「スクリプトの実行」→保存したスクリプトを読み込んでご利用いただけます。「C:\Documents and Settings\～ユーザー名～\Application Data\Adobe\Fireworks CS3\Commands」に入れれば「コマンド」メニューに加わります。スライスを流用するのだけどそのままの名前では使えないときや、ガイドラインでハイフンは使用禁止でアンダースコアにしなきゃいけなくなったとか、なんにせよスライス名を置換したいシチュエーションってけっこうあるので覚え書きしておきます。
var dom = fw.getDocumentDOM()
var le = fw.selection.length;
var sliceArray = new Array();

for (var i=0;i&#60;le;i++){if(fw.selection[i] =="[object SliceHotspot]")sliceArray.push(i);}
var leng = sliceArray.length;

var searchName = prompt('SEARCH',( fw.newName &#124;&#124; ""));
fw.searchName = searchName;
var replaceStr = prompt('REPLACE',( fw.numberStr &#124;&#124; ""));
fw.replaceStr = replaceStr;

for (var i=0;i&#60;leng;i++){
    var n = sliceArray[leng-i-1];
    fw.selection[n].baseName = fw.selection[n].baseName.replace(fw.searchName,fw.replaceStr);
}
jsfファイルのダウンロードはこちらから
]]></description>
			<content:encoded><![CDATA[<p>Fireworksのスクリプトの実行、今日めんどいなあと思う作業があって調べてみたんですけど、便利すぎて衝撃的でした。今までどうして知らなかったんだろうという感じです。以下サイトでいくつか紹介されていますが、スライスに連番＋一括名前設定は効率的すぎてやばいです。さっそく使わさせてもらっています。</p>
<p>■オリジナルツール / Fireworks用オリジナルコマンド(jsf)一覧 (PIXEL LAB)<br />
<a href="http://www.pixelimage.jp/blog/2008/02/_fireworks.html">http://www.pixelimage.jp/blog/2008/02/_fireworks.html</a></p>
<p>で、上記サイトを参考に僕もFireworksでスライス名を一括置換するスクリプトを書いてみました。以下スクリプトを拡張子「jsf」で保存、対象のスライスを選択して「コマンド」→「スクリプトの実行」→保存したスクリプトを読み込んでご利用いただけます。「<code>C:\Documents and Settings\～ユーザー名～\Application Data\Adobe\Fireworks CS3\Commands</code>」に入れれば「コマンド」メニューに加わります。スライスを流用するのだけどそのままの名前では使えないときや、ガイドラインでハイフンは使用禁止でアンダースコアにしなきゃいけなくなったとか、なんにせよスライス名を置換したいシチュエーションってけっこうあるので覚え書きしておきます。</p>
<pre>var dom = fw.getDocumentDOM()
var le = fw.selection.length;
var sliceArray = new Array();

for (var i=0;i&lt;le;i++){if(fw.selection[i] =="[object SliceHotspot]")sliceArray.push(i);}
var leng = sliceArray.length;

var searchName = prompt('SEARCH',( fw.newName || ""));
fw.searchName = searchName;
var replaceStr = prompt('REPLACE',( fw.numberStr || ""));
fw.replaceStr = replaceStr;

for (var i=0;i&lt;leng;i++){
    var n = sliceArray[leng-i-1];
    fw.selection[n].baseName = fw.selection[n].baseName.replace(fw.searchName,fw.replaceStr);
}</pre>
<p><a href="http://tshinobu.com/wp/wp-content/uploads/2010/01/40_slice_replace.jsf">jsfファイルのダウンロードはこちらから</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/279/feed</wfw:commentRss>
		</item>
		<item>
		<title>コーディング時に役立てているブックマークレット</title>
		<link>http://tshinobu.com/blog/archives/255</link>
		<comments>http://tshinobu.com/blog/archives/255#comments</comments>
		<pubDate>Fri, 08 Jan 2010 20:36:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[bookmarklet]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[lifehack]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=255</guid>
		<description><![CDATA[ウェブ制作時に個人的によく利用しているブックマークレット（ブックマークに登録して利用するJavascript）を覚え書きしておきます。あまりまとめサイトなどを調べたりはしていないのですが、ほとんど必要になったものを自作したものです。なにか役に立ちそうなものがあれば使ってください。
a.btn255{background:#EEEEEE;border:1px solid #CCCCCC; padding:10px 20px; display:inline-block; margin-top:0.2em;}
jQueryの読み込み
以下記事を見つけて以来重宝しています。ワンクリックでjQueryの最新版を読み込むブックマークレットです。jQueryとfirebugを使ってサイトを検証したりプログラムを書いたりすることが多いので重宝しています。
http://jsgt.org/mt/archives/01/001873.html
javascript:(function(){var%20s='http://jquery.com/src/jquery-latest.js',%20t='text/javascript',q='u0022',d=document,n=navigator,e;if(/mac/i.test(n.platform)&#38;&#38;/msie/i.test(n.userAgent))(d.createElement('div')).innerHTML='u003cscript%20type='+q+t+q+'%20src='+q+s+q+'u003eu003c/scriptu003e';else{(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)}})();void(0);%20%E3%80%80
jQuery (firefoxならブックマークツールバーにドラッグアンドドロップでインストールできます）
画像を非表示に（要jQuery）
画像にHTML上でwidth/heightを設定していないと画像読み込み時にがたがたがたっと画面が崩れてしまいます。そこでwidth/heightの設定漏れがないよう、img要素のsrc属性を空にして画像がまったく読み込まれていない状態を再現し、チェックするブックマークレットです。
javascript:$("img").each(function(){$(this).attr("src","");});void(0);
ImgHide
画像のwidthとheightを削除（要jQuery）
これはもう使っていないんですが、逆に画像にHTML上でwidth/heightを設定していると、IEでは1pxの差異でもつぶれて表示されます。また機械的に同じサイズの画像を呼び出すシーンがあったとして、呼び出す画像のサイズにばらつきがあれば手直ししなくてはいけません。そこで画像のHTML上のwidth/heightの指定を解除するブックマークレットです。
javascript:$("img").each(function(){$(this).removeAttr("width").removeAttr("height");});alert("done!");void(0);
ImgSizeBreak
画像の代替テキストを表示（要jQuery）
画像の代替テキスト（altテキスト）を画像の下に表示するブックマークレットです。WebDevelopperなどのFirefox拡張を入れれば同等のことが再現できます。会社の規定でFirefox拡張を勝手に入れられない、WebDevelopperを入れるのが面倒くさいときなどにお使いください。
javascript:$("img").each(function(){var%20a=$(this).attr("alt");$(this).after("&#60;span%20style='background:#00FF00'&#62;"+a+"&#60;/span&#62;");});void(0);
ImgAlt
画像ファイル名を表示（要jQuery）
画像のファイル名を画像の下に表示するブックマークレットです。たとえば大量の画像があったときに、どの画像を修正したのかわからない、画像ファイル名にキーとなるワードが入っていて該当の画像をいち早く見つけたい、というようなシーンで使います。
javascript:$("img").each(function(){var%20a=$(this).attr("src");$(this).after("&#60;span%20style='background:#00FF00'&#62;"+a+"&#60;/span&#62;");});void(0);
ImgName
ウィンドウサイズ変更（横幅800px）
Windows XP（デフォルトスキン）のFirefox 3.0で、Firefoxのコンテンツ表示部分の幅を800pxに、ブラウザの高さを一般的なノートパソコンのサイズに変更するブックマークレットです。ウェブデザインの段階で「おさまりチェック」を行うために使用します。一般的なモニタサイズでのブラウザ表示を再現することで、エンドユーザの視点を検証できます。
横幅はプログラム上では845pxとなっていますが、ウィンドウの縁やスクロールバーを引き算して、コンテンツエリア内は800pxの横幅となります。なので、OSや外観や扱う案件などによって変わってきますが、ご自分にあった値を一度設定しておくと、のちのちのチェックや検証が楽になるかと思います。
javascript:window.resizeTo(845,768);
WinPC
ウィンドウサイズ変更（横幅240px）
Windows XP（デフォルトスキン）のFirefox 3.0で、Firefoxのコンテンツ表示部分の幅を240pxに変更するブックマークレットです。モバイルサイトをPCで構築する際に、実機やシミュレータを用意しなくてもある程度モバイルサイトのレイアウトを再現することができます。
javascript:window.resizeTo(256,900);
WinMobile
ウィンドウタイトルを表示
現在開いているサイトのウィンドウタイトルを取得します。ブログやＥメールでウェブサイトを紹介する際に、手打ちやソースを開いたりしなくてもコピペできるようになります。（MakeLinkというすばらしいFirefox拡張はありますが）
javascript:(function(){var%20w=window.open("","","width=400,height=200");w.document.write("%E2%96%A0"+document.title+"&#60;br&#62;"+location.href);w.document.close()})();
ShowTitle
テストサーバと公開サーバを変換
個人的にものすごく使用しています。テストサーバと公開サーバが同じディレクトリ構成の場合、ワンクリックでサーバを切り替えるブックマークレットです。以下スクリプトの「テストサーバ」にテストサーバのURL、「公開サーバ」に公開サーバのURLを入力してご利用ください。たとえば、「http://test.tshinobu.com/blog/?p=255」を「http://tshinobu.com/blog/?p=255」にワンクリックで相互変換できます。入力し直す、Ｅメールを開いてURLをクリックし直す手間が省けるのでかなりストレス軽減できました。
javascript:(function(){var%20l=location;var%20a="テストサーバ";var%20b="公開サーバ";if(l.href.match(a))l.href=l.href.replace(a,b);if(l.href.match(b))l.href=l.href.replace(b,a);})();void(0);
www/test
]]></description>
			<content:encoded><![CDATA[<p>ウェブ制作時に個人的によく利用しているブックマークレット（ブックマークに登録して利用するJavascript）を覚え書きしておきます。あまりまとめサイトなどを調べたりはしていないのですが、ほとんど必要になったものを自作したものです。なにか役に立ちそうなものがあれば使ってください。</p>
<style type="text/css">a.btn255{background:#EEEEEE;border:1px solid #CCCCCC; padding:10px 20px; display:inline-block; margin-top:0.2em;}</style>
<h3>jQueryの読み込み</h3>
<p>以下記事を見つけて以来重宝しています。ワンクリックでjQueryの最新版を読み込むブックマークレットです。jQueryとfirebugを使ってサイトを検証したりプログラムを書いたりすることが多いので重宝しています。<a href="http://jsgt.org/mt/archives/01/001873.html"><br />
http://jsgt.org/mt/archives/01/001873.html</a></p>
<pre>javascript:(function(){var%20s='http://jquery.com/src/jquery-latest.js',%20t='text/javascript',q='u0022',d=document,n=navigator,e;if(/mac/i.test(n.platform)&amp;&amp;/msie/i.test(n.userAgent))(d.createElement('div')).innerHTML='u003cscript%20type='+q+t+q+'%20src='+q+s+q+'u003eu003c/scriptu003e';else{(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)}})();void(0);%20%E3%80%80</pre>
<p><a class="btn255" href="javascript:(function(){var%20s='http://jquery.com/src/jquery-latest.js',%20t='text/javascript',q='u0022',d=document,n=navigator,e;if(/mac/i.test(n.platform)&amp;&amp;/msie/i.test(n.userAgent))(d.createElement('div')).innerHTML='u003cscript%20type='+q+t+q+'%20src='+q+s+q+'u003eu003c/scriptu003e';else{(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)}})();void(0);%20%E3%80%80">jQuery</a> (firefoxならブックマークツールバーにドラッグアンドドロップでインストールできます）</p>
<h3>画像を非表示に（要jQuery）</h3>
<p>画像にHTML上でwidth/heightを設定していないと画像読み込み時にがたがたがたっと画面が崩れてしまいます。そこでwidth/heightの設定漏れがないよう、img要素のsrc属性を空にして画像がまったく読み込まれていない状態を再現し、チェックするブックマークレットです。</p>
<pre>javascript:$("img").each(function(){$(this).attr("src","");});void(0);</pre>
<p><a class="btn255" href='javascript:$("img").each(function(){$(this).attr("src","");});void(0);'>ImgHide</a></p>
<h3>画像のwidthとheightを削除（要jQuery）</h3>
<p>これはもう使っていないんですが、逆に画像にHTML上でwidth/heightを設定していると、IEでは1pxの差異でもつぶれて表示されます。また機械的に同じサイズの画像を呼び出すシーンがあったとして、呼び出す画像のサイズにばらつきがあれば手直ししなくてはいけません。そこで画像のHTML上のwidth/heightの指定を解除するブックマークレットです。</p>
<pre>javascript:$("img").each(function(){$(this).removeAttr("width").removeAttr("height");});alert("done!");void(0);</pre>
<p><a class="btn255" href='javascript:$("img").each(function(){$(this).removeAttr("width").removeAttr("height");});alert("done!");void(0);'>ImgSizeBreak</a></p>
<h3>画像の代替テキストを表示（要jQuery）</h3>
<p>画像の代替テキスト（altテキスト）を画像の下に表示するブックマークレットです。WebDevelopperなどのFirefox拡張を入れれば同等のことが再現できます。会社の規定でFirefox拡張を勝手に入れられない、WebDevelopperを入れるのが面倒くさいときなどにお使いください。</p>
<pre>javascript:$("img").each(function(){var%20a=$(this).attr("alt");$(this).after("&lt;span%20style='background:#00FF00'&gt;"+a+"&lt;/span&gt;");});void(0);</pre>
<p><a href='javascript:$("img").each(function(){var%20a=$(this).attr("alt");$(this).after("&lt;span%20style="background:#00FF00"&gt;"+a+"&lt;/span&gt;");});void(0);' class="btn255">ImgAlt</a></p>
<h3>画像ファイル名を表示（要jQuery）</h3>
<p>画像のファイル名を画像の下に表示するブックマークレットです。たとえば大量の画像があったときに、どの画像を修正したのかわからない、画像ファイル名にキーとなるワードが入っていて該当の画像をいち早く見つけたい、というようなシーンで使います。</p>
<pre>javascript:$("img").each(function(){var%20a=$(this).attr("src");$(this).after("&lt;span%20style='background:#00FF00'&gt;"+a+"&lt;/span&gt;");});void(0);</pre>
<p><a href='javascript:$("img").each(function(){var%20a=$(this).attr("src");$(this).after("&lt;span%20style="background:#00FF00"&gt;"+a+"&lt;/span&gt;");});void(0);' class="btn255">ImgName</a></p>
<h3>ウィンドウサイズ変更（横幅800px）</h3>
<p>Windows XP（デフォルトスキン）のFirefox 3.0で、Firefoxのコンテンツ表示部分の幅を800pxに、ブラウザの高さを一般的なノートパソコンのサイズに変更するブックマークレットです。ウェブデザインの段階で「おさまりチェック」を行うために使用します。一般的なモニタサイズでのブラウザ表示を再現することで、エンドユーザの視点を検証できます。</p>
<p>横幅はプログラム上では845pxとなっていますが、ウィンドウの縁やスクロールバーを引き算して、コンテンツエリア内は800pxの横幅となります。なので、OSや外観や扱う案件などによって変わってきますが、ご自分にあった値を一度設定しておくと、のちのちのチェックや検証が楽になるかと思います。</p>
<pre>javascript:window.resizeTo(845,768);</pre>
<p><a href="javascript:window.resizeTo(845,768);" class="btn255">WinPC</a></p>
<h3>ウィンドウサイズ変更（横幅240px）</h3>
<p>Windows XP（デフォルトスキン）のFirefox 3.0で、Firefoxのコンテンツ表示部分の幅を240pxに変更するブックマークレットです。モバイルサイトをPCで構築する際に、実機やシミュレータを用意しなくてもある程度モバイルサイトのレイアウトを再現することができます。</p>
<pre>javascript:window.resizeTo(256,900);</pre>
<p><a href='javascript:window.resizeTo(256,900);' class="btn255">WinMobile</a></p>
<h3>ウィンドウタイトルを表示</h3>
<p>現在開いているサイトのウィンドウタイトルを取得します。ブログやＥメールでウェブサイトを紹介する際に、手打ちやソースを開いたりしなくてもコピペできるようになります。（MakeLinkというすばらしいFirefox拡張はありますが）</p>
<pre>javascript:(function(){var%20w=window.open("","","width=400,height=200");w.document.write("%E2%96%A0"+document.title+"&lt;br&gt;"+location.href);w.document.close()})();</pre>
<p><a href='javascript:(function(){var%20w=window.open("","","width=400,height=200");w.document.write("%E2%96%A0"+document.title+"&lt;br&gt;"+location.href);w.document.close()})();' class="btn255">ShowTitle</a></p>
<h3>テストサーバと公開サーバを変換</h3>
<p>個人的にものすごく使用しています。テストサーバと公開サーバが同じディレクトリ構成の場合、ワンクリックでサーバを切り替えるブックマークレットです。以下スクリプトの「テストサーバ」にテストサーバのURL、「公開サーバ」に公開サーバのURLを入力してご利用ください。たとえば、「http://test.tshinobu.com/blog/?p=255」を「http://tshinobu.com/blog/?p=255」にワンクリックで相互変換できます。入力し直す、Ｅメールを開いてURLをクリックし直す手間が省けるのでかなりストレス軽減できました。</p>
<pre>javascript:(function(){var%20l=location;var%20a="テストサーバ";var%20b="公開サーバ";if(l.href.match(a))l.href=l.href.replace(a,b);if(l.href.match(b))l.href=l.href.replace(b,a);})();void(0);</pre>
<p><a href='javascript:(function(){var%20l=location;var%20a="テストサーバ";var%20b="公開サーバ";if(l.href.match(a))l.href=l.href.replace(a,b);if(l.href.match(b))l.href=l.href.replace(b,a);})();void(0);' class="btn255">www/test</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/255/feed</wfw:commentRss>
		</item>
		<item>
		<title>2009年を振り返る</title>
		<link>http://tshinobu.com/blog/archives/232</link>
		<comments>http://tshinobu.com/blog/archives/232#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:25:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[diary]]></category>

		<category><![CDATA[2009]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=232</guid>
		<description><![CDATA[年が明けて仕事始めも迎えてしまいましたが、2009年を振り返りたいと思います。最初は抱負の結果だけ書いて2010年の抱負をさくっと書こうと思っていたんですが、書いているうちに振り返ってみるといろいろあったなあ…と面白くなってしまいました。2009年は僕にとっては間違いなく今後の人生を変えた一年だったと感じています。2010年モードになるための大事な儀式ってことで覚え書きしておきます。
2009年の抱負と成果
というわけでまずはmixiでのみ公開していた2009年の抱負を振り返りたいと思います。2008年は上を見すぎていてあんまり達成できなかったので、できることから始めたいと思い、以下の抱負を設定していました。達成状況はこのような感じです。

スポーツジム（フィットネス）に入会します
近くのジムに入会しようと常々思っていたんですが、見学する勇気がなかったり、仕事やプライベートが忙しくなって、参加出来ずじまいになってしまいました。
クラシックを年一回以上鑑賞します
職場で誘われる機会があって7/25開催「NY Meets Takamatsu 2 〜ニューヨーク・シンフォニック・アンサンブルと香川のオペラ歌手たち」に参加できました。クラシック鑑賞ははじめてで鑑賞の仕方もよく分からなかったのですが、オーケストラというあんなにたくさんの楽器が合わさって一つの音楽が奏でられているという事実がすごすぎてびっくりでしたし、イマジネーションあふれる安らかで心地の良い音楽に身体を預けて世界に浸ることが出来てよかったです。ただ同窓会があって12/27「香川愛ピアノリサイタル ～華麗なる超絶技巧の世界～」に参加できなかったのは残念。聞き続けて知識を増やしてもっと楽しめるようになりたいです。
7時間以上の睡眠を心がけます

全く無理でした。年の後半は特に睡眠時間を削ってばかりで、平日は平均3〜4時間眠って休日に寝だめするのが習慣づいてしまいました。仕事以外には支障をきたさないように心がけましたが、おかげで身体も精神もボロボロになって何も出来なくなってしまい、今も若干引きずってます(笑)
美容／ファッションに対して手を抜かない
手を抜かないように心がけた結果、顔や首がただれてしまって回復にかなりの時間を要しました。ステロイド漬けでつぎはぎだらけみたいな顔で何週間か出社しました。皮膚が弱いみたいなので、下手にいじらずに慎重にシャンプーや石鹸を選ぶように心がけるようになりました。ファッションはちょいちょいそろえつつ手を抜きまくりで、基本的に去年の流用みたいな感じになってしまいました。
パソコンを切って過ごす時間をつくる
一眼レフカメラを持ち始めたので、2008年に比べそういう時間は増えましたが、なんだかんだでパソコン漬けだったと思います。
ちょっと勇気を出して先手を打つ／心配りできるようになる
例えば、誰かに話しかけてもらうのではなくて、自分から話しかけにいく。 食事にきたときも誰かが店員を呼ぶのではなくて自分が呼ぶ。 誰かが配膳するのではなくて自分が配膳する。 人として当たり前のことを当たり前にできるように、と思ってこの目標を立てていましたが、2009年後半からはぶっちゃけやる気なくしたような気がします。おかげで肝心なところで動けないなど失敗をしてしまいました。
残念ながら全体的に十分に達成したとはいえない状態であります。というよりも、実は忘れていたというのが正直なところであり、抱負を紙にして貼るなど振り返るような状況作りが必要かしらと思います。
で、2009年前半に考えていたことを思い出しました
2009年前半はとにかくインプット数を増やすように心がけていた気がします。テーマは「赤ちゃんの目で良いものを見る目を養う」こと。福井信蔵氏や中西元男氏の発言に多大な影響を受け、とにかく思慮深く、とにかく真摯にエンドユーザのことを考えるように、そして何より俯瞰視点＝バランス感覚を大事にしてビジネスとしてどのような施策や手法が効果的か常に模索し実践するよう心がけました。別の場所で書いた5月頃の日記がこちら。
ユニクロやソフトバンクなどのサイトは、あらためてサイトにいてとても居心地がよいなーと感じます。そういうものがホントに優れたウェブデザインなのでしょうね。
お客さんは一般人＝デザイナーではないとはいえ、もっている感受性を１００％にして、細かいディティールを感じ、雰囲気を感じ、ものすごく慎重に購買活動をしています。ごまかしは効かないんです。分かるんです。もちろん用件定義にもよりますが、ただこなせばいいというものではありません。ひとつひとつの仕事に真摯に取り組んでいきたいですね。ととどこかの記事で見かけて非常に同意しております。（URLは見失いました…）
クライアントに「おおー発注すると違いますね！発注してよかった」と言われたのがとても嬉しかったです。Web制作はある程度センスがあれば&#8221;一見&#8221;誰でも出来るかもしれない仕事だと僕は考えています。しかしなぜ自分でやらずにプロに任せるのかというと、スケジュールや技術的難しさという要素もあるでしょうが、何よりホントのプロはその場そのときに求められる最適解を何千何百のパターンから見つけ出してくれるからではないかと思います。プロの深い経験や知識に裏付けされた答えに人々はお任せ＜対価を支払いたくなる＞のではないでしょうか。
ときどき、自問しています。
僕はプロフェッショナルか？
自己満足や、妥協に終わっていてはまだまだですね。
くだんの案件は実は流用流用のしょぼしょぼなものでしたが、プロとして少しでも認められたように感じられて、けっこうグッときました。
久しぶりにデザインワークに取り組みましたが実力不足を痛感しました。スケジュール的にタイトではありますが組み立て上時間を掛けることができて幸いでした。征服できていない分野というのはまるでパズルのようです。一度行き詰まったら抜け出しづらいラビリンス。ふと視野が広くなって楽しくなってきたら道は開けてきてまっすぐになるんですけどね。人のものは少々分かるようになってきましたが、自分のものとなると埃にまみれたフィルタみたいなのが掛かってまだまだダメですね。全然余裕じゃないですし「どうだ！」というかんじで驚かせられないのが悔しくて仕方がありません。やはり手を動かして勉強して経験を積んでいくしかないと思いました。
我ながら良いこと言ってる気がします(笑) 最近意識はしていなかったのですが決して忘れてはおらず、毎日度合いは低くとも少しずつ成長できたのではないかと嬉しくなりました。良いものと悪いものを区別する目というか自分の中で水準みたいなのが、まだまだ鍛える必要はありますが、これから引き続き出来ていければいいなあと思います。
そして2009年後半はドタバタしてました。
2009年後半は未踏の地へ旅をしつつイベント運営で走り回っていました。
僕が所属している「Creators Club TAKAMATSU」というところでのつながりで、香川県のWeb制作者のコミュニティ「Webridge Kagawa」を設立し、9/19に「Webridge Meeting SP 〜CSS Nite in TAKAMATSUプロローグ〜」、12/12に四国で初となるCSS Nite「CSS Nite in TAKAMATSU, Vol.1」を開催。それぞれ反省点はもう寝込んでしまうくらい山のようにありますが、9/19は70名程度、12/12は100名程度にご参加いただき無事に終えることが出来ました。ご来場、ご協力いただいたみなさま、本当にありがとうございました。
また、6/27〜28に東京で「CSS Nite LP, Disk 6」に参加、7/11に大阪に北原愛子氏のライブに参戦、8/14〜15は香川の古民家に開発合宿、9/12〜13に東京で「CSS Nite LP, Disk 7」および「インタラ塾」に参加、9/20に広島にSPEEDのライブに参戦（最前列でした！）、10/4に大阪にSPEEDのライブに参戦、11/14に広島に「CSS Nite in HIROSHIMA, Vol.2」に参加。と何かと知らない土地へ足を踏み入れることが多くありました。当然自分の住んでいる街とは町並みも人柄も違っていてとても刺激的でありました。
9月の中頃以降特に力尽きてしまって休んでしまうことも多々ありましたが、いままでの人生の中で最も多くメールを送った時期である気がします。おおよそ100名の方と新しい出会いがあり大変貴重な経験をさせてもらいました。至らないところばかりで迷惑をかけどうしでしたが、本当にたくさんの知らないことを知ることが出来て嬉しく思っております。またささいなことですが、2009年後半には挑戦的なウェブデザインを提案できたこと、かねてからの課題であったActionScriptにも挑戦し案件に活用できたのもよかったです。
まとめまして
2010年をいい年にするかよくない年にするかは自分自身です。2009年で得た反省や気付きを活かしつつ刺激的な一年にしたいと思っております。
]]></description>
			<content:encoded><![CDATA[<p>年が明けて仕事始めも迎えてしまいましたが、2009年を振り返りたいと思います。最初は抱負の結果だけ書いて2010年の抱負をさくっと書こうと思っていたんですが、書いているうちに振り返ってみるといろいろあったなあ…と面白くなってしまいました。2009年は僕にとっては間違いなく今後の人生を変えた一年だったと感じています。2010年モードになるための大事な儀式ってことで覚え書きしておきます。</p>
<h3>2009年の抱負と成果</h3>
<p>というわけでまずはmixiでのみ公開していた2009年の抱負を振り返りたいと思います。2008年は上を見すぎていてあんまり達成できなかったので、できることから始めたいと思い、以下の抱負を設定していました。達成状況はこのような感じです。</p>
<dl>
<dt>スポーツジム（フィットネス）に入会します</dt>
<dd>近くのジムに入会しようと常々思っていたんですが、見学する勇気がなかったり、仕事やプライベートが忙しくなって、参加出来ずじまいになってしまいました。</dd>
<dt>クラシックを年一回以上鑑賞します</dt>
<dd>職場で誘われる機会があって7/25開催「NY Meets Takamatsu 2 〜ニューヨーク・シンフォニック・アンサンブルと香川のオペラ歌手たち」に参加できました。クラシック鑑賞ははじめてで鑑賞の仕方もよく分からなかったのですが、オーケストラというあんなにたくさんの楽器が合わさって一つの音楽が奏でられているという事実がすごすぎてびっくりでしたし、イマジネーションあふれる安らかで心地の良い音楽に身体を預けて世界に浸ることが出来てよかったです。ただ同窓会があって12/27「香川愛ピアノリサイタル ～華麗なる超絶技巧の世界～」に参加できなかったのは残念。聞き続けて知識を増やしてもっと楽しめるようになりたいです。</dd>
<dt>7時間以上の睡眠を心がけます</dt>
</dl>
<dd>全く無理でした。年の後半は特に睡眠時間を削ってばかりで、平日は平均3〜4時間眠って休日に寝だめするのが習慣づいてしまいました。仕事以外には支障をきたさないように心がけましたが、おかげで身体も精神もボロボロになって何も出来なくなってしまい、今も若干引きずってます(笑)</dd>
<dt>美容／ファッションに対して手を抜かない</dt>
<dd>手を抜かないように心がけた結果、顔や首がただれてしまって回復にかなりの時間を要しました。ステロイド漬けでつぎはぎだらけみたいな顔で何週間か出社しました。皮膚が弱いみたいなので、下手にいじらずに慎重にシャンプーや石鹸を選ぶように心がけるようになりました。ファッションはちょいちょいそろえつつ手を抜きまくりで、基本的に去年の流用みたいな感じになってしまいました。</dd>
<dt>パソコンを切って過ごす時間をつくる</dt>
<dd>一眼レフカメラを持ち始めたので、2008年に比べそういう時間は増えましたが、なんだかんだでパソコン漬けだったと思います。</dd>
<dt>ちょっと勇気を出して先手を打つ／心配りできるようになる</dt>
<dd>例えば、誰かに話しかけてもらうのではなくて、自分から話しかけにいく。 食事にきたときも誰かが店員を呼ぶのではなくて自分が呼ぶ。 誰かが配膳するのではなくて自分が配膳する。 人として当たり前のことを当たり前にできるように、と思ってこの目標を立てていましたが、2009年後半からはぶっちゃけやる気なくしたような気がします。おかげで肝心なところで動けないなど失敗をしてしまいました。</dd>
<p>残念ながら全体的に十分に達成したとはいえない状態であります。というよりも、実は忘れていたというのが正直なところであり、抱負を紙にして貼るなど振り返るような状況作りが必要かしらと思います。</p>
<h3>で、2009年前半に考えていたことを思い出しました</h3>
<p>2009年前半はとにかくインプット数を増やすように心がけていた気がします。テーマは「赤ちゃんの目で良いものを見る目を養う」こと。福井信蔵氏や中西元男氏の発言に多大な影響を受け、とにかく思慮深く、とにかく真摯にエンドユーザのことを考えるように、そして何より俯瞰視点＝バランス感覚を大事にしてビジネスとしてどのような施策や手法が効果的か常に模索し実践するよう心がけました。別の場所で書いた5月頃の日記がこちら。</p>
<blockquote><p>ユニクロやソフトバンクなどのサイトは、あらためてサイトにいてとても居心地がよいなーと感じます。そういうものがホントに優れたウェブデザインなのでしょうね。<br />
お客さんは一般人＝デザイナーではないとはいえ、もっている感受性を１００％にして、細かいディティールを感じ、雰囲気を感じ、ものすごく慎重に購買活動をしています。ごまかしは効かないんです。分かるんです。もちろん用件定義にもよりますが、ただこなせばいいというものではありません。ひとつひとつの仕事に真摯に取り組んでいきたいですね。ととどこかの記事で見かけて非常に同意しております。（URLは見失いました…）</p></blockquote>
<blockquote><p>クライアントに「おおー発注すると違いますね！発注してよかった」と言われたのがとても嬉しかったです。Web制作はある程度センスがあれば&#8221;一見&#8221;誰でも出来るかもしれない仕事だと僕は考えています。しかしなぜ自分でやらずにプロに任せるのかというと、スケジュールや技術的難しさという要素もあるでしょうが、何よりホントのプロはその場そのときに求められる最適解を何千何百のパターンから見つけ出してくれるからではないかと思います。プロの深い経験や知識に裏付けされた答えに人々はお任せ＜対価を支払いたくなる＞のではないでしょうか。<br />
ときどき、自問しています。<br />
僕はプロフェッショナルか？<br />
自己満足や、妥協に終わっていてはまだまだですね。<br />
くだんの案件は実は流用流用のしょぼしょぼなものでしたが、プロとして少しでも認められたように感じられて、けっこうグッときました。</p></blockquote>
<blockquote><p>久しぶりにデザインワークに取り組みましたが実力不足を痛感しました。スケジュール的にタイトではありますが組み立て上時間を掛けることができて幸いでした。征服できていない分野というのはまるでパズルのようです。一度行き詰まったら抜け出しづらいラビリンス。ふと視野が広くなって楽しくなってきたら道は開けてきてまっすぐになるんですけどね。人のものは少々分かるようになってきましたが、自分のものとなると埃にまみれたフィルタみたいなのが掛かってまだまだダメですね。全然余裕じゃないですし「どうだ！」というかんじで驚かせられないのが悔しくて仕方がありません。やはり手を動かして勉強して経験を積んでいくしかないと思いました。</p></blockquote>
<p>我ながら良いこと言ってる気がします(笑) 最近意識はしていなかったのですが決して忘れてはおらず、毎日度合いは低くとも少しずつ成長できたのではないかと嬉しくなりました。良いものと悪いものを区別する目というか自分の中で水準みたいなのが、まだまだ鍛える必要はありますが、これから引き続き出来ていければいいなあと思います。</p>
<h3>そして2009年後半はドタバタしてました。</h3>
<p>2009年後半は未踏の地へ旅をしつつイベント運営で走り回っていました。</p>
<p>僕が所属している「<a href="http://cct-web.org/Welcome.html">Creators Club TAKAMATSU</a>」というところでのつながりで、香川県のWeb制作者のコミュニティ「Webridge Kagawa」を設立し、9/19に「<a href="http://webridge-kagawa.com/sp/090919/">Webridge Meeting SP 〜CSS Nite in TAKAMATSUプロローグ〜</a>」、12/12に四国で初となるCSS Nite「<a href="http://cssnite.webridge-kagawa.com/vol1/">CSS Nite in TAKAMATSU, Vol.1</a>」を開催。それぞれ反省点はもう寝込んでしまうくらい山のようにありますが、9/19は70名程度、12/12は100名程度にご参加いただき無事に終えることが出来ました。ご来場、ご協力いただいたみなさま、本当にありがとうございました。</p>
<p>また、6/27〜28に東京で「<a href="http://lp6.cssnite.jp/">CSS Nite LP, Disk 6</a>」に参加、7/11に大阪に北原愛子氏のライブに参戦、8/14〜15は香川の古民家に開発合宿、9/12〜13に東京で「<a href="http://lp7.cssnite.jp/">CSS Nite LP, Disk 7</a>」および「インタラ塾」に参加、9/20に広島にSPEEDのライブに参戦（最前列でした！）、10/4に大阪にSPEEDのライブに参戦、11/14に広島に「<a href="http://cssnite.webtouchmeeting.com/vol2/">CSS Nite in HIROSHIMA, Vol.2</a>」に参加。と何かと知らない土地へ足を踏み入れることが多くありました。当然自分の住んでいる街とは町並みも人柄も違っていてとても刺激的でありました。</p>
<p>9月の中頃以降特に力尽きてしまって休んでしまうことも多々ありましたが、いままでの人生の中で最も多くメールを送った時期である気がします。おおよそ100名の方と新しい出会いがあり大変貴重な経験をさせてもらいました。至らないところばかりで迷惑をかけどうしでしたが、本当にたくさんの知らないことを知ることが出来て嬉しく思っております。またささいなことですが、2009年後半には挑戦的なウェブデザインを提案できたこと、かねてからの課題であったActionScriptにも挑戦し案件に活用できたのもよかったです。</p>
<h3>まとめまして</h3>
<p>2010年をいい年にするかよくない年にするかは自分自身です。2009年で得た反省や気付きを活かしつつ刺激的な一年にしたいと思っております。</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/232/feed</wfw:commentRss>
		</item>
		<item>
		<title>ある要素からの親要素を取得するjavascript関数</title>
		<link>http://tshinobu.com/blog/archives/245</link>
		<comments>http://tshinobu.com/blog/archives/245#comments</comments>
		<pubDate>Mon, 04 Jan 2010 17:31:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=245</guid>
		<description><![CDATA[jQueryのparents()と同等の関数をjQueryレスで実装したいと思い解析して作りました。引数（基点となる要素, 検索する要素）を渡すと、基点となる要素から見て条件にマッチする親要素あるいは親要素群を返す関数です。
/*---------- 親要素を検索する ----------*/
var findParentElement = function(elem, query){
	var result = [];
	var matched = [], cur = elem["parentNode"];
	while ( cur &#38;&#38; cur != document ) {
		if ( cur.nodeType == 1 )
			matched.push( cur );
		cur = cur["parentNode"];
	}
	for (var i=0; i&#60;matched.length; i++){
		reg = new RegExp(query,"i");
		if(matched[i].nodeName.match(reg)){
			result = matched.splice(i,1);
			break;
		}
	}
	return result;
};
/*---------- 親要素郡を検索する ----------*/
var findParentElementsMulti = function(elem, query){
	var result = [];
	var matched = [...]]]></description>
			<content:encoded><![CDATA[<p>jQueryのparents()と同等の関数をjQueryレスで実装したいと思い解析して作りました。引数（基点となる要素, 検索する要素）を渡すと、基点となる要素から見て条件にマッチする親要素あるいは親要素群を返す関数です。</p>
<pre>/*---------- 親要素を検索する ----------*/
var findParentElement = function(elem, query){
	var result = [];
	var matched = [], cur = elem["parentNode"];
	while ( cur &amp;&amp; cur != document ) {
		if ( cur.nodeType == 1 )
			matched.push( cur );
		cur = cur["parentNode"];
	}
	for (var i=0; i&lt;matched.length; i++){
		reg = new RegExp(query,"i");
		if(matched[i].nodeName.match(reg)){
			result = matched.splice(i,1);
			break;
		}
	}
	return result;
};</pre>
<pre>/*---------- 親要素郡を検索する ----------*/
var findParentElementsMulti = function(elem, query){
	var result = [];
	var matched = [], cur = elem["parentNode"];
	while ( cur &amp;&amp; cur != document ) {
		if ( cur.nodeType == 1 )
			matched.push( cur );
		cur = cur["parentNode"];
	}
	for (var i=0; i&lt;matched.length; i++){
		reg = new RegExp(query,"i");
		if(matched[i].nodeName.match(reg)){
			result.push(matched[i]);
		}
	}
	return result;
};</pre>
<p>たとえば、以下のようなHTMLがあったときに「親要素を表示」を押すと「div.release-block」のオブジェクトが返ります。「親要素群を表示」を押すと配列で「div.release-block, div.primary-area, div.main-area, div.container」のオブジェクトが返ります。</p>
<pre>&lt;div class="container"&gt;
  &lt;div class="main-area"&gt;
    &lt;div class="primary-area"&gt;
      &lt;div class="release-block release-block-parent"&gt;
        &lt;h2&gt;本社プレスリリース&lt;/h2&gt;
        &lt;dl&gt;
          &lt;dt&gt;2009年11月18日&lt;/dt&gt;
          &lt;dd&gt;&lt;a href="#" onclick="alert(findParentElement(this,'div'));return(false);"&gt;親要素を表示&lt;/a&gt;&lt;/dd&gt;
          &lt;dt&gt;2009年10月29日&lt;/dt&gt;
          &lt;dd&gt;&lt;a href="#" onclick="alert(findParentElementsMulti(this,'div'));"&gt;親要素群を表示&lt;/a&gt;&lt;/dd&gt;
        &lt;/dl&gt;
      &lt;/div&gt;
      &lt;div class="release-block release-block-group"&gt;
        &lt;h2&gt;関連会社プレスリリース&lt;/h2&gt;
        &lt;dl&gt;
          &lt;dt&gt;2009年11月18日&lt;/dt&gt;
          &lt;dd&gt;&lt;a href="#" onclick="alert(findParentElement(this,'div'));return(false);"&gt;親要素を表示&lt;/a&gt;&lt;/dd&gt;
          &lt;dt&gt;2009年10月29日&lt;/dt&gt;
          &lt;dd&gt;&lt;a href="#" onclick="alert(findParentElementsMulti(this,'div'));"&gt;親要素群を表示&lt;/a&gt;&lt;/dd&gt;
        &lt;/dl&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p><a href="http://tshinobu.com/lab/javascript/find-parent-element.html" target="_blank">サンプル（新しいウィンドウで開きます）</a></p>
<p>返値を利用すれば条件にマッチする要素でかつ、必要なクラス名だけ抽出することも可能です。同等のファンクションを提供する際、HTMLの構造が違う場合に都度分岐させるのは非常に煩雑で面倒なので、繰り返し適用できるように工夫できます。</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/245/feed</wfw:commentRss>
		</item>
		<item>
		<title>ローカル環境でルートパスを読み込むJavascript</title>
		<link>http://tshinobu.com/blog/archives/221</link>
		<comments>http://tshinobu.com/blog/archives/221#comments</comments>
		<pubDate>Sun, 06 Dec 2009 11:54:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=221</guid>
		<description><![CDATA[1年前に自分用に考えたのですが、かなり役立っているのでシェアします。自分のパソコンの環境下において、以下のJavascriptを埋め込むだけで、ルートパスで指定されたファイルを読むこむように補完します。
スクリプト
&#60;script type="text/javascript" src="http://www.google.com/jsapi"&#62;&#60;/script&#62;
&#60;script type="text/javascript"&#62;google.load("jquery", "1.3");&#60;/script&#62;
&#60;script type="text/javascript"&#62;
$(document).ready( function(){
	if(!location.protocol.match("http")){
		var ref = "file:///C:/Documents and Settings/username/デスクトップ/project/html/";
		if( ref.match(/\/$/) ){
			ref = ref.replace(/\/$/, "");
		}
		$("[src^='/']","html").each(function(){
			result = ref + $(this).attr("src");
			$(this).attr("src", result);
		});
		$("[href^='/']","html").each(function(){
			result = ref + $(this).attr("href");
			$(this).attr("href", result);
		});
	}
});
&#60;/script&#62;
使い方

上記スクリプトを確認したいページの&#60;head&#62;もしくは&#60;body&#62;内に貼り付け
上記スクリプトの6行目、ref = &#8220;&#8221;; のなかに補完するサイトルートパスを記述。ルートパスとして扱うローカルのフォルダ名を入力してください。確認したいファイルをFirefoxやOperaで開いたときのパスを入力いただくと確実です。

Windowsの場合の例
var ref = "file:///C:/Documents and Settings/username/デスクトップ/project/html/";
Macの場合の例
var ref = "file://localhost/Users/username/Desktop/project/html/";
共通ファイルがサーバ上にある場合の例
var ref = "http://yahoo.co.jp/";



共通ファイル（画像、CSS、Javascriptなど）をルートパスで読み込んでいるサイトを開発する際、困るのがブラウザ上で制作物を確認できないこと。サイト定義していたらDreamweaver上では見れますがクロスブラウザチェックができません。そこでJavascriptでDreamweaverのサイト定義と同様のことを実現させました。ルートパスをJavaScript実行時に指定のパスに置換します。
OS X Leopard以降ではApache2が標準でバンドルされていますし、WindowsでもApacheやXAMPPを入れられれば、ローカルでサーバを立てるのも難しくないのですが、ネットワーク上で共同開発をしていると難しかったり、事情があって環境を用意できなかったり、そこまでエネルギーをかけるほどでもない… かといってテスト環境に都度アップするのも面倒です。
そういうときこのJavascriptを使えばちょっとだけ制作が楽になるかもしれません。簡単なスクリプトですが、僕はサイトやページ作成時にはほぼ必ず使用していますので、アイデアとしてブログで発信してみます。
]]></description>
			<content:encoded><![CDATA[<p>1年前に自分用に考えたのですが、かなり役立っているのでシェアします。自分のパソコンの環境下において、以下のJavascriptを埋め込むだけで、ルートパスで指定されたファイルを読むこむように補完します。</p>
<h3>スクリプト</h3>
<pre>&lt;script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;google.load("jquery", "1.3");&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready( function(){
	if(!location.protocol.match("http")){
		var ref = "file:///C:/Documents and Settings/username/デスクトップ/project/html/";
		if( ref.match(/\/$/) ){
			ref = ref.replace(/\/$/, "");
		}
		$("[src^='/']","html").each(function(){
			result = ref + $(this).attr("src");
			$(this).attr("src", result);
		});
		$("[href^='/']","html").each(function(){
			result = ref + $(this).attr("href");
			$(this).attr("href", result);
		});
	}
});
&lt;/script&gt;</pre>
<h3>使い方</h3>
<ul>
<li>上記スクリプトを確認したいページの&lt;head&gt;もしくは&lt;body&gt;内に貼り付け</li>
<li>上記スクリプトの6行目、ref = &#8220;&#8221;; のなかに補完するサイトルートパスを記述。ルートパスとして扱うローカルのフォルダ名を入力してください。確認したいファイルをFirefoxやOperaで開いたときのパスを入力いただくと確実です。
<ul>
<li>Windowsの場合の例<br />
<code>var ref = "file:///C:/Documents and Settings/username/デスクトップ/project/html/";</code></li>
<li>Macの場合の例<br />
<code>var ref = "file://localhost/Users/username/Desktop/project/html/";</code></li>
<li>共通ファイルがサーバ上にある場合の例<br />
<code>var ref = "http://yahoo.co.jp/";</code></li>
</ul>
</li>
</ul>
<p>共通ファイル（画像、CSS、Javascriptなど）をルートパスで読み込んでいるサイトを開発する際、困るのがブラウザ上で制作物を確認できないこと。サイト定義していたらDreamweaver上では見れますがクロスブラウザチェックができません。そこでJavascriptでDreamweaverのサイト定義と同様のことを実現させました。ルートパスをJavaScript実行時に指定のパスに置換します。</p>
<p>OS X Leopard以降ではApache2が標準でバンドルされていますし、WindowsでもApacheやXAMPPを入れられれば、ローカルでサーバを立てるのも難しくないのですが、ネットワーク上で共同開発をしていると難しかったり、事情があって環境を用意できなかったり、そこまでエネルギーをかけるほどでもない… かといってテスト環境に都度アップするのも面倒です。</p>
<p>そういうときこのJavascriptを使えばちょっとだけ制作が楽になるかもしれません。簡単なスクリプトですが、僕はサイトやページ作成時にはほぼ必ず使用していますので、アイデアとしてブログで発信してみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/221/feed</wfw:commentRss>
		</item>
		<item>
		<title>パンくずリストを生成するJS「breadCrumb.js」をバージョンアップしました</title>
		<link>http://tshinobu.com/blog/archives/211</link>
		<comments>http://tshinobu.com/blog/archives/211#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:29:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=211</guid>
		<description><![CDATA[１年ほど開発中でした反社会的Javascript、パンくずリストを外部化するJavascriptをバージョンアップしました。ホントは5月くらいにできていて検証も済んでいたんですけどいろいろとドタバタしていて公開のタイミングを失っておりました。さきほど別のエントリーをアップしたので勢いに乗って公開です。
HTMLでの変更が面倒なパンくずナビゲーション（トピックパス）を、現在開いているURLを読み込み、Javascriptで自動的に生成します。
個人的に編集するのを忘れがちなパンくずリストなんですが、ナビゲーションとしての重要度はそんなに高くないのでは？ ので外部化して作業負荷が低減されるのであれば外部化してしまってもいいのでは？という提案の意味を込めて作りました。
実際、グローバルナビなどサイト共通のナビゲーションをJavascriptで外部化したサイトが最近増えてきましたが、それだったらパンくずリストも外部化してページの上下にでも印刷ボタンと同等に機能の一部として提供したらいいんじゃって思ってます。
■breadCrumb.js
http://tshinobu.com/lab/breadCrumbJs/

ただ、以下記事のようにテンプレート設計を運用性を重視してちゃんと行えば、外部化しなくてもじゅうぶん管理できるじゃんって作った後になって気がつきましたが…
■サッポロビールにおけるテンプレート活用事例 &#124; デベロッパーセンター
http://www.adobe.com/jp/devnet/dreamweaver/articles/dw10seminar_sapporobeer.html
とりあえず考えの一つとしてWeb上に発信してみます。興味がわきましたら触ってみていただけると嬉しいです。
]]></description>
			<content:encoded><![CDATA[<p>１年ほど開発中でした反社会的Javascript、パンくずリストを外部化するJavascriptをバージョンアップしました。ホントは5月くらいにできていて検証も済んでいたんですけどいろいろとドタバタしていて公開のタイミングを失っておりました。さきほど別のエントリーをアップしたので勢いに乗って公開です。</p>
<p>HTMLでの変更が面倒なパンくずナビゲーション（トピックパス）を、現在開いているURLを読み込み、Javascriptで自動的に生成します。</p>
<p>個人的に編集するのを忘れがちなパンくずリストなんですが、ナビゲーションとしての重要度はそんなに高くないのでは？ ので外部化して作業負荷が低減されるのであれば外部化してしまってもいいのでは？という提案の意味を込めて作りました。</p>
<p>実際、グローバルナビなどサイト共通のナビゲーションをJavascriptで外部化したサイトが最近増えてきましたが、それだったらパンくずリストも外部化してページの上下にでも印刷ボタンと同等に機能の一部として提供したらいいんじゃって思ってます。</p>
<p>■breadCrumb.js<br />
<a href="http://tshinobu.com/lab/breadCrumbJs/">http://tshinobu.com/lab/breadCrumbJs/</a></p>
<p><a href="http://tshinobu.com/lab/breadCrumbJs/"></a><br />
ただ、以下記事のようにテンプレート設計を運用性を重視してちゃんと行えば、外部化しなくてもじゅうぶん管理できるじゃんって作った後になって気がつきましたが…</p>
<p>■サッポロビールにおけるテンプレート活用事例 | デベロッパーセンター<br />
<a href="http://www.adobe.com/jp/devnet/dreamweaver/articles/dw10seminar_sapporobeer.html">http://www.adobe.com/jp/devnet/dreamweaver/articles/dw10seminar_sapporobeer.html</a></p>
<p>とりあえず考えの一つとしてWeb上に発信してみます。興味がわきましたら触ってみていただけると嬉しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/211/feed</wfw:commentRss>
		</item>
		<item>
		<title>外部JSを読み込むJS「require.js」を作りました</title>
		<link>http://tshinobu.com/blog/archives/200</link>
		<comments>http://tshinobu.com/blog/archives/200#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:37:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=200</guid>
		<description><![CDATA[久しぶりに実験作品を公開です。外部Javascriptファイルを読み込むJavascriptファイルを作りました。CSSのimport.cssのようなもので、HTMLからはrequire.jsを読み込むだけで複数のJavascriptをインポートすることができます。読み込むパスはHTMLから判別して自動的に補完するのでローカルでも、相対パスでも、ルートパスでも動作します。すでにいくつか同じようなものが出ていましたがもっと安全にシンプルにできるのでは、と思ってこっそり作ってみました。
詳しくはこちら
http://tshinobu.com/lab/javascript/require/
今まで個人的にはdocument.writeでルートパスの読み込み記述を並べて書く方法を採用してたんですけど、共有SSI環境とかになると分岐の処理を書かなくてはならない問題に直面しました。サイトによっては相対パスでないと都合が悪いこともしばしば… あとやはりローカル環境で制作しながら確認できないのは不便でした。すでにあるこういったJSは別の問題をはらんでいたり、使い方が分からなかったり、大規模すぎて不安だったりと使うのをためらっていたので、持っている環境で動作検証している限り、個人的にはいいものができんじゃと思います。
責任は取れませんが個人利用/商用利用問わず使ってもらっていいので、自由に持っていって、自由に改変してください。どこかで紹介して頂けると嬉しいです。他の作品のサポートとか更新とかいろいろ告知などマメにできてなくてすみません。。
(2009/11/26 2:50追記)
@aulta さんにご指摘いただき1行削りました！
]]></description>
			<content:encoded><![CDATA[<p>久しぶりに実験作品を公開です。外部Javascriptファイルを読み込むJavascriptファイルを作りました。CSSのimport.cssのようなもので、HTMLからはrequire.jsを読み込むだけで複数のJavascriptをインポートすることができます。読み込むパスはHTMLから判別して自動的に補完するのでローカルでも、相対パスでも、ルートパスでも動作します。すでにいくつか同じようなものが出ていましたがもっと安全にシンプルにできるのでは、と思ってこっそり作ってみました。</p>
<p>詳しくはこちら<br />
<a href="http://tshinobu.com/lab/javascript/require/">http://tshinobu.com/lab/javascript/require/</a></p>
<p>今まで個人的にはdocument.writeでルートパスの読み込み記述を並べて書く方法を採用してたんですけど、共有SSI環境とかになると分岐の処理を書かなくてはならない問題に直面しました。サイトによっては相対パスでないと都合が悪いこともしばしば… あとやはりローカル環境で制作しながら確認できないのは不便でした。すでにあるこういったJSは別の問題をはらんでいたり、使い方が分からなかったり、大規模すぎて不安だったりと使うのをためらっていたので、持っている環境で動作検証している限り、個人的にはいいものができんじゃと思います。</p>
<p>責任は取れませんが個人利用/商用利用問わず使ってもらっていいので、自由に持っていって、自由に改変してください。どこかで紹介して頂けると嬉しいです。他の作品のサポートとか更新とかいろいろ告知などマメにできてなくてすみません。。</p>
<p>(2009/11/26 2:50追記)<br />
<a href="https://twitter.com/aulta/">@aulta</a> さんにご指摘いただき1行削りました！</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/200/feed</wfw:commentRss>
		</item>
		<item>
		<title>(覚え書き) altテキストやtitleテキスト内で改行するべきかしないべきか</title>
		<link>http://tshinobu.com/blog/archives/185</link>
		<comments>http://tshinobu.com/blog/archives/185#comments</comments>
		<pubDate>Fri, 06 Nov 2009 18:45:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[html/css]]></category>

		<category><![CDATA[browser]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=185</guid>
		<description><![CDATA[内容量の多い代替テキストは一行に収めていますか？ それともデザインデータからコピーアンドペーストしたまま（あるいは意図的に）複数行で収めていますか？
altテキストやtitleテキストによるツールチップには改行を持たせられるとなんとなく知っていたんですが、いままで何らかの理由をもって改行を削除して一行に収めていました。根拠は忘れたのですがそういうものだと思いそうしてきました。しかしながらそれではいかんと急に根拠が気になって調べてみたところ、以下の記事にたどり着きました。
■title 属性のツールチップ内で改行
http://www2.u-netsurf.ne.jp/~alt/mt/archives/20031211_1555.html
２種類の方法を使ったWinIEでの改行対応方法と、title属性はCDATAなのでブラウザは改行しないのが正しい解釈、という記事なんですが、alt属性やtitle属性がなぜCDATAなのか根拠がはっきりおらず引っかかてしまいました。ので仕様書をあさってみることにしました。恥ずかしい話、業界で2年以上働いているんですがあまり参照してません。ので、見方が分からなかったんですが… とりあえずDTD見て検索してみてそれらしきものをあたってみることにしてみました。
■HTML4.01 Strict DTD
http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html
■XHTML1.0 Strict DTD
http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd
&#60;!ENTITY % coreattrs
 title       %Text;         #IMPLIED  -- advisory title --"
&#60;!ELEMENT IMG - O EMPTY                -- Embedded image --&#62;
&#60;!ATTLIST [...]]]></description>
			<content:encoded><![CDATA[<p>内容量の多い代替テキストは一行に収めていますか？ それともデザインデータからコピーアンドペーストしたまま（あるいは意図的に）複数行で収めていますか？</p>
<p>altテキストやtitleテキストによるツールチップには改行を持たせられるとなんとなく知っていたんですが、いままで何らかの理由をもって改行を削除して一行に収めていました。根拠は忘れたのですがそういうものだと思いそうしてきました。しかしながらそれではいかんと急に根拠が気になって調べてみたところ、以下の記事にたどり着きました。</p>
<p>■title 属性のツールチップ内で改行<br />
<a href="http://www2.u-netsurf.ne.jp/~alt/mt/archives/20031211_1555.html">http://www2.u-netsurf.ne.jp/~alt/mt/archives/20031211_1555.html</a></p>
<p>２種類の方法を使ったWinIEでの改行対応方法と、title属性はCDATAなのでブラウザは改行しないのが正しい解釈、という記事なんですが、alt属性やtitle属性がなぜCDATAなのか根拠がはっきりおらず引っかかてしまいました。ので仕様書をあさってみることにしました。恥ずかしい話、業界で2年以上働いているんですがあまり参照してません。ので、見方が分からなかったんですが… とりあえずDTD見て検索してみてそれらしきものをあたってみることにしてみました。</p>
<p>■HTML4.01 Strict DTD<br />
<a href="http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html ">http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.html</a><br />
■XHTML1.0 Strict DTD<br />
http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd</p>
<pre>&lt;!ENTITY % coreattrs
 title       %Text;         #IMPLIED  -- advisory title --"</pre>
<pre>&lt;!ELEMENT IMG - O EMPTY                -- Embedded image --&gt;
&lt;!ATTLIST IMG
 alt         %Text;         #REQUIRED -- short description --</pre>
<p>属性集合（ほぼすべての属性）に任意でtitle属性使えますよ、というのと、 IMG要素にalt属性を使えますよ、という記述にみえます。書式が%Text;だろうと思います。邦訳では「DTDで%Text;と示される多くの属性値は、「<a href="http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/types.html#type-text">人間が読んで解る」という意味の普通のテキストを示す。 属性に関する概説は、 属性に関する解説的記述の項を参照のこと。</a>」とのことでした。あれ、なんでも入力していい？ CDATAなんてどこにもないじゃないかと思ってたんですが、以下にありました。</p>
<pre> &lt;!ENTITY % Text "CDATA"&gt;</pre>
<p>%TextはCDATAですよ、ということかと思います。<a href="http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/types.html#type-cdata">CDATAは文書文字集合中の任意の文字列</a>なので、結論、titleやaltはCDATAで改行などを行っても勧告上では無視されるようになっているということが分かりました。http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd</p>
<p>ご要望等に応じてというのもありますし改行しておくのは間違った記述方法ではありません。ただ改行を削除するのがUAの正しい解釈ですから、あらかじめ改行を詰めた体裁で最適化し、情報がやり取りされるべきなのが健全なのだと考えます。改行するべきしないべきでいうとしないべきでしょうか。少し根拠を得られてちょっとなるほどでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/185/feed</wfw:commentRss>
		</item>
		<item>
		<title>2009年お盆休みに香川県の古民家で開発合宿をおこないます</title>
		<link>http://tshinobu.com/blog/archives/170</link>
		<comments>http://tshinobu.com/blog/archives/170#comments</comments>
		<pubDate>Mon, 10 Aug 2009 17:08:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[diary]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[lifehack]]></category>

		<category><![CDATA[travel]]></category>

		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://tshinobu.com/blog/?p=170</guid>
		<description><![CDATA[
今夏のお盆休みはmiyaiさんと私で（tasukeさんも来られるかも）、香川県の古民家で開発合宿を行います。けっこう前からやりましょうという話をしていたのですがいよいよ決行することになりました。直前になりますが参加者まだまだ募集していますので、予定が無くなってお盆休み暇になってしまった！という方、がむしゃらに開発したい！という方、もしご興味がありましたらお気軽にお問い合わせください！
■日時
開始：2009年8月14日（金） 8:30
終了：2009年8月15日（土） 18:00
■場所
古民家体験/癒しろ玉響（たまゆら）
住所：香川県高松市香川町東谷 926-5
http://www.tamayura-onnagenki.com/access.html
高松市内の場合、車で送迎可能ですのでご相談ください。
■費用
古民家を借り切ります。費用は全員で等分する予定です。
1泊16,800円÷参加人数＝各自負担金額
（5名以上は1名当たり3,150円が追加されます。）
※食費が別途必要となります。（自炊or外食を予定）
※お風呂はありますが、自分たちで準備する形式です（五右衛門風呂）。開発状況によっては近くの温泉に向かう事になる可能性もあります。その場合、別途費用が必要になる可能性があります。
■環境
光回線が開通しています。
エアコン設備あります。
ソフトバンク携帯は圏外です。
■その他
詳細な内容をお知りになりたい方は以下のメールアドレスにご連絡ください。
luminexy [at] gmail.com もしくは、
takuya [at] miyai.jp
▼参加のお申し込みはこちらから
http://atnd.org/events/1249 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://tshinobu.com/wp/wp-content/uploads/2009/08/45158440_201.jpg"><img title="45158440_201" src="http://tshinobu.com/wp/wp-content/uploads/2009/08/45158440_201-300x192.jpg" alt="古民家体験/癒しろ玉響（たまゆら）の様子" width="300" height="192" /></a></p>
<p>今夏のお盆休みは<a href="http://takuya.miyai.jp/" target="_blank">miyaiさん</a>と私で（<a href="http://tasuke.net/">tasukeさん</a>も来られるかも）、香川県の古民家で開発合宿を行います。けっこう前からやりましょうという話をしていたのですがいよいよ決行することになりました。直前になりますが参加者まだまだ募集していますので、予定が無くなってお盆休み暇になってしまった！という方、がむしゃらに開発したい！という方、もしご興味がありましたらお気軽にお問い合わせください！</p>
<p>■日時<br />
開始：2009年8月14日（金） 8:30<br />
終了：2009年8月15日（土） 18:00</p>
<p>■場所<br />
古民家体験/癒しろ玉響（たまゆら）<br />
住所：香川県高松市香川町東谷 926-5<br />
<a href="http://www.tamayura-onnagenki.com/access.html">http://www.tamayura-onnagenki.com/access.html</a><br />
高松市内の場合、車で送迎可能ですのでご相談ください。</p>
<p>■費用<br />
古民家を借り切ります。費用は全員で等分する予定です。<br />
1泊16,800円÷参加人数＝各自負担金額<br />
（5名以上は1名当たり3,150円が追加されます。）<br />
※食費が別途必要となります。（自炊or外食を予定）<br />
※お風呂はありますが、自分たちで準備する形式です（五右衛門風呂）。開発状況によっては近くの温泉に向かう事になる可能性もあります。その場合、別途費用が必要になる可能性があります。</p>
<p>■環境<br />
光回線が開通しています。<br />
エアコン設備あります。<br />
ソフトバンク携帯は圏外です。</p>
<p>■その他<br />
詳細な内容をお知りになりたい方は以下のメールアドレスにご連絡ください。<br />
luminexy [at] gmail.com もしくは、<br />
takuya [at] miyai.jp</p>
<p>▼参加のお申し込みはこちらから<br />
<a href="http://atnd.org/events/1249" target="_blank">http://atnd.org/events/1249 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://tshinobu.com/blog/archives/170/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
