アーカイブ[2008年7月]

色々対応してて思うこと

誠実な対応をしてくれるお客様は、本当に神様だと思う。そういうお客様のためだったら、できる限りのことはしようという気持ちになる。

 

でも、一定数そうでないお客様もいらっしゃる。

 

そういうところに大しても同じ対応をしていたのでは、仲良くしてくださっているお客様に対しても申し訳が立たない。

 

なぜかというと、そういうお客様への対応にかかったコストはどこかで回収しないといけなくなり、もし回収できなかったら会社が傾いてしまうから。

 

どちらにしろ、お世話になっているお客様、大切にしたいお客様に迷惑がかかってしまう。

 

それは絶対に避けたい。

 

だから、ややっこしいことを仰るお客様に対しては依頼をお断りすることも含めてそれなりの対応をせざるを得ないのだけれど、悪気があってやっているのではなくて、情報技術に詳しくないからそうなってしまっているケースもあるから難しい。

 

そういう場合、問題点を説明する責任はどうしても詳しい側にあると思うんだよなあ。

 

ううむ。。。

週末が詰まると曜日感覚狂いません?

先週末出張で東京だったせいか、今週は曜日の感覚がおかしくなってしまっています。

 

仕事の約束なら**日って決めるので問題は無いんですが、毎週木曜日の予定をすっかり今日が水曜日だと思っていて忘れてしまいました。

 

ここしばらくすごく忙しくなってきているのですが、スケジュール管理の方法がそれについていっていないのかも。反省して改善します。。。

相見積(2)

昨日書いた内容についてちょっと補足しておきます。

 

相見積を行うことの問題点は、

・そもそもそれが比較可能なものなのか、発注者側に判断の能力が無い場合があること。

・見積りのコストは最終的には発注者が持つことになること。

です。何も、見積りを取るなんてけしからん、という話じゃないんです。

 

見積りの最大の目的はコスト感の把握ということになると思いますが、それは取引がある関係ならある程度わかるものです。それなのに細かな案件でも毎回数社から見積りを取るという行為は結局発注者側にとっても大きな負担になるんです。

 

また、とにかく値切ることありきの見積なら、受注者側も失注となるリスクを加味した値段しか出せないわけですから、結局安くはつきません。それでも安い値段で引き受ける会社というのはそれなりの理由があるところでしょうから、信頼していいかどうかは怪しいと思います。

 

そういったことを理解したうえで、要望に対する解決策のセカンドオピニオン、サードオピニオンとして何社かから意見を聞くというのは、健全な競争、業界の水準向上につながるので悪いことではないと思っています。

相見積

システムの開発を発注するときに相見積を取る方は、美容院に行くのに見積を取るんだろうか。

安いところにいってヘンな頭を1ヶ月するくらいなら、高くても腕の良いところいくんじゃないかなあ。相見積とって腕のいい人に機嫌損ねられたら、そこから先どうするの?

そりゃ、価格は大事だし安くていいところ見つかればそれに越したことは無いんだけれど、根本的に比較不可能なものを比較したって仕方が無い。

 

ただシステムの場合難しいのは、仕様書どおりに動くプログラムでもその品質はピンキリなんだということが、技術に詳しくない方にはなかなかわかっていただけないということなんだよなあ。

デザイナーのためのプログラミング入門(番外編1)

前回から数値を計算するのをプログラムの例に挙げてきたので、ここでちょっと「プログラムらしさ」を味わってもらうためにちょっと込み入ったことを説明します。デザインには関係ないので、興味ない人は無視してください。

function execute(){

a=Math.pow(2,64);

alert(a);

}

前回までと同様、関数execute(){}の中を上記のように書き換えて実行してみてください。Math.powというのはJavaScriptで最初から用意されている関数(便利な処理をひとまとめにしたもの)で、Math.pow(x,y)と書くとxのy乗を返します。つまりここでは2の64乗ですね。前回まででやった書き方だと

