2010年4月18日日曜日

応用情報技術者試験に行ってきた

平成22年度春期の情報処理技術者試験に行ってきた。
これまでの受験で、初級シスアド、基本情報と連続合格することができていたので、今回は応用情報技術者試験を受験。



応用情報から、午後試験に記術式の問題が出現する。これがなかなかの曲者。
正直午後は…まったく自信が無い…


応用情報はレベル3ということもあって、午前もあんまり気が抜けなかった。
公開された解答例を用いて自己採点した結果、午前: 80問中63問正解という結構良い結果に。
「俺、応用情報午前通ったらはつねさんAppend予約するんだ…」と言ってしまっていたのだが…さてどうしようか…w


…午後は、午後の解答例の公開が遅い上に、そもそも解答を問題用紙に書き込んでいる余裕が無かったため、判定不能という…

応用情報以上は6月末に合格発表。
遠いなぁ…


各種試験の解答例や問題冊子は以下からダウンロードできる。
今年は今までよりサーバが軽くなった感じがするw
http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22.html

2010年4月10日土曜日

はちゅねCNAMEサービスも開始!

hachune.netドメイン有効活用計画第二弾、CNAME割り当てサービスを開始!

d.hachune.netのサブドメイン(例: mikutter.d.hachune.net)を、既に持っているドメイン名の別名として使用できるようにするサービスです。

これは、固定IPを持っているか、既にDynamicDNSなどでドメインを持っている向け、となります。

以下の場合は、利用出来ない場合があります。
・非固定IPアドレスで、Dynamic DNSでIPアドレスと関連付けられたドメインを持っていない
・ドメインを持っているが、IPアドレスを貰えないタイプのホスティングサービスを利用している(ブログサービスなど)


詳細ははちゅねCNAMEサービスのページでどうぞ。



対象者がかなり絞られる気もするけど…まぁ無いより良いよね(´・ω・`)
回線が光だったら、Dynamic DNSサービスとかホスティングサービスもできるんだが…

2010年4月4日日曜日

何を考えるかは人次第

阪大の方々がロボットを作ったらしい。
画像はリンク先参照。

女性そっくりのロボット開発 大阪大、笑顔やまばたきも
http://www.47news.jp/CN/201004/CN2010040301000448.html

>ロボットは座った状態の高さ140センチ、重量30キロ。パソコンやモニターで操作し、目や口、首など9カ所が動く
とのことなので、自立して何かをする、と言う訳では無い模様。
人に似せれば似せるほど不気味に感じるような…('A`)

