WEBページのサイドバーに『IT企業と名乗れるか カウンター』を設置しました。
これは、事業を開始した2015年4月1日の3年後である2018年4月1日までをカウントダウンしています。
意図としては2つあります。
一つ目の意図は、3年間で私たちの組織を『IT企業』と呼べるレベルまで成長させるという決意表明と、自分たちも目標に向かって取り組むことを意識付けするためのものです。このカウンターが0になったタイミングで、3年間の取り組みの振り返りを行いたいと考えています。
もう一つの意図は、このカウンターを作ったこと自体がこれからやっていきたい活動のコンセプトと合致しているからです。
…説明が無いとさっぱりですよね。このカウンターは夜の0時くらいから作り始めて夜中の3時位に動き始めました(深夜に作業するのが活動のコンセプトではないですよ)。
簡単なカウンターにしては少し時間がかかり過ぎました。行った作業内容としては次のような感じです。
・Rubyを使って2018/4/1 00:00:00とサーバタイムスタンプとの差分を算出し、JSON形式に整形
・HTTPのリクエストをトリガーにRubyを実行して処理結果を返却するようにサーバの設定を変更
・クライアントのJavaScriptでサーバサイドのJSONを取得し、クライアントサイドのタイマーで残り時間を算出
・JavaScriptの計算結果をJavaScriptライブラリで16セグメント形式で表示
・サイドバーへ埋め込み
まあ、大したことないのですが、でも今回のアイデアを形にする上では次にあげるような、技術的に考えたり実施しなければならない要素がありました。
・最適な言語は何か考える
・サーバからRubyの処理結果を返すように設定する
・クライアントサイドの時計では誤差が大きすぎる可能性がある
→残り時間の初期値はサーバ側で計算する
・初期表示後に単純にインターバルで1秒おきに1値を引くだけでは誤差が発生するかもしれない
→インターバルで現在時刻を取って初期表示時の時間との差分から残り時間を算出する
例えば最適な言語といっても、色々な言語を知っていないと答えは出ませんし、サーバのOSやセットアップ状況によっても変わるかもしれません。Rubyの結果を返すようにするにはWebサーバの基礎知識が必要ですし、クライアントサイドの時計とサーバサイドの時計のどちらを使った方が良いかの判断については知識や経験が必要でしょう。もっとこだわるならWebSocketを使用しても良かったかもしれませが、その場合にサーバやクライアントでどういった懸念があり、何をしなければいけないかを判断するにも知識や経験が必要です。
つまりITに携るには様々な分野について広く理解しなければ最適な解は導けないという事です。そして残念ながらそれらの知識は日々刻々と進化・変化するため新しい情報に常に触れ、頭にインプットし続けなければいけないという事でもあります。
また別の側面で見ると、IT技術の素晴らしいところは、開発環境と知識さえあればどんなアイデアも形にすることができ、様々なモノを相互につなげることができるということだと思うのです。
そして我々は、今までにあげた要素を兼ね備え、自分たちの頭に浮かんだアイデアをスピーディーに形にできなければいけないと思うのです。
…今回は少し脱線気味でした。