<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Screw-Axis &#187; Tips</title>
	<atom:link href="http://screw-axis.com/category/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://screw-axis.com</link>
	<description>flexible, elastic and principled.</description>
	<lastBuildDate>Fri, 04 May 2012 16:52:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>&#8220;Connection reset by peer&#8221;が出る時</title>
		<link>http://screw-axis.com/2012/05/05/connection-reset-by-peer/</link>
		<comments>http://screw-axis.com/2012/05/05/connection-reset-by-peer/#comments</comments>
		<pubDate>Fri, 04 May 2012 16:52:52 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=1195</guid>
		<description><![CDATA[連休を使って、負荷のキツくなってきたサーバを移転してるのですが。覚悟していたほどではないにしても、色々と問題が発生しました。そのうちのひとつが、Amazon S3への転送に失敗するようになったこと。途中で接続が切れる様子 [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>連休を使って、負荷のキツくなってきたサーバを移転してるのですが。覚悟していたほどではないにしても、色々と問題が発生しました。そのうちのひとつが、Amazon S3への転送に失敗するようになったこと。途中で接続が切れる様子。</p>
<pre>
$ s3cmd put bkup-data:xxxx.tar.gz /tmp/xxxx.tar.gz
Connection reset: Connection reset by peer
99 retries left
</pre>
<p>使っているのは、Amazon S3のRubyライブラリ。バージョンは1.2.6です。</p>
<p>今回はCentOS 5.3から6.2への移行。S3ライブラリや転送するデータサイズ、相手のバスケットなどは変えていないので、やっぱりカーネル関係なんだろうなと。しかし、なかなか原因が特定できず、結構ハマりました。<span id="more-1195"></span></p>
<p>以前は定期的に2G～3G程度のファイルを送っていたのですが、何度やっても切られるので断念。試しに2Mくらいのファイルを送ったら成功。50Mではアウト。割と早い段階で壁に当たってしまいます。最初はtarのまとめ単位を変えるなりsplitするなりして小さくして回避しようかとも思ったのですが、このサイズだと実際問題厳しすぎる。</p>
<p>で、まぁ色々やってみて、なんとなく特定できたのはLinuxカーネル2.6.17以降でTCP Windowバッファが自動チューニングされるようになっていると。コイツが、どうにかすると他のギアと干渉しあって接続を切るような挙動をしてしまうようです。実際にそうした干渉を確認できたワケではなく、そうらしいよという記述を<a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/59331">この辺</a>や<a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/89160">この辺り</a>で読んで調整入れたところで上手くいったので、そこで止めてしまった曖昧情報で申し訳ないのですが。</p>
<p>ともあれ上手くいったのは、ソケットのバッファ用メモリサイズを手動で設定すること。<br />
/etc/sysctl.conf に、次のような記述を追加します。</p>
<pre>
net.core.rmem_max = 1747600
net.core.wmem_max = 1747600
net.ipv4.tcp_wmem = 4096 87380 1747600
net.ipv4.tcp_rmem = 4096 87380 1747600
</pre>
<p>ファイルを書き換えたら、端末をリブートするか、次のコマンドを実行。</p>
<pre>
$ sudo sysctl -p
</pre>
<p>正直なところ、バッファサイズをどの程度にすれば良いのか、よく分かりませんでした。この10倍くらいに設定している例もあれば、半分以下のものもあり。試した人の記述では、転送するファイルの総量が大きいほどに値を下げると上手くいくとありました。もちろん、下げすぎればネットワークのパフォーマンスに悪影響が出ます。せっかく自動チューニングしてくれるのだから、そちらに任せたいのですが&#8230;残念。しばらく様子見ながら、値は調整するかもしれません。</p>
<p>恐らく、S3に限らずサーバからソケット繋いでファイル転送する色々なサービスで起きる問題なんじゃないかと。同様の問題に当たって変更される場合、あくまで自己責任でお願いします。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2012/05/05/connection-reset-by-peer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] 日本語リファレンス1.0に更新</title>
		<link>http://screw-axis.com/2011/12/19/jquery-mobile-1-0-reference/</link>
		<comments>http://screw-axis.com/2011/12/19/jquery-mobile-1-0-reference/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 01:45:26 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=947</guid>
		<description><![CDATA[かなり更新を怠けていたjQuery Mobile日本語リファレンスですが、正式版がリリースされたのを機に一気にリニューアルしました(とはいえ、デザイン的にはむしろ独自部分を減らして公式の丸コピにしたイメージですが)。 j [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2011/04/jquery-logo.jpg" alt="" title="jQuery mobile" width="240" height="150" class="alignright size-full wp-image-912" style="padding-left: 10px;" />かなり更新を怠けていたjQuery Mobile日本語リファレンスですが、正式版がリリースされたのを機に一気にリニューアルしました(とはいえ、デザイン的にはむしろ独自部分を減らして公式の丸コピにしたイメージですが)。</p>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/">jQuery Mobile 1.0 日本語リファレンス</a></p>
<p>アルファ版からは当然ながら大きく変わっていて、特にAPI関連は、まったくの別物。放置していて申し訳ありませんでした。<span id="more-947"></span></p>
<p>jQuery MobileではjQueryの知識も必要になる部分が(当然ながら?)結構あり、こちらも直近の更新はキャッチアップしてないなと思ったり。余計なことですが、名前がそのまんまな「<a href="http://semooh.jp/jquery/">jQuery日本語リファレンス</a>」は前職時代に自分が作って遺してきたものです。後輩の子たち、全然更新してくれないな&#8230;とか。</p>
<p>最近jQuery Mobile関連の仕事を続けてもらいまして、特に米国では急速にユーザが増えていることを実感します。<a href="http://www.jqmgallery.com/">ギャラリー</a>に上げられるサイトも増えていて、アプリ(多分、PhoneGapを使用)でもjQuery Mobileを利用したものが散見されるようになりました。</p>
<p>自分でも、趣味サイト1本作ろうかと画策中。楽しみです。<!--more--></p>
<div style="background-color:#eee8aa;padding:15px;margin-bottom:10px;">
<div style="float:left;">
<a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4774149829&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=paiitbla-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=paiitbla-22&#038;l=as2&#038;o=9&#038;a=4774149829" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></div>
<div style="float:left; margin-left:10px;">
<div style="color:#090;"><strong>[PR] jQuery Mobile リファレンスが書籍として発売されることになりました</strong></div>
<h4><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&#038;tag=paiitbla-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4774149829" style="color:#009;">jQuery Mobile ポケットリファレンス</a></h4>
<p>
<div>森 直彦 (著)</div>
<div>技術評論社 (2012/1/20)</div>
<div>新品 <span style="color:#900;">￥2,709</span></div>
</p>
<p><a href="http://www.amazon.co.jp/gp/product/4774149829/ref=as_li_ss_il?ie=UTF8&amp;tag=paiitbla-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4774149829"><img src="https://images-na.ssl-images-amazon.com/images/G/09/buttons/buy-from-tan.gif" style="border:none;"></a></p>
</div>
<div style="clear:both;"></div>
</div>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2012/01/27/jquery-mobile-1-0-1/' rel='bookmark' title='[jQuery Mobile] 1.0.1公開'>[jQuery Mobile] 1.0.1公開</a></li>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-cheat-sheet/' rel='bookmark' title='[jQuery Mobile] チートシートつくりました'>[jQuery Mobile] チートシートつくりました</a></li>
<li><a href='http://screw-axis.com/2012/01/20/jquery-mobile-pageevent-cheatsheet/' rel='bookmark' title='[jQuery Mobile] ページイベント・チートシート'>[jQuery Mobile] ページイベント・チートシート</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/12/19/jquery-mobile-1-0-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[jQuery Mobile] ベータ2 リリースノート</title>
		<link>http://screw-axis.com/2011/08/05/jquery-mobile-beta2/</link>
		<comments>http://screw-axis.com/2011/08/05/jquery-mobile-beta2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 03:40:08 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=926</guid>
		<description><![CDATA[公開されたので、例によって公式のをザクッと。 ベータ2のリリース内容 今回のリリースでは、ライブラリに大幅な向上があります。 ウィジェットの切り離しによって、必要なコンポーネントだけを選択取り込み可能に DOMキャッシュ [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2012/01/10/jquery-mobile-seo-usability/' rel='bookmark' title='[jQuery Mobile] SEOとユーザビリティを両立させるポイント'>[jQuery Mobile] SEOとユーザビリティを両立させるポイント</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jquerymobile.com/wp-content/uploads/2011/07/beta2.png" class="alignright" width="240" />公開されたので、例によって<a href="http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/">公式の</a>をザクッと。</p>
<h3>ベータ2のリリース内容</h3>
<p>今回のリリースでは、ライブラリに大幅な向上があります。</p>
<ul>
<li>ウィジェットの切り離しによって、必要なコンポーネントだけを選択取り込み可能に</li>
<li>DOMキャッシュ機能により、メモリ使用量の低減</li>
<li>ページのプリキャッシュ・オプション</li>
<li>ページ構造が柔軟に</li>
<li>チェックボックス、ラジオボタンのデザイン向上</li>
<li>JavaScriptによる動的ページを作る場合の拡張機能追加</li>
</ul>
<p>ベータ1リリースから5週間の尽力で、正式版リリースに大きく前進しています。<br />
<span id="more-926"></span></p>
<h3>ベータ3</h3>
<p>正式版のRCとしてバグフィックスやパフォーマンス調整に入る前に、更に追加したい幾つかの重要な機能が残されています。来月リリース予定のベータ3では pushState のサポートや、切り替え動作の Firefox や Opera での向上、開発者向けの拡張機能実装などが含まれます。</p>
<p>jQuery Mobile 1.0では、ベースとなる jQuery core の 1.6.2 以上が必須となることに注意してください。jQuery coreでリリースされている更に上のバージョンもサポートされますが、基本線はこのバージョンを基にしています。</p>
<h3>サポート対象プラットフォームの更新</h3>
<p>ベータ2では、OperaとFirefox向けのCSSサポートを強化しました。また、Android 2.3搭載モバイルとHoneycombタブレット、HP Palm WebOS  3.0タブレットをサポート対象としています。更にNokia S60以降のデバイスをBグレードに加えました。</p>
<p>Nokia S60以降をBグレードとしたのは、これらの端末がハッシュの変更イベントを正しく検知しないためです。つまり、Nokia端末ではAjaxを使ったページ切り替え機能のような拡張機能が動作しないことになります。</p>
<p>この段階で、jQuery Mobileは現在使われている大部分のデスクトップ、スマートフォン、タブレット、電子リーダー上で動作するようになりました。加えて、プログレッシブ・エンハンスメント手法を採っていることで、古いブラウザ上でも動作します。ここでサポートしている広範囲のプラットフォーム上で、ユニヴァーサルなアクセシビリティを担保することが出来ています。</p>
<p>詳しくは、更新した <a href="http://dev.screw-axis.com/doc/jquery_mobile/#/doc/jquery_mobile/overview/supported_platforms/">jQuery Mobile 日本語リファレンス：サポートするプラットフォーム</a> 参照。</p>
<h3>ウィジェット：分離により柔軟なビルドが可能に</h3>
<p>ページプラグインからウィジェットを「分離」させることは長年の課題でしたが、遂にそれが実現しました(参照 <a href="https://github.com/jquery/jquery-mobile/commit/fdb77bfa528a8d12fdc5408110605054fb0a557e">1</a> <a href="https://github.com/jquery/jquery-mobile/commit/2a6c7fc1b982c4308a0450a308f5a66a10e949cf">2</a> <a href="https://github.com/jquery/jquery-mobile/commit/64e6ef0e720a448e8862246ffeaa504ea5e8ac78">3</a>)。「分離」とは、実際にどういうことか。各ウィジェットやユーティリティは、各個のスクリプトファイルに分割されています。しかし、ページプラグインが全ての公式プラグインをページ上にマークアップされていないかどうか確認するために、結局全てのプラグインファイルを読み込む必要があったのです。これによって、不要なプラグインを外すとエラーを起こすことになってしまいました。今後のウィジェット追加に際しても、非常に良くない慣行です。</p>
<p>今回のリリースで、全てのUIウィジェットはjQuery Mobileライブラリから完全に分離されました。そのため、もし特定のプロジェクトにおいて不要なプラグインがあれば、それを単純に削除することが出来ます。この変更によって実際に必要なプラグインだけを取り込めば良くなり、ダウンロードされるライブラリのサイズを劇的に小さくすることが出来るでしょう。現在、更に完全な分離が進められています。現時点で、次のファイルは分離されていますので、カスタム・ビルドの際に不要なものは取り除くことが可能です。</p>
<ul>
<li>page header/content/footer</li>
<li>collapsible</li>
<li>controlgroup</li>
<li>fieldcontain</li>
<li>fixheaderfooter</li>
<li>button</li>
<li>checkboxradio</li>
<li>select</li>
<li>slider</li>
<li>textinput</li>
<li>links theming</li>
<li>listview</li>
<li>navbar</li>
<li>grid</li>
</ul>
<p>いくつかのウィジェットは相互に関係しているので、依存関係表の作成も必要になってきます。たとえば、上記の多くのプラグインが動作にはbuttonプラグインを必要としますので、これを削除するには依存関係にある全てのプラグインが不要である場合だけということになります。</p>
<p>こうした推奨依関係表の作成や、分離機能自体も現在なお更新中です。究極的には、この機能はダウンロード・ビルダーに実装されることになると思われます。</p>
<h3>&#8220;create&#8221;イベントの追加</h3>
<p>個々のプラグインにウィジェットを適用する作業は、多くの場合、&#8221;pagecreate&#8221;イベントで自動的にウィジェット自身によって初期化されます。ページ上で該当するウィジェットがあった場合、プラグインスクリプトが自動的にエンハンス処理を行っていました。たとえば、セレクトメニュープラグインがロードされれば、ページ上のセレクト要素は自動的にエンハンスされます。</p>
<p>この処理が、今後は要素に対して &#8220;create&#8221; イベントを発行することでも可能になりました。これによって、手動で初期化する際の手間が大きく軽減されます。これまでは、コンテンツがAjaxや動的なマークアップによって変更された際、全てのプラグインを手動で初期化する必要がありました。</p>
<p>今後は、マークアップに &#8220;create&#8221; イベントを発行することで、ページが作られた時同様に必要なプラグインのチェックや処理を自動的に行わせることができます。たとえばログインフォームなどでAjaxを用いてHTMLのブロックを持ってきた場合、このブロックに対して &#8220;create&#8221; イベントを発行することで自動的に内包する input や button などのウィジェットをエンハンスすることが出来ます。例えば、次のようなコードになるでしょう。</p>
<pre name="code" class="javascript">
$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );
</pre>
<p>ここで &#8220;create&#8221; イベントと &#8220;refresh&#8221; メソッドの違いに注意してください。新しい &#8220;create&#8221; イベントは、生のマークアップに対して包含する複数のウィジェットを適用します。一方 &#8220;refresh&#8221; メソッドは(幾つかの)ウィジェットに実装されており、既に適用されたウィジェットに対してプログラムから操作を行った場合などに、見た目の更新をするために呼び出すものです。</p>
<p>たとえば、ページがロードされた後で動的に ul 要素を追加し、そこに data-role=&#8221;listview&#8221; 属性を指定したとします。この要素に対して &#8220;create&#8221; イベントを実行させれば、この要素は listview スタイルのウィジェットになります。このリストに、プログラムから更に幾つかのアイテムを追加したとします。その場合は、リストビューウィジェットの &#8220;refresh&#8221; メソッドを呼び出して、リストの見栄えを更新してやります。</p>
<h3>DOMキャッシュ管理機能</h3>
<p>従来、Ajaxによるページ遷移時には、移動前のDOMに移動先のDOMを追加していくようになっています。これまで、この追加されたページは全体がリフレッシュされるまで追加されたままになっている仕様でした。そのため、あまりに多くのページを行き来されると、ブラウザ上のメモリを消費して動作を重くさせたり、最悪はクラッシュさせる危険性がありました。</p>
<p>ベータ2では、DOMを小さく保つための簡単な仕組みを実装しています。それは、次のように機能します。Ajaxによってページがロードされた場合、遷移が完了すると以前のページはDOMから一度削除されます。このページにユーザが戻ってきた場合、ブラウザはページ内容をキャッシュから取り出すか、必要であれば再度サーバへ要求するようになります。これが階層化リストの場合であれば、ユーザがリストに含まれないページへ遷移した際に全てのリストページを削除することになります。複数ページを内包したファイルである場合はこの限りでなく、あくまでjQuery MobileによってAjaxで取得されたページに限った動作です。</p>
<p>新しく追加されたページオプション &#8220;domCache&#8221; によって、以前のようにDOMをキャッシュし続けるか、それとも削除して小さく保つかを制御することが出来ます。初期状態では、この &#8220;domCache&#8221; オプションは &#8220;false&#8221; に指定されています。これは、ベータ1以前とは異なりDOMのサイズを積極的に制御しようとします。もしこれを &#8220;true&#8221; に変えるならば、DOMのサイズに関する問題を自分自身で、複数のデバイスに対してテストする必要が出てくるでしょう。</p>
<p>もしこの &#8220;domCache&#8221; を各ページ単位で指定したい場合、ページコンテナ要素に対して data-dom-cache=&#8221;true&#8221; 属性を指定するか、次のようなコードを記述します。</p>
<pre name="code" class="javascript">
elem.page({ domCache: true});
</pre>
<p>この domCache オプションはグローバル設定も可能です。</p>
<pre name="code" class="javascript">
$.mobile.page.prototype.options.domCache = true;
</pre>
<h3>ページのプリフェッチ・オプションの追加</h3>
<p>今回追加されたクールな機能のひとつが、このプリフェッチ・オプションです。Ajaxによるページ取得をプリフェッチさせることができます。たとえば、各写真が別個のHTMLページになっているフォトギャラリーを作るとしましょう。スライドショーで前後のページをプリフェッチさせることにより、Ajaxローダが逐一動かずに写真を表示させることが可能になります。使い方は簡単で、ページ上のリンク要素に data-prefetch 属性を指定するだけです。フレームワークがバックグラウンドで自動的にページをレイジー・ロードしてDOMに追加しておきます。jQuery Mobileによるサイト構築時、HTMLページは個別に分けられることを奨励していますが、実際は複数ページのテンプレートやネスト構造リスト(!)を使って、ページ切り替えを速くしようとしている姿を見かけます。このプリフェッチ機能が、そうした手法の代替になることが期待されます。</p>
<pre name="code" class="html">
<a href="foo/bar/baz" data-prefetch>link text</a>
</pre>
<p>プログラムから $.mobile.loadpage( url ); を呼ぶことでも、ページをプリフェッチできます。プリフェッチリンクは、当然ながらそこに遷移されない場合でも追加のHTTPリクエストを発生させますので、ユーザが遷移する可能性の高いリンクのみに適用するよう心がけましょう。</p>
<h3>グローバル・コンフィグ・オプションの追加：autoInitializePage</h3>
<p>ページの初期化処理を更に制御したい開発者のために、新たに autoInitializePage オプションを追加しました。これを false に設定すると、ページ作成時の自動初期化処理が停止し、開発者が手動によるページ初期化を行う前にマークアップを操作したりすることができるようになります。初期状態ではオプションは true に設定されています。</p>
<h3>ロード時のメッセージを、実行後に指定可能に</h3>
<p>以前は、ロード時のテキストメッセージを初期化オプションとして設定可能なだけで、特定の状況で動的にメッセージを変えることは出来ませんでした。追加機能により、実行時にプログラムから動的にメッセージを変えることが可能です。</p>
<pre name="code" class="javascript">
$.mobile.loadingMessage = "My custom message!";
</pre>
<h3>スワイプイベント発生の閾値設定追加</h3>
<p>スワイプに関するコードは、jquery.mobile.js内でかなりハードコーディングされています。このイベントが発生するための閾値も定数になっていますが、開発者がこの値を調整したい場合もあるでしょう。そのための指定が出来るようになりました。</p>
<ul>
<li><strong>scrollSupressionThreshold</strong> (default: 10px)</li>
<li><strong>durationThreshold</strong> (default: 1000ms)</li>
<li><strong>horizontalDistanceThreshold </strong> (default: 30px)</li>
<li><strong>verticalDistanceThreshold</strong> (default: 75px)</li>
</ul>
<h3>vClick機能の停止</h3>
<p>ベータ1で実装されたvClick機能ですが、テストの結果、様々な問題を引き起こすことがわかりました。そこで、元通りに戻すことになったとのことです。問題について詳しくは、翻訳は割愛します。興味がある方は<a href="http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/">元記事</a>を。</p>
<h3>ページコンテナがオプションに</h3>
<p><img src="http://jquerymobile.com/wp-content/uploads/2011/07/role-page.png" class="alignright" height="120" />文書構造をよりフレキシブルにするため、ページコンテナとしての data-role=&#8221;page&#8221; 属性付きの要素はオプション扱いとなりました。これによって既存のサイト流用や外部コンテンツとのマッシュアップがしやすくなったはずです。</p>
<p>これで page, header, content, footer の data-role 要素は全てオプションとなりました。<a href="http://jsbin.com/ejevis/edit#source">ここ</a>で、ページのコード例を確認できます。</p>
<p>実際背後では、コンテナが無い場合にはフレームワークが自動的にマークアップを追加しています。しかし、実際に記述するマークアップはシンプルに出来るでしょう。ただし、複数ページを包含させるためには、やはりページコンテナは必要となります。</p>
<h3>チェックボックスとラジオボタンのデザイン変更</h3>
<p><img src="http://jquerymobile.com/wp-content/uploads/2011/06/jquery-mobile-check-radios.png" class="alignright" height="200" style="margin-left: 10px;" />以前のチェックボックスやラジオボタンは、ハイライト時に背景が全て変わっていました。これは、特にチェックリストで複数のアイテムが選択可能な時に、少し目立ち過ぎの感がありました。そこで、デザインをよりスッキリしたものに変更することにしました。</p>
<p>コントロールの新デザインは、ややシンプルなものになっています。チェックボックスやラジオボタンは、タップするとボタン全体がハイライトされるのではなく、シンボルの色が変わるだけになっています。ただし、横方向に並べてグループ化されたチェックやラジオは、依然としてボタン全体が彩色されます。</p>
<div class="clear"></div>
<h3>サポートプラットフォームの拡大</h3>
<p>ブラウザのサポート対象拡大に伴い、CSS3によるbackground gradients指定のベンダープレフィックスを追加しました。Opera用(-o)、Internet Explorer用(-ms)のプレフィックスが、通常のルールに追加されています。</p>
<pre name="code" class="css">
background-image: -webkit-linear-gradient(top, #3c3c3c, #111); /* Chrome 10+, Saf5.1+ */
background-image:    -moz-linear-gradient(top, #3c3c3c, #111); /* FF3.6 */
background-image:     -ms-linear-gradient(top, #3c3c3c, #111); /* IE10 */
background-image:      -o-linear-gradient(top, #3c3c3c, #111); /* Opera 11.10+ */
background-image:         linear-gradient(top, #3c3c3c, #111); /* Standard, non-prefixed */
</pre>
<p>これによって、backgroundのgradients機能が WebKit, Firefox, Opera, Internet Explorer 10, そしてプレフィックスを付けないことによって標準準拠している全てのブラウザで使えるようになりました。以前<a href="http://jquerymobile.com/blog/2011/07/08/jquery-mobile-team-update-week-of-july-4th/">ブログで書かれた</a>ように、一度 -ms プレフィックスを外さなければなりませんでした。これは IE9 が border radius などの機能についてコンフリクトを起こし、Microsoftがこれを修正してくれないためです。このため、WP7やMangoを含む古いバージョンのIEでは、背景色がフラットなものになってしまいます。この問題について詳しくは <a href="https://github.com/jquery/jquery-mobile/issues/2046">issue #2046</a> を参照してください。</p>
<h3>コードフォーマットのクリーンアップとJSLint対応</h3>
<p>全てのコードフォーマットがjQueryコアのスタイルガイドに準拠したものになりました。これによって、ライブラリが <a href="http://www.jslint.com/">JSLint</a> などバリデーションツールで動くようになっています。</p>
<h3>ベータ1からの更新</h3>
<p>ベータ1で追加された useFastClick オプションは、削除されています。これは、前述のとおり vclick が使われないようになっているためです。</p>
<p>この他、細かいバグ修正などの変更履歴は<a href="http://jquerymobile.com/blog/2011/08/03/jquery-mobile-beta-2-released/">元記事</a>参照のこと。</p>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/">日本語リファレンス</a>については、徐々に更新していきます。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/22/jquery-mobile-bartender/' rel='bookmark' title='[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする'>[jQuery Mobile] BartenderプラグインでフッタをiOSアプリ風にする</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2012/01/10/jquery-mobile-seo-usability/' rel='bookmark' title='[jQuery Mobile] SEOとユーザビリティを両立させるポイント'>[jQuery Mobile] SEOとユーザビリティを両立させるポイント</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/08/05/jquery-mobile-beta2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Mobile 日本語リファレンス</title>
		<link>http://screw-axis.com/2011/04/07/jquery-mobile-reference/</link>
		<comments>http://screw-axis.com/2011/04/07/jquery-mobile-reference/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 02:00:56 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=906</guid>
		<description><![CDATA[久しぶりにリファレンスの日本語化など。今月中にはアルファ期間を終えてベータリリースされる予定の、ｊQuery Mobileです。 jQuery Mobile 日本語マニュアル jQuery MobileはjQueryコア [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-pagination/' rel='bookmark' title='[jQuery Mobile] Paginationプラグイン'>[jQuery Mobile] Paginationプラグイン</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2011/04/jquery-logo.jpg" alt="" title="jQuery mobile" width="240" height="150" class="alignright size-full wp-image-912" style="padding-left: 10px;" />久しぶりにリファレンスの日本語化など。今月中にはアルファ期間を終えてベータリリースされる予定の、ｊQuery Mobileです。</p>
<p><a href="http://dev.screw-axis.com/doc/jquery_mobile/">jQuery Mobile 日本語マニュアル</a></p>
<p>jQuery MobileはjQueryコアベースのモバイル端末用フレームワークですが、触ってみてもらえるとわかるようにJava Scriptのコーディングが必要な部分は、ほとんどありません。マークアップを基本に、jQuery Mobileが data- で始まる属性値を探してプラグイン化していくスタイルで、昔自分が作った <a href="http://semooh.jp/jglycy/">jGlycy</a> と基本的な発想は同じ。HTML5で data- 属性が使えるようになったことで、きっちり採用になりました。<span id="more-906"></span></p>
<h3>雑感</h3>
<p>しばらくいじってみた感想ですが、「さすが&#8230;」の部分と、「やっぱりまだアルファ版」の部分が、結構あります。</p>
<p>基本コンセプトは、分かりやすいものです。Ajaxによるページの切り替え機構も見事ですが、トランジションがスムーズなだけにDLのディレイがモッサリ感じてしまうことも確か。パケット料金がかかることとのトレードになりますが、サイト構造によってはプリロードの機能が欲しいかも。</p>
<p>フォームの制御は、文句無く使うべき。やっぱりネイティブコントロールは、タッチパネルにフレンドリーでないので、操作キツいですから。長めのセレクトリストなどが別ページに自動的にジェネレートされるのも自然だし、開発者は大分助かると思います。</p>
<p>ちょっとひっかかるのは、ひとつはブラウザの履歴制御。ハッシュを書き換えながらやっていくのですが、途中でリロードなどを挟むと上手く繋がらないことが多い感じが。スマートフォン上では余計な操作が減るので問題は大分減ると思いますが、ちょっとストレスです。</p>
<p>その他、現時点では意外とバグが多い印象です。リファレンスに記載されていることでも、実際には動かない機能が幾つか。公式ドキュメントでもデモは実際には説明してあるコードでは無かったり、デモ自体が上手く動いていなかったり。この辺は、日本語リファレンスの方では注意書きを添えたり、割愛してしまったりしました。ベータ版では、ちゃんと仕上げてくると思います。</p>
<p>jQuery UIであまり盛り上がらなかったテーマローラーについては、今後の提供予定に入っています。確かにデフォルトのテーマもすぐに見飽きる感じなので、センスの良い選択肢が幾つかあると嬉しいですが、デザイナーさん次第でしょうか。</p>
<p>最後に、ここで前に説明した<a href="http://screw-axis.com/2011/02/16/responsive-layout1/">レスポンシブ・レイアウト</a>対応の機能もキッチリ入っています。ここは特に今後キモになってくると思いますので、スマホ対応サイト構築時は初手から考慮しておくことをオススメします。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-actionsheet/' rel='bookmark' title='[jQuery Mobile] ActionSheetプラグイン'>[jQuery Mobile] ActionSheetプラグイン</a></li>
<li><a href='http://screw-axis.com/2011/08/05/jquery-mobile-beta2/' rel='bookmark' title='[jQuery Mobile] ベータ2 リリースノート'>[jQuery Mobile] ベータ2 リリースノート</a></li>
<li><a href='http://screw-axis.com/2011/12/19/jquery-mobile-pagination/' rel='bookmark' title='[jQuery Mobile] Paginationプラグイン'>[jQuery Mobile] Paginationプラグイン</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/04/07/jquery-mobile-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Design] Responsive Layoutを学ぶ(2)</title>
		<link>http://screw-axis.com/2011/02/17/responsive-layout2/</link>
		<comments>http://screw-axis.com/2011/02/17/responsive-layout2/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 15:14:46 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=846</guid>
		<description><![CDATA[前回で、レスポンシブなデザインがつまりどういうものであるかと、その基本技術であるメディア・クエリーについて見てきました。 簡単におさらいしておくと、次のようなページを フレキシブル・グリッド・バージョン (A List  [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/02/16/responsive-layout1/' rel='bookmark' title='[Design] Responsive Layoutを学ぶ(1)'>[Design] Responsive Layoutを学ぶ(1)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2011/02/responsive2.jpg" alt="" title="responsive layout" width="240" height="158" class="alignright size-full wp-image-886" /><a href="/2011/02/16/responsive-layout1/">前回</a>で、レスポンシブなデザインがつまりどういうものであるかと、その基本技術であるメディア・クエリーについて見てきました。</p>
<p>簡単におさらいしておくと、次のようなページを<br />
<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-flexible.html">フレキシブル・グリッド・バージョン</a> (A List Apart)<br />
最終的には、次のようなレスポンシブ・レイアウトに<br />
<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-FINAL.html">レスポンシブ・レイアウト・バージョン</a> (A List Apart)<br />
仕上げようという試みです。<br />
<span id="more-846"></span></p>
<h4>基になるレイアウト</h4>
<p>まずは、大まかなレイアウトの構造を確認しておきましょう。全体の構成は大きく分けて4つのブロックから出来ています。<br />
<img src="http://screw-axis.com/wp-content/uploads/2011/02/inquire_layout.png" alt="" title="レイアウト" width="671" height="485" class="aligncenter size-full wp-image-869" /><br />
mastはfloat: left、それ以外の3つはfloat: rightが指定されて、こうした段組になっています。<br />
(これはあくまで、今回のサンプルの話です。レスポンシブ・レイアウトは、どんな段組にしようと基本的には実装可能です)</p>
<h4>レスポンシブ初歩</h4>
<p>では、これをウインドウサイズを縮めた時に、縦方向に並ぶよう記述してみましょう。</p>
<pre name="code" class="css">
@media screen and (max-width: 600px) {
  .mast,
  .intro,
  .main,
  .footer {
    float: none;
    width: auto;
  }
}</pre>
<p>非常に簡単なことで、各クラスのfloat指定を無くしてやるだけです。コードは「横幅が600pxより小さくなった場合、4つのクラスに対してfloat: noneとwidth: autoを指定する」という意味になります。</p>
<p>動作は、<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-linearize.html">こちら</a>から確認できます。いかがでしょうか。</p>
<h4>画像の組み換え</h4>
<p>次に、mainブロックにある画像に着目してみます。</p>
<p>現在、3&#215;2のレイアウトになっていますが、スクリーンを小さくしていくと画像が小さくなりすぎてしまうので、ある地点から2&#215;3のレイアウトに変えようと思います。</p>
<p>各人物のエリアには figure というクラスが割り当てられていて、約1/3の大きさになるように指定されています。そして、それぞれ右側にマージンをとっています。ただし、レイアウト上右端に来る2人(HOLMESとWINTER)は、右側のマージンが不要なので、id指定により除去しています。</p>
<pre name="code" class="css">
.figure {
  float: left;
  margin: 0 3.317535545023696682% 1.5em 0;   /* 21px / 633px */
  width: 31.121642969984202211%;             /* 197px / 633px */
}

li#f-mycroft,
li#f-winter {
  margin-right: 0;
}</pre>
<p>ここでスクリーンの横幅が400px以下だった場合には、figure の横幅が約半分になるようメディア・クエリーで指定します。</p>
<pre name="code" class="css">
@media screen and (max-width: 400px) {
  .figure,
  li#f-mycroft {
    margin-right: 3.317535545023696682%;    /* 21px / 633px */
    width: 48.341232227488151658%;          /* 306px / 633px */
  }

  li#f-watson,
  li#f-moriarty {
    margin-right: 0;
  }
}</pre>
<p>更に、右側のマージンが不要になる人物(つまり右端に来る人物)も変わるので、そこの指定も行っています。</p>
<p>動作を<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-mini.html">確認</a>してみてください。</p>
<h4>大画面対応</h4>
<p>さきほどのレイアウト組み換えは、逆にスクリーンが大きくなった際にも有効なテクニックです。</p>
<p>次のコードは、スクリーンの幅が1300pxを超えた場合に、人物を横一列に並べるよう指定しています。</p>
<pre name="code" class="css">
@media screen and (min-width: 1300px) {
  .figure,
  li#f-mycroft {
    margin-right: 3.317535545023696682%;    /* 21px / 633px */
    width: 13.902053712480252764%;          /* 88px / 633px */
  }
}</pre>
<p>動作は<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-larger.html">このように</a>なります。</p>
<h4>更に進んだ使い方</h4>
<p>これらのテクニックを応用することで、更に進んだレイアウトが可能になります。</p>
<p>前回の冒頭で紹介した<a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-FINAL.html">最終形</a>では、次のような工夫をしています。</p>
<ul>
<li>各メニューが、小さな画面では最上部に横並びになる (ナビゲーションはページの先頭にあった方が便利なはず)</li>
<li>小さくすると、ロゴがシンプルな小さいバージョンに換わる (余計なものを除去)</li>
<li>大きな画面では、メニューが右上に並ぶ (人物が横一列にならび高さが低くなるので、そちらに移してもレイアウト上問題ないはず)</li>
</ul>
<p>あとはCSSのテクニックとの組み合わせばかりなので、コードを挙げての説明は割愛します。必要に応じて、サンプルのコードを直接開いてみてください。工夫次第で、かなり色々なことが出来ると思います。</p>
<h4>古いブラウザへの対応</h4>
<p>このようにメディア・クエリーは非常に強力な機能です。しかし、きちんと対応しているのは主なブラウザでは次のあたりになります。</p>
<ul>
<li>Safari 3以上</li>
<li>Google Chrome</li>
<li>Firefox 3.5以上</li>
<li>Opera 7以上</li>
</ul>
<p>何かと問題の Internet Explorer も、次のバージョン9からはメディア・クエリーに対応すると<a href="http://ie.microsoft.com/testdrive/HTML5/CSS3MediaQueries/">表明</a>はしています。</p>
<p>実際のところ、メディア・クエリーが動作しないブラウザであってもフレキシブル・グリッドなどは機能するものが多いですし、極端に大きくしたり小さくした際に最適なレイアウトが得られないだけなので問題は無いかもしれません。しかし、せっかく用意したものなので少しでも多くのブラウザに対応させたいということであれば、次のような方法があります。</p>
<ul>
<li>jQueryの<a href="http://plugins.jquery.com/project/MediaQueries">Media Queryプラグイン</a>を使う。非常に限定的な機能しか使えませんが、2007年からある便利なツールです。</li>
<li><a href="http://code.google.com/p/css3-mediaqueries-js/">Css3-mediaqueries-js</a>を使う。スクリプトがメディア・クエリーの記述を探し出して解析し、動作をエミュレートしてくれます。おかげでIE5以上、Firefox全般、Safari 2以上でもメディア・クエリーが使えるようになります。</li>
</ul>
<p>これらを導入することで、古いブラウザ環境であってもJavaScritpが動作するようになっていれば、対応できるようになります。</p>
<p>レスポンシブ・レイアウトは、Webの閲覧デバイスが加速度的に多様化している現在、ユーザにとっても開発者にとっても重要なものになってくるでしょう。これからサイトデザインやリニューアルをする場合、最初から設計に組み込んでおくのが良いと思います。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/02/16/responsive-layout1/' rel='bookmark' title='[Design] Responsive Layoutを学ぶ(1)'>[Design] Responsive Layoutを学ぶ(1)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/02/17/responsive-layout2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Design] Responsive Layoutを学ぶ(1)</title>
		<link>http://screw-axis.com/2011/02/16/responsive-layout1/</link>
		<comments>http://screw-axis.com/2011/02/16/responsive-layout1/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 09:45:55 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=823</guid>
		<description><![CDATA[PCとスマートフォン両対応ページを作っていると、避けて通れないのがレイアウトの問題。昨年サンフランシスコのAdobe Maxで紹介していたResponsive Layoutが良いんだろうと思って調べたのですが、なかなか日 [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2011/02/17/responsive-layout2/' rel='bookmark' title='[Design] Responsive Layoutを学ぶ(2)'>[Design] Responsive Layoutを学ぶ(2)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2011/02/responsive_layout.jpg" alt="" title="responsive layout" width="240" height="200" class="alignright size-full wp-image-826" style="margin-left: 10px;" />PCとスマートフォン両対応ページを作っていると、避けて通れないのがレイアウトの問題。昨年サンフランシスコのAdobe Maxで紹介していたResponsive Layoutが良いんだろうと思って調べたのですが、なかなか日本語でまとまった資料が見つからず。</p>
<p>どうも「Responsive Layout」を日本で何と呼んでいるか分からず、だから見つからないのだと思うのですが。海外に<a href="http://www.alistapart.com/articles/responsive-web-design/">すごく良い記事</a>があったので、こちらのサンプルを用いながら、自分用にまとめておきます。</p>
<p>なお、サンプルは元記事のものへのリンクですが、本文は自分のざっとの理解で書いていますので、翻訳にはなっていません。ご了承ください。<br />
<span id="more-823"></span></p>
<h4>デバイスごとに個別にページを用意</h4>
<p>サイトが世に必要とされはじめた頃は、これが定番でしたね。サブドメインで m.example.com とか mobile.example.com とか。最近になっても smartphone.example.com なんてのも見かけます。</p>
<p>日本のガラケー対応は、あまりにもPC向けページとは作りが異なるので、結局これしかない部分もあります。また、デバイスによって画面のステップ数を変えるようなこだわりがある場合は、必要かもしれません。</p>
<p>しかし、ほぼ同じアーキテクチャで閲覧できる最近のスマートフォンで、そうした手間をかけるのは面倒です。SEOやメディアからの被リンクにも、あまり良いことは無いですし。</p>
<p>かといって、PCそのままのページ構成では読みにくい場合があることも事実。そこでまず出てくるのがフレキシブル・レイアウトです(まだ、今回取り上げたい「レスポンシブ・レイアウト」ではないので、慌てずに)。</p>
<h4>フレキシブルなレイアウト</h4>
<p>フレキシブル・レイアウトがどういったものなのか、サンプルを見てみましょう。</p>
<p><a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-flexible.html" target="_blank">フレキシブル・グリッド・サンプル</a> (A List Apart)</p>
<p>PCブラウザで閲覧している場合、ウインドウサイズを大きくしたり小さくしたりすると、どういうものかすぐに分かると思います。いわゆる Fruid Grid (可変グリッド)と呼ばれる構造に、フレキシブル・イメージという親のグリッドにあわせて画像サイズが自動調整されるテクニックを用いた、まさに「フレキシブルな」レイアウトになっています。</p>
<p>可変グリッドや<a href="http://unstoppablerobotninja.com/entry/fluid-images">フレキシブル・イメージ</a>については詳細な説明は割愛しますが(要望があれば、どこかで)、スクリプトは事実上IE対応のみで、マトモなブラウザ相手であればHTML+CSSだけでサクサク実装できるのが魅力です。</p>
<p>これで概ね幸せだったのですが、iPhoneサイズで見るには、まだ残念な感じです。極端にブラウザを細くすると、グリッドがヘシャげて読みにくくなることが分かるかと。</p>
<p>そこでレスポンシブ・レイアウトの登場です。</p>
<h4>レスポンシブなレイアウト</h4>
<p>レスポンシブ・レイアウトでは、フレキシブル・レイアウトのように画面サイズに対して線形比率でレイアウトするのではなく、一定の閾値(ブレーク・ポイント)を堺にスタイルを切り替えることで、更に柔軟な構成を実現します。</p>
<p>まずは、実際に動作するサンプルを見てみましょう。</p>
<p><a href="http://www.alistapart.com/d/responsive-web-design/ex/ex-site-FINAL.html" target="_blank">レスポンシブ・レイアウト・サンプル</a> (A List Apart)</p>
<p>ブラウザサイズを変えていくと、ある地点でレイアウトが変わることがわかると思います。たとえば小さくしていくとサイドバーとコンテンツが縦に並んだり、画像の配置が変わったりといった具合です。この切り替わる境界点が「閾値」の部分です。</p>
<p>更に注目して欲しいのは、依然としてフレキシブル・レイアウトの動作も残している点です。閾値内でのレイアウトには、また従来のテクニックを組み合わせることが可能になっています。</p>
<p>これであれば、例えば同じスマートデバイスでもiPhoneとGalaxy Tabのように大きさが異なるディスプレイで、あるいは縦横の切替で、それぞれに最適な見せ方をすることができます。</p>
<p>次に、具体的な実装を見て行きましょう。</p>
<h4>メディア・クエリー</h4>
<p>元々はCSS2.1から登場した登場したメディア・タイプが、「デバイスによってスタイルを切り替える」という発想のスタートだったと思います。</p>
<pre name="code" class="html">
<link rel="stylesheet" type="text/css" href="core.css" media="screen" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
</pre>
<p>実際に<a href="http://www.w3.org/TR/CSS21/media.html#media-types">多くのメディアタイプが定義</a>され、可能性を感じさせる仕様でした。しかし、メディア側の実装がなかなか追いつかず、実質的にはprintくらいしか使われていないと思います。</p>
<p>そこで登場したのが、考え方を引き継いで、より柔軟な実装を可能にした「<a href="http://www.w3.org/TR/css3-mediaqueries/">メディア・クエリー</a>」です。</p>
<p>メディア・クエリーは、メディア・タイプのようにデバイス依存のクラスを作成するのではなく、レンダリングするデバイスのサイズや性能を調べ、それを基に適用するスタイルを切り替えるものです。例えば次のコードは、iOS、Android、PCなどを問わず、出力先がスクリーン(プリンタなどではなく)で、デバイスの横幅が480px以内であればshetland.cssを適用するという意味になります。</p>
<pre name="code" class="html">
<link rel="stylesheet" type="text/css"
  media="screen and (max-device-width: 480px)"
  href="shetland.css" />
</pre>
<p>この例では、960&#215;480のスマートフォンを縦に持っている時は、横幅が480pxなのでスタイルが読み込まれます。しかし、横に持ち替えると条件に合致しなくなるので、この行は無視されるようになります。</p>
<p>こうしたことは、近年は<a href="http://www.themaninblue.com/experiment/ResolutionLayout/">JavaScriptを用いて実現する</a>のが常套でした。しかし、メディア・クエリーの実装が進んできたことで、こちらを使えば更に解像度や色数など、更に進んだ機能にも対応できます。</p>
<pre name="code" class="html">
<link rel="stylesheet" type="text/css"
  media="screen and (max-device-width: 480px) and (resolution: 163dpi)"
  href="shetland.css" />
</pre>
<p>またメディア・クエリーは、スタイルシート自体を切り分けるだけでなく、CSSファイルの中に記述することも可能です。</p>
<pre name="code" class="css">
@media screen and (max-device-width: 480px) {
  .column {
    float: none;
  }
}
</pre>
<p>更に、importの記述により切り分けることも出来ます。</p>
<pre name="code" class="css">
@import url("shetland.css") screen and (max-device-width: 480px);
</pre>
<p>特定のデバイスを見分けて切り分けるよりも、その特性にあわせたスタイルを適用する方が合理的であるという考え方を基に、こうした機能は実装されました。</p>
<p>レスポンシブ・レイアウトは、このメディア・クエリーを活用して多種多様なデバイスで最適な表示を実現するようデザインします。</p>
<p><a href="/2011/02/17/responsive-layout2/">次回</a>で、具体的な実装方法を見ていきます。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2011/02/17/responsive-layout2/' rel='bookmark' title='[Design] Responsive Layoutを学ぶ(2)'>[Design] Responsive Layoutを学ぶ(2)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2011/02/16/responsive-layout1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Prezi] 日本語マニュアル公開</title>
		<link>http://screw-axis.com/2010/04/08/prezi-manual/</link>
		<comments>http://screw-axis.com/2010/04/08/prezi-manual/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 01:00:18 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Prezi]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=813</guid>
		<description><![CDATA[最近使う機会の増えているプレゼン作成ツール Prezi のチュートリアル(Preziアカデミー)とマニュアルを、公式に許可を得て日本語化してみました。 Prezi日本語マニュアル Preziは、無料で使える新しいタイプの [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2010/04/prezi.jpg" alt="" title="Prezi" width="240" height="160" class="alignright size-full wp-image-814" />最近使う機会の増えているプレゼン作成ツール Prezi のチュートリアル(Preziアカデミー)とマニュアルを、公式に許可を得て日本語化してみました。</p>
<p><a href="http://dev.screw-axis.com/doc/prezi/">Prezi日本語マニュアル</a></p>
<p>Preziは、無料で使える新しいタイプのプレゼン作成ツールです。PowerPointとは発想が異なり、プレゼン全体を一枚の大きな模造紙のように見立てて、その中を移動して行くようなイメージです。<br />
<span id="more-813"></span><br />
最初に<a href="http://delicious.com/semooh/presentation">このツールを見た</a>のが2009年の1月でした。自分と仕事をしたことのある人は分かると思うのですが、ホワイトボードの前に陣取って全体像を描きながら説明するのがスタイルの自分には、非常にシックリくるツールです。当時は日本語が使えずに利用機会は無かったのですが、その後、限定的ではありますが日本語も使えるようになったので、徐々に利用が増えていきました。</p>
<p>単に「ちょっとカッコイイ感じのプレゼンが作れるツール」ではなく、ツールが思考の方を引っ張る好例ではないかと思っています。今自分はフリーで仕事をしていますが、以前のようにメンバーが居る立場であれば、ロジカルに物事を考える練習としてでも使わせてみたいななどと考えながらドキュメントを作りました。</p>
<p>興味を持ったら是非、ちょっと触ってあきらめずに、一本プレゼンを作ってみて下さい。<br />
きっと、プレゼンの組み立てそのものが変わると思います。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2010/04/08/prezi-manual/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Chrome Extension] QuickSilver風の拡張機能</title>
		<link>http://screw-axis.com/2010/01/29/chrome-extension-mandlin/</link>
		<comments>http://screw-axis.com/2010/01/29/chrome-extension-mandlin/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:10:42 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Chrome Extension]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[mandlin]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=781</guid>
		<description><![CDATA[ギャラリーにうまくアップロード出来なかった拡張機能ですが、グループの方で教えていただいたおかげで解決しました。messages.jsonをBOM付きUTF-8で保存していたためということで、大変助かりました。というわけで [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/' rel='bookmark' title='[Chrome Extension] APIリファレンスの日本語訳'>[Chrome Extension] APIリファレンスの日本語訳</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://screw-axis.com/wp-content/uploads/2010/01/mandlin.jpg"><img src="http://screw-axis.com/wp-content/uploads/2010/01/mandlin.jpg" alt="" title="mandlin" width="240" height="160" class="alignright size-full wp-image-786" style="margin-left: 10px;" /></a>ギャラリーにうまく<a href="http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/">アップロード出来なかった</a>拡張機能ですが、<a href="http://groups.google.com/group/chromium-extensions-japan/browse_thread/thread/2bee59238ae0d034?hl=ja">グループの方で教えていただいた</a>おかげで解決しました。messages.jsonをBOM付きUTF-8で保存していたためということで、大変助かりました。というわけで、ようやくの(ほぼ)処女作です。</p>
<p><a href="http://dev.screw-axis.com/doc/mandlin/">Mandlin &#8211; QuickSilver風 ウェブナビゲーションツール</a></p>
<p><span id="more-781"></span><br />
詳しい使い方はリンク先を見ていただくとして、YubNub+QuickSilverといった風の、様々な検索エンジンをキーボードベースで操ることのできるツールです。</p>
<p>自分が欲しくて作ったものなので使い勝手にはそれなりに満足していますが、なにしろ呼び出しにマウスを持ってクリックしなければいけないのが、なんとも残念な点で。せめてポップアップを開くAPIがあればショートカットキーもどきも出来なくは無いのですが&#8230; ポップアップではなく、コンテント・スクリプトでウインドウから描画してタブのコンテンツ内で表示させることも考えましたが、他人の家にあがりこむような感じにちょっと抵抗があったので、とりあえず由としておきます。</p>
<p>作成にあたって気づいた点など、徐々に <a href="http://dev.screw-axis.com/doc/chrome_extensions/">リファレンス</a> の方で更新していければと思っています。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/' rel='bookmark' title='[Chrome Extension] APIリファレンスの日本語訳'>[Chrome Extension] APIリファレンスの日本語訳</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2010/01/29/chrome-extension-mandlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Chrome Extension] APIリファレンスの日本語訳</title>
		<link>http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/</link>
		<comments>http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 04:28:38 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Chrome Extension]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=771</guid>
		<description><![CDATA[年明けからGoogle Chromeのエクステンション作りを始めてみたのですが、非常に手軽で、よく言われるようにFirefoxで言うところの &#8220;エクステンション&#8221; に対応するものではなく &#82 [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/01/29/chrome-extension-mandlin/' rel='bookmark' title='[Chrome Extension] QuickSilver風の拡張機能'>[Chrome Extension] QuickSilver風の拡張機能</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://screw-axis.com/wp-content/uploads/2010/01/chrome.jpg"><img class="alignright size-full wp-image-772" title="Google Chrome" src="http://screw-axis.com/wp-content/uploads/2010/01/chrome.jpg" alt="" width="240" height="160" style="margin-left: 10px;" /></a>年明けからGoogle Chromeのエクステンション作りを始めてみたのですが、非常に手軽で、よく言われるようにFirefoxで言うところの &#8220;エクステンション&#8221; に対応するものではなく &#8220;Jetpack&#8221; だなという印象です。</p>
<p>今回、勉強がてら公式のAPIドキュメントを日本語訳してみたので、公開しておきます。</p>
<p><a href="http://dev.screw-axis.com/doc/chrome_extensions/">Google Chrome Extension API 日本語リファレンス</a><br />
<span id="more-771"></span><br />
馴染みのあるWeb技術ばかりで出来ているので、チュートリアルに沿ってひとつ作ってみれば、簡単に理解できました。あとはガイドを斜め読みしながら出来ることをおさえておき、作りながら必要にあわせてAPIリファレンスをひいてみる感じで。</p>
<p>まだ出来ることも限られていますが、プロセスが分かれていることもあり軽量で快適です。なかなかFFから移行できずにいたのが、おかげで最近はすっかりChromeメインで使っています。</p>
<p>というわけで幾つか作ってみたのですが、どうやら <a href="http://groups.google.co.jp/group/chromium-extensions/browse_thread/thread/ee763c880e4c48c8">ギャラリーページのバグ</a> でアップロードできず&#8230; いずれ問題が解決したら公開しようと思います。</p>
<p>作成途中で気づいたTipsなどもあるので、オリジナルのコンテンツも追加していく予定です。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/01/29/chrome-extension-mandlin/' rel='bookmark' title='[Chrome Extension] QuickSilver風の拡張機能'>[Chrome Extension] QuickSilver風の拡張機能</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2010/01/28/chrome-extension-api-reference-japanese/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Twitter] 呟きが検索結果に表示されなくなったら</title>
		<link>http://screw-axis.com/2009/12/08/twitter-spam-suspicious/</link>
		<comments>http://screw-axis.com/2009/12/08/twitter-spam-suspicious/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 03:33:27 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=729</guid>
		<description><![CDATA[昨日、フォローいただいている人から「あなたの発言が検索結果に表示されないけど、どうして?」と指摘いただきまして。 Web学会の最中だったんですが、ちょっと試してみると確かにひっかからない。自分の発言はヒットしない作りなの [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2009/12/alone.jpg" alt="alone" title="alone" width="240" height="178" class="alignright size-full wp-image-730" style="margin-left: 5px;" />昨日、フォローいただいている人から「<a href="http://twitter.com/nao58">あなたの発言</a>が検索結果に表示されないけど、どうして?」と指摘いただきまして。<br />
Web学会の最中だったんですが、ちょっと試してみると確かにひっかからない。自分の発言はヒットしない作りなのかと、ログインしていないブラウザから試しても同様。それ以上調べている時間も無かったので、サポートにメールしてみました。<br />
その日の夕方、返ってきた答えは「ハッシュタグを使いすぎているから」とのこと。ちょっと驚きでした。<br />
<span id="more-729"></span><br />
要するにスパム判定の一種に抵触したようなのですが、<a href="http://jptwitterhelp.blogspot.com/search/label/%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F">ヘルプ</a>を見てみると、このように記述されています。</p>
<blockquote><p>商業的利用やプロモーションのためにツイッターを利用する行為は許可されています。興味のあるユーザーとの間に、互いに価値のある関係を作るためにツイッターを利用する場合などです。ところが、自分のアカウントやサイトなどに注意を引くためだけに、ユーザーをフォローする行為はスパムとして扱われる可能性があります。まったく同じものを宣伝、または販売促進するためにたくさんのアカウントを登録することもスパムとして扱われる可能性があります。また本物ではない＠付きのつぶやきを投稿することや、検索結果に表示するためだけに投稿することもスパムとして扱われる可能性があります。さらに、つぶやきに関係のないリンクを貼ったり大勢のユーザーがあなたをブロックした場合などもスパムとして扱われる可能性があります。</p></blockquote>
<p>ここにはハッシュタグに関する記述はありません。</p>
<p>もう一息、英語の方のヘルプフォーラムを調べてみたところ、<a href="http://help.twitter.com/forums/10713/entries/42646">それらしいもの</a>を見つけました。これによると、次のような行為がイエローカードに当たるようです。</p>
<ul>
<li>同じ、或いは似たような呟きを繰り返す。</li>
<li>同じ、或いは似たようなリンクを繰り返し貼る。</li>
<li>同じ話題の単語、或いはハッシュタグを乱用する。</li>
<li>自動化された呟きや返信を送る。</li>
<li>キーワードを基にした似たようなメッセージを送るボットやアプリケーションを使う。</li>
<li>複数のアカウントから似たようなメッセージを投稿する。</li>
<li>頻繁にフォロー/フォロー解除を繰り返す。</li>
</ul>
<p>自分はハッキリは言われませんでしたが、ラグビー関連の話題を持ち出す際に慣例として使っていた #rugby が「同じハッシュタグの乱用」に当たったのではないかと思います。興味の無い人が読まなくて良いように呟きの先頭につけていたのですが、今後は止めにします。(アカウント分けた方が良いのかな&#8230;)<br />
なお、「状況を改善して欲しい」とお願いしたところ、今朝から検索にヒットするようになりました。</p>
<p>どうやらTwitter検索八分は、完全にスパムアカウントとして凍結する前の「執行猶予」のようなもののようです。<br />
「別に検索されなくてもいいや」としていると、場合によってはアカウント自体を停止されてしまうかもしれません。<br />
気になる人は、エゴサーチで自分の発言がヒットするか試してみることをお勧めします。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2009/12/08/twitter-spam-suspicious/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

