ハンバーガーのブログ

いろいろ書く

映画キングダムを見た

あまり期待していなかったが、悪くなかった。漫画の映画化の中では、むしろ良い方な気がする

良かった点

  • 政と成蟜は漫画のまま実写化されてる感じ。ルックスも演技も文句のつけようが無い。壁や昌文君もなかなか
  • 所々漫画とは違ったが、大筋は同じで変な改変がなかった
  • 長澤まさみの太もも

良くなかった点

  • 王騎のサイズ感
    • 漫画は身長が 一般兵 < 騰 < 王騎 だったような気がするけど、騰役の要潤がそこそこ大きい(185cm)ので、相対的に王騎役の大沢たかお(181cm)が小さく見えて、迫力が足りなかった
  • 信の演技
    • 別に山崎賢人が悪いってことではなく
    • 漫画って結構思ってることも口に出してるけど、実写でそれをそのままセリフにするとテンポが悪い
    • 心情や思考の説明はナレーション(?)とかにして、その最中もアクションしててほしい。信は特に主人公ってこともあってかそういうセリフが多くて、ちょっと剣合わせてすぐセリフで中断、のパターンが多すぎた
    • てか主要キャラが叫んだ時みんな急に戦うのやめるから、戦場でそんなんだめだろって考えてしまった
  • 割と原作通りだったので、ちょっとでも違うシーンがあると気になってしまった
  • 楊端和の見せ場が少なくて強そうに見えなかった

良くなかった点 が長くなってしまったが、逆にそれ以外は不満なかった。見て損はないと思う。進撃の巨人テラフォーマーズなど、最近の漫画実写シリーズの中ではかなりいい方だし、続編あるなら是非見てみたい。

めっちゃ高い目覚まし買った(inti4)

朝弱いマンです
小学校の頃から、趣味を聞かれて「寝ること」と答えていたくらい寝るのが好きで、社会人になった今でもたまに寝坊します。
朝起きれないくせに夜は眠くならないので、平日は大体3時に寝て8時くらいに起きる生活をしてます

いろいろあってめっちゃ高い目覚ましを買い、早1ヶ月経ちました。
使ってみるといろいろ思うところがあったので、感想を書いてみたいと思います。

なんで買ったか

そもそも好きで夜型になってるわけではありません。
夜型で得したことは殆ど無いし、社会人になれば朝型になれると思ってました。
できることなら、朝早く起きご飯を食べて、コーヒーを一杯飲んでから30分前に出社したりしたいです。
でもそれは叶わなかった・・・なぜなのか・・・

30過ぎても結婚してもその生活は変わることなく、ずっとモヤモヤした生活を続けてきました。
で、この番組ですよ。マツコの知らない世界の目覚まし回。

この中で、3万弱の目覚ましが紹介されてました。
どうやら、設定時間の前から徐々に朝日のような光がライトから放たれ、アラームがなったときにスムーズに起きられる、とのことです。 見たときは、単に「すげー高い目覚ましあるなー」くらいに思ってました。

www.youtube.com

ちょっと話がそれるんですが、もうすぐ子供が生まれます。
子供は僕と一緒に朝寝ていられる子になってほしいなと思う半面、やっぱり親になるからにはそういうところはきちんとしていないとなぁと思うわけです。
最初は半信半疑でちょっと小バカにしてる感じもあったんですが、数万で朝起きれるようになるなら安いんじゃね?と思うようになりました。
で、嫁の反対を押し切って購入しました。

ちなみに購入後、僕は到着まで1ヶ月くらいかかりました。
テレビの影響なのか、どのECサイトでも在庫なしで再入荷待ち・・・

利用初日

初めて使う目覚ましだったので、ならなかったらどうしよう・・・みたいな妙な心配をした結果、予定の2時間前に目が覚めてしまいます。
とはいえ日頃の訓練の成果を発揮して、二度寝かまして無事アラームで起こされる事ができました。

