tileを使ってみました

前の会社を辞めたときに、同僚からtileをいただきまして、使い始めましたので、その使用感を報告します。(島田くん、みているかい?)
tileは、スマートトラッカーといって、失くしたくないものに一緒に付けておくと、スマートフォンからそれがドコにあるかわかるというものです。
いかにも、IoTって感じですよね。米国でシェアNo.1なのだそうで、よいものをありがとうございました。

thetileapp.jp

 

tileでできること
スマートフォンからtileの音を鳴らす
・tileからスマートフォンの音を鳴らす
・最後に検知した場所を表示
・他のユーザに探してもらう
 
仕様としては、Bluetoothで30m以内が探索可能な範囲なので、鍵や財布など、近くにあるはずだけれど、ドコに置いたっけ?みたいなものに付けておくようです。
また、Bluetoothの範囲を超えてしまった場合は、最後に同期していた場所が分かるようになってるので、探し物が最後に同期していた場所から移動していなければ、辿ることができます。
さらに、それでも見つからない場合は、他のユーザに探してもらうことができるようですが、それが財布だった場合、帰ってくるのでしょうか?どれだけの人が探してくれるのでしょうか?
モラルやユーザ数の問題があるのではないかと思います。

 

私は、鍵も財布も同じ場所に置きますし、失くすようなこともなく、恩恵がないかなと思い、思い切って子どもに付けてみました。
息子3歳、云うことは聞かず、ちょこまかと動き回り、迷子になることしばしばという困った年ごろです。
 
紐をつけて、首かけスタイル(普段は服の中へIN)

f:id:nby2ki:20190311231117j:plain

 

スマートフォンから位置確認

f:id:nby2ki:20190311231311j:plain


範囲が30mなので、本当にドコかへ行ってしまうと探しようがないのですが、ショッピングモールなど、人ごみの中、ちょっと見失ってしまったというような場合に、場所が分かり、迷子を阻止することができました。
出かけるとき、少し安心。

 

GPSだと便利なんですけどね、GPSのサービスは月額利用料がかかります。

本当に、子どもの見守りをする場合は、こういったサービスを利用します。

tileは手軽に利用できますね。

vue.jsでwebアプリケーションを作った

以前、ruby on railsで「午後ローデータベース」というwebサイトを作成したのですが、これをvue.js + laravelで、SPAとして作り直しました。

gogoro.141-lab.com

 

以下のライブラリを利用しました。

・フロントエンドフレームワーク

vue.js

jp.vuejs.org

 

cssリセット

CSS Tools: Reset CSS

 

cssフレームワーク

Kube CSS & JS Framework

 

・トースト通知

github.com

 

・アイコン

fontawesome.com

 

webフレームワーク

laravel.jp

 

vue.jsを利用した感想としては、処理がシンプルに記述でき、コード量がかなり少なく済んだことが、一番印象に強いです。htmlタグにvue.jsの機能を属性として書いていくのですが、従来の作り方だと、イベントを拾って、domを丸ごと置き換えていくようなところを、vue.jsでは、domの構造をそのまま記述できるので、プログラムの見通しがよくなり、この新しさは、作っていて、単純に面白かったです。あと、フロントエンドフレームワークは、Angularを少しやったことがあるんですが、それと比較して、とても分かりやすいというところも、よかったので、気に入りました。今後も使っていきたいと思います。

 

ニッチな情報を取り扱っているので、アクセスの少ないサイトなのですが、web apiも公開しましたので、みなさま、ぜひ利用してください。

統計ダッシュボードAPIの活用

埼玉県三郷市の統計データをグラフ表示するアプリケーションを作成しました。

 

三郷市の統計

 

総務省統計局のサービス「統計ダッシュボード」の公開APIを使って、データを取得しています。

「統計ダッシュボード」は、グラフ表示できるデータが予め整理されていますが、このサイトからは、存在するデータ全てをグラフ表示することができます。

地域が、埼玉県三郷市なのは、私が住んでいるからです。

 

