TRUNK ハッカソン参加記

メモ的な感じでこっそり公開しておこうと思います。ハッカソンでありがちな徹夜を、公式が推奨しているイベントに参加しました。

参加記

 

前日は昼夜逆転のためほぼ寝られませんでした。

しかし、レッドブル飲み放題!という素晴らしい環境だったので、眠気を忘れてイベントを楽しむことができました。(スポンサーの方ありがとうございます!)

 

特にアイデア出しが難しく、「これだ!」というアイデアは思いつきませんでした...

初対面で臨む場合、アイデア出しは議論を円滑にするためのコミュ力も大切な要素だなと思ったりしました。

 

慣れないpythonAPIに手間取りつつも、何とか動くものを完成させることができて、

LINEのAPI凄いと思いました。

 

動くものはできたのですが、もっと技術力があればもっと色々盛り込めた...><

作ったもの

LINEのMessaging APIを使ったLINE BOTです。

「たこ焼き」、「お好み焼き」みたいなジャンルを提案してくれて、選択されたジャンルの中で最も現在地に近い店をユーザに提案します。

全てメッセージが来たらそれに応じて返信という形式で、ロジックはとてもシンプルでした。

提案する店を選ぶ処理で競プロ的要素ができると思ったのですが、そもそもお店のDBを充実させるということさえできず最低限の処理になってしまいとても悔しかったです

感想

高専祭の展示や、高専プロコン、就活など最近は何かに追われながらプログラミングをすることが多かったので、自分たちで好きに考えたものを好きに作るハッカソンというイベントは純粋に楽しかったです

とても純粋な感じの年下のチームメイトがいたのですが、後でTwitterを見ると結構ドきつい下ネタ発言をしていてびっくりしました

大阪に行ったのに1日半の滞在で2食しか食べられず、ちょっと悲しかったです

技術力不足が際立ちましたが、暗い感情はあまり無くこれから頑張っていこうと思いました

Combmof開催のお知らせ(12/23 13:30~)

目次

 

 

  • 概要

プログラミング好きな中高生、大学生、高専生、社会人の方が普段取り組んでいる好きなことを発表しあう会です。 幅広い年代の方々が集まり、普段話す機会の少ない方々と交流する場を目指します!
新しいことに挑戦するきっかけとなれば幸いです(conpassより)

長々と書きましたが、

結構幅広いジャンルのLTをしていただくので、新しい分野を始めるきっかけになればうれしいです。今回の会のメインテーマです!

  • 日時/会場

 12/23(日) 13:30 ~ 18:00

  サポーターズ渋谷オフィス

 東京都渋谷区道玄坂1-9-5 渋谷スクエアA 11F

 JR渋谷駅 西口から徒歩5分

 会場までの案内

    会場詳細

  • 持ち物

     一般参加者の方:特にありませんが、お菓子やPC等があると幸せだと思います。

  LT発表者の方:PCとスライドを忘れずにお願いします

 ※対応ケーブル:HDMI(USB TypeCとサンダーボルトのアダプタ有)

  • 当日のスケジュール

 13:00~ 受付開始
    13:30~ あいさつ/諸注意

 13:40~ LT開始

    17:00~ 懇親会

    18:00 終了

 ※LT状況により左右する可能性があります。(開始と終了の時刻は固定です)

  • LTの順番

LTは、発表(max10分)+質疑応答(max5分)の構成にします。

  1. 文化祭用のWebアプリを作ってみた話  (@shuhannn)
  2. エンジニアのためのUI/UX入門 (@tinykitten8)
  3. C#8.0という未来を垣間見る話 (@4_mio_11)
  4. プログラミングに触れよう(@Akkyun919)
    ~休憩10分~
  5. モザイクアートをつくろう (@shibh308)
  6. プログラミング言語実装の話 (@stmtk_01)
  7. Paasを作ってみた話 (@Wp120_3238)
  8. 心中恋電脳 ~心中恋のバーチャル~ (@tatuyan_edson)
    ~休憩10分~
  9. 超入門 プログラミングの勉強法 (@kazuiti10)
  10. UTIPS 家事のやり方を共有するサービスの発表 (@yuki384love)
  11. ゲームに使えるようなアルゴリズムやデータ構造の紹介 (@CuriousFairy315)
  12. 虫食い算に学ぶ探索アルゴリズム (@drken1215)

 

