2020年5月に読んだ本たち

上げるのが遅くなってしまった。。なんとか覚えてる限りで。

テレ東のプロデューサーが書いたアイデア発想術の本。テレ東が尖ったバラエティを生み出し続けている秘訣、みたいなものが知りたくて手に取ったが、著者以外の有名Pの発想法とかも載ってて面白い。アイデアを絞り出さなきゃいけない境遇に陥ったら読み返してもいいかも。

中国雑話 中国的思想 (文春新書)

中国雑話 中国的思想 (文春新書)

鬼才、酒見賢一のエッセイ。最初は劉備とか関羽とかメジャーどころで始まるのが最後は中国拳法や王向斎(誰?)の話になり、この取り留めのない感じはさすがの酒見ワールド。

7月にはデビュー作、後宮小説(新潮文庫)のアニメ版、『雲のように風のように』がBSで放送されるし、『泣き虫弱虫諸葛孔明』が文庫版でもようやく完結。そろそろ新作こないかなー。

数理モデルを使って実社会の課題を解決しよう! という本。入門者にも向けて書かれてるので内容的にそこまで高度じゃないが、ところどころ著者たちの実体験に基づいたTipsがあり有用。あといろんな分野の例が載っており新鮮さも味わえる。

納豆は日本独自の食べ物と思われがちだが実際はそうではない。辺境作家、高野秀行がアジア納豆に魅了され、現地に行き徹底的に調べ尽くした本。有名な『謎の独立国家ソマリランド』のようなドキドキワクワク感はそんなにないが、未知の世界に触れるのはやはり面白い。

ちゃんと施策ごとに適切な定量指標によってマーケティングの成果を測りましょうね、という当たり前といっちゃ当たり前の話。ここ数年はマーケ系の分析をやってるんだが、いろんな企業の話を聞くと莫大な予算を注ぎ込んでる割に効果をロクに測れてないケースがままあって本当にもったいない。まあ、マーケティング業界からは離れることにしたのでもういいっちゃいいんだが。。

速習 TypeScript 第2版 速習シリーズ

速習 TypeScript 第2版 速習シリーズ

6月からTypeScriptをやってます。

最強の地域医療 (ベスト新書)

最強の地域医療 (ベスト新書)

地域医療体制の拡充に心血を注ぐキャリアを重ねながら、自らが白血病になった医師が、その経験も交えながら表題通り地域医療のあるべき姿を論じた本。 前半の自信の治療経験の話は鬼気迫るものがあるし、いいこともいっぱい言ってるんだが著者の書きっぷりがあまりに敵を作りそうな感じで、更に突然陰謀論めいた話や嫌韓の話が出てきたりして、まあ自分だったらついていきたいタイプではないな。

著者のWikipediaページ見たら闇。やばい。

速習 React 速習シリーズ

速習 React 速習シリーズ

6月からReactをやってます。

