DMM光でひかりTVを契約したらちょっと面倒だった

フジテレビNEXTテレ朝チャンネルが見たかったので、ひかりTVを契約しました!

性格が分かる、配線が汚い写真 f:id:rela1470:20170403011101j:plain

録画用のHDDはRAID組んであります。
(動作保証外。説明書にもRAIDはやめろって書いてあるけど、自分の環境では普通に使えている)

ただ、家の回線がDMM光(ちゃっかりアフィリンク) で、
いわゆるフレッツ光ではなく光コラボレーション回線だったので、
ちょっと手続が色々と面倒だったので共有します。

そもそも本当にDMM光で使えるの?

ほとんどネット上に資料は無いが、結論だけ言うと使える。 www.hikaritv.net

NTT東日本・NTT西日本のフレッツ回線
または
光コラボレーション事業者の光アクセスサービス
(ぷらら光、ドコモ光、ソフトバンク光、OCN光など※)

って記述があり、DMM光は光コラボレーションなので使えるはず。
ただ、野生の勘ですんなり契約とはいかないだろうな、と思ってたんだけどやっぱりそうなってしまった👀

セットアップができない

NTTから付与されるお客様ID(“CAF+数字10桁”)が分からなくてセットアップが止まる。
普通は回線開通のお知らせ等に載ってるらしいんだけど、DMM光の場合はそれに該当する書類はなく、
DMM光マイページでも確認できず。
電話で問い合わせて2〜3度やりとりして、ようやく電話口で教えて頂く事ができました。
DMM光+ひかりTVがあんまり前例がないみたいで、サポートセンターの方々も色々困ってましたね。

これに関しては、ひかりTVは光コラボレーション回線に対応していると記述があり、お客様IDに関しては光コラボレーション業者に問い合わせろとNTT東日本のHPにも書いてあると問い合わせるしかない。

地上デジタル放送は受信不可

フレッツ・テレビ(DMM光でいうDMM光テレビ)があるためか、地上デジタル放送は受信不可に設定されているようです。 幸い自分の家では不要だったので助かったけど、地デジがみたい人は別途DMM光テレビを契約する必要がありそう。

インストールメモ:Snipe-IT

会社のほうでブログかきました。

labs.oratta.net

# nginx
yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum --enablerepo=epel install nginx
systemctl enable nginx
systemctl start nginx

#php,phpfpm
yum --enablerepo=remi-php70 install php php-fpm php-mbstring php-pdo php-mysqlnd php-mcrypt php-gd php-zip
php71には対応してない

vi /etc/php-fpm.d/www.conf 24〜26行目らへん
user = nginx
group = nginx

systemctl enable php-fpm
systemctl start php-fpm 

# nginx config

# mariadb
yum install mariadb mariadb-server
[root@snipe-it snipe-it]# rpm -qa | grep maria
mariadb-5.5.52-1.el7.x86_64
mariadb-server-5.5.52-1.el7.x86_64
mariadb-libs-5.5.52-1.el7.x86_64
[root@snipe-it snipe-it]#

systemctl enable mariadb.service
systemctl start mariadb.service


# MySQL 設定変更
/usr/bin/mysql_secure_installation
パスワードとかanonymous無効とか

# Step 2 Creating a Database and User
mysql -u root -p
create database snipeit;
show databases;
create user snipe_user;
grant all on snipeit.* to 'snipe_user'@'localhost' identified by '*****';

# Step 3 Configure Snipe-IT for your environment
cp -a cp .env.example .env
vi .env

# Step 4 Install package dependencies via composer

インストールメモ:Redash

wget https://raw.githubusercontent.com/getredash/redash/master/setup/ubuntu/bootstrap.sh
sudo sh bootstrap.sh

sudo pip install fabric requests
$ wget https://gist.githubusercontent.com/arikfr/440d1403b4aeb76ebaf8/raw/f9ae30f6b0968987a5957aba33bd393e542cb549/fabfile.py
$ fab -Hlocalhost -uroot -ioratech_redash deploy_latest_release

