2010-01-01から1年間の記事一覧
先日、↓これを使ってブラウザからサーバにファイルをアップロードするという画面を作っていました。 作るまではよかったんですが、それを SeleniumRC でテストしようと思ったら・・・ファイル欄の操作はできないそうです(Selenium Core FAQ - Selenium - Ope…
「(増補改訂版)Java言語で学ぶデザインパターン入門【マルチスレッド編】」を読み終わりました。 もともと、7月ぐらいに今の仕事でデッドロックが発生したときに買ってななめ読みしていたのですが、今月に入って改めてちゃんと読み直しました。 せっかくなの…
「x += 3;」は「x = x + 3;」とは違うということを知りました。 きっかけ あるメソッド(foo)の実行時間を確認しようと、こういうソースを書きました。 int sum = 0; for(String arg : args){ long start = System.currentTimeMillis(); foo(); long end = Sy…
動作のための最低条件テストのことを「スモークテスト」と呼びます。 この「スモーク」は「焦げたときに出る煙」のことを指しています。 (名称の由来は「新しい基盤に電源を通してみて、煙が上がらないかどうかを確認する」というところから) でも、ソフト…
先日のコミットコメントの書き方(我流)に対して、twitter でコメントをいただきました。 BTS連携があればチケット番号も [subversion]いいね! 僕はBTSと連携させることが多いので、太括弧【】の部分がチケット番号 #XX になりまする。連携できないときはこ…
public static void main(String[] args){ System.out.println // もちろん、ふつうはこんなソースを書いたりはしません。 // でも、いつも当たり前のようにメソッド名の直後にかっこを書いていたら // それがルールであるかのように錯覚してしまっていまし…
Java の HashSet のアルゴリズムを確認しようとクラスの中身を見てびっくり。 HashSet は、処理のほとんどを HashMap へ委譲するだけという超簡単なアルゴリズムでした。 コンストラクタはこんな感じ。 public HashSet() { map = new HashMap<E,Object>(); } メソッド</e,object>…
Javaの特徴の一つにチェック例外があります。 IOException や SQLException なんかが代表例です。 自分がチェック例外に遭遇した時にどのように対処しているかをまとめてみました。 throwsする public String read(File file) throws IOException 最も多く行…
ちょっと前に、Google検索にインスタントプレビューという機能が追加されました。 ところで、このスクリーンショット、どういう環境で取ったものなんでしょうか。 調べてみました。 UserAgent Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko) V…
Javaで、たまにリストと配列を変換したり、コピーしたりするときがあります。 でも意外とやろうとするたびに忘れてしまうので、ざっとまとめてみました。 (解説を分かりやすくするために、ジェネリクスを使用していません) リスト から 配列(変換) publi…
Subversionのコミットコメントは、人によって多々書き方が違います。 ただ、後でコミットの内容を確認した時に 何も書かれていなかった 書いてあっても一行だけだった となっていて、詳細が分からず、本人に聞いたりドキュメントを探して確認する羽目になっ…
Java7 には Objects クラスが追加される予定になっています*1。 Arrays や Collections みたいな、ユーテリティクラスですね。 ざっと調べてみました (といってもAPIを引用&翻訳*2しただけですが・・・)。http://download.java.net/jdk7/docs/api/java/util…
Javaでは、プロパティの設定によく Properties クラスを使います。 このクラスは、コンストラクタで別のプロパティをデフォルト値として指定することができます。 public Properties(Properties defaults) 指定されたデフォルト値を持つ空のプロパティリスト…
Hudson勉強会でゆかわさんが紹介していた「Hudsonを用いて適当に?テストする方法」を実践してみました。Hudson study-zenView more presentations from Wataru Yukawa. 自分のプロジェクトでは「データベースアクセス用のクラスにSQLとその実行メソッドを書…
最近、Java API(JavaDoc)を開こうとすると遅い・・・というかタイムアウトで失敗する・・・。ググってみたら、 java.sun.comが開けない DNSがおかしい気がする http://twitter.com/joniburn/status/4822838108233728 DNSがおかしい? とりえあず、nslookup …
Javaの for-each 文 (拡張for文) 内で remove をする方法はありません。 Sunの解説でもこの点は明記されています。 for-each ループは好きなときに使えます。使用すればコードがわかりやすくなりますが、どこででも使用できるわけではありません。たとえば、…
ふと気付いたんですが、Google検索のサマリーは極力日付を含むようになっているんですね・・・。 検索語句に関係なく、サマリーに日付を含んでいます。 改めて考えると、結構前からやっている気がしますが、いつからなんでしょうか。 あまりにもさりげなさす…
Q.「そもそも、なんでメールアドレスの仕様はこんなに複雑?」 A.「メールアドレスの仕様」ではなく「メールのヘッダ仕様」の一部*1だから (メールアドレスとして考えると「?」ですが、ヘッダとしては汎用的に情報を含められるような仕様になっています…
StrutsのEmailバリデータ(正確には、Apache Coomons Validator)を使っていたら、予想外の挙動にすこしびっくりしました。 前後に空白が入ってもいい test@example.com これは、最初に空白が入っていますが、有効と判定されます。 コメントが入ってもいい (…
Hudson勉強会に行ってきました。 http://wiki.hudson-ci.org/pages/viewpage.action?pageId=46336352 「仕事でHudson使いたいけど、何から手をつけたらいいんだろう」と思っていた矢先だったのでとても助かりました。 内容は本格的な使い方から、適当な使い…
Java5 から Closeable が実装されていました。 A Closeable is a source or destination of data that can be closed. The close method is invoked to release resources that the object is holding (such as open files). Closeableは、閉じることことの…
Firefox & GoogleChrome 用の greasemonkey「Add Tab Index for Google」をバージョンアップしました。 Add Tab Index for Googleとは?Googleの検索結果ページを3倍ぐらい使いやすくするためのgreasemonkeyです。 [1]検索結果の最初にフォーカスが当たる (E…
お客様が出展されているということで、IT PRO EXPOに行ってきました。 感想なんですが…、やたらiPadだらけ。 「これ、iPadの展示会でしたっけ?」と思うほど、iPadだらけでした。 ビジネス用途でiPadは普及する? 展示数だけを考えれば、ビジネス用途でiPad…
自分のサイトをググったらさっきの更新がもう反映されてた。 投稿してから30秒しか経ってないのに…。
Javaの標準API(java.*, javax.*)に含まれるメソッド名を分析して、よく使われている単語や接頭辞を抜き出してみました。 これで、もうメソッド名を決めるのに迷わない!はず…。 接頭辞 順位 単語 意味 代表例 出現回数 1 get 取得する List#get() 21198 2 …
柴田 芳樹さん*1のブログを読んでいて、ふと目にとまったコメントがありました。 結果として、APIの実装コードでは不正パラメータの検査されていない。あるいは、検査はしているが例外をスローすることなく、単純にリターンしている。※ (中略) ※ 検査はし…
Firefox & GoogleChrome 用の greasemonkey「Add Tab Index for Google」をバージョンアップしました。 Add Tab Index for Googleとは?Googleの検索結果ページを3倍ぐらい使いやすくするためのgreasemonkeyです。 [1]検索結果の最初にフォーカスが当たる (E…
egg (JavaScript Effect Library)にモザイクイン・モザイクアウトを追加しました。 egg とは?HTML5 の canvas を使った画像エフェクトライブライブラリです。 まだ数は少ないですが、結構きれいなエフェクトがかかります。 Firefox, Google Chrome をご利用…
HTML5 の canvas を使った画像エフェクトライブラリ「egg」を公開しました。 egg とは?HTML5 の canvas を使った画像エフェクトライブライブラリです。 現在は粒子エフェクトのみですが、結構きれいなエフェクトがかかります。 Firefox, Google Chrome をご…
Google Chrome で canvas をいじっていたらこんなエラーが。 Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1 Firefoxだと動くのになんでー?って思ったら、drawIndex で範囲外をコピーしようとしていたことが原因でした。 context.drawImage(img, sx, sy,…