Promotionにご来訪頂き有難うございます。Webmasterの田形です。こちらに自己紹介を掲載しています(表示されたページが英語表記の場合は、言語選択で日本語に切り換え可能です)。私は好きなプログラミングを通じ、可能であれば、個人として社会に関わり続けることを希望しています。そこで、開発して来たswaにその役割の一部を担わせられないかと思い、色々と考えを巡らした結果、以下の点を統合した事業化(と言っても個人事業です)ができないかと考えるようになりました。開発したソフトウェアを無償で自由に広く利用して貰いたい。利用に係わる労力(使い方の問い合わせなど)に無償で対応はできない。利用サイトへのswa適用には、サイトの特性と、ソフトウェアの特性を考慮したカスタマイズが必要である(後述の「swaの持つ技術的な側面」を参照)。経済活動として社会に提供できる資源(労力など)には、個人としては物理的に限界があるこのサイトを設置した動機は上に述べた事の帰結です。以下には、その検討した内容を簡単に記しています。当サイト設置の時点で、デモンストレーションしているのは、私の開発したソフトウェアの一部です。Accessories」と名付けたフリーソフトウェアをデモンストレーションしています。swaカスタムもお知らせしています。例えて表現すれば私の求職票サイトでもあります。ページ」をご覧下さい。ライセンスを与えたフリーソフトウェアですから、自由に利用可能です。私のswaカスタムでなく、無償で利用する事が可能です。申し上げるまでの事ではないのかも知れませんが、敢えて付言すれば、私にはソフトウェアを販売する意図があるわけではありません。有料サービスと称するのは、利用に係わる諸作業をお任せ頂ければ、開発者の立場から、出来るだけ利用環境に沿った最適化を施す事が可能だと考え、そして、その手間賃をご負担頂こうと考えています。「ある喫茶店」のウェブサイトにカレンダー機能を設置するとしましょう。そのカレンダーに二十四節気や雑節を明示するかどうか、また、定休日が何曜日なのかはその喫茶店の事情ですから、事前には分かりません。した事情を除いてカレンダー機能は実装してあります。カレンダー機能の設置に際して、その喫茶店固有の事情を反映する必要があります。ニュース機能を「あるネット販売のサイト」に設置する事を考えます。サイトの特売など営業に合わせて表示するニュースを変える必要があるでしょう。週毎にニュースを変えるのか、毎日変えるのか、など、その販売サイトの事情を、喫茶店の場合と同様に、設置の際して反映する作業が必要です。言い方を変えると、ここでデモンストレーションしているソフトウェアは、どこでも使えるように一般化してあります。従って、特定用途に適用するには、特定のカスタマイズ作業が必要になります。その利用環境固有のカスタマイズ作業を「swaカスタム」と考えています。ここでデモンストレーションしているソフトウェアの仕組みが理解できる方であれば、このサービスを利用せずとも特定サイトで費用を掛けずに(誰がカスタマイズするにしてもそれなりの手間が必要ですが)利用する事は可能です。仮に、私にお任せ頂いたカスタマイズ部分が、類似の他のウェブサイトで利用可能であるとしたなら、それはご自由に他のサイトに適用頂けます。その他サイトへの適用で私の作業が必要でないのなら、私への手間賃は不要になります。swaの導入したページに付加価値を期待できるなら、それなりの需要も期待できるでしょう。した場合も私がロイヤルティを請求するような事もあません。任意機能(例えばカレンダー)実装面での技術的な観点ですが、ここでのソフトウェアは、再利用可能な構造を持たせられるよう設計製造してあります。多様な用途での利用が実現できるよう、オブジェクト指向プログラミングの手法を適用し単機能部品化で実装してあります。部品は極めて小さなものから、中程度のものと様々ですが、JavaScriptソースコードの断片としてライブラリ管理しています。それを必要に応じて(例えばカレンダー機能を構築するケースに)収集し一つの機能単位にまとめています。複数の機能を利用する場合(例えばカレンダーとニュース)には、それらが利用する部品を収集し、それらの集合体として機能単位にまとめています。する事で、共通なソースコードを重複して保持する必要がなくなり、ネットワーク資源(主にネットワーク負荷)の有効利用を図っています。JavaScriptのオブジェクト指向プログラミングをご存知の方には自明の事と思いますが、HTMLに組み込み動作する点でいえばオブジェクト指向プログラミングは動作環境との親和性が高いものの、ライブラリ管理する上では悩ましい技術です。これが私が採った方式ではカスタマイズ作業がどうしても必要である事のひとつ根拠の根拠のです。冠している通り、実装にひと工夫を加えた独自の機能ですが、その分カスタマイズには技術的な知識を元にした特別の配慮が必要な場合があります。利用している技術は以下の通りです。