カテゴリー別アーカイブ: 2014

2014.11.09(日) かがわけん科学体験フェスティバル

科学体験フェスティバルでは、テンセグリティ体験、LEGOサッカー体験、
立体写真の鑑賞、といったイベントを用意しました。
どのイベントも盛況でしたが、特にLEGOサッカー体験が非常に人気があり、
大人から子供まで興味を持ってくださり、人が途切れることはありませんでした。
今回の科学体験フェスティバルでも、昨年と同様に
多くの人に体験を楽しんでもらうことが出来ました。

2014.11.01(土) オープンキャンパス2

11月1日に今年2回目のオープンキャンパスを行いました。
SLPでは、LEGOロボットのデモとプログラミング体験、LeapMotionやCTF、
Gogoなどのゲーム展示を行いました。
各自が担当のコーナーで、デモンストレーションや研究の紹介を行い、
小学生から大人まで、男女問わず幅広い層の方々に関心を持ってもらえたと思います。

2014.09.14(日) ETロボコン中四国大会

9月14日、ETロボコン中四国大会に参加しました。
この大会は、lego mindstormで作られたロボットを用い、
指定されたコースの確実な走行と、プログラムを説明するモデルの総合得点で競います。
今年は高校生から社会人まで300チーム以上が参加し、部門も新設されました。
香川大学がこの大会に出場するのは今年で9年目になります。

4月に規約が発表されてからは、勉強会に参加したり放課後の時間を生かして
大会への準備を行いました。
結果、走行は第一コーナーでリタイア。
今年新たに採用されたトライク型のロボットにうまく対応できなかったのが敗因でした。
モデルの方も、審査員から指摘を受ける場所が多くありました。

ETロボコンは実際の業務である、設計、実装、クライアントへの説明にとても近いと言われています。
こうした経験を通して、さらにスキルをアップさせていきたいと思います。

2014.11.30(日) CODERUNNER2014

概要

キャリフル主催の学生プログラミングマラソンCODERUNNER 2014の本選に参加した。
CODERUNNER 2014は、予選を突破した総勢100人の学生プログラマーが、3時間でゲームAIを作成し、
獲得点数で競うものである。

予選

予選はAとBの2回行われ、予選の総合100位までの人が、本選に招待された。
予選Aで学生20位で、総合24位で本選に参加した。

予選A

予選Aは、「Dic Hack」という辞書ゲームであった。

1~8文字のA、B、C、Dで構成される単語が、合計1000個
用意されており、それぞれに得点つけられている。
50文字までの文字列を作成し、その文字列に含まれる
単語の種類で得点が決まるというものである。
用意されている単語と得点は公開されていないので、
得られた点数から単語を予測して、高得点を取れる文字列を
探さなければならない。

3時間という短い時間であり、重い実装は難しいため、焼きなまし法というアルゴリズムを利用した。
まず得点の高い15文字の文字列を乱数を利用して探し、
見つけた文字列の前後に5文字ずつ、得点が高くなるようにつけていというものだ。
結果は、2432点で総合24位、学生20位であった。

予選B

予選Bは、「The Rebellion」というRPG風のゲームであった。

プレイヤーは、各部屋に2~3人割り振られ、1体のモンスターと戦う。
モンスターを倒すと、次の部屋にランダムで移動する。
プレイヤーは100種類の技の中から一つ選び敵に攻撃を行う。
モンスターによって、技で与えられるダメージが異なる。
与えた合計ダメージで競うというものである。

誰がどの技を使い、どれだけのダメージを与えたかのログを
json形式で取得できたので、C++用のjsonパーサを作成し、
読み取れるようにした。
そして、部屋情報と過去ログを見て、ダメージの大きい技が特定できるなら
それを、できないならまだ使われていない技を使用するというプログラムを組んだ。

結果は、6945459点で総合86位、学生66位であった。

本選

本選は、「SummonerWars」というモンスター召喚ゲームであった。

プレイヤーは一定時間ごとにモンスター召喚用の石が配布される。
石の組み合わせでモンスターを召喚することができ、
召喚したモンスターの点数の合計が、最終的な得点となる。
また、プレイヤーは石を市場に出して、他プレイヤーと石の交換をすることができる。

