ISUCON8予選に参加した

IISUCON8の予選に参加しました。

ISUCONとは

いい感じスピードアップコンテスト。 webサービスが与えられるので頑張って高速化します。 詳しくは公式サイトを読んでください。

isucon.net

今回のテーマはチケット予約サイト。

チーム

役割分担は、@nonamea774がインフラ担当、@_primenumberがアプリを見る担当でした。

会場

今回は株式会社ミクシィ様に会場を提供していただきました。 快適インターネット回線はもちろんのこと、モニター1台の貸与もあり、快適に作業が出来ました。 ありがとうございます。

mixi.connpass.com

今回はメンバーの1人がリモート参加だったので、競技時間中はSlackのプライベートチャンネルと通話機能で情報共有を行いました。

レポジトリ

rubyを使いました。

github.com

やったこと

(前日まで)

  • 変更をmitamaeでデプロイするようにする
  • netdata導入
  • ssh公開鍵登録
  • mysqldump用スクリプト設置
  • nginx用設定

(当日)

  • インスタンス情報をmitamae、sshconfigに設定
  • netdata用のポートフォワードを設定
  • h2oをやめてnginxを使う
  • pumaをやめてunicornを使う
    メモリをバカ食いしている問題の解決を目指したが、特に効果なし
  • app2台、db1台構成にする
  • sigdumpを入れようとして失敗する
  • nginxでstatic配信
  • get_eventのN+1を解消
    ここで5000点くらい
  • get_eventsのN+1を解消
  • なぜかget_eventで使うデータにnilが混入したので対処
  • get_eventsのトランザクション処理をなくす
    1万点くらい
  • 有効打がなくなる
  • 終了1時間前の再起動テスト
  • 終了20分前の得点ガチャ

結果

59位 17022点でした。

感想

  • 予選の案内メールの文面から何となく感じていた通り、今回の予選も複数台構成でした。
    今回ここではまることはなかったように感じます。
  • メモリが常に逼迫していましたが、最後まで原因を特定することが出来なかったのが悔しいです。
  • ベンチマークはほぼ待ち時間なしで投げることが出来たので非常に快適でした。
  • あまりチームに貢献できなかった気がするので、もっと素振りをして来年リベンジしたいです。
  • チームメンバーの二人には何から何までお世話になりました。ありがとうございました。
  • 運営の皆様、楽しい(悔しい)時間をありがとうございました。

ブログ2周年

当ブログが2周年を迎えました。ぱちぱち。

書いた記事

1周年の記念記事はこちら。

yu3mars.hatenablog.com

1年間で最もアクセスされた記事はこちら。

yu3mars.hatenablog.com

2番目にアクセスが多い記事はこちら。 C#競技プログラミングをする人が読んでくれているのでしょうか……?

yu3mars.hatenablog.com

3番目にアクセスが多い記事はこちら。
c# クラス 値 比較」でググると出てくるんですね。もっと検索の下のほうに埋もれていると思っていました。

yu3mars.hatenablog.com

以上、全部1年以上前の記事でした!

今後の抱負

この1年はあまり記事を書けませんでした……。
細かいtipsのような記事でもok、という気持ちで、もう少しアウトプットできるように精進していきたいです。

gccをVisual Studioで使うための設定 (Visual Studio 2017 & Windows Subsystem for Linux)

gccVisual Studioで使うための設定を書いておきます。 Windows Subsystem for Linux (WSL) 上のUbuntugcc環境を構築し、Windows上のVisual Studioと連携させます。

やること

基本的にこの2記事のどちらかに従えばよいが、追加でWSL上のUbuntugdb, zip, unzipをインストールする。

nekko1119.hatenablog.com

qiita.com

gdbのインストール(WSL側)
デバッグの際に必要

sudo apt-get install gdb

zip, unzipのインストール(WSL側)
gccのライブラリをintellisenseに読み込ませるために必要

sudo apt-get install zip unzip

動作環境

Windows 10 Home Version 1803
Visual Studio Community 2017 Version 15.7.4
Windows Subsystem for Linux (Ubuntu 16.04.4 LTS)

Inkscape(Win)でLaTeX数式を使うための設定

TL;DR

この記事に従うのが正解 ohtsuka.cocolog-nifty.com

この記事の内容

InkscapeLaTeX形式の数式を利用するには、適切な設定が必要です。
ネット上には様々な設定方法が書かれていますが、中には間違っているものもあります。
正しい方法をメモしておきます。

Inkscapeとは

フリーのベクトル画像編集ソフト。 拡大/縮小しても綺麗な図を作成できます。

検証環境

Windows 10
Inkscape 0.92.2

設定方法

LaTeXのインストール

TeX Wiki を参考にLaTeXをインストールします。
TeX Live 2017 で動作することを確認しています。

pstoeditのインストール

pstoedit から、 binary for Windows 32 bit または binary for Windows 64 bit をダウンロードし、実行してpstoeditをインストールします。