それでは、当日皆様に会えることを楽しみにしております!

 

 

 

 

 

 

Yahoo! Japanのインターンに参加しました

こんばんは。@mohutarou_ACです

今年Yahooのサマーインターンに参加したので、忘備録もかねて活動をまとめたいと思います。

 

わーい!

f:id:nizi26i26:20181006003638j:plain

エントリーシート→面接 といった選考がありました。

自分の過去に作ったスマホゲームやwebサービスについての話をしました。

競プロにはまっていたので、大規模なデータをサーバ側でどう扱うのか興味があるといったことを伝えました。

PaaSやCIについて聞かれましたが、知らなかったので正直にそう答えました。

正直落ちたと思いましたが、幸い参加させていただくこととなりました。

5日間のインターンで、僕のチームは4人でした。

ベンチャーでバイトしてたり、院で研究してたりとガチプロが多かったです。

僕は社内PaaSを扱う部署に配属されました。

ヤフオクとか知恵袋のイメージが強かったので、配属を聞いたとき正直びっくりしましたw

PaaS上にはたくさんのVMが動いています。そのVM上で動いているアプリケーションの中でCPU使用率が高いものを表示するWebサービスの開発に取り組みました。

 

一日目

他社のインターンとは違い、初日は丸々講習でした。以下の4つです。

講習は難しかったですが、高専の授業とは違い質問しやすい雰囲気だったので、色々聞くことでそれなりに理解できたのが良かったです。

特にCIのパイプラインを定義することで、自動テスト以外にも自動デプロイやバッチ処理等様々なことができると聞き、感心しました。

メモ帳までいただいたので、気合を入れてメモを取りました

10ページほどメモした気がします。えらい。

f:id:nizi26i26:20181006001536j:plain

 

二日目

この日はスクラム開発に基づいた設計を行いました。

サーバの構成は決まっていたので、それをどう実装に落とし込むかを詰める作業をしました。

この時、各タスクに必要な時間を見積もると同時に、メンバー間で認識のずれがないかのすり合わせを行いました。

確か3~4時間の作業になった気がします。

今まで考えるより先に手を動かしてきたので(ダメ)、設計に数時間かけたのすらこれが初めてだった気がします。

1スプリント(今回は5日)で取り組むチケットをすべて作りました。

環境構築とgitのリポジトリを作って、この日は終わりだった気がします。

夕食にチーズダッカルビを食べました

 

三日目

作成したサービスは大まかに以下の構成になってます

  • Batch

          EXPORTERから各VMのアプリケーションのCPU使用率を取得

   頻度は30分に1度

   バッチ処理終了後、APIサーバにPOSTする。

          POSTされたCPU使用率情報を受け取り、RDBに保存する。

   ブラウザからGETがあった際、CPU使用率を降順ソートして値を渡す

  • フロントエンド

   CPU使用率を、各VMごとに使用率が高いものから区切って表示する

f:id:nizi26i26:20181005235539p:plain

 

四日目

二日目に決めたエピックは達成したので、webサービスの質を上げようとしました。

  • 過去のある地点のCPU使用率情報を取得できるようにしました。
  • フロントエンドを凝って、CPU使用率をグラフにしようと試みましたが、これは結局間に合いませんでした。

 

最低限は完成したとはいえ、満足のいくサービスを作れず悔しかったです。

お昼に東京のお寿司に連れてってもらいました。美味しい...

f:id:nizi26i26:20181006002119j:plain

 

最終日

僕たちが作っていたサービスは、Prometheusという有名なOSSの監視ツールに似たサーバの構成だと教えていただきました。

OSSは自分からほど遠いガチプロの世界だと思い敬遠していましたが、少しだけそのハードルが下がった気がします。

スプリントの最後の振り返りがありました。

成果発表のためにスライドを作るのに時間がかかり、辛かったです。

