ISUCON10予選に参加した

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

ISUCONとは

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

isucon.net

今年のテーマはSUUMO風サイト。

チーム

ISUCON8,9参加時と同じチーム。

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

会場

今回は2拠点体制だったので、 競技時間中はSlackのプライベートチャンネルと通話機能で情報共有を行いました。

レポジトリ

今回からgoを使いました。

github.com

gitレポジトリは各自の手元マシンのみに持っていました。

Makefile にデプロイ用コマンドを記述し、 'make deploy-zenbu' で本番サーバに適用する、という運用をしていました。 scpでファイルコピー、sshで本番サーバ上のコマンド実行をする温かみのある運用です。

やったこと

GitHubのコミット記録から書き起こしました。 なお、コンテスト時間は12:20~21:00でした。

12:00~

17:00~

  • SQLにインデックス追加
  • color, kindの種類が固定なのでSQLをintで保持する(searchの高速化目的)

19:00~

  • searchで扉の大きさでselectする条件の改善 commit

やれなかったこと/思いつかなかったこと

  • 複数台構成にする
  • DBをchairとestateで分けて2台構成にする(JOINしていないので分けて問題ない。これがクリティカルに効くらしい)
  • goのLoggerをとめる

結果

最終1195点(最高点1401点)で予選落ちでした。

感想

  • /etc以下のファイル管理、ansibleでデプロイ、makefileでデプロイ、etckeeperで管理等いろいろやり方があるらしい(感想戦より)
  • user_agentはnginxで弾けるんだなあ
  • 今回の問題はどこを改善していいのかよくわからない…とずっと言っていた
  • 何も変更していないのにベンチマークが通ったり通らなかったりして困惑(csv入稿が遅かった)
  • チームメンバーの二人には何から何までお世話になりました。今年もありがとうございました。
  • 運営の皆様、ありがとうございました。

FANJ Premium Live 2019

2019/04/07(日) 16:30-19:30に 京都FANJというライブホールで行われたフェス形式のイベントに行ってきました。 キャパは650人らしい。

イベント概要

fanjpremiumlive.jp

出演
鈴木このみ / TRUE / Machico / Mia REGINA / 山崎はるか

感想

良かった点

開幕に「真理の鏡、剣乃ように」MV フルが流されたのがよかった。 好きな曲(例: My Sweet Maiden)が聴けて良かった。 TRUEさんの歌声が力強くてよかった。 箱が小さい分、肉眼でもアーティストが豆粒にならずに見えました。

いまいちだった点

…というのは半分嘘で、実際は前方の客の頭と手であまり見えませんでした。 フラットな会場はここがつらい。 オールスタンディングなので足が疲れる&ステージが見える場所の確保が大変。 客の元気が良すぎた(オブラートに包んだ婉曲表現)

総評

聴きたかったアーティスト、曲がたくさん聴けて良かった。 会場は、個人的には傾斜のある、座席指定のほうが好きです。 姉妹イベントの京 Premium Liveはどうなんだろう…?

セットリスト

OP

  1. 真理の鏡、剣乃ように MV

山崎はるか

  1. ゼンゼントモダチ
  2. 金曜日のBambi
  3. 黎鳴-reimei-(黒崎真音カバー)
  4. 善き少女のためのパヴァーヌ
  5. 僕ら、駆け行く空へ

Mia REGINA

  1. 蝶結びアミュレット
  2. My Sweet Maiden
  3. ピンヒール・ムーン
  4. 純正エロティック
  5. THAT'S A FACT! ~千里の道も一歩から~

Machico

  1. コレカラ
  2. STAND UP!
  3. 甲賀忍法帖
  4. 紅花火
  5. TOMORROW

鈴木このみ

  1. 世界は疵を抱きしめる
  2. アルカテイル
  3. 真理の鏡、剣乃ように
  4. 蒼の彼方
  5. Redo
  6. Love is MY RAIL

TRUE

  1. BUTTERFLY EFFECTOR
  2. Another colony
  3. 僕の中の君へ
  4. Blast!
  5. サウンドスケープ

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数式を使うことが出来るようになります。