vi /opt/redash/.env
export REDASH_GOOGLE_CLIENT_ID="***"
export REDASH_GOOGLE_CLIENT_SECRET="***"
export REDASH_MAIL_DEFAULT_SENDER="aa@example.com"
export REDASH_HOST="http://redash.example.com/"
export REDASH_PASSWORD_LOGIN_ENABLED=false

root@redash:~# cd /opt/redash/current
sudo -u redash bin/run ./manage.py org set_google_apps_domains example.com

再起動
supervisorctl restart redash_server

バージョンアップ
fab -Hredash.example.com -uroot -iid_rsa deploy_latest_release

sudo -u redash bin/run ./manage.py users grant_admin j.watanabe@example.com

インストールメモ:Superset

本職のテックブログでインストール記事を書くんだけど、まだまとめられてないのでとりあえず貼っておくところ。

Ubunth Server 16.4 LTS 64-bit

# Swap割り当て
http://morizyun.github.io/blog/linux-swap-memory-space/
cat /proc/swaps
ない

mkdir /var/swap
dd if=/dev/zero of=/var/swap/swap0 bs=1M count=2048
chmod 600 /var/swap/swap0
mkswap /var/swap/swap0
swapon /var/swap/swap0
echo '/var/swap/swap0 swap swap defaults 0 0' >> /etc/fstab

cat /proc/swaps
できた

# Python 3.5.2インストール
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar axvf ./Python-3.5.2.tgz
cd ./Python-3.5.2/

## エラー+makeできない
apt-get update
apt-get install build-essential

##つづき
LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure --with-ensurepip --with-zlib
make
make install

#バージョン確認
hash -r
python3 -V
>Python 3.5.2
わーい

# Supersetインストール

## OS dependencies
apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

## Python virtualenv
pip install virtualenv

virtualenv venv
. ./venv/bin/activate
deactivate

# Python’s setup tools and pip
pip install --upgrade setuptools pip

# Superset installation and initialization
pip install superset

# 初期設定
fabmanager create-admin --app superset
ユーザー名と名前をきめる

superset db upgrade
superset load_examples
superset init

superset runserver -p 80
うごいた

サービス化
http://qiita.com/pelican/items/bb9b5290bb73acedc282

[Unit]
Description=superset
Requires=network-online.target
After=network-online.target

[Service]
Restart=on-failure
ExecStart=/usr/local/bin/superset runserver -p 80
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

結婚しました!! & 2016年振り返り

2016年も早いところであと1日となってしまいました。

皆さんお元気ですか。
僕は引っ越しのダンボールに囲まれて過ごしています。
2017年も1ヶ月位はダンボールに囲まれて生活する予定です。

それでは早速振り返っていきましょう!

2016年振り返り

実は2016年の前期目標に「外部発表を月イチでやる」というのを掲げていました。
(ブログとかには書いてない)
今まで社外では一度も発表する機会がなかったのですが、
以下の目的のために、自分に外部発表のノルマを課しました。

  • アウトプット癖を養うため
  • これから先、エンジニアとしてだけではなく人として成長するため
  • 会社の知名度を上げ、採用人数を増やし、自分の仕事を楽にするため

これは達成することが出来ました!

SymfonyMeetUp、PHPBLT、改善MeetUp、雑兵MeetUp、IDCフロンティア
のみなさまありがとうございました!

また、前期の経験がとても良いものだったので、
2016年後期も続けて交流・アウトプットを続けようと意識していました。

ただ、外部発表は仕事が忙しくなり、残念ながら継続出来ませんでした。
最低限、月イチで勉強会参加や交流会等に参加するようにし、
更に会社のエンジニアブログを必ず月イチで更新するようにはしていました。

会社としてのアウトプットはそれなりに出来ていたかと思うのですが、
今ひとつ個人のアウトプットは足りなかったかな、と反省しています。