なんというか、アラームで目が覚めて、止めようとして時計を見るときに眩しいライトを見た結果、思った以上に覚醒します
しかも、アラーム止めるボタンが小さくて押しづらいため目をつぶって適当にボタンを押すような事もできません
どうにかこうにか響き渡るアラームを止め、その日は朝の準備に取り掛かりました

利用2週間

この目覚ましに適応してきます。具体的には、

  • 一旦アラームを止めたら、スヌーズがなるまではうつ伏せになって眩しくならないようにする
  • 角度を変えて顔に向けないようにする

利用1ヶ月

どうしても起きたいときは、わざと光を見て無理やり脳を覚醒状態まで持っていくことで、さっと起きれるということがわかりました
一方で、アラームがなった瞬間にどれほど覚醒したとしても、こちらに起きる意思がなければ起きれません。朝布団の中でぬくぬくするのが好きな僕には、脳が起きてるか寝ているかは基本関係ありませんでした。

こちらはその気になれば二度寝なんて余裕でできるわけなので

あと、スマホアプリでアラームの設定もできるらしいのですが、評価低すぎてやめました。その結果、休日も同じ時間に(一度)起こされるため、最近寝不足です。
休日は午後までならないように設定したいので、アプリ改善してほしいです

結局のところ、まだ朝早く起きられるようにはなってません。 今までどおりの時間に、少しスムーズに起きれるようになったかな?くらいの感覚です 効果がでるまでに長い人だと3ヶ月くらいかかるらしいので、気長に待ちます

まとめ

  • inti4という目覚ましを買った。この目覚ましは設定時刻の前からライトが点灯し始め、アラームがなったタイミングで光の力で一気に覚醒状態に持っていってくれる
  • 脳が覚醒したとして、そこから体に電気信号を遅れるかどうかは本人の意思次第。起きれたからといって活動できるとは限らない
  • 眠いから寝るのではない。寝たいから寝るのだ。

その他

高い目覚ましを買ったというと、高くてもみんな1万円くらい?と聞いてきます。
そして、30000円くらいというと、8割位の人に引かれます。

DroidKaigi2019/02/08(二日目)

Android App Improvement Challenge Part1: 機能実装編

  • 機能追加した
  • 30分だけ参加だったのでリストに時間を表示するissueのみ

Slice Your App: Inside Slices and How to build it

  • Google検索やAssistantにコンテンツ表示する際に使用する
  • AppIndexingの仕組みと一緒
  • Sliceのスレッドで通信やレスポンスを一定時間内に返却できない場合に死んでしまうので、一度ローディングViewを表示した後データ取得後に再描画すれば良い
    • Sliceはアプリ内ローカルデータしか表示できないものだと勘違いしてた
  • パラメータとして時間を持っているため、単純比較のassertではテストできないので、パラメータを適切にフィルタリングする必要がある

Android App Improvement Challenge Part 2: リファクタ編

  • ヒントブランチ読んでたら終わってしまった・・・

Android Studio設定見直してみませんか?

  • とにかく楽しめた
  • 自分用リストを作ることに決めた

今日から始める依存性の注入

  • 外部から依存関係を注入することで疎結合を実現する。それをすることでアプリを拡張しやすくなったりテストしやすくなる
  • DIにもスコープがある
  • なんとなくわかってきたらgithub上のコードを読んでいくのが理解への近道とのこと

multi-module Androidアプリケーション

  • メリット
    • ビルドの高速化につながる
    • build variantの変更で開発ビルドを分けている場合、プロジェクト外のコードはリファクタ対象外なので修正しづらい。その辺が解消する
  • compile→api or implementationに変更
  • api 参照先が変更されたらすべて再コンパイル
  • implementation 直下が変更されたときだけ再コンパイル
  • どのような構成だと恩恵を受けられるか
    • 資料参照
  • 既存モノリシックプロジェクトをマルチモジュール化する場合
    • 一旦最低限必要なもの(applucationクラス)とそれ以外で分ける
    • 新規機能は個別のモジュールに
    • 新規機能と既存機能で共通する機能を別モジュールに
    • 既存機能は必要以上にモジュール分割しないほうが良い(機能開発が進まなくなるので)

