投稿

12月, 2011の投稿を表示しています

英数字の縦書き

http://brickybox.com/2010/09/15/html-vertical-text-safari-firefox-chrome-and-opera

Reliability rateとは何か?

Reliability Ratings and Bonuses

TopCoderでは Reliability rate というものがあります。SRM や Marathon では意識する必要がないけれど、Component Development などではReliability rateによって獲得賞金に色がついたりします。

Reliability rate とは、過去に参加したプロジェクトでレビューを通せた割合です。より具体的には、過去に参加登録したプロジェクトのうち最近15回分が考慮されます。その中でもレビューが通ったプロジェクトの数だけReliability rateが増加します。まとめると、(Reliability rate) = (レビューが通ったプロジェクトの数)/15 となります。

ボーナスについては、Reliability rate が 80 %以上なら賞金額の1割、90 %以上なら1.5割、95 %以上なら2割が獲得賞金として計算されます。

注意が必要なのは、Reliability rate は単一のスコアではなくて、カテゴリ毎に別計算されている点です。例えば、Component Design で15/15=100 %のrateを保持していたとしても、Component Development で 0/15=0 % であれば Development ではボーナスがつきません。

Mac で Java を使い分ける

Mac で Java 環境を使い分けるのは、一筋縄ではいかないようです。

探してみると、数々のサイトで解説されていることが分かります。中でも参考になったサイトを挙げると、

Snow LeopardのJava環境に手を入れる(2)OSXのJava環境切替えのしくみSwitching Java versions on a Mac (setting JAVA_HOME and using Java 6 Revisited)Switching JDKs on Mac 上記のサイトを回るとJava環境を使い分けるのはいくつかのケースを考慮しないといけないことが分かります。javacやjavaコマンドを使い分けたいだけであればJava Preferences.appを使えばよいが、javawsを使いたい場合はCurrentJDKを手動でリンクし直す必要があるなどなど。

解説サイトを回ってみて不思議だったのは、Java Preferences.appに関する具体的な情報が無いことです。ADCやOracleで探してみても情報を見つけることができませんでした。「バージョンを変えてくれる」「設定を変えてくれる」などの解説はあるのですが、どのファイルをどのように変えるのかは分かりませんでした。

という残念記事でした。

neocomplcacheメモ

インストールは全てこぴーするだけ

設定も推奨設定をコピペするだけ

補完はC-k

http://d.hatena.ne.jp/kano4/20111013/javacomplete

Component Developmentのメモ

これは参加方法の解説や関連ページの翻訳ではありません。あくまで単なるメモです。


Development Distribution Usage Instructions


Java Development Distribution


配布されるjarファイルを参照して要件などを確認する。


提出するものは
ソースコード単体テスト単体テストを通ったログComponent_Specification作業手順は


jarファイルをダウンロードjar xvf *_dist.jar/docs 以下のデザインドキュメントを確認する/src/java/ 以下のソースコードを確認するMember Handle: 匿名性保持のため、ソースやドキュメントに名前、ハンドル名、メールなどを載せてはならない。ハンドルを載せたい場合は、TCSDEVELOPERと書く。
Unit Test Cases: テストケースは/src/java/tests/com/topcoder/PACKAGE に入れる。全てのメソッド、コンストラクタを試す。
Testing your code: ant testを実行するUnitsTests.javaと自分で追加したテストケースのみを提出し、他のコードは改変しない最後に、"ant dev_submission"を実行して提出用ファイルを生成する。
build.xmlについては ant compile : ソースのコンパイルant test : テストケースの実行ant comple_targets : JVMを指定してコンパイルant dev_submission : 提出用ファイルの生成となっている。
anonymity : 匿名
Component Development Member Guidelines
各ソフトウェアのバージョン
ソースやドキュメントの制限事項 一行120文字を超えないとか
Component Development Tutorial


junit や cobertura などは build-expen...に従って配置すると楽


依存パッケージはtopcoderから入手できるものもある。


やるべきことは
ソースを書くユニットテストを行うドキュメントを書く(ソースとテストの両方)Writing Java Unit Tests
まず、src/java/tests以下にテストコード…

