blank page

プログラミングなどについて書きます

# KOSENハッカソン@函館 に参加してきたので一応報告

KOSENハッカソンとは

全国の高専(?)から何人か集まってハッカソンしようぜみたいなやつです.
このハッカソンで最優秀賞に選ばれると, Mashup Awards 2017の本戦に行けるらしいです.


なんで参加したのか

沖縄から函館に無料でいけるからです(観光は一切していない)
温泉旅行気分でした.

1日目

沖縄から函館に飛びました.
一緒に行く後輩たち,引率の先生と一回も喋ったことがなかったのでとても怯えていました.

後輩も先生もコミュ力が無限大にすごくてとても助かりました...><

東京経由して函館に行ったのですが,羽田空港にいる時点で寒いと思ったので生きていけるのか心配でした.

東京から函館に飛んだ時に飛行機から富士山らしきものが見えて,一人テンションが上がっていました.

北海道寒すぎて,ホテルにつくまでずっと震えていました.


ホテルについてからご飯を食べました(無料です)

最初に適当にチームが組まれて,そのチームでアイデアソンをしたあとに,チームが再編成されてそのチームでハッカソンをしました.

1日目は,2日目のためのスライド作成と作るものを固めて寝ました(この時点で4時)

2日目

開発をしました

チームにフロント側できる人がいてよかった...><

自分はtwitterAPIを殴って遊んでいました.

2日目の夕飯情報です. (これも無料)

自分はエビとカニが食べられないのでつらい思いをしていました.


夜中に後輩にいじめられていました.


いじめられ終わったあとに寝ました.(この時5時過ぎ)

3日目

3日目は作ったものの発表をして帰りました.

www.youtube.com

自分たちの作ったものを簡単に説明すると,twitterでhashtagをつけてつぶやいたやつをunityのアプリケーションでいい感じに表示してくれるやつです(あとエフェクトで遊べる!)

発表が終わったらすぐに帰らされました.
寒すぎて死にそうでした.

函館空港で食べたお昼ごはん情報です.

帰りも後輩の乗っ取りに怯えていました.

そんな悪さをする後輩たちでしたが帰りにおごってもらえたのでおーるおっけーです :happy:

おわり

疲れが溜まっていたので,箇条書きっぽくなっていますが許してください... :cry:
ハッカソンに参加するのは初めてでしたが,とても楽しめたので良かったです!
とても良い経験になったので来年も機会があったら参加したいです.

チームの皆さん,後輩さん,引率の先生,大変お世話になりました。。。
関わった皆さん,本当にありがとうございました.



自分が作ったやつ↓

github.com

高専SECCON2017に参加しました.

こんにちは〜!
高専SECCONに参加したので少し書こうと思います.

参加した経緯

高専プロコンでとてもお世話になった先輩がメンバーが一人足りてないと言っており,人数を埋めるために入ったって感じです.

CTF経験

自分はCTFの経験はほとんどなく競プロを少し触っていたという感じなので,高専SECCONの1週間前くらいからちょびちょびcpawctfなどを触ったくらいでした.

やったこ

自分は,ググるだけ問題と1問だけ2枚の画像のXORを取るみたいな問題をときました.
チームの人は,自分にはわけのわからない問題をぽいぽい解いていて,プロは違うなあ...といった気持ちになっていました.

結果

自分たちのチームは5位で終わりました.

解いた問題

とりあえず,一応自分が解けた問題をぽいっとおいておきます.
Misc(?)のやつは問題の内容を忘れたので,crypto(多分)の2枚の画像のXORを取るやつだけ書いておきます.
(何を解いたかを覚えていない)

問題概要

zipファイルを落としてきて,unzipしてその中にあった2枚の画像のXORを取って優勝
ツールがありそうっちゃありそうですが,そのあたりがわからないのでPython3+pillowを使って書きました.これはとてもやるだけで,実装はすぐに終わりました :smile:

from PIL import Image

def img_pixel(img):
    """ imageのpixelをlistで返してくれる """

    img = Image.open(img)    
    size = img.size

    img_pixels = []
    for x in range(size[0]):
        for y in range(size[1]):
            img_pixels.append(img.getpixel((x,y)))

    return img_pixels

def pic_xor(pic1, pic2):
    """ 2枚のpicのXORを取って,表示する """
    img = Image.open("pic1.png")
    img2 = Image.open("pic2.png")

    size = img.size
    size2 = img2.size
    res = Image.new("RGBA", size)

    i = 0
    for x in range(size[0]):
        for y in range(size[1]):
            r = pic1[i][0] ^ pic2[i][0]
            g = pic1[i][1] ^ pic2[i][1]
            b = pic1[i][2] ^ pic2[i][2]

            res.putpixel((x, y), (r, g, b, 255))
            i += 1

    return res.show()