実践 WorkManager

  • WorkManagerを使ってバックグラウンドで画像をキャッシュした話
  • タイムアウトがあるので分割必要

Google Play Consoleのリリーストラックを有効活用してリリースフローの最適化を行った話

  • masterブランチを自動でアルファリリースするようにfastlaneを書いた
  • リリース前レポートを軽いテストとして活用しようとしたが、通知が貧弱だったため断念
  • アルファ→本番リリースは手動

DroidKaigi2019-02-07(一日目)

ウェルカムトーク

  • 最初のムービーかっこいい

マルチモジュールなプロジェクトでテストはどう変わる?

  • テストを書く意識は上がった
  • PITが便利そうだった
    • コードの変更で今書いているテストが失敗するか?を確認することで、テストケースの妥当性を判定してくれるライブラリ

マルチモジュールプロジェクトでのDagger2を用いたDependency Injection

  • DIの利用により疎結合となり、コンポーネント間の依存性が下がることで、テスタビリティが上がる
  • Daggerは どこに 何を injectするかを定義する
    • 何を → module
    • どこに → component
  • fragmentInjectorが複数のinjectorを持てるように実装することで、マルチモジュールにも対応できる

LiveData と Coroutines で実装する DDD の戦術的設計

  • 昨年よりも、より実践に近いDDD講座
  • 話すペースや声のトーンがちょうど良く、すごく聞きやすかった。
  • ユビキタス言語を探しながら、値オブジェクトやエンティティを定義していく
  • idをIntではなくエンティティにするという発想が新鮮だった
// OK
  data class Session(val id: SessionId)
  data class SessionId(val value: Int)
// NG
  data class Session(val id:Int)
  • モデルの形式が保存形式(DBの情報)と一致させる必要はない
  • 例えば、セッション一覧に表示するイベントとして、通常のセッション以外にもウェルカムトークやランチタイムを表示する場合
    • DB的には、Eventテーブルにtypeをもたせて保存する
    • フロントのモデルとしては、typeを使わなくても、 seald class で表現できる
  seald class Event {
    abstract val id: Int
    abstract val userName: String
    data class Session(override val id: Int, override val userName: String,  val title: String) : Event()
    data class Lunch(override val id: Int, override val userName: String) : Event()
  }

ぼくのかんがえた最強のUsecaseの作り方~あるいはビジネスロジックとはなにかという1つの回答~

Redux for Android

  • Reduxについてに実装例
  • オフィスアワーで聞いてみた
    • Q: Storeの初期化はApplicationクラス?
      • A: Dagger使ってるので、そっちで管理されてる。ライフサイクル的にはApplicationと同じ
    • Q: FatStoreにならないか?
      • A: 現状困っていない。ストアが持つ情報がネストしていくので、深くはなるがFatにはならなそう
    • Q: 画面遷移などはReduxで管理しないなら、どこに書く?View側
      • A: Activityなどで、startActivity()やfinish()すればいい
    • Q: マルチモジュールになったらどうすれば
      • 後ろがならんでて焦ってたのか、聞いた内容忘れてしまった・・・

Fireside Chat

  • 何を考えたか、何に苦しんだかをカジュアルに語ってくれた
  • 理解できないところもあったが、こういう情報はなかなかウェブの情報として上がってこないので、すごく助かる

感想

  • 今年は2回目ということもあり、多少余裕があった。
  • コントリビュートできたし、意識して前に座るようにしたし(去年はずっと後ろの席)、オフィスアワーで初質問できた
  • 2日目も頑張る

今日の振り返り

  • kotlin1.3に対応しようとすると、いろいろ影響がでる
    • ライブラリのアップデートが一番つらい
  • PayPayは1000円だと使うモチベーションにならん
  • QR決済のプラットフォームに限って言うと、楽天ペイが唯一ほかサービスとの連携がうまくできてて一つ抜けてる感じがする
    • PayPayもLineも(メルペイも)、サービス単体で使うイメージが強い
  • 今日は暑かったらしいが、朝涼しい、昼社内、夜寒いで、全然実感なかった
  • 昨日ダイエーで騒いでたタイ人風の女を見かけた
  • 月初だからかやたら新入社員の人が増えた気がする
  • DroidKaigi楽しみ

