ゆるいブログ

毎日おもったことや、やったことをただただ書いていくブログです

花粉症 / LINEPayカードを使い始めました

LINE PayカードおよびKyashの利用開始

jp.techcrunch.com

LINE Payカードで3月31日まで上限5000円の20%還元ができるらしいので、ずっと使っていなかったLINE Payカードを使い始めました。

ついでに最近2%還元で話題のKyashのリアルカードも注文。

還元率が大きくて、どう見ても永続性のあるビジネスモデルには見えないですが、お得なのは確かなので存分に札束で殴り合って欲しいと思っています。

どう着地させるんだろうなあ、このビジネス。

若干花粉症気味

ついに昨日から花粉症の症状が出始めています。

目が痒かったり鼻水が出たり。症状は軽めなのですが舌下免疫療法のおかげかはよくわからず。完全に被害なしというわけではなく、どう評価したものかな?と。

少なくともマスクをつけないと生活できない、という状況ではないため改善はしているんだろうなあ、と思っています。

www.torii-alg.jp

t

フリーランスがどうとか。普通に勉強中

フリーランスがどうとか

www.nikkei.com

この記事でフリーランスの月額65万は高い?安い?と盛り上がっていました。

会社員を辞めるつもりはないのですが、同じ能力でフリーランスの方が有利なら何か悔しいなあ、ということで調べてみました。

あまり時間をかけたくないのでかなりざっくりとした評価です。

  • 正社員の給与所得控除額よりも経費が多いなら基本的に税額は安くなるはず
  • 雇用保険や厚生年金、退職金といった面では正社員の方が有利ではあるが、多めに見積っても月額10万くらいと思われる

ということで雇用が永続的に続くという前提なら月額65万のフリーランスは650万の正社員よりも良さそうです。

人材市場における価値上昇・低下の影響を正社員よりも直接受けるので、そちらの方が問題が大きそうですね。40代~50前半くらいまで人材価値を維持・向上できるならまあ悪くはないんじゃないでしょうか。

人月120万くらいなら特に問題なく勝ち逃げできそうです。120万だと消費税がかかるはずなので、消費税引後110万=年収1320くらいにだと考えて、厚生年金の割引分も考慮すると年収1100万くらいで、まあリスクを考慮して有名大企業の正社員であっても割に合うかなという感じです。それでも社会的な信用の無さを考えるとちょっと割に合わないのかも……

まあ、基本的には報酬云々よりは自由な生き方をしたい人のための選択肢な気がします。

ところで、フリーランスエンジニアになることを煽っている前職の知人がいるのですが、社内では問題児として有名だったのに、フリーエンジニアとしてはサロンを作って信者を集めて上手いことやっているみたいなので、やっぱりそういうことが出来る人には正社員よりも遥かに割が良いのだろうなあ、と思います。まあ前職(大きなWeb系企業)も輝かしいキャリアの一つとして語られているのは釈然とはしないけども。

How to Win a Data Science Competition: DataLeakageの勉強中

データに何の手掛りもない状況からKaggleのスコアボードにアップロードした時の点数を元に手掛りを掴むというものですが、正攻法ではないのであまり時間をかけて学んでもなあ、という気がしています。

とはいえこういった技術もKaggleで勝つために必要なのはわかりました。

3週目に移動し、MSE、RMSE、MAEの勉強をしています。とはいっても至極単純なので大して勉強することはない。

MAEは外れ値に強いという特徴があって、あえて外れ値を考慮に入れるべきならばMSEを、そうでなければMAEを使う方が望ましいようです。

C++って言語として難しすぎると思うんですよ

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

 

 Modern C++ Designを読んでいます。

一応軽く全体を読んだ後で「一章:ポリシーを基にしたクラスデザイン」および「二章:テクニック」を読んだのですが、まだ実用できる気がしません。

LL系言語の本(RubyPythonPHP)とか簡単なのに何でC++はこんなに難しいのか。JavaとかScalaは時々難しめの本がありますけどね。

一章 ポリシーを基にしたクラスデザイン

一章では多重継承を避け、ポリシークラスをテンプレートパラメータとする方法が書かれているのですが、こんなコード現場で見たことねーよ、と言いたい。

多重継承が綺麗にハマるケースは少なく、大抵は複数のクラスを合成したことで抽象化の漏れが起きるので、多重継承ではなくコンポジットを使おうっていうのが一般的だと思います。

この本では多重継承の利点をみとめた上で、特定の型の時に構造を特殊化できるようにテンプレートを使ったポリシークラスの導入をします。

A というクラスが B と C の多重継承をしている、というケースについてそうではなくAというクラスがB<A>とC<A>というポリシークラスを多重継承しているんだ、という形にすることができます。

template

<

    class T,

    template<class> class CheckingPolicy,

    template<class> class ThreadingModel

>

class SmartPtr

     : public CheckingPolicy<T>

     , public ThreadingModel<SmartPtr>

{

...

}

のように多重継承するクラスをテンプレートパラメータとし、

typedef SmartPtr<Widget, EnforceNotNull, SingleThreaded> SafeWidgetPtr

