satto1237’s diary

s4tt01237’s diary

ラーメンとかCTFとかセキュリティとか

SecHack365@福岡に行ってきた話

SecHackのオフラインイベントで福岡に行ってきました(8/22~8/24)

0日目(8/21)

帰省先(実家)から昼頃帰ってきて研究室でSecHack用の資料を作っていた.
気がついたら0時を過ぎていた.
家に帰ってから荷造りをして2時頃に寝た.

1日目(8/22)

05:00

起床.

08:00

羽田空港到着.
台風19号と20号で欠航するんじゃないかと心配していたがなんとかなった.

11:00

福岡空港到着.
いい感じに晴れてて最高の気分になった.

12:30

ラーメンデータベース福岡ランキング1位の博多一双に到着.
今までに経験したことがないドギツイ豚骨臭で期待が高まる.
40分ほど並びようやく入店.
特製ラーメンを注文しカウンターで着丼を待つ.
3分ほどで着丼.
カプチーノのような豚骨スープの深いコクに感動して涙を流しながら麺をすすった(泣いたのは嘘
f:id:satto1237:20180826005510j:plain f:id:satto1237:20180826005534j:plain

14:00

Nulab訪問.
CEOの橋本さんとCTOの縣さんから貴重なお話を聞かせて頂いた.

18:00

宿泊先に移動して夕飯.
圧倒的人権.
イカソーメンが名物らしいがそんなに好きじゃないので肉ばっか食べてた. f:id:satto1237:20180826012830j:plain

26:00

就寝.
早めに寝るべきだったけど強い人達と雑談するのが楽しくて夜更かし(?)してしまった.

2日目(8/23)

8:30

朝ごはんチャレンジ失敗.

09:00

中間報告開始.
毎度のことながらドクペータワー最高過ぎる. f:id:satto1237:20180826014212j:plain

13:00

休憩.
海に行った.
テンションが上って15年ぶりに海に潜ってしまった. f:id:satto1237:20180826014045j:plain

15:00

中間報告再開.

18:00

中間報告終了.
完全にこれだった.
f:id:satto1237:20180826015016j:plain

18:30

中間報告終了後に自分のプロジェクトテーマが本当にこれでいいのか改めて考えた.
自分のテーマは研究に近いもので,大学でもできるためこれをSecHackでやるのは微妙だなと以前から思っていた.

進捗としては中間報告の時点である程度形にはなっており,必要なデータを揃えれば査読なしの研究会になら論文として投稿できそうだった(本当か?
しかし,このテーマを続けてもSecHackが求めるイノベーション感はだせないだろうなと感じていた.
そこで何人かのトレーニーと相談し,IoTに関するプロジェクトにJOINさせてもうら形になった.

19:00

夕飯.
人権. f:id:satto1237:20180826023455j:plain

23:00

4チームに別れてNight Challenge(ミニハッカソン)開始(1チーム5~6人)

  • 台風情報を収集する
  • 自身の位置が、暴風圏に入るかどうか判断する
  • 危険な場合は、通知する
  • 危険でない場合は、お勧めの近隣スポットをリコメンドする
  • オリジナル機能  Idea 1 (自由な発想で機能を付けて下さい)
  • オリジナル機能  Idea 2 (自由な発想で機能を付けて下さい)

28:00

Night Challenge終了.
危うくAll Night Challengeになるところだった.

自分はオリジナル機能として二郎リコメンドを実装した.
IPアドレスから現在地を取得し,最寄りの二郎をリコメンドする.
コマンドライン引数に地名が含まれていた場合はその地名から最寄りの二郎をリコメンドする.
リコメンド結果はTypetalkに通知している.

f:id:satto1237:20180826024940p:plain f:id:satto1237:20180826025037p:plain f:id:satto1237:20180826025058p:plain f:id:satto1237:20180826025111p:plain

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import geocoder
import pandas as pd
import requests
import sys

def nearest_jiro():
    args = sys.argv

    if len(args) == 1:
        g = geocoder.ip('me')
    else :
        geo_address = args[1]
        g = geocoder.google(geo_address)

    if g.latlng is not None:
        lat = g.latlng[0]
        lng = g.latlng[1]
    else:
        print('Not Found')
        g = geocoder.ip('me')
        lat = g.latlng[0]
        lng = g.latlng[1]

    dist = float('inf')
    nearest_jiro_name = 'jiro'
    nearest_jiro_url = 'url'

    df = pd.read_csv('./jiro.csv')

    for index, row in df.iterrows():
        temp_dist = abs(lat-row['lat']) + abs(lng-row['lng'])
        # print(row['name'])
        if dist > temp_dist:
            dist = temp_dist
            nearest_jiro_name = row['name']
            nearest_jiro_url = row['url']

    print(nearest_jiro_name, nearest_jiro_url)
    return nearest_jiro_name, nearest_jiro_url



def typetalk_post(name, url):
    # hogeにはpost先のURLとトークンが入る
    r = requests.post('hoge', {'message': name + '\n' + url})


if __name__ == '__main__':
    name, url = nearest_jiro()
    typetalk_post(name,url)

3日目(8/24)

08:30

朝ごはんチャレンジ失敗.

09:00

コースワーク開始.
Night Challengeの発表をした後にプロジェクトの担当トレーナーにあいさつをしにいった.

13:00

倫理セッション.
法と倫理について考えた.

15:00

解散.

16:00

福岡空港到着. 実家用にお菓子と明太子と地酒,研究室用にお菓子を買った.
小腹が空いたのでラーメンを食べた(ラーメン以外の食べ物をしらないため)
f:id:satto1237:20180826031334j:plain

21:00

羽田空港到着.

まとめ

  • 本場の豚骨ラーメンは美味い
  • 海は最高
  • IoTに関する知見を増やす