2017年は会社のアウトプットを維持しつつ、個人も頑張ります!

2016年のGitHub

f:id:rela1470:20161231022438p:plain

去年より酷い。
去年も酷いのに今年悪化するとは...猛省です。

社内インフラやマネジメントに感けず、
エンジニアを名乗れるように頑張ります。

最近社内のシナリオライターさんに、
「えっ渡辺さんってプログラム書けたんですね!」
って言われて死にそうになりました。
ただの社内インフラの人になりかけている。危ない。

あ、一つポジティブな話題としては、初めてOSSへプルリクを投げました!
英語でむっちゃ怒られて涙目になったのは内緒。

そして結婚しました!

そしてそして、つい先日の12月25日に、会社の元同僚と入籍しました!
なんとお付き合いして2ヶ月のスピード婚でした。

自分達でも驚くようなスケジュールでの結婚になったので、
お世話になっている方々に事前にご報告できず、本当に申し訳ありません。

まだ奥さんを自分の親に顔合わせしていないくらい、
本当にいきなりの結婚になってしまいました。
自分の親のみならず、奥さんのご両親方々にもご迷惑をおかけいたしました...!

結婚はノリと勢いが大事だって誰かが言ってましたけど、
ノリで誕生日デートして、
ノリでお付き合いして、
ノリで物件見に行って、
ノリで同棲始めて、
ノリで結婚することになった
っていうのがここ2ヶ月の出来事だったのは、
今振り返ってみても本当にビックリでした。
(ノリって言ってますが、もちろん自分なりにキチンと考えた末の結婚です!ご心配なく!)

お付き合いはまだ3ヶ月目ですが、同僚としての付き合いは2年来なので、
特に気を揉むこともなく、毎日笑顔の絶えない家庭です!
早速尻に敷かれ始めている気がしないでもないですが...

当日お祝いしてくれたエグザイルスの健太郎さん、将人さん、お客さんのみなさん!
(お祝い事には必ずエグザイルスに行くようにしています!いつもお祝いメニュー頂きスミマセン!大好きです!生ハムとパエリアが本当に美味しいのでオススメです!)

FaceBookやLINE等でリアクションしていただいた100人近いみなさま!

婚姻届の証人を快く受けてくれた上杉社長!

本当にありがとうございます!2017年も頑張ります!

あ、お祝いもお待ちしております👀
わたなべ欲しいものリスト@Amazon

ESP-WROOM-02でトイレの空き監視システムを導入していた話

トイレが足りない

僕が務めている会社なんですけど、
社員70人に対して男子トイレ個室が2個しかないんです。
ちなみに法律は60人に1個あれば良いらしいんだけど、それ絶対無理でしょ。
厚労省の社員さんどんだけトイレ我慢してるんや....
トイレが足りなすぎて、外部で2回もトイレLTしてるくらいです。

2010年くらいからトイレ空き監視

ということで空きを可視化するのは必然だったんですよ。
お腹ゆるいし。死活問題。

外部LTの資料にも記載ありますが、最初は50mの延長コードでした。
で、オフィスが引っ越しした後、2013年くらいからずっとIoTで実現してました。

リプレイス完了

3年前くらいに作ったシステムなので、
有線LANだったり1個室に対して1システム必要だったりと、
使い勝手が悪くなってきました。

そこで昨日、ESP-WROOM-02で作りなおしたものを社内リリースしました!
www.switch-science.com
2000円弱でwifi内蔵マイコンとして動くとか世の中おかしい。いや、嬉しい。

HPだけでなく新たに廊下にLEDでステータスがわかるようにして、
別の階のトイレが空いたら真っ先に向かえるようになりました。

ESP-WROOM-02はArduino互換なので、特に難しいことなくプログラミング可能。
センサとビューア間通信はWebSocketを使ったんだけど、
それは社内で知見があったRatchetを使いました。
まあただのエコーサーバだけど。
socketo.me