ライブラリの構成は、先日、作成した「統計ダッシュボードAPIテストフォーム」と同じで、グラフ表示は、highchartsを利用しました。

se-diary.hateblo.jp

 

www.highcharts.com

 

highchartsは、簡単にきれいなグラフが描けて、素晴らしいライブラリでした。

商用でなければ、無償で利用することができます。

本家サイトのグラフ表示はd3.jsを使っていて、かなりプログラムが作りこまれているようでした。

統計ダッシュボードAPIテストフォーム

総務省統計局が扱う主要データを提供する「統計ダッシュボード」というサービスでAPIを公開していて、何か活用できないかと、ひとまずAPIのテストフォームを作成しました。

 

統計ダッシュボードAPIテストフォーム

 

htmlベースです。以下を利用しました。

 

purecss.io

yahoo!が提供するcssフレームワーク

シンプルで好み。

 

jquery.com

ajaxするので、使いました。

 

dimsemenov.com

ポップアップのライブラリ。

デザインがシンプルで、使いやすかったです。

 

 

Toastr by CodeSeven

トースト通知のライブラリ。

これも、デザインが気に入りました。

 

riotで入力部品を分割したかったのですが、描画タイミングが掴めず、描画前に値を読めない、イベントの設定ができないなど、上手くいかず、コンポーネント系は、勉強していきたいと思います。

PHP開発をスピードアップする、CI(継続的インテグレーション)とCD(継続的デリバリー)+グローバル開発

CI、CDの勉強会に参加してきました。

osslabo.doorkeeper.jp

 

株式会社コウェルというベトナムのオフショアを得意とする会社が主催する勉強会で、CI, CDの概要、オフショア、PHP開発についての内容だったのですが、実体験を踏まえたものになっていて、興味深かったです。

 

気になった点をメモ。

 

■CIの導入について

自動テストの導入はコストがかかるので、プロジェクトの途中からはできなかったと、難度の高さが伺えたが、ビルドやデプロイの導入であれば、それほど難しくはなく、おすすめであるとのこと。

30分の作業が5分に短縮され、ヒューマンエラーもなくなったそう。

 

■Laravel Homestead

Laravelの開発環境を含んだLaravel公式のvagrant box。

株式会社コウェルでは、ベトナムのオフショア開発を行っていて、vagrantをhomesteadで構築して、開発環境を統一していたとのこと。PHP開発のフレームワークは、Laravelの実績が最も多いそう。

 

・マニュアルのhomestead

Laravel Homestead 5.1 Laravel

 

vagrant boxのhomestead

app.vagrantup.com

 

 

■Laravel Dusk

テストの自動化について、画面はどのようにテストしているか質問したら、Laravelに画面テストの機能が備わっていると教えてもらった。

たぶん、Laravel Duskのことではないかと思う。

「From Dusk Till Dawn」っぽい名前がいいね。

 

・マニュアル

ブラウザテスト(Laravel Dusk) 5.4 Laravel

 

あと、キーワードとして、ヘッドレスchromeとも云ってました。

ブラウザを使わないブラウザテストができるようです。

developers.google.com

 

弊社では、継続開発案件が少ないので、導入コストが障壁になる。

あと、やってくれそうな人もいないのだけど、なんとかやれないかな。

MySQL 5.7 初心者向けセミナー ~チューニング基礎編、SQLチューニング編~

oracle社のmysql勉強会に参加してきました。

atnd.org

 

4時間という長丁場で、ボリュームたっぷりに講義いただきました。

勉強会で新しく覚えたことをメモしておきます。

 

■ツール

以下の公式ツールが便利らしい。

 

ベンチマーク測定ツール

mysqlslap

SysBench

 

統合開発環境

MySQL Workbench

 

次期バージョン

次期バージョンは5.7ではなく、8.0となる。

クエリキャッシュ機能がなくなることが決定している。

(クエリキャッシュはあまり使うべきものではないとのこと)

 

パラメータの妥当性確認

パラメータチューニングに対して、利用状況からパラメータ値の妥当性を判断することができるものがある。

