かずきち。の日記

サーバサイドエンジニアのつぶやき

プログラマーの考える自動化は必ずしもコンピュータが行う必要はなく、ソーシャルセンサーを探すことが一番大事

プログラムには2つの種類がある

人間がプログラムをキックするか?
何かのきっかけがプログラムをキックするか?

である。


引用:
https://www.irasutoya.com/2019/06/blog-post_530.html

キックって何なんだよ。
サッカーのキックではありません。

プログラムコードを起動することを「キック」といいます。

大体は人間が「▶」の実行ボタンなどを押すとプログラムが実行されます。

人間がプログラム実行前に「発火」のボタンを押しています。
ボタンをクリックしたらプログラムが実行します。

ある程度プログラムが書ける人になると、複数条件で「自動」でプログラムを書きたくなる

「Gmailを受信したら実行」
「毎年・毎月・毎日・何時・何曜日になったら」「メールを受信したら」起動をプログラムが起動する。
時間をトリガーのするのはコードで書きやすい。

ソーシャルセンサーというのは社会の動向をトリガーにして、プログラムを発火させること

民衆が〜〜を行ったら、起動

と記述することである。

プログラムが数値化しづらい事象を数値化・取得するがソーシャルセンサーの醍醐味である。
一見、簡単そうに聞こえるがプログラムで書くには以下の課題がある。

  • リアルタイムでインターネット上から情報を抽出する技術
  • 収集したデータをリアルタイムに加工する技術
  • 加工した技術をリアルタイムに公開する技術

いずれもリアルタイムに計算・公開するのが非常に難しい。
エクセルで計算しておいてではなく、データが生成されたら瞬時に計算+公開を行う事が重要である。

コロナがまだ流行初期だった頃に陽性者数を各医療機関が集計して→保健所が集計して→市区町村で集計して→都道府県で集計して→国が集計するみたいなことをしていた。
これをもしもプログラムで書けたら、患者発生→情報公開まで一気通貫で行うことができる。

プログラマーに必要な素養にはデータ分析に必要な素材を探す能力に近い

これは無人島に漂流して生き残る能力に近い。


無人島に漂流して、絶望して死を待つのか?
それとも海岸で集めた漂流したガラス瓶を割ってナイフにして、木を削って槍を作って、小魚を捕まえて調理するのか?

優秀なプログラマーは後者の発想が発想が必要で、自分の手持ちのコマでどうやって、実現したいことを解決するか?が醍醐味である。
道端に落ちているゴミでも、もしかしたらメルカリで売れる商品かも?ではなく
インターネット上に落ちている些細なデータでも集めて加工したら面白いデータになるかもって思うことが面白いサービスを作れるコツである。

なのでビッグデータを計算したい→莫大な計算が必要→スパコンに計算を依頼したい→でもお金がない→Hadoopを組んで大規模データの分散処理をオープン処理を走らせればいいし
アプリを開発したい→社内で予算が取れない→Googleのfirebaseで開発して、安定稼働するまで無料で運用→ユーザが付いてきたら、上司に相談して予算を取ればいい

日本の教育を見ていて思うのはRPGでいう、ラスボスを倒す技術を教えてくれているようで
その手前の雑魚キャラを効率よく倒す技術は教えてくれない。
第二次世界大戦の敗戦も戦艦大和を作ってる場合ではなく、もっと安価に・高速に戦える技術を習得したほうがよかったのでは?と思う。
スーパーコンピューター「京」が世界一を取るのも大事かもしれないが、もっと日本人は身近な生活から生み出せるビジネスチャンスを見つける能力が必要だと思う。
そのためには普段、莫大に流れているゴミデータをソーシャルセンサーと考えて使うと良いのでは?常々思っている。