2011-01-01から1年間の記事一覧
自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。 そんな自分が、今年一年でどんな本を…
先日のJava7 で ArrayList の foreach が速くなった理由を調べてみました。 - 地平線に行くについて、お詫びと訂正です。 上記の記事の中で、「ArrayList の foreach文(拡張for文)がJava6 → Java7 で約2.5倍速くなっていました。」という実験結果を記載し…
Java7でList/TreeMap/TreeSetのIteratorがかなり早くなって、 ArrayListのforeach文(拡張for文)も、普通のfor文より早くなりました。 コレクションの細かい話、だが面白い! - 谷本 心 in せろ部屋 そうなんですか!? …と思って試してみたところ、ArrayLi…
C#のLINQメソッドは超便利!!、なんですが…肝心のAPIがわかりづらいです。 そこで、種類ごとにまとめて、簡単なサンプルを書いてみました。 結果の表示に、独自の拡張メソッド ToResult(this IEnumerable) を使用しています。このメソッドは、本文の最後に記…
最近、iPhone4S が登場してにわかに回線速度についての話題が上がってきました。 でも、Googleマップのようなリッチコンテンツならともかく、ふつうのウェブページは高速な回線じゃないと困るぐらいデータ量が多いんでしょうか。 調べてみました。 調査方法 …
jQuery の :hidden セレクターは遅いのでしょうか? Excelインクリメンタルサーチのプロファイルをとっていたら、処理回数が多いと無視できないぐらい遅くなることがわかったのですが…。でも、理由がよくわからないです。 解析 まず、該当箇所(hidden セレ…
eclipse3.7 SR1 で正式に Java7 への対応がアナウンスされました。 Eclipse Announces Full Support for Java 7 主な変更点は、コンパイラと主要なツール(コンテンツアシスト、クイックフィックスなど)の Project Coin への対応、とのこと。 これでやっと…
最近、仕事でやたらExcelを使うようになったので、こういうツールを作ってみました。 Excelインクリメンタルサーチ Excelの表を、すごく検索しやすくするツールです。 (QA表, 不具合表... etc) サンプルはこちら! このツールを使うと、Excelの表をブラウ…
先日の記事(Java7 で String クラスがリファクタリングされていました - 地平線に行く)に続いて、File クラスを調べてみました。前回ほどの変更はありませんでしたが、それでも着実にソースがよくなっていました。 listFiles メソッド - 新文法の積極活用 …
先日、ついに JavaSE 7 がリリースされました! そこで、早速ダウンロードして、Java7 のソースコード(src.zip)を Java6と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち…
Java7 の try-with-resources と C# の using は、どちらも同じだと思っていました。 でも、複数のリソースを扱うときの書き方が全然違っていました。 // Java7, ひとつの try の中に複数の宣言を書く try(BufferedReader reader = Files.newBufferedReader(…
まだ公式リリース前*1ですが、一足早く Java7 でアプリを作ってみました! PopupTail Java7 で実装した、タスクトレイ常駐型の Tail です(tail -f と同じ機能です)。 ファイルに変更があると、ポップアップでお知らせします。 ログの監視などに、ぜひご利…
7月28日は Java7 のリリース日*1。 その前にちょっと遊んでみようと思ったら、eclipse がまだ対応していませんでした。 2011年9月ごろ(eclipse 3.7 SR1 で対応)になるそうです。それまでは、IntelliJ IDEAか、NetBeansを使うしかなさそうですね…。 2011年1…
よく使うJavaのクラスは、たいてい引数なしコンストラクタを持っています。 List<String> list = new ArrayList<String>(); Calendar calendar = new Calendar(); でも、引数なしコンストラクタを持たないクラス*1も結構あります。 InputStream inputStream = new FileInputS</string></string>…
今月読んだ本を、復習を兼ねて振り返ってみます。 技術書 JavaScript パターン けっこう薄い(200ページちょっと)んですが、大事なことがとてもつまってました。JavaScriptは、いままで見よう見まねでやっていたところがあったんですが、この本でなぜそうす…
よくごっちゃになってしまうので、Java と C# の命名規約をざっとまとめてみました。 種類JavaC#(.NET) クラスPascalPascal インタフェースPascal(例:List)"I" + Pascal(例:IList) パッケージ / ネームスペースCamel(例:java.net)Pascal(例:Syste…
Canvas Library (Effect & Animetion) *1をバージョンアップしました。 Canvas Library (Effect & Animetion) とは?HTML5 の canvas にエフェクトをかけるライブラリです。 まだ数は少ないですが、結構きれいなエフェクトがかかります! ぜひ、下記のページ…
3月11日の東日本大震災以降、地震の回数が急増しました。 一方で、ここ最近はだいぶ減ってきたような気がします。 ・・・でも、本当に減っているのでしょうか? 地震の回数 日本気象協会が発表している地震情報を分析しました。 その結果が、このグラフです。 …
id:backpaper0さんが内部クラスはエンクロージングインスタンスが無くてもインスタンス化できる?と書かれていました。 Inner.class.getConstructor(Outer.class).newInstance((Outer) null); 実行してみたところ、確かにインスタンス化できました。 でも、…
昨日の「条件演算子(三項演算子)で、:の左側と右側に共通のインタフェースを持つ別のクラスを書く」についての追記です。C#だと、以下のように条件演算子のふたつの式が共通の型を持っている場合でもコンパイルエラーになりますが、Javaだとちゃんとコンパ…
Javaで動くので、C#でも動くと思ったんですが・・・。 条件演算子(三項演算子)で、:の左側と右側に共通のインタフェースを持つ別のクラスを書くと、コンパイルエラーになりした。 /* -- Java -- */ public interface X { ・・・ } public class A implements X…
案件が変わり、仕事で使う言語がJavaからC#に変わりました。 その際に、C#でプログラムを書いていて引っかかったところをメモしておきます。 とりあえず、連想配列(Dictionary)を使ったときのことをメモ。 書き方の違い C#は、連想配列用に言語仕様が用意さ…
以前、ローカルファイルのまま JavaScript を動かそうとすると、セキュリティエラーにひっかかるということがありました。 ちゃんと Apache とかのサーバを用意して動かせばいいんですが、そこまで手間をかけるのも面倒・・・。そこで、こんなの作ってみまし…
たまに、Java の Enumeration を使ったサンプルを見かけることがありますが、その大半が Iterator と同じようなアクセスの仕方をしています。 NetworkInterface nic = NetworkInterface.getByName("eth0"); Enumeration<InetAddress> nicAddress = nic.getInetAddresses()</inetaddress>…
プログラマーの仕事は、とにかく効率を求められます。 それは、コーディング然り、テスト然りです。 それならば、バグだって効率的に作るべきです。 今日は、そんな効率的にバグを作るやり方を、ざっと考えてみました。 複雑なif バグを作るためにifをたくさ…
結論:JavaでPingを打つには、外部プロセスを使う。 public class NativeProcess { /** ping のタイムアウト(ms) */ private static String TIMEOUT = "3000"; public static void main(String... args) throws IOException, InterruptedException{ boolean …
今から13年前、VB (VisualBasic) で初めてプログラムを書きました。 昨日、そのVBでひさしぶりにプログラムを書きました。 Split(str, ",") 書いていて、初めて違和感を感じました。それが、衝撃的でした。 書き方、ではない オブジェクト指向を理解して、プ…
テスト環境構築のために、Hudson × Ant × JUnit with Selenium の組み合わせで動かそうとしたら、いろいろと四苦八苦してしまいました…。 JUnit タスクが動かない なぜか、Ant の JUnitタスクを動かそうとしたら ClassNotFoundException がでました。 不思議…
サクラエディタでソートができないかどうかいろいろ工夫してみたら、できました。 手順 「ツール」−「外部コマンド実行」をクリック 名前に「sort」と入力、「標準入力に送る」をチェック、「編集中のウィンドウ」を選択(次回以降は、これがデフォルトにな…
自分が使っているTracでは、更新もタイムラインに表示するように設定しています*1。 これで、更新がすぐにわかって便利!と思ったんですが、更新頻度が高いと肝心の登録/解決が埋もれる・・・。 そこで、見やすく色分けしてみました。 div.timeline dl dt.ne…