おいすブログ

random things

アイドルは代名詞を避ける

f:id:oi5u:20180113014630j:plain

アイドルには全然詳しくないんですが、AKB48とか欅坂46の人たちがテレビに出てしゃべってるのを見ると、会話の中で不自然なほどに自分たちのグループ名を呼ぶ印象があって。

どういうことかというと、例えば極端な話ですが、

AKB48の○○です。私たち、昨日海で撮影したんですよ。□□ちゃんは泳ぐのが苦手なんですが...」

っていう説明をするとして、

AKB48の○○です。昨日、AKB48のメンバーで海に行って撮影したんですよ。□□ちゃんはAKB48のメンバーの中でも泳ぐのが苦手で...」

ぐらいの勢いで、話の中にグループ名を無理やり盛り込んでくるんです。複数人で順番に自己紹介するときも必ず、

AKB48、チームXの○○です」

AKB48、チームXの□□です」

AKB48、チームXの△△です」

といった具合に、所属名を省略しない。

秋元康氏なんて業界のど真ん中に何十年もいると思うので、プロデュース業に関しては手練手管の限りを尽くした緻密な計算があるはずで、これ、間違いなくそういう風に教育されてるはず。

テレビをつけっぱなしにしている人は多そうなので、音であれば画面を見ていない人にも聞かせられるため、とにかく耳に残ることが重要だと思われる。選挙カーが候補者の名前をひたすら連呼するように、興味がない人でも、とにかく名前が耳に残るように、何度でも名前を呼ぶ。私、AKB48に全然興味はないのに、なぜか何人かは名前を覚えてしまっているし。

それはまあそれとして良いんだけど、なんとかこの技術を庶民の社会生活に応用できないかと考えた。

一般人のケース

目的

  • 職場などで引き立てたい同僚や部下や上司がいる
  • 自分たちの組織をアピールしたい

場面

  • 目上の人物との会話
  • 大勢の前でのプレゼンテーション
  • ドキュメント、プレゼン資料

などで、代名詞を避け、その引き立てたい固有名詞を極端に不自然にならない程度に盛り込む。固有名詞をより印象づけて、相手の潜在意識に働きかける🤤

👍「この資料は同じ□□プロジェクトのメンバーの○○が作りました。○○によると、ここの計画は...です。□□プロジェクトとしては、次の計画は...」

👎「この資料は同じプロジェクトのメンバーが作りました。ここの計画は...です。我々としては、次の計画は...」

まあ

この程度のことは口が上手い人や営業の人なんかは無意識にやってそうだし、そういう系の本に普通に書いてそうですね。

初対面の人や仲良くなりたい人と話すときに、相手の名前を呼んでから話しはじめるのが良かったりするのに似ている。相手が初対面の場合、相手の名前を覚えやすくもなる。これをテーマにひたすら掘り下げるとまた新書1冊出せそうです。

日本の(技術書の)ジレンマ

f:id:oi5u:20180110223150j:plain

技術書というのが 「ソフトウェア/インフラエンジニアが読むフレームワークや言語についての本」 だと仮定すると、

  1. 高度な内容になればなるほど、読者とニーズが減るので、入門者向けの内容になりがち

  2. 入門者向けの内容であれば、フレームワークや言語の公式サイトにあるGetting Startedのドキュメント(英語)で必要十分

    • その内容は、トップレベルのエンジニア集団が自分たちの技術の普及を賭けて練り上げたもの(のはず)なので、クオリティはだいたい高い

    • 逆に言うと、それが貧弱だったりわかりにくかったりする技術は信頼性に欠くので、あまり学ばないほうが良さそう、本気度からくる将来性が低そう

  3. 英語ドキュメントに抵抗が少ないエンジニアは最初から公式サイトの1次情報を見て学習し、足りない情報は英語のブログや動画から勝手に補完していく

1~3から、英語が苦手なエンジニアが入門時に読む感じの本が多く出版される。

日本はマーケットが大きくて本から簡単に情報が仕入れられるので、 入門者が日本語の情報に依存し、日本語の2次情報や3次情報を中心にした情報交換サイクルが生まれる。 結果、英語圏のコミュニティとの間でズレがどんどん拡がり、ガラパゴス化が発生。