作ったAIは、モンスター召喚条件のファイルをソートして、
得点が高いものを貪欲的に選んで召喚するものである。
石の交換は、今自分が持っている石より高価な石が交換できるなら交換するようにした。
しかし、得点が高くても召喚石とポイントの効率が悪い
モンスターがいるため、あまり高い点数を得ることができなかった。
今回の敗因は、序盤に効率を考えずに召喚石を消費してしまったせいである。

コードをあまり書かず、手動で召喚と交換を行って
上位を取っている人もいたため、
仕様を早く読み取り、ゲームの本質を理解できることが重要であった。

結果は、40014331点で、74位であった。

2014.08.01(金) OSC京都

● 概要
8月1日(金)から8月2日(土)にかけて、OSC京都に参加した。
OSC(Open Source Conference)とは、OSS(ソースコードが公開されているソフトウェア)の紹介や
利用事例を広めるイベントである。
ブースとして展示を行なっていたり、セミナーを開講している。参加費は無料である。
今回は、西日本最大規模のOSCであるKansai@Kyotoへ参加してきた。OSSの現状に触れるためである。

● 感想
会場は、1日目はスポンサー企業が、2日目は様々なコミュニティが参加しており、
活気にあふれていた。
また、最後のLTでは、開発者の方や学生の日常を知ることができた。
富永教員と学生1名は懇親会にも参加し、社会人の方の何人かと名刺交換をした。
機会があれば講演会やインターンシップなどでお世話になるかもしれない。

● 参考Webページ
公式 : http://www.ospn.jp/osc2014-kyoto/
Togetter(1日目) : http://togetter.com/li/700677
Togetter(2日目) : http://togetter.com/li/701029

2014.08.20(水) Ruby&CGI合宿

8月20日(水)から8月22日(金)にかけて、Ruby&CGI合宿を行いました。
参加した1、2年生に上級生が教えるという方式でした。

1日目 8月20日

Linuxコマンド、Emacs操作の演習とHTMLでのWebページ作成を行いました。
その後シェルスクリプトについての解説を聞きました。
Linuxコマンドについては基本的なコマンドやワイルドカードなどの説明を、
Emacsについては保存方法やエディタを閉じる方法などの
基本的な使用法の説明を聞いた後、それぞれ演習を行いました。
Webページ作成では代表的なコマンドが紹介され、
HTMLで各自自己紹介ページを作成しました。
シェルスクリプトについての解説後、エイリアスでのコマンド省略や
コマンドプロンプロプトの見た目変更の方法について解説されました。

2日目 8月21日

オブジェクト指向言語Rubyの演習とCGIによるWebページの作成を行いました。
まず、Rubyの特徴である逐次翻訳とその欠点について解説されました。
その後、配列や文字列、if文やfor文やeach文の使い方など
具体的なコードの書き方について、複数の課題で実践を行いながら解説が行われました。
それぞれの課題で全員が解き終わってから違う書き方の解説も行われました。
CGIについては「動的なCGI、静的なHTML」というように
CGIの原理などの解説がされました。
その後、複数課題が出され1年生と2年生はそれを解きました。
1問終了ごとに違う書き方や、より簡単な書き方が解説されました。
最後にCGIコードを書く際の注意点としてXSS(クロスサイトスクリプティング)の説明がありました。
説明の際、2年生の1人が作ったページで実際にXSS攻撃を行い、
その危険性が分かりやすく解説されました。

3日目 8月22日

CGIによる1行掲示板の作成をしました。
入力フォームから名前と本文を送信して、内容を1行で表示する掲示板を作成しました。
形式は書き込み内容を別のテキストファイルに書き込み、
そのファイルを読み込んで表示するというもので行いました。
1行ずつ分割して読み込むためにsplitメソッドを使用したり、
日本語入力に対応させるためにforce_encodingメソッドで
文字コードをUTF-8に変換しました。
書き込みと読み込みの機能を正常に動作させることができた後、
その書き込みを削除する機能の実装に取り掛かりました。
指定した行のみを削除させるという実装課題だったが、
書き込み内容全てが削除されるなど上手く動作せず完璧な削除機能の実装は出来ませんでした。

2014.07.19(土) SECCON2014 CTF オンライン予選

大会概要

SECCON CTFは日本で開催されるセキュリティ技術を競うCTFである。
日本で開催されるCTF大会としては最大規模となっている。

参加報告