if __name__ == "__main__":
    pic1 = img_pixel("hoge1.png")
    pic2 = img_pixel("hoge2.png")
    pic_xor(pic1, pic2)

終わり

初めてセキュリティの大会に出て,たくさんの知見が得られたので,これから精進していきたいです.
暗号が結構たのしそうな気がしたので,これからいろいろ実装して学んでいきたいなという気持ちです.
解いた問題がとても少ないので次の機会までいろいろと勉強して,もっと貢献できるようにしていきたいです.(来年も機会があったらお誘いください.それまでにいろいろ勉強してきます.)
では,チームの皆さん,運営の皆さん本当にありがとうございました. :+1:

#procon28に参加してきました

第28回高専プロコンに参加してきました.

H!ghSight

team 「サーモン焼いたら鮭」でH!ghSightというシステムを作っていました.

チームメンバーを紹介します.
(6年生)wassan: お笑い芸人
(6年生)yona: お笑い芸人
(3年生)gatya: 笑う人担当
(3年生)u_chi_ha_ra_: 皆の椅子を温める・お茶汲み担当
(2年生)cheese: 天然cheese担当
(2年生)poteto大先生: 実質ドローン


システムの概要としては,2台のドローンにカメラを1つずつのせてそのカメラから撮った映像をHMD(ヘッドマウントディスプレイ)で見よう!!!みたいなシステムです.


結果

敢闘賞でした(´・ω・`)

反省

すぐに思いつくものを何個か挙げると...

  • 完成度がだめだった
  • 使うものの注文が遅かった
  • 費用を抑えるためにやってしまった
  • システムの構成(?)をしっかりと考えていなかった
  • PCが壊れた(?)か何かしたときの対応を考えていなかった


最後のやつが結構大きく,デモ審査とマニュアル審査という実際に動かしたりして審査するやつのときに,HMDが使えなくなるというトラブルが起きて,とてもパニックになりました.(結局直すことができず,HMDでみれない状態で審査を行った)

チームとしての開発力としては十分だったと思うので,いろいろ考え直していきたいです...(´・ω・`)

来年

来年は阿南(多分徳島県あたり)で行われるらしいです.
自分はまだ出るか決まっていませんが,出るんだったら今年の悔しさを来年の大会でぶつけて,企業賞をかっさらいたいです!!!
出ない場合は,出るチームの開発のサポートなどをやろうと思っています!

感想

チームで開発という経験が初めてだったのでとてもいい経験になりました!
使ったことのなかった技術や,普段触ることのない分野を触ることができていろいろ学ぶことができました!

それと,いろいろな企業の人と話すことができてとても楽しかったです!(来年インターンシップがあるのでそのときはぜひよろしくお願いします)


(もっと参加記が書きやすくなるようなつぶやきをしないといけないと思いました)


最後に

つみきっず特別賞おめでとうございます!!!!!
サポートしてくれた皆さん本当にありがとうございました!!!!!

FlaskとOpenCVを使っていたらVIDEOIO ERRORなるものでハマった

Flask && OpenCV

サーバーにアクセスが来たらOpenCVを使ってWEBカメラから写真をとっていろいろするみたいなコードを書いていた時にハマったことがあったのでメモメモ...  

起こったこ

VIDEOIO ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream: Device or resource busy

こういうエラーで,カメラが使えないぜ馬鹿野郎と言われています.
           

環境

OS: Ubuntu 16.04 xenial
Kernel: x86_64 Linux 4.4.0-93-generic
🐍 miniconda3-4.1.11

この他に,raspi3でもエラーが出るのを確認しました.
  

     

Sample code

import cv2
from flask import Flask

cap = cv2.VideoCapture(0)
app = Flask(__name__)

@app.route("/")
def hoge():
    _, frame = cap.read()
    """
        ここでいろいろする
    """
    return "HOGE"

if __name__ == "__main__":
    app.run(debug=True)

   

みたいなコードです.

 

いろいろ省いたりしていますがこれを実行すると...

     

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
VIDEOIO ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream: Device or resource busy

   

鯖は立ち上がるがVIDEOIO ERRORが出ます:innocent: ぐぐっても解決策の載ってる記事が見つかりませんでした...(自明的なことなのかな)
 
 
 
これに1日あるかないかくらい時間を取られました...
 
まじかなpeopleです.
    

解決方法

app.run(debug=True)debug=TrueFalseにするか消しましょう.
それを保存して実行すると動きます.(自分の環境では)
 
 

おわり

正直理由はこんな感じなんかな〜(?)程度でしかわかってないのでわかるかたぜひ教えてくれると嬉しいです〜!