のように、typedefでポリシークラスのコンビネーションを型定義することにより、単純に多重継承するよりも整理された構造になります。 

ポリシークラスは静的な構造を持たせる必要があるため、デストラクタを定義すべきではない、というようなTipsも書いてあります。

ポリシーを外部から注入できるというのが一番大きな利点のように見えます。

綺麗に決まればかっこいいけど、上級者向けですよねえ。

二章 テクニック

この本を読むために必要な基礎的なテクニックが書かれています。

基礎なのにむずい。

コンパイル時のアサーション

テンプレートクラスではコンパイルアサーションが作れるよ、という話。

テンプレートの部分的な特殊化

テンプレートパラメータが複数あった時に1つだけ特殊化するといったことはできない。テンプレートパラメータAとBがあったとして、Aを特殊化したい場合には特殊化したAおよび特殊化したくない部分をパラメータに逃したB<BArg>という2つのパラメータの組み合わせにすれば出来ないことはない、という話。

ローカル・クラス

テンプレート内部でローカルクラスを定義できるよ、という話

型と値のマッピング

1つの値に1つの型を割り当てることでコンパイルタイムの条件分岐ができるよ、という話

型から型へのマッピング

テンプレートの関数のみを部分的に特殊化したい場合に型を導出するだけのType2Typeをパラメータとして指定することにより、余計なオブジェクトが勝手に生成されることなく実装できる。

template <class T, class U>

T* Create(const U& arg)

{

    return new T(arg);

}

というクラスがあったとして

template <class U>

Widget* Create<Widget, U>(const U& arg)

{

   return new Widget(arg, -1);

}

というTだけ特殊化してUはそのまま、という特殊化はできない。なのでType2Type<T>というテンプレートクラスを使い

template <class T, class U>

T* Create(const U& arg, Type2Type<Widget>)

{
}

という形にすれば部分的な特殊化っぽいことはできるよ、という話。

ブーリアン式に基づきコンパイル時に型を選択できるSelectクラステンプレート


template<typename U, bool isPolymorphic>

{

}

のようにbooleanをテンプレートパラメータとして渡すことにより型により特殊化ができるよ、という話(だと思います自信ない)

コンパイル時における変換可能性と継承の検出

A Test(U) {}

という関数があったとして、U以外の全ての型を受けとる関数を作るには

B Test(...) {}

とすればいい、という話

std::type_infoのラッパ

type_infoにはコピーや比較できるラッパーを作った方が便利だよ、という話

Traits

型に関連する決定をTypeTraitsに寄せることにより、コードが綺麗になるよ、という話だが面倒そうなのでパス

ハーフリアル読書中 / 中飛車勉強中

ハーフリアル読書中

ハーフリアル ―虚実のあいだのビデオゲーム

ハーフリアル ―虚実のあいだのビデオゲーム

 

 3章まで読みましたが、徒労感が大きいです。

ざっくりとした内容は以下を読むと良いと思いますが、ここに書いてある内容もまたゲームの一面を刈り取っただけであると感じます。読んでも、「なるほどゲームとはこうなのだ!」「こう作ればいいのだ」という実感は得られません。もちろん、その原因は本書のせいではなく、ゲームというものが様々な要素の集合体であるので1冊で全てを語ることはできない、というだけなのですが。

jp.ign.com

この本ではビデオゲームの定義をした後で、ゲームの根幹を成す、ルールとフィクション、及びルールとフィクションが互いに補完しあうことについて語っています。

例えば最近私がプレイしているのはスマッシュブラザーズなのですが、

  • 敵を画面外に出したら勝ち
  • ダメージを与えたら飛びやすくなる
  • マリオというキャラクターでBボタンを押したらファイアボールが出る

というのがルールにあたり、

といった部分がフィクションになります。ルールとフィクションは相互に強化し合い、虚構世界のリアリテイを高め、ハーフリアル(半分現実)なものとします。

ただ、これをもってスマブラを語れるかというと、もちろん語ることはできません。

ゲーム間の各要素の相互作用やゲームバランス、ユーザー体験設計、グラフィックや音楽なども関ってきます。

ゲームデザイン・ ゲームバランスについては単純なものなら「ゲームメカニクス」に書かれているようにマキネーションを利用した可視化も出来るのですが、やはりこれもスマッシュブラザーズゲームデザインを可視化するには単純すぎるように思えます。

ゲームメカニクス おもしろくするためのゲームデザイン (Professional Game Developerシリーズ)

ゲームメカニクス おもしろくするためのゲームデザイン (Professional Game Developerシリーズ)

 

ゲームという存在に対しての包括的な評価ができない以上、優れたゲームかどうかを判断するには自分が楽しく感じるから良い、自分がつまらないと感じるから悪いという主観的な評価になります。客観的な評価としてもゲームレビューサイトのようにゲームに対する個々の経験を点数化し、その分布をもって評価するのが最も良い方法に見えます。

まあ小説でも大差ないので仕方ないのかもしれません。

中飛車勉強中

勉強中です。

将棋DVD 攻めて強くなる戸辺流中飛車