また、

  • 日本発の技術がスタンダードになっている例は少ない
  • オープンソースプロジェクトのメインのcontributerだったり英語で議論に参加していたりするケースは少ない

という点から、「著者がそのフレームワークや言語を開発する側ではない」という仮定を置くと、本の内容は、

  • 元々英語で書かれている公式ドキュメントの翻訳
  • 自身が開発経験から学んだノウハウ
  • お手製サンプルコード

などになりがち。

そうすると、

  • 英語から日本語へ変換する労力と時間
  • 誤訳リスク
  • (レビューがあるとしても)入門的な内容なのに開発元から遠い人物の主観が混ざる

っていう副産物が生まれ、ここに、本というフォーマットそのものが持つ

  • バージョンアップや業界の変化に追従できずにすぐ内容が古くなる
  • 間違いがあったときに迅速な修正が難しい
  • 手に入れるのに金がかかる
  • それに関して質問したり意見を書いたり引用したりがWebに比べて難しい

などの欠点も倍率ドン。

なので、業界の技術レベルの底上げに貢献するための技術書なのに、 ニーズを勘案して内容を決めていくと、 長期的に見て全体があまり良い感じにならない、 というのがジレンマかなと思います。

名著はたくさんあるのでもちろん例外はあると思うけど、この図式に当てはまらなさそうなのは、

などですかね。

入門ドキュメントぐらい気合で読む覚悟と根性が無いと日本の開発者に明るい未来はないと思うので、 正直しんどいけどみんなでがんばっていこうねって思います。

サービスは誰のものか

何だったか忘れたんですが、海外のWebサービスを使っていて、サービスに対するフィードバックを送信する画面に

あなたの意見が採用されたときにお礼のメールをお送りしたいので、メールアドレスを教えてください。

って書いてあったんですよね。少なくとも日本のサービスではこういう言い方をしているのを見たことがないのですが、海外(というかイケてるスタートアップ系のサービス)におけるサービスに対する考え方がよく表れている一文だなあと思いました。言い方も上手くて、ユーザーも悪い気はしないですよね。

自分の経験では、日本のサービスってこういう時

  • 自由にご意見をお寄せください(とりあえずフィードバックは集めたい)
  • あなたのメールアドレスを入力してください(顧客の情報もついでに取っておきたい)
  • ※必ずしもご希望に沿うことはできません。予めご了承ください(とはいえ改善の確約はしたくない)

みたいな感じで説明することが多い気がします。これ、極端な話、

  1. この商品のここが気に入らない
  2. 自分が使いやすくなるように、ここをこう直してほしい。改善要望を送ろう
  3. わざわざ要望を送ったのに、まだ直ってない。ユーザーを軽く見ている!

みたいなパターンのユーザーをかわしたい気持ちと、ユーザーに何か言われたらそれに応えないといけない、みたいな考えが背景にあると思うんすよね。

これに対して、その海外のサービスでは

  1. サービス・プロダクトの方向性を決めるのは言うまでもなくこちらです
  2. 来るもの拒まず、去るもの追わず
  3. ただしフィードバックは歓迎で、有益な情報を送ってくれたユーザーにはお礼の気持ちを表明します

っていうスタンスを言外に感じます。

日本語圏は狭くていわば村社会なのに対し、英語圏は規模が遥かに大きくて多様性と合理性があるので、日本が小さくまとまって狭い世界でウジウジとユーザーの気持ちを忖度し続けてる間に海外でイノベーションが起きて飲み込まれる、っていう構図がこうして生まれるんですかねえ。

日本には日本の良さもあると思いますが、ドライなWebの世界ではデメリットが強く出すぎる気がする...。

Object literalにおけるComputed property keysおよびMethod definition

redux-actionsのサンプルコードみてて、

const reducer = handleActions({
  [combineActions(increment, decrement)](state, { payload: { amount } }) {
    return { ...state, counter: state.counter + amount };
  }
}, defaultState);

は?なにこのsyntax???

って思ったんだけど、プログラミングあるあるで、こういうときどういうキーワードで検索していいか分からない。ここでのcombineActions(increment, decrement)はStringを返す[1]と思ってもらって良いんだけど、それにしても全然見たことない書き方。しかし見つからない。探したり考えたりすること30分、やっと意味がわかりました。

