mozyのかきおき

mozyの読書感想文や思考置き場

Silbirdに来て変わったこと

Silbirdに来て変わったこと

これはSilbird Advent Calendar 2017 - Adventarの1日目の記事です。

一番下っ端で日の浅い働きマンが、First Penguin🐧だよ。 技術バリバリな記事は、後続の凄腕エンジニアの方々が書いてくれるでしょうから(無言の圧力)、
1日目だけは、自分の忘備録兼、お仕事記録な記事でいきましょう。少し恥ずかしいですが、思いの丈を本音で書きましょう。
ちなみに、この記事は、最近ハマっている、DE DE MOUSEさんの民族音楽 x シンセな曲を聴きながら書いています。

結論から書く

人が仕事をし、生きていく上で、時に判断に迷う時がある。そんな時はとにかく飛び込んでみるのが良い。やってから考えればいい。それがきっと自分のためになるのだから。と思って。
人には合う居場所と合わない居場所がある。きっと、それは5秒で判断できるし、君たちがどう過ごすのかは、自分自身で決めることができる。
自分自身の行動指針と、会社の指針がマッチした時、そこが居場所になる。

過去の話

まずは、私の自己紹介などから始めましょうか。
私は、関東の某所な大学に通いつつ、エンジニアとしてお仕事をしていた(いる)人間です。
ひょんなことから、Silbirdに出会い、あれよあれよといつの間にか、お仕事をさせていただいています。
ざっくりいうと、
以前いた会社では、常に、どこに向けて何を作っているかわからない。何をすればいいかわからない状態で混乱しながらものを作っていたように思います。 環境が合わないことはずっと引っかかっていて、ついに、新天地探しに漕ぎ出し、Silbirdに出会ったように思います。

今の話

現在は、まだまだ理解は足りていませんが、Webゲームに関するエンジニアとして、C#を書いています。最近は、仕事が楽しいです。かなり。
詳細は、後述しますが、社風と自分のマインドがマッチしたところが大きいのだろうと感じています。
インターン後、初めてC#を扱い始めた時の気持ちが以下の記事あたりにまとまっています。

あらゆることが最初は気まずい  
初めて、C# + MVCのコードをみて実装をしなくてはならなくなったとき、
私は汗をかく「黒い点」だった。  

最高の仕事はできていなかっただろう。
自分のバリューを出して人を魅了することもおそらくなかった。
しかし、時間は過ぎ、最終的にその実装は終わったのである。
次に、C# + MVC と対峙したときも、私はまだ落ち着かなかったが、前回ほどピリピリはしていなかった。  

要するに、物事は変わるのだ。
時間とともに、最初は落ち着かない気持ちにさせられていたものが、第二の天性になる。  

バカにされるのを恐れるな! - mozyのかきおき
リスク許容度をぶっ壊すというスタイル - mozyのかきおき

上記の記事などでも述べているように、
Silbirdでは、できないかもしれない。わからないと思った時に、それを恥ずかしがらずに声高に宣言して、周囲を巻き込むことが良しとされている雰囲気があります。
これが、初心者な私にとっては心理的な壁を取り除く意味で、かなり重要なファクターだと思っています。
心理的な安全を感じる雰囲気があると、安心して失敗をすることができるので、チャレンジもできますし、この場所は居心地が良いし自分自身が成長できるだろうと思えるのです。
これは、なぜなのだろうかと考えるとSilbirdでは、Silbird-Wayというものが徹底されているからなのかなと感じます。

Silbird-Way

Silbirdには、7つのSilbird-Wayという、行動指針、クレドに当たるものがあります。

  • Take Ownership - 業務、採用、文化、会社。立場を超えて、すべてに当事者意識を持つ。
  • Why Driven - 常に「なぜか」を思考し、既存を疑い、目的と手段を考えて行動する。
  • Open & Share - 情報は「オープン」に「共有」し、周囲を巻き込んだ価値を創る。
  • First Penguin - 誰よりも速く突破口を開き、大胆に行動する。遠慮は罪。
  • Professionalism - KPI、PDCAKPTを駆使し、思考停止を全力回避。全ては成功のためにある。
  • Never Giveup - 失敗はする。ただし打席からは降りない。諦めずに終わりなき挑戦を続ける。
  • Be Geek - 蕩けるほど脳に汗をかき、クリティカルシンキングを絶やさず、効率よく立ち回る。

