2008年06月26日
デザイナーのためのプログラミング入門(0)
どなたもコメントくださらなくてさびしいんですが、ぼちぼち書いていこうと思います。
趣旨は、プログラミングを食わず嫌いしていたり、不必要な苦手意識を持ったりしているデザイナーの方に、すこしでもプログラミングに興味を持ってもらおうというものです。なので、本当に初歩の初歩から書いていいきますし、本格的に勉強したいという方の参考には多分なりません。僕自身大して書けないですから笑
あと、前提として言語はC系の記法を前提とします。C、C++、Java、PHP.ECMAScript(JavaScript)などですね。デザイナーの方であれば、これらを抑えておけば十分だと思います。その中でも、特にJavaScriptをメインに扱おうと思います。
なぜなら、環境構築が一番簡単だからです。昔だったら、PC-9801なんかだとフロッピーディスクを挿さずに起動すればN88BASICが立ち上がりプログラムを書き始められたのですが、今プログラムを書こうとすると色々下準備が必要になる場合がほとんどです。PHPなら簡単と聞いてはじめてみたものの、Apacheのインストールで苦労してあきらめた人も少なく無いんじゃないでしょうか。
その点、JavaScriptなら環境構築の手間は一切不要です。HTMLファイルを作って、メモ帳なりで編集して、ブラウザで開くだけでOKです。
次回からは具体的に少しずつ話を進めていこうと思います。
ちなみにめちゃくちゃ重いですがこんなサイトもあります。
2008年06月20日
デザイナーのためのプログラミング入門
ってありそうであんまり無いみたいので、このblogでも定期的に書いていこうかな~と思います。
ご希望などあれば教えてください。
2008年06月19日
今日はSOY CMS説明会でした
今日は大阪でSOY CMSの説明会を行いました。
ご参加くださった皆様、誠にありがとうございました!
お忙しい中ご来場くださっているのに、機材トラブルなどお見苦しいところがございましたこと心よりお詫び申し上げます。
また定期的に説明会・勉強会は開催していければと思っております。
何卒今後ともよろしくお願い申し上げます。
2008年06月13日
研究と開発
今日、非常勤のスタッフと朝話していたんだけれど、、、
大学の情報系の研究室って、研究なのか開発なのかはっきりしていないところが多い気がします。
非理系の方は、研究も開発も似たようなもんじゃないの?と思われるかもしれませんが、この二つ、大きく違います。
ざっくり言ってしまえば、研究=真理・原理探求であり、開発=役に立つものを作る、ということです。開発であれば原理はわからなくても役に立てばそれでいい。
だから本当なら、「実用可能性の無い研究など意味が無い」ということはナンセンスで、研究は研究として価値を認めるべきことなんです。
このことについての意識が中途半端だと、成果も中途半端なものになっちゃうんですよね。
僕自身の経験から言うと、昔「人が運転するときにどういう風にして道を選ぶか」という研究をしていたことがあるのですが、そのときに交通流シミュレータの開発を行うということが付属的な目標として設定されていました。
さて、ここで人間の心理モデルの構築ということを考えた場合、研究の立場からは「人の行動の解析」が主眼になります。この研究はまだ進んでいる分野ではないため、それだけ調べていても1年や2年では終りません。また、開発の立場からは、精度の高い交通流シミュレータが手に入りさえすればいいということになります。そして、その中身はブラックボックスでもいい。もちろん、究極的にはそこの振る舞いから逆に人間の行動を推測するという事も考えられるのでしょうが、マクロの精度とミクロの精度を両方上げるには恐ろしい手間が掛かることが予想されます。さらに、計算の回数を増やし、パラメータチューニングを行わなければならないため、モデル自体は非常にシンプルなものである必要が出てきます。
そんな中、僕自身はまだ問題点に気がついていたので良かったのですが、研究室の後輩が完全に罠にはまってしまったことがあります。
シミュレータ構築のためといいながら全く実装不可能なアルゴリズムを考えている。それでいて、そのアルゴリズムが正しく人間の行動を記述している保証が無いブラックボックスになっている。
そうなってしまうと、論文を書こうにも本人も混乱をきたして全然研究が進みません。目的がはっきりしないからモチベーションも上がらない。
そのときは何とか助け舟を出して、それらしい結果を出したのですが、他の研究室の発表を見て決して珍しいケースではなっぽいと感じたのを覚えていますから、多分今でもそういうことは日々行われているのでしょう。
2008年06月12日
プログラミングの覚え方
プログラミングの覚え方を聞かれたら、JavaScriptでゲームを作ることをお薦めするようにしています。
僕ではなく、社の技術担当の役員の発案なんですが。
理由・・・環境構築が一切不要、どんな人でも興味が持ちやすいテーマ、適度な難易度
先日、MovableTypeのお話を色々お聞きしたのですが、あのタグは完全にプログラミングでしょう。
蒲生さんが書かれていらっしゃるMT4.2のRCのお話 を見ると、SixApartの方もそのあたりは意識してらっしゃるようです。多分、仕様変更の決定までには色々な議論があったんじゃないかなと思います。
SOY CMSでは、テンプレートからプログラミングの要素は極力排除しています。プログラミングが不得手な方にも使っていただきやすいように、プログラマーとデザイナーの分業が上手く行くように考えて決めた仕様です。
しかし、テンプレートにちょっとプログラミングの要素があった方が、デザイナーの方がプログラミングに触れる機会が増えて、その分理解が深まるというメリットがあるんじゃないかとも思ってしまう部分があります。(この点、京都大学大学院情報学研究科の川上准教授の不便益の研究 は面白いです)
どちらがいいかは多分永遠に答えが出ないようなことなんでしょうけれど、、、
僕自身は、中学生のころにBASICやCを趣味で触って覚えたので、大人になってから身につけるにはどうしたらいいかというのは正直よくわかりません。
ただ、何事も興味を持つきっかけに恵まれるかどうかが非常に重要なのだと思います。
2008年06月12日
Firefox3速い!!!
役員から快適だって聞いたからRC版だけど更新しちゃった。
以前Mozilla Japanの方も速くなりました!って仰ってたけどこれほどとは。
めっちゃ快適。
SOY CMSのエントリー管理画面はTinyMCEの関係でかなりもっさりしているんだけれど、サクサク動きます。
2008年06月07日
フォーラム開設
SOY CMSのフォーラムを開設しました!
http://www.soycms.org/
情報共有・問題解決に役立つようなフォーラムにしていけたらと思います。
折角オープンソースにしたのだから、僕らのコントロールの及ばないところまで盛り上がってほしいです。
2008年05月23日
SOY CMS説明会開催のお知らせ
SOY CMSの説明会を開催することとなりましたのでこちらでも告知しておきます。
日時 2008年6月19日木曜日 18:30~21:00
場所 Mebic扇町(大阪市北区南扇町6-28 水道局扇町庁舎2F)
参加費 無料
事前お申し込み 不要
対象 Web製作会社様 企業Web担当者様
基本的な機能・特徴の解説のほか、参加者様からhtmlを頂きその場でテンプレートに書き換えるなどのデモを予定しています。是非この機会にSOY CMSをご体験下さい。
2008年05月22日
プログラムの冗長性?
ここで冗長というのは、信頼性を上げるために行われる冗長化によるものだけを差すのではなくて、単純に同じ内容が二箇所以上に現れる状態のことを含めた言葉とします。
すぐに適当な表現が浮かばなかったのでそうさせてください。
システムの冗長化は信頼性向上に役に立ちますが、そのシステム内部にも冗長化の可能性があります。具体的には、同じ処理に関する設定が複数箇所に書かれているという状態です。それに関してはどういったメリット・デメリットがあるでしょうか。
メリットとしては、複雑な動作を記述しやすいというものがあります。
一方、デメリットとしてはひとつの動作について書かなければいけないソースが増えるという問題があります。特に、バグフィックスや仕様変更の際に書き換えなければならない場所が増えるというのは書き換え忘れを誘発します。
なので、基本的に冗長性は極力排除して、「同じ内容は一箇所にまとめて書くことができる」「複雑な動作も実現できる」「後からの仕様変更にも柔軟に対応できる」設計を心がけるべきだと思っています。
多分、ここまでは一般的に言われていることなんじゃないでしょうか。
その上で、さらに気になるのが「ドキュメント」です。仕様書の作成は開発の色々な場面で重要ですが、その「冗長性」に関してはあまり議論されているのを聞きません。同じシステムに関するドキュメントが複数存在し、それぞれ記述に重複する部分がある。非常に当たり前の、普通にしていたら必ずそうなってしまう状況なんですが、本当にそれでいいのでしょうか。確かに開発の各段階で、ドキュメントの役割は変わってきます。対象とする読者?も変わってきます。だから、書き方はそれぞれに適したようにしないといけない。でも、「内容そのもの」はどこかで一元管理したほうがいい。そうでないと、ドキュメントの修正忘れや、本来参照すべきではないドキュメントを元にメンテナンスや拡張が行われて、バグを誘発してしまいます。
「ポカヨケ」という言葉は聞かれた事があるかと思います。工作機械の設計では、機械に手を挟まれる事故を防ぐために、両手を使わないと押せないような二箇所に配置されたボタンを同時に押さないと起動しないような構造にしたりします。注意を促すのではなく、ぼんやりとしていてもミスが起こらない仕組みを作らないといけない。IT業界では、まだその意識の浸透が不十分なんじゃないかと思います。
2008年04月24日
インターネット規制法案
自民党も民主党も、この国を滅ぼす気か?
インターネット規制なんてしたら、言論の自由の大きな侵害になるのはもちろん、人材育成という点でも極めて深刻な状況になるのは明らか。
今は子供はいないけど、もしいたとしたらフィルタリングソフトは全て即解除すると思う。
理由ははっきりしていて、子供の成長に良くないから。
いろんな情報に触ってそれらの扱いに慣れないとリテラシーは育まれない。
あと、有害(かもしれない)情報ほど面白いというのは、誰もが思うところだろう。そういったものを規制してしまうと、インターネットがつまらないものになってしまう。それは、情報技術に興味を持つ子供が減ることにもつながるだろう。
今の時代、情報技術に強いかどうかは、どんな仕事をするにしても極めて重要だ。なので、子供の興味の大小はそのまま将来の国力に反映されていく。
そもそも、フィルタリングの必要性自体疑わしい気がしてならない。フィルタを解除するかどうかという点については、親の方針に委ねられる。どういった親がフィルタリングを積極的に行うかと考えると、子供を信用しない親、ということになる。つまり、子育てに熱心でない親。子供の間での格差も大きく広がることだろう。
事業者への規制については、海外にサーバを(必要なら法人も)移転してしまえば済むのだろうけど、税収は海外に流出することになる。本当にそれでいいのだろうか。。。