この記事によると、ECMAScript 6から使えるようになったsyntaxで、Object literalにおける、Computed property keysとかいうやつとMethod definitionとかいうやつのshorthandのあわせ技らしく、何を言ってるか分からないと思うけど、要は、

{
  [appreciateKey]() {
    this.value += 1000;
  }
}

これは、

{
  appreciateKey: function () { this.value += 1000 }
}

これと同じで、例えばthis.value2000なら

{
  appreciateKey: 3000
}

となる。ObjectのValue部分をfunctionにして計算がしたい時に使う方法みたいですね。

すでに結論出てますが、同じように困ってる人がたどり着けるように、以下SEOを考慮してキーワードを散りばめながら振り返ります。

JavaScriptのオブジェクトの中に書かれた配列ブラケット記号と、その後に続くかっこ()および中かっこ{}から成る関数っぽい表現は、Computed property keysといって、ECMAScript 6(ES5)から使えるようになった簡易記法によるものです。の中はString(文字列)として評価されるものでないといけないっぽい。


  1. 実際にはtoString()を持つObject ↩︎

Tzolk'in Strategy

ツォルキン(ボードゲーム)の主な戦術について、この記事の翻訳メモ。

https://boardgamegeek.com/thread/1038126/guide-main-strategies-available-tzolk