これらのWayはそれぞれが、相互に影響を与えて全体が成り立っていると感じています。
例えば、
開発期限が迫っている時にみんなの効率が上がるように、テスターとして力を貸すことなどなど。
これは、社内全体の出来事に、当事者意識を持って、目的と手段を考え、遠慮せず、挑戦しています。
事例がわかりづらいかもしれませんが、
私は、特に、ここでいうFirst PenguinとOpen&Shareを心がけています。明日からも初心を忘れずバリバリ貢献をしていきたいです。
明日からの人、よろしく!

AWSの勉強会に行ってきた【サーバレス技術】

【サポーターズCoLab勉強会】CTOが語るTalknoteを支えるサーバレス技術【AWS

【サポーターズCoLab勉強会】CTOが語るTalknoteを支えるサーバレス技術【AWS】 - サポーターズCoLab
に行ってきたのでメモをシェアしておく

Talknoteとは

講師さんの作っているサービス LINEとか使ってる人が普通に使えるようにしている社内SNSとのこと。
チャット + コミュニケーションの可視化もできる

サーバーレスとは

  • BasS型 例: File base
  • FaaS型 例: AWS lambda
    などの種類があるが、今日はFaaSについて話す

種類

  • IaaS
  • CaaS Dockerとか
  • PaaS herokuみたいな グロースして行くとキツイ
  • FaaS アプリケーション部分がミニマム

サーバレスは何がいいのか メリットは

* コスト削減
* 局所化と疎結合
* スケーラビリティ
* イベントインテグレーション
  • インフラコスト削減
    • 待機分のサーバコストを削れるかも
    • 単位あたり 7割コストカットできた
  • 運用コスト節約

    • サーバ保守 サーバ管理とか、プロセス管理が容易
    • 偶有的な仕事の削減 (目的のためにたまたま発生する事象のこと)
    • プログラムのバグ潰しが減る
    • 本質的な仕事に取り掛かれるようになる
      • 本質的仕事とは、顧客の問題を解決すること 製品を差別化すること
  • サーバレスってなによ -> いわばシェアリングエコノミーかな

  • 局所化と疎結合が自然とできる

  • スケーラビリティ

    • 必要に応じて勝手にスケールする
    • 厳密な需要予測しなくていいのはナイス
    • タスク開始時点でサーバリソースの割合が保証される
    • スケールアウトについて設計考慮することが ::減る:: 。なくなりはしない。ボトルネックは外にあるので。
  • イベントインテグレーション
    • 様々なリリースのトリガーと簡単にリアルタイムに紐づけられる
    • IFFTTと概念は近い(?)

やってみたこと 実際の事例

* PDFプレビュー機能
* EC2 イメージマジックとゴーストスクリプトを走らせる
* cronで定期的に捜索してた
* メモリ食うので -> インフラコスト増
* いつPDFが来るかわからないのでwaitしている間のサーバコスト無駄

これは、Faas教科書みたいな案件とのこと

サーバレスの問題、リスクは?

  • ベンダー依存
    • ベンダーが定めた制限事項に仕様全体が限定される
    • APIのバージョンアップによって想定外の改修が起きる可能性
  • ベンダーロックイン
    • 特定のベンダーの仕様にシステム全体が依存してしまう
    • 特にFassはそう
  • 外部のボトルネックがある
    • サーバ上に状態を保持できないので外部サービスに渡す必要あり RDSなど
    • 無制限の自動スケールアウトなどは存在しない
  • 環境上の制約
    • 起動のレイテンシがある
    • 実行時間の制限
    • サーバーリソースの制限
      • 確保している分しか使えない
    • サーバ設定の制限
      • プリインのライブラリ、フォントファイルなど
        • ここは暗黙的に担保されるという思ってるけど意外と重要な点
      • 最近はラムダと同じDockerが落ちてるのでテストできるらしい
    • マルチテナント
      • セキュリティ面での問題がある可能性がある
      • EC2は専用ホストあるけど、lamdaはそうじゃないので気になる顧客もいる
  • 原子性の管理
    • 不可分性
    • それ以上細かい単位や要素に分割できない要素のこと
    • 共通のコンテキスト
    • 同じドメインモデルへの操作、同じDBテーブルへのアクセスなど、コレらをまとめて管理する手法がない

