勤務時間をダッシュボードで管理する(1/2) IFTTT → AirTable編

勤務時間と在宅時間がMetabase(OSSのダッシュボードツール)で確認したいな〜と思っている。
アーキテクチャはこんな感じで。

iPhoneの位置情報 → IFTTT → AirTable → AWS Lambda → PostgreSQL → Metabase

やってみた

IFTTTのAppletの設定はこんな感じ
f:id:hiroga_cc:20180120121742p:plain

  • レコードの設定
::airtable::OccurredAt::{{OccurredAt}}
::airtable::EnteredOrExited::{{EnteredOrExited}}
::airtable::LocationMapUrl::{{LocationMapUrl}}

AirTableはこう。列の属性がDate型だと書き込みに失敗するので注意。代わりに変換用の列を用意する。
f:id:hiroga_cc:20180121012807p:plain

  • 値はこんな感じ
January 19, 2018 at 09:25AM
https://maps.google.com/?q=(※緯度),(※経度)&z=18
exited
1/19/2018 9:25am
  • 変換用列の式はこんな感じ
DATETIME_PARSE(OccurredAt, 'MMMM D, YYYY at HH:mmam/pm') 

※AirTableの代わりにGoogle Spreadsheetも検討したんだけど、Pythonのライブラリが必要なのと(これはLambdaだと面倒)、僕がAirTable推しなのでこうしました。

【FireFox】Tab Mix PlusをTab Mix Plusで置き換える

Tab Mix PlusってアドオンがFirefox Quantumでは動かないらしい
せっかくなのでShortkeysで代替してみた。

やり方

こんな感じ。
f:id:hiroga_cc:20180115214242p:plain

tab2回押しでリロードできる!

ネイティブが使ってる英単語の省略形が分かる、変数の命名に必見のサイト「All Acronyms」

英単語を省略したいけど、何が正しいのか分からなくて困ることないですか?
例えば "Management" を省略したい時、"mgmt"がいいのか、それとも"mgt"がいいのか、みたいな...

調べられるサイトがあります。All Acronyms です。

www.allacronyms.com

ご覧の通り、ポピュラーな省略形が投票で選ばれています。これは便利!
f:id:hiroga_cc:20180107210521p:plain

以下は興味のある方向けです〜!

そもそも省略形とは

英単語の省略形を調べるとき、知っておくとよいキーワードが二つあります。"abbreviation"と"acronym"です。

abbreviation: 主な意味: 省略、短縮、省略形、略語、略字
ex) management → mgmt

acronym: 主な意味: 頭字語
ex) United Nations Educational → UNESCO

weblio英和辞典より引用

"acronym"の一種に"recursive acronym"というのがあって、エンジニアだと覚えがある人いるんじゃないでしょうか。
GNU(GNU's Not Unix!) みたいなやつですね。

調べ方

"abbreviation"と"acronym"を載せていればいいので、上記の"All Acronyms"以外にも調べられるサイトはあります。
一つ調べて見つからなかったらほかも当たってみるといいんじゃないでしょうか。

オックスフォード英語辞典: Abbreviations
public.oed.com

THE FEEE DICTIONARY acronyms.thefreedictionary.com

bitbank/ kraken/ poloniexの過去の価格を取得する

暗号通貨(仮想通貨)の過去時点での価格を知りたかったので、取得できるようにしました。
各取引所のAPI経由で取得すればOKです。

ソース

github.com

利用は自己責任でご自由にどうぞ。

やり方

requestsライブラリを使ってAPIを叩いた後、pandasを使ってデータを整形 >> CSV形式で保存、としています。

注意点

日本の取引所でもGMTを基準にしていること。
Krakenの古いデータが取得できないのだけど、どなたか解決法を知っていたら教えてください。

業務系Webアプリケーションの画面デザインガイドライン作成で参考になりそうな考え方・サイト

※この記事は2時間くらいで調べた内容をまとめたものです。

画面デザイン規約を作るとき、何を参考にしてどうやって作ればいいのかをさっと調べました。

考え方

システム開発より、むしろWebデザインのための資料が参考になる。
サイトマップやページレイアウト、文字、色、画面サイズなどに関するデザインガイドラインは、良いものがインターネット上にたくさんある。

ちなみにWebデザインは、要件定義→情報設計→仕様設計(表現は色々ある)の流れで行われているようだ。
レイアウトは情報設計の後半で、文字や色などの要素のデザインは仕様設計で行っている。

デザインガイドラインを作成するためのコツ

デザインのコンサルティング会社「ソシオメディア」取締役の上野さんが、運用まで視野に入れたガイドライン作成のコツについて書いている。
www.sociomedia.co.jp

大まかには...
1. 必要最低限のことを書く(読んでもらえなくなるから)
2. 考え方と具体例(コピペしやすいほど良い)を両方載せる
3. ガイドラインに沿っているかレビューのプロセスを入れる
4. フィードバックをどんどん取り入れる(変えられないと使うのが負担になる)

本当はもっと深いことが書いてあるのでリンク先読んでみてください。

参考になるガイドライン

個人的に参考になるもの3選。

Introduction · Bootstrap
言わずと知れたフレームワーク「bootstrap」の公式ドキュメント。
コピペすればそのまま使えるコードが掲載されておりとっても使いやすい。

Styleguide
レビューサイト「Yelp」のスタイルガイド。
項目に網羅感があるので、自作デザインガイドの骨組みに良さそう。考え方、cssタグの例示もある。

GOV.UK elements
英国政府のデジタルサービス提供サイト「GOV.UK」のデザインガイドライン

参考資料

airtable.com Airtableにまとめて公開しています。この程度しか読んでないので、お勧めがあればぜひご教示ください。

git push origin master が fatal: Authentication failed → 最近2FA認証をオンにしませんでしたか?

ユーザ名もパスワードも合っているはずなのにターミナルからプッシュできない!どうして!
と思っていたら、2FA認証を使い始めたらパスワードの代わりにPersonal Acces Tokenが必要らしい。

やり方はこちら。
Creating a personal access token for the command line - User Documentation

参考資料

blog.swilliams.me

AWS LambdaでPython3を動かす + PostgreSQLにアクセスする

お正月早々めっちゃつまづいてしまった。
この記事は要するに、Lambdaの使い方 + Python3用にpsycopg2とlibpqを静的リンクさせるやり方のメモです。

AWS LambdaでPython3を動かす

フレームワークを導入しなくてもローカルと同じようにプログラムを実行できる。
注意したいのが、pipを自動で実行したりはしてくれないこと。
(Herokuだとrequirement.txt って設定ファイルに書いておけばライブラリをインストールしてくれる)

なので、外部ライブラリに依存するプログラムを作る場合、それごとZIPで固めてアップロードする必要がある。
ライブラリを取得してZIP化するのは面倒なのでシェル化した。よければご参考にどうぞ。

ちなみに原因不明の変なエラー( i.body is null )が出たけど、支障なく動いた。
f:id:hiroga_cc:20180103181041p:plain

Python3用にpsycopg2とlibpqを静的リンクさせる

ここに大体書いた。 github.com

参考サイト

dev.classmethod.jp