6月からKotlinを(略

急に新しい言語やフレームワークを勉強し始めたり、医療系の本を読み始めたのは環境の変化があるからです。そのうち書きます。

scipy.optimize.minimizeで積立投信のリバランスをする

積立投信を始めて3年になる。

国内債券、外国債券、国内株式、外国株式(先進国)、外国株式(新興国)の5つのインデックスファンドに決まった割合で毎月投資してるんだけど、時間経過とコロナでの乱高下の影響もあり、ポートフォリオが崩れてきた。これをリバランスして適切な割合にしたい。

リバランス用に潤沢な資金があれば簡単な計算でできるんだけど、そんな資金はなく毎月の投資額の中で、いつもと割合を変えてやりたい。となると話がややこしくなる。

種類 目標比率 保有
国内債券 0.3 28万円
国債 0.1 11万円
国内株式 0.1 12万円
外国株式(先進国) 0.25 30万円
外国株式(新興国 0.25 24万円
合計 1.0 105万円

このケースで5万でリバランスしたいとする。すると110万円で目標比率にしたいので

種類 目標比率 目標保有 保有額との差
国内債券 0.3 33万円 5万円
国債 0.1 11万円 0万円
国内株式 0.1 11万円 -1万円
外国株式(先進国) 0.25 27.5万円 -2.5万円
外国株式(新興国 0.25 27.5万円 3.5万円
合計 1.0 110万円 5万円

マイナスが出てしまう。

売却すると税金かかるしそんな面倒なことはしたくないので、1ヶ月でリバランスするのは諦めて複数月かけて徐々に目標比率に近づけていきたい。

しかしどういう比率で買っていけばいいのかが分からない。上記の場合、国内株式と外国株式(先進国)を売らない代わりに国内債券と外国株式(新興国)の購入額を減らせばいいんだろうけど、具体的にはいくら買えばいいのか、簡単な計算では分からない。

しかもややこしいことにつみたてNISAもやっているので、その縛りがある。つみたてNISAの枠は使い切りたいが、購入できるのは株式だけ。

つまりお前は何をしたいのか

  • それぞれの商品の投資額は0円以上
  • 全商品の投資額の合計がy円
  • 国内株式、外国株式(先進国)、外国株式(新興国)の投資額の合計がx円

以上を満たした上で、理想のポートフォリオに一番近付く投資額を決める。

「理想のポートフォリオ」との差は、上記目標保有額と、投資後の実際の保有額との2乗誤差の和で定義すればよい(絶対値誤差でもいいんだが)。

さて、これで問題の定式化はできたので、これを scipy.optimize.minimize で解くぞ

import numpy as np
from scipy.optimize import minimize

ratio = np.array([0.3, 0.1, 0.1, 0.25, 0.25])  # 目標比率
current = np.array([*****, *****, *****, *****, *****])  # 現保有額(ないしょ)
amount = *****  # 月の投資額(これもないしょ)

# 目的関数の生成
def generate_f(ratio, current, amount):
    def f(xs):
        goal = (sum(current) + amount) * ratio

        # 10000で割るのは最適化エラーを防ぐためのワークアラウンド
        return sum((current + xs - goal) ** 2) / 10000
    return f

f = generate_f(ratio, current, amount)

# 制約条件

# 各商品への投資額は0以上「月の投資額」以下
bounds = [(0, amount) for _ in range(5)]
# 全商品への投資額の合計が「月の投資額」に等しい
# つみたてNISA商品への投資額の合計が目標額(33300円)に等しい
cons = ({'type': 'eq', 'fun': lambda xs: sum(xs) - amount},
        {'type': 'eq', 'fun': lambda xs: sum(xs[2:]) - 33300})

# initialは何でもいいけど、とりあえず均等配分しておく
x0 = np.array([amount / len(ratio) for _ in ratio])

# 最適化!
result = minimize(f, x0, bounds=bounds, constraints=cons)

# 0なら成功
print(result.status)
print(result.x)

(つみたてNISAは年額40万円までなので400000 / 12 ≒ 33300円を毎月積み立てている)

ここまでやるなら買付まで自動でやりたいが、残念ながらAPIがないので無理だった。残念。

Nuxt + Firebaseで開発しつつFirebase依存は避けたいという話

サービスのプロトタイプを高速で開発したいという動機があり、最近はNoCodeもだいぶ使えるようになってきたらしいとはいえ、ソフトウェアエンジニアとしてはやっぱりコード書きたいよね、ということでどんな技術スタックがいいか模索中。

昔Vue書いてたしNuxtいいって聞くし、でもってサーバサイドは軽くしたいからFirbaseかな、とNuxt + Firebaseでやってみることに。

ここで一番の問題はサーバサイド、DB、インフラが完全にFirebaseに依存すること。もちろんマーケットフィットする前の初期のプロダクトにおいてロックインを許容してスピートを優先することは必ずしも悪いことではない。とはいえ後でサーバサイド変更できるよう、Firebaseとはできるだけ疎結合しておきたいよね。ということでいろいろ調べつつ考えたのである。

と前置きが長くなったけど、具体的にはRepositoryパターンを採用してFirebase操作はそっちに押し込む、でもってRepositoryはDIして使うことで簡単に差し替え可能にしましょうという、それだけ。

/repositories/profileRepository.js

class ProfileRepository {
  constructor (firebase) {
    this.firebase = firebase
  }

  async resolve (uid) {
    ...
  }
}

export default ProfileRepository

/repositories/index.js

import ProfileRepository from './profileRepository'

class Repositories {
  constructor (provider) {
    this.profileRepository = new ProfileRepository(provider)
  }
}

export default Repositories

こんな風に、レポジトリとエントリーポイントを作っておく。

そしてpluginでinjectしてDIすればOK

/plugins/repositories.js

import firebase from './firebase'
import Repositories from '~/repositories'

const repositories = new Repositories(firebase)

export default ({ app }, inject) => {
  inject('repositories', repositories)
}

使う側ではこんな感じ

export default {
  async asyncData ({ app }) {
    const uid = ...
    const profile = app.$repositories.profileRepository.resolve(uid)
    ...
  }
}

本当はRepositoryは抽象クラス作って継承させてとかいろいろあるけど、基本線はこんな感じで、とりあえずやってみる

2020年4月に読んだ本たち

コロナで在宅勤務になり通勤がなくなると、本を読むペースが落ちる。

質問力を高めたいなーと思い手に取ったが、質問術やハウツー的な記述はあまりなくカンブリア宮殿での筆者の実践がメイン。 それはそれでいろんな経営者の考えが分かって面白いんだが、求めていたのはそういうんじゃなかった(事前に調べないのが悪い)。

「その日暮らし」の人類学~もう一つの資本主義経済~ (光文社新書)』で知った著者の続編。前回と同じくタンザニア人が作り上げるインフォーマル経済を扱うが、今回は香港で「チョンキンマンションのボス」を自称するカラマという人物を軸に描いていく。

学びというか、得られる知見や考えは前著とあまり変わらないが、彼らがSNS上に作り上げたネットワークとかの記述とかはなかなかに面白い。 こういうの読むと海外行きたくなるが、当分行けなそうで辛い。

一回マーケティングのイロハをちゃんと学ぼうと思った。が、それならいきなり4.0から入るべきではなかった(笑

新しい時代のマーケティングについて解説しているが、まずは伝統的マーケティングについて理解しないと。ということで3.0とか以前の著書も読むぞ。

ヤクザライターの重鎮(?)2人による対談。暴力団排除条例後のヤクザの実態や、今後の見通しについての対話が面白い。 ヤクザのイメージって龍が如くだったり映画のイメージが強いが、現実はあんなもんじゃないよねっていう、まあ当たり前の話。

2020年3月に読んだ本たち

去年エラい売れたノンフィクション。なんとなく敬遠してたがついに読んだ。

これは一体何の話か、と問われると意外と難しい。社会の話、格差の話、差別の話、成長の話、親子の話と色々あり。レビューじゃ伝わらないので読むべし。

なんか強化学習っぽいことを学びたくて、まあ強化学習の一分野でしかないけどバンディットに手を出した。読むモチベーションと本の難易度があまり合ってなくて、だいぶ流して読んだ。けど概要は掴んだ。はず。

道徳と運の話。道徳的には基本的には「善い行いをしたら善い報いがある」としたいのだが、「でも結果って運で決まるじゃん」という難しい問題がある。 その問題に時代時代の倫理学者がどう立ち向かってきたのかを記す、倫理学史の本。神や死後の世界の存在を信じられなくなった現代においては更に難しい問題。そして人類が倫理的に進歩したからこそ、今の倫理学が難しい、という話もある。

久しぶりに哲学の本を読んだがなかなかよい。日常のあれやこれやの悩みがちっぽけに思えてくる。

『イシューからはじめよ』の著者が今の日本の現状と、これから巻き返す戦略について書いた本。まずは日本の現状分析から始まるんだけどこれが辛すぎる。30年間負け続けてる。この人はポジティブだから「伸び代がある」と書いているが、むしろ絶望する人の方が多いんじゃないか。

この本にある処方箋はいちいちその通り。でも一番の問題は「今の日本は諸外国に比べて完全に負けているので、謙虚に外国から学んで追いつき追い越せすべし」という認識に国民の多くが立てるかどうか。それはかなり怪しい。コロナが何かのきっかけになればいいんだけど。

なぜ手に取ったか忘れたがとにかく読んだ。そうしたら手に取ったのも納得の本。

サイゼリヤの創業者が主に飲食店経営への指南として書いたものだが、とにかく合理的で納得感がありすぎる。 初っ端から「私は店長に売上目標は課していない。売上は立地とメニューと店舗面積で決まり、それは店長がコントロールできるものではなく本部が責任を持つべきだからだ」とかすごいことが書いてある。その他にも名言連発。サイゼがここまで安定成長したのも頷ける。

業界変化からするともうかなり昔なのだが、サブスクリプション型サービスが乱立する最中の2016年にテレビの将来について書かれた本。とはいえサブスク型サービスの歴史とかは勉強になったし、ここに書かれているメディアの未来は今でもあまりズレていないように思える。

2020年2月に読んだ本たち

日テレが視聴率下位からフジの牙城を崩してトップになるまでのお話。内容的には、当時社員だった人が書いた 『日本テレビの「1秒戦略」(小学館新書)』とかぶるところが多かった。徹底的に視聴率にこだわり、そのために組織から変えていく。目標設計大事という話。

でも今は世帯視聴率にこだわる時代ではなくなっている。たぶん日テレも(世帯視聴率では肉薄してきたテレ朝とは対照的に)世帯視聴率だけ追っていないよなとは思う。

データから正しく因果を見抜くための方法について、分かりやすく書かれた本。この分野だと今までは『岩波データサイエンス Vol.3』が定番だったけどやや専門性の高い内容だった。この本は初学者にも比較的分かりやすく、サンプルコードも豊富。人におすすめできる一冊。

断片的なものの社会学

断片的なものの社会学

インタビュー調査による生活史の記述を主な方法論とする社会学者が、論文には落ちないような、とりとめもない断片を、とりとめのないまま綴ったエッセイ(?)。読後感もとりとめがない。とても不思議な本。

イデア発想のノウハウを知りたくて読んだ。が、前半はアイデアソン(複数人集まって集合知的にアイデア発想するワークショップ)の意義や手配、進め方についての記載が多く期待と違った(が、書名から当然といえば当然。。)。とはいえ後半には各種手法がまとめてあって、助かる。

基礎から学ぶ Flutter

基礎から学ぶ Flutter

年末年始にAndroidのネイティブアプリ開発を勉強してたが実際開発しようとするとネイティブ開発は断念。XMLで画面記述するのが辛いのと仕様のアップデート激しすぎてついてけない。加えてiOSも同時にやるとなると辛すぎるのでクロスプラットフォームで一番筋がよさそうなFlutterをやることにしました。今度はよさげ。

今更読みました。DDDってユビキタス言語が大事だ! とはよく聞いてたのでてっきりユビキタス言語の実例とか作り方とか出てくると思ったらあんまり出てこないのね。

2020年1月に読んだ本たち

半年ごとだとスパン長いので、1ヶ月でまとめることにします。

サトシ含む、ビットコイン初期に関わった人たちの物語。舶来物のノンフィクションの特徴として人物がひたすら覚えられないんだけど、それを差し引いても面白い。

2月にタイ旅行に行ったので、予習(?)として読んだ。世界史の授業でメインでやる地域ではないので初めて知ったことが多い。

東南アジアで唯一独立を守り続けた「世渡り上手」な部分。特に第二次大戦で、日本の圧力で枢軸国側で参戦せざるを得なかったが、首相が雲隠れして首相なしで宣戦布告、それで戦後に「あれは首相いないから無効だよ」と乗り切るのすごすぎる。

個人開発的なことをやっていて、アプリ作りたかったので読んだ。が、XMLでの画面記述がしんどい上にアップデート激しくて情報がすぐ陳腐化する。つらすぎるのでネイティブ開発は諦めてFlutterでやることにした。

アジャイル開発の実践の本。単なる技術的な話ではなく、まさに「がプロダクトをつくる」という部分にフォーカスしている。とはいえアジャイルとリーンについて他の書籍読んでれば、特に真新しい話はないという気も。

テレ東のつくり方

テレ東のつくり方

テレ東の経済番組のプロデューサーの本。これはこれで面白かったんだけど、タイトルからテレ東のもう一つの特徴である、尖ったバラエティの話も期待してたんだけどほぼ言及なかった。残念。