カテゴリー : 2015年 8月

[MongoDB] データベースファイルが保存されるパス dbpath を確認する

MongoDB のデータベースファイルが保存される dbpath は db.serverCmdLineOpts() の実行結果から確認できます。

MongoDB | モンゴディービー

続きを読む

[MySQL] database と table の size を確認する

MySQL で database と table の size を確認する SQL をご紹介します。

MySQL

続きを読む

「YAPC::Asia Tokyo 2015」8/22(土) 振り返り #yapcasia

「YAPC::Asia Tokyo 2015」の最終日を振り返ります。

2015-08-22 17.45.09

ISUCONの勝ち方

チューニングの進め方

課題の理解
プロファイリング
Web アプリケーションで起きていることを知る

プロファイリング結果を読み解く慣れも必要

matsuu/kataribe
Nginx/Apache Log Profiler

MySQL SlowLog解析
クエリ実行回数と頻度

アプリケーションのプロファイリング

各プログラミング言語のツールを使う
strace

tcpdump

サーバの負荷をみる
top
iftop

サーバ構成の把握

Nginx vs. h2o

参考資料

MySQL の offset はレコード数が多くなると遅くなる

参考資料

Covering Index を使おう。

参考資料


我々はどのように冗長化を失敗したのか

Q) LVS 使えばいいんじゃないの?
A) そうですね。

参考資料


MySQLで2億件のシリアルデータと格闘したチューニングの話

TL;DR

サーバリソースが乏しい中で大量データを扱うのは大変


データ分析基盤を支える技術

TL;DR

  • データ解析基盤を作るのはやめましょう
  • クラウドベンダーにお任せしましょう
  • 実現したいことに対して、クラウドベンダーを使いましょう

「Hadoop を自社で持ちたい?やめろ!」


【特別企画】YAPCあるある(仮)

CONBU

”大規模なカンファレンスや勉強会が行われる会場において、会場ネットワークを構築し、インターネット接続を提供するネットワークエンジニアの集団”

所感

CONBU の存在を初めて知りました。YAPC の会場内のネットワーク構築ありがとうございました。

そして、YAPC の運営に関わってきたみなさま、ありがとうございました。


HTTP2 時代の Web

個人的なメモ

  • Browser Cache について、75% の人は 48h で使い切る。
  • インフラの実装は過渡期

Lightning Talks Day 2

MySQL 5.7 は罠が多いので、秘伝のタレな設定ファイルが切望される。


クロージング

2015-08-22 17.53.57


まとめ

エンジニアが2000人以上も集まるイベントに参加できて、良い刺激を得れました。運営メンバーのみなさま、ありがとうございました!

追えてない、理解できてない技術トピックのキーワードを拾うことができただけでも収穫でした。全部、追うのは無理なので、ここから必要なものに絞ってキャッチアップしていきたいです。

「YAPC::Asia Tokyo 2015」8/21(金) 振り返り #yapcasia

10周年、そして、今年で終わってしまうということで最初で最後の「YAPC::Asia Tokyo」に参加してきました。

2015-08-21 11.02.55

各トークセッションの流れは Togetter にまとめられているので、こちらから探すとよさそうです。

以下、視聴したトークと個人的なメモ&所感です。


世界展開する大規模ウェブサービスのデプロイを支える技術

Miiverse | Wii U|Nintendo

AWS US/JP/EU の 3 リージョンでサーバ台数が多いと git pull が重い。

  • Git Slave への同期
  • Git Slave から Pull するときの負荷問題

Mackerel(マカレル): 新世代のサーバ管理・監視ツールを使ってるらしい。

GHE と Git Slave repository の同期が大変なので、新しくリポジトリ同期システムを作った。

所感

Consul + stretcher での deploy は規模大きくなったときに考えたい。しばらくその心配はなさそうだけど。

あと、最近だと AWS CodeDeploy (Amazon EC2 インスタンスへのコードデプロイを自動化) もあるけど、どうなんだろ?


今フロントエンドで何が起こっているのか

所感

最近のfrontendをちゃんと把握できてなかったので、なんとなく流れを理解できてよかったです。


Conway's Law of Distributed Work

分散したチームで効果的に仕事をするために使うべきツールや心構えなどが発表されていた。

Distributed Work では、効果的なコミュニケーションで時間短縮できる。

リモートワークをしている場合、その場にいるかのようにコミュニケーションに入れてあげることが重要である。

Commit Messages

コミットメッセージで会話をする。
考古学者として、あとでコードを掘り起こしたときに何か手掛かりがほしいだろう?

「何を考えていて、どうしてこうなったか?」という情報がときどき失われる。
これを残さないといけない。

