今日は研究室のゼミの発表。
自分は文献を読んで、それをまとめて発表しました。
今読んでるのはアドホックネットワークのルーティングプロトコルについて。
アドホックネットワークとは、従来のルータのような基地局を介さずに
端末同士で相互に通信を行う通信方式です。
当然端末間の距離が離れると通信不能となるので、
それを考慮したさまざまなルーティングプロトコルが研究されています。
今回はAODVというプロトコルの改良と評価を行った論文のまとめ。
全部英語で読むのが面倒だった~
卒論はこれ関係の研究になりそうです・・・
一番自信があった最後のTOEICの結果が来ました。

SECTION1 295
SECTION2 340
TOTAL 635


で結局いままでの最高点と変わらず。
意味ねー
RubyからMySQLを使いましょう。
これも超簡単です。

require 'mysql'

my = Mysql::new("localhost","user","pass","dbname")
my.query("クエリ文")


これだけですね?

データの挿入例

my.query("INSERT INTO `table` (`name`, `address` , `sex` , `birth` ) VALUES ('#{name}' , '#{address}', '#{sex}', '#{birth}');")
外部から家のPCの電源を入れるスクリプトを作ってみた。
実装はPerlで、CGIでWeb上からアクセスして電源を入れるように。
WakeOnLanという機能を利用しております。

foreach (split /:/, $hwaddr) {
$pkt .= chr(hex($_));
}
$pkt = chr(0xFF) x 6 . $pkt x 16;


↑これでマジックパケットという特殊なパケットを生成します

$raddr = gethostbyname('255.255.255.255');
$them = pack_sockaddr_in($DEFAULT_PORT, $raddr);
$proto = getprotobyname('udp');

#UDPの接続用ソケットを生成
socket(S, AF_INET, SOCK_DGRAM, $proto) or die "socket : $!";
#ブロードキャストを指定
setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1) or die "setsockopt : $!";

#パケット送信
send(S, $pkt, 0, $them) or die "send : $!";
close S;


↑これをUDPでブロードキャストすることにより、
他のマシンのPC電源を入れることが可能に!
Rubyはライブラリが豊富で、非常に簡単にプログラムを組めます。
CGIはPerlよりも使いやすいと思います。
流行のオブジェクト指向にもしっかり対応してますし。

Ruby Tips

1.HTTP通信

require 'net/http'

http = Net::HTTP.new('www.somewhere.com',80).start
res = http.get("/target.html")
print res.body


なんとこれだけ!

2.文字列のコード変換

require 'kconv'

print string.toeuc


なんとこれだけ!文字列クラスのtoeucメソッドを実行するだけ。

3.ファイルへ書き込み

f = File.open("data.txt","w+")
f.print(value)


Rubyは他の言語に比べても非常にソースが短くてすみます。
Perlよりは間違いなく使いやすくなっているでしょう。
初心者にはRubyがオススメです。