<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<language>ja-jp</language>
		<title>アシアルブログ</title>
		<link>http://blog.asial.co.jp/</link>
		<description>アシアルブログ最新投稿</description>
		<pubDate>Fri, 03 Feb 2012 17:16:01 +0900</pubDate>
		<lastBuildDate>Fri, 03 Feb 2012 17:30:04 +0900</lastBuildDate>
		<managingEditor>info@asial.co.jp</managingEditor>
		<webMaster>info@asial.co.jp</webMaster>
		<copyright>Copyright  All rights reserved.</copyright>
				<item>
			<pubDate>Fri, 03 Feb 2012 17:16:01 +0900</pubDate>
			<title>システム開発エンジニア募集！</title>
			<link>http://blog.asial.co.jp/874</link>
			<description><![CDATA[ こんにちは。小林です。<br />
<br />
アシアルでは、新規事業の拡大、受注案件の増加に伴い新しい仲間を募集しております。ブログをご覧いただいている皆さんの中に、「我こそは！」と思う方がいらっしゃいましたら、以下の応募フォームより、ご連絡いただけたらと考えます。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1773&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1773" /></a></div><br />
<br />
Find job 応募ページ（※ Find Jobサイトへ飛びます）<br />
<a hredf="https://www.find-job.net/list/j86364.html?from=23"><a href='https://www.find-job.net/list/j86364.html?from=23'>https://www.find-job.net/list/j86364.html?from=23</a></a><br />
<br />
※ Find Jobのアカウントをお持ちでない方は、<a href="http://www.asial.co.jp/recruit/"> アシアルの採用募集ページ </a>の案内に従って、ご連絡いただけたらと思います。<br />
<br />
<br />
【募集要項】<br />
<br />
● 職種：プロジェクトマネージャ、システムエンジニア、プログラマ<br />
● 業務内容<br />
<br />
アシアルでは、単にアプリケーションを開発するだけでなく、業務にあわせたさまざまな業務を行っていただいております。<br />
<br />
具体的には、以下の3つの業務があげられます。<br />
<br />
1. Webシステム構築・スマートフォンアプリ開発<br />
<br />
Webシステムの設計・開発業務に関わって頂きます。<br />
※開発に関しては、自社システム（自社サービス）、受注案件のシステム開発の両方行っています。<br />
<br />
* Webアプリケーション開発（PC・携帯ともに開発しています。）<br />
* Webアプリケーションの保守・運用<br />
* サーバーの構築、保守、運用<br />
* スマートフォン（iPhone, Android）アプリ開発<br />
<br />
2. プログラマ向け製品のサポート<br />
<br />
プログラムのスキル、ご経験、ご希望により相談させて頂きますが、具体的には、いずれかの業務を行って頂きます。<br />
<br />
* システム開発を通じて、 最新のPHP技術や開発メソッドを追求<br />
* システムのテクニカルサポート、ドキュメントやWebサイトの整備を含めたサポート業務<br />
* 自社Webサービスの企画立案・構築・運用<br />
<br />
3. スクール・メディア事業への取り組み<br />
<br />
また、その他にもアシアルは、PHPのポータル＆コミュニティサイトPHPプロ！やPHPスクールの運営、オープンソースコミュニティへの参加を行っており、下記のような幅広い分野で、経験を活かして頂けます。<br />
<br />
* PHPプロ！からPHPの最新技術情報の発信<br />
* PHPスクールの講師－実際に生徒さんに授業を行う<br />
* 書籍・Webメディア(ITプロ等)の執筆活動<br />
* PHPユーザー会(PHPカンファレンスの積極参加)、smartyなどオープンソースコミュニティへの貢献<br />
<br />
● ママさん社員も活躍してます！<br />
<br />
女性の方、ママさん社員も大歓迎です。<br />
私自身もそうですが、メンバーの理解や協力のおかげで、仕事も子育ても楽しんでいます。毎月開催される誕生会や、社員旅行など、息子も一緒に参加させていただいております。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1775&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1775" /></a></div><br />
<br />
<br />
皆さんからのご応募、心よりお待ちしております。<br />
<br />
※ ひそかに、以前、ブログデビュー（ブログ過去記事：<a href="http://blog.asial.co.jp/867"> 社員旅行に行きました </a>）しておりますが、改めて宜しくお願いします。 ]]></description>
			<author>小林有佳</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/874</guid>
		</item>
				<item>
			<pubDate>Tue, 31 Jan 2012 19:40:26 +0900</pubDate>
			<title>OpenVPNで細々便利な設定</title>
			<link>http://blog.asial.co.jp/873</link>
			<description><![CDATA[ 以前OpenVPNについて紹介しましたが、今回はもう少し深い部分について書こうと思います。<br />
<br />
１・ルート追加<br />
例えば、下記のようにVPNサーバのセグメント以外に接続先ネットワークを指定する場合に使用できます。<br />
<ol class="boxcode-main no-number"><li>|クライアント|-----|VPNサーバ|------|接続先サーバorネットワーク|</li></ol><br />
■サーバ側からpushする方法<br />
接続する全クライアントに対して適用させることができます。<br />
<br />
設定方法は簡単で、サーバ側の設定ファイルに下記のように追加してください。<br />
※L3を使用している場合に使用可能な方法です。<br />
　L2を使用する場合は調べきれていないので割愛。<br />
<ol class="boxcode-main no-number"><li>push<wbr />&nbsp;"route<wbr />&nbsp;192.168.10.0<wbr />&nbsp;255.255.255.0"</li></ol><br />
pushにて第一引数にクライアントで実行するコマンドを指定、<br />
routeは、第一引数に接続先ネットワーク、第二匹数にネットマスクを指定<br />
<br />
上記設定のみで、接続先ネットワークに行くにはこのVPNサーバを使用するという命令を発行できます。<br />
OpenVPNサーバを再起動後、クライアントから接続すれば適用されているはずです。<br />
<br />
実は、下記のように書けばメトリックを指定できますので、<br />
PCでは年中OpenVPNを起動しておいて、社内に移動した時は通常のLANを使用(Metricが0なので)、社外に出た時はOpenVPN経由にするなどの使い方ができます。<br />
<ol class="boxcode-main no-number"><li>push<wbr />&nbsp;"route-metric<wbr />&nbsp;100"</li></ol><br />
■クライアント側で指定<br />
一部のクライアントのみ有効にしたい場合などは、クライアント側に指定もできます。<br />
指定というか、起動時にrouteコマンドを実行するだけですが、<br />
<ol class="boxcode-main no-number"><li>route-up<wbr />&nbsp;"route<wbr />&nbsp;add<wbr />&nbsp;-net<wbr />&nbsp;172.16.0.0/16<wbr />&nbsp;gw<wbr />&nbsp;10.0.0.1"</li></ol>route-up で、任意のコマンドを実行できるので、routeコマンドを直接実行します。<br />
<br />
■その他、クライアント側で指定する場合<br />
L2で接続している場合は、見える範囲なら普通にrouteコマンドを使用出来ます。<br />
L3で接続している場合ですが、クライアント側から出ていくためのゲートウェイが存在しますので、そこに投げればOKです。<br />
<ol class="boxcode-main no-number"><li>※クライアントが192.168.100.6の場合</li><li>$<wbr />&nbsp;/sbin/route<wbr />&nbsp;-n</li><li>(ry)</li><li>192.168.100.5<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0.0.0.0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;255.255.255.255<wbr />&nbsp;UH<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0<wbr />&nbsp;tun0<wbr />&nbsp;<-<wbr />&nbsp;VPN側のGWへのルート</li><li>192.168.10.0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;192.168.100.5<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;255.255.0.0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;UG<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;100<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;0<wbr />&nbsp;tun0<wbr />&nbsp;<-<wbr />&nbsp;接続先へはVPNのGWを通る</li></ol><br />
２・暗号化方式の変更<br />
<br />
下記のように指定してやれば暗号化方式を変更することができます。<br />
速度と強度の兼ね合いでお好きな物をご使用ください。<br />
<ol class="boxcode-main no-number"><li>cipher<wbr />&nbsp;aes-256-cbc</li></ol>方式のアルゴリズムや強度については割愛します。<br />
なお、自分の場合はAES256を使用しています。<br />
<br />
こっちの方が重要で、AES-NI対応のCPUの場合は数倍のスループットを引き出せるようです。<br />
※自分の場合はサーバが対応していないため未検証<br />
設定は下記のようになります。<br />
<ol class="boxcode-main no-number"><li>engine<wbr />&nbsp;aesni</li></ol><br />
以上、少し便利にする設定でした。 ]]></description>
			<author>門脇優児</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/873</guid>
		</item>
				<item>
			<pubDate>Mon, 23 Jan 2012 16:49:15 +0900</pubDate>
			<title>【iOS】Viewの開発・デバッグに役立つ色々</title>
			<link>http://blog.asial.co.jp/872</link>
			<description><![CDATA[ こんにちは、中川です。<br />
<br />
最近はちょっとPHPから離れて<a href="http://monaca.mobi/">Monaca</a>を使ったiOSアプリの開発を行なっています。<br />
Monacaでは基本的にHTML+CSS+JSでの開発となりますが、<br />
今回開発中のものはObjective-Cを使ったネイティブの画面をカスタムで組み込んで利用したりしています。<br />
<br />
HTML+CSSであれば画面を作るのは慣れていることもあり比較的簡単なのですが、<br />
UIKitでのネイティブ画面となると微妙なズレの調整などで苦労する場面が多々ありました。<br />
そんな時に役立ったTIPSなどをご紹介したいと思います。<br />
<br />
<h3>■位置やサイズのログ出力</h3><br />
CGRect, CGSize, CGPoint など、NSStringFromXXXXXで簡単にログ出力することができます。<br />
<ol class="boxcode-main no-number"><li>NSLog(@"frame:<wbr />&nbsp;%@",<wbr />&nbsp;NSStringFromCGRect(self.view.frame));</li><li>NSLog(@"size:<wbr />&nbsp;%@",<wbr />&nbsp;NSStringFromCGSize(self.view.frame.size));</li><li>NSLog(@"center:<wbr />&nbsp;%@",<wbr />&nbsp;NSStringFromCGPoint(self.view.center));</li></ol>※出力結果<br />
<ol class="boxcode-main no-number"><li>2012-01-23<wbr />&nbsp;15:51:51.125<wbr />&nbsp;Sample[23110:f803]<wbr />&nbsp;frame:<wbr />&nbsp;{{0,<wbr />&nbsp;0},<wbr />&nbsp;{320,<wbr />&nbsp;411}}</li><li>2012-01-23<wbr />&nbsp;15:51:51.127<wbr />&nbsp;Sample[23110:f803]<wbr />&nbsp;size:<wbr />&nbsp;{320,<wbr />&nbsp;411}</li><li>2012-01-23<wbr />&nbsp;15:51:51.128<wbr />&nbsp;Sample[23110:f803]<wbr />&nbsp;center:<wbr />&nbsp;{160,<wbr />&nbsp;205.5}</li></ol>知ってる人には常識なことかもしれませんが、知るまでは size.width, size.heightなどと個別に出力してました。。。<br />
<br />
<h3>■Viewのログ出力</h3><br />
UIVIewのframeなどは、上記のようにしなくとも、<br />
<ol class="boxcode-main no-number"><li>NSLog(@"view:<wbr />&nbsp;%@",<wbr />&nbsp;view);</li></ol>これで、<br />
<ol class="boxcode-main no-number"><li>view:<wbr />&nbsp;<UIView:<wbr />&nbsp;0x68aa750;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(0<wbr />&nbsp;0;<wbr />&nbsp;320<wbr />&nbsp;411);<wbr />&nbsp;autoresize<wbr />&nbsp;=<wbr />&nbsp;W+H;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68aa7d0>></li></ol>このように確認することもできます。<br />
<br />
<h3>■Viewを再帰的にログ出力</h3><br />
指定したViewを再帰的にダンプすることができます。<br />
<br />
<ol class="boxcode-main no-number"><li>NSLog(@"%@",<wbr />&nbsp;[view<wbr />&nbsp;performSelector:@selector(recursiveDescription)]);</li></ol><br />
※出力例<br />
<ol class="boxcode-main no-number"><li><UIView:<wbr />&nbsp;0x68ccc40;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(0<wbr />&nbsp;0;<wbr />&nbsp;320<wbr />&nbsp;411);<wbr />&nbsp;autoresize<wbr />&nbsp;=<wbr />&nbsp;W+H;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68cccc0>></li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UILabel:<wbr />&nbsp;0x68c3cc0;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(54<wbr />&nbsp;98;<wbr />&nbsp;212<wbr />&nbsp;43);<wbr />&nbsp;text<wbr />&nbsp;=<wbr />&nbsp;'First<wbr />&nbsp;View';<wbr />&nbsp;clipsToBounds<wbr />&nbsp;=<wbr />&nbsp;YES;<wbr />&nbsp;opaque<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;autoresize<wbr />&nbsp;=<wbr />&nbsp;W+BM;<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x684d680>></li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UITextView:<wbr />&nbsp;0x68cce10;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(20<wbr />&nbsp;181;<wbr />&nbsp;280<wbr />&nbsp;88);<wbr />&nbsp;text<wbr />&nbsp;=<wbr />&nbsp;'first<wbr />&nbsp;view...';<wbr />&nbsp;clipsToBounds<wbr />&nbsp;=<wbr />&nbsp;YES;<wbr />&nbsp;opaque<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;autoresize<wbr />&nbsp;=<wbr />&nbsp;W+BM;<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68cc200>;<wbr />&nbsp;contentOffset:<wbr />&nbsp;{0,<wbr />&nbsp;0}></li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UITextSelectionView:<wbr />&nbsp;0x68cd230;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(0<wbr />&nbsp;0;<wbr />&nbsp;0<wbr />&nbsp;0);<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68c47a0>></li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UIImageView:<wbr />&nbsp;0x68cdea0;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(273<wbr />&nbsp;54;<wbr />&nbsp;7<wbr />&nbsp;34);<wbr />&nbsp;alpha<wbr />&nbsp;=<wbr />&nbsp;0;<wbr />&nbsp;opaque<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;autoresize<wbr />&nbsp;=<wbr />&nbsp;LM;<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68cdf10>><wbr />&nbsp;-<wbr />&nbsp;(null)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UIWebDocumentView:<wbr />&nbsp;0x718dc00;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(0<wbr />&nbsp;0;<wbr />&nbsp;280<wbr />&nbsp;34);<wbr />&nbsp;text<wbr />&nbsp;=<wbr />&nbsp;'first<wbr />&nbsp;view...';<wbr />&nbsp;opaque<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<UIWebLayer:<wbr />&nbsp;0x68d15f0>></li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<TileHostLayer:<wbr />&nbsp;0x68d1b00><wbr />&nbsp;(layer)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;|<wbr />&nbsp;<UITextSelectionView:<wbr />&nbsp;0x68dbb80;<wbr />&nbsp;frame<wbr />&nbsp;=<wbr />&nbsp;(0<wbr />&nbsp;0;<wbr />&nbsp;0<wbr />&nbsp;0);<wbr />&nbsp;userInteractionEnabled<wbr />&nbsp;=<wbr />&nbsp;NO;<wbr />&nbsp;layer<wbr />&nbsp;=<wbr />&nbsp;<CALayer:<wbr />&nbsp;0x68dbbe0>></li></ol>※スクショ：<div class="news-image"><a href="/read_file.php?id=1769&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1769" /></a></div><br />
<br />
<h3>■DCIntrospect</h3><br />
<a href='https://github.com/domesticcatsoftware/DCIntrospect'>https://github.com/domesticcatsoftware/DCIntrospect</a><br />
<br />
ちまちまログでやってられないって時に。<br />
シミュレータ上でリアルタイムにビューの位置の確認、調整、ダンプ、カラーリング<br />
などが行えます。これを知るまではViewの調整に非常に苦労しました・・・。<br />
<br />
上記ページからダウンロードして「DCIntrospect」をプロジェクトに追加します。<br />
DCIntrospect内で「QuartzCore.framework」を利用しているようですのでこちらも追加してください。<br />
あとはAppDelegateなどで、以下のように組み込みます。<br />
<ol class="boxcode-main no-number"><li>:</li><li>:</li><li>[window<wbr />&nbsp;makeKeyAndDisplay]</li><li></li><li>//<wbr />&nbsp;always<wbr />&nbsp;call<wbr />&nbsp;after<wbr />&nbsp;makeKeyAndDisplay.</li><li>#if<wbr />&nbsp;TARGET_IPHONE_SIMULATOR</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[[DCIntrospect<wbr />&nbsp;sharedIntrospector]<wbr />&nbsp;start];</li><li>#endif</li><li>:</li><li>:</li></ol>これでシミュレータでアプリを起動してPCのキーボードのスペースを押すと<br />
インスペクタが起動します。<br />
<div class="news-image"><a href="/read_file.php?id=1770&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1770" /></a></div><br />
Viewにボーダーや背景色を付けてデバッグしやすくしたり、Viewを矢印キーで移動させたりできます。<br />
他にも画面上のViewを選択して「p」や「v」などで、ログ出力がアプリを起動しながら行えます。<br />
<br />
「?」でヘルプ画面を表示できるという親切設計です。<br />
<div class="news-image"><a href="/read_file.php?id=1771&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1771" /></a></div><br />
<br />
<h3>■Stats</h3><br />
<a href='https://github.com/shu223/Stats'>https://github.com/shu223/Stats</a><br />
メモリ使用量やViewの数を表示しておくことができます。<br />
使い方はいたって簡単で上記githubからダウンロードして、<br />
AppDelegateなどに仕込んでやるだけと簡単です。<br />
<ol class="boxcode-main no-number"><li>#import<wbr />&nbsp;"Stats.h"</li><li></li><li>@implementation<wbr />&nbsp;AppDelegate</li><li></li><li>-<wbr />&nbsp;(BOOL)application:(UIApplication<wbr />&nbsp;*)application<wbr />&nbsp;didFinishLaunchingWithOptions:(NSDictionary<wbr />&nbsp;*)launchOptions</li><li>{</li><li>:</li><li>:</li><li><wbr />&nbsp;<wbr />&nbsp;Stats<wbr />&nbsp;*stats<wbr />&nbsp;=<wbr />&nbsp;[[[Stats<wbr />&nbsp;alloc]<wbr />&nbsp;initWithFrame:CGRectMake(10,<wbr />&nbsp;30,<wbr />&nbsp;100.0,<wbr />&nbsp;60.0)]<wbr />&nbsp;autorelease];</li><li><wbr />&nbsp;<wbr />&nbsp;[self.window<wbr />&nbsp;addSubview:stats];</li><li>:</li><li>:</li><li><wbr />&nbsp;<wbr />&nbsp;return<wbr />&nbsp;YES;</li><li>}</li></ol>これで以下のように常に画面に表示しておくことができます。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1772&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1772" /></a></div><br />
<br />
※参考:  <a href='http://d.hatena.ne.jp/shu223/20110428/1303930059'>http://d.hatena.ne.jp/shu223/20110428/1303930059</a><br />
<br />
<h3>■(おまけ) UIWebView内のデバッグ</h3><br />
あと、PhoneGapなどで開発していると、WebView内のHTML,JS,CSSをデバッグしたくなりますよね。<br />
そんな時には以下のものが役に立ちました。<br />
・weinre ( <a href='http://phonegap.github.com/weinre/'>http://phonegap.github.com/weinre/</a> )<br />
scriptタグをひとつ追加するだけで、WebkitのWebInspectorを使ったデバッグができるようになります！<br />
<br />
・remoteデバッグ<br />
シミュレータかつiOS5からとなりますが、以下の方法でもPCのSafariのWebInspectorを利用したデバッグが可能です。<br />
こちらは、ブレークポイントも使えるJSのデバッグが可能になります。<br />
AppDelegateなどで、<br />
<ol class="boxcode-main no-number"><li>-<wbr />&nbsp;(BOOL)application:(UIApplication<wbr />&nbsp;*)application<wbr />&nbsp;didFinishLaunchingWithOptions:(NSDictionary<wbr />&nbsp;*)launchOptions</li><li>{</li><li>:</li><li>:</li><li>[NSClassFromString(@"WebView")<wbr />&nbsp;performSelector:@selector(_enableRemoteInspector)];</li><li>:</li><li>:</li><li>}</li></ol>として、アプリを起動しWebViewの画面を表示します。<br />
そしてPCのSafariで、<a href='http://localhost:9999/'>http://localhost:9999/</a> にアクセスしてみてください。<br />
WebViewの一覧のリンクが表示され、それをクリックするとWebInspectorが利用できます。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1768&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1768" /></a></div><br />
<br />
<h3>■最後に</h3><br />
上記でご紹介した方法はいずれもデバッグ用ですので、<br />
リリースアプリに組み込んだままにならないようご注意ください。 ]]></description>
			<author>中川善樹</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/872</guid>
		</item>
				<item>
			<pubDate>Thu, 19 Jan 2012 13:21:00 +0900</pubDate>
			<title>PHPDocumentorの利用方法まとめ</title>
			<link>http://blog.asial.co.jp/871</link>
			<description><![CDATA[ 皆さん、こんにちは。笹亀です。<br />
<br />
新年、最初のブログになりました。<br />
2012年も張り切っていきたいと思います。<br />
<br />
本日は最近よくお世話になっているPHPDocについて書きたいと思います。<br />
PHPDocとはjavadocを利用したことがあるかたならご存知かと思いますが、APIドキュメントを自動生成する便利なツールです。基本的な出力はHTMLで行い、APIのドキュメントとしてよく利用されるものです。<br />
<br />
現在はPHPDocではなく、PHPDocumentorとしてPEARパッケージにて提供がされております。インストールもPEARコマンドから簡単にインストールできます。<br />
<ol class="boxcode-main no-number"><li>pear<wbr />&nbsp;install<wbr />&nbsp;--alldeps<wbr />&nbsp;phpdocumentor</li></ol><br />
インストール後はphpdocコマンドが使用可能になります。とりあえずテストにDoctrineをPHPDoc化してみたいと思います。<br />
※下記は自分の環境にての実行となります（phpdocコマンドがある箇所から実行してください<br />
<ol class="boxcode-main no-number"><li>sasa-no-MacBook-Pro:Desktop<wbr />&nbsp;sasa$<wbr />&nbsp;/opt/local/bin/phpdoc<wbr />&nbsp;-t<wbr />&nbsp;./doctest/doc<wbr />&nbsp;<wbr />&nbsp;-d<wbr />&nbsp;./doctest/Doctrine/<wbr />&nbsp;-o<wbr />&nbsp;HTML:Smarty:PHP</li><li><wbr />&nbsp;-t:<wbr />&nbsp;DOCの出力先</li><li><wbr />&nbsp;-d:DOCにする対象フォルダ</li><li><wbr />&nbsp;-o:出力形式の指定</li></ol><br />
コマンド実行中にWaringとか結構でたりしますが、うまいことそれなりに作成をしてくれます。<br />
<div class="news-image"><a href="/read_file.php?id=1766&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1766" /></a></div><br />
<br />
ただ、個人的にデフォルトのものだとデザインがいけてないです。そこでデザインにもこだわりたいというあなたへPHPDocumentorはSmartyを利用しているので、出力するテンプレートを簡単に切り替えができます。<br />
下記に綺麗なデザインのテンプレートを作成したものがございます。<br />
<a href='http://www.onigoetz.ch/2010/09/11/new-theme-for-phpdocumentor/'>http://www.onigoetz.ch/2010/09/11/new-theme-for-phpdocumentor/</a><br />
<br />
ダウンロードからテンプレートを落とし、ダウンロードしたファイルを適当な箇所で解凍します。<br />
解凍したファイルを下記のPHPDocmentorが格納されている箇所にコピーします。<br />
<ol class="boxcode-main no-number"><li>sasa-no-MacBook-Pro:~<wbr />&nbsp;sasa$<wbr />&nbsp;ls<wbr />&nbsp;-al<wbr />&nbsp;/opt/local/lib/php/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/Evolve/</li><li>HTMLSmartyEvolveConverter.inc<wbr />&nbsp;<wbr />&nbsp;templates/<wbr />&nbsp;</li><li></li><li>sasa-no-MacBook-Pro:~<wbr />&nbsp;sasa$<wbr />&nbsp;ls<wbr />&nbsp;-al<wbr />&nbsp;/opt/local/lib/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/Evolve/</li><li>HTMLSmartyEvolveConverter.inc<wbr />&nbsp;<wbr />&nbsp;templates/</li><li></li></ol><br />
設置作業が完了しましたら、設置したテンプレートにてDoctrineをPHPDoc化してみたいと思います。<br />
※下記は自分の環境にての実行となります（phpdocコマンドがある箇所から実行してください<br />
<ol class="boxcode-main no-number"><li>sasa-no-MacBook-Pro:Desktop<wbr />&nbsp;sasa$<wbr />&nbsp;/opt/local/bin/phpdoc<wbr />&nbsp;-t<wbr />&nbsp;./doctest/docEvolve<wbr />&nbsp;<wbr />&nbsp;-d<wbr />&nbsp;./doctest/Doctrine/<wbr />&nbsp;-o<wbr />&nbsp;HTML:Smarty/Evolve:default<wbr />&nbsp;-s<wbr />&nbsp;on</li></ol>下記のようにデザインが綺麗なものでPHPDocとして出力されます。デザインにもこだわったPHPDocを出力することで一歩先のクオリティを目指すこともできますｗ<br />
<div class="news-image"><a href="/read_file.php?id=1767&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1767" /></a></div><br />
<br />
--------------------------補足情報<br />
PHPDocumentorにて日本語を出力する場合は、文字化け問題にぶつかると思います。<br />
HTML化する際にSmartyのテンプレートを使用しておりまして、テンプレートに直書きで「charset=iso-8859-1」などと記載されております。<br />
下記の箇所にデフォルトのテンプレートが格納されており、ここに入っているheader.tplで指定されている文字コードを変更するとデフォルトの出力する際の文字コードを変更できます。<br />
<ol class="boxcode-main no-number"><li>※自分の環境の場合</li><li>/opt/local/lib/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/</li><li><wbr />&nbsp;PEARが入っている箇所のdataフォルダ以下に格納されています</li><li><wbr />&nbsp;☓/opt/local/lib/php/PhpDocumentor/phpDocumentor/（こっちには格納されてません</li><li></li><li>下記のサイトが参考になるかと思います</li><li><wbr />&nbsp;http://wikiwiki.jp/yonkoushi2/?PHP%2Fphpdocumentor%A4%CB%A4%C4%A4%A4%A4%C6</li></ol><br />
自分で書き換えるのが面倒って方はバッチをつくっている方もいらっしゃるようで、下記サイトを参考に行うのもありだと思います。<br />
<a href='http://hiluckyman.blogspot.com/2010/09/phpdocumentor-utf-8.html'>http://hiluckyman.blogspot.com/2010/09/phpdocumentor-utf-8.html</a><br />
<br />
設定や文字コードの調整が大変ですが、1度設定をしてしまえば今後も同じように使用することができますので、<br />
PHPDocumentorで自分のAPIを開発者にAPIドキュメントとして提供をしてみてはいかがでしょうか。<br />
<br />
下記のサイト様の情報を参考にさせていただきました。<br />
この場をお借り致しまして、お礼を申し上げさせていただきます。ありがとうございました。<br />
<a href='http://hiluckyman.blogspot.com/2010/09/phpdocumentor-utf-8.html'>http://hiluckyman.blogspot.com/2010/09/phpdocumentor-utf-8.html</a><br />
<a href='http://wikiwiki.jp/yonkoushi2/?PHP%2Fphpdocumentor%A4%CB%A4%C4%A4%A4%A4%C6'>http://wikiwiki.jp/yonkoushi2/?PHP%2Fphpdocumentor%A4%CB%A4%C4%A4%A4%A4%C6</a> ]]></description>
			<author>笹亀弘</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/871</guid>
		</item>
				<item>
			<pubDate>Wed, 21 Dec 2011 13:03:11 +0900</pubDate>
			<title>Google Chart Toolsを使ってサイトマップを描こう！</title>
			<link>http://blog.asial.co.jp/870</link>
			<description><![CDATA[ こんにちは！最近寒いですが、みなさんいかがお過ごしでしょうか。<br />
クリスマスも近いということで、クリスマスツリー→ツリー→組織ツリー→組織図！エンジニアのクリスマスはツリーですね！<br />
今回は、Org Chartを使ってサイトマップを描いてみたいと思います。<br />
<br />
<h3>1. Google Chart Toolsって？</h3><br />
Googleが提供している、グラフや表を簡単に作成するAPIです。（<a href="http://code.google.com/apis/chart/index.html">Google Chart Tools</a>）<br />
<a href="http://code.google.com/intl/ja/apis/chart/interactive/docs/gallery.html">チャートギャラリー</a>には、様々なグラフがギャラリー形式で並んでいます。<br />
中には、メーターや世界地図、札束積み上げグラフ（？）など、ユニークなグラフもあります。<br />
<a href="http://code.google.com/apis/ajax/playground/?type=visualization">Code Playground</a>では、実際にコードを書いて即時実行しながら、様々なチャートで遊ぶことができます。<br />
<br />
今回は、この中から<a href="http://code.google.com/intl/ja/apis/chart/interactive/docs/gallery/orgchart.html">Org Chart（組織図）</a>を使って、サイトマップを描いてみます。<br />
<br />
<h3>2. サイトマップの作成</h3><br />
Org Chartでは、こんなかんじでサイトマップが描けます。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1765&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1765" /></a></div><br />
<br />
どんなコードかというと、こちら！<br />
<br />
<ol class="boxcode-main"><li>&lt;html&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;&lt;head&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;&lt;script<wbr />&nbsp;type='text/javascript'<wbr />&nbsp;src='https://www.google.com/jsapi'&gt;&lt;/script&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;&lt;script<wbr />&nbsp;type='text/javascript'&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;var<wbr />&nbsp;chart;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;visualizationを読み込む</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;google.load('visualization',<wbr />&nbsp;'1',<wbr />&nbsp;{packages:['orgchart']});</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;google.setOnLoadCallback(drawChart);</li><li><wbr />&nbsp;<wbr />&nbsp;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;チャートの設定と描画</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;function<wbr />&nbsp;drawChart()<wbr />&nbsp;{</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;var<wbr />&nbsp;data<wbr />&nbsp;=<wbr />&nbsp;new<wbr />&nbsp;google.visualization.DataTable();<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;---(1-1)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;data.addColumn('string',<wbr />&nbsp;'Name');<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;---(1-2)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;data.addColumn('string',<wbr />&nbsp;'Parent');<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;---(1-3)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;data.addColumn('string',<wbr />&nbsp;'ToolTip');<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;---(1-4)</li><li><wbr />&nbsp;<wbr />&nbsp;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;---(2)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;data.addRows([</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'top',<wbr />&nbsp;f:'トップページ'},<wbr />&nbsp;'',<wbr />&nbsp;'tooltip'],<wbr />&nbsp;//<wbr />&nbsp;---(3)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'company',<wbr />&nbsp;f:'会社紹介'},<wbr />&nbsp;'top',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'company-index',<wbr />&nbsp;f:'ご挨拶'},<wbr />&nbsp;'company',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'about',<wbr />&nbsp;f:'会社概要'},<wbr />&nbsp;'company',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'system',<wbr />&nbsp;f:'Webシステム構築'},<wbr />&nbsp;'top',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'school',<wbr />&nbsp;f:'PHPスクール'},<wbr />&nbsp;'top',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'course',<wbr />&nbsp;f:'各コースの概要と紹介'},<wbr />&nbsp;'school',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'course1',<wbr />&nbsp;f:'PHP基礎編'},<wbr />&nbsp;'course',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'course2',<wbr />&nbsp;f:'PHP中級実務編'},<wbr />&nbsp;'course',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'orientation',<wbr />&nbsp;f:'講座説明会（無料）のご案内'},<wbr />&nbsp;'school',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'business',<wbr />&nbsp;f:'製品/サービス'},<wbr />&nbsp;'top',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'phppro',<wbr />&nbsp;f:'PHPプロ！'},<wbr />&nbsp;'business',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;[{v:'phpbiz',<wbr />&nbsp;f:'PHPbiz'},<wbr />&nbsp;'business',<wbr />&nbsp;''],</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;]);</li><li><wbr />&nbsp;<wbr />&nbsp;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;//<wbr />&nbsp;(4)</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;chart<wbr />&nbsp;=<wbr />&nbsp;new<wbr />&nbsp;google.visualization.OrgChart(document.getElementById('chart_div'));</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;chart.draw(data,<wbr />&nbsp;{allowHtml:<wbr />&nbsp;true,}<wbr />&nbsp;);</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;}</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;&lt;/script&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;&lt;/head&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;&lt;body&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;&lt;div<wbr />&nbsp;id='chart_div'&gt;&lt;/div&gt;</li><li><wbr />&nbsp;<wbr />&nbsp;&lt;/body&gt;</li><li>&lt;/html&gt;</li></ol><br />
上記のコードが基本形です。まず、(1)についてご説明します。<br />
(1-1)では、DataTableのインスタンスを作成します。<br />
(1-2)〜(1-4)では、そのDataTableにカラムを3つ追加しています。<br />
(1-4)でツールチップカラムを追加すると、そのノード（青いボックス）にマウスを合わせた時、ぺろっとツールチップが表示され、そこに表示する文字列を設定することができます。<br />
データベースでいうと、addColumnでカラムを作るというイメージです。<br />
<ol class="js-main"><li><span class="js-reserved">var</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">data</span><span class="js-code"><wbr />&nbsp;=<wbr />&nbsp;</span><span class="js-reserved">new</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">google</span><span class="js-code">.</span><span class="js-identifier">visualization</span><span class="js-code">.</span><span class="js-identifier">DataTable</span><span class="js-brackets">()</span><span class="js-code">;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;インスタンス作成</span><span class="js-code"></span></li>
<li><span class="js-code"></span><span class="js-identifier">data</span><span class="js-code">.</span><span class="js-identifier">addColumn</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">string</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">Name</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;はじめのカラム：ノードの名前</span><span class="js-code"></span></li>
<li><span class="js-code"></span><span class="js-identifier">data</span><span class="js-code">.</span><span class="js-identifier">addColumn</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">string</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">Parent</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;次のカラム：親ノードの名前</span><span class="js-code"></span></li>
<li><span class="js-code"></span><span class="js-identifier">data</span><span class="js-code">.</span><span class="js-identifier">addColumn</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">string</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">ToolTip</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;最後のカラム：ツールチップ</span></li></ol><br />
つまり、ノードと親ノードだけ最低でも設定すればよく、ツールチップは付加的なものということです。<br />
<br />
次に、(2)でデータを追加していきます。<br />
data.addRowsは、データベースでいうINSERTに近いイメージです。今回のソースでは、ノードの親子関係がわかりやすいようインデントをつけました。<br />
<br />
(3)では、実際にデータを定義しています。<br />
はじめの要素であるノードの名前をキーと値の配列にすることで、データのIDと表面に出る文字列を別々に定義できます。<br />
2つめのParentカラムを空文字にすることで、親ノードがないもの（ルートノード）を定義できます。<br />
3つめのToolTipには、マウスを合わせた際のツールチップで表示する文字列を定義します。<br />
<br />
<ol class="js-main"><li><span class="js-brackets">[{</span><span class="js-identifier">v</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">top</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-identifier">f</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">トップページ</span><span class="js-quotes">'</span><span class="js-brackets">}</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">''</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">tooltip</span><span class="js-quotes">'</span><span class="js-brackets">]</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;ルートノード：一意なキーはtop,<wbr />&nbsp;<wbr />&nbsp;表示するのは「トップページ」</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-brackets">[{</span><span class="js-identifier">v</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">company</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-identifier">f</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">会社紹介</span><span class="js-quotes">'</span><span class="js-brackets">}</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">top</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">''</span><span class="js-brackets">]</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;キーcompany、「会社紹介」というノードは、親のキーが「top」</span></li></ol><br />
こうして、ノードにNameを振り、親ノードのNameをParentに指定していくことで、どんどんツリーをぶら下げていくことができます。<br />
キーと表示する文字列が同じ場合は、下記のように簡単に書けます。<br />
<br />
<ol class="js-main"><li><span class="js-brackets">[</span><span class="js-quotes">'</span><span class="js-string">top</span><span class="js-quotes">'</span><span class="js-code"><wbr />&nbsp;</span><span class="js-quotes">''</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">tooltip</span><span class="js-quotes">'</span><span class="js-brackets">]</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;ルートノード：キーはtopで、表示もtopとなる。</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-brackets">[</span><span class="js-quotes">'</span><span class="js-string">company</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">top</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">''</span><span class="js-brackets">]</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;キーはcompanyで、親のキーはtop</span></li></ol><br />
最後に、(4)で、ドキュメント内のchar_divというDIVに、チャートを書き込みます。<br />
描かれたOrg ChartはHTMLのTable要素で書かれています。<br />
<br />
<ol class="js-main"><li><span class="js-identifier">chart</span><span class="js-code"><wbr />&nbsp;=<wbr />&nbsp;</span><span class="js-reserved">new</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">google</span><span class="js-code">.</span><span class="js-identifier">visualization</span><span class="js-code">.</span><span class="js-identifier">OrgChart</span><span class="js-brackets">(</span><span class="js-builtin">document</span><span class="js-code">.</span><span class="js-identifier">getElementById</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">chart_div</span><span class="js-quotes">'</span><span class="js-brackets">))</span><span class="js-code">;</span></li>
<li><span class="js-code"></span><span class="js-identifier">chart</span><span class="js-code">.</span><span class="js-identifier">draw</span><span class="js-brackets">(</span><span class="js-identifier">data</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-brackets">{</span><span class="js-identifier">allowHtml</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-reserved">true</span><span class="js-code">,</span><span class="js-brackets">}</span><span class="js-code"><wbr />&nbsp;</span><span class="js-brackets">)</span><span class="js-code">;</span></li></ol><br />
これで、基本的なOrgChartを描くことができます！<br />
<br />
<h3>3. もっと！Org Chart</h3><br />
<br />
これまでの説明では、Org Chartの基本的な部分について触れました。<br />
ここからは、もっとOrgChartを豊かにするためのオプションについてご説明します。<br />
<br />
<h4>CSSでデザインを変えたい</h4><br />
<br />
CSSでまとめてデザイン変更したいですね？調べておきました。<br />
<br />
<ol class="boxcode-main"><li><wbr />&nbsp;<wbr />&nbsp;.google-visualization-orgchart-node</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;ノードに付いている基本的なクラス</li><li></li><li><wbr />&nbsp;<wbr />&nbsp;.google-visualization-orgchart-node-medium</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;後述する、ノードの大きさによるクラス。</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;small,<wbr />&nbsp;medium,<wbr />&nbsp;largeがあるので、末尾を変えてください。</li><li></li><li><wbr />&nbsp;<wbr />&nbsp;.google-visualization-orgchart-nodesel</li><li><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;ノードをクリックしたときに適用されるクラス。</li></ol><br />
<br />
<h4>ノードのスタイルを変更したい</h4><br />
<br />
ノード全体のスタイルならばCSSで変更できますが、このノードだけ変更したい！ということはないでしょうか。<br />
例えば、ルートノードだけピンクにしたい…とか。<br />
そういった場合、クラスはどれも同じなため、CSSで「このノードだけ」「こうしたい」と変更するのはなかなか難しいですね。<br />
<br />
これで、ノードを指定してスタイルを変更できます！<br />
<br />
<ol class="js-main"><li><span class="js-identifier">data</span><span class="js-code">.</span><span class="js-identifier">setRowProperty</span><span class="js-brackets">(</span><span class="js-number">2</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">style</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">background:#ffe5ff;border-color:#ff8989;</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;</span></li>
<li><span class="js-code"></span><span class="js-identifier">data</span><span class="js-code">.</span><span class="js-identifier">setRowProperty</span><span class="js-brackets">(</span><span class="js-number">1</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">selectedStyle</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">background:#FF0000;</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;</span></li></ol><br />
第1引数は、ノードの番号です。これは、addRowsされた順番に0から振られている番号です。<br />
つまり、先ほどのコードでいうと、0は「トップページ」、1は「会社紹介」、2は「ご挨拶」というような指定の方法です。<br />
<br />
第2引数は「style」か、「selectedStyle」を指定します。<br />
style はそのノードのスタイル、selectedStyleはクリックしたときのスタイルです。<br />
<br />
第3引数には、インラインスタイルを入れてください。<br />
<br />
このsetRowPropertyは、addRowsからdrawの間に入れてください。<br />
データを定義する→データにスタイルを適用する→チャートを描くという流れだからです。<br />
<br />
<h4>drawするときのプロパティを指定したい</h4><br />
drawするときに、プロパティを指定することができます。<br />
<br />
<ol class="js-main"><li><span class="js-identifier">chart</span><span class="js-code">.</span><span class="js-identifier">draw</span><span class="js-brackets">(</span><span class="js-identifier">data</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-brackets">{</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">allowHtml</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-reserved">true</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;ノードのHTMLを許可するか。Default=false</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">size</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">medium</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;セルの大きさ。Default='medium'</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">allowCollapse</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-reserved">false</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;ダブルクリックしてどうなるか。Default=false</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">nodeClass</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">asial</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;ノードのクラス名</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">selectedNodeClass</span><span class="js-code">:<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">asial</span><span class="js-quotes">'</span><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-comment">//<wbr />&nbsp;クリックされたとき（Selected）のクラス名</span><span class="js-code"></span></li>
<li><span class="js-code"></span><span class="js-brackets">})</span><span class="js-code">;</span></li></ol><br />
<b>allowHtml</b>は、ノードの表示する文字列内にHTMLを含めてもよいか設定する項目です。<br />
デフォルトはfalse（許可しない）ですが、trueにすると以下のように、HTMLを含めることができます。<br />
<br />
<ol class="js-main"><li><span class="js-brackets">[{</span><span class="js-identifier">v</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">top</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-identifier">f</span><span class="js-code">:</span><span class="js-quotes">'</span><span class="js-string">&lt;span<wbr />&nbsp;style=&quot;color:<wbr />&nbsp;#FF0000;&quot;&gt;トップページ&lt;/span&gt;</span><span class="js-quotes">'</span><span class="js-brackets">}</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">''</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-quotes">'</span><span class="js-string">tooltip</span><span class="js-quotes">'</span><span class="js-brackets">]</span><span class="js-code">,</span></li></ol><br />
<b>size</b>は、ノードのサイズです。small, medium, largeから選ぶことができます。デフォルトはmediumです。<br />
ここで選択したノードのサイズが、クラス名としてTD要素に適用されます。（.google-visualization-orgchart-node-<b>medium</b>など）<br />
<br />
<b>allowCollapse</b>は、ノードをダブルクリックしたときに表示・非表示アクションをさせるかどうか設定する項目です。<br />
デフォルトはfalse（常に表示）で、ノードは全部展開されています。<br />
trueにすると、子ノードがあるノードをダブルクリックしたときに、子ノードを隠すようなアクションをします。<br />
もう一度ノードをダブルクリックすると子ノードを展開します。<br />
<br />
<b>nodeClass</b>は、各ノードのクラス名です。<br />
デフォルトのクラス名でなく、独自のクラスが使いたいときに利用します。<br />
同様に、<b>selectedNodeClass</b>も、クリックされたときのクラス名となります。<br />
<br />
<h3>おわりに</h3><br />
<br />
この他にもOrg Chartでは、イベントの取得や様々なメソッドなどが提供されています。<br />
Chart ToolsにはOrg Chart以外にも魅力的なチャートがたくさんありますから、ぜひ使ってみてください！ ]]></description>
			<author>志田仁美</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/870</guid>
		</item>
				<item>
			<pubDate>Mon, 19 Dec 2011 19:39:22 +0900</pubDate>
			<title>stumpwm設定v2</title>
			<link>http://blog.asial.co.jp/869</link>
			<description><![CDATA[ stumpwmって便利ですよね！<br />
<br />
なんじゃそりゃ？という方は、"stumpwm"とか"タイル型ウィンドウマネージャ"でググってください。<br />
簡単に言えば、GNU Screenのようなイメージでウィンドウを切り替えることができるので、ウィンドウの配置に関してはマウスを一切使わない硬派なウィンドウマネージャ(WM)です。<br />
普段からウィンドウを最大化して使うか、上下左右に並べて配置して使う人の場合、マウスでちまちま並べる労力を削減出来れば効率が上がるはずです。<br />
そんな人にはタイル型WMをおすすめ致します。<br />
<br />
<br />
前置きはこのくらいにして、今回は自分が設定したstumpwmをちょっと便利にする方法２つを紹介致します。<br />
１・tmuxを組み合わせて起動するターミナルをひとつだけにする<br />
２・グループごとに壁紙を変更<br />
<br />
<br />
<h2>１・tmuxを組み合わせて起動するターミナルをひとつだけにする</h2><br />
tmuxとは、GNU Screenのようなターミナルマルチプレクサです。<br />
余談:Screenとの違いはありますが、個人的には下記が便利なので乗り換えました。<br />
・Screenの縦分割程遅くならない<br />
・分割機能が便利<br />
<br />
本題。<br />
しばらく作業しているとターミナルが増えていきます。<br />
その上、他のブラウザとかlibreofficeなども起動しているとわけわからなくなります。<br />
グループのグループ化してターミナルだけまとめて表示できないかと考えたところ、普通にtmux使えばいいという結論に達しました。<br />
<br />
仕様は、<br />
・各グループごとにtmuxを起動<br />
・起動していればフォーカスを当てる<br />
・起動していなければ起動する<br />
<br />
実装についてですが、stumpwmにはrun-or-raiseという便利な関数があり、タイトルなどで起動しているか判定して無ければ起動、あればフォーカスをあてることができます。<br />
なんと便利なことでしょう。<br />
<br />
ということで、下記コードです。<br />
<br />
/usr/local/bin/utmux 作成<br />
<ol class="boxcode-main no-number"><li>#!/bin/bash</li><li>PRX="PRX_`stumpish<wbr />&nbsp;groups|<wbr />&nbsp;grep<wbr />&nbsp;-o<wbr />&nbsp;'\*.\+'|<wbr />&nbsp;cut<wbr />&nbsp;-c<wbr />&nbsp;2-`"</li><li>stumpish<wbr />&nbsp;eval<wbr />&nbsp;'(run-or-raise<wbr />&nbsp;"urxvt<wbr />&nbsp;-T<wbr />&nbsp;'$PRX'<wbr />&nbsp;-e<wbr />&nbsp;tmux<wbr />&nbsp;new-session<wbr />&nbsp;-s<wbr />&nbsp;'$PRX'"<wbr />&nbsp;'"'"'(:title<wbr />&nbsp;"'$PRX'"))'</li></ol><br />
~/.stumpwmrc 追記<br />
<ol class="boxcode-main no-number"><li>(defcommand<wbr />&nbsp;urxvt<wbr />&nbsp;()<wbr />&nbsp;()<wbr />&nbsp;<wbr />&nbsp;(run-shell-command<wbr />&nbsp;"utmux"))</li></ol><br />
なんでbash使っているかって？CLで実装しようと思ったが間に合わなかったのさHAHAHA！<br />
ということで許してください。CLを触ったことが無かったので、CLだけだとうまくグループのIDが取れませんでした。<br />
<br />
PRX=の行は、力技でグループ名を取得。<br />
urxvtは -T でタイトルを指定し、-e でその後に書いたコマンドを実行。<br />
tmuxは、new-sessionで新規セッション、-sでセッション名を指定。<br />
run-or-raiseの第二引数で、判定に使用する値(今回はタイトル)を指定。<br />
<br />
このコードを使う場合には、stumpwmを落としてもいい覚悟で使用してください。<br />
自分の環境だけかもしれませんが、起動したウィンドウが一瞬で消えるとstumpwmがフリーズするので注意。<br />
<br />
<br />
<h2>２・グループごとに壁紙を変更</h2><br />
グループ機能は便利ですよね！<br />
複数のウィンドウをまとめることができる機能で、人によっては捉え方は色々とあるかとは思いますが、自分は"タブ"のようなものと考え、各機能ごとにグループを作成しています。<br />
<br />
例えば、普段は、メーラ、rdesctop、audacious、そして作業中のターミナルやemacsなど用 のグループを作成し、各グループにショートカットキーを割り当てて、一発で切り替えられるようにしてあります。<br />
M-F1 -> メーラ<br />
M-F3 -> rdesktop<br />
M-F5 -> audacious<br />
Prefix-1〜9 -> ターミナル用<br />
<br />
これだけでも便利ですが、もうひと工夫。<br />
ターミナル(urxvt)は背景透過を設定して、各ターミナル用グループで壁紙を変えています。<br />
<br />
壁紙変えるだけなら、時間ごとに変えてくれるアプリケーション使えばいいじゃないかと思われるかもしれませんが、実はこちらの方が実用的です。<br />
例えば、各グループでそれぞれ違うサーバに接続していたとします。<br />
壁紙が違えばパッと見どのサーバにつながっているのかすぐに解ります。<br />
もちろん、ターミナルのサーバ名は表示していますが、文字を読むより絵で見たほうが直感的に一目瞭然で、作業ミスを減らすことができます。たぶん。<br />
まさに一石二鳥。<br />
<br />
長々と語りましたが、実際の設定方法は下記になります。<br />
<br />
~/.stumpwmrc 追記<br />
<ol class="boxcode-main no-number"><li>(defun<wbr />&nbsp;gselectw<wbr />&nbsp;(num<wbr />&nbsp;img)<wbr />&nbsp;()<wbr />&nbsp;(progn<wbr />&nbsp;(if<wbr />&nbsp;img<wbr />&nbsp;(run-shell-command<wbr />&nbsp;(concatenate<wbr />&nbsp;'string<wbr />&nbsp;"fbsetbg<wbr />&nbsp;-t<wbr />&nbsp;'"<wbr />&nbsp;img<wbr />&nbsp;"'"))<wbr />&nbsp;(run-shell-command<wbr />&nbsp;"fbsetbg<wbr />&nbsp;-t<wbr />&nbsp;'/path/to/dir/default.jpg'"))<wbr />&nbsp;(run-commands<wbr />&nbsp;(concatenate<wbr />&nbsp;'string<wbr />&nbsp;"gselect<wbr />&nbsp;"<wbr />&nbsp;num))))</li><li></li><li>(defcommand<wbr />&nbsp;gselect1<wbr />&nbsp;()<wbr />&nbsp;()<wbr />&nbsp;(gselectw<wbr />&nbsp;"1"<wbr />&nbsp;"/path/to/dir/01.jpg"))</li><li>(defcommand<wbr />&nbsp;gselect2<wbr />&nbsp;()<wbr />&nbsp;()<wbr />&nbsp;(gselectw<wbr />&nbsp;"2"<wbr />&nbsp;nli))</li><li></li><li>(define-key<wbr />&nbsp;*root-map*<wbr />&nbsp;(kbd<wbr />&nbsp;"1")<wbr />&nbsp;"gselect1")</li><li>(define-key<wbr />&nbsp;*root-map*<wbr />&nbsp;(kbd<wbr />&nbsp;"2")<wbr />&nbsp;"gselect2")</li></ol><br />
要は、gselectw第二引数のパスがあればその画像、無ければdefault.jpgを設定しています。<br />
define-keyとgselectの行を増やしていけば次々設定できます。<br />
なお、fbsetbgを使用しているのは、xsetbgとかdisplayだとうまく切り替わらなかったので。<br />
<br />
<h2>おまけ</h2><br />
この一件でCL触ってますが、触っているうちに少し楽しくなって来ました。<br />
でも、CLどころかLISPってstumpwmかemacsしか使っていないので、自分の場合はそれ以外の使い所が無いですね。<br />
今やっている案件に・・・いや、ただの嫌がらせにしかならない。<br />
<br />
<br />
こうやって見ると書いたプログラムは大したことは無いですね。<br />
ですが、少しのコードを書くだけで割と便利になります。<br />
<br />
stumpwmに限らず、自分のPCは長く触る環境です。<br />
もし時間が確保できて気が向けば、他のアプリケーションも細かいところをカスタマイズしてみてはいかがでしょうか。 ]]></description>
			<author>門脇優児</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/869</guid>
		</item>
				<item>
			<pubDate>Fri, 16 Dec 2011 10:59:42 +0900</pubDate>
			<title>Mashup Awards 7の授賞式が行われました</title>
			<link>http://blog.asial.co.jp/868</link>
			<description><![CDATA[ こんにちは、アシアルの中川です。<br />
<br />
<div class="news-image"><img src="/read_file.php?id=1764" class="no-lightbox no-outline" style="border:none;display:inline;float:left;" /></div><br style="clear:both;" /><br />
先日、Mashup Awards 7 の授賞式が行われ、<br />
アシアルも協力企業として参加させていただきました。<br />
年々規模も拡大されており、今回は500作品を超える応募があったようです。<br />
<br />
今回アシアルからは、 <a href="http://www.html2pdf.biz/">HTML2PDF</a> と、<br />
<a href="http://www.jschart.jp/">JSChart</a> のWebサービスAPIを提供させていただきました。<br />
<br />
アシアルAPIを利用した作品は、以下にてご確認いただけます。<br />
・<a href='http://ma7.mashupaward.jp/works/api/2?locale=ja'>http://ma7.mashupaward.jp/works/api/2?locale=ja</a><br />
・<a href='http://ma7.mashupaward.jp/works/api/3?locale=ja'>http://ma7.mashupaward.jp/works/api/3?locale=ja</a><br />
<br />
アシアルAPIをご利用いただきまして誠にありがとうございます。<br />
<br />
上記作品の中から協力企業アシアル賞としまして、<br />
「まちみえーる」( <a href='http://ma7.mashupaward.jp/works/162'>http://ma7.mashupaward.jp/works/162</a> )<br />
を選考させていただきました。<br />
<br />
<h3>作品説明より</h3><br />
<div style="background-color:#eee;border:2px solid #bbb"><i>「まちみえーる」は順番待ちシステムです。 <br />
病院などで順番を待つのはつらいものです。 <br />
そのつらさをクラウドを利用して軽減したいという思いで開発しました。 <br />
病院へ向かう人は2種類に分けられます。具合が悪くてすぐに診てもらいたい人、 <br />
予防注射などで、それほど急がない人です。 <br />
それほど急がない人が、待ち状況を見て空いている曜日に移動してくれたら、 <br />
すぐに診てもらいたい人の待ち時間も少なくなります。 <br />
「待ち時間が分かることで幸せになる人を増やしたい。」 <br />
それが「まちみえーる」の思いです。 <br />
空いている曜日を探す機能にはグラフを用いて直感的に判断できるようにしました。<br />
</i></div><br />
<br />
<h3>選考理由・コメント</h3><br />
利用者としては、あると大変うれしいサービスですね！<br />
こういったサービスがもっとたくさんの施設で提供されるようになると便利だと思いました。<br />
<br />
<h3>副賞</h3><br />
副賞としまして、<a href="http://monaca.mobi/">Monaca</a>モナカをお送りさせていただきました。<br />
※Monacaとはアシアルが開発・提供する「スマートフォン向けのアプリケーションを開発するためのクラウドサービス」です。<br />
<br />
今後とも何卒よろしくお願い致します。 ]]></description>
			<author>中川善樹</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/868</guid>
		</item>
				<item>
			<pubDate>Mon, 12 Dec 2011 00:24:47 +0900</pubDate>
			<title>社員旅行に行きました</title>
			<link>http://blog.asial.co.jp/867</link>
			<description><![CDATA[ こんにちは。大橋です。<br />
<br />
アシアルでは先週末に社員旅行に行ってきました！<br />
<br />
まずは志賀高原へ行き、スキー＆スノーボードをしました。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1759&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1759" /></a></div><br />
<br />
雪質はあまり良いとは言えませんでしたが、天気も良く、気持ちよく滑ることができました。<br />
<br />
<br />
そして、疲れた体を奮い立たせ、夕食は、みんなで鍋を作りました。<br />
<br />
カレー鍋、もつ鍋、カキ鍋とどれもとてもおいしくいただきました！<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1757&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1757" /></a></div><br />
<br />
次は闇鍋にチャレンジしたいですねｗ<br />
<br />
<br />
２日目は、特に予定を決めていなかったので、とりあえず「大久保の茶屋」というお蕎麦屋さんへ！<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1761&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1761" /></a></div><br />
<br />
やっぱり信州そばはおいしいですね！<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1760&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1760" /></a></div><br />
<br />
<br />
続いて「鬼押し出し園」へ向かいました。<br />
<br />
道中の鬼押しハイウェイからの景色は絶景でした！<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1756&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1756" /></a></div><br />
<br />
鬼押し出し園に到着し、浅間山噴火によって生まれた、溶岩を見物しながらみんなでのんびり散策。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1758&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1758" /></a></div><br />
<br />
とっても寒かったですが、景色は最高でした。<br />
<br />
最後に「白糸の滝」へ行きました。<br />
<br />
なんだか女神が現れそうな滝でした。。。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1762&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1762" /></a></div><br />
<br />
<br />
最近は何かとバタバタしていたので、みんなでのんびり旅行出来てよかったなーと思いました！<br />
<br />
来年も楽しみです。 ]]></description>
			<author>大橋寛子</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/867</guid>
		</item>
				<item>
			<pubDate>Wed, 07 Dec 2011 21:43:03 +0900</pubDate>
			<title>iCloud風のアイコンを作成する（Fireworks）</title>
			<link>http://blog.asial.co.jp/866</link>
			<description><![CDATA[ こんにちは。和田です。<br />
<br />
<br />
今回はiCloud風のアイコンをFireworksで作成したいと思います。<br />
オブジェクトは３つだけで作成できるのでとても簡単です。<br />
<br />
それでは作成したいと思います。<br />
まず始めに700×700pxの新規ファイルを作成します。<br />
<br />
そして、<br />
<br />
1.土台?となる部分の矩形を作成します。<br />
　・サイズ：512×512px<br />
　・丸み：94px<br />
　・塗り：線形グラデーション<br />
　　→グラデーションの値（番号は下記の画像に記載している番号を表しています。）<br />
　　　(1) #DDDDDD<br />
　　　(2) #89898B<br />
　　　(3) #545456<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1739&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1739" /></a></div><br />
<div class="news-image"><a href="/read_file.php?id=1740&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1740" /></a></div><br />
<br />
<br />
2.次にステンレスのようなヘアライン効果のオブジェクトを作成します。<br />
<br />
2-1.円の矩形を作成します。大きさは、「1」で作成したものより大きく作成します。<br />
　　大きく作成するのは、この後で設定するフィルタ（ぼかし（放射状））の効果を奇麗に反映させる為です。<br />
<br />
　・サイズ：646×646px<br />
　・塗り：円錐グラデーション<br />
　　→グラデーションの値<br />
　　　(1) #E7E7E7<br />
　　　(2) #B3B3B6<br />
　　　(3) #9C9A9E<br />
　　　(4) #F2F2F2<br />
　　　(5) #F2F2F2<br />
　　　(6) #9C9A9E<br />
　　　(7) #F2F2F2<br />
　　　(8) #F2F2F2<br />
　　　(9) #9C9A9E<br />
　　　(10) #9C9A9E<br />
　　　(11) #F2F2F2<br />
　　　(12) #F2F2F2<br />
　　　(13) #9C9A9E<br />
　　　(14) #9C9A9E<br />
　　　(15) #C1C1C4<br />
　　　(16) #C1C1C4<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1741&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1741" /></a></div><br />
<div class="news-image"><a href="/read_file.php?id=1742&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1742" /></a></div><br />
<br />
<br />
2-2.ヘアラインの効果を作成する為にノイズとぼかしを設定します。<br />
<br />
　・ノイズを追加：適用料：10<br />
　・ぼかし（放射状）：<br />
　　　適用量：30<br />
　　　画質：100<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1743&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1743" /></a></div><br />
ノイズがかかったイメージ<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1744&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1744" /></a></div><br />
ぼかし（放射状）がかかったイメージ<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1745&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1745" /></a></div><br />
<br />
<br />
2-3.「1」で作成したものより小さい矩形を作成してマスクをかけます。<br />
　　小さくすることでエンボスがかかったように見せる事が出来ます。<br />
　　・サイズ<br />
　　　幅：502px<br />
　　　高さ：502px<br />
　　　丸み：90px<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1746&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1746" /></a></div><br />
<div class="news-image"><a href="/read_file.php?id=1747&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1747" /></a></div><br />
<br />
こんな感じになります。<br />
大分それらしくなってきました。<br />
<div class="news-image"><a href="/read_file.php?id=1748&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1748" /></a></div><br />
<br />
<br />
3.イラストの作成<br />
3-1.アイコンの背景が出来ましたので、上に載せるイラストを矩形で作成します。<br />
　・塗り：#78787D<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1749&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1749" /></a></div><br />
<br />
<br />
3-2.ここで、雲のイラストで色が塗られている部分に<br />
　　下地のヘアライン効果を反映させ、黒光りしたイメージにしたいので、描画モードを「焼き込み（カラー反転）」に変換します。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1750&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1750" /></a></div><br />
<br />
<br />
3-3.そして、イラスト部分を凹んだイメージにする為、下記のフィルターを設定します。<br />
<br />
　(1)ベベルとエンボス（Photoshopライブエフェクト）<br />
<br />
　　　構造--------------------------------------<br />
　　　　スタイル：ベベル（外側）深さ=200<br />
　　　　テクニック：スムーズ：サイズ=4<br />
　　　　方向：ダウン：ソフト=0<br />
<br />
　　　陰影--------------------------------------<br />
　　　　角度：90度<br />
　　　　ハイライト：スクリーン（#FFFFFF）：100<br />
　　　　シャドウ：乗算（#000000）：60<br />
<br />
<br />
　(2)シャドウ内側<br />
　　　距離：5<br />
　　　不透明度：100%<br />
　　　ぼかし：2<br />
　　　角度：315度<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1752&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1752" /></a></div><br />
<div class="news-image"><a href="/read_file.php?id=1753&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1753" /></a></div><br />
<br />
これで出来上がりです。<br />
いかがでしょうか？<br />
ちなみにいくつかバリエーションを作ってみました。<br />
<br />
<div class="news-image"><a href="/read_file.php?id=1755&mode=1" rel="lightbox[roadtrip]" class="link-lightbox"><img src="http://blog.asial.co.jp/read_file.php?id=1755" /></a></div><br />
<br />
<br />
今回も簡単なので<br />
皆様も是非作ってみて下さい。 ]]></description>
			<author>和田記光</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/866</guid>
		</item>
				<item>
			<pubDate>Fri, 02 Dec 2011 15:17:08 +0900</pubDate>
			<title>iScroll4でネイティブに近いスマホ向けHTMLページを作成する</title>
			<link>http://blog.asial.co.jp/865</link>
			<description><![CDATA[ こんにちは。松田です。<br />
スマホ向けにネイティブに近い動作をするHTMLページを作成しようとした時、必ずぶつかるのがヘッダーの動作の扱いです。<br />
特にiOS向けに処理を書く場合、iOS5では実装されているposition:fixed;がiOS4では動作しないため、iOS4でCSSのみでヘッダーを固定することが難しくなっています。<br />
そんな時につかえるのがiScroll4です。iScrollではJavaScriptの動作によりヘッダーの固定を行う処理が行われます。<br />
<br />
<br />
<a href='http://cubiq.org/iscroll-4'>http://cubiq.org/iscroll-4</a><br />
上記のサイトからDOWNLOADボタンを押すとtar.gz形式のファイルがダウンロードされます。<br />
examplesディレクトリにたくさんサンプルが入っているので見てみると良いかもしれません。<br />
特に使えそうなのが、lite、pull-to-refresh、carousel、あたりです。<br />
liteは最も簡略化した使い方のサンプル、pull-to-refreshは表示したリストが上限まで達した際に次のリストを動的に読みこませるサンプル、carouselはページ単位で横スクロールを実装できるサンプルになっています。<br />
<br />
<strong>lite</strong><br />
<iframe src="/scripts/865/lite/" width="300" height="400"></iframe><br /><br />
<strong>pull-to-refresh</strong><br />
<iframe src="/scripts/865/pull-to-refresh/" width="300" height="400"></iframe><br /><br />
<strong>carousel</strong><br />
<iframe src="/scripts/865/carousel/" width="320" height="250"></iframe><br /><br />
<br />
liteのソースコードを見ればわかりますが、基本的な使い方は簡単で、サンプルをコピペすれば簡単に作れてしまいます。<br />
基本的なhtmlの構造はこんなかんじです。<br />
<br />
<ol class="html-main"><li><span class="html-brackets">&lt;</span><span class="html-reserved">div</span><span class="html-code"><wbr />&nbsp;</span><span class="html-var">id</span><span class="html-code">=</span><span class="html-quotes">&quot;</span><span class="html-string">wrapper</span><span class="html-quotes">&quot;</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="html-brackets">&lt;</span><span class="html-reserved">ul</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="html-brackets">&lt;</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code">row1</span><span class="html-brackets">&lt;/</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="html-brackets">&lt;</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code">row2</span><span class="html-brackets">&lt;/</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;</span><span class="html-brackets">&lt;</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code">row3</span><span class="html-brackets">&lt;/</span><span class="html-reserved">li</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;<wbr />&nbsp;...</span></li>
<li><span class="html-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="html-brackets">&lt;/</span><span class="html-reserved">ul</span><span class="html-brackets">&gt;</span><span class="html-code"></span></li>
<li><span class="html-code"></span><span class="html-brackets">&lt;/</span><span class="html-reserved">div</span><span class="html-brackets">&gt;</span></li></ol><br />
これで以下のようにスクリプトを実行させます。<br />
<ol class="js-main"><li><span class="js-reserved">var</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">myScroll</span><span class="js-code">;</span></li>
<li><span class="js-code"></span><span class="js-reserved">function</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">loaded</span><span class="js-brackets">()</span><span class="js-code"><wbr />&nbsp;</span><span class="js-brackets">{</span><span class="js-code"></span></li>
<li><span class="js-code"><wbr />&nbsp;<wbr />&nbsp;</span><span class="js-identifier">myScroll</span><span class="js-code"><wbr />&nbsp;=<wbr />&nbsp;</span><span class="js-reserved">new</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">iScroll</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">wrapper</span><span class="js-quotes">'</span><span class="js-brackets">)</span><span class="js-code">;</span></li>
<li><span class="js-code"></span><span class="js-brackets">}</span><span class="js-code"></span></li>
<li><span class="js-code"></span><span class="js-builtin">document</span><span class="js-code">.</span><span class="js-identifier">addEventListener</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">touchmove</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-reserved">function</span><span class="js-code"><wbr />&nbsp;</span><span class="js-brackets">(</span><span class="js-identifier">e</span><span class="js-brackets">)</span><span class="js-code"><wbr />&nbsp;</span><span class="js-brackets">{</span><span class="js-code"><wbr />&nbsp;</span><span class="js-identifier">e</span><span class="js-code">.</span><span class="js-identifier">preventDefault</span><span class="js-brackets">()</span><span class="js-code">;<wbr />&nbsp;</span><span class="js-brackets">}</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-reserved">false</span><span class="js-brackets">)</span><span class="js-code">;</span></li>
<li><span class="js-code"></span><span class="js-builtin">document</span><span class="js-code">.</span><span class="js-identifier">addEventListener</span><span class="js-brackets">(</span><span class="js-quotes">'</span><span class="js-string">DOMContentLoaded</span><span class="js-quotes">'</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-identifier">loaded</span><span class="js-code">,<wbr />&nbsp;</span><span class="js-reserved">false</span><span class="js-brackets">)</span><span class="js-code">;</span></li></ol><br />
DOMの読み込み完了後でないとiScrollが実行できないため、DOMContentLoadedイベント発生後にnewされるようになっています。<br />
また、タッチ時に余計な動きを起こさないようにtouchmoveイベント発生時のデフォルトの動作をキャンセルさせています。<br />
これにサンプルのソースのcssをコピペすれば完成です。<br />
ヘッダーがしっかりと固定され、かなりネイティブに近い動きになっています。<br />
ヘッダーの固定は、タッチでの移動距離を計算し、その分だけ元の位置に戻すような処理が入っているようです。なかなか力技ですね。<br />
<br />
さらに複雑な処理を指せる場合はiScrollのコンストラクタ第2引数で色々なオプションをつけることができるので、何か特殊な操作をさせたい場合は近い動作をするサンプルのソースを見てみるか、<a href="http://cubiq.org/iscroll-4">公式ページ</a>でオプションを確認してみると良いかもしれません。<br />
<br />
スマホ向けのページを作るにはとても便利なので、ぜひ一度試してみてはいかがでしょうか。 ]]></description>
			<author>松田惇</author>
			<category>-</category>
			<guid isPermaLink="true">http://blog.asial.co.jp/865</guid>
		</item>
			</channel>
</rss>