function execute(){


var a=1;

for(i=1;i<65;i++){

a = a * 2;

}

alert(a);

}

とかくのと基本的に一緒です。

さて、実行するといくつになりますか?

 

もしよければ答をコメントしてください。

疲れがとれない。。。

先週末は金曜~日曜出張で週末の休みが無かったため、いつもだったらお客さん対応の無い土日に進めているような仕事がたまってしまいちょっと大変。

なので出張の疲れもなかなか取れません。。。

まあ、ヒマなのよりいいんですけどね笑

 

WebSig会議を終えて

一昨日はWebSig会議でした。
お声掛けいただいた蒲生様はじめモデレータの皆様、誠にありがとうございました。

20分の時間の中で十分にSOYCMSのことをお伝えできたか自信がありませんが、 懇親会等でも一度使ってくださるとのお話をいくつか頂戴し、光栄に思っております。

junnamaさんに後でご指摘いただいたのですが、ビジネスモデルとビジョンの説明が不十分だったと思いますので、ここで簡単ですが補足させていただきます(さすが、痛いところを突かれてあせりました笑)。

まずビジネスモデルですが、現在はカスタマイズとサポートをお引き受けしております。将来的には、制作会社様や広告代理店様へのOEM供給、また、(技術力はあるが手が足りない場合も含めて)開発力が不足しているが 企画力のある会社様への(CMSに限らない)各種サービスへの技術エンジン供給を事業化していく予定です。

制作会社様にとっては、サイト制作・管理の省力化によるコスト削減の他、他社との差別化を図るきっかけにもしていただけると考えています。 パートナー企業様も募集しておりますので、ご興味をお持ちいただけますならぜひお問合せ下さい。

ビジョンについては、「わかりやすいシステムの提案」と「設計・開発手法の提案」を挙げさせていただきましたが、よりシンプルなものとして「世界中の静的HTMLサイトをCMS化する」ということを考えています。SOY CMSだと導入のハードルが非常に低いので、それが可能になると思っています。


しかし昨夜遅く帰京して今朝は7時から仕事してるからしんどい。。。

デザイナーのためのプログラミング入門(4)

amachangとかぶったwww

 

まあスタンスが違うので良しとしましょう。

僕はややこしいこと考えるよりもとにかく色々書いて遊ぶことができれば最初はそれでいいと思います。

用語覚えたりは楽しくなってからでいいやん。

***.htmlというファイルを作って、テキストエディタで開いて、保存して、ブラウザで開く。その後はテキストエディタで書き換え⇒ブラウザでリロード(ボタンでもF5でもOK)。という流れはwebデザイナーの方なら問題ないですよね。

前に書いたexecute(){}のかもめ括弧(この呼び方、あまり賛同を受けないのですがどうでしょう?高校時代の恩師が言っていたのを気に入って今でも使っています)の中をどんどん書き換えていってください。

 

execute(){

a=1+2+3+4+5+6+7+8+9+10;

alert(a);

}

としてみてください。

ちゃんと1から10までの合計が出ますよね?

 

これをもうちょっとプログラムっぽく書くとこうなります。

execute(){

var a=0;

for(i=1;i<11;i++){

a = a + i;

}

alert(a);

}

これは、まずaという変数(情報を入れる箱)を用意して、0という値を入れます。

for(i=1;i<11;i++){}というのは、まず最初iに1を入れて、その次の条件"i<11"を満たすまで{}内の処理を行うたびに"i++"という処理を行うということを繰り返す、ということです。i++はiに1を足すということで、ひとまずは"i=i+1"と同じだと思ってください。そして、{}のなかで変数iは、()内で書いた内容の値をとります。つまり、最初は1で、{}の処理が一回終った後(つまり2周目)はi++が実行されて2になります。三周目は3で、10周終ればその次はi<11の条件に弾かれますから処理が終了します。

なのでここでは

