ワーパパエンジニアの学び手帳

ワーパパエンジニアの業務外での学びとかガジェットネタとか

AppleWatchを買いました-合わせて揃えたものなど

新年明けましておめでとうございます。

ってもう1月も中旬に入ろうとしていますが、皆様いかがお過ごしでしょうか。

昨年の振り返りとか新年の抱負とか一切なしですが、今年もゆるゆると更新していこうとおもいますので、引き続きよろしくお願いいたします。

 

さて、わたくし年末年始にボーナスの使い道を悶々と考えておりまして、「正直そんなに欲しいものないしな~何にお金使ったら生活が豊かになるかな~」と思いを巡らしておりました。

そんなわけで、気づいたらAppleWatchをポチっていたわけです(どんなわけだよ、と

目次

 

買った経緯

元々使っていた時計は↓のもので、アクティビティトラッカー機能もあるしアプリの出来もいいのでまあ満足して使っていたのです。

とはいえ慣れたら新しいものが欲しくなるもの、スマホの通知機能も欲しいなーということで、makuakeで↓のスマートウォッチに手を出しました。

ところがこれがかなりいまいちで、bluetooth接続はしょっちゅう切れる、歩数は軽く2倍以上カウントされる、アプリの出来がこれまで見た中で最低、と書いても書いても書ききれないほどの出来で。。。(デザインはよくてそこに惹かれた面もあるのですが、それだけじゃ使えないよ、というわけで。。。

 

そうしてスマートウォッチ選定に疲れた結果、AppleWatchの記事を見てたらどんどん惹かれてしまい、間違いないものを選ぼうということでポチるに至ったわけです。

 

買ったモデル

これ↓

44mmを推す記事が多くて迷ったのですが、自分は腕が細めで小さい時計の方が好きなので40mmにしました。

Amazonの初売りポイントアップキャンペーンの間に買いました。プライム会員&アプリからの購入で計+4%。PayPayのキャンペーンをやっているうちに買っておけば…とほんの少し思いましたが、しゃーなし。

使ってみて

まだまだ使いこなせてないなーとは思うのですが、とりあえず通知がサッと確認できるようになっただけでもめちゃくちゃいいですね。

あとはApplePay。職場のビルにローソンが入っていて、Pontaもポイント自動付与されるしすばらしーです(今まではiPhonePontaを読み取らせて、Edyで支払うという2段階で決済してました

使っているのがiPhoneSEのため手持ちのSuicaiPhone経由でAppleWatchに移せず、Suica定期は次の更新のタイミングで作るかなーという状況です。早くSuicaもAppleWatchに移したい!とりあえずビューカードの申し込みだけしました笑

AppleWatch4から追加されたインフォグラフはこんな感じにしました。情報量の多さすばらしーです。

f:id:us_key:20190108231359p:image

 

合わせて揃えたもの

スタンド

自宅で充電時の定位置。平日帰宅してスタンドに置いて充電、寝る前に100%にしておけば、睡眠中着けっぱなし~出社して退社して帰宅、まで経ても40%は残ります。もっと減ると思ってたので一安心。 

 

予備のケーブル

IQIYI アップルウォッチ iWatch専用磁気ワイヤレス充電ケーブル (MFi認証) 0.3m

IQIYI アップルウォッチ iWatch専用磁気ワイヤレス充電ケーブル (MFi認証) 0.3m

 

とはいえ充電切れを気にするのは精神衛生上よくないので、ケーブルも1本買いました。モバイルバッテリーとセットで持ち歩いています。

それにしても、AppleWatchのケーブルは高い。。iPhoneのように500円といったレベルのケーブルはほぼありません(あったけどレビューがひどかったので選ぶ勇気が出ず

 

レザーバンド

職場はビジネスカジュアルOKですが、さすがにスポーツループだけでは心許ないので購入。値段相応であんまレザー感ないですが、ひとまずはOKかな。

Apple製品はiPhoneのケースもそうですが、様々なメーカーから販売されている点も魅力ですね。

 

まとめ

スマートウォッチは常に身に着けているもの。ガンガン使いこなすというタイプのものではないと思いますが、上手く活用すれば生活がより便利に、豊かになるものだと考えています。

まだまだ使いこなせていないため、色々調べながら模索していきたいなーと思います。

Apple製品自体も買うのは久々なのですが、やはり新しいガジェットを手に入れるとワクワクするものですね♪

電車の遅延情報をSlackに定期的に通知する(heroku scheduler)

前もrubyで似たようなことやってますが、herokuスケジューラを使ってAPIを定期的に叩いて結果をSlackに通知するというやつ。
朝と帰りに電車の遅延情報を通知したいと思い、今回はpythonでバッチを作りました。

前のやつ↓
us-key-tech.hatenablog.com

コードは↓に置いています。
GitHub - us-key/pushTrainInfoSample

目次

やること

  1. herokuのスケジューラでpythonスクリプトを定期実行
  2. pythonスクリプトで電車の運行情報を取得し整形
  3. 整形した内容をslackで通知

動作環境

以下、pythonはインストール済みの前提で進めていきます。
コマンドはWindows環境のものです。maclinuxの場合は読み替えてください。

手順

プロジェクト作成

> mkdir pushTrainInfoSample
> cd pushTrainInfoSample  
> py -m venv env  
> env/Scripts/activate  

(コマンドプロンプトの場合は/ではなく\ )

コーディング

requestsのインストール

(env) > pip install requests

slackwebのインストール

(env) > pip install slackweb

コードの内容

今回は路線情報のAPIを叩いて運行情報を取る部分と、文字列をSlackに投稿する部分に分けて実装しています。

API叩くコード

# app/trainInfo.py  
import requests  
import json  
  
def request(nameArr):  
    url = 'https://rti-giken.jp/fhc/api/train_tetsudo/delay.json'  
    response = requests.get(  
        url,  
    ).json()  
    flg = False  
    print(response)  
    for name in nameArr:  
        for dic in response:  
            if dic['name'] == name:  
                msg = name + 'の遅延情報があります。'  
                flg = True  
    if not flg:  
        msg = '遅延情報はありません'  
    return msg  

slackに通知するコード

# app/postSlack.py
import slackweb  
import trainInfo  
import configparser  
  
# read ini  
inifile = configparser.ConfigParser()  
inifile.read('conf/config.ini', 'UTF-8')  
  
# webhook url  
url=inifile.get('settings','webhookurl')  
print(url)  
# 確認したい路線(list)  
train=inifile.get('train','lines').split(',')  
print(train)  
  
slack = slackweb.Slack(url=url)  
slack.notify(text=trainInfo.request(train))  

configparserについては後述します。

slackのwebhook URL取得

webhook URL取得については、以前書いた記事を参考に。

設定ファイルの利用

上記のslack通知するコードで登場したconfigparserですが、これを使うと設定ファイルから設定値を取得することができます。
使い方は↓の記事を参考にしました。
www.python-izm.com

今回の設定ファイルの内容はこんな感じ。

# conf/config.ini
[settings]
#slackのWebhook URL
webhookurl=https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXX

#情報を取得したい路線をカンマ区切りで指定
[train]
lines=AAAA,BBBB,CCCC

webhookurl、linesを書き換えて使います。

ローカルで動作確認

(env) > py app/postSlack.py

slackに通知されればOK!

git管理化

(env) > git init  
(env) > git add .  
(env) > git commit -m "first commit"  

herokuにpush

(env) > heroku create pushtraininfo  
(env) > git push heroku master  

なんかエラー発生

(env) PS C:\Users\yomt0\pythonWorkSpace\pushTrainInfo> git push heroku master  
Counting objects: 1148, done.  
Delta compression using up to 4 threads.  
Compressing objects: 100% (1131/1131), done.  
Writing objects: 100% (1148/1148), 9.20 MiB | 296.00 KiB/s, done.  
Total 1148 (delta 235), reused 0 (delta 0)  
remote: Compressing source files... done.  
remote: Building source:  
remote:  
remote:  !     No default language could be detected for this app.  
remote:                         HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.  
remote:                         See https://devcenter.heroku.com/articles/buildpacks  
remote:  
remote:  !     Push failed  
remote: Verifying deploy...  
remote:  
remote: !       Push rejected to pushtraininfo.  
remote:  
To https://git.heroku.com/pushtraininfo.git  
 ! [remote rejected] master -> master (pre-receive hook declined)  
error: failed to push some refs to 'https://git.heroku.com/pushtraininfo.git'  

herokuへの新規デプロイが久々で今回色々詰まってしまったのですが、ひとまずエラーメッセージにあるURLを参考に、buildpackの設定をします。
Buildpacks | Heroku Dev Center

buildpackの設定

(env) > heroku buildpacks:set heroku/python

再デプロイ

ローカルへのコミットをしたのち、herokuに再度pushします。が、またエラー発生。

(env) PS C:\Users\yomt0\pythonWorkSpace\pushTrainInfo> git push heroku master  
Counting objects: 1148, done.  
Delta compression using up to 4 threads.  
Compressing objects: 100% (1131/1131), done.  
Writing objects: 100% (1148/1148), 9.20 MiB | 316.00 KiB/s, done.  
Total 1148 (delta 235), reused 0 (delta 0)  
remote: Compressing source files... done.  
remote: Building source:  
remote:  
remote: -----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz  
remote:        More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure  
remote:  
remote:  !     Push failed  
remote: Verifying deploy...  
remote:  
remote: !       Push rejected to pushtraininfo.  
remote:  
To https://git.heroku.com/pushtraininfo.git  
 ! [remote rejected] master -> master (pre-receive hook declined)  
error: failed to push some refs to 'https://git.heroku.com/pushtraininfo.git'  

requirements.txtを作ってなかったから?

buildpackがpythonに対応してないぜ、的なメッセージが出ているのですが、pythonのやつを設定したばっかだしなぁと思いつつ、調べると以下の記事が。 App not compatible with buildpack - Heroku - Stack Overflow
以下コマンドでrequirements.txtを生成。

(env) > pip freeze > requirements.txt

再度gitにコミットした後、デプロイ

ログを取り忘れましたが、無事デプロイできました。

まとめ

前回記事でも書いた通り、heroku schedulerは簡単に設定できるうえ、スケジューラのみの使用で無料の範囲を超えることは個人利用ならよほどハードな使い方をしない限りないんじゃないかなと思います。
今回書いたコードで私は朝7時と18時の2回slack通知させています。(1日毎のスケジュールを2件作成)
f:id:us_key:20181225232615p:plain スケジュールの組み方は業務で使うようなスケジューラと比べると制約がありますが、個人で使う分には十分じゃないかと。
気軽にスケジュールが組めるのでお試しください!

ZOZOの2Bスーツが届いてからの話

↓の記事で予告してましたが、今回はZOZOのはなし。

us-key-tech.hatenablog.com

 

ようやく来たよ、ZOZOスーツ、じゃなくてZOZOのビジネススーツ。

 

目次

 

たくさん待ちました

 

箱でかい

箱がものすごいでかいです。カシヤマの薄く小さい箱をイメージしてたのでコンビニ受け取りにしたのですが、めっちゃでかくて運ぶの大変だった。。

f:id:us_key:20181120093143j:image

 

開封の儀

段ボールを開けると中から化粧箱が。

f:id:us_key:20181120093809j:image

 

 化粧箱の中からよくあるスーツ袋に入ったスーツがでてきます。

f:id:us_key:20181120093901j:image

 

 スーツに乗っている紙は、サイズの直しができるよ、という説明。後述しますがわたくしもこれを利用することになります。。

f:id:us_key:20181120093921j:image

 

 今回はスーツのほかにワイシャツも注文しました。スーツの間に入ってました。

f:id:us_key:20181120093939j:image

 

スーツはどんなんなん?

こんな感じ。コンビニから持ち帰る際になんとかがんばって水平を保って歩いたおかげか、そんなにしわもなく。

f:id:us_key:20181120093955j:image

 

サイズ感

たぶん伝わらないけどサイズ感。雑な加工ですみません&画質がというか鏡の埃が。。

f:id:us_key:20181120094008j:image

 

 こちらはカシヤマで作ったスーツ。やはり伝わらないですよね。

 

 

f:id:us_key:20181120094017j:image

 

問題点 

簡潔にいうと、ジャケットのウェスト部分が太いのと、裾が長い。

 

カスタマーサポートに捕捉される

 上記のツイートをしてサイズ直しをしようかどうしようかとうんうんしていたところ、カスタマーサポートからメンションが。

f:id:us_key:20181120094038p:image

お直し用のURLとは別に問い合わせフォームを案内されたのですが、直しをすべき箇所は明確(直した結果で問題ないかどうかはまた別の話ですが)だったため、お直しの依頼をさせてもらいました。 

 

お直し依頼

スーツに同封されてきた説明書きに添付されているQRコードからお直し依頼フォームにアクセスし、どこを何cm直すかを指定して送信。

メールで直しの内容確認と、送付先が案内されます。

スーツの場合、上下とも送る必要はありません。今回はジャケットのみ直しが必要だったのでジャケットのみ送りました。大き目の袋に入れてガムテープで封をして、ヤマトに集荷依頼。

 

お直しではなく作り直し対応に

 今回、直しの内容としては胴回り-2cm、着丈-3cmだったのですが、どうやらお直しで対応できる範囲を超えていたらしくこんな連絡が。

f:id:us_key:20181207131134j:image

パターンの再生成が必要になるため1ヶ月ほどかかるとのこと。

まあ時間がかかることに関しては、中途半端なものを着続けるよりいいので問題なし。気になるのは、ここにいろんな人たちから集まったフィードバックを反映させてパターンの生成手法を改善します、なんてプロセスが入るとさらに時間がかかりそうだな~というところ。

当初の配送予定からも2ヶ月くらい?遅れていたため、どこまでリードタイムがかかるかという点と、この間に何かしらの品質改善があるかどうか。

 

まだ応援はしています

まあこんな感じで手元にちゃんとしたスーツが届くまでにはまだまだかかりそうなんですが、気持ち的にはまだまだ応援したいなという気持ちです。

生みの苦しみというか、革新的なことを始めるときには初速を最大限高めたいところですが、なかなか難しいものですねというのをまざまざと感じさせられます。

将来的にはZOZOスーツ不要になるなんて話も出ていますが、スーツを作る場合には細かい採寸が必要だと思うのだけどどうなのかなー、なんてことも気になっています。

いずれにせよ、もうしばらく動向を注視していきたいなと思います。

www.itmedia.co.jp

 

2018/12/20追記

そろそろ直しの依頼をしてから1か月くらい経つかなーと思っていたら、今日こんなメールが。

うーん。がんばってー。