例えば、my.cnfにsort_buffer_size(ソート用のメモリサイズ)を設定できるが、これに対し、show statusコマンドで、Sort_merge_passes(ファイルを利用したマージソートのパス数)を確認する。

Sort_merge_passesがカウントされている場合、sort_buffer_sizeが不足し、ファイルアクセスされているということなので、sort_buffer_sizeを増やしてみようかといった対処をする。

 

・パラメータと確認項目の対応(詳細は調べて)

設定値(my.cnf) 確認項目(show status)
max_connections Max_used_connections
thread_cache_size Threads_created
sort_buffer_size Sort_merge_passes
query_cache_size Qcache_hits, Qcache_inserts
query_cache_type Qcache_lowmem_prunes

 

■スロークエリログ

指定した実行時間以上かかるクエリをログ出力できる仕組み。

ツールmysqldumpslowで、スロークエリログの集計ができる。

 

パラメータの妥当性確認とスロークエリログは積極的に使いたいと思いました。

ピープルウェア

ピープルウェア

を読みました。

 

システム開発における人間関係や職場環境について言及した本です。 

(技術のことは一切出てきません)

1987年初版で、IT本の名著といわれています。

 

気になったことをいくつかメモします。

 

■目標値設定者による生産性の違い

目標値を設定した人によって、生産性が変わるというデータ

マネージャー < プログラマーとマネージャー < プログラマー < システムアナリスト < 目標なし

 

マネージャーが目標を設定すると生産性が最も低く、目標なしとした場合に生産性が最も高くなる。誤った見積もりが、作業者のやる気を削ぐとのこと。

→分かる。

 

■マネジメント

マネージャーの役割は、人を働かせることにあるのではなくて、人を働かせる気にさせることである。

→管理者の基本として、覚えておきたい。自分が部下として、上司に働く気させられた場面は、上司のすごい仕事振りを見せられたときだ。上司は、部下よりも、質と量を高く働いていないとダメだと思う。

 

プログラマーの能力差

プログラミングコンテストのデータを分析した結果が掲載されていて、最優秀者の測定値は、最低者の約10倍である。

→10倍の性能差!管理をしていると、コイツ使えねえ、どうする!?という場面がある。このデータを見て思うことは、単価が高くても、生産性が高ければ、割に合うということ。弊社の開発者の単価は高くないので、協力会社の開発者に来てもらう場合も、高いとダメとなってしまうが、2人分、3人分のパフォーマンスを出してくれるのであれば、それは安いのである。だけど、生産性の比較なんて通常業務ではできないし、それは、終わったあとに分かることだ。

 

■フロー状態

ひとつのことに没頭し、ほとんど瞑想状態になること。作業を途切れさせない環境が必要で、別作業との切り替えや、電話による作業の中断がフロー状態の妨げとなる。確か、プロジェクトは一人、ひとつが望ましいと書いてあった気もします。

ドラクエ11のゾーン!私はプロジェクトを掛け持ちしているし、マネージャーの管理業務もあり、やることが多すぎて、もうフローに入れません。作業効率を上げたいのだけれど、タスクが多すぎて、集中できない。どうしたものかと思っている。

 

■人材を揃える

マネージャーは、部下の本質的な人格を変化させるほどの影響力を持てないのが普通である。これは、最初に人材を揃えることが何よりも重要だということを意味する。

→部下の育成とよく云われるのだけど、簡単に人は変わらないんだよ。そして、プロジェクト開始時に、優秀な人を揃えるのは難しい。

 

■人的資本への投資の評価

プロジェクトを抜けた人の代わりに、新しい人を入れると、生産性が低下する。

→プロジェクトは、同じメンバーでやりきるのが望ましい。私の勤めていた前の会社は、同一プロジェクトでよく人の入れ替えをしていて、いつも、なんで?と思っていた。

 

■満足感を与える打ち上げ

仕事をいくつかに分割し、その一つひとつが、それなりに満足感を味わえるようにする。

→チームのモチベーション維持に活用したい。

 

人によっていろいろな気づきのある本だと思いました。