成果発表会と懇親会がありました。

懇親会ではお寿司やそばやローストビーフが出ました。美味しかったです。

  • 最後に

知恵袋とヤフーキッズとヤフー路線以外使ったことありませんでしたが、これからはほかのサービスも触ってみようと思いました。

 

大きな会社で、なんとなく堅いイメージを持っていましたが、エンジニアにとって働きやすい環境がそろっていると思いました。

 

まだまだ未熟な自分ですが、今回のインターンで得たチーム開発の経験と、講義内容は

とても自分の力に結び付きました。

 

最高のインターンをありがとうございました!

ステッカーをたくさんいただいたので、欲しい方はTwitterまでどうぞ!

f:id:nizi26i26:20181006001512j:plain

 

 

Atcoder水色になるまで

こんにちは、もふたろう(@angry_cat1106)です。先日Atcoderでレート水色を達成したので、せっかくなので記事にまとめてみようと思います。

 

f:id:nizi26i26:20180401170658p:plain

はい。色が変わるのは気持ちが良いですね。

今回は水色になるために僕がしたことと、水色になりたいと思っている方がすると効果的だと思うことをまとめようと思います。

 

1.僕がしたこと

  自力で解けない問題が半分以上はあったので、できない問題は解説を見てACをもらいました。

個人的には、考察の一歩目すらどう踏み出して良いか分からないような難問や、30秒で答えが浮かぶようなやるだけ問題を解くよりかは、解けるか解けないかのギリギリの所の問題を解いて勉強したほうが良いと思います。

僕はABCでD問題を通せるか通せないか位の実力でしたので、Dを埋める事にしました。例えば本番でCを通せない時がある場合はまずC問題を解いていくと良いと思います。

 

f:id:nizi26i26:20180401200412p:plain

  • 蟻本を読みました

数学力が無なので証明はほとんど理解していないのですが、どんなアルゴリズムを使うと、どんな問題を解けるか把握しておくのは大切だと思います。

(例.ダイクストラを使うと最短経路問題が解ける。二部探索を使うと高速に解を最大化する問題を解ける。segmentTreeを使うと区間のクエリを高速に処理できる)

  • Twitterで競プロerをフォローしました

モチベーションが高い人に触発されてやる気が出たり、強い人に情報を頂ける等のメリットがあります。

2.すると良いと思うこと

  • ひたすら過去問を解く

現時点で難しいと感じる問題を解くのが効果的だと思います。しかし、僕くらいのレートだと難問はたいてい解けませんので、復習が大切になってきます。

大事だと思うのは解説を読む(or動画を見る)なぜ解けなかったかの分析

です。

 解説を見るのは悔しいですが、分からないまま放置するよりかは素直に解き方を学んだほうが良いと思います。

解説を見て解き方を理解した後は考察力が足りなかったのか、はたまた実装力が足りなかったのかを考えてみましょう。

実装力不足→自分より上の人のコードを読む

考察力不足→解説の考え方を自分なりにきちんと理解して、似たような考え方の問題は今後解けるようにする。

この振り返りを終えたら、解説を閉じて自分で実装をしてACを貰う所までやると良いと思います。

こんな感じで復習をして行けば実力は上がっていくと思います。

 

  • 典型力の強化

競プロでは、知らないと解けないようなテクニックが結構あります。その中で水色になるのに必要だと思う知識を列挙してみます。

辺りを抑えられると良いですね。

これらのテクニックを鍛えられるABC-D難易度前後のオススメ問題を貼ります。

D - Wall

D - 2017-like Number

C - 壁抜け

C - ハイスコア

D - Grid Repainting

C - 柱柱柱柱柱

D - 射撃王

D - Widespread

D - joisino's travel

D - おいしいたこ焼きの焼き方

 これらの問題は全て上記の知識で解ける上、考察力も中々に必要な良問ばかりだとですので、ぜひ解いて見てください

 

  • 終わりに

次は青コーダーになった時にブログにまとめられると良いな~

と思います。(いつになるかは未定ですが)

ここまでお付き合いいただきありがとうございました!