サーバレスとマイクロサービスの関係は?

サーバレスにすると必然的にマイクロサービスになる

メリット

  • 耐障害性
  • 変更に対する柔軟性
  • 技術多様性
  • ライフタイムを伸ばせる 長期的に伸びるために導入する必要あるだろう

デメリット

  • 整合性担保のためのコスト
  • 設計の複雑化
  • 運用コスト増

システムの複雑度を考慮した上で段階的に導入すべし

どんなときにつかうかの提案

  • プロトタイプ開発
    • 事例、お店に来た人をAIで解析マーケティング
    • 有効データとれるかわからないので、数店舗のみで実行
    • 実験的な取り組みとは相性いい
    • 大きくなっても構成変えなくて良いのはナイス
  • 予測が難しいトラフィック
    • 事例、ラウザでのカードゲーム
    • 10,000%トラフィックにも対応できた
  • データのフィルタ
    • UNIXという考え方 本を読むといい
    • 設計思想の定理に、割とマイクロサービスな考え方が詰まってる
    • 入力したデータを加工して出力する単機能プログラム grepなどの思想
  • サブドメインの分割
    • モノシリックで巨大なサービスを段階的にマイクロサービスに分割して行く
    • コアドメイン 最も重要で戦略的に必要な機能 (コミュニケーションに関する機能など)
    • 支援サブドメイン コアドメインを支援する独自機能 (ユーザ管理など)
    • 汎用サブドメイン 必要だが事業的に特別なでない機能 (認証 決済など)
      • ここからマイクロサービス化して行くべき

質疑応答

サーバレスとは、要するにサーバの外注ってこと?

違うぜ 意識しなくなるって意味
最初はBaasで君はアプリだけ作ればいいよーという文脈で始まったのもある

コストって抑えられるの?

コストは抑えられないかも。ここら辺のヘッジは難しい。
lamdaのファンクションで、ディスクエラーはつきもの容量とか。
冪等性担保は めんどくさいよね

結局サーバレスのいいところって?

人のコストは下げられるけど、お金のコストはかかるかも。
スケーラビリティの観点が一番大きい。
また、トラフィック対策の点も大きい。複製できるので逐次対応できる点が良い。

【IDDD本】ドメイン駆動設計読書記録【ことはじめ】

ドメイン駆動設計読書記録

エンジニアなお仕事をさせていただいている会社で、ひょんなことから、
エリックエヴァンスのドメイン駆動設計をお借りできたので、読書記録を書いて行こうと思います。

まずは、現状のメモ

自分は、DDDに関してほぼ知識はない状態で、このような開発も行ったことがないと言える状態です。

ペースなど

一週間に一章のペースで読んでブログにメモをしていこうと思っていますが果たしていつ最終章にたどり着けるのでしょう。楽しみです。今回はフォーマットを決める記事としましょうか。

フォーマット

  • これまでの章まとめ(目次の代わり)
  • 章の概要とまとめ
  • 感想、新たに知ったこと
  • 適用先、応用先など
  • その他

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

今話題(?)のモブプログラミングを大学のプログラミング講義に適用したらどうだろうかという提案

表題の通り、大学のプログラミングの講義などで、モブプログラミングのような形式をとるのはどうだろうか。と思った。

この記事の後半部分 心理的に安全を感じること という部分よんで思ったのだれども

技術なきマネジメントの衰退とその対策 - メソッド屋のブログ

心理的に安全を感じること

 プログラミングをやる時に、現在では毎日のように「未知の技術」に向かわないと いけない。新しいことを覚えて熟練して使えるようになるには時間がかかるし、知らない技術をやらないといけない時は、自分にできるだろうかとか不安になる。