CODE REVIEW

コードレビューはバグを 60% 減らせるという分析がある(らしい)。

Email

非同期コミュニケーションには適している。
すぐに返事がくることを期待しない。

Everyone should experience remote work.
まず、課題を実感して、共感して、改善するということが大切。

Have on-site meetups
一堂に会する機会を定期的につくる。

Over communicate.
「常に話す」というわけではない。
「常に書く」ということを意識する。

Share your personality
自分の個性や人格を共有するようにしましょう。
日頃のテキストチャットで共有しよう。
Off Topic の Slack channel を用意する。

Exhibit a “visible pulse.”
リモートで仕事をする場合には、自分が何をしているかアピールしなければならない。

Pick a timezone.
Standard Operating Time (SOT)

CAP THEOREM (SOME LIMITATIONS)

リモートワークでも CAP 定理が当てはまる。

Q&A

Q) リモートワークだと働きすぎる場合がありますが、どうしてますか?
A) なりますね。でも、そうすると家族が寂しくなる。
自分を律する。自分のスケジュール管理をする。
オフィスを離れるタイミング、疲れたら休む。

チームで「あなた仕事しすぎだから帰ったほうがいいよ」と声を掛ける習慣をつける。
自分の仕事に余裕を持って取り組む。

Q) Timezone が異なるとリモートワークが難しくないか?
例えば、日本とアメリカなど。
A) 日本やアメリカ毎に数人のチームを置くべきだね。
自分の意見) 実践したことがあるが On time が重なる時間帯があったので、特に問題にはならなかった。

Q) Face to face の頻度は?
A) 四半期に1回がミニマム
そのときはコードに埋没するべきではない。
中長期的な話をする場にしよう。

Q) リモートワークではモバイルは重要なツールだけど、使っているか?
A) 便利ですね。
友達や家族にとってフラストレーションになる。
時にはスマートフォンを横に置くべき。

所感

リモートワークの経験はあったので、自分のケースと照らしあわせて良い振り返りができました。

「Commit Messages がいかに大切か?」という話をするときの例えとして、「考古学者が発掘するときにヒントが欲しいでしょう?」ってのはわかりやすかった。今度、コミットメッセージの大切さを説明するときにこの例を使わせてもらおう。

※ 考古学者の仕事は、「遺跡や遺構など人類が残した痕跡を探し、発掘し、過去の人類の活動と変化を研究すること」


Electron: Building desktop apps with web technologies

所感

Demo 中心なセッションでした。

直近で、デスクトップアプリを開発する予定がないのですが、作ることがあればまず Electron を使うことになるでしょう。


esa.io – 趣味から育てたWebサービスで生きていく

「楽しく開発したい!」

自分が最近あまりできてないので見習いたい。

開発スケジュールを決めない

  • モチベーションが上がったら開発する。
  • ユーザからのフィードバックがモチベーションにつながる。

理想的っすねー。
開発自体にモチベーションが上がらなくなったときにどうしてるか?ってのが気になる。


Lightning Talks Day 1

LT もぜんぶ聴きました。


懇親会

懇親会の申し込みを忘れてたのだけど、チケット譲ってもらえて入場できました。
ありがとうございました!

2015-08-21 18.02.46

2015-08-21 18.24.02

以上、YAPC::Asia Tokyo に参加した、現場からお送りしました。

Atom エディタのオススメ Package まとめ

Atom エディタで使っているパッケージをまとめてみました。

Atom | アトム

続きを読む

[Node.js] module.exports と exports の違い

結論だけ書いておくと、よく分からないなら module.exports を使いましょう。

Nodejs

続きを読む

今、ドットインストールの「Express入門」を Mac で学習するための覚え書き

今、ドットインストールの「Express入門」を Mac で学習するための覚え書きです。

Express.js

続きを読む

ドットインストールの「UNIXコマンド入門 (一般ユーザー編)」を Mac で学習するための覚え書き

ドットインストールの「UNIXコマンド入門 (一般ユーザー編)」を Mac で学習するための覚え書きです。

会社でエンジニア新人研修を担当しているので、研修資料をまとめるついでに、初学者が Mac で学ぶときに受講しなくてもいいレッスンについてまとめました。

#01 – #03 は VirtualBox などでサーバを起動させるなどの事前準備が必要なのでスキップしましょう。

残りの #04 から最後の #16 まで取り組んでもらって大丈夫です。

[JavaScript] Date.now と new Date().getTime() と +new Date のパフォーマンス比較

JavaScript の Date.now と new Date().getTime() と +new Date の実行時間を jsPerf で確認してみました。

JavaScript

続きを読む