(((((((((a + 1周目のi) + 2周目のi) + 3周目のi) + ・・・ )+10周目のi

つまり、

(((((((((0+1)+2)+3)+ ・・・ )+10

が行われることになります。

史的イエス

最近、史的イエスの本をちょくちょく読んでます。

 

大阪~京都の往復が多く、その間は歴史の本の読書の時間に当てているのですが(昔は仕事してたけどあんまり集中できないので)、この春ごろから古代史が自分の中の流行です。

 

で、史的イエスについてですが、イエスが生きた時代がどんなのだったのか、イエスがどんな人生を送ったのかは全然知りませんでした。昔から聖書はキリスト教徒でもないくせに割と読んでいたので、キリスト教とイエス本人には大きな隔たりがあるということは大きな驚きでした。

 

まだ荒井献「イエスとその時代」と田川建三「イエスという男」というベタな二冊しか読んでいないので、もうちょっと色々な著者の本を読んでみたいところです。

 

ところで何でオタクって聖書(それも外典が特に)好きなんでしょうね。高校のとき、なぜか皆(もちろん非クリスチャン)エノク書とか読んでいたのを思い出します。

デザイナーのためのプログラミング入門(3)

さて、三回目です。

 

前回、関数を実行、といきなり書きはじめましたが、関数とは何か、というお話をしていませんでしたね。

 

色々説明の仕方はあると思うのですが、一連の処理をまとめたもの、というくらいに考えてください。

 

function execute(){

処理1;

処理2;

処理3;

}

なら、関数execute()を実行すると上から順に処理1、処理2、処理3が実行されます。このとき、処理1や処理2に処理を終了する、という内容が含まれているときは、そこから先は実行されません。

 

詳しい説明は後々行いますので、今はこの程度にしておきます。

 

さて、第一回で書いたHTMLの中の、関数execute()の内容(「{}」に囲まれた部分)を書き換えていきましょう。ボタンを押せば必ずexecute()が実行されるので、ここに処理をどんどん書いていくだけでOKです。

 

function execute(){

a = 1 ;
b = 1 ;


if(a==b){

alert("いっしょ");

}else{

alert("ちがうよ");

}

}

これを実行してみてください、”いっしょ”と表示されると思います。それが確認できたら、a=1、b=2と書き換えてみてください。どうでしょう?

これが条件分岐の書き方です。

 

#ちょっと内容簡単すぎます?

10年ぶりくらいに恩師にお会いしてきた

昨日は10年ぶりくらいに小学校の恩師にお会いしました。小学校に入って一番最初に担任をしていただいた方で、先生のお世話になっていなかったら今の自分は無いんじゃないかなというくらいに今でも非常に感謝しています。

数年前から近所の大学で教授をしてらっしゃるということはお聞きしていて、一度挨拶にお伺いしたいなと思いながら中々機会を見つけられないでいたのですが、思い切ってご連絡差し上げてお邪魔してきました。お忙しい中ありがとうございました。

弊社では今、農場日記を主として情報発信事業にも取り組んでいるということもあり、自然教育を専門としていらっしゃる先生のお話は非常に面白く、つい長々とお話をお聞かせいただいただけでなく夕食までご馳走になってしまいました。

デザイナーのためのプログラミング入門(2)

第一回で書いたファイルの説明を簡単にですがしておきます。

 

<input type="button" onclick="execute()" value="実行" />

 

のボタンを押すことで、JavaScriptの関数execute()が実行されるというだけなんですが、これで

 

function execute(){
alert("ほげほげ");
}

 

の{}の中を自由に書き換えて保存、ブラウザで開いて(リロードして)ボタンを押すことで実行、という環境が整います。

 

さて、折角なのでもうちょっと話を進めましょう。

 

プログラムとして書かなければならないものは、大きくわけて二つあります。

 

・実行される命令

alert("ほげほげ"); ・・・”ほげほげ”という文字列を表示しろ!

a = a + 1;      ・・・aという変数に、a + 1 という値を入れろ!

 

・どんなときに命令が実行されるか決める構文

if ( a == b){ alert("ほげほげ"); } ・・・a==bのときだけ、alert("ほげほげ");を実行する。

for(i=0;i<10;i++){ alert("ほげほげ"); } ・・・iが0から9まで1ずつ増える間、alert("ほげほげ");を実行する。

 

基本的にこれだけです。変数の型とか、本当は色々知っておかないといけないことがあるんですが、そんなのは色々書きながら覚えていけば十分です。まずはなんでもいいから動くもの書けないと楽しくならないですから。(楽しくなりさえすれば細かな知識は後から勝手についてきます)

 

先に書いた例について、プログラミングを全く知らない人は”a = a + 1 ”という書き方に戸惑うんじゃないかと思うので、その点補足しておきます。

JavaScriptやC、C++、Java、PHP等の言語においては これは数学で扱うような数式ではなく、右辺の中身を左辺に突っ込め!という命令です。

なので、aという変数にもともと3という値が入っていて、

a = a + 1;

という命令を実行した場合には変数aの中身は4になります。

a に、 3(もともとのaの中身) + 1 という値を代入するからです。

 

それに対して、if文のところで書いた"=="は右辺と左辺の中身が一致するか調べるための記号です。if(a == b){・・・}と書くと、{・・・}の中身は()の中に書いてある内容が正しいときにだけ実行されます。この場合、変数aの値と変数bの値が一致すれば正しいことになりますし、そうでなければ嘘が書いてあることになり、{・・・}の中身は実行されません。

人材採用について

今、弊社では一緒にがんばってくれるメンバー、特にプログラマーを絶賛募集中です。

 

正社員募集の他、非常勤の学生さんも募集していて、昨日も今日もその面接をしました。

 

http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html

 

皆さんこんな記事を読まれたことありますか?プログラマーとして求人に応募してくる人200人中199人は、一切コードが書けない。そういう人を振り落とすにはFizzBuzzゲーム(要するに世界のナベアツ、数字をカウントしていって、一定の条件のときだけfizzとかbuzzとか表示する)のような簡単なコードを書かせてみるのがいい、という内容です。

 

最初読んだときは、まさか!という感じだったのですが、実際に人材採用をしてみて、経験者ということで採用したがあまりコードが書けないで困った、ということを繰り返し、今はこの記事の通りに(FizzBuzzとは限りませんが)面接でコードを書いてもらうようにしています。

 

実際、簡単な内容でもコードを書いてもらうと非常によくその人のレベルがわかります。普段からコードを書いている人。変な癖がついている人。基礎は身についているけれど経験が足りない人。根本的に書けない人。

 

弊社の場合、コードが書けなければすぐに不採用とはしていません。というのも、センスのいい人なら最低限戦力になるプログラミングスキルを身につけるのなんてそう長い時間はかからないと思うからです。コードを書いてもらうのは純粋に力量を見るためで、スキルが低ければ修行から入るし、スキルが高ければ即戦力として採用する。ただそれだけのことです。伸びしろがあればそれでいい。

 

それより重要なのがひととなりです。上司、取引先にかわいがってもらえないと成長の機会という面で大きく損をします。

 

技術に限っていえば、自分の思っている自分のスキルと客観的な本当のスキルの乖離が激しいと、印象がよくありません。自信のあることは自信を持って。できないことはできないと謙虚に。ただ、「今はできないけど、すぐにできるようになる」という自信は全く持って結構だと思います。

 

正直理屈じゃないところが大きいのですが、あえて言うなら、上記のようなギャップがあるということは、「自分の強み・弱みをちゃんと理解していないのだろう」という推測につながり、そこからさらに「努力の方向性を間違っているだろう」「お互いの長所・短所を理解してチームで支えあうということに向いていないだろう」という判断につながります。

 

まあ結局は素直で誠実であれ、自信を持つべきところはしっかり自信を持って!というだけのことなんですけどね。

技術の会社?

この前からちょくちょく、デザイナーの方を中心とした初心者向けプログラミング講座を書いていこうとしているのですが、なぜそのようなことをするのかについて少し書いておこうと思います。SOYCMSはプログラミングの知識が全くなくてもMTやWPと同じようなことができるという仕様なので、導入を狙っている訳ではありません。

 

弊社は、大雑把な括りだと「技術の会社」ということになります(単に営業部門が弱いだけとも言う)。

 

でも、前も書いたとおり、情報技術については昔ながらの重・軽工業とは「技術」の意味がちょっと違うのではないかと思っています。結局のところ、個人の技量の集合体でしかなく、非属人的に組織に蓄積される部分が極めて小さい。

 

そうなってくると、いかに個人が力を発揮しやすいか、というところが一番のポイントになってくると思います。そのときに重要になるだろうなと予想されるのが、非技術部門にどれだけ技術リテラシーがあるか、技術部門にどれだけ非技術部門への理解があるかということです。技術者と非技術者の人数比なども問題になるでしょうけれど、相互に異分野のリテラシーが高ければ、多少の偏りはどうにかなる気がします。

 

そのため、会社の中では中間的なポジションである僕が、異分野の人が互いの専門を理解するためにはどんな事ができるかひとまず色々試みてみようと思うわけなんです。

デザイナーのためのプログラミング入門(1)

ぼちぼちですがはじめていきたいと思います。

第一回は、お約束どおり環境構築です。

とはいっても、JavaScriptだと下記のHTMLコードをエディタに貼り付けて、htmlファイルとして保存するだけで終了です、はい。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="ja" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="description" content="">
<script type="text/javascript">
<!--

function execute(){

alert("ほげほげ");

}

-->
</script>
</head>
<body>
<input type="button" onclick="execute()" value="実行" />

</body>
</html>

農場日記500回達成!

本日、弊社農場の様子をつづった?blog、

農場日記

が掲載500回を達成しました!

 

これからも情報発信を続けてまいりますので、何卒今後ともよろしくお願いいたします!

Re:Creators Kansai

土曜はRe:Creators Kansaiの会合に参加させていただきました。

僕自身はクリエーターではないのですが(ある意味クリエイションはしている気がしなくもない)、同じ関西で近い業界の人とお話しするのは楽しく、ちょくちょく参加させてもらっています。

行きしなに見つけたツバメの巣。巣立ちの日は近い!

二次会で行ったバーにはペンギンがいました。ペンギンって悪者っぽいところが好き。

ウォレスとグルミット、マダガスカル等、映画ではなぜかいつも悪者ですよね。

会社のサボテンの花。

サボテンの花が咲いた!

バイオ燃料

昔からなんどかblogにも書いていますが、僕はバイオ燃料に大反対です。

 

食べ物を燃やすという時点でナンセンスなのですが、その他にも、「工業用資材」としての利用には食料と違って使用量に際限がない、という問題があります。

 

たとえば最近でも捕鯨の是非が議論されていましたが、鯨の乱獲だって食用目的のそれではなく、鯨油採取を目的とするが故に起こったことです(余談ですが近年の、鯨油目的捕鯨を行っていた国が限定的な食用目的捕鯨を非難する構図は非常に理解に苦しむ部分があります)。

全身筋肉痛。。。

昨日の農作業のせいで全身筋肉痛。。。

 

歩くのさえつらい。。。

 

最近は外回りが多くて、それなりに体動かしてたつもりだったんだけどなあ。。。

畑行ってきました

今日は畑まで行ってきました。

 

http://farmdiary.n-i-agroinformatics.com/

 

最近システム(主にSOY CMS)関連の仕事が忙しくて畑までなかなか行けないでいたのですが、ちょうど予定が一日空いたので行ってきました。

 

色々気になっていた問題点について、現地スタッフの齊藤(農場日記の中の人)と議論。

 

そろそろ次の展開を考えていこうと思います。

 

しかし日焼け止めを顔にしか塗っていかなかったから首と腕がひどい日焼けで痛い。。。