0から学ぶIT技術

ローカルのドキュメント載せたり、IT関連の催し物の参加報告

ISUCON6予選に参加してきました

f:id:naro3:20161030182201p:plain

こんにちは。

ようやくIT関係の記事が執筆できて嬉しいです。

今回はISUCON*16に参加してきましたので、その感想や、結果報告となります。

 

メンバー

同好会の2年生の先輩、私と同級生。

2年生1人、1年生2人という構成です。

当初、役割分担などはありませんでした。(後述)

 

目標

予選突破。

有意義な時間にする(わけがわからないまま終わらない)。

 

勉強したところ

当初予定していたのは

言語、SQL*2Linux kernel*3でしたが、

準備期間が2週間しかなく、私達1年生は言語は何も書けず、データベースも触ったことがない状況でしたので、Python*4だけに集中して勉強しました(大変でした)。

そのため、役割分担もありませんでした。

先輩も忙しく、一緒に作業する機会があまりなかったので、進捗を報告し、アドバイスを受けながら、勉強しました。

 

問題

今回は、nginx*5で構築されたwebサーバーを限界まで高速化するという内容でした。

レギュレーションはこちらです。

isucon.net

 

当日の流れ

当日は、Microsoft azure*6にてVirtual Machine*7を構築するところからの開始でした。

まず、DearmSpark*8ではVirtual Machineを構築できないという問題に気づくまで1時間かかりました(自分の確認ミスです、すいません)。

次に、Virtual Machineの接続ボタンが押せないというトラブルが発生、先輩がSSH*9コマンドで接続、windowsの私たちは、Tera Term*10で先輩のパソコンに接続して作業をようやく開始(ここまでに2時間)。

先輩から今回のサーバーの構造や、データ、通信の流れを聞き、大まかに役割を分けました。

  • 先輩 全体を好きなように見てもらう。
  • 同級生 webサーバーの.pyファイル*11
  • 私 nginxの設定ファイル。

私は、まずnginxにキャシュをできるようにし、ついでに同時接続数なども変更しました。

その場で調べた付け焼き刃の知識でやりました。

qiita.com

qiita.com

試しにベンチマークをしてみました(ポータルサイトがあり、そこにIPを送ると点数で返してくれます)。

結果は「Fail」内容は「初期リクエストに失敗しました。」となっています。

GET /initializeが5秒以上だと駄目だと、確認しました。

さっそく、試すが5秒かかっているようには見えないです。

一応、.pyも見ましたが、よくわかりませんでした。

先輩にも聞きましたが、わからなかったです。

 

余談

先輩がソースコードを見て楽しくなっていました。

途中から、権限がないためPOSTできないのをできるようにしたり、ソースコードをじっくり見て、先輩に解説してもらったり、JavaPythonのクラスの仕様の違いなどの勉強会になりました(16時頃から)。

 

結果

Fail解決できないまま0点でした(Failは失格という扱いになるらしいです)。

 

感想

初めての大会でしたので気合入ってましたが、残念な結果でした。

特に「やってやった!」という感じがなかったのが悔しいです。

ですが、勉強会など有意義な時間でした。

また、Pythonを勉強するいいきっかけになったので、参加してよかったです。

来年は点を取れるように頑張ります。

運営の方々、ISUCON6に関わった方々、本当にありがとうございました。

*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会。

*2:関係データベース管理システム(RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)。

*3:OSの中核である部分。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋。

*4:プログラム言語の1種。

*5:フリーでオープンなWebサーバー。

*6:MicrosoftのIaaS/PaaS。

*7:仮想マシン。1つのコンピューターで複数のOSを動作できる。

*8:Microsoftが提供する学生支援プログラムである。

*9:暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル

*10:windowsで使用できるリモートログオンクライアント。

*11:Pythonで書かれたプログラムファイル。

専門学生の日常

こんにちは。

昨日ブログを立ち上げたばかりで、可能ならIT技術の記事を執筆したかったのですが、現在、私がisucon*1のためにチームメンバーの家に泊まっており、手元にドキュメント*2がないため、今回は私自身の日常について執筆します。

「専門学生の日常ってどうなの?」という質問は、多く受けますので、この機会に「専門学生の日常が気になる方」、「専門学校への進学を考えている方」の助けになれば幸いです。

 

登下校

普段は、携帯で記事を読むなどで勉強しています。

試験や、大会前などは読書や、座れたらパソコンを使っています。

 

授業

専門学校の授業は、資格取得に向けての授業が大半を占めます。

ですので、プログラムを書いたり、サーバーを構築したりなどの授業は殆どないです。

(追記:専攻に分かれてから、実習は増えましたが自分で勉強済みのことが多いです。)

また、授業は生徒の足並みを揃えての進行ですので、進みは遅いです。

私は大体、自分の勉強9割、授業1割と時間を割いています(先生から見たら私も...)。

また、3:5:2で、「睡眠中の人」、「ゲームや音楽、自分の勉強と共に授業を受けている人」、「真面目に授業を受けている人」といった印象を受けています。

 

放課後

放課後は、ほぼ毎日、所属している同好会の勉強会に参加しています。

勉強会の内容は、

  • 先輩方が講師となっての授業形式
  • 大会に向けての自習形式
  • 自習

 の3種類です。

同好会は、実践的な内容が多く、先輩という先人から多くの知識や経験、大会参加という、新たな技術の勉強のきっかけを得ることができ、同好会を通して人脈、視野を広げられたことも、本当に助かっています。

同好会やサークルに入ることはおすすめです。

 

休日

休日は、ゆっくり寝たり、友達と遊んだり、プログラムを書いて遊んだりしています。

また、IT関連の催し物や、資格試験などにも参加しています。

 

まとめ

「専門学生の日常」というタイトルで執筆しましたが、あくまで私の日常です。

専門学生の日常の一例だということを理解してください。

更に詳しく知りたいことがある方は、コメント欄よりお願い致します。

IT関係ない質問も歓迎です。

*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会

*2:文書、書類のこと。ここでは作業の記録をまとめたものを指す。

はじめに

初めまして、こんにちは。

今回は、このブログの趣旨や、私自身の情報などを書いていこうと思います。

このブログは、「0から学ぶIT技術」の名前の通り、私自身、今年の4月に専門学生となり、IT技術の勉強を始めました。

入学前は、ネットサーフィン以外はパソコンに触れることがなく、IT技術といえるものは持っていないどころか、知覚さえしていない状態でした。

なぜITの道を選んだかなどの理由は、別の記事にて執筆予定です。

記事を書き始めた理由は、ローカル内のドキュメントが増えてきたということ、ドキュメントをブログにする際に、復習になると同時に客観的視点を意識して書くことで、勉強になると考えたからです。

ですので、このブログ内での記事は用語の説明など、0からIT技術を学ぶ方を意識したブログを目指していきます(自分自身の勉強になる)。

最後になりますが、間違いの指摘やアドバイス、質問なども歓迎ですので、気軽にコメント欄を活用してください。

及ばないところも多々あると思いますが、これからよろしくお願い致します。