kiyokaのブログアーカイブ

Archive of old blog posts

「創作心理」カテゴリの記事

modeless SKK

modeless SKKのプロトタイプの作成中。Sekka:石火(仮名)

今創りたいもの(2) 『modeless SKK』

以前に同様のタイトルで作りたいものをリストアップした。 (2010-05-08創作心理* 今作りたいもの) [Nendo]の開発を進めながら、ここらで一旦アプリケーションを書いてみるというステージに戻るのも悪くないかなと思ってどんなものがいいか考えてみた。

2010年現在、これから個人で始めるプロジェクトについて思ったこと

2010年にもなると個人で作るべきWebアプリケーションはあまり無い。 2008年位までは、時間さえ許せば個人がプライベートで、アイデア一発モノのWebアプリケーションを作れた。というよりも、まだ試されていなくて簡単に実装できるアイデアが沢山あった。 例えば、新しいWikiエンジンとかblogエンジンとかCMSとかの汎用ツールやWebフレームワークが沢山生み出された。どれも発展途上で試行錯誤のしがいがあった。 2010年現在の状況を見てみると、なかなか普通に思いつくアイデアはほとんど試されているんじゃないかなー。世の中にはWebサイトが溢れ返っている。Webフレームワークもある程度定番に収束しつつある。 おまけにGoogle App Engineなどのように無料で使えるクラウドサービスがあるので、サイトをオープンするための費用面での敷居も下がり続けている。 TechCrunch Japanなんかを時々チェックしていると、ますますそういう思いが強くなっていく。毎日似たようなサービスが雨後の竹の子のように生まれ続けている。

今作りたいもの

今日時点で作りたいものをリストアップしてみる。 こういう心境は数ヶ月もすると簡単に変化する。 例えば、もろコンフリクトするライバルプロジェクトや、やる気を無くすほど良く出来たサービスが出てくるので、本当に今日時点でのスナップショット。

OSSのプレゼン資料はブログ記事を整理するだけでできる

私の場合、日々感じた事、それによって、出てきた疑問や問題を解決する過程の記録としてもブログを使っています。 『何が問題か?解決方法は?そのポリシーは?』という感じで日々メモしているため、作ったソフトウェアのプレゼン資料を作ろうと思い立ったら、そこからは案外短時間で完成まで持って行けます。 そうすると、プレゼン資料はブログ記事の寄せ集めなので、ブログを読んでいる人からすると繰り返し同じことを聞かされていることになるのでは?という心配もごもっともです。 しかし、幸か不幸か実際のプレゼン当日のオーディエンスはブログを読んでいる人とオーバーラップしないので問題ありません。 オープンソース開発をやっている人は、ブログで自分の動機や問題点と解決策を恥ずかしがらずに書いておく事をおすすめします。 ほとんどの記事が手前味噌に成りがちで、なんと厚顔なと思われる事を書く必要があるので抵抗がある人もいるかも知れませんが、『そんなに大量の人が読んでいるわけではない』と思えば書けるものです。 ブログは文字どおり日々のログを、プレゼン資料で振返り・まとめをという位置付けです。

イノベーション=エンジニアの士気

本 『フラット化する世界(下)』を読む フラット化する世界(下) 著者: トーマス・フリードマン Amazonで見る フラット化する世界(上) に続いて下巻 Amazonで見る も読み終わりました。上巻から時間が空いてしまいました。図書館の予約待ちは長いです。 Amazonで見る さて、下巻のキーワードは『無敵の民』ですかね。無敵の民とは、簡単に言うと『かけがえの無い人材』と説明されています。フラットな世界では企業と個人を問わず、誰もが同じツールを使って同程度の生産性の仕事をこなすことができます。そして、その環境がアウトソーシングに拍車をかけます。フラットな世界には『代替可能な仕事と代替不可能な仕事の二つ』に収斂していきます。そこで、先進国にする私達はどうすればいいのか。当然、答えは代替不可能な仕事をする能力を身に付けるということになります。平均的に優秀な技術者ではインド人技術者に仕事を取られてしまいます。要するに代替可能なわけです。無敵の民になるためには自分の得意な事を見つけてスキルを磨き続けるしかありません。 梅田さんのエントリの様に自信を持って好きな道に進み続けるしか無いのだと思います。『神は自ら助ける者を助ける』です。大変な世界がやってきます。フラットな世界で生きることを楽しめる様になりたいものです。