Chicken Pizza Classic Building Strategy Big Corn Big Resources
4人プレイ時の理想VP 110-120 90-110 100-120 120-150
VP獲得源 スカル奉納、寺院 モニュメント、建築ボーナス(建築時の2点、Lv4の2点)、寺院 寺院、モニュメント モニュメント、建築ボーナス(建築時の2点、Lv4の2点)
最適なワーカー数 4 4 5-6 6
理想的なワーカー配置 2人配置、2人配置、1人ピック、1人配置、2人ピック、2人配置、4人ピック 2人配置、2人配置、2人ピック、2人配置、4人ピック 5人配置、5人ピック。ワーカー6人のときは、ABCDE配置、BCDEFピック、BCDEF配置、ABCDEピック、ABCDE配置、ACDEFピックなど。6人同時に送るのはコストパフォーマンスが悪いので、このようにすることでP1でピックすることが減る 2-4配置、2-4ピック
セットアップ速度 とても速い 速い 遅い
セットアッププラン 神学トラックLv3、技術トラックLv1、4人目のワーカーを入手 可能なら建築トラックをレベル2以上にする。4人目のワーカーを入手し、建物を集め始める。資源トラックや建築トラックを上昇させるものを優先する。最低1つ、1ワーカー2コーン免除の農場がほしい 農業トラックをLv3にし、12コーンを得るためにP5でピック。4人目、5人目のワーカーを入手 6ワーカーにする。資源トラックをLv3にする。Y5や資源トラックのLv4で資源を大量に入手し、U2で6Wに交換する。6Wは、建築トラックをLv3にするのに使う。後半に向け、大量のコーンと資源を用意する
第2クォーターのプラン Y4、T1、T3でスカルを集めつつ、ワーカー数人をCIの低い地点に置く。Y1かPalenqueでWを入手 建物を集め続ける。 Palenqueに何度も置いてコーンを増やす。一杯になったらU1を使う。(普通は2人以上置き、下位のアクション実行で一度に何度も使う)。T1、T3、U4(寺院上昇の建物)で全ての寺院を上げ、半周の段階で出来るだけトップに居ることを目指す この戦略はセットアップが遅いので、引き続きセットアップを続ける。第2クオーターの最後まで準備が整わないことも多いが、気にしなくてよい
後半のプラン スカルを集めつつ、CIの高い地点でスカル奉納 もう少し建物を集める。資源トラックや建築トラックを上昇させるものや買えそうなモニュメントに関連したものを優先して集める 大量のコーンを集め続け、寺院を上げるのに使う。緑の寺院で手に入れたスカルは、CIで使う。最終クオーターで1つか2つのモニュメントを建てるのに必要な資源をU2で確保する(取り合いになりそうならもっと早くても良い)。対戦相手の状況を見て、一番効率のよさそうな建物をU4で入手。効率的かどうかは同じだけの寺院の上昇をU1とU2で行うと考えて比較する とにかく建物を建てる。6つの建物か3つの記念碑を1ターンに建てられればベスト。できなくはない
コーン供給プラン 時々Palenqueに置く。もし農業トラックをLv2にしているなら、コーンやWをすぐに入手。また、スタートプレイヤーの獲得ボーナスを得る。 農場、建築トラックのボーナス、Yaxchitlan、スタートプレイヤー 問題無し U2、農場2つ。3人1コーン減×2、または3人2コーン減+1人2コーン減を買っておくのが望ましい。後半に建物を大量に建てるので、農場で建物エリアが埋まることを避けなければならない。建物スロットを回転させるため、全ワーカーが1コーン減の建物を2つ買うことは避ける
理想的なオープニング 神学トラック上昇タイル2枚。同時に得られる3資源は神学トラックをLv3に上げるのに使う。または、資源トラック上昇と神学トラック上昇(またはスカル獲得)のパネル。CIで茶色と緑の寺院を上昇させる場所をピックし、その際神学トラックの効果で毎回1資源を払うことで黄色の寺院を2つ上昇させることができるので、最初の寺院ボーナスで3資源を得ることができる。 建築トラック上昇タイルを2枚。Ticalにワーカーを置き、T4で建築トラックを上昇させる建物を1つ買い、建物の効果でボーナスを貰いながら計3つの建物を買う Uxmal gambit* Uxmal gambit*
よくピックする場所 Y4, T1, T3 T2, T4 Palenque, U1 Y5、T4、U5(Y5かT4かを柔軟に選択できるので、この戦略でU5はとても有効)
理想的なモニュメント 寺院の高さ、寺院ボーナス再計算、スカルの配置数 技術トラックのLv合計、技術トラックの最大Lv数、建物やモニュメントの数 寺院の高さ、寺院ボーナス再計算、コーンタイル数 記念碑やモニュメントの数、茶・緑・青の建物数、技術トラックのLv合計、技術トラックの最大Lv数、ワーカー数
理想的な資源タイル 神学トラック上昇タイル、大量のコーンと資源 建築トラック上昇 ワーカー、大量のコーンと資源、農業トラック上昇 ワーカー、大量のコーンと資源。4コーン+1木材+資源トラック上昇のタイルは良いが、もう一方の資源トラック上昇タイルは良くない。
競争力 低い。他のプレイヤーが同じ戦略を取ると不利になる 普通。建物や記念碑の奪い合いにやや弱い。Ticalが混雑しているとき、先のアクションに置くためのコーンが無い可能性がある。 とても高い。同じ戦略のプレイヤーがいれば、Palenqueで先に置きやすくなる(ただし相手も) 中。同じ戦略での対戦経験が少ないので未知数。コーン戦略は競合がいても問題ないが、建物の数は有限なので、相手より先に欲しい建物を建てないといけない
難易度 中。コーンのやりくりが厳しい 中。コーンのやりくりが厳しい 低い。一度コーン収穫のサイクルが整えば、問題はほぼなくなる。終盤にモニュメントを1つ建てる際、他プレイヤーの資源にあまり気を配る必要が無い 高い。市場を使うターンでは多くのことを予測して動かなければならない。コーンと木を入手する数とバランスの見極め。次に来るときまでになるべく使い切りたいが、ワーカー配置のためのコーンは確保しなければならない。何度も市場に来るのは良くないが、かといって資源を余分に持つのは非効率的。T4で建物やモニュメントを買うタイミングも難しい。慎重な分析と、対戦相手の動向を読むことが必要
ダブルスピン耐性 中。たまに盤面にワーカーがいない時がある。狙っていた1つ前のアクションを実行するのに支払うコーンが無いことが多い。 中。狙っていた1つ前のアクションでピックするのに支払うコーンが無いことが多い。最終ラウンドでモニュメントを買う予定のときに、ワーカーを置く前にダブルスピンされて間に合わなくなることがある とても弱い。5ワーカーでプレイするなら、ボードにワーカーがいない状況が半分ある(6ワーカーなら1回)。もちろん、5ワーカーや6ワーカーが乗った状態ならとてもラッキーなことになる 高い。6ワーカーいるので、全てが盤上にいないということはまずない
最適なプレイ人数 2 2 4 3
最適なプレイ順 1番目か2番目 1番目か2番目 セットアップ中は1番目。その後は3番目か4番目 セットアップ中は1番目。その後は3番目か4番目

