オブジェクト指向か関数型プログラミングか

🎵(音符) とーしの、はーじめに、思ったー事ー。
年の初めに思ったこと。

現在広く普及している言語ですと、いわゆるオブジェクト指向言語ってことになるんじゃないでしょうか。

私はオブジェクト指向言語で育ってもう長いこといろんなオブジェクト指向言語と呼ばれるものを使ってきましたが、バグの原因がメンバー変数の使い方だったことが多いなと。正直「オブジェクト指向ってこれでいいの?!」と思うこと多々ありました。カプセル化は、確かにメンバ変数のスコープを狭めたけど、グローバル変数よりりは狭まったのであって、本質的には変数への状態保持を間違う可能性があるのは同じなのではと。まあ、カプセル化オブジェクト指向の一部ですがもちろんそれだけでは無いし。あとマルチスレッドなど、バグの温床になりやすいとこは他にもあるわけですが。

最近は「オブジェクト指向」ってあんまり聞かないですよね。Googleトレンドさんに聞いても、その傾向のようです。

でもいまだに、プロフェッショナルを目指す人が周りに薦められるのは、オブジェクト指向言語だったりするように思います。 私はそんな人たちにオブジェクト指向を学びなさいと積極的に薦める気にはなれず(もちろん業務で使う言語は学ばなくてはいけないんですが)、だからといって、じゃああんたは今学ぶべきは何なんだと言うんだ?、に何か一つの答えも持っていないなぁ...。だってこの世界、いろんなことがDog Yearですからね、って"Dog Year"って言葉がすでに古いよね。でも漠然と、関数型言語が普及した方が良いような...。いやそれは隣の芝生が青く見えるだけなのか...。

で、elmPureScript、などが気になるこの正月休みである。

ああ正月からとりとめ無く、あけましておめでとうございます。

SensorTag CC2650STK を買いまして、IR Temperatureの温度が取れない件

SensorTag CC2650STK を買いまして、早速使ってみているのですが、IR Temperatureの温度がみれない。iosアプリでは、IR temperatureには、 "TMP007 sensor not mounted"などと出ている...。
みなさんPythonやnode-REDなどで楽しんでいらっしゃるのですが、私は温度データが取れないぞ...何故...。
ググったところ、なんと、こんなワケでした。

CC2650STK: Sensor tag is not giving the data for Ambient temperature Data and IR Temperature Data - Bluetooth® forum - Bluetooth® - TI E2E Community

どうやら、IR temperatureセンサーTMP007はライフエンドでPCB バージョン 1.5.1からは実装してないよ、とのこと。私の買ったやつは、箱に"HW rev:1.5.1"と書いてあったので、まさにそれのようです、あらら。 "TMP007 sensor not mounted"の意味がよくわかりました。
でも、他のセンサーでも温度データは取れるとのことなので、気持ちをしっかり持って、Raspberry-Piで遊ぼうと思います。この正月のおもちゃ用に買ったので。

静的WebサイトのホスティングはNetlifyがいいらしいので使ってみた

静的WebサイトをAWS S3でホスティングしてたけど、Netlifyが無料でいいらしいので、使ってみた。

で、使ってみたら、確かに簡単でした。
使い方は、すでにいろいろみなさん紹介されているのでググってみてください。
(すみませんこの記事Netlifyの使い方の紹介になってませんが、私Netlifyの使い方をキャプチャとかするまでもなく、あっさりとサイト作れてしまったので...。)

わたしはNetlifyのWebUIからデプロイしたのですが、S3で公開していたindex.htmlが1つだけでできているサイトを、その親フォルダーごとNetlifyのWebUI上にドラッグ アンド ドロップしたら、デプロイされて、Netlifyが割り当てたURLにアクセスしたらちゃんとウエブサイトとしてアクセスできました。確かに簡単で早い。(私は独自ドメインは使ってませんが、Netlifyで独自ドメインでも公開できます)
ちなみに、index.htmlファイル1つのサイトだったので、ファイルだけドロップしたらだめでした(当たり前か)。index.htmlを含むフォルダごとドロップしてくださいネ。

C# 7.2 Span<T>とMemory<T>

C#7.2で Span<T>とMemory<T>が入ってくるとな。

C# - Span のすべて: .NET の新しい頼みの綱を探索する

Spanについては去年こちらの記事

ufcpp.net

を読ませていただいて、すごくいいんだけど、Span<T>は使いどころの制約もすごくて正直あんまり使えんなあ、と思っていたのですが、こちらの記事でSpan<T>の制約を回避したMemory<T>もあるではないですかぁ

C#これからもいいですね。ただ、これらが普及するのは、まだだいぶ先だな...。

おそまきながら、decode:2017の「MR15 ハードコアデバッギング」がよかった。WinDbg+MEX とか PerfViewとか。

正月休みにみたら、これよかったです。
ハードコア デバッギング~Windows のアプリケーション運用トラブルシューティング実践 | de:code 2017 | Channel 9