<?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>ひろぽっぽれす &#187; JavaScript</title>
	<atom:link href="http://hiropo.co.uk/archives/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://hiropo.co.uk</link>
	<description>Web系エンジニアの適当なブログです。どうでも酔いものばかり作ってます。</description>
	<lastBuildDate>Mon, 12 Mar 2012 06:10:01 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>HTMLとCSSで二次元配列でドット絵 (Hex Color Codes)</title>
		<link>http://hiropo.co.uk/archives/886</link>
		<comments>http://hiropo.co.uk/archives/886#comments</comments>
		<pubDate>Mon, 06 Feb 2012 05:45:22 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[(X)HTML+CSS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=886</guid>
		<description><![CDATA[これからcanvas盛り上がっていくという中、あえてHTMLタグとCSSを使ったドット絵を描いてみました。 jsdoitに投稿したものなのでちょい古いですけど紹介します。 といっても仕組みは簡単で、描画するデータ情報を二 &#8230; <a href="http://hiropo.co.uk/archives/886">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>これからcanvas盛り上がっていくという中、あえてHTMLタグとCSSを使ったドット絵を描いてみました。<br />
jsdoitに投稿したものなのでちょい古いですけど紹介します。</p>
<p>といっても仕組みは簡単で、描画するデータ情報を二次元配列にもっておいて、それを&lt;li&gt;タグでfloatで並べて描画するというもの。描画のロジックはJavaScriptで実装しました。<br />
描画するターゲットがcanvasか、HTMLタグかの違いだけなので仕組みはとってもシンプルです。</p>
<p>こちらが完成図です。<br />
<script type="text/javascript" src="http://jsdo.it/blogparts/etba/js?view=design"></script>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://jsdo.it/funnythingz/etba" title="二次元配列でドット絵 (Hex Color Codes)">二次元配列でドット絵 (Hex Color Codes) &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p>描画データとなる二次元配列マップにHexカラー値を直接書いて渡しているため、このように色は自由に指定できます。</p>
<p>さて、ソースコードの紹介になります。</p>
<h3>【1】描画するHTML側でステージ的なものを用意します。</h3>
<pre>
&lt;ul class=&quot;group tstList&quot;&gt;
    &lt;li id=&quot;stage&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<h3>【2】CSSで見た目を制御します。</h3>
<pre>
* {
	margin: 0;
    	padding: 0;
}
.box {
        width: 10px;
	height: 10px;
	overflow: hidden;
	display: block;
	float: left;
}
.wrap:after,
.box:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
	font-size: 0.1em;
	line-height: 0;
}
.wrap,
.group {
	zoom: 1;
}
.tstList {
	width: 240px;
}
.tstList li {
	float: left;
    	list-style: none;
}
</pre>
<h3>【3】描画データを二次元配列で用意します。値にはHexカラー値を文字列でもちます。</h3>
<pre>
/*-------------------------------------------------
* map
*/
var map = [
	['ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','f5b199','f5b199','f5b199'],
	['ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','e10000','e10000','e10000','e10000','e10000','ffffff','ffffff','f5b199','f5b199','f5b199'],
	['ffffff','ffffff','ffffff','ffffff','ffffff','e10000','e10000','e10000','e10000','e10000','e10000','e10000','e10000','e10000','f5b199','f5b199'],
	['ffffff','ffffff','ffffff','ffffff','ffffff','FFFF00','FFFF00','FFFF00','f5b199','f5b199','000000','f5b199','ffffff','05299d','05299d','05299d'],
	['ffffff','ffffff','ffffff','ffffff','FFFF00','f5b199','FFFF00','f5b199','f5b199','f5b199','000000','f5b199','f5b199','05299d','05299d','05299d'],
	['ffffff','ffffff','ffffff','ffffff','FFFF00','f5b199','FFFF00','FFFF00','f5b199','f5b199','f5b199','000000','f5b199','f5b199','f5b199','05299d'],
	['ffffff','ffffff','ffffff','ffffff','FFFF00','FFFF00','f5b199','f5b199','f5b199','f5b199','000000','000000','000000','000000','05299d','ffffff'],
	['ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','f5b199','f5b199','f5b199','f5b199','f5b199','f5b199','f5b199','05299d','ffffff','ffffff'],
	['ffffff','ffffff','05299d','05299d','05299d','05299d','05299d','fb8a10','05299d','05299d','05299d','fb8a10','05299d','ffffff','ffffff','ffffff'],
	['ffffff','05299d','05299d','05299d','05299d','05299d','05299d','05299d','fb8a10','05299d','05299d','05299d','fb8a10','ffffff','ffffff','05299d'],
	['f5b199','f5b199','05299d','05299d','05299d','05299d','05299d','05299d','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','ffffff','ffffff','05299d'],
	['f5b199','f5b199','f5b199','ffffff','fb8a10','fb8a10','05299d','fb8a10','fb8a10','EEEEEE','fb8a10','fb8a10','EEEEEE','fb8a10','05299d','05299d'],
	['ffffff','f5b199','ffffff','05299d','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','05299d','05299d'],
	['ffffff','ffffff','05299d','05299d','05299d','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','05299d','05299d'],
	['ffffff','05299d','05299d','05299d','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','fb8a10','ffffff','ffffff','ffffff','ffffff','ffffff'],
	['ffffff','05299d','ffffff','ffffff','fb8a10','fb8a10','fb8a10','fb8a10','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff']
]
</pre>
<h3>【4】描画ロジックをJavaScriptで実装します。</h3>
<pre>
/*-------------------------------------------------
* module
*/
var $ = function(id){
	return document.getElementById(id);
}
var $$ = function(id, tag){
	return document.getElementById(id).getElementsByTagName(tag);
}
var createElement = function(tag){
	return document.createElement(tag);
}

/*-------------------------------------------------
* Elements
*/

//Wrap
var Wrap = function(){
	return this.init();
}
Wrap.prototype = {
	init: function(){
		var div = createElement('div');
		div.setAttribute('class', 'wrap');
		div.innerHTML = '';
		return div;
	}
}

//Dot
var Dot = function(args){
	this.background = args.background;
	return this.init();
}
Dot.prototype = {
	init: function(){
		var span = createElement('span');
		span.style.background = "#" + this.background;
		span.setAttribute('class', 'box');
		span.innerHTML = '';
		return span;
	}
}

//Create
var Create = function(obj){
    var stage = obj;
    var wrap = [];
    for( var i = 0, L = map.length; i < L; i++ ){
	    wrap[i] = new Wrap();
	    for( var j = 0, M = map[i].length; j < M; j++ )
    {
	    wrap[i].appendChild( new Dot({ background: map[i][j] }) );
	    }
	    stage.appendChild(wrap[i]);
    }
}

/*-------------------------------------------------
* initilize
*/
var init = function(){
    new Create( $('stage') );
}
window.addEventListener('load', init, false);
</pre>
<p>JavaScriptはライブラリは使っていません、ネイティブ実装です。<br />
jQueryとか使えばもっと簡単に実装できると思います。</p>
<p>でもProcessing.js使う方が面白いのでcanvasに描画した方が良いんじゃないかなｗ</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/886/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processing.js 8&#215;8 ドットマトリックスLEDっぽいのつくってみた canvas</title>
		<link>http://hiropo.co.uk/archives/882</link>
		<comments>http://hiropo.co.uk/archives/882#comments</comments>
		<pubDate>Mon, 06 Feb 2012 05:07:52 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[canvas]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=882</guid>
		<description><![CDATA[canvasで使うライブラリはすっかりProcessing.jsに馴染んでしまった僕です、こんにちは。 Arduinoを使った8&#215;8ドットマトリックスLEDの点滅をやりたいなと思い、そのシミュレーションとしてj &#8230; <a href="http://hiropo.co.uk/archives/882">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>canvasで使うライブラリはすっかりProcessing.jsに馴染んでしまった僕です、こんにちは。</p>
<p>Arduinoを使った8&#215;8ドットマトリックスLEDの点滅をやりたいなと思い、そのシミュレーションとしてjsdoitでまずはcanvasに描画してみようと思いたちProcessing.jsで書いてみました。</p>
<p><script type="application/processing">
int[][] p = {
  {0,0,1,0,0,0,0,0},
  {0,1,1,1,1,1,0,0},
  {0,0,1,0,0,0,0,0},
  {0,0,1,1,1,1,0,0},
  {0,1,1,0,1,0,1,0},
  {1,0,1,1,0,0,1,0},
  {0,1,1,0,0,1,0,0},
  {0,0,0,0,0,0,0,0}
};
void setup(){
  size(81, 81);
  frameRate(30);
}
void draw(){
  background(0);
  stroke(0);
  for(int y = 0; y < p.length; y++){
  for(int x = 0; x < p[y].length; x++){
    if(p[y][x] == 0){
      fill(96, 96, 96);
    }
    else if(p[y][x] == 1){
      fill(255, 0, 0);
    }
    ellipseMode(CORNER);
    ellipse(x*10, y*10, 10, 10);
  }}
}
</script></p>
<pre>
int[][] p = {
  {0,0,1,0,0,0,0,0},
  {0,1,1,1,1,1,0,0},
  {0,0,1,0,0,0,0,0},
  {0,0,1,1,1,1,0,0},
  {0,1,1,0,1,0,1,0},
  {1,0,1,1,0,0,1,0},
  {0,1,1,0,0,1,0,0},
  {0,0,0,0,0,0,0,0}
};
void setup(){
  size(81, 81);
  frameRate(30);
}
void draw(){
  background(0);
  stroke(0);
  for(int y = 0; y < p.length; y++){
  for(int x = 0; x < p[y].length; x++){
    if(p[y][x] == 0){
      fill(96, 96, 96);
    }
    else if(p[y][x] == 1){
      fill(255, 0, 0);
    }
    ellipseMode(CORNER);
    ellipse(x*10, y*10, 10, 10);
  }}
}
</pre>
<p>jsdoitにも投稿してあります。<br />
<a href="http://jsdo.it/funnythingz/uhNO" target="_blank">Processing.js 8x8 ドットマトリックスLEDっぽいのつくってみた</a><br />
<script type="text/javascript" src="http://jsdo.it/blogparts/uhNO/js?view=design"></script>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://jsdo.it/funnythingz/uhNO" title="Processing.js 8x8 ドットマトリックスLEDっぽいのつくってみた">Processing.js 8x8 ドットマトリックスLEDっぽいのつくってみた - jsdo.it - share JavaScript, HTML5 and CSS</a></p>
<p>描画するだけだったら簡単だけど、x軸に対して1ドットずつ横に流してアニメーションさせたいなーと。<br />
アニメーションできたらまたうｐしますん。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/882/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressにProcessingJSプラグインを導入してみた。</title>
		<link>http://hiropo.co.uk/archives/876</link>
		<comments>http://hiropo.co.uk/archives/876#comments</comments>
		<pubDate>Thu, 05 Jan 2012 09:32:46 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=876</guid>
		<description><![CDATA[最近がっつりProcessingにはまってます。Processing、かわいいよ、Processing。 そこでProcessingで書いたソースをぺたぺたブログにもはってたのですが、実際に動いてるものをどうにか簡単には &#8230; <a href="http://hiropo.co.uk/archives/876">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>最近がっつりProcessingにはまってます。Processing、かわいいよ、Processing。</p>
<p>そこでProcessingで書いたソースをぺたぺたブログにもはってたのですが、実際に動いてるものをどうにか簡単にはれないかと思い探してみました。</p>
<p>Processing JS WordPress Plugin<br />
<a href="http://www.keyvan.net/code/processing-js/" target="_blank">http://www.keyvan.net/code/processing-js/</a></p>
<p>意図も簡単に見つけてしまったので早速導入してみました。</p>
<p><script type="application/processing">
//Info: http://processingjs.org/reference
void setup() {
	size(400, 160);
	frameRate(15);
}
void draw() {
        int s = random(100);
	background(#ffffff);
        stroke(random(255), random(255), random(255));
	ellipse(random(width), random(height), s, s);
}
</script></p>
<pre>
void setup() {
    size(400, 160);
    frameRate(15);
}
void draw() {
    int s = random(100);
    background(#ffffff);
    stroke(random(255), random(255), random(255));
    ellipse(random(width), random(height), s, s);
}
</pre>
<p>良い感じに動いたー！すてきー！</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/876/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScriptで桃鉄っぽいもの作り始めてみた #jsdoit</title>
		<link>http://hiropo.co.uk/archives/871</link>
		<comments>http://hiropo.co.uk/archives/871#comments</comments>
		<pubDate>Thu, 29 Dec 2011 04:25:28 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=871</guid>
		<description><![CDATA[おひさしぶりこです。 最近はProcessingばかりやってました。久しぶりにJavaScriptで何かつくろうと思ったので以前からつくりたかった桃鉄っぽいものつくってみました。 仕組み 2次元配列でマップ作成。 とりあ &#8230; <a href="http://hiropo.co.uk/archives/871">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>おひさしぶりこです。<br />
最近はProcessingばかりやってました。久しぶりにJavaScriptで何かつくろうと思ったので以前からつくりたかった桃鉄っぽいものつくってみました。</p>
<h3>仕組み</h3>
<ul>
<li>2次元配列でマップ作成。</li>
<li>とりあえずコマをマップ上で動かしてみる。</li>
</ul>
<p>あたり判定用と見た目用で配列分けようかとも思いましたが、特に必要ないかなと思い配列マップは1つにまとめました。</p>
<p>ソースはこちらです。<br />
<script type="text/javascript" src="http://jsdo.it/blogparts/gawo/js"></script>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://jsdo.it/funnythingz/gawo" title="桃鉄っぽいもの。">桃鉄っぽいもの。 &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p>まだマップは未完成ですが、できたものがこちら。<br />
<script type="text/javascript" src="http://jsdo.it/blogparts/gawo/js?view=design"></script>
<p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://jsdo.it/funnythingz/gawo" title="桃鉄っぽいもの。">桃鉄っぽいもの。 &#8211; jsdo.it &#8211; share JavaScript, HTML5 and CSS</a></p>
<p>jsdo.it で全部完成できたらいいね！</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/871/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScriptのクロージャーでFizzBuzzやってみた</title>
		<link>http://hiropo.co.uk/archives/868</link>
		<comments>http://hiropo.co.uk/archives/868#comments</comments>
		<pubDate>Sat, 03 Dec 2011 03:28:40 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=868</guid>
		<description><![CDATA[こんぬちは、私です。 日常でちょこちょこプログラムは書きますが、脳みそが全然追いついていないため、トレーニングとして基本的なFizzBuzzに挑戦してみました。 言語はいつものJavaScript。 あと最近（今さら）覚 &#8230; <a href="http://hiropo.co.uk/archives/868">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>こんぬちは、私です。</p>
<p>日常でちょこちょこプログラムは書きますが、脳みそが全然追いついていないため、トレーニングとして基本的なFizzBuzzに挑戦してみました。</p>
<p>言語はいつものJavaScript。<br />
あと最近（今さら）覚えたクロージャーを使って書いてみました。</p>
<pre>
var rtn = "";
var fizzBuzz = function(fizz, buzz, max){
    return function(){
        max++;
        if( (max % fizz === 0) &#038;&#038; (max % buzz === 0) ){
            return "FizzBuzz";
        }
        else{
            if( max % fizz === 0 ){
                return "Fizz"
            }
            else if( max % buzz === 0 ){
                return "Buzz";
            }
            else {
                return max;
            }
        }
    }
}

var FizzBuzz = fizzBuzz(3, 5, 0);
var n = 0;
while(n < 20){
    rtn += FizzBuzz() + "\n";
    n++;
}
console.log(rtn);
</pre>
<p>実際やってみたもの<br />
<iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/funnythingz/682W3/15/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>10分くらいでできてしまった…。<br />
簡単だったけど面白かった。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/868/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>田代砲的なもの（DOSアタックで耐久テスト）</title>
		<link>http://hiropo.co.uk/archives/866</link>
		<comments>http://hiropo.co.uk/archives/866#comments</comments>
		<pubDate>Wed, 30 Nov 2011 03:07:19 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=866</guid>
		<description><![CDATA[たまにサイトの耐久テストをやったりするので、2ちゃんねるで有名な田代砲的な（ＤＯＳアタック）ものをブックマークレット用につくってみました。 javascript:(function(){ setInterval(func &#8230; <a href="http://hiropo.co.uk/archives/866">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>たまにサイトの耐久テストをやったりするので、2ちゃんねるで有名な田代砲的な（ＤＯＳアタック）ものをブックマークレット用につくってみました。</p>
<pre>
javascript:(function(){ setInterval(function(){var dd = new Date(); console.log( dd.getUTCHours() + ":" + dd.getUTCMinutes() + ":" + dd.getUTCSeconds() ); location.reload()}, 5000) })();
</pre>
<p>これをブックマークレットに登録して使うと、無限リロードしまくります。<br />
（※良い子は悪用しちゃダメだよ！）</p>
<p>ちなみにChromeなどではある程度実行すると悪意のあるスクリプト（？）とみなされて停止して動かなくなったり・・・。</p>
<p>そんなメモでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/866/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ブックマークレットでjQueryを使う方法</title>
		<link>http://hiropo.co.uk/archives/781</link>
		<comments>http://hiropo.co.uk/archives/781#comments</comments>
		<pubDate>Wed, 12 Oct 2011 02:53:41 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=781</guid>
		<description><![CDATA[こにちは。今さらながらブックマークレットにちょろっとはまってます。 普段はjQuery使いなので、HTMLのパースがネイティブだともの凄い骨が折れます。 なので、ブックマークレットでjQueryを読み込ませてみました。  &#8230; <a href="http://hiropo.co.uk/archives/781">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>こにちは。今さらながらブックマークレットにちょろっとはまってます。</p>
<p>普段はjQuery使いなので、HTMLのパースがネイティブだともの凄い骨が折れます。<br />
なので、ブックマークレットでjQueryを読み込ませてみました。</p>
<p>こちらを参考にしました。<br />
<a href="http://h2ham.seesaa.net/article/115498697.html" target="_blank">http://h2ham.seesaa.net/article/115498697.html</a></p>
<pre>
javascript: (function(){
	var d = document;
	var s = d.createElement('script');
	s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js';
	d.body.appendChild(s);
	setTimeout(function(){
	//ここに記述
	}, 1000);
})();
</pre>
<p>jQueryをgoogleAPIから読み込んで、bodyにappendしています。<br />
読み込んだ後に実行させるため、1秒間ウェイトをおいています。<br />
これでブックマークレットでjQueryが使えるようになります。</p>
<p>超便利！</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/781/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>メディアクエリ ワンソース・マルチデバイステンプレートをリリースしました</title>
		<link>http://hiropo.co.uk/archives/758</link>
		<comments>http://hiropo.co.uk/archives/758#comments</comments>
		<pubDate>Fri, 16 Sep 2011 12:31:52 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[マルチデバイス]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=758</guid>
		<description><![CDATA[CSS3のメディアクエリを使ったワンソース・マルチデバイステンプレートをリリースしました。 MediaQueries Multi-Device Template. PC, iPhone, iPad, Android, 各 &#8230; <a href="http://hiropo.co.uk/archives/758">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>CSS3のメディアクエリを使ったワンソース・マルチデバイステンプレートをリリースしました。</p>
<p><a href="http://tpl.funnythingz.com/" target="_blank">MediaQueries Multi-Device Template.</a></p>
<p>PC, iPhone, iPad, Android, 各種タブレットに最適化された形でコンテンツが提供できるように開発しました。多分まだ検証不十分でバグがあるかもですが、ベータ版をリリースします。</p>
<h3>ワンソース・マルチデバイスとは？</h3>
<blockquote><p>
「ワンソース・マルチデバイス」とは、1つのドキュメント(HTML)を、文書構造・内容に手を加えずに、仕様や画面サイズの異なる複数の端末毎に最適化して表示させる技術です。<br />
CSS3のMediaQueryを使って横幅の変化によってCSSの読み込みを変えることで、さまざまな画面サイズのデバイスに対応することができます。
</p></blockquote>
<h3>動作検証端末</h3>
<div class="clearfix">
<dl class="defList">
<dt>Windows Mac</dt>
<dd>Internet Explorer 7 以上</dd>
<dd>Firefox3.6 以上</dd>
<dd>Safari5 以上</dd>
<dd>Opera11 以上</dd>
<dd>Google Chrome</dd>
</dl>
<dl class="defList">
<dt>iOS4.3 以上</dt>
<dd>iPhone3GS</dd>
<dd>iPhone4</dd>
<dd>iPad</dd>
<dd>iPad2</dd>
</dl>
<dl class="defList">
<dt>Android2.1 以上</dt>
<dd>Xperia (Android2.1)</dd>
<dd>GalaxyS (Android2.2)</dd>
<dd>NexusS (Android2.3)</dd>
</dl>
</div>
<p>とりあえず目標として、スマートフォン、PC、タブレットなど、Web標準ブラウザを搭載するデバイスに最適な形でコンテンツを提供することを目指しました。</p>
<p>マルチデバイス対応案件における、開発、運用のハードルや負荷を下げつつ、運用もラクにできればなと。</p>
<p>極力、ユーザーエージェント判別による振り分けはしません。全部CSS！<br />
JSギミックなければ全然いけるよ、うんきっと。</p>
<h4 style="margin: 0;">メリット</h4>
<p>CSSのみで対応できちゃう。<br />
JavaScriptができなくても、マークアップのみで対応できちゃう。<br />
MediaQueryはウィンドウの横幅でCSSを切り替えるため、未知のデバイスも考慮できる（はず。）</p>
<h4 style="margin: 0;">デメリット</h4>
<p>複雑なレイアウト、コンテンツの出し分けは難しい。<br />
MediaQueryでのCSS切り替えによるコーディングの取得が必要。</p>
<h3 style="margin: 0;">最後に・・・</h3>
<p>このブログはマルチデバイス対応まだです！これからこのテンプレートを使ってみようと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/758/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Titanium Studio でデスクトップアプリ開発に入門してみた</title>
		<link>http://hiropo.co.uk/archives/693</link>
		<comments>http://hiropo.co.uk/archives/693#comments</comments>
		<pubDate>Fri, 02 Sep 2011 10:05:09 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[(X)HTML+CSS]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Aptana]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=693</guid>
		<description><![CDATA[こんぬつわ。ブログを放置してから早半年弱…。完全に放置してしまいました。 技術的にはいろんなことできるようになったのですが全然メモってませんでした…。 反省してます…。 ということできちんとブログを買いていこうかなと思い &#8230; <a href="http://hiropo.co.uk/archives/693">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>こんぬつわ。ブログを放置してから早半年弱…。完全に放置してしまいました。<br />
技術的にはいろんなことできるようになったのですが全然メモってませんでした…。<br />
反省してます…。</p>
<p>ということできちんとブログを買いていこうかなと思い、最近ちょっとやってみようと思ったのが、Titanium Studio によるデスクトップアプリケーション開発！<br />
なんと、みんなが大好きなHTML5+CSS3+JavaScript+Ruby+Python+PHP と、最近流行のweb系言語がだいたい使えちゃいます。Adobe AIRよりもこっちの方が良いんじゃないかって思ってみたり。</p>
<p>Titanium Studio は、Aptanaを買収し、AptanaとTitaniumががっちゃんこしたもの（？）みたいです。<br />
Titanium はiPhone, Android でクロスデバイス開発をするための開発ツールで、iPhoneアプリやAndroidアプリを開発したことある人は知っているであろうと思うのでここでは割愛します。</p>
<p>それでは早速Titanium Studio でHello Worldしてみます。</p>
<p>まずはTitanium Studioをユーザー登録してダウンロードします。<br />
<a href="http://www.appcelerator.com/" target="_blank">http://www.appcelerator.com/</a></p>
<h3>Titanium Studio を起動し、プロジェクトを新規でつくる</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/754de3cf2d164ca350e6ca3eea66196c1.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/754de3cf2d164ca350e6ca3eea66196c1.png" alt="" title="CreateProject" width="228" height="125" class="alignnone size-full wp-image-696" /></a></p>
<h3>Titanium Desctop Project をつくる</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/65da3bfd87ed0a14e1c66afa31b6fa45.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/65da3bfd87ed0a14e1c66afa31b6fa45.png" alt="" title="Titanium Desctop Project" width="527" height="504" class="alignnone size-full wp-image-698" /></a></p>
<h3>Project Name を設定し、使用言語にRuby, Python, PHP をチェック</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/583944337d08aed0c389ad1165e279fb.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/583944337d08aed0c389ad1165e279fb.png" alt="" title="Use Language" width="532" height="501" class="alignnone size-full wp-image-699" /></a></p>
<h3>アプリケーション情報を設定する</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/b36f7164a016a593dde3baed5a14b240.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/b36f7164a016a593dde3baed5a14b240.png" alt="" title="Config" width="408" height="475" class="alignnone size-full wp-image-703" /></a></p>
<h3>ソースコードを書くために /Resources/index.html を開く</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/3ca357de7e930f7da506a4b426695a86.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/3ca357de7e930f7da506a4b426695a86.png" alt="" title="source" width="240" height="213" class="alignnone size-full wp-image-701" /></a></p>
<h3>ソースコードを書く</h3>
<pre>
&lt;!Doctype html&gt;
&lt;html lang=&quot;ja&quot;&gt;
	&lt;head&gt;
		&lt;meta charset=&quot;utf-8&quot;&gt;
		&lt;title&gt;test&lt;/title&gt;
		&lt;style type=&quot;text/css&quot;&gt;
			body {
				background: #fff;
			}
		&lt;/style&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;h1&gt;test&lt;/h1&gt;
		&lt;script type=&quot;text/python&quot;&gt;
			def pyFunc(str):
				document.write(str)
			pyFunc(&quot;python&quot;)
		&lt;/script&gt;
		&lt;script type=&quot;text/ruby&quot;&gt;
			def rbFunc(str)
				pyFunc(str)
			end
			rbFunc(&quot;ruby&quot;)
		&lt;/script&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>アプリを実行してみる</h3>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/23951a9f864ad6d1ade13d6f72a46dea.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/23951a9f864ad6d1ade13d6f72a46dea.png" alt="" title="実行" width="331" height="173" class="alignnone size-full wp-image-706" /></a></p>
<p><a href="http://hiropo.co.uk/wp-content/uploads/2011/09/9fa470a3d698a9d2c2414894676ee9af.png"><img src="http://hiropo.co.uk/wp-content/uploads/2011/09/9fa470a3d698a9d2c2414894676ee9af.png" alt="" title="アプリ起動" width="717" height="507" class="alignnone size-full wp-image-707" /></a></p>
<p>デスクトップアプリができちゃった！</p>
<p>Pythonの中にRubyを書いたりJS書いたり何だか何でもアリのカオス状態ですが、面白いことできそうな予感がぷんぷんします。こういうの嫌いじゃない。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/693/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>配列を拡張してみた。Array.shuffle() Array.clone() &#8211; JavaScript</title>
		<link>http://hiropo.co.uk/archives/652</link>
		<comments>http://hiropo.co.uk/archives/652#comments</comments>
		<pubDate>Tue, 26 Apr 2011 02:17:32 +0000</pubDate>
		<dc:creator>hirohi</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://hiropo.co.uk/?p=652</guid>
		<description><![CDATA[こんにちは。最近あまり投稿していませんでした。 JavaScriptを拡張するのはあまり気が進まないのですが、ネイティブ実装がイケてない部分が多いので、もうがっつり拡張しまくったライブラリつくっても良いんじゃないかくらい &#8230; <a href="http://hiropo.co.uk/archives/652">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>こんにちは。最近あまり投稿していませんでした。</p>
<p>JavaScriptを拡張するのはあまり気が進まないのですが、ネイティブ実装がイケてない部分が多いので、もうがっつり拡張しまくったライブラリつくっても良いんじゃないかくらいに思っている今日この頃でございます。</p>
<p>今回は超絶によく使うArrayオブジェクト(配列)の拡張を書いておきます。</p>
<p>まずは配列のシャッフル。</p>
<pre>
Array.shuffle()
</pre>
<p>見たまんまです。このまま使います。ネイティブ実装にはないのでprototypeを使って拡張します。<br />
アルゴリズムはシャッフル最速(？)と言われているFisher–Yatesアルゴリズムを使います。</p>
<p><a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle" target="_blank">Fisher–Yatesアルゴリズムについて</a></p>
<p>JavaScriptの実装は下記の通り</p>
<pre>
Array.prototype.shuffle = function() {
	var i = this.length;
	while(i){
		var j = Math.floor(Math.random()*i);
		var t = this[--i];
		this[i] = this[j];
		this[j] = t;
	}
	return this;
}
</pre>
<p>これで簡単に配列の中身をシャッフルできます。</p>
<p>次に配列のコピー(クローン)をつくるためのメソッド。</p>
<pre>
Array.clone()
</pre>
<p>JavaScriptの配列は別変数に代入した場合、それはコピーになるのではなく単純に元の配列オブジェクトを参照するだけになるので、コピーをつくりたい場合はいちいちループ文の中でpushしたりしなきゃならんのでめんどくさいのです。<br />
それを一発で解決する方法が、Array.clone() をつくっちゃえば簡単だよねってことなのです。</p>
<p>実装はこちら</p>
<pre>
Array.prototype.clone = function(){
	return Array.apply(null,this);
}
</pre>
<p>これだけです。とてもシンプル。</p>
<p>Array.shuffle() と Array.clone() を両方の使い方はこちら。</p>
<pre>
//配列hogeを生成
var hoge = Array(1,2,3,4,5);
//hogeのクローンfooを生成
var foo = hoge.clone();
//fooをシャッフルする
foo.shuffle();

console.log( hoge )     // [1,2,3,4,5]
console.log( foo )       // [2,4,1,3,5]
</pre>
<p>この2つとても便利ちゃんなのです。<br />
JavaScriptはどんどん拡張しちゃえば良いと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://hiropo.co.uk/archives/652/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