メモ

  • swaggerでapiIF書く
    • 前よりもすんなり書ける様になってきた気がする。
  • deeplink,app indexingの調査
  • ウォーキング・デッド3話
    • 早くショーンが痛い目にあえばいいのに
  • ビール3本飲む
  • 三角チョコパイ美味しい

Androidのマルチモジュール

安心してプロポーズするためのスケジューリング

美容院に行ってきた。担当の人がクリスマスにプロポーズ成功したそう。
人間的に好きだったからすごく嬉しかった。

ただ当日は大変だったらしく、

  • 目当てのイルミネーションが今年はやってなかった(その場についたときに気づいた)
  • 別の所は混んでて体力消耗した
  • 彼女が行きたいと言ってた場所に行く予定が、疲れて行きたくないと言われた

なんだかんだでいろいろ頑張ってプロポーズにこぎつけたらしいが、その話を聞いて学んだことがある。

プロポーズはデートの早い時間にやっておいたほうがいい

理由はいくつかあって、

  1. 早い時間ならトラブルがあっても後の時間にずらせる。遅い時間にトラブルが起こるとリカバリできず特攻するしかない。
  2. 遅い時間にプロポーズ成功すると、上がったテンションの発散先が限られる
  3. 遅い時間にプロポーズ失敗すると、下がったテンションと夜の暗さで精神的な落ち込みが倍増する
  4. 早い時間にプロポーズ成功すると、その後のデートをずっと楽しめる
  5. 早い時間にプロポーズ失敗すると、早めに予定キャンセルできるので損失を最小限に抑えられる

もちろん、マジックアワーの力を借りてドラマティックでムーディーなシチュエーションでプロポーズできると最高だと思うけど、はじめてのプロポーズは余裕がないしやばいくらい緊張した

ホームランが理想だけど、大事なのは三振せずヒットを打つことだと思う

DIについて調べた一日

DroidKaigiのリポジトリを見たけど、全然わからん
そもそもDIについてわからんってことで、今日はずっとしらべてた。

とりあえず、依存性注入のイメージとDIのメリットがふんわりと理解した。
dagger2を使ったサンプルプロジェクトを作って練習してみる

ちなみに、hamburgergithubアカウントは利用中ということで、使えなかった。残念

Githubアカウント取得してみる

同僚に今年のDroidKaigiのリポジトリが公開されたことを教えてもらい、今年こそはコントリビュートしてみるかと思っていたところこんなニュースが

www.itmedia.co.jp

へっぽこエンジニアの自分はpublicなリポジトリを作るのが怖くてBitBucketを使ってた(BitBucketは無料ユーザでもprivateリポジトリ作成可)が、
これはGithubに乗り換えるしかないと思い、帰ってからアカウント作成した。

ひとまず、hamburger のアカウント名がすでに使われていたので、先人の知恵を使って申請してみた。
今は連絡待ち中。

qiita.com

それにしても、マルチモジュール+Fluxってレベルが高すぎて理解できるか心配しかない

2019年の目標

アプリから収益をだす

2018年は自己満スマホアプリをいくつか作ってみたけど、今年はちゃんとサービスを作って収益につなげてみたい。
ひとまず一本ビールを買うことを目標にやってみようと思う。

体力づくり

週一のジム通いでは一向に変化が訪れないので、週二目標で通う。子供が生まれるまでに体力つけておきたい

プラチナエンド感想

漫画喫茶で8巻まで読んだので雑な感想

  • 絵はきれい。さすが
    • 表紙のオシャレ感はブリーチを超えてる
  • 物語初期に出てくるラスボス感があるキャラは実は噛ませ犬っていうパターンを見事に踏襲
  • 主人公があんなに頃したくないって言ってるのに、仲間たちが結構普通に頃してるのはどうなんだろう
    • 主人公が悩む系の漫画って普通は別の方法を考えて回避するもんだと思うけど、そういう展開にできなかったのだろうか
    • と思ったけど、種のキラ様がやりたい放題だったで悩ましい
  • 戦闘シーンで結構思考の読み合いみたいになってて面白いので、オチも同じくらいの深さがほしい