将棋DVD 攻めて強くなる戸辺流中飛車

 

How to Win a Data Science Competition: ゆっくり進めようと思います

結局2週目で自分の能力との差の大きさにやる気を失い、間に合いませんでした。

とはいえ、ちゃんと学びたいので気楽な気持ちで課題を進めて行きます。

f:id:twainy:20190305080906p:plain

英語もnumpy、scipiの知識もしっかりしないまま受けたので難易度の高さにやる気を失ってしまいました……

 

少しずつ復帰

株価暴落気味

ECBドラギ総裁がEUの成長見通しを1.7%から1.1%まで下げたこと、そして米雇用統計が市場予測を大幅に下回ったことから、景気減速の懸念が強まり世界的な株価減です。

日経平均先物は20900円程度。NYダウはそんなに下がってないのでやはり景気敏感株たる日本株の減速の割合が大きくて辛い。

22000円に行ったら一旦処分しようかな、と思っていたので残念です。

とはいえ、オムロン株が日経平均銘柄に採用されたことで下落の痛みは半分程度に収まる予定。

生協に入った

自分の育児休暇が開けた時のことを考えて生協に入ることにしました。

保育園探し途中

保育園を引き続き探しています。

何が良い保育園なのか、さっぱりわからない……

持ってくる荷物と距離によって差はでてきそうですが、正直子供にとって何が良いのかはよくわからないですね。

確定申告の還付金が返ってきた

妊娠関係の医療費控除をし忘れていたことが発覚。

というわけで訂正申告もやってみることにしました。

読書 

「子どもが賢くなる75の方法」 (単行本)

「子どもが賢くなる75の方法」 (単行本)

 

机に向かわせずに子供に「言語」「数」「図形」「位置」「測量」などを学ばせていく本です。うちの子供はまだ2ヶ月なので速すぎて実践することもできないですね。

幼児のうちは座学はまだまだ早いということを理解しました。

ハーフリアル ―虚実のあいだのビデオゲーム

ハーフリアル ―虚実のあいだのビデオゲーム

 

ビデオゲーム批評の名著です。2005年の本。

まだまだ序盤なので、これから本格的に読んでいきます。 

さぼりまくった

心が折れたのか3/5-3/7までサボりまくりました

なろう小説をひたすら読む

の3つを読みました。パラダイム・パラサイトはまだ序盤ですが、アビス・コーリングと嘆きの亡霊は引退したいはそれぞれ8時間ずつくらいかかっています……

それぞれ740000文字くらいなので5~6冊分くらい。やることあるのに完全に逃避行動に走りました。

有料だと続編を買うべきかの判断が途中で入るんですが、無料だと続きが気になる→読もうでどんどん時間が失われる恐怖。

なんとか今日から立て直したいです……

保育園を探す

妻が働きたいとのことなので、保育園を一緒に探しています。

なろう小説の合間に保育園を予約して見学。

家で育てるとどうしても刺激があまり無くなるので、働いていなくても保育園で育てた方が結果としては良いのではないかな?と思っています。

できればファクトも欲しいのですが無さそうですね。残念です。

hanakomama.jp

アメリカで実施された有名な実験によれば、良質な保育園へ通うことができた子どもたちは、その後の人生で「成功」する確率が高くなることがわかった。また、保育園へ通った子どもたちは、学歴と収入が高くなった一方で、犯罪率は低かった。

だそうな。良質って何よ。

ido-batter.com

を見ると結局家庭環境が重要なのかも?という話

TECH Night #1 by DELiGHTWORKSに行きました

モンストやFGOのバックグラウンドサービスをどう改善していったのか、という話。

内容自体は高負荷・大規模あるあるだったので特に強く印象に残ったものは無し。やっぱりバックエンドは安定して高負荷を捌くことが重要なので似たような対策になってしまうなあ、という感じ。まあ発表内容はとても泥臭く、良いと思いました。

techplay.jp

資料はネットに転がってるから実況しなくて良いと言われたのですが、やってみたかったのでひたすら twitter で無駄に実況をしていました。

CourseraのKaggleのコース挫折しそう

CourseraのKaggleのコース、終わる気がしなくなってきました

英語なのでちゃんと意味を読み取るのに母国語以上に時間がかかるので大変です。

f:id:twainy:20190305080906p:plain

進捗で見るとそんなに悪くはないんですが、コース内容が全て日本語だった場合と比べると3倍くらい時間がかかっていて、これもう駄目かも?という惨状。。

周囲とのやりとりも英語だしなあ。

海外留学する学生さんてやっぱり頑張っているんだな、と心を改めました。というか英語ができるっていう属性は有利すぎるだろ。

そもそもKaggleをやるのが目的ではなくて、機械学習の基礎を覚えるのが目的なのでこのコースは若干非効率ではないか、とも思い出すのですが、とはいえ機械学習を真面目にやるのならKaggleは避けて通れんだろう、という心の葛藤があります。

現状は基礎的な問題なら解けるんですが、ちょっと捻った問題になると途端に手が出せなくなるんですよね。これは辛い。