<?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; programming</title>
	<atom:link href="http://blog.webbingstudio.com/tag/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.webbingstudio.com</link>
	<description>札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:11:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>プログラミングのいろいろとわからないこと</title>
		<link>http://blog.webbingstudio.com/2010/07/programming.html</link>
		<comments>http://blog.webbingstudio.com/2010/07/programming.html#comments</comments>
		<pubDate>Fri, 30 Jul 2010 00:08:07 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1473</guid>
		<description><![CDATA[エンジニアさんは定年などと言われますが、
35歳ではじめてプログラミングのお仕事をしました。
PHP＋MySQLの簡単なアプリケーション作りです。
文字化けやエラーや条件分岐でうんうん悩んだりしながら、何とか形にできまし [...]]]></description>
			<content:encoded><![CDATA[<p>エンジニアさんは定年などと言われますが、<br />
35歳ではじめてプログラミングのお仕事をしました。<br />
PHP＋MySQLの簡単なアプリケーション作りです。</p>
<p>文字化けやエラーや条件分岐でうんうん悩んだりしながら、何とか形にできましたが、今度受注するときは、もっと早く作れるようにしないと全く元が取れません…</p>
<p>プログラミングについてはこれまで本格的な業務にもしていなかったし、ほぼ独学でやってきました。<br />
もちろん、基本的なセキュリティ対策はできるだけ勉強しているのですが、いわゆる「あまりサンプル集には載ってない細かいこと」がいろいろとわかりません。</p>
<p>開発オフに行くたびに聞くのを忘れてしまうので、めもめも&#8230;φ(。。</p>
<h3>変数の命名ってどうしたらいいのだろう</h3>
<p>今のところ、同じ関係のものは接頭辞を揃えて</p>
<pre><code>$hogeCnt / $hogeTitle</code></pre>
<p>のような感じで、二単語目以上になったらキャピタライズしたりしてます。<br />
でも処理が長くなると、どんどん命名がぐちゃぐちゃになってきてしまって…</p>
<pre><code>$fuga['cnt'] / $fuga['title']</code></pre>
<p>みたいに配列で管理すべき？</p>
<h3>データベースの接続と切断</h3>
<p>データベースを利用するときは、まずPDOなどで接続するのですが</p>
<pre><code>$piyo = new PDO('mysql:host=' . DB_HOST . '; dbname=' . DB_NAME . ', ' .  DB_USER . ', ' . DB_PASS);</code></pre>
<p>一定の処理が終わったら都度切断した方がいいのでしょうか。<br />
PHPスクリプトの先頭で接続、最後で切断…とかまずいでしょうか。</p>
<h3>一時変数</h3>
<p>複数の変数を組み立ててSQL文やURLを作るときは、一時的な計算のために変数を作ったりするのですが、万一のファイル改ざんが怖くて、処理が終わったらすぐunsetで消してます。</p>
<pre><code>unset($hoge, $fuga, $piyo);</code></pre>
<p>もちろん、クラス定義してプライベート変数にするのがいちばんだろうと思うのですが、PHPのサンプルやTIPSを見ても、一時変数はそのままになっています。<br />
ここまでする必要はないのでしょうか。むしろ処理の無駄？</p>
<pre><code>$hoge = NULL;</code></pre>
<p>それとも、ぬるぽにした方がいいのかな。</p>
<h3>三項演算子が嫌い</h3>
<pre><code>$hoge = ($fuga == 'abc') ? 'abcが入っています' : '別の値が入っています';</code></pre>
<p>だって一行にされるとなんか読みにくいし。</p>
<pre><code>if($fuga == 'abc')
  $hoge = 'abcが入っています';
else
  $hoge = '別の値が入っています';</code></pre>
<p>だと、プログラマさん的には冗長なんでしょうか。</p>
<h3>md5って大丈夫なのか</h3>
<p>PHPサンプルで、パスワードの暗号化などによくmd5が使われているのですが、みんなが使っているアルゴリズムを取り入れてしまって大丈夫なんでしょうか。<br />
他にもsha1とかいろいろあるらしいですが、md5が選ばれる理由って何？強固だから？</p>
<h3>ログイン認証にはセッションに何を渡したらいいんだ</h3>
<p>いやいやいや（°Д°三°Д°）<br />
どうしたかは書かないです書けないです。</p>
<p>ユーザー登録時にDBにパスワードとは別のランダムな認証キーを保管しておいて、ログインのときはそれを発行した方がいいのでしょうか。<br />
んー、この辺は簡単なCMSをいくつか自分で見て調べてみるかな。</p>
<h3>難読化って？</h3>
<p>ソースコードの著作権の話をしていたら、こいわさん(<a class="blank" href="http://twitter.com/koiwa">@koiwa</a>)が教えてくれました。</p>
<blockquote><p><a href="http://twitter.com/koiwa/status/19553921430"><img class="alignnone size-large wp-image-1475" title="100730-0001" src="http://blog.webbingstudio.com/uploads/2010/07/100730-0001-479x321.jpg" alt="んー　お客さんからお金もらって仕事する場合とかは、ソースコードの著作権どうする？　とかは、契約書に入ってますね。コピペ対策については、JavaScriptとかは難読化して対処するとかはあります。" width="479" height="321" /></a></p></blockquote>
<p>それって、プログラミングでもするのでしょうか。<br />
<a class="blank" href="http://www.a-blogcms.jp/">a-blog cms</a>は暗号化されていますね。でも読みにくくなった分、保守が大変そうです。</p>
<hr />
<p>考えはじめたらどんどん出てきそうですが、この辺でやめておきます…</p>
<p>PEARもCakePHPも何それおいしいの？な今は、まだまだ勉強が必要そうです。<br />
それでも、お仕事でプログラミングをすると「<strong>他の人が利用することを考える</strong>」分、確実にスキルアップできることはわかったので、これからも時間を見つけていろいろなことに挑戦してみようと思います。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E3%81%A8%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F235l3a6&amp;in_reply_to_status_id=19866223831" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/07/programming.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>→Pia-no-jaC←のボットとWEBマーケティングの話</title>
		<link>http://blog.webbingstudio.com/2009/11/pianojac_twitter.html</link>
		<comments>http://blog.webbingstudio.com/2009/11/pianojac_twitter.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 06:17:24 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[mixi]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1170</guid>
		<description><![CDATA[

私は、Twitterでは公式のアカウント(@webbingstudio)の他に「@pianojac_fan」というのも運営しています。




最近気に入っている、インストロメンタルユニット「→Pia- [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.webbingstudio.com/uploads/2009/11/discography_firstcontact_ph.jpg" alt="discography_firstcontact_ph" title="discography_firstcontact_ph" width="180" height="180" class="alignleft size-full wp-image-1171" />

<p>私は、Twitterでは公式のアカウント(<a href="http://twitter.com/webbingstudio" class="blank">@webbingstudio</a>)の他に「<a href="http://twitter.com/pianojac_fan" class="blank">@pianojac_fan</a>」というのも運営しています。</p>

<div class="clear">
</div>

<p>最近気に入っている、インストロメンタルユニット「<a href="http://pia-no-jac.net/" class="blank">→Pia-no-jaC←(ピアノジャック)</a>」を応援するために作ったアカウントで、数時間に一回</p>

<ul>
	<li>メンバー(HAYATO / HIRO)がほぼ毎日更新しているブログの新着</li>
	<li>公式サイト・メルマガ配信されるライブ情報</li>
</ul>

<p>を、自動でpostしています。</p>

<object width="480" height="388""><param name="movie" value="http://www.youtube.com/v/uj4srCKWpeA&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/uj4srCKWpeA&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

<p style="padding-top: 1.5em;">限定グッズ販売などの細かい情報はボットじゃ無理なので、これは私が手動で更新しています。<br />
お陰さまでぼちぼちfollowしてくれる人が増えてきたようです。</p>

<span id="more-1170"></span>

<p>→Pia-no-jaC←はまだ新進のアーティストですが、全国にたくさんのファンがいます。<br />
彼・彼女らはmixiに地方ごとのコミュを作って、ファン同士のコミュニケーションを取ったり、寄せ書きを集めてHAYATOとHIROにプレゼントしたりと、熱心な活動を続けています。<br />
→Pia-no-jaC←の運営元の会社もほとんどの活動はmixiの公式コミュが中心です。</p>

<p>ですが、mixiは純粋なSNSですから、その活動内容が検索エンジンなどを通してWEB上に広まることはありません。<br />
現状のファンは充分に満足しますが、私のようにヴィレッジヴァンガードから→Pia-no-jaC←に興味を持った人は公式サイトしか情報ソースがないのです。</p>

<p>9月にニコニコ動画で生ライブをしたとき（これも1200人が集まる大盛況でした）、→Pia-no-jaC←の二人は<br />
「武道館でのライブを目指したい！」と宣言しました。</p>

<p>インストロメンタル系のアーティストが武道館って、大変な目標だと思います。<br />
ファンが増える必要があるので、<strong>ヴィレバン・Youtube・ニコ動・mixiのどれにも縁がない人</strong>にも「→Pia-no-jaC←」の活動を伝えなければいけません。</p>

<p>今、最もWEBでの情報拡散力が高いのが「Twitter」です。<br />
WEB屋として応援できることはないかしら、と思って作ったのが、Twitterの@pianojac_fanなのです。<br />
→Pia-no-jaC←のファンのことは「→JackerS←」というので、@pia_no_jackersでも良かったかもと思ったりします。</p>

<p>→Pia-no-jaC←は、とにかくライブが楽しいアーティストです。<br />
なので武道館まで行ってしまうと、正直ちょっと寂しかったりしますが、私の地味なボットがちょっとでもファンを増やす役に立ってくれればいいなと思います。</p>

<p>今月末には、4thアルバムやスクエニの名曲アレンジ集「<a href="http://www.square-enix.co.jp/music/sem/page/lovesq/" class="blank">Love SQ</a>」への参加、<br />
年末には四大都市でのツアーもあります。<br />
お仕事のテンションを上げたい人は是非是非、→Pia-no-jaC←を聴いてみてくださいね。</p>
<a href="http://twitter.com/?status=RT+%40%3A+%E2%86%92Pia-no-jaC%E2%86%90%E3%81%AE%E3%83%9C%E3%83%83%E3%83%88%E3%81%A8WEB%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AE%E8%A9%B1+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fybajb97" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/11/pianojac_twitter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>なかなか覚えられないPHPのclassについて考えてみた</title>
		<link>http://blog.webbingstudio.com/2009/09/php_class.html</link>
		<comments>http://blog.webbingstudio.com/2009/09/php_class.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 05:34:00 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1097</guid>
		<description><![CDATA[空いている時間にPHPの学習をはじめてずいぶん経つのですが、「クラス」の概念がなかなか理解できませんでした。
どう書けばどう動くまでは把握しているのですが、「なぜこんな風に書くのか」がつかめない。

コンストラクタ [...]]]></description>
			<content:encoded><![CDATA[<p>空いている時間にPHPの学習をはじめてずいぶん経つのですが、「クラス」の概念がなかなか理解できませんでした。<br />
どう書けばどう動くまでは把握しているのですが、「なぜこんな風に書くのか」がつかめない。</p>

<p>コンストラクタとかメンバ変数なんて難しい言葉使うなよー＞＜</p>

<p>でも、昨日の晩ふと「<strong>夕飯のメニュー</strong>」に例えて考えてみたら、ちょっと理解できたかもです。<br />
メモしておこう。</p>

<p>関連：<a href="http://blog.webbingstudio.com/2009/03/%E3%81%B2%E3%81%A8%E3%82%8A%E6%9A%AE%E3%82%89%E3%81%97%E3%81%AE%E3%81%97%E3%81%82%E3%82%8F%E3%81%9B%E3%83%98%E3%83%93%E3%83%AD%E3%83%86%E9%A3%9F%E6%9D%90.html">ひとり暮らしのしあわせヘビロテ食材</a><br />
何故こんな記事を書いてるんだ…笑</p>

<span id="more-1097"></span>

<h3>スーパーで食材を買ってくる</h3>

<p>夕飯のメニューは大体、スーパーに行ってから考えたりします。<br />
思いつかないことも多いので、「使い回しのきく食材」を選びます。</p>
<p>この食材を「メンバ変数」と考えると</p>

<textarea readonly="readonly" cols="60" rows="7">class banGohan {
  var $niku;  //にく
  var $ninjin;  //にんじん
  var $tamanegi;  //たまねぎ
  var $naganegi;  //ながねぎ
  var $kyabetsu;  //きゃべつ
  var $shimeji;  //しめじ
}</textarea>

<p>となります（たぶん）</p>

<h3>食材からレシピをイメージする</h3>

<p>使い回すレシピを考えるために、食材をイメージします。<br />
これを「コンストラクタ」と考えると</p>

<textarea readonly="readonly" cols="60" rows="10">class banGohan {
//前の続き

//コンストラクタ
function banGohan($niku, $ninjin, $tamanegi, $naganegi, $kyabetsu, $shimeji) {
  $this->niku = $niku;  //にく
  $this->ninjin = $ninjin;  //にんじん
  $this->tamanegi = $tamanegi;  //たまねぎ
  $this->naganegi = $naganegi;  //ながねぎ
  $this->kyabetsu = $kyabetsu;  //きゃべつ
  $this->shimeji = $shimeji;  //しめじ
}

}</textarea>

<p>です。<br />
実際には冷蔵庫には既に調味料（しょうゆやみそ）も入っているので、継承されたクラスと考えてもいいのかもです。</p>

<h3>定番レシピをセットしておく</h3>

<p>上の食材があると、定番レシピがいくつかできます。<br />
これを「メンバ関数」と考えてみると</p>

<textarea readonly="readonly" cols="60" rows="10">class banGohan {
//前の続き

function banGohanTonjiru(){  //とんじる
  $nabe = $this->niku . $this->ninjin . $this->naganegi . $this->tamanegi;
  $nabe *= "miso" . "dashi" . "shouga";
  return $nabe;
}

function banGohanCurry(){  //カレー
  $nabe = $this->niku . $this->ninjin . $this->tamanegi . $this->shimeji;
  $nabe *= "curryroux" . "hachimitsu" . "yoghourt";
  return $nabe;
}

function banGohanYakisoba(){  //やきそば
  $huraipan = $this->niku . $this->ninjin . $this->naganegi . $this->kyabetsu;
  $huraipan *= "mushimen" . "sauce";
  return $huraipan;
}

・・・
}</textarea>

<p>メンバ関数に入る値は、基本的に「肉」「にんじん」「きゃべつ」でなければならないですが、<br />
肉が「100g88円の切り落とし」でも、「100g300円の無菌豚」でもいいわけです。にんじんもブランド品だろうがキズものだろうがバラものだろうがなんでもいいわけです。<br />
レシピさえ確定していれば。</p>

<h3>さて作るか</h3>

<p>で、レシピに添って食材を実際に買ってきて作ります。</p>

<textarea readonly="readonly" cols="60" rows="10">//今週の場合
$konsyu = new banGohan("こまぎれ", "道内産三本袋", "バラ売り新玉ねぎ", "1本ものネギ", "1/4玉", "ホ○トのしめじ");
$kyo = $konsyu->banGohanTonjiru();
$asu = $konsyu->banGohanCurry();
$asatte = $konsyu->banGohanYakisoba();

//来週の場合
$raisyu = new banGohan("バラ肉", "バラ売りキズもの", "玉ねぎ三袋パック", "半分カット", "1/2玉", "地元農家のしめじ");
$kyo = $raisyu->banGohanCurry();
$asu = $raisyu->banGohanYakisoba();
$asatte = $raisyu->banGohanTonjiru();</textarea>

<p>レシピが確定しているので、いちいち本を読むこともなく、材料を買ってきては粛々と実行していきます。</p>

<hr />

<p>と、ここまで妄想してみたのですが、なんか違う気がしてきました…；；<br />
とりあえずclassの流れと使いどころは理解したので、今日のところはこれで良しとしよう…</p>

<p>追記：shuji_w6eさんが説明してくれました＾＾参考にどうぞ。<br />
<a href="http://d.hatena.ne.jp/shuji_w6e/20090910/1252574711" class="blank">クラスとは変数をまとめて使う事のできるテンプレート</a></p>
<a href="http://twitter.com/?status=RT+%40%3A+%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8B%E8%A6%9A%E3%81%88%E3%82%89%E3%82%8C%E3%81%AA%E3%81%84PHP%E3%81%AEclass%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%80%83%E3%81%88%E3%81%A6%E3%81%BF%E3%81%9F+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fmyr67o" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/09/php_class.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>works:合同会社AQUASYS(テンプレートエンジン)</title>
		<link>http://blog.webbingstudio.com/2009/08/aquasys.html</link>
		<comments>http://blog.webbingstudio.com/2009/08/aquasys.html#comments</comments>
		<pubDate>Sun, 30 Aug 2009 02:16:03 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1044</guid>
		<description><![CDATA[
沖縄県でSaaS型のWEBサービスを展開されている、AQUASYS（アクアシス）様のウェブサイトリニューアルを行いました。
所属のプログラマ様との共同制作で、デザイン・コーディング・サイト構成の改編を担当しています。
 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aquasys.co.jp/"><img src="http://blog.webbingstudio.com/uploads/2009/08/aquasys.jpg" alt="aquasys" title="aquasys" width="200" height="115" class="alignleft size-full wp-image-1052" /></a></p>
<p>沖縄県でSaaS型のWEBサービスを展開されている、AQUASYS（アクアシス）様のウェブサイトリニューアルを行いました。<br />
所属のプログラマ様との共同制作で、デザイン・コーディング・サイト構成の改編を担当しています。</p>
<p><a href="http://www.aquasys.co.jp/" class="blank">http://www.aquasys.co.jp/</a></p>
<div class="clear"></div>
<p><span id="more-1044"></span></p>
<p>この案件は、制作前のプレゼンテーション（ユルいものではありましたが）を求められました。<br />
そこで社内の方に特に言ったのが、「<strong>現状のサイトは不安を煽る</strong>」という点でした。</p>
<p><img src="http://blog.webbingstudio.com/uploads/2009/08/aquasys_2.jpg" alt="aquasys_2" title="aquasys_2" width="200" height="259" class="alignleft size-full wp-image-1046" /></p>
<p>前のデザインは（外注したらしいです）一見無難なのですが、コンテンツに行き止まりがあったり、サービスについて概要しか書いていなかったり、欧米圏独特の強い言い回し（AQUASYSの代表は外国の方）が残ったままだったからです。</p>
<p>IT企業というのは実体のないものを扱っているので、ちょっとした不安が「契約しない」という選択につながってしまいます。</p>
<p>とにかく、一般の人には理解しにくい「SaaS」や「CRM（顧客管理システム）」を、障害なく伝えられるかを、プログラマさんから会社としてのデザインの希望や、社内の営業計画を聞きながら制作していきました。<br />
自分でもできるだけ、SaaSやCRMについて予習したつもりです。</p>
<div class="clear"></div>
<p><img src="http://blog.webbingstudio.com/uploads/2009/08/aquasys_1.jpg" alt="aquasys_1" title="aquasys_1" width="480" height="244" class="alignnone size-full wp-image-1045" /></p>
<p>制作時に、ディレクションを担当したプログラマさんに、以下のような要望を出されました。</p>
<ul>
<li>サイトの共通部分の管理に「Genshi」を使いたい</li>
<li>Subversionでのバージョン管理に協力してほしい（TortoiseSVN）</li>
</ul>
<p><img src="http://blog.webbingstudio.com/uploads/2009/08/python.jpg" alt="python" title="python" width="194" height="67" class="alignleft size-full wp-image-1050" /></p>
<p>「<a href="http://genshi.edgewall.org/" class="blank">Genshi</a>」はPythonのテンプレートエンジンです。基本的には<a href="http://www.soycms.net/" class="blank">SOYCMS</a>に似た、HTML内に属性値を書き込み内容を置換する形式で動作します。<br />
実際の組み込みはプログラマさんに行っていただきましたが、独自タグの位置・ページ毎のHTMLの指定方法など、都度指示をもらいながらコーディングをしました。</p>
<p>また、Dreamweaverに入っているSubversionでは機能にまだまだ不備があって管理しにくい、ということだったので、<a href="http://sourceforge.jp/magazine/08/08/29/0550232" class="blank">TortoiseSVN</a>を利用しました。</p>
<p>正直、これまではSubversionのメリットがわからなかったのですが、丁寧に使いかたを説明してもらって導入してみると、プログラマさんといちいち連絡を取らなくても作業を進められるし、バックアップ・復元も簡単にできるので良かったです。</p>
<hr />
<p>今回の案件で、初めて本格的なプログラマさんとお仕事をしました。<br />
<a href="http://blog.webbingstudio.com/2009/08/webcon090828.html" title="WEBデザイナーとプログラマの関係改善を考えてみる">前の記事</a>でも書いたことですが、デザイナーとプログラマの共同作業でいちばん大切なのは、綿密なコミュニケーションだと痛感しました。</p>
<p>お互いの作業に関する要望を出し、どちらかが譲歩することになった場合、譲歩してもらう側は具体的な説明をする。<br />
デザインの反映に関してはプログラマ、作業環境に関してはデザイナーの譲歩が多くなるのですが、ここで説明が足りないともやもやしたまま進んでしまうので、納得のいかないお仕事になってしまうのではないかと思います。<br />
とにかくSkypeチャットは必須ですね。</p>
<p>いつもと違い勉強することがたくさんありましたが、得るものもたくさんありました。</p>

<a href="http://twitter.com/?status=RT+%40%3A+works%3A%E5%90%88%E5%90%8C%E4%BC%9A%E7%A4%BEAQUASYS%28%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3%29+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fmoq4kb" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/08/aquasys.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WEBデザイナーとプログラマの関係改善を考えてみる</title>
		<link>http://blog.webbingstudio.com/2009/08/webcon090828.html</link>
		<comments>http://blog.webbingstudio.com/2009/08/webcon090828.html#comments</comments>
		<pubDate>Fri, 28 Aug 2009 19:15:07 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Think]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1032</guid>
		<description><![CDATA[北海道WEBコンソーシアムの定例会に行ってきました。
北海道WEBコンソーシアム定例会「デザイナー・プログラマーの連携のベストプラクティス」
WEBデザイナーは、WEBサービスやCMS等の制作で、プログラマと協業すること [...]]]></description>
			<content:encoded><![CDATA[<p>北海道WEBコンソーシアムの定例会に行ってきました。</p>
<p><a href="http://hwcon.org/archives/96" class="blank">北海道WEBコンソーシアム定例会「デザイナー・プログラマーの連携のベストプラクティス」</a></p>
<p>WEBデザイナーは、WEBサービスやCMS等の制作で、プログラマと協業することが多くなっています。 <br />
私はまだプログラマさんとの協業経験は少ないですが、かなりの確率でトラブルが起こって、ひどいときは業務に影響するようです。<br />
何故そんなことになってしまうのでしょうか。</p>
<p>今月のWEBコン定例会は<a href="http://www.local.gr.jp/" class="blank">Local</a>の<a href="http://groups.google.co.jp/group/local-php" class="blank">PHP部</a>と共同開催という形で、“デザイナーとプログラマの双方の不満から、それを解決するためにはどのようなことをしたらいいのかを導き出すセミナー及びディスカッション”が行われました。</p>
<p><span id="more-1032"></span></p>
<p>セミナーでは、デザイナー側の長谷川さん（<a href="http://twitter.com/h2ham" class="blank">@h2ham</a>）、プログラマ側の松井さん（<a href="http://twitter.com/ketaiorg" class="blank">@ketaiorg</a>）がそれぞれ</p>
<ol>
<li>協業で困ったこと</li>
<li>自分の業種側が歩み寄るべき点</li>
<li>相手の業種側に希望する点</li>
</ol>
<p>を挙げていきました。</p>
<p>…のですが、打ち合わせをしたわけでもないのに、お互いの内容がほぼ一致する結果になりました。<br />
  表にしてみます。 </p>
<table class="table1">
<tr>
<th width="20%">&nbsp;</th>
<th width="40%">デザイナー（長谷川）</th>
<th width="40%">プログラマ（松井）</th>
</tr>
<tr>
<th>自分の業種側が歩み寄るべき点</th>
<td>
<ul>
<li>プログラミングの基礎の一部でも覚える</li>
<li>抽象的な表現をしない、どのように動作させたいなど具体的に</li>
<li>localhost、Subversionなど効率の良い作業環境を少しは整備する</li>
<li>CMSの基本カスタマイズ、JavaScript(jQuery)など身に付ける<br />
      ＝今後必須のスキルとなっていく</li>
<li>便利なことは覚えるのが大変だが極力取り入れる</li>
</ul>
</td>
<td>
<ul>
<li>技術至上主義</li>
<li>日本語を話さない（無駄に技術用語を使う）</li>
<li>コミュニケーション能力の不足＝空気読めない</li>
<li>自己中心的</li>
</ul>
<p>なので</p>
<ul>
<li>会話しよう、コミュニケーションしよう</li>
<li>技術用語は控える、言いかえる</li>
<li>自己中心的な設計は避ける</li>
<li>フォルダ構造やファイル名はしっかり相談して決める</li>
<li>納品後、長期間メンテするのはデザイナー側が多いことを理解する</li>
</ul>
</td>
</tr>
<tr>
<th>相手の業種側に希望する点</th>
<td>
<ul>
<li>コミュニケーションをしてほしい<br />
      Skypeでの重要な連絡を「どう返事していいかわからなかったから」という理由で無視されたことがある
    </li>
<li>社内用のドキュメントを用意してほしい</li>
<li>ソースにコメントを入れる等してほしい</li>
<li>フォルダの階層・場所はわかりやすくしてほしい</li>
<li>設計等でユーザー側の視点を持ってほしい</li>
</ul>
</td>
<td>
<ul>
<li>「楽する努力」をしっかりしてほしい<br />
      ページ内パーツを共通化しないなど、それ全部手で直すの？なことをする</li>
<li>FTPをいちいち手でアップとか辛くないの？<br />
（localhost・サーバー同期など作業環境の整備）      </li>
<li>PHP・Smartyの構文は壊さないでほしい</li>
<li>テンプレートの条件分岐くらいは覚えてほしい</li>
<li>JavaScriptはある程度でいいので覚えてほしい<br />
（jQueryは完全にデザイナーの領域）</li>
<li>ユーザーインターフェースについての意見がほしい</li>
</ul>
</td>
</tr>
<tr>
<th>お互いが努力すべき点</th>
<td>
<ul>
<li>どちらもユーザー視点を忘れずに</li>
<li>双方ともコミュニケーションをしっかり取れるようにする</li>
<li>納品後の管理についても考慮する</li>
<li>仕様を定める</li>
<li>めんどうくさがらない</li>
</ul>
</td>
<td>
<ul>
<li>コミュニケーション不足を補うため、ドキュメントをしっかり作ろう</li>
<li>メモ書き程度でもいいので残して伝える</li>
<li>プルダウン等のよくある改修方法は文書化する</li>
<li>作業時間に余裕を！</li>
<li>Subversionの導入</li>
</ul>
</td>
</tr>
</table>
<p>デザイナーとプログラマの反省点・要望は、ほとんどの形で一致しています。<br />
  つまり、お互いの歩み寄りが足りないまま協業している状況に、原因の一端があります。</p>
<p><img src="http://blog.webbingstudio.com/uploads/2009/08/webcon090828.jpg" alt="webcon090828" title="webcon090828" width="480" height="370" class="alignnone size-full wp-image-1042" /></p>
<p>これ以外の細かい部分は、</p>
<ul>
<li>思想的な問題（オープンソース至上のプログラマ／著作権と意匠を重視するデザイナー）</li>
<li>業態の問題（初期から入り納品まで集中するプログラマ／中期から入り納品後も改修を続けるデザイナー）</li>
<li>金銭的な問題（長期案件をまとまった見積で請け負うプログラマ／短期案件を手頃な見積で請け負うデザイナー）</li>
<li>雇用関係の問題（プログラマが雇用側／デザイナーが雇用側／どちらもフリー）</li>
</ul>
<p>が複雑に絡んでくると思います。<br />
  こればっかりは、コミュニケーションを重ねるしかないでしょう。</p>
<p>また、表を見たらすぐわかることですが、<strong>トラブルの半分は相手の性格によるもので、業種以前の問題です。<br />
</strong>WEBコンの定例会に参加するような人たちは勉強熱心だったり、自分からコミュニケーションを望むような人たちだから、<strong>上の表に載るような人はそもそも今回のセミナーを聞いてない</strong>のです。</p>
<p>じゃあどうするのか。</p>
<p>改善意識を持ったデザイナー・プログラマが結束して、外堀を埋めてしまうしかなさそうです。<br />
  情報を交換して、協業経験をためて、ワークフローやルールを整えて、困ったさんが出たら注意できる環境を作るということです。</p>
<p>簡単ではないですけど…＞＜</p>
<hr />
<p>「本当は歩み寄らなきゃならないのは、僕らプログラマの方なんだよね」</p>
<p>と、懇親会でプログラマさんに言われました。</p>
<p>確かにデザイナーはよくしゃべる人間が多いですが、それがコミュニケーション能力につながっているのでしょうか？一方的に文句言ってるだけかもしれません。</p>
<p>それに、私は最近の案件ではじめてSubversionを使うことになったのですが、正直「難しそう…めんどくさい（´A｀）」と思いました。実際にちょっとがんばって使ってみると、バックアップも楽だし協業相手に迷惑をかけないし、とてもいいツールなのに。</p>
<p>どっちかが引くのではなくて、双方が歩み寄れればいいですよね。</p>

<a href="http://twitter.com/?status=RT+%40%3A+WEB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC%E3%81%A8%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E9%96%A2%E4%BF%82%E6%94%B9%E5%96%84%E3%82%92%E8%80%83%E3%81%88%E3%81%A6%E3%81%BF%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fnlj9y2" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/08/webcon090828.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RubyとWEBデザイナー</title>
		<link>http://blog.webbingstudio.com/2009/08/ruby.html</link>
		<comments>http://blog.webbingstudio.com/2009/08/ruby.html#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:42:17 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Hokkaido]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1028</guid>
		<description><![CDATA[
株式会社えにしテック
「えにしテック」は、最近設立されたばかりの札幌の企業です。
プログラミングの会社にも関わらず、準備中の段階からデザイン会社並みのきれいなサイト。正式公開が楽しみです。
代表の島田さんと設樂さんは、 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.webbingstudio.com/uploads/2009/08/enishitec.jpg" alt="enishitec" title="enishitec" width="480" height="366" class="alignnone size-full wp-image-1029" /></p>
<p><a href="http://www.enishi-tech.com/" class="blank">株式会社えにしテック</a></p>
<p>「えにしテック」は、最近設立されたばかりの札幌の企業です。<br />
プログラミングの会社にも関わらず、準備中の段階からデザイン会社並みのきれいなサイト。正式公開が楽しみです。</p>
<p>代表の島田さんと設樂さんは、プログラミング言語「Ruby」のコミュ「<a href="http://ruby-sapporo.org/" class="blank">Ruby札幌</a>」の主幹でもあります。<br />
Ruby札幌が本の出版などで全国的に活動している影響もあるのか、北大生を中心に札幌はRubiestが多いです。<br />
日本人が開発した言語なので日本語との親和性が高く、構造的にも優れた言語であるようです。</p>
<p>そんなこんなで私も近頃Rubyに興味を持っていて、本を読むこともあるのですが、WEBデザイナーとRubyの関わりはまだとても薄いのが現状です。</p>
<p><span id="more-1028"></span></p>
<p>WEBデザイナーが最も関わることが多い言語は「PHP」です。著名なメールフォームやCMSののほとんどがPHPでできているし、レンタルサーバーのほぼ全てが、PHPを何の設定もなく扱えるからです。</p>
<p>私もある程度は習得していて、お仕事でカスタマイズの際に書くことも多いです。<br />
それ以外の言語で普及している（というより数年前は主流だった）のはPerlくらいです。</p>
<p>WEBデザイナーは、覚えなければならないことがやたらとあります。<br />
XHTML＋CSSはもう当然ですが、AdobeCSシリーズの操作、デザインや色彩の知識、アクセシビリティ、SEO・SEM、言語ではPHPだけでなくJavaScriptやActionScriptも書くことがあります。<br />
PDFファイルの作成、CMSの構築スキルなんかもあります。</p>
<p><strong>プログラマよりずっと勉強してるぜ！という意味では絶対ない</strong>です。<br />
ぶっちゃけ「広く浅くのなんでも屋」、「いっこうにレベルが上がらないWizardryのビショップ」です。<br />
それだけに、どうしても学習コストを考えざるを得ません。</p>
<p>「私たちは理論的なこだわりがあってPHPを選択しているわけではないです。現場で有用な技術やアプリがPerlで書かれていればPerlを勉強しますし、Rubyで書かれていればRubyを勉強するのです」</p>
<p>以前、プログラマの方に尋ねられて、そう答えたこともあります。</p>
<p>なので、私がRubyに期待しているのが<br />
「WEBデザイナーがよく扱うWEBアプリケーションで、キラーアプリが出てくれること」です。<br />
CMSだと牙城は崩せないので、オープンソース・カスタマイズフリーのフォーム、Wiki、携帯サイトの運営ツールなどでしょうか。</p>
<p>また「初心者がWEBアプリを作れる学習本」などがたくさん出てくれると嬉しいです。<br />
（プログラマの皆さんはそういう本がお好きでないようです；；）<br />
そうなったら、PHP一辺倒の市場が変わるんじゃないかと思います。実際PHPもそうやって言語的に微妙であるにも関わらず主流になったわけです。</p>
<p>もちろん、学習する側の努力も必要ですよね…もっとがんばらないと。</p>
<hr />
<p>意外と知られていないことですが、ゲーム作成ソフト「RPGツクール」シリーズの近作は、Rubyで全てのイベント処理を書くことができます。</p>
<p><a href="http://tkool.jp/products/rpgxp/index.html" class="blank">RPGツクールXP（バリュー版）</a></p>
<p><a href="http://tkool.jp/products/rpgvx/index.html" class="blank">RPGツクールVX</a></p>
<p>私は元々ツクーラーで、この段階でRubyのことを知っていたのですが、結局ツクールXP以降を購入することはありませんでした。</p>
<p>もしツクールXPを購入して、Rubyに親しんでいたら、私も今頃Rubiestくらいにはなれていたかもしれません。<br />
そう思うとくやしくてくやしくてしょうがないですwww</p>

<a href="http://twitter.com/?status=RT+%40%3A+Ruby%E3%81%A8WEB%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fl3q35h" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/08/ruby.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