ソースコード

特にソースコード整理とかしてないですが、ソースコード公開しておきます。 github.com

購入したパーツ一覧

今回は1フロア男女計2個室のセンサ、全体4個室分のLEDを実装したので、
12000円くらいかかりました。
最小構成だと3000円くらいかな?
参考までに買ったパーツも置いておきます。
ロボットケーブルが意外と売ってなくて困った。
www.switch-science.com akizukidenshi.com akizukidenshi.com akizukidenshi.com www.switch-science.com akizukidenshi.com akizukidenshi.com

UP by jawboneのAPIを触ってみた

Amazonのタイムセール、凄かったですねー。
訳分かんないくらい安いのがいっぱいありました。

Amazon.co.jp 2016年 Spring Time Sale f:id:rela1470:20160328182804p:plain
中でも気になったのがこれ。

いわゆるフィットネスバンドです。
定価が16000円もするのに、3480円ですよ。すごい。

ただ個人的に腑に落ちないのは、
僕が一週間前のセールで買っちゃってるってことですね。
f:id:rela1470:20160328195037p:plain

いや、5800円でも充分安いんですよ?
でも2320円ってあれですよ。
いきなりステーキで熟成肉サーロインが230gも食べられるじゃないですか。

ということで、非常に悔しかったので飛び入りLTしてきました。
(ただし、本当に飛び入りだったので資料はない)
以下、お話したことのまとめです。


UP by jawboneのAPIについて

いろんな会社から出ているフィットネスバンドですが、
jawboneのUPはAPIが非常に充実しているんです。

APIのエンドポイントが多いのもそうですし、権限が広く取れるのも嬉しい。
更にWebhookにまで対応してくれるなんて、非常に夢が広がりますね!

簡単なAPIテストならコンソールが用意されています。
ここを弄るだけでも楽しいです。

自分で実装する際には、githubで先人の知恵を検索すると良いです。
僕はいつもPHPを触ってるので、PHP実装のこれを参考にさせていただきました。

開発者登録

さて、では開発者登録を行いましょう。
開発者登録は企業でも個人でも出来るとのことなので、僕は個人名で登録しました。
f:id:rela1470:20160328195039p:plain

アプリ登録

開発者登録できたら、次はアプリ登録を行いましょう。
f:id:rela1470:20160328195036p:plain 名前は全世界でユニークでないといけない?適当にprefix付けましたが、ちょっと面倒でした。
後はアプリURL、認証URL、認証後のリダイレクト先の登録必須です。
f:id:rela1470:20160328195038p:plain
登録出来たら公開鍵と秘密鍵が発行されるので、適宜メモりましょう。
(後からでも参照はできます)
f:id:rela1470:20160328195035p:plain

jawbone-oauth-phpの場合

config.phpを設定します。鍵周りとURL設定、どの権限が欲しいか等が定義されています。
f:id:rela1470:20160328195034p:plain
設定した後、connect.phpにアクセスすると、jawboneの権限承認画面に飛ばされるはずです。
f:id:rela1470:20160328195032p:plain
承認された場合、callback.phpに転送され(アプリ登録で設定したURL)、GETパラメータでトークンが送られているはずです。
jawbone-oauth-phpのデフォルト状態では、User情報を取得できていることと思います。
f:id:rela1470:20160328195030p:plain
僕の現在の体重は67.8kgということがわかりました。

callback.phpをいじって、更に歩数履歴も取ってみました。
f:id:rela1470:20160328195031p:plain
デフォルトでは10日分の履歴が取れました。
中でも面白いのが、snapshot_imageとして送られてくる画像URLです。
該当データのグラフ等をpngファイルで用意してくれています。
f:id:rela1470:20160328195033p:plain
prefixはhttp://jawbone.com/です。

まとめ

以上、触りだけですがAPIのご紹介でした。
ぜひ皆さんも触って、健康になってください!