Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

さて、ここで問題です。(将来推計人口をもとに)

愛知県に岡崎市という中核市がある。

岡崎市 - Wikipedia

平成29年12月1日現在の人口はおよそ38万人 岡崎市/統計ポータルサイト

岡崎市を独立採算制として、将来推計人口をもとに未来を少し考えてみる。

データの元はここ 日本の地域別将来推計人口(平成25(2013)年3月推計)|国立社会保障・人口問題研究所

男女5歳階級別データ- 日本の地域別将来推計人口(平成25(2013)年3月推計)|国立社会保障・人口問題研究所

【前提事項】

物事をすごく単純にするために高齢者(65歳以上)は年300万円を必要とする

税諸々も考えない。

収入はすべてその人のものとなり、そのなかでやりくりをする。

高齢者は一切の収入が無いものとし、15歳~65歳を労働力人口とする。

労働者の平均年収は600万円で推移しないものとする。

【2010年の負担】

2010年は 18%が高齢者なので、100人いたら18人が高齢

労働力人口は66.6%なので100人居たら67人が労働者

労働者の平均年収が600万円とすると40,200万円(67 x 600)が全体の収入となる。

高齢者は18人いたので、高齢者が必要とするお金は5,400万円(18 x 300)

5,400万円 / 67人 ≒ 80万円 が一人あたりの負担金

80 / 600 ≒ 13% が負担率

高齢者を支えるだけで収入の約13%

労働力人口の人たちは520万円程度は自由に利用できる。

【2040年の負担】

2040年は31.7%が高齢者なので、100人いたら32人が高齢

労働力人口は56.4%なので100人居たら56人が労働者

労働者の平均年収が600万円とすると19,200万円(32 x 600)が全体の収入となる。

高齢者は32人いたので、高齢者が必要とするお金は9.600万円(32 x 300)

9,600万円 / 56 人 ≒ 171万円 が一人あたりの負担金

171 / 600 ≒ 28.5% が負担率

高齢者を支えるだけで収入の約28.5%

2010年から2040年に移ると負担の割合は約15.5ポイント上昇する。

労働力人口の人たちは434万円程度は自由に利用できる。とは言っても100万円近く利用できるお金が減っている。

さて、この計算には0~14歳を含めていない。

0~14歳の人数は減っていく一方なのでそこにかかる"負担は"軽くなるので大した問題ではないだろう。

一方で労働力人口が減っていくので自信の首を締めているのに代わりはない。

現在進行形で真綿で首を絞めている状態

どうやって今の暮らしを続けていく?

(※ いろいろ数字いじって試したのでどこかで数字がおかしくなってるかも)

LIFE SHIFT(ライフ・シフト)

LIFE SHIFT(ライフ・シフト)

Elixir Phoenixのドキュメントを読み漁る Routing

Routing – Phoenix v1.3.0

use HelloWeb, :router と書いてRouterであると宣言している感じ

get とかは match/5 なマクロで、ほかにも POST, PUT, PATCH, DELETE, OPTIONS, CONNECT, TRACE and HEAD. があるよ

最初の引数はpath、2つめは処理をするController

複数のルーティング定義をした場合は上から順に見ていって、マッチした部分で処理を終了する

resources というのを使うとちょっと楽ができる

resources "/users", UserController とするだけで、

user_path  GET     /users           HelloWeb.UserController :index
user_path  GET     /users/:id/edit  HelloWeb.UserController :edit
user_path  GET     /users/new       HelloWeb.UserController :new
user_path  GET     /users/:id       HelloWeb.UserController :show
user_path  POST    /users           HelloWeb.UserController :create
user_path  PATCH   /users/:id       HelloWeb.UserController :update
           PUT     /users/:id       HelloWeb.UserController :update
user_path  DELETE  /users/:id       HelloWeb.UserController :delete

と解釈される。

もちろん only とか except で必要なものだけに絞ることもできる

forward を使うと他のPlugに処理を渡せる

パスヘルパーもあるよ

resource のネストもできる!便利だ

スコープ付きルートも定義できるよ scope "/admin", as: :admin do とか scope "/admin", HelloWeb.Admin, as: :admin do みたいにね

ところで pipe_through :browser ってなんだ?

https://hexdocs.pm/phoenix/routing.html#pipelines

ぐぐってたらいいまとめがあった

qiita.com

プログラミングElixir

プログラミングElixir

Elixir Phoenixのドキュメントを読み漁る Endpoint

読み漁るドキュメント

Overview – Phoenix v1.3.0

読み漁る前にまずはインストール

Elixirをインストールしたうえで、

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

Installation – Phoenix v1.3.0

プロジェクト作成

デフォルトはpostgresqlだけど、mysqlを使いたいので --database mysql をつける

$ mix phx.new hello --database mysql

Endpoint

lib/hello/application.ex がアプリ

lib/phx_retrospective_web/endpoint.ex がエンドポイントであり、スーパーバイザーである。

application.exの方はそのスーパーバイザーによって監視されるプロセス。

エンドポイントはすべてのリクエストの入口になっている。

コードリロードの設定、リクエストID、ロガー、セッション、ルーティングなどなどをEndpointに記載している。

コードリロードのON/OFFは configディレクトリ配下の dev.exs とか prod.exs のあたりを参照している。

SSL

もちろんSSLいけます

https://hexdocs.pm/phoenix/endpoint.html#using-ssl

プログラミングElixir

プログラミングElixir

Elixirでモナモナする

ScalaのEitherとかscalazのEitherTとか便利なので、Elixirでもそれっぽいことをやりたくて探してみた。

github.com

プログラミングElixir

プログラミングElixir

Elixirで型チェック

github.com

mix dialyzer で型チェックできる。初回は結構時間かかるけど、二回目以降は早い。

プログラミングElixir

プログラミングElixir

Elmに関するいろいろ

インストール

brew install elm

brew install caskroom/cask/elm-platform

資料

chuckwebtips.hatenablog.com

nulab-inc.com

イントロダクション · Elm Tutorial

基礎からわかる Elm

基礎からわかる Elm