Uxmal gambit*

David Goldfarbが提唱した、オープニングの強力な定石。手順は多少前後してもよい。以下の例で示す。
少なくとも6コーンを所持して始める(9以上が理想だが、2ターン目や3ターン目にコーン乞いをするのもそう悪くない)。
また、最低2つの資源を持って始めるか、資源トラックを上昇させて始めるのが理想。

  1. 6コーンでU0,U1,U2に置く。
  2. U3をピックして1ワーカー獲得。
  3. 1コーンでP0,T0に置く。
  4. U3をピックして1ワーカー獲得。
  5. 1コーンでY0,T0に置く。
  6. P3をピックしてWW、Y1をピックしてWを獲得。(もし資源トラックが上昇していれば、WWWとWになる。)T3とT1をピックして、農業トラックを3つ上昇させる。U5または1コーンでP5をピックし、12コーンを獲得。
  7. 12コーンでパレンケに出来るだけワーカーを送る
  8. 大量のコーンを獲得し、フードデイとその後のワーカー配置コストに充てる

Uxmal gambitへの対抗策

もしあなたが2番目のプレイヤーで前のプレイヤーがUxmal gambitを行っていたら、その勝ち馬に乗ろう。U3とU4、もしかするとU5にも置いて、ワーカー獲得やワイルドカードのアクションを2ラウンド目に実行できる。もしあなたが3番目か4番目のプレイヤーなら、2番目のプレイヤーの戦略が取れるかもしれないし、ワーカーをU5(もしコーンがあるならU5とU6)に置くこともできるし、他の3つの0コーンスペースに置くチャンスが得られて、Chicken Pizza戦略を取ることもできる。

9522人目のレジェンドになりました

毎日寝る前にちょこちょこやり込んでたドラクエライバルズのランクマ、昨日めでたくレジェンドに到達しました!とはいえ前にもう9521人も並んでらっしゃるとか、どんだけ伝説多いんだよって感じですが、始まってまだ10日しか経ってないのにもうこんなにいるのはすごいですね。リリースから1ヶ月で1000万DL達成してるらしいので、盛り上がりっぷりに震えますね。さすがドラクエ

それにしても、ミネア姉さんには本当にお世話になりました。プラチナ1の大事な試合でアルカナバーストを打って偶数を引いたり、特にレジェンド昇格がかかった試合で1枚差しのワンダーフールを引いたりだとか色々あって、もし配信してたらさぞかし配信映えするであろう散り方を何度かさせてもらったので、すっかりメンタルが強くなりました。

最後の方はもうだいぶ選択に迷いが生じなくなったので、裏目を引いて負けたらしょうがないという割り切りで、機械のようにカードを出す作業でした。しかもレジェンド昇格を通算5回弾かれてて、最後は4連敗したあとに5連勝するという、運命に弄ばれてるとしか思えない勝ち上がり方でした。せっかくブログを始めてるので、ちょっとここまでの感じを振り返ってみます。

コントロールミネア

f:id:oi5u:20180104112256j:plain

もともと、こんな感じのコントロールミネアでやっていました。

マッチアップは、運命のタロットを2ターン目までに引けてないとアグロにはほぼ負け、引けててやっと五分、ピサロやコントロール相手には有利、ぐらいの感じです。

皇帝のタロットが結構ポイントで、はぐれやジュリアンテ強化のユニットに使ってリーサルダメージ出したりとか、前列にユニットを置いて人魂などをブロックしている相手に貫通で仕留めたり(これ最高に気持ちいいっす)とか、状況限定で便利な使い方ができるのですが、ぶっちゃけカードパワーとしては基本弱いです😌

また、塔のタロットとトマトがいるので大型ユニットにはめっぽう強いというのがあります。ゾーマやりゅうおうに割りと強く出れるのが、コントロールへの勝率を高めてます。

