2011年8月29日月曜日

OCJ-P

バウチャーを買って、早くも1年。期限切れしてしまうということで、焦ってOCJ-Pを受験してきました。
対策は黒本(教科書と問題集両方)のみ。

黒本と殆ど同じ問題が何問か出題されて、ちょっと驚きました。全体的には黒本よりも簡単な問題が多かったです。
問題運があったのか、あまり難しい問題も無く。10年くらい前に「引っ掛け問題が多い」という噂を聞いていたので、警戒していたのですがそういうことも無く。割と素直な問題が多かった印象。

・コレクションはそれぞれの特徴と代表的なメソッドは覚えた方が良い
・スレッドは排他制御(synchronizedあたり)
・javac/javaコマンドのオプションもちゃんと出た

最初はサンプル問題から始まり、ほいほいと解いていると知らない間に本試験になっていました。「ここから本番ですよ〜」ともっと主張して欲しい...

正解率は93%で合格。60問なので4問くらい間違えたのか...多分、コレクションのあたりかなぁと思う。

黒本は、正誤表もあるけど「え?これおかしくない?」という解説や解答例があり、ちょっと悩ましい。

ところで、Bloggerって読者がつくシステムなんですね。知りませんでした。
こんな放置気味のブログにも読者がついていると....申し訳ないっ

2011年1月24日月曜日

xmlTextReaderReadでコケた

日本語を含んだXMLの場合は特に、なのかもしれないが。
xmlTextReaderRead()を読んでいると、エラーが発生して途中で終わってしまうことがある。

戻り値が1なら成功、0なら終わり、それ以外はエラー発生でちゃんと処理することが大切。
うっかり忘れていて、ハマった...

日本語の文字列(文字数制限付き)をXMLに書き出す時に、文字の途中でぶっちぎれてしまったのが原因のようす。書き出す時は良いけど、そのデータを読み出す時に「エンコーディングエラー」と言われた。エンコーディングエラーというよりは、日本語文字列が途中で化けているのが原因だった。

C言語で日本語を含む文字列の操作は難しい....文字列処理関数が、基本的に「バイト」単位だからなぁ。英数字と日本語が混在している場合で「120文字以下に切り詰める」ってどうやれば良いんだろう?

2010年12月6日月曜日

RSSのパース

libxml2でRSSのパース。

xmlデータがchar*に入っている場合は、xmlReaderForDocを使う。
xmlReaderForMemoryを使っていて、ずっとハマった(何故か冒頭の"xml version..."のところでコケる)

2010年11月30日火曜日

iPod touchのパケットをキャプチャする

対象のiOSは4.2.1、MacはSnowLeopard

Macは有線でLANに繋げることが必要。

Macを無線のアクセスポイントにする

WireSharkをインストールする
WireSharkをインストールする

iPod touchのWiFi設定を変更する

プロキシの設定はEthernetのアドレスを指定する。
CaptureインタフェースもEthrenetを指定。

WireSharkでネットワークインタフェースが表示されない場合は、

chgrp admin /dev/bpf*
chmod g+rw /dev/bpf*

を実行する。

2010年11月20日土曜日

RailsDevCon

遅刻したので、最初のセッションはほとんど聞けず。

・西村さん:@ITの偉い人。今日の発表内容をまとめて原稿にするらしい。早くアップしてくれ〜。Rails関係の情報源なんかの紹介をどわーっとしていた。あと、@ITでRails関係のページが出来るらしい。期待!

・大仲さん:RailsTokyoで一度会ったことがある若者。ドリコムでどんな感じでソーシャルアプリを開発しているかという話。聞いたことが無いようなものが沢山出てきて、話についていけないっ!ただ、「ソーシャルアプリって、大変そうだよなぁ」という尊敬にも似た気持ちがわいた。2週間に一度くらいでイベントやらリリースをしていると、いつ休暇を取るんだろう?とか思ったり。

・赤松さん:Railsでフリーのエンジニアって、どういう仕事のやり方してるんだろう?とひたすら発表とは関係ないところが気になり続ける。

・諸橋さん:こちらもRailsTokyoで会ったことがあるおにーさん。Cucumber本を出したということもあり、Cucumber。テストをどうやってプロジェクトに導入して行くかってところが面白かった。どこかで改めて特集して欲しいくらい。

・松村さん:youRoom....AmazonECとか使っていて、なんか凄そう。

・初めてがRuby:初めて使ったプログラミング言語がRubyであるという、ニュータイプな人たちのパネルディスカッション。今の若者はベースとして要求される技術が多くて大変だよなぁ。私の頃なんてHTMLとか無かったもんなぁ。インターネットは使えたけど、メールとニュースとFTPと....ってくらい?

全体としての印象は「質の良い情報源/人脈にたどり着くことが大切であり大変である」ということ。Javaは比較的最初の頃からJava World/Java Pressといった雑誌があって、周りに誰もいなくてもある程度新しい情報に触れることが出来たけど、Ruby/Railsは周りに誰もいないと最初は大変だなってこと(私も周りに誰もいなくて結構大変だった)。
そういう意味でも、こういう集まりって貴重だよな。

2010年10月16日土曜日

Ruby1.9はどこ?

Pikで入れたRuby1.9。そういえば君はどこにインストールされたの?

ということで、気になって探してみたら。
C:¥Documents and Settings¥ユーザ名¥.pik¥rubies¥Ruby-192-p0¥以下にインストールされていた。

> pik use 192
> echo %PATH%

とやると、確かにそこにPATHが変わる。気がつかなかったよ。
sqlite3.{exe, dll}をC:¥Ruby¥bin(1.8.6のあるところ)に移動したら、Rails3に切り替えて

> rails g scaffold 云々

とやった時に怒られたので、「おや?」と思ったのだった。
両方で同じものを使うならC:¥sqlite3とか作ってPATHを通す、別々のものを使うならそれぞれのインストールディレクトリ¥binに入れなくちゃダメな訳ですね。

と、妙に初歩的なところで納得した。

2010年10月8日金曜日

rails3の準備

ruby 1.8.6/Rails 2.0.2がインストールされているWindows XPにruby 1.9.x/Rails 3.xを共存させる。

参考ページ

1. Pik0.2.8.msiをダウンロード&インストール

2. 既にインストールされているruby 1.8.6をPikに組み込む
> pik add


3. Ruby1.9.2をインストールする。
3.1 pikで確認
> pik list -r
1.9.2-p0: http://rubyforge.org/frs/download.php/72160/ruby-1.9.2-p0-i386-mingw32.7z
1.9.2-rc1: http://rubyforge.org/frs/download.php/71498/ruby-1.9.2-rc1-i386-mingw32.7z
1.9.2dev-preview3-1: http://rubyforge.org/frs/download.php/71175/ruby-1.9.2dev-preview3-i386-mingw32-1.7z


3.2 1.9.2-p0をインストール
> pik install ruby -v 1.9.2-p0


3.3 確認する
> pik list


4. 1.9.2に切り替える
> pik use 192


5. Rails3をインストール
> gem install rails --version ">= 3.0"


6. SQLite本体とdllをDownload Pageからダウンロードする。解凍して同じフォルダに入れて、PATHを通しておく(今回はとりあえずC:¥sqlite3を用意してそこに入れた)。

7. 再起動

pik use 192 ... Rails3
pik use 186 ... Rails2
に切り替わる。便利だ。