阪大の石黒教授曰く、
>「自分の代わりに遠い場所に送ることで、新しい意思疎通の手段に使える。一緒に食事したり、恋愛したりできるようになるかもしれない」
…どちらかというと、「遠いところ(主に2Dの世界)から来てもらう」用途の方が需要がありそ(ry



同じタイプのロボットを「株式会社ココロ」というところが1千万円前後で販売しているらしい。
「孤独な科学者…?w」と思ってしまうのは私だけか(*´Д`)

子供手当てが酷いらしい

民主党がなにやらとんでもない事をしてくれたようで。

この法の一番の目玉は、
日本に両親が1年住んでるだけで、子供が外国に居ようが毎月 子供の数×13000円 貰える(審査もザル)
ということ。
しかも、来年度からは給付額を26000円にしたい、と言っているらしい。


まぁ、当然の結果として…
・子ども手当ての窓口に ネパール人、韓国人、中国人…
中には、200人子供がいる!という方も居る(?)模様。(月額260万円、年額3120万円)
非実在子供にまでお金を払いそうな勢い。この手当て金を狙った児童売買なども発生しそうな予感。


このための財源は、無論日本国民の税金な訳で。
日本国籍の子供は、将来このツケを払うハメになり、外国人はあくまで外国人なので、日本の税金が高くなったら祖国に逃げられる。
一番バカを見るのが日本の子供というすさまじい状況。
「子供」という聞こえのいい言葉で騙す最近の法案によくある手口。
良い事なんて何一つもない。


参院選の票集めだか何だか知らないが、これほどまでの悪法、今まで見たことが無い。
その上、外国人に参政権をあげるよ!なんて言ったりもしてる。
もう確信犯としか思えない。

マニフェストの時点で絶対不可能だと思っていたが、ここまであからさまにバカをやってくれるとは流石に思っていなかった…。とりあえず、身近な人にこの法の危険さを伝える、ということから始めるしかなさそう。


子供手当ての詳細(Wikipedia)は以下から
http://ja.wikipedia.org/wiki/%E5%AD%90%E3%81%A9%E3%82%82%E6%89%8B%E5%BD%93



久しぶりに書いた記事がこんなことになって申し訳ないのだが、あまりに酷かったので…

2010年3月22日月曜日

RubyでUDPなServer/Clientを作ってみた

なにやらUDPを使ったアプリケーションを作成することになりそうなので、各クライアントから来た要求を全クライアントに返すサーバと、送信/受信を行うクライアントを作成してみた。

UDPなので、相手に届いているかを保証することはできない。
よって、このサーバ/クライアントでは「伝えること」より「リアルタイムで発信すること」を重視する。


まずはサーバ側を作成。

#!/usr/bin/env ruby
#-*- encoding: utf-8 -*-

require "socket"

SERVERIP = "192.168.0.105"
SERVERPORT = "62000"

clientList = Array.new

sock = UDPSocket.new
# サーバとして待ち受けるアドレスとポートを指定 
sock.bind(SERVERIP, SERVERPORT)

while true
# sockに出力が来るのを待つ
# 来なかったらnilを返す
sel = IO::select([sock])
if sel != nil
sel[0].each {|s|
# 最大65535byte分のデータを受け取る。
# データは配列として渡される。
# ["文字列", ["アドレス種別", 送信元ポート番号, "送信元ホスト名", "送信元IPアドレス"]]
# ["192.168.0.105 :43433 miku > miku\n", ["AF_INET", 62000, "192.168.0.105", "192.168.0.105"]]
data = s.recvfrom_nonblock(65535)
string = data[0].chomp!
ip, port = data[1][3].to_s, data[1][1].to_i
clientList << {"ip"=>ip, "port"=> port}
clientList.uniq!
# 各クライアントに向けて返信する
clientList.each{|client|
printf("Server > %-15s:%5d %s\n", client["ip"], client["port"], string)
# 実際に返信する。send("文字列", フラグ, "送信先IPアドレス", "送信先ポート")
sock.send(sprintf("%-15s:%5d %s\n", client["ip"], client["port"], string), 0, client["ip"], client["port"])
}
}
end
end

sock.close


次にクライアント側を作成する。

#!/usr/bin/env ruby
#-*- encoding: utf-8 -*-

require "socket"

if ARGV[0] == nil
puts "ex) ./client.rb miku"
exit 1
end

NAME = ARGV[0]
SERVERIP = "192.168.0.105"
SERVERPORT = "62000"

# UDPのソケットを作成
sock = UDPSocket.new
# バインドするIPアドレスとポートを自動で割り当てる
sock.bind("0.0.0.0", 0)


# サーバからの情報を受け取り表示するスレッドを作成
thread = Thread.new {
while true
# sockに出力が来るのを5秒待つ。
# 来なかったらnilを返す。
sel = IO::select([sock], nil, nil, 5)
if sel != nil
sel[0].each{|s|
data = s.recvfrom_nonblock(65535)
puts data[0].chomp!
}
end
end
}

# サーバに情報を送信するループ
while true
string = STDIN.gets.chomp!
sock.send(sprintf("%-5s> %s\n", NAME, string), 0, SERVERIP, SERVERPORT)
end

sock.close



実際に使用すると、このようになった。
UDPサーバ/クライアント実行結果


これだけで、簡単なチャットサーバ/クライアントが作成できた。
Cで書いたものを見たあとだと、Rubyが簡単過ぎて泣ける。

2010年3月8日月曜日

Debian(PPC)でLinux-VServerを使ってみる

Debianでのchroot環境について調べていたところ、chrootよりずっといい感じのLinux-VServerなるものが見つかったので、忘れないように書いておく。
感じとしては、FreeBSDのJailと似たようなもの…な気がする。

・aptitudeでvserver用のカーネルとツールをインストール。
# aptitude install linux-image-2.6-vserver-powerpc \
> util-vserver \
> vserver-debiantools


・vserver用カーネルで起動するため、再起動。
# reboot


・vserver用ファイルを準備。
vserver名をmikuとし、ホスト名をmiku.v.hachune.net、ディレクトリツリーの場所を/vsv/miku、ネットワークインターフェースにeth2を使用、1番のエイリアス(eth2:1)として10.39.39.100/24を割り当てる。ループバックにはlo:1を使用する。
"--"以降はdebootstrapのオプション。ここではDebian Lennyをftp.jaist.ac.jpから取得するように設定する。

# vserver miku build \
> --hostname miku.v.hachune.net \
> --rootdir=/vsv/miku --context 39 \
> --interface 1=eth2:10.39.39.100/24 --interface 1=lo:127.0.0.1/8\
> -m debootstrap -- -d lenny -m ftp://ftp.jaist.ac.jp/pub/Linux/Debian/


…これだけ。
後は、通常のDebian同様、起動して入ってサーバを設定する。
日本語を使用したい場合はaptitude install localesするといい。
・vserverを開始
# vserver miku start
・vserverを停止
# vserver miku stop
・vserverに入る
# vserver miku enter
・vserverの状態を確認
# vserver miku status
・vserverを削除
# vserver miku delete


詳しくはmanのvserver、verver-build、vserver-statあたりを参考にすると良いらしい。
一部デバイスの関係で正しく動作しないアプリケーションがあるようだが、chrootだけよりいい感じ。
基本システムのみなので、インストール直後の容量が252MBと、かなり小さめなのも嬉しい。
Mac Mini G4では、XenやVMwareが使えないしな…。

linux-vserver.org
http://linux-vserver.org/


※追記
動くものと動かないものは以下のとおり。

動作確認:
bind9
apache

動作せず:
OpenVPN: /dev/net/tunが無いため不可。
dhcp3-server: eth2:1を正しく認識しない…?


その他必要そうな設定
・TimeZoneの設定
# dpkg-reconfigure tzdata

・digが必要な場合
# aptitude install dnsutils

2010年3月5日金曜日

OpenBSDのカーネルを再構築

これまた忘れそうなので書いておく。


・適当なところからカーネルのソース等を持ってきておく。
今回は、以下の4つを取得。
ftp://ftp.jaist.ac.jp/pub/OpenBSD/4.6/src.tar.gz
ftp://ftp.jaist.ac.jp/pub/OpenBSD/4.6/sys.tar.gz
ftp://ftp.jaist.ac.jp/pub/openBSD/4.6/ports.tar.gz
ftp://ftp.jaist.ac.jp/pub/OpenBSD/4.6/xenocara.tar.gz


・ダウンロードしたファイルを展開する。
# cd /usr/src
# tar xzf /home/miku/sys.tar.gz
# tar xzf /home/miku/src.tar.gz
# cd /usr
# tar xzf /home/miku/xenocara.tar.gz
# tar xzf /home/miku/ports.tar.gz


・カーネルをビルド
# cd /usr/src/sys/arch/i386/conf/
# cp GENERIC.MP HACHUNE
→カーネル設定の編集はここで。
MPカーネル(マルチプロセッサ用のカーネル)の設定は、殆どがGENERICカーネルをincludeしたものなので、細かい設定はGENERICを編集して変更する。

# config HACHUNE
Don't forget to run "make depend"
# cd ../compile/HACHUNE
# make depend
# make
→ EeePC(Atom N270、DDR2-667 2GB、20GB IDE-USB HDD)だと、大体20〜30分位で終了。

・Buildしたカーネルをインストール(古いものをbsd.oldとしてとっておく)
# mv /bsd /bsd.old
# cp bsd /bsd

・再起動
# reboot
→もしコケたらブートローダーでbsd.oldを指定して起動


・ユーザーランドのビルド
# cd /usr/src
# make obj
# make build
→ カーネルのビルドよりずーーっと時間が掛かるのでゆっくり待つ。

・再起動
# reboot



…と、ここまでやっていたHDDがクラッシュ。
実験用HDDだからまぁ良いのだが、やっぱり凹むな…