EqTeXSvgのファイルでinkscapeのエクステンションファイルを上書き

EqTeXSVG - LATEX Inkscape Extension - JµL!eN's Website から EqTeXSVGのzipファイルをダウンロードします。
zipファイルに入っているeqtexsvg.pyとeqtexsvg.inxをC:\program files\inkscape\share\extensions に上書きコピーします。

InkscapeLaTeX数式を使う

Inkscapeの、 エクステンション>レンダリング>LaTeX数式 から、LaTeX数式を使うことが出来るようになります。

GitHubのプライベートリポジトリをgit cloneする方法

GitHubのプライベートリポジトリをgit cloneする際に、つまづいたのでメモします。

想定環境

Linux

手順

~/.ssh ディレクトリで

$ ssh-keygen -C ユーザー名@サーバー名

ユーザー名はGitHubのアカウント名(?)、サーバー名は何でもok。
実行すると、ファイル名の入力を求められるので、わかりやすい名前を付けておく。 ここでは、mykey-for-githubとしておく。
次に、パスワードの入力を求められる。GitHubのパスワードを入力すればよい(?)。
すると、秘密鍵(mykey-for-github)と公開鍵(mykey-for-github.pub)が生成される。

次に、~/.ssh ディレクトリで $ vim config で、configファイルを編集(エディタはvimでなくてもok)

Host github github.com
    User    git
    HostName    github.com
    IdentityFile ~/.ssh/mykey-for-github

と記述する。

次に、

$ chmod 600 ~/.ssh/config
$ chmod 600 ~/.ssh/mykey-for-github

とファイルへのアクセス権限を設定する。

あとは、下記サイトを参考に、GitHubに公開鍵(mykey-for-github.pub)を設定する。

http://blog.suz-lab.com/2012/12/githubsshgit-clone.htmlblog.suz-lab.com

これでGitHubのプライベートリポジトリをgit cloneできるようになります。

参考サイト

poyopoyo0.hatenablog.com

YAPC::Okinawa 2018 に行った #yapcjapan

先日開催されたYAPC::Okinawa 2018 というIT系カンファレンスに参加しました。

yapcjapan.org

YAPCはYet Another Perl Conferenceの略…なのですが、Perlを触ったことのない私でも全く問題なく楽しむことが出来ました。 どちらかというとWeb系の話題が多い印象です。

ちなみに一年前のYAPC参加記事はこちら。 yu3mars.hatenablog.com

印象に残ったトーク

Webサービスを監視するときに僕達が考えたこと

サーバーを監視するにあたり、便利なコマンドやその読み方について、 基礎的な知識が丁寧に解説されていました。 個人的には一番よかったです。

HTTP/2にまつわる事実と誤解

HTTP/1とHTTP/2について、どちらがより良い通信形式なのか、豊富な実測データをもとに議論されていました。 理論だけではなく、実測データも見ることの大切さを感じさせられました。

MogileFS脱出大作戦

MogileFSからAmazon S3へのデータの移行についてのお話でした。 サービスを止めずにリプレースする事例について、 これまであまりイメージが持てていなかったのですが、 具体的な事例の話が参考になりました。

Special Session LINE「Perlで実装されたLine newsの裏側」

LINE NEWSについてのお話。 LINE NEWS DIGESTの作り方の説明が、3分クッキングのように軽妙で、聞いていて面白かったです。 高速化プロジェクトは、まんまISUCONだな、という印象でした。

前夜祭

コンテンツとしては、LTn連発!という感じでした。 個人的にはアリババの話が面白かったです。

学生交通費支援制度

沖縄は遠いですが、学生交通費支援制度を利用すると交通費と宿泊費の補助がもらえます(上限あり)。 高級ホテルに何泊もする、みたいな極端なことをしない限り、実質無料で旅行が出来てしまいます。 条件はランチをスポンサーの企業さんとお話ししながら食べることと、感想ブログを書くことくらいです。 すごいです(いみがわからないよ)。 参加を迷っている学生の背中を押してくれる、非常に力強い制度なので、次回以降もしあれば、是非利用するよう宣伝して回りたいです。

最後に

とても楽しかったです。行ってよかった。 福岡に行かなかったことを結構後悔してます(なんで行かなかったんだろう)。 次回は東京だそうです。

yapcjapan.org

トライアドプリムス(デレマス)のドット絵を描いた

9/16は神谷奈緒の誕生日ということで、
アイドルマスターシンデレラガールズより、
トライアドプリムスのドット絵を描きました。
好きなユニットを描くのは楽しいです。

デレマスのキャラはドット絵で個性を出すのが難しいですね……

【アイドルマスターシンデレラガールズ】「トライアドプリムス(アイドルマスターシンデレラガールズ)ドット絵」イラスト/yu3mars [pixiv]

このツイートに触発されて描きました。愛があっていいですね。