『負のデザイン』と『Getting Real』

Vista とか Office 2007とか、新しくリリースされるソフトウェアはどんどんリッチになっていきますね。 一方で、ユーザとしては複雑になる一方のソフトウェアにウンザリしている人もいるでしょう。 そんな中、いろんな人が逆の考えかたで差別化しようと挑戦しています。 37singalがそんな哲学を持っているのは有名ですが、reddit.comで『Getting Realの日本語訳』が有るのを知りました。 『負のデザイン』にも通じるこの考えかた。 物事をシンプルに保つことで競争に勝つという考えかたです。 世の中の流れをよそに、トップスピードで逆走してみましょう。 また違った風景が見える事でしょう。 シンプルを実践しているサービス、プロダクトを紹介しておきましょう。 言わずと知れた37signalsの製品群 UIEngineのデザイン・プリンシプル Google そして手前味噌ながら、Predocです。 私は今もバリバリ逆走中です。一足お先に行ってます。

今年の抱負

今年もいろんなモノを作っていきたいと思います。 まずは、Schemeの腕をもっと上げる事。そしてシンプルで強力なソフトウェアやサービスを作り出して行きたいです。 これまではモノを作る事に集中するあまりエレガントなコードを書く為のスキルアップがおろそかになっていたと思います。 デザインは『負のデザイン』を指向してシンプルに、実装は力のある言語でエレガントに、が目標です。 ところで、私は毎年1つ新しい言語を習得するということをしてきたのですが、今年はまだまだSchemeで行きます。 今年からSchemeのマクロをどんどん使ってDSL(Domain Specific Language)をデザインする練習をしていく方向に切りかえます。 他の言語で新しい概念を学習するよりも学習効率が良い気がしているからです。 そもそも、新しい言語を習得する目的は新しい概念を習得する事にあるのですから、わざわざ遠まわりをする時間がもったいと感じています。 (Lisperのみなさん、この考えかたは極端過ぎますか? そんなことないですよね。) 今年もオープンソースソフトウェアの活動を通じてスキルアップをしていければと思っています。

お金で買えない物『好奇心』について

江島さんのブログエントリを読んで、再度『好奇心』の価値について考えます。

創作の秋

私には、創作の季節というのがあるようです。 毎年、10月から年末にかけて、作るべきものが一つの形を成してきます。 これが不思議なことに毎年この季節なのです。 食欲の秋とか読書の秋とかありますが、私の場合は創作の秋のようです。 思えば、Sumibi.orgも R@eply.orgも10月位から開発スタートしています。 次に作るソフトウェアのアイデアは有るんですが、まだ完全なイメージになってないので、もうちょっと寝かしてから取りかかります。

オープンソース開発をする理由

昨日吉岡さんと梅田さんの対談を見たことがきっかけで書いています。 オープンソース開発者が世界中になぜ200万人程もいるらいしいですね。 私自身もオープンソース開発者といっても問題ないと思いますが、私自身なぜオープンソースソフトウェアを開発しているのか明確に一言で説明することはできません。 もちろんそれで生計を立てているわけではありませんので、それが理由ではありません。 オープンソース開発者は世界中に200万人もいるらしいのですが、動機は個人個人全く異なると思います。 オープンソース開発者の中には、すでに存在するソフトウェアプロジェクトに参加して、バグフィックスや機能アップを行う人もいれば、新しいアイデアを試す目的でソフトウェアプロジェクトを起こす人もいると思います。 私の場合は後者です。アイデアを試す為にコードを書かずにはいられない質の様です。 オープンソース開発者になろうと思ってなっているわけではありません。 そして、たまたまその成果物をオープンソースという手段でもって発信するのが一番自分にとってメリットが大きいのです。(フィードバックを得られるなど) 発信するためにコードを書くわけではなく、いろいろコードを書いている間に発信すべき物が出来てしまうというという感じです。 もちろん、アイデアをちょっと試してみた結果、アイデアに価値が無いことが判明したり、実現不可能なことが判明したりしてボツになった物も沢山あります。 本当は仕事で毎日使わせてもらっているソフトウェアに貢献したいのですが、それはなかなか難しいです。その辺は次の機会に書きたいと思います。