テンションスキルや星のタロットなどでカードを引きまくれるので、最終的に太陽のタロット2枚とゴールドオークで20点ぐらい回復できるという、僧侶なのか占い師なのかわからないデッキです。勝ちを確信してカード出し切ってるっぽいアグロに対して毎ターン回復を重ねて絶望を与え、最終的にはジュリアンテちゃんでクソゲーにしてフィニッシュという崇高なコンセプトのデッキだったのですが、当時ゼシカとテリーが8割ぐらいの環境でnerf前の人魂が猛威を奮っていた時期でもあり、4/4インキュバス以外で人魂にほぼ触れず実際にはただの無理ゲーでした。

そんなわけで、数日前から奇数ミネアに転向しました🤗 いや、試合時間が長びくってのも結構つらくて…。この頃りゅうおうやゾーマを持ってなかったので、勝ちパターンがほぼジュリアンテとグラコスしかなく、超長期戦が前提になってしまっていました。

奇数ミネア

f:id:oi5u:20180104112318j:plain

で、奇数ミネアです。噂には聞いてましたが強いです。

使ってみて気づいたのですが、特技がアルカナバーストとタロットショットしかないので、テンションスキルで確実に除去を引くことができます。なので、手札に除去がない時はテンションゲージを最低2つ溜めた状態を早く作るよう意識することがポイント(相手にして戦う場合は逆に気をつけるポイント)です。

共通カードは割りと他のデッキでも採用されるものが多いと思いますが、最近流行りのマミーやラヴィエルを入れてるのがポイントです。どちらもHP5なのでシドーに耐えうるし、ラヴィエルは長期戦を見たときにミレーユやジュリアンテを引き直せる可能性があります。

マミーは、単純に有利トレードを狙う以外にも、テリー本体にかけてテリー対策にもなるのと、ジュリアンテやシドーとの相性が良いです。ワンダーフールは途中まで1枚挿してたんですが、ここ一番の奇数チェックで登場したりしてメンタルに大きな影響を及ぼすので、重要な試合のときは外して安定を取るのが無難かと思います…。道中テンションスキルでアルカナバーストを引いてデッキを圧縮することができるので、偶数事故はほぼ起きない(起きてしまったら諦める)感じです。

今後

負けた試合の敗因をちゃんと振り返ってデッキやプレイングの修正を繰り返せば必ず勝ちが先行するようになるし、溜まったものをこんなに一気に吐き出せるぐらいにはやり込み甲斐のあるよく出来たゲームだと思います。

上を見ればまだまだ道のりは長く、やり込みの面でもガチ勢には勝てそうにないので、しばらくは他キャラを試したりクエストを消化するなどしてまったり過ごしたい所存です。これからいろいろイベントやアップデートも予定されてそうなので、楽しみですね。

bitstampに口座開設した

bitFlyerにも口座持ってるんですが、リスク分散のためと、海外の取引所がどんな感じか知っておきたく、bitstampに口座開設してみました。が、これが非常に苦労させられました...。

口座開設のプロセス自体はオンラインで完結するようになっているし、非常に洗練されているのですが、本人確認として「身分証明書」と「身分証明書以外の居住確認ができる書類」が必要で、後者を入手するのが非常に困難なのです。

居住確認のためには「英語で」「住所が書かれた」「公共料金や金融機関などの」書類である必要があり、じゃあ銀行の残高証明書でいいんじゃね?と思いきや、少なくとも三大メガバンク住信SBIネット銀行では、英文で発行できない、もしくは英文フォーマットで請求しても住所の部分は日本語表記だったりして、使用不可能だと判明。じゃあ住民票はどうだろうと思って調べたのですが、自分の自治体では英語フォーマットの住民票は発行してもらえないとのこと。

もうだめかと思ったのですが、はるか昔に作って使ってなかった新生銀行の口座が英文かつ英語表記の住所が記載された残高証明書を受け付けていると判明!

さっそくパワーコールとやらに電話し、手数料1,080円かかって1週間後に郵送でお届けではあったのですが、なんとか書類が揃い、bitstampでの承認も降り、無事口座開設できました。

一応、国際免許証を使うという方法もあったのですが、写真と手数料2400円を用意して平日昼間に警察署に行かないといけないし、有効期間はたったの1年だったのでちょっと諦めました…。

f:id:oi5u:20180104112218p:plain

bitstampはこんな感じで取引ツールがすごいかっこよくて、webアプリも美しいです!残念ながら、取引手数料などではbitflyerのほうが割安なケースが多そうなので、うまく使い分けたいです。