いがにんのぼやき

WEBエンジニアのブログ。IT、WEB、バンド、アニメ。

UbuntuにDockerとDocker Composeをインストールする

下記公式サイトを参考にインストール。 ほぼ公式サイトのままなのでメモ程度に。

docs.docker.com

docs.docker.com

# 既存のバージョンを削除
sudo apt-get remove docker docker-engine docker.io

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update
sudo apt-get install docker-ce

# サービス開始
sudo service docker start

# テスト実行
sudo docker run hello-world
sudo docker run -it ubuntu bash

sudo usermod -aG docker $USER

# 自動起動の有効化
sudo systemctl enable docker

docker composeのインストール

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

# ビルド
sudo docker-compose build

Windows PCの中身をUbuntuに変えた

WIndows PCの中身をUbuntu 16.04.3 LTSに変更した。

入れた手順は公式からisoファイルを取得してUnetbootinUSBメモリに書き込んで、BIOSの起動順序変えて前のWIndowsが入っていたSSDクリーンインストール

Windowsの不調

元々Windowsが不調で悩んでいて、つい最近BIOS画面から進めなくなったことから試しにUbuntuにしてみた。
Windowsのシステムファイルが破損したのか、結局原因は分からずじまいではある。
起動できなくなる前は、何度更新しても延々と外国人の眩しい笑顔のWindows Update催促の表示が出まくったりしていて、これやばいなと思っていた。
Windowsの開発者ビルドのアップデートも受け取っていたのでそこらへんも関係していたりするのかもしれない。

開発OSとして

そんなこんなで、元々Windows以外のOS,というかサーバー開発に優れたOSをメインにしてみることは考えていた。
やはりWindowsでもMacでもVagrantやDocker for XXを使っていくとバグを踏んだり環境特有の問題があったりして辛かった。
Ubuntuにすればそこらへんの障壁がなくなるのではないかという淡い期待。

使ってみて

賞味3時間も使っていないが現時点での感想。

  • 日本語入力が不安定(最初だけで途中からは問題なくなった)
  • オーディオインターフェースなどデバイス周りは特に問題なかった
  • ブラウザ系アプリも問題なし
  • Kindle使えないの辛い
  • キーボードショートカットよくわからん
  • 情報がGUICUI混在していて探しにくい

ざっとこんなところか

ぼちぼち使ってみて引き続き使うか、他のOSに戻るか検討しよう

最終出社終えました。

2日前の金曜日に最終出社を終えました。

昨日は交流会でLTもしていてそれも終わったのでひと段落といったところです。


まだ退職しているわけではないので後々現職はこんなんやってましたーみたいな退職エントリも書こうかと思います。


とりあえずひと段落、ここから休息と勉強です。

HTML5 Conference 2017に参加してきた

html5j.connpass.com

参加してきました。
その時の雑な自分用メモを公開します。

公式サイトは今は見れないっぽい。 http://events.html5j.org/conference/2017/9/

以下に発表スライドをまとめてくれている人がいます。
qiita.com

任天堂

html5experts.jp

2011年入社 津田 宗孝 2013年入社 堀川 雄司

任天堂とWeb?

公式サイトだけじゃない!

世界中の人と繋げるためにスマートフォンとWEB
Webkitをベースのブラウザコンポーネント

ニンテンドーアカウントの作成はウェブ画面
メールアドレスだけ入力すれば、スマートフォンから他の情報の登録ができるようになる

Nitendo SwitchとWeb

Switchのスクリーンショットで、投稿する画面はウェブアプリケーション スプラトゥーンの武器の説明はHTML、試し打ちのスーパーの説明やバトルのルール説明など 文字が多いところはWEB、WEBだと多言語対応がしやすいため アームズのキャラクターのところも?

みまもりSwitchは普通のネイティブ

Nintendo eShopができるまで

2015年末
eShopのプロジェクト発足

すぐに

  • すぐに出会える
  • すぐに買える
  • すぐに改善
出会える

eShopを見なければ目につかないのであれば意味がない
商品のプロモーションはゲームニュースに切り出した
スリープ復帰時に必ず目につくようになっている

買える

書いたいと思ったらすぐに買えるための導線を増やす
買いたいと思う熱を冷まさない