プログラム・デザイナー宣言

小野和俊のブログ:続・プログラム・デザイナー宣言 高林さんのUNIXにみる世代間の断絶にならって職人プログラマー/プログラム・ デザイナー/UIデザイン・プログラマーを表にすると次のようにな る。…(略)…文系と理系と同じように、プログラマーにだって、一言でプロ グラマーとまとめるべきでない、それぞれ異なる指向性がある。

No code No life.

コードを書かずして生きられないのです。しかし、ただがむしゃらに思いついたコードを書き散らすには人生は短すぎます。アイデアも手段も取捨選択したいものです。 日々、次から次へと実装せずにはいられないアイデアが降って湧いてきます。インターネット上のアルファギークと呼ばれる人達には私と同じ症状に悩まされている人が沢山いらっしゃるようです。 多くのコードの達人系アルファギークの面々はプログラミング言語処理系を実装したりしながらも、同時にシブいアプリケーションも作ったりされています。こういう人達は別として(いやマジで)人生は有限なので、どんな優れたアイデアや楽しそうなことも取捨選択が必要となります。 私もいろんなアイデアに取り付かれやすい割に、そんなにすばやく実装できるほうではありません。私達にはこれをエレガントにさらっと躱す術が必要になります。そこで私が心がけているものは次の様なことです。

やさしい機能仕様 - なぜわざわざ書く必要があるのか?

有名なJoel on Softwareの中の やさしい機能仕様 - なぜわざわざ書く必要があるのか?を読みました。 これには同意します。 Sumibi.orgもMail配信型WebリーダーR@eply.orgも機能仕様書をじっくり書いてからプログラムを実装しはじめました。 機能仕様を書くことは重要だと思います。 Mail配信型WebリーダーR@eply.orgの場合は、機能仕様を書き始める前は漠然と、iアプリとしてテキストブラウザを作る予定でした。 まず機能仕様を書いてみて、僕のほしい機能はiアプリではできそうもないということが早い段階でわかりました。 特に、RSSリーダーとして使うためコンテンツをPUSH型にしたかったのと大量のタブ(しかも未読機能付き)をサポートしたかったのでiアプリで作るのは大変そうだということが明らかになりました。 その結果思いついた実装手段がHTMLメールです。(iモードメールの世界では『デコメール』と呼ばれています。) もし、iアプリとして実装していたら途中で疲れ果ててしまってサービス開始できなかったかも知れません。 やっぱり実装方法は抜きにして一度サービスを文章化してみるべきです。 これは個人で余暇を費やしてプログラムを作る場合、なおさらです。 皆さんも、趣味とはいえど、むしろ趣味だからこそ貴重な時間を有効に活用するために、作る前に機能仕様を書いてみてはいかがでしょうか。

良い問題設定を

