アルパカログ

プログラミングとマネジメントの話題がメインです。時々エモいのも書きます。

「コーヒー。」と「コーヒーください。」この先生きのこるには

f:id:otoyo0122:20200810160036j:plain:w600

「コーヒー。」と「コーヒーください。」で値段の違うカフェがあります。

matome.naver.jp

ユニークでいいですよね、こういうの。

でも考えてみたら、差額は何に対してでしょうか?

コーヒー代が200円だとするとこんな感じです。

f:id:otoyo0122:20200810160013p:plain:w500

たぶん、これと同じことが仕事でも言えるんじゃないかと思って、そんな話をしてみたいと思います。

続きを読む

HTMLに画像データを埋め込む「Data URIスキーム」の使い方

f:id:otoyo0122:20200725132644p:plain:w300

HTMLで画像を表示したいときは<img>タグのsrc属性に画像のソースURLを指定するのが一般的です。

しかしData URIスキーム(Data URI scheme)*1 を使えば、src属性に画像そのもの(バイナリ)を埋め込むことができます。

このエントリでは、Data URIスキームを使ってimgタグのsrc属性に画像バイナリを埋め込む方法を、簡単なサンプルコードと共に説明します。

*1:Data URLスキームと言うこともある

続きを読む

Qi対応完全ワイヤレスイヤホン「Anker Soundcore Liberty Air 2」レビュー

f:id:otoyo0122:20200731191555j:plain:w500

完全ワイヤレスイヤホンは最近ではデザインや性能、価格帯のいろんなバリエーションから選べるようになってきました。

しかし完全ワイヤレスイヤホンの中でも、ワイヤレス充電が可能な商品は実はあまり多くありません。

このエントリでは、Qi対応完全ワイヤレスイヤホン「Anker Soundcore Liberty Air 2」をレビューします。

続きを読む

Elixir エラーハンドリング構文try~catchとtry~rescueの違い

急いでいる人向けまとめ

  • throw/1exitを捕捉したい場合はtry~catch
  • raiseを含むそれ以外のエラーを捕捉したい場合はtry~rescue

f:id:otoyo0122:20200804094049p:plain:w300

エラーハンドリング構文と言えばJavaScriptではtry~catch, Rubyではbegin~rescue, Pythonではtry~except があります。

そう、多くの言語でエラーハンドリング構文は1つです。しかしElixirには2種類のエラーハンドリング構文があります(!?)。

それはタイトルにもある通りtry~catchtry~rescueです。

このエントリでは2種類のエラーハンドリング構文try~catchtry~rescueにどんな違いがあるのか説明します。

続きを読む

InfluxDB データのダウンサンプリング設定方法(CQ/RP)

f:id:otoyo0122:20200803154128p:plain:w300

時系列データを保存していくと、いつかはストレージがいっぱいになってしまいます。

InfluxDBでは、一定期間が過ぎたときにデータの解像度を落として(ダウンサンプリング)保持することができます。

このエントリでは、ダウンサンプリングしてデータを保持するための2つの機能「Continuous Query(CQ)」と「Retention Policy(RP)」の設定方法を説明します。

続きを読む

Nature Remoで家電の操作を自動化する方法

Nature Remoや小型版のNature Remo miniを使えば家電の操作を自動化することができます。

例えば「室温が29度になったら自動でエアコンをONにする」や「帰宅前にエアコンをONにする」というようなことです。

このエントリでは、エアコンと温度センサーを例に自動化の方法を説明します。

続きを読む