大学の講義などで初めてプログラミングを行った初心者の人は、そもそもコンパイルの方法がわからない、ターミナルで $ls と打つと書いてあったら $も含めて $ls と打ってしまうみたいな、経験者は自然に身についている勘どころみたいなものがわからないというように、小さな障壁がたくさんある気がしている。

自分が書いたコードの問題なのか、それ以前の環境の問題なのか、このアイコンはOKを押していいのかなど、複数の要因が絡み合ったわからないが存在しているハズ。

そこで つまづいてしまって途中で投げ出してしまうのももったいない

 

実際、大学の講義などでは、TA制度などがあるだろうから、チーム分けをしてその中に1人詳しい人が必ずいる、そして常に対話しながらコードを書いていくというのはどうだろうか。

わからないポイントって人それぞれで、補完しあえるし、目の前で、ちょっとした指摘をしているのを見るとへぇそんなものかと身につく気もする。

境界線を考えるということ

新しいことを思いついた時に、これって問題が起きるかなって一度脳内でシミュレートしてみるときがある。

例えば、俺、今度、札幌に行くから、向こうの大学生の家に泊めて貰えば宿代がうくじゃないかと考えて連絡をして、実行したとする。

多分これは個人間だと多々ある話で、大きな問題は表面に露見せずに終わると思う。

 

だけど、これがサービス化するとどうなるだろうか? 

大学生を旅行先の大学生の宿主とマッチングするサービスだと考えると、きっと、色々な問題が露見してくる。

出会い系と何が違うの?危険性は?そもそも相手が虚偽の申告をしていたら?

そんな時にじゃあ難しいなぁって思うのではなく、もう一歩深掘りすると面白いってことに最近気がついた。(最近とか言っているけど、数秒前に思いついた。)

じゃあ実世界でサービスを行なっている、実働している、

ホテル予約サイトや、Airbnb、などってこの部分をどうクリアしているんだろう?何が違うんだろう?と考えて行くと、境界線がぼんやりと見えてくる気がする。

考えると、多分、信頼とか信用とかも関係あるかもしれない、気軽さの度合いが違うってのもある。法に基づいて運用してるかとかもあるだろうし、プライバシーとかもあるかもしれん。

 

こうやって境界線をどんどん探って行くと、あっコレどうにかなるかも。ということが見つかることがありそう。そんなわけで深夜のメモ書きですがここら辺で筆を置くことにしましょうかね。

2017/09/25 の気になったこと

三日坊主になりがちな俺がメモメモ3日目です。(๑˃̵ᴗ˂̵)

気になったこ
  • 駐車料金ってどうやって決まってるのかな
  • 昨日も思ったけどパークアンドライド経路案内があったらめっちゃ便利だろうなぁ
  • ノイズキャンセリングイヤホンを使っているけどコレ実際に実装するならどうすればいいんだろうなぁ
  • 僕は、本にめっちゃ書き込みするタイプなんだけれども、結構少数派らしい? そういや、この書き込みとか点検読みとかは、「本を読む本」という本を読んでから実践しているのだった。
  • iPhoneでバックグラウンド起動のアプリって、個人的には、かなりまめに消すんだけど、最近は起動中のままにしているアプリが多い気がする。
  • バックグラウンド起動をしておくと何かメリットあるんだろうか。
  • どのアプリをどれくらい起動しているのか時間などが分かったら面白いね。あるユーザの時間帯別アプリ占有率とか出せたらプロモーションとか打ち出しやすいし。

 

考えたこ

電車の座席や公園のベンチなどは、肘掛けがないから、人が隙間を開けて座って、本来座れる人数よりも1人くらい少なくなっていることがある。これってパーソナルスペースの考え方でいいのかな。

高速バス4列シート車両で、肘掛けがあると自分の占有できる範囲が明確になるため、気が楽に感じる気がするし。

電車の新型車両では、座る部分にくぼみを作ったり、2人ごとに縦に支柱(?)を作ることで規定人数座れるようにしているなぁ。

確か、武蔵野線の車両などでは、上記の問題が起きている気がした。

 