面白いけど、買うに至らない感じだった

買ってよかった・使ってよかったもの

日用品

クリアケア化粧水・高保湿タイプ

私はいい年して結構ニキビができる体質なのだが、化粧水をこれに変えてからかなり改善された。
無添加だからなのか・・?
無印良品週間にまとめ買いしてる。

www.muji.net

ビールの定期購入

コンビニで購入する商品で単価が高かったビールをamazonの定期便に切り替えた。
結果的に飲む本数は若干増えたが、高いビールの衝動買いが減ったので良しとしよう。
ついで買いもなくなったため家計としてはかなり改善された

月に一つだけバラエティパックも購入して、週末の楽しみにしてる

生活家電

ロボット掃除機 Eufy RoboVac 11

2万円半ばで購入した。 毎日家中を雑に掃除してくれる。
部屋の隅は掃除しきれないけど、これを買ってから家で綿埃を見ることがなくなった。妻がホコリアレルギーなので以前は平日もたまに掃除機を掛ける必要があったが、週末に一度だけで十分になったのでだいぶ助かっている。夏頃に一度壊れたのだが、サポートに連絡したら代替品を送ってくれた。
特に不満ないので、次もこれの後継機を買いたいなぁ

ドラム式洗濯機 TW-117X6L

新製品発表前の8月末に15万弱で購入。
ビックドラムを買うつもりだったんだけど売り切れで、在庫があった東芝フラグシップモデルをこの値段で買えるのか!となってこちらを選択。
新製品が30万以上で販売してるのを見ると、この時期に買って正解だったなぁとニンマリ
これまでは一人暮らし用で2日に一度洗濯・すべてベランダに干す必要があったが、今は一週間分まとめて洗濯してタオル等は乾燥機使うのでめちゃくちゃ楽。
乾燥容量7kgは良いぞ

2019年8月はこっちが狙いめなのかな

webサービス

Google One

あまり聞き慣れないかもしれないが、要はGoogleドライブに課金すること。 2Tで月額1300円

one.google.com

以前は個人でMSのOffice365Soloを契約していて、そこにバンドルされてるOneDrive2Tを外部ストレージとして使用してた。
ただ、以前から夫婦間での写真の共有が課題になっていて検討したところ、夫婦で共有しているGoogleアカウントに写真を放り込むのが運用的に楽だと気づいたので、思い切って移行してみた。
Officeソフトは使えなくなったが、今の所そんなに困ってない。スプレットシート等で代用できるし。
Googleフォトで機械学習を存分に活用できるのでちょっと世界が変わった感ある。世の中の夫婦はみんなこれやれば良いのにと思った。
具体例をあげると、

  • 顔写真で分類できる
  • 日付から、勝手にアルバムを作ってくれる
  • 撮影場所でもアルバムを作ってくれる
  • デジカメの写真に、撮影日時を元にして近い時間に撮影したスマホの写真の情報から類推できる位置情報を擬似的に付与してくれる。
    • これが一番すげぇと思った
    • 説明が難しい。。。

需要がありそうなら今度別記事にしてみようかな

Google Keep

これもGoogle
今までは仕事でもプライベートでも、メモはテキストファイルとして残していた。
ただ、検索やモバイルでの確認に課題を感じてたので、Markdownにする必要がない情報は一旦Keepにまとめてみることにした。
タスクもメモも雑に放り込んでいて、検索性能で補ってる感があるが今の所快適。

chrome.google.com

play.google.com

金融関連

楽天証券

多分この辺の記事に触発されて始めた。

sumaraku.blogspot.com

もともとSBI証券投資信託や積立NISAをやってたんだけど、ポイントとはいえ3%のリターンはすごいのでこれを機に整理。 本当は積立NISAも楽天でやれば良いのかもしれないんだけど、一箇所に集中すると改悪された時とかのダメージがありそうなので一旦様子見。
子供が生まれたら、子供の分の積立NISAは楽天証券にするかもしれない

