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に変換しました。
書き込みと読み込みの機能を正常に動作させることができた後、
その書き込みを削除する機能の実装に取り掛かりました。
指定した行のみを削除させるという実装課題だったが、
書き込み内容全てが削除されるなど上手く動作せず完璧な削除機能の実装は出来ませんでした。