ソフトとサーバーサイドが連携してeShopの色も自動で変わるように対応

すぐに改善

ライブラリ選定
SPAを前提
コンポーネント指向
シンプルな状態管理、決済や言語などに対応するため

React + Redux

react redux react-router axios

文脈に沿って追加/習性が可能

コンポーネント化の誤解

ここは価格を目立たせたい
価格、同じコンポーネントだけどどうするの?
デザイナーはWhat、エンジニアはHow

全体を俯瞰できるモックアップの開発に立ち返った
検索は非同期で一部描画
描画コストの高い画像に関しては商品のキーカラーを表示
描画領域以外の箇所を後からレンダリング
React-storybookを活用して認識を共有、コンポーネントカタログを作成

開発と検証の溝

国、言語、法律、通過、決済

ユーザーストーリの作成

エピック
ニュース→eShop→ゲームの購入
品質目標

  • Never
  • Must
  • Want

開発序盤からのテスターとの協業
長期的な安定稼働
すぐに改善

終盤、ローンチまで半年を切ったところ

eShopが不安定、起動が遅い
フロントエンドエンジニアからのヘルプ
サーバー、ブラザ、アプリ、SDK/OSプログラマ、デザイナ、一つの会社、一つの建物にいるのでできる

Yahooのプロキシとプロトコル

新部 長則
2010年 HDDからSSDへの変更
2011年 帯域不足 NW増強、データセンター追加
2013年 pushスパイク問題、Proxy、origin共に増設
2015年 SSL、CPU性能不足 システム入れ替え

AOSSL対応

2015年10月 全社の代表者が集まり発足
サービスが100以上、ドメイン1000以上なのでなるべく収まるよう減らして言った
またワイルドカード証明書を活用

共有Proxy Hardware 500以上のサーバー
リクエスト200万rps
Traffic 300Gbps

EV SSLだとワイルドカード証明書が使えない
SNIによる証明書の出し分けで対応

HTTP/2の現実

大津 繁樹
ATM

HTTPリクエストを仮想的に多重化
待ちが他のリクエストに引きずられない

サーバー側から見る速度

大きめのファイルのダウンロードは確かに早くなった
アクセスしているOSやクライアント環境によるものかもしれないのでHTTP2のおかげで早いのかは分からない

小さいファイルはほぼ変わらなかった

クライアント側から見る速度

DOMContentLoaded
HTTP 1.1 1.15s
HTTP 2 1.14s
ほとんど変わらなかった
画像の読み込みは早いがそれ以外の要因で変わらなくなっている??

新規接続:再接続
http/2 11:89
1.1 42:58

サーバーのSSLの暗号化処理の分が軽くなるのでサーバー側に影響が以外にもあった

TLSの現実

TLS1.0はオワコンだがWin7 IE9、IE10、IE11やAndroid4.x 標準ブラウザ
今はTLS1.2

TLS1.3

HTTPというものはブラウザからも信用されない時代がくる
中間経路がTLS1.3に対応していないとそこでブロックしてしまう可能性があるので調査が必要

QUIC

クイック
UDP

モダンウェブアプリケーション5カ年計画

Rendering on Googl Search
V41のクロームでSPAもSEO解釈されるようになっている
Isomofic JavaScript = Universal JavaScript

全アプリに向かない(参照系に向く)
管理画面などは複雑性が高いから難しいかも
Code-Splicting
SSRは意外にも表での処理がとても長くなる(操作開始まで)
WebpackのDynamic Importsで解決
React Fiberでバックエンドの処理もさらに細かく

※この度過去に参加したイベントのメモなどを公開することにしたので、投稿日時をイベント当日に変更してあります。

退職、勉強期間をとります

10月末に退職します。
で、退職したらどこ行くのって話ですが、どこにもいきません。
家に籠り勉強期間をとってみようかなと思ってる次第です。

色々思うところがあって、エンジニア的に優れた場所に行きたいし、より良いサービスというものを作っていきたい。
そう考えたときに今のままだとその環境に行くこともできないと思ってしまった。
なので、勉強期間をとって一度がっつり勉強しようかと思っています。