その他

高圧洗浄機

年末の大掃除の日に合わせてdmmでレンタルしてみた

www.dmm.com

主にマンションのベランダ部分。壁や窓のサッシから、面白いように土汚れが取れた 。
年一でこれやるだけで結構きれいになる予感

HUAWEI端末だけ? "Google Play services art updating"のエラー

2018/05/11あたりから発生中
GoogleMap以外のアプリで地図を見ると表題のエラーになって見れない
ストアのGoogle開発者サービスのレビューが荒れてる

ビッグデータ分析・活用のためのSQLレシピ Chapter2

システム

PostgresSQL

Apatch Hive

メリットとデメリット

  • RDBがレコードに対して処理するのに対し、Hiveはファイルに対して処理をする。
  • そのため、クエリ発行 = ファイルの全件走査になる
  • スループットは高いものの、内部的に複数の手順を踏んで処理を実現しているため低レイテンシを求められるときつい

Amazon Redshift

  • 分散データベースだが、Hiveと異なりRDBに分類される

メリットとデメリット

  • AWSなのでスケールアウトが可能
  • 利用時間で課金なのでインスタンスの起動・終了を意識する必要がある

Google BigQuery

  • こちらは読み込んだデータ量で課金
  • データ量が少ない間は低コスト運用可
  • Googleサービスとの連携も魅力

特徴とデメリット

  • 利用できるSQLは 「レガシーSQL」と「スタンダードSQL」がある
  • クエリが短くても読み込むデータ量が多いと爆死する
  • テーブルやカラムを絞り込む工夫が必要

SparkSQL

  • ApatchSparkの機能の一つ

メリットと特徴

  • ビッグデータの関する機能を一通り揃えているのがSparkのメリット
  • 通常複雑な工程を経て分析するが、SparkはSQLだけでなく各PG言語も対応していて実行できる
  • DataFramesと呼ばれるAPIが豊富でどの言語でも同様の記述で実装できる

データ

データの種類

  • 業務データはトランザクションデータとマスタデータに分類れる
  • いわゆるログだけでなく、サイトに埋め込んだタグデータやサーバ側で意図的に出力したデータもログデータとして扱う
    • ログデータは基本更新せず、追記していく

業務データ

  • データ制度が高いが時期によって変更される可能性がある
  • テーブル数が多い
  • 蓄積方法
    • 全レコード
    • 日付ごとのスナップショット
    • 差分レコードの積み上げ
  • ログデータより正確性は高い
    • ログの場合は送信方法によっては欠損するので
  • サービスの回遊や訪問回数といったwebに関する分析は苦手

ログデータ

  • 業務データでは保存しないIPやcookieといったデータも保存する
  • 集計対象を意識しておかないと制度がブレる
  • 過去データを更新せずに残っている
  • 蓄積方法
    • タグやSDKなど、専用の機能を利用したビーコン型
    • サーバ側で実装した処理で出力するサーバ型
      • サーバ型はクローラの影響を受けやすい事を意識しておく
  • 業務データで分析できないPVや回遊状況の分析に使用する

2つのデータを利用することで生まれる価値

業務データ単体

  • 売れ筋商品の解析

ログデータ単体

  • 専用のタグやSDKを使用することで、ツールのレポートを確認できる
  • ただし、汎用的なフォーマットに対応していることが多いため、カバーしていない独自のレポートは確認できない

2つのデータを利用することで生まれる価値

  • ユーザの流入元の違いが与える売上の違いの調査など

データの利用価値

  • 目標管理
    • 目標に対する進捗を把握できれば、今後の活動を検討、実施を促すことにつながる
  • サービス改善
    • ユーザインタビューではコストや母数の少なさが問題になるが、サンプル数が多いデータを活用することで傾向をつかめる
  • 未来予測
    • データの分析でネガティブな傾向に対して対策が打てたり、レコメンドもできたりする