生産的になろうを読んで共感しました。思っていることを書いてみます。 この短い人生で自分が今取り組むべき問題はなにか。 常に何か独創的なものを作りたいと思っている人に付いてまわる命題です。 しかし残念ながら、その人がその時期に思いつくアイデアと実現できる力というのはぴったり合致しないものです。 すばらしいアイデアだけれども今の自分の技術力や経験が不足していて完遂しない事が明白な場合は、もっと簡単な問題から取り組むべきだと思っています。だからといって、手ごろだからという理由でそれを選択するのも違うと思います。 何事も経験が伴っていないとちゃんとしたものはできないと思います。いくらアイデアが良くても。 インターネット上に新しいサービスが出現した時に、『自分もこれ思いついてたんだけどなー』と悔しがる人がいますが、実際に作るという決断をして、時間をかけて実際に形にするのは難しいものです。『もし、そう思うのなら自分で作ればよかったのに』と言いたい。やりはじめるとすぐに判ります。 その人は作らなかった、もしくは作れなかったのです。作らなかった理由としては、実際にはそれほど重要では無かったか、作るには技術力(もしくは時間や環境)が不足していたということになります。『お金があればなあ』というのもこれに含まれます。 もし、このようなシチュエーションに出会った時のために、僕のやりかたを書いてみます。 僕の場合は、良いアイデアを思いついた場合、ちょっと自分の技術力が足りなさそうなものでも、とりあえずtryしてみます。 (どんなものを選択するかという僕なりの判断基準は『 [kiyoka.2006_02_06] 創作心理創作にいたるまのでステップ(2) 』に書きました。) そして実際にそのアイデアの一番重要な部分を1日ででっち上げてみます。 コア部分があまりに自分には歯が立たない問題であったり、意外と面白くないものであったりした場合はそこで中止となります。 プロトタイプを使ってみると『案外面白くないではないか』というモノも有りますので。 実は、現在開発中のWebリーダーでもコア部分を作ってみて、イケル!ということがわかったのでどんどん進めています。 2年前だと自分の技術力は完全に不足していたでしょう。 良い問題設定とはタイミングという要素もからんできます。難しいですね。

一人プロジェクトと『鳥の目』

僕も江島さんの記事に激しく同意します。ちょうど同じことを考えていたところです。 僕もクリエイター受難の時代が終わって状況が変わってきたと思います。

創作にいたるまのでステップ(2)

前回、新しいものを作る場合、いかに自分の心理状態をコントロールするかが重要だと書きました。 実は、自分の心理状態をコントロールする前にもっと大事なことがあります。それは『企画』や『アイデア』です。 特に仕事ではなく趣味として自分が楽しみながら続けていくために、どんなアイデアを採用すればよいかを書きます。 個人的には次の点を心がけるとうまくいくと思います。 ※重要と思うものから順に並べています。 できあがったものが、ありきたりでないこと(新規性・驚き) 日常的に自分が使うもの 作る過程が楽しいこと 作るのに壮大な時間がかからないこと 昔は、ついつい 1. を追いかける余り、 4. に反するアイデアのものを頑張って作ってました。よく自分のスキルを超えるモノを作ろうとして失敗していました。 オープンソースソフトウェアが沢山存在する昨今、自分で作らないといけないものはかなり少なくなってきている気がするのでますます壮大な時間を費やす必要は薄れてきています。 それよりも既存のオープンソースソフトウェアを組みあわせて少ない時間で驚きと楽しさのあるものを作った方が何倍も有意義です。 Sumibi.orgは一応これらの条件を満たしていると思います。 ちなみに、今作っている『携帯向けブラウザ』もこれらの条件を満たしています。(但し、順番は 2. 1. 3. 4. かな?) 問題は、作るスピードよりもアイデアが生れるスピードのほうが早いということですかね。^_^;

創作にいたるまのでステップ(1)

僕にはオープンソースソフトウェアを作るという趣味があります。 作るといっても、既にあるオープンソースプロジェクトに参加するというよりも、自分で一から立ち上げることに楽しみを感じる性質のようです。 いつも微妙なものを作っては回の人たちを困惑させてしまうというパターンが定着しつつあります。 ^_^ さて、新しくものを作る(創る)場合、いかに自分の心理状態をコントロールするかというのが勝負になります。 まず、自分の貴重な時間を使ってでもやる意味があるかというのが最初の関門です。 そして、その最初の関門をクリアしたアイデアだけが採用となります。 僕の場合、アイデアの評価基準としては新規性というのがかなりの比重を占めます。誰もやっていないことをやるのが基本です。基本的には誰もが願っていることだと思います。 逆にこれがあるから既存のプロジェクトに参加するのはちょっとものたりない気がするのかも知れません。 もし、その第一関門を突破したら次に実験段階に入るのですがここでも、かなりのアイデアが脱落していきます。 一人ではとてもスケールが壮大過ぎて作れないもの等もこの段階で中止となります。 なかなかここを通過するアイデアは少ないのですが、そこを通過すれば本格的な創作開始となります。 『あんた、それがその何かい?Sumibi.orgというやつかい!』というツッコミは無しでおねがいします。 また続きを書きます。

18件の記事があります。