<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PRESSMAN*Tech</title>
	
	<link>http://www.pressmantech.com</link>
	<description>セールスプロモーション &amp; Webトレンド最新情報</description>
	<lastBuildDate>Tue, 07 Feb 2012 03:41:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/pressmantech" /><feedburner:info uri="pressmantech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>pressmantech</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>点と点を繋げる！2012年に。</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/randqjdxwDA/48</link>
		<comments>http://www.pressmantech.com/thinking/48#comments</comments>
		<pubDate>Sat, 07 Jan 2012 05:52:36 +0000</pubDate>
		<dc:creator>shigeru</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[ＩＴ]]></category>

		<guid isPermaLink="false">http://www.pressmantech.com/?p=685</guid>
		<description><![CDATA[その昔（20数年前）、プレスマンにリンゴマークが付いた、“大きくて、やたら高い”パソコンがやって来ました。（たしかMacintosh　Quadra800） その [...]]]></description>
			<content:encoded><![CDATA[<p>その昔（20数年前）、プレスマンにリンゴマークが付いた、“大きくて、やたら高い”パソコンがやって来ました。（たしかMacintosh　Quadra800）</p>
<p>そのマシンは、一日に何回もフリーズするありえないＰＣ！サポートがだめ！フォント、ソフトが少ない！周辺機器が少ない高い！クライアントに迷惑をかける！など数々の大酷評を受ける。しかし、そのマシンは、あっというま（数年で）にデザイン、製版、レイアウト、校正作業をガラス張りにし、既存のワークフロー、技術者のスキルを陳腐化させるDTP革命をもたらしました。</p>
<p>この技術革新からは、たくさんの示唆、恩恵を受け印刷事業（当時はこの事業のみ）は延命。ほぼ同時にインターネット事業への参入も果たしました。</p>
<p>2012年は、その印刷事業にもひと区切りを付け、<br />
改めて、ITをコア事業とする会社に生まれ変わることを皆で決めました。</p>
<p>亡くなったジョブスは自身の経験から、<br />
点と点が、いつか繋がる！それは、未来になってみないと分からない！と、言っていました。</p>
<p>プレスマンも、皆でいままで挑戦、経験して来たことやノウハウ（多くの点）が繋がり、大きな成果を得ることで、社の仲間に大きな満足をもたらし、顧客、社会に貢献出来るよう な2012年にしたと思います。</p>
<p>新たなコア事業のフィールドでも、提供サービス、ノウハウ、技術がコモディティ化しないよう、一人ひとりが、日々真摯に革新を続けて行きたいと考えます。</p>
<p>今年も宜しくお願いします。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/randqjdxwDA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/thinking/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/thinking/48</feedburner:origLink></item>
		<item>
		<title>Boot Campでwindows7をインストール</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/9wavLywlTn4/765</link>
		<comments>http://www.pressmantech.com/tech/765#comments</comments>
		<pubDate>Mon, 03 Oct 2011 04:58:00 +0000</pubDate>
		<dc:creator>taichi</dc:creator>
				<category><![CDATA[Tech & Tips]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=765</guid>
		<description><![CDATA[会社のPCが逝ってしまいました。前向きに考えればやっとXPを卒業です。 さて、新しいPCを購入したわけですが、スペックと値段、見た目でMac miniにしました [...]]]></description>
			<content:encoded><![CDATA[<p><strong>会社のPCが逝ってしまいました。</strong>前向きに考えればやっとXPを卒業です。<br />
さて、新しいPCを購入したわけですが、スペックと値段、見た目でMac miniにしました。</p>
<p><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/10/mac-mini.jpg" alt="Mac mini" title="Mac mini" width="460" height="230" class="size-full wp-image-1270" /></p>
<p>正直、eclipseやApacheやAtokはMacでも動くしその他諸々Macの方がいいことやMacでもいいことがほとんどなのですが、秀丸とtortoiseSVNが使いたいという理由でBoot Campを使ってwindows7をインストールしました。</p>
<p><span id="more-765"></span><br />
まあ、Mac mini 2011は光学ドライブがないのでUSBメモリを使ってインストールとなりますが、ほかのPCでwindows7のISOイメージをつくればBoot Campがインストール用USBメモリを作ってくれます。色々解説サイトがあるし、インストール自体は全く問題なくいきます。一つだけ、USBメモリは４GBあれば足ります。windows7のDVDが４GB以上あるのかなと8GBを購入してしまいましたが、4GBで十分でした。後々、<strong>ReadyBoostで使えるので少々高くてもUSBメモリは高速なものをお勧めします。</strong></p>
<p>さて、買ったMac miniは52800円の安い方です。windows7は32bit版ですよってメモリは4GBにしました。<br />
ここまでは問題なかったのですが、インストール終了してメモリを確認すると使用可能メモリが2.16GBになっています。<br />
あれ、4GB積んだよね？全部使えないのはわかっているけどいくら何でも半分ってなんで？あれれ？<br />
理由はどうやら、Intel HD Graphics 3000が1.7GBほどメモリアドレスを占有してしまっているため？<br />
64MBしかメモリ使っていない感じなのに・・・・・</p>
<p><img class="alignnone size-medium wp-image-766" title="Clipboard01" src="http://www.pressmantech.com/wp/wp-content/uploads/Clipboard01-300x245.jpg" alt="" width="300" height="245" /></p>
<p>ということで、32bit版を使用しなければならないのならグラフィックスチップがついてくる高い方のMac miniの方がいいかもしれません。<br />
それ以外は64bit版を使えってことですね。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/9wavLywlTn4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/765/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/765</feedburner:origLink></item>
		<item>
		<title>prototypeのはなし（その１）</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/QCDoHk5haoU/755</link>
		<comments>http://www.pressmantech.com/tech/programming/755#comments</comments>
		<pubDate>Tue, 13 Sep 2011 08:24:22 +0000</pubDate>
		<dc:creator>taichi</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=755</guid>
		<description><![CDATA[javaやPHPなどで慣れていると、どうしても理解しにくいのがjavascriptのprototypeとcall,applyだと思います。 別に理解できなくても [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/09/prototype.jpg" alt="prototype" title="prototype" width="200" height="140" class="alignleft size-full wp-image-1273" />javaやPHPなどで慣れていると、どうしても理解しにくいのがjavascriptのprototypeとcall,applyだと思います。<br />
別に理解できなくてもプログラム書けるんですけどね。とくにjQueryとか使っちゃうと。しかし、理解できてくるとjavascirpt超おもしろいです。<br />
さて、prototypeがなんぞやっていうのは例によっていくらでも解説されているのでググってみて下さい。<br />
ここではprototypeを使った例を挙げておきます。これだけでprototypeを理解する意図ではなく、理解の助けになれば程度です。</p>
<p><span id="more-755"></span><br />
正直、prototypeについて読むだけで理解できるひとは天才じゃないかなと。普通わかんないッス。<br />
解説を読んで、色々なソースを見たり書いたりして何となく理解した上で、もう一度しっかりと解説を読んで「おー、そういうことだったのか」となるのがいいやり方だと思います。<br />
まあ、こんなサイト見てるより<a href="http://www.oreilly.co.jp/books/9784873113296/" target="_blank">サイ本</a>しっかり読めばいいような気も。</p>
<p>とりあえず</p>
<ul>
<li>functionでつくられた関数オブジェクトは全てprototypeプロパティを持っている。</li>
<li>あらゆるオブジェクトは__proto__プロパティを持っている。</li>
<li>この二つは当たり前だが別のプロパティである。</li>
<li>そして、プロトタイプチェーンって言われているのはprototypeプロパティじゃなくて__proto__プロパティのチェーン</li>
</ul>
<p>って考えておくと理解しやすいです。<br />
（__proto__自体はECMAScriptで定義されている訳でなく一部の実装でのプロパティみたいだけどこれがあると考えると分かり易い）</p>
<p>例1</p>
<pre>
var Car = function(){};
Car.prototype.color = "black";
var car1 = new Car();
var car2 = new Car();
alert(car1.color); //black
alert(car2.color); //black
</pre>
<p>上記の例はprototypeが何かを多少でも理解していれば当たり前じゃん！といったところですね。<br />
Carは関数オブジェクトなのでprototypeプロパティを持っています。その中身はconstructorプロパティだけを持つオブジェクトです。<br />
つまり</p>
<pre>Car.prototype = {constructor:Car}</pre>
<p>みたいな感じかな？<br />
ちなみに</p>
<pre>Car.prototype.constructor === Car // =&gt; true</pre>
<p>となりますが、訳わからなくなるのでconstructorはここでは無視。<br />
car1が作成された時点でcar1には__proto__プロパティが自動で作成されてこれはCar.prototypeへ参照されます。つまり</p>
<pre>car1.__proto__ === Car.prototype // =&gt; true</pre>
<p>となるわけです。で、プロトタイプチェーンはそのオブジェクトが持っていないプロパティは__proto__オブジェクトから探すので<br />
car1.colorはcar1.__proto__.colorとなりCar.prototype.colorとなるわけでつまりblackなわけです。<br />
car2も一緒。</p>
<p>つづく</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/QCDoHk5haoU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/programming/755/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/programming/755</feedburner:origLink></item>
		<item>
		<title>『float』ではなく『display: inline-block;』を使うという選択</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/RPR8xcmlF-E/720</link>
		<comments>http://www.pressmantech.com/tech/cording/720#comments</comments>
		<pubDate>Tue, 06 Sep 2011 09:29:33 +0000</pubDate>
		<dc:creator>Itoh</dc:creator>
				<category><![CDATA[コーディング]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=720</guid>
		<description><![CDATA[通常、ブロック要素を横並びにしたいときは『float』を使うことが多いと思います。しかしfloatには clearする必要がある IE6ではfloatと同方向の [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/09/css2.jpg" alt="CSS" title="CSS" width="430" height="276" class="alignnone size-full wp-image-1282" /></p>
<p>通常、ブロック要素を横並びにしたいときは『float』を使うことが多いと思います。しかしfloatには</p>
<ul>
<li>clearする必要がある</li>
<li>IE6ではfloatと同方向のpadding、marginが2倍になってしまう（バグ）</li>
<li>高さが異なるボックスがあるとその後のレイアウトが崩れる</li>
</ul>
<p>といった面倒がつきまといますよね。そんな時は『display: inline-block;』の出番です。block要素のように高さや縦方向のpadding、marginが指定できる上に、inline要素のように横並びができ、しかも高さが異なるボックスがあってもレイアウトが崩れません。</p>
<p><span id="more-720"></span><br />
それでは実際に『display: inline-block;』を使った例を見てみましょう。</p>
<h4>html</h4>
<pre>
&lt;div class=&quot;ib-box&quot;&gt;ボックス1&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス2&lt;/div&gt;
&lt;div class=&quot;ib-box&quot; style=&quot;height: 150px;&quot;&gt;ボックス3&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス4&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス5&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス6&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス7&lt;/div&gt;
&lt;div class=&quot;ib-box&quot;&gt;ボックス8&lt;/div&gt;
</pre>
<h4>css</h4>
<pre>
.ib-box{
	display: inline-block;
	width: 120px;
	height: 100px;
	margin: 10px;
	}
</pre>
<p>単純にdivを並べ、これらに『display: inline-block;』を指定しました。ここではレイアウトを見るためにボックス3の高さを敢えて変えています。</p>
<style type="text/css">
.ib-box{ display: inline-block; width: 120px; height: 100px; margin: 10px; border: 1px solid #eee; }
.height{ height: 150px; border: 1px solid #f66; }
</style>
<div class="ib-box">ボックス1</div>
<div class="ib-box">ボックス2</div>
<div class="ib-box height">ボックス3</div>
<div class="ib-box">ボックス4</div>
<div class="ib-box">ボックス5</div>
<div class="ib-box">ボックス6</div>
<div class="ib-box">ボックス7</div>
<div class="ib-box">ボックス8</div>
<p>いかがでしょうか？ご覧のようにfloatを使わずとも、高さを指定したボックスの横並びが実現できました。さらに高さが異なるボックス3以降のレイアウトも崩れていないのが分かると思います。</p>
<p>しかし『display: inline-block;』はIE6、IE7では使うことができません。<br />
そこでIE6、IE7用にハックを指定してあげる必要があります。</p>
<h4>css</h4>
<pre>
.ib-box{
	display: inline-block;
	/display: inline;  /* IE用ハック */
	/zoom: 1;  /* IE用ハック */
	width: 120px;
	height: 100px;
	margin: 10px;
	}
</pre>
<p>とりあえずdisplayをinlineで指定して、zoomでhaslayoutをtrueにする感じです。hasLayoutとはそのオブジェクトがレイアウトを持つかどうかの読み取り専用のプロパティです。zoomを指定することでhasLayoutをtrueにすることができ、それによってheightも指定できるようになるというわけですね。個人的には、CMSを使ってのECサイト作成やギャラリーサイトの構築なんかでよく使ってます。任意の場所でclearかけるのが難しいことが多いので。シンプルにマークアップしたいなって方は是非試してみてください。</p>
<p>それでは。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/RPR8xcmlF-E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/cording/720/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/cording/720</feedburner:origLink></item>
		<item>
		<title>mod_auth_formがmakeできない</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/oz5m5wK7a6g/713</link>
		<comments>http://www.pressmantech.com/tech/programming/713#comments</comments>
		<pubDate>Tue, 06 Sep 2011 07:43:43 +0000</pubDate>
		<dc:creator>taichi</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=713</guid>
		<description><![CDATA[Apache2.3というか2.4に実装予定のmod_auth_formじゃありません。 こちらのほうです。 まあ、上記ページにApache2.4のほうを使ってね [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/09/apache.jpg" alt="Apache" title="Apache" width="460" height="58" class="alignnone size-full wp-image-1276" /></p>
<p>Apache2.3というか2.4に実装予定のmod_auth_formじゃありません。<br />
<a href="http://comp.uark.edu/~ajarthu/mod_auth_form/" target="_blank">こちら</a>のほうです。<br />
まあ、上記ページにApache2.4のほうを使ってねみたいなことが書いてありますが、2.4がなかなかでませんです。<br />
さて、これを何に使うのか、何ができるのかと言うのは問題ではなく、そもそもmakeができません。<br />
環境はCentOS5.4のApache 2.2.3,apr 1.2.7、mod_auth_form 2.05です。</p>
<p><span id="more-713"></span><br />
ちなみに、Apache.2.0系だと問題なくmakeできます。まず./configureはこんな感じです。</p>
<pre>./configure \
APACHE2_INCLUDE=/usr/include/httpd/ \
APR1_INCLUDE=/usr/include/apr-1/ \
APXS=/usr/sbin/apxs
</pre>
<p>これでmakeをすると、</p>
<pre>/usr/include/apr-1/apr-i386.h:270: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'apr_off_t'
・・・・・・・・・・・・・
mod_auth_form.c:1105: error: 'request_rec' has no member named 'parsed_uri'
make[1]: *** [mod_auth_form.lo] エラー 1
make[1]: ディレクトリ `/root/mod_auth_form-2.05/src' から出ます
make: *** [all-recursive] エラー 1</pre>
<p>みたいな感じでエラーが出ます。まあ、エラーの場所がかいてあるのでとりあえずそのファイルを見ます。<br />
/usr/include/apr-1/apr-i386.h:270</p>
<pre>typedef  off64_t           apr_off_t;</pre>
<p>となってます。off64_tがtypedefされてないっぽいのでググって見るとどうやら、sys/types.hで</p>
<pre>#if defined __USE_LARGEFILE64 &amp;amp;&amp;amp; !defined __off64_t_defined
typedef __off64_t off64_t;</pre>
<p>となっているらしい。というかなってた。<br />
つまり、__USE_LARGEFILE64 が定義されていないのでoff64_tが__off64_t になってない。つまり、<br />
apr-i386.hを</p>
<pre>typedef  __off64_t           apr_off_t;</pre>
<p>と書き直してmakeすれば、はい終了。</p>
<p>というわけで、めでたくmakeが通ったわけですが、ヘッダファイルをいじるのはなんか微妙なので元に戻してmod_auth_formのMakefileをいじることにします。<br />
mod_auth_formを./configureした後にsrc/Makefileを開くと&#8221;DEFS ＝ &#8220;で始まる行があります。そこの最後に</p>
<pre>-D__USE_LARGEFILE64=1</pre>
<p>と足してmakeしてみるとダメでした。そこでググるとどうやらfeature.h内で</p>
<pre>#ifdef _LARGEFILE64_SOURCE
# define __USE_LARGEFILE64 1
#endif</pre>
<p>となっているらしい。というかなってた。<br />
そんなわけで、先ほどの&#8221;DEFS = &#8220;の行の最後に</p>
<pre>-D_LARGEFILE64_SOURCE=1</pre>
<p>を付け足すとめでたく通りました。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/oz5m5wK7a6g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/programming/713/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/programming/713</feedburner:origLink></item>
		<item>
		<title>航空業界とiPad</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/UnonlurfkPc/580</link>
		<comments>http://www.pressmantech.com/thinking/news/580#comments</comments>
		<pubDate>Fri, 26 Aug 2011 05:15:32 +0000</pubDate>
		<dc:creator>shigeru</dc:creator>
				<category><![CDATA[業界ニュース]]></category>

		<guid isPermaLink="false">http://www.pressmantech.com/?p=580</guid>
		<description><![CDATA[ユナイテッド航空、パイロットへ１１０００台のiPadを導入 フライトマニュアルをiPadへの置き換え、ペーパーレス化、コストダウン、重量軽減（約１７㎏→約６００ [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_583" class="wp-caption alignleft" style="width: 160px"><a href="http://www.pressmantech.com/wp/wp-content/uploads/2011/08/ipad_アラスカ航空.jpg" rel="lightbox[580]" title="ipad_アラスカ航空"><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/08/ipad_アラスカ航空-150x150.jpg" title="ipad_アラスカ航空" width="150" height="150" class="size-thumbnail wp-image-583" /></a><p class="wp-caption-text">ipad_アラスカ航空</p></div>
<p><strong>ユナイテッド航空、パイロットへ１１０００台のiPadを導入</strong><br />
フライトマニュアルをiPadへの置き換え、ペーパーレス化、コストダウン、重量軽減（約１７㎏→約６００g）を図る。</p>
<p><strong>ブリティッシュ・エアウェイズの客室乗務員、iPadを導入</strong><br />
機内のカスタマーサービスを向上させる為に、iPad ２を導入。iPad ２で乗客の座席、時刻表、マニュアルなどの確認が可能となる。</p>
<p>アラスカ航空、フライトマニュアルをiPad導入<br />
iPadに、PDF化された全てのフライトマニュアルを搭載。</p>
<p><span id="more-580"></span></p>
<p>重い、大量、更新頻度、検索性、今（紙）を上回る利便性が、keywordでしょう。<br />
インターネットが現れたときも、このキーワードのモノが、ネット化されましたね。</p>
<p>iPadの有効利用については、<br />
プレスマンまでお問合せください。</p>
<p>&nbsp;</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/UnonlurfkPc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/thinking/news/580/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/thinking/news/580</feedburner:origLink></item>
		<item>
		<title>jQueryのbindについて</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/e13isvt4u2E/701</link>
		<comments>http://www.pressmantech.com/tech/programming/701#comments</comments>
		<pubDate>Wed, 24 Aug 2011 05:34:35 +0000</pubDate>
		<dc:creator>taichi</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=701</guid>
		<description><![CDATA[jQueryのclick()やchange()などのイベント系の関数超便利ですよね。 実際にこれが何をやっているかと言うと下記のように単にclickなどのイベン [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/08/jquery.jpg" alt="jQuery" title="jQuery" width="200" height="140" class="alignleft size-full wp-image-1285" />jQueryのclick()やchange()などのイベント系の関数超便利ですよね。<br />
実際にこれが何をやっているかと言うと下記のように単にclickなどのイベント名でbindしているだけなんです。<br />
つまり<br />
<strong>click(fn) </strong>イコール <strong>bind(&#8220;click&#8221;,fn)</strong><br />
というわけです。<br />
そして、引数がなければtriggerが起動してます。</p>
<p><span id="more-701"></span><br />
jQuery1.4.2 2594行目</p>
<pre>
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error").split(" "), function( i, name ) {

// Handle event binding
jQuery.fn[ name ] = function( fn ) {
return fn ? this.bind( name, fn ) : this.trigger( name );
};

if ( jQuery.attrFn ) {
jQuery.attrFn[ name ] = true;
}
});
</pre>
<p>jQuery1.4.3 2900行目</p>
<pre>
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error").split(" "), function( i, name ) {

// Handle event binding
jQuery.fn[ name ] = function( data, fn ) {
if ( fn == null ) {
fn = data;
data = null;
}

return arguments.length &gt; 0 ?
this.bind( name, data, fn ) :
this.trigger( name );
};

if ( jQuery.attrFn ) {
jQuery.attrFn[ name ] = true;
}
});
</pre>
<p>1.4.2と1.4.3のソースをつけたのには訳があります。というか見れば同じ箇所でソースが微妙に違っているのがわかりますね。元々bindは<br />
<strong>bind(type, [data], fn)</strong><br />
のような形でコールバック関数にデータを渡すことができます。dataは省略できてその場合はイベントに関数をバインドするだけです。<br />
しかし、1.4.2まではclickイベントにデータを渡すときはbind(&#8220;click&#8221;,data,fn)と書かなくてはなりませんでした。しかし1.4.3以降は<br />
<strong>click(data,fn)</strong><br />
と書けばいいということになります。これは<a href="http://semooh.jp/jquery/" target="_blank">jQuery日本語リファレンス</a>には書いてありません。</p>
<p>jQuery日本語リファレンスは非常によくできていてわかりやすいので使っている人も多いはずですよね。（というかこれがないと泣いてしまう）ただ、最近の変更点については書かれていないので自分でソースを読むと新たな発見があります。<br />
例えば、jQuery1.6.2のbindについて書かれた箇所（oneと一緒に書かれているのでわかりにくいかも）</p>
<pre>
jQuery.each(["bind", "one"], function( i, name ) {
jQuery.fn[ name ] = function( type, data, fn ) {
var handler;

// Handle object literals
if ( typeof type === "object" ) {
for ( var key in type ) {
this[ name ](key, data, type[key], fn);
}
return this;
}

if ( arguments.length === 2 || data === false ) {
fn = data;
data = undefined;
}

if ( name === "one" ) {
handler = function( event ) {
jQuery( this ).unbind( event, handler );
return fn.apply( this, arguments );
};
handler.guid = fn.guid || jQuery.guid++;
} else {
handler = fn;
}

if ( type === "unload" &amp;&amp; name !== "one" ) {
this.one( type, data, fn );

} else {
for ( var i = 0, l = this.length; i &lt; l; i++ ) {
jQuery.event.add( this[i], type, handler, data );
}
}

return this;
};
});
</pre>
<p>これを読むとbindの一つ目の変数にObjectを渡して複数のイベントを一気にバインドできるのがわかります。つまり</p>
<pre>
var data = {hoge:"hoge",piyo:"piyo"};
$('#hoge').mousedown(data,function(e){
//処理内容
});
$('#hoge').mouseup(data,function(e){
//処理内容
});
</pre>
<p>を</p>
<pre>
var data = {hoge:"hoge",piyo:"piyo"};
$('#hoge').bind({
mousedown:function(e){/* 処理内容 */},
mouseup:function(e){/* 処理内容 */}
},data);
</pre>
<p>のように書けるということです。</p>
<p>で、bindにデータを渡すと何が嬉しいのかは次回。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/e13isvt4u2E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/programming/701/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/programming/701</feedburner:origLink></item>
		<item>
		<title>スポーツ業界とiPad</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/PnPjW0_OXk4/574</link>
		<comments>http://www.pressmantech.com/thinking/news/574#comments</comments>
		<pubDate>Tue, 23 Aug 2011 00:43:11 +0000</pubDate>
		<dc:creator>shigeru</dc:creator>
				<category><![CDATA[業界ニュース]]></category>

		<guid isPermaLink="false">http://www.pressmantech.com/?p=574</guid>
		<description><![CDATA[スポーツ＆競技関連向けに、iPadが評価され導入事例が多く紹介されるようになりました。団体競技については、文部科学省のマルチサポート事業の一環のようです。 柔道 [...]]]></description>
			<content:encoded><![CDATA[<p>スポーツ＆競技関連向けに、iPadが評価され導入事例が多く紹介されるようになりました。団体競技については、文部科学省のマルチサポート事業の一環のようです。</p>
<p><a href="http://dailynews.yahoo.co.jp/fc/sports/judo/?1314008205">柔道世界選手権の日本代表チーム</a><br />
外国人対戦相手の映像を数万点レベルでデータベース化し、<strong>練習や試合の合間にも見られるようにする</strong>ため、全員に一台づつｉＰａｄを配備（これまでは、練習後、ＭＴＧ時などにパソコンを使って見ていた）</p>
<p><a href="http://www.sanspo.com/sports/news/110812/spk1108120501000-n1.htm">バレーボール女子日本代表</a><br />
選手への指示や交代のタイミングがより的確になるほか、<strong>試合中にその試合のプレー映像も取得が可能</strong>に。</p>
<p><span id="more-574"></span><a href="http://response.jp/article/2011/05/23/156770.html">モータースポーツ<br />
</a>AppStoreから無料ダウンロードアプリを配信。主なコンテンツは、レースレポート、結果、写真、サウンド、ビデオ映像。例えば、レースカーの３６０度パノラマ画像、サーキットの詳細解説、ウォールペーパー、レースウィークの概要、メイキング映像などの最新情報を提供。</p>
<p>導入に当たっては、<br />
・リアルタイムに使える！<br />
・隙間の時間に利用可能な機動力、操作性！<br />
というiPadならではの特徴があるようです。普及スピード、市場シェアなど、ノートＰＣを凌駕する勢いが、こんなところにも現れているのでしょうか。<strong></strong></p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/PnPjW0_OXk4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/thinking/news/574/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/thinking/news/574</feedburner:origLink></item>
		<item>
		<title>プレスマン社内のタグクラウド</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/V2FZHGhTOfA/563</link>
		<comments>http://www.pressmantech.com/thinking/what-we-can/563#comments</comments>
		<pubDate>Mon, 22 Aug 2011 12:57:50 +0000</pubDate>
		<dc:creator>shigeru</dc:creator>
				<category><![CDATA[PRESSMANにできること]]></category>

		<guid isPermaLink="false">http://www.pressmantech.com/?p=563</guid>
		<description><![CDATA[プレスマンの社内で、運営中のブックマークスというサイトのタグクラウドを紹介します。今日の時点で、一番目立つのが、iPad、WordPress、HTML５、iPh [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_565" class="wp-caption alignleft" style="width: 160px"><a href="http://www.pressmantech.com/wp/wp-content/uploads/2011/08/ブックマークスのタグクラウド.jpg" rel="lightbox[563]" title="ブックマークスのタグクラウド"><img src="http://www.pressmantech.com/wp/wp-content/uploads/2011/08/ブックマークスのタグクラウド-150x150.jpg" title="ブックマークスのタグクラウド" width="150" height="150" class="size-thumbnail wp-image-565 " style="margin: 0px 5px;" /></a><p class="wp-caption-text">ブックマークスのタグクラウド</p></div>
<p>プレスマンの社内で、運営中のブックマークスというサイトのタグクラウドを紹介します。今日の時点で、一番目立つのが、<strong>iPad、WordPress、HTML５、iPhone、facebook、Ａｎｄｒｏｉｄ。</strong></p>
<p>ブックマークス、オープン３ヶ月。<br />
投稿数１９１件。</p>
<p>みんなの興味＝世の中の注目度＝顧客のニーズ。<br />
営業ネタにもたくさん使えて、皆さんの投稿に感謝です。</p>
<p>&nbsp;</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/V2FZHGhTOfA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/thinking/what-we-can/563/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/thinking/what-we-can/563</feedburner:origLink></item>
		<item>
		<title>(function($){})(jQuery);</title>
		<link>http://feedproxy.google.com/~r/pressmantech/~3/HLamZ8lcCXI/696</link>
		<comments>http://www.pressmantech.com/tech/programming/696#comments</comments>
		<pubDate>Tue, 16 Aug 2011 01:45:56 +0000</pubDate>
		<dc:creator>taichi</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://net.pressmantech.com/?p=696</guid>
		<description><![CDATA[JavaScriptの変数のスコープは慣れないとちょっとわかりにくいです。 クロージャも無名関数もわかりにくいんじゃないでしょうか。 しかし、例によってこれらに [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScriptの変数のスコープは慣れないとちょっとわかりにくいです。<br />
クロージャも無名関数もわかりにくいんじゃないでしょうか。<br />
しかし、例によってこれらについて書いてある記事はググればいくらでもあるので割愛。<br />
それに、いくら解説を読んでも実際たくさんのコードを書かないとなかなか理解できません。</p>
<p>jQuery用に書かれたJavaScriptをみるとよく</p>
<pre>
(function($){
    var hoge = function(){
        alert($(&quot;#hoge&quot;).val());
    };
    hoge();
})(jQuery);
</pre>
<p><span id="more-696"></span><br />
みたいに書かれています。ぱっと見るといったい何をやっているのか意味不明ですよね。<br />
これは何をやっているか理解すると「おぉー」と言う感じです。</p>
<p>&nbsp;</p>
<p>分解して書くと下記と似たような意味になります。</p>
<pre>
var piyo = function(fuga){
        var hoge = function(){
            var foo = fuga(&quot;#hoge&quot;);
            alert(foo.val());
        };
        hoge();
    };
piyo(jQuery);
</pre>
<p>関数を作ってそれにjQueryという引数を渡して実行しているだけです。<br />
$は普通にただの変数なので特別に考える必要はないです。（fugaに書き直しています）<br />
JavaScriptは変数に関数を入れられる（というか参照値が入るのだけど）ことを覚えておけばわかりやすいと思います。</p>
<p>で、これが何なの？別にこんなことすることないじゃんと言う話になりますが、利点は当然あります。<br />
まず、$が別に定義されてしまっていた場合です。例えば、prototype.jsとjQueryを同時に使う場合がこれにあたります。<br />
どちらも$が特別な意味を持った変数です。jQueryでは変数jQuery == $ なので無名関数の引数$にjQueryを渡して実行して、あげればprototype.jsとの混在環境でもfunction($){}の中では普段と同じように$(&#8220;#hoge&#8221;)のように書くことができます。<br />
あとは、変数のスコープの問題です。色々なライブラリを組み合わせれば当然変数名が被るでしょう。しかし、function($){}の中で、varをつけて変数を宣言しておけばこの中だけのスコープになるので、他のライブラリに影響しなくなります。</p>
<p>JavaScriptはスコープ、無名関数、クロージャがわかるようになると書くのが非常に楽しくなります。あと、applyもキモです。applyに関してはまた後日。多分。</p>
<!-- PHP 5.x --><img src="http://feeds.feedburner.com/~r/pressmantech/~4/HLamZ8lcCXI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pressmantech.com/tech/programming/696/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.pressmantech.com/tech/programming/696</feedburner:origLink></item>
	</channel>
</rss>