Dynamic Viewに切り替えました

ブログのテーマをDynamic Viewに切り替えました。

ソースコードの見栄えを考慮してずっと悩んでいましたが、source-hilight の変換がいい感じだった今後はこちらでいろいろ試しつつ、vimのTOhtmlも良さげなので浮気しつつで行こうと思います。

以前はSyntaxHighlighterを使用してソースを張り付けていました。行番号も出力しつつ背景色も見やすく、非常に気にっていました。ところが、Dynamic Viewではテンプレートをいじれない、ヘッダー部分にJavaScriptを追加できない仕様となっているため、使い続けることができなくなってしまいました。

以前の記事のソースコードについては、さかのぼって編集し直すことはないと思います。あしからず。

と、いう投稿テスト。

マウスとキー入力のイベントを同時に判定したい

イメージ
昨日つまづいたのでメモ。

特定の要素内にマウスが乗ってる時だけキー入力を受け付けたい、そんな場面に出くわしました。もっと具体的には・・・まず、ページ構成として入力エリアと選択エリアの二分されている状態を想像してください。入力エリアではフォームが幾つか配置されていて、選択エリアではアイテムがタブキーの入力で動的に変更されるように設計されていたとします。この時何の工夫もしていなければ、タブキーを押すとフォーカスがフォームを移動すると同時に選択エリアが更新されてしまう場合があります。これはユーザーが意図しない挙動で、入力エリアと選択エリアでタブキーの役割を変更するべきだと考えられます。

前置きが長くなりましたが、要は、マウスが乗ってる状態とキー入力のイベントをペアで制御したいということになります。

これを実現するためにやるべきことは、大きく分けて 2 つになります。

keydownイベントで実行する関数本体を作るmouseoverイベントでkeydownイベントに1.をバインドする (mouseoutでunbind) 具体的なサンプルコードは以下のようになります。
<html><head><scripttype="text/javascript"src="./jquery-1.7.1.min.js"></script><scripttype="text/javascript"> $(function(){ $("div").css("background-color","#C0C0C0");functiondisplayKeycode(event){ $("div").text(event.keyCode);} $("div").mouseover(function(){ $(document).bind("keydown",displayKeycode);}); $("div").mouseout(function(…

TopCoder SRM練習支援スクリプト AirSRM

https://github.com/kawakami-o3/AirSRM

TopCoder SRM(以下、SRM)での練習はほぼ日課と化していたのですが、10月頃からだったか、practice roomに入れないことが度々発生するようになりました。この問題は多くの方が経験されたようで、12月1日にはサーバのリプレースなどの対処がなされたようです(詳しくはforum参照)。以降一部の部屋には入れるようになりましたが、それでもまだアクセスできないところもあるようです。

SRMで練習する時は TopCoder Competition Arena にいくつかのプラグイン(FileEditやExampleBuilder)を使用していますが、主に使っている機能は以下のようになります。

問題文の取得システムテスト上位陣のコード取得雛形コードの生成 このうち、上位 3 つはcommunity.topcoder.comにアクセスすることで情報収集することができます。雛形コードについては雛形化している部分が多くないこともあり、一問あたり2, 3分もあれば手で打ち込むこともできます。つまり、部屋に入れなくても、大体は問題なく練習できるということになります。

ただ一点、面倒になってしまうのはやはりシステムテストです。ウェブにアクセスすることでパラメータを取得することは出来ますが、全てをテストするコードを書くのは大変手間がかかってしまいます。実のところ、このためだけに部屋に入っているといっても過言ではないかも知れません。

この問題を解決するべく組んだのが AirSRM です。
% ruby AirSRM.rb --srm=525 --div=2 --lv=1 --systemtest とコマンドを打つだけで 、SRM 525 Div 2 Easyのシステムテストコードを生成し、ローカルで擬似システムテストを行うことが出来るようになります。

ただ、もともとシステムテストをしたかっただけで、他が結構お座なりで現在のところJavaしか対応していません(テンプレートを差し替えれば割と簡単に C# にも対応できるはず。。。いつか修正します)。