気がついたこ

バスから外を見てて気がついたのだけれども、

首都高6号三郷線上り、街灯の根元の部分に車両用センサがあるっぽい
街灯番号06-7170,7082,7062,7044にはセンサらしきものがあることを確認できた。

よく渋滞する区間だしあのセンサで渋滞状況とかをみてるのかな。

 

知ったこ
  • つくば-東京駅のバス切符がなくなったらしい
  • イージューライダーの二番の歌詞は最高に良い。自分の考えていることに近い。

 

読んでる本

 

 感じたこ
  • トヨタ CH-Rのモータ加速はスゴい。出だしに少し強くアクセルを踏み込むと背中をぐいぐい押される感じがある。
  • CH-R海外でめちゃ人気っぽい。カタチが人気なのかなぁ。
  • こうやって数日間メモメモしていると気分の違いというか、日によって書く分量というか、書こうっていう気力が結構違うんだなぁって思った。今日はなんだか気だるい日です。

 

食事とか

今日は朝昼兼用で、完全食COMPに置き換えています。

今日も昨日の夜同様、カルピス割りです。カルピス割りは商品でもいいでしょうと思うくらいに美味しいです。

毎回お腹は満たされているのであまり不満はありません。ふとした拍子にコロッケとか食べたくなるけど、ほぼほぼ満腹なので気にならず。☻

f:id:mozy_ok:20170925153221j:image

2017/09/24 の気になったこと

三日坊主にならないようにメモメモ。2日目です。(๑˃̵ᴗ˂̵)

睡眠時間が2時間半と短かったので、内臓が少し重く疲れています。

 

気になったこと
  • 朝食ヨーグルト、モーニングショットなど、商品名で朝をイメージさせるワードが入っていると朝昼夜で売り上げはどう変動するのか
  • Apple Musicのシャッフル再生で、どう曲を選ぶかのアルゴリズム 数曲前までは重複がないようになど完全ランダムでなく条件づけしてる気がする
  • 音楽聴いてる時の心拍数変化 apple watchのデータで解析可能かな
  • その人の服装や背格好などから職業を推定できるかな。データセットがあれば学習できるか
  • 自転車で大きな荷物を運ぶ時のコツ

 

音楽
  • ハルカトミユキ
  • 奥田民生 イージューライダー

 

考えたこと
  1. 現実世界 to インターネットとインターネット to 現実世界で情報量非可逆みたいなものがあるかも。インターネットから、現実空間に徐々に染み出してきている情報は、両世界で使いやすいように構成されているけれども、逆はそうではない? 現実世界からツイートなどのテキスト、写真に変換されてインターネット上に移動したものはタグ付けがされていないと使いづらい。
  2. 筑波大学における自転車の問題点に関して。ICタグ導入とかやってたけどあれってmobikeとか導入すれば色々解決しそうな気もする。駐輪場問題とかもいつ、どこにどれくらいの台数が止まるかも解析できるし。コレに関してはもうちょっと探ってみたい。
  3. パークアンドライド(車で駅まで行って電車に乗り換えて目的地まで行くこと)で最安のルートを見つけるアルゴリズムとかってまだなさそうかなぁ。例えば、高速代金、ガソリン代金、駐車代金、駅までの移動代金、電車代金、駅からに移動代金、と関わってくるものが多いから最適化するのには面白い題材かもしれない。駅前で激安な駐車場とかあるとそこまで車に乗って行きたくなるし。

 

教えていて気がついたこと

子供達にブレッドボードを使った電子工作を教えていたのだが、ジャンパワイヤの色が違うと機能が違うのように意味があるとみな無意識に思い込んでいるようだ。抵抗の部分でカラーコードの話をするからなのかなぁ。

最近は、LED使った電子工作をするときに子供達は当たり前にLEDを知っているし、人によってはプログラミングをやったことがある人がいて時代は変わって来ているぁなと思う。

あとYoutuberはやっぱりキッズに人気なのねw 話を聞いて実感した。

 

 綺麗だなぁと思った

このお花? アケボノソウっていうんだってなんか綺麗だねぇ