統計ダッシュボード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のゾーン!私はプロジェクトを掛け持ちしているし、マネージャーの管理業務もあり、やることが多すぎて、もうフローに入れません。作業効率を上げたいのだけれど、タスクが多すぎて、集中できない。どうしたものかと思っている。

 

■人材を揃える

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

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

 

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

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

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

 

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

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

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

 

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

シブサワ・コウ 0から1を創造する力

シブサワ・コウ 0から1を創造する力

を読みました。

 

昔は「三国志」が漫画、人形劇などで、大好きだったので、光栄のゲームもよく遊んでいました。

ただ、光栄のゲームは高額なので、子どもには、多すぎるシリーズを追えなくなったのか、しばらくすると遊ばなくなりました。

ですが、最近、司馬遼太郎の「国盗り物語」を読んだら、また、無性にやりたくなり、PSPでダウンロードして、遊んでいます。

いまは廉価版があり、昔のゲームが安価に遊べるので、助かります。

 

歴史シミュレーションゲームって、結局、そんなに駆け引きはなくて、同じことの繰り返しになってしまうんですが、実在の人物を操れるというキャラクターものとして不変の面白さがあると思います。

世界観を楽しむのであれば、何度でも遊べる。

また、年齢的にもアクションは、しんどくなってきたので、落ち着いて取り組めるゲームがやりたいという気持ちにもヒットしました。

と、そんな経緯で、本書に興味を持ちました。

 

内容は、シブサワコウ=襟川社長の歩みです。

光栄は、最初は染料問屋だったんですが、奥様からパソコンをプレゼントしてもらい、趣味で始めたゲーム作りを本業にしていったそうです。

もともと、ゲームと歴史が好きでということなんですが、独学で始めたことをここまで発展させているわけで、技術者としても、経営者としてもすごい方だなと思いました。

好きと才能について考えさせられます。

 

光栄はアダルトゲームを作っていた時期があるとか、ジンギスカンは世界で売れなかったとか、ファンには、ゲーム話が非常に興味深いのですが、仕事術の話としても面白いです。

 

仕事術の話としては、困難に前向きに取り組む、商品に自信を持つ、コンセプトが大事とか、一見、普通なことが書いてあるんですが、襟川社長の語り口がとても誠実なので、仕事の基本を見直させられます。

個人的には、部下に仕事を任せるときの基準は、成功の可能性が6割あると感じたときというのは、実践したいなと思いました。

 

メディア露出も多くて、話が面白いので、私が見た動画を貼りますね。

ゲームと歴史が大好きということは疑いがなく、人当たりの良さも好印象で、よりファンになると思います。

 

・神奈川ビジネス Up To Date

 

 

無印良品は、仕組みが9割

無印良品は、仕組みが9割

を読みました。

 

僕がリーダーをしていたプロジェクトが炎上してしまった。

調整で手一杯で、成果物の確認ができないでいたら、各々、好き勝手なものが出来上がっていき、最後、メチャクチャになってしまった。

コーディング規約はあったのだけれど、もっと根本的なところがいろいろとおかしくて、自分の常識は他人の常識ではないことをつくづく実感できました。

まあ、そもそも、コーディング規約すらも、守られていないというね。。

この失敗を繰り返さないために、標準化を考えるようになり、標準化の研修を受けたときに、この本を紹介された。

無印良品が標準化を取り入れたことにより、業績が回復したという話。

V字回復カッコいいですよね。

 

この本の中で実践したいと思ったことをメモ。

■チームリーダーの役割

仕組みを作って、部下の行動を変える。

→部下に、こうしなさい、ああしなさいと云うことだけを、指導というのはどうなのかと思っていたので、こういう考え方は受け入れやすい。

 

■マニュアル

「こうした方が、いいのに」を集める。

「それぐらい、口でいえばわかるのでは?」と思われるようなことまで明文化する。

・何

・なぜ

・いつ

・誰が

を冒頭に記載し、なぜそれが必要なのかを伝える。 

あと、いい具体例、悪い具体例を挙げると分かりやすい。

→この様式でいきます。

 

■提案書は「A4一枚」

会議の準備にかける時間は最小限にとどめて、実行に時間をかける。

→資料はシンプルに。

 

システム開発の標準化として、まだ、何をすべきかが分かっていない。

分野も幅広いし、内容もたくさんあるだろうから、取捨選択して、読むのが苦痛でない程度にシンプルで、なおかつ品質向上が望める内容を目指したい。

難しそう。。

時間をかけて、考えていきます。