2014.07.19(土)に、SLPのメンバ10名でSECCON 2014 CTFオンライン予選に参加した。
10人は3チームに分かれ、チームごとに問題に取り組んだ。
全体では425チームがエントリーし、うち340チームが得点を獲得する中
各チーム100位前半~後半という結果になった。
出題された問題を、いくつか以下に挙げる。

  • 暗号 100 : decode me
    英字と漢字の混じったテキストが提示された。英字部分に
    ROT13を適用すると、「SECCON2014」「ROT13/47」という
    文字列が浮かび上がった。そこでテキスト全体を
    nkf -r コマンドを用いてROT13/47変換したところ、フラグが得られた。

  • プログラミング 100 : 重ねてみよう
    gifアニメーション画像が与えられた。各コマは、黒地に
    白い点がいくつか打たれている画像で構成されている。
    各コマの白い部分を重ね合わせたのちに白黒を反転させると
    QRコードが浮かび上がったので、読み取ったところフラグが得られた。
    プログラミングのカテゴリになっていたが、画像編集ソフトを
    用いてプログラムを書かずに解いた。

2014.05.17(土) 新歓CTF

新歓CTF 概要

SLPに新しく加入した一年生の歓迎会の一環として新歓CTFを行った。
CTFとは”Capture The Flag”の略称で、
コンピュータセキュリティ技術を競う大会である。
数人のグループで問題を解き、その得点を競い合った。
問題は、情報リテラシーに関する基礎的な問題から、
上級生向けの難しい問題まで幅広くあった。
さらに、問題に正解するとミニゲームとして神経衰弱に挑戦できた。
途中でサーバがダウンするというアクシデントも発生したが、
上級生がその場で対応し、すぐに復旧した。

感想

一年生が知り合って間もない中、グループで協力しながら
問題に取り組むことで、親睦を深めることができた。
また、愉快なBGMによって一年生の緊張がほぐれ、
和気あいあいと楽しむことができた。


基礎的な問題を通して、パスワードを設定する際の注意点や、
わずかな情報から、個人情報を解析できることを学んだ。
また、上級生向けの難しい問題を目にし、今後の学習への意欲が向上した。
上級生にとっても、一年生とコミュニケーションをとることができるなど、
参加者全員にとって良い経験となった。

2014.11.29(土) サークル旅行

11月29日(土)から11月30日(日)にかけて、秋のサークル旅行に行きました。

1日目

11月28日(金)の深夜フェリーに乗り、早朝に到着後解散し、各人自由に行動しました。
各々京都、奈良、大阪のような行きたい場所へ行き、グループでそれぞれ好きなように過ごしました。
この日の午前中は雨でしたが、午後には晴れました。
夕方、奈良で集合し、「酔虎伝」で会食を行いました。
各々が行った場所の感想や、これからのSLPの活動などを語り合いました。
友人先輩後輩関係なく話し合い、親睦を深めました。

2日目

朝、チェックアウト後、1日目と同様に各人自由に行動しました。
宿泊したホテルが奈良だったので、奈良を中心に行動したようです。
高松に帰るのも各人の自由で、フェリーで帰る人もいればバスで帰る人もいました。

2014.12.13(土) スマートデバイスGP

香川大学は、スマートデバイスGPという大会に出場しています。
この大会は今年から始まり、lego mindstormを用い指定されたコースや難所をいかに確実で高速にクリアするかを競います。

先ず行われたのが、4地域での予選会です。予選では、10月25日に行われた名古屋大会に出場しました。
結果は15チーム中5位。走行スピードが遅かったため、順位は振るいませんでした。
ですが、名古屋で全ての難所をクリアしたのは自分たちだけ。確実性とスピードのバランスについて考えさせられました。

その後、予選突破が決まり12月13日に東京のテレコムセンターで開催された全国決勝にも参加しました。
全国から予選を突破した30チームが集いました。
本番での試走で全然走らない事態が発生。当日の環境に適応できていなかったことが原因でコードを書き換えて解決。
1走目は完走できたものの難所で2つ失敗するという事態に。
途中の試走で解決し、2走目では見事完走し全ての難所をクリアすることができました。
結果は13位と中頃でした。

今回の大会で良かったのは、2つの問題が発生したものの短い時間で分析し解決できた点です。
こうした機会を通し、問題解決についても学ぶことができました。