実際に勉強することはこれから練っていこうかと思います。
人間、好奇心が一番の活力剤だと思うのでやりたいことやったり、はたまた知識の地を固めたりフラフラしようかと。

下記はとりあえずやっていきたい、勉強したいなと思っていること

  • データベース
  • セキュリティ
  • 設計
  • Linux
  • APIサーバー実装
  • 疑似プロダクト開発
  • OSSのコードを読む、可能であればコントリビュート
  • Electron

全く絞ってないけど、再度練り直していこうと思います。

Ultra Beer Bash 2017に参加してきた

ubb.jp

Ultra Beer Bash 2017に参加してきました。
その時の雑な自分用メモを公開します。

アジャイル開発の現実 〜アジャイル開発の活用・実践事例〜

ディレクター取締役 mixi出身

日産 14年目情報システム

コグニザントジャパン 代表

予算はあるが、MVPを作りそこから予算分拡張して行く形になっている
アジャイルのインフラではクラウドを使用してオンプレに接続したり

ゲーム会社のエンジニアってどうよ? 〜年収×業務量×スキル〜

ディレクター代表取締役

ドリコム執行役員

ワンダープラネットCTO 村田
VRとか機械学習の研究部

インタラクティブ

エンジニア像

C++エンジニア、メモリ管理

年収

コンシューマーでそのスキルでその額?って人はいる
ゲームアプリは人の奪い合いで年収は上がっている
面接でコンシューマーは低いって人が多い

ドリコムは4桁の人はいる
ワンダープラネットでは4桁はいない

ゲームを理解してサーバーサイドをやれる人がいない
ハイトラフィックの対応は意外に金融とか広告業界の人が強かったり

クラウドの知見があるとインフラエンジニアとしては評価される
セガのアーケードのサーバーサイドはJavaで書かれている

働きやすい会社は自分たちでつくる!注目IT企業によるエンジニア組織づくり

採用活動

エウレカ 行動規範にそっているか、一緒に働きたいか
VASILY 人事がおらず、採用活動もエンジニアが行う、自らブースに出てきたり
Fringe81 気持ち、みんなが80点だったら落とす、誰かが100点をつけないと採用しない

チーム力を高めるための仕組み

VASILY
ブログ書いたとかOSSにコミットしたとかを共有 Frige81
3年くらい一人もやめていない バーチャルチームを作っている プロダクトとは関係ない横串のチームを作っている スポーツとかを一緒にやっている

イタンジ
結構入れ替わりが激しい

エウレカ
CTOのカレンダーを共有して空いてる時間を見つけてCTOを利用しろと言っている

CTOになってみてわかるエンジニアのキャリア

就任経緯

弁護士ドットコム   最初8年くらい赤字、2013年くらいから収益
そのタイミングで開発組織を整えるためにCTOに

大規模サービスリプレイスの道

小川 健太郎
グループマネージャー

リプレイス進行中

関連システムを加えるとカオス状態
開発者数150名以上、年間機能追加件数 650件
Java6 独自FW オンプレ
10年もの

Ruby(Rails) + Java8(Spring)のAPI型に
Ubuntu nginx fluentd
アーキテクチャはテックブログに!

テストを書くとき、すぐに効果は出ないので上で示し合わせをしておく

※この度過去に参加したイベントのメモなどを公開することにしたので、投稿日時をイベント当日に変更してあります。

Laravelのサンプルアプリを作り始めた

Laravelのサンプルアプリを作成して、実際の自分のプログラムを公開していく場のために、下記のリポジトリを作成した。

github.com


今、Laravelを使用してCo.Techというサイトを運営しているものの、運営しているプログラムというのは公開したくない。
なので、サンプルアプリケーションとして別の形態で公開するという形をとってみた。

よくこんな感じで書いてるんだけどーって話をするときに、ネット上で議論をするとあまりコードの見せ合いはできなくて、イメージが湧きにくかったりすることもあり、実際のコードは公開したいとはずっと思っていた。

まだサンプルアプリケーションをどんなシステムを想定して開発するかとか、全く中身を入れていないので、順次開発をしていこうと思う。

あと、GithubではなくずっとBitbucketを公私共に使っていた人間なのでGithubの使い方を間違っていたりとか、こうした方がいいよってことがあれば教えて欲しい!