Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

Entries from 2009-01-01 to 1 year

TLを読み込んでRTの件数を数える

twitter4jを使ってTLを読み込み、RT(もしくはQT)の件数を数えるプログラム。TLに表れるPOSTがRTまたはQTである確率分布を求めるために作成しました。 twitter4jのStatusクラスにもisRetweetメソッドが用意されていますが、判定条件がわからないことと明ら…

非staticな内部クラスが持つ暗黙的な参照

Effective Java 第2版 (The Java Series)の項目22で言及されているように、原則として内部クラスはstaticにすることが推奨されます。主な理由は、staticでない内部クラスが暗黙的にエンクロージングクラス(トップレベルクラス)のインスタンスを参照するた…

Listを直接変更してもIteratorがConcurrentModificationExceptionをスローしない件

容量拡張コストの低いArrayListの実装中に見つけた、AbstractListが持つ既知の不具合についてまとめておきます。 不具合概要 ArrayListなどの同期化されないListの実装に対してIterator利用中に要素を変更すると、ConcurrentModificationExceptionをスローす…

Twitterユーザの特徴を掴めるかもしれないブックマークレット

私はTwitterで新しく見かけたユーザをフォローするかどうかを考えるとき、過去の発言をある程度読んで傾向を見るようにしています。ただTLの流速が早かったりReplyが飛び交っていたりして傾向が掴みにくい(たくさん読まなければならない)ことも多かったた…

同期化のパフォーマンス計測

シルバーウィークのまとまった時間を利用して、同期化のパフォーマンスについて調査。どのように遅いのか・なぜ遅いのかを追いましたが、詳細な内部実装はJVM仮想マシン仕様書にも記載されておらず「なぜ」まではわかりませんでした。 中途半端な内容になり…

Seasarカンファレンス私的メモ

昨日Seasar Conference 2009 Autumnへお邪魔しました。私はSaesarに明るくないので聞いてばかりでしたが、実際のケースに照らし合わせた具体的な質問をしていらっしゃる方も多く積極的な交流の場となっている印象も受けました。 とりあえず感じたことや考え…

はてなダイアリーのサイドバーが画面下に飛んでしまったときの対策メモ

本ブログにていつの間にかサイドバーが下に吹っ飛んで表示されるようになっていました。同じ症状を持つはてダがあるかもしれませんので、参考までに原因と対策をまとめておきます。 原因 本来こうあるべきHTMLが <div class="hatena-body"> <div class="main"></div> <div class="sidebar"></div> </div> 以下のようになってしまっている。 <div class="hatena-body"> <div class="main"></div> </div> <div class="sidebar"></div>

DOSバッチとRで拡張子ごとにファイルサイズを集計する

Rのキャッチアップ第2弾。指定したディレクトリ以下に保存されているすべてのファイルに対してファイルサイズを調べ、拡張子ごとに合計を取得してグラフ化します。私の環境では以下のような結果となりました。以前ダウンロードしたXenServerのISOとEclipseプ…

Twitter4JとRで最近Tweetしたユーザーを調べる

Rのキャッチアップのために「直近の100Tweetsを投稿したユーザーを調べる」プログラムを作成しました。最初は「自身の投稿を曜日を横軸・時間を縦軸にプロットする」プログラムを組もうと思ったのですが、Twitter APIを利用するためのJavaライブラリ(Twitte…

Java6のFileInputStream#close()はいつIOExceptionを投げる?

Javaにおける例外の扱い方*1に関して考える上で必要になったため調べたものの、さほど有用な情報は得られませんでした。JDK6のソースコードも読みましたが結局はnativeメソッドに行き着くのであまり効果なし、残念です。現時点では以下の状況下で発生すると…

TopCoderの記録をつけ始めました

できれば1日1回を目標に、TopCoder(SRM)の過去問に挑戦したいと考えています。 今回は控えるのを忘れてしまいましたが、次回以降はスコアも併記するようにします。 TopCoder戦記 - TopCoder部

プロになって1年間で変わった3つの意識

プロの研究開発者になって丸1年で何が変わったのだろうと振り返ってみました。 1年前に比べると技術理解や知識量も変化・向上しているのですが、やはり最も変わったのは開発に対する意識であると思います。中でも大きかった3つの意識をピックアップしてここ…

インディーズゲームと、趣味プログラマのこれから

SIG-Indieの第2回研究会を聴講してきました。 自身の参加態度に関しては非常に大きな反省点を残しましたが、全体的に得るものが多い研究会でした。スーパークリエータと呼ぶべき「液晶のなかのひと」を間近に見られたのもモチベーションになりました。 少し…

Twitterはじめました

オンライン活動再開*1に向けたリハビリ第1弾。 サイト整理とかウェブサービス公開とかもっとやりたいことは多いのですが、ひとまずはじめやすいものからと考えてTwitterをはじめました。iPod TouchにもTweetDeckをインストール済み。 http://twitter.com/ell…

Pythonキャッチアップ記録

GW中はひたすらPython(CPython)のキャッチアップをしていました。 有名企業で利用されているだけのことはあり、高い生産性と自由度を兼ね備えた軽量言語であることを実感できました。実行速度が充分高速ならば業務でも利用してみたいと思わせる言語です。 私…

2年目はクリエイティビティを発揮する年に

初めて社会人として過ごしたこの1年間は、働き方そのもののキャッチアップやプロ意識の習得に大きなコストを割く年になりました。その甲斐もあって少ない負担で成長サイクルを回すことができるようになり、活動範囲も少しずつ広げることができていると思いま…

CSS Niteに参加してきました

先月の日記で触れたCSS Niteに参加してきました。技術以前の考え方・取り組み方についてに重点を置いた内容で、ビジネスとしてどのようにユーザビリティを見つめるかを考える良い契機になりました。 中でも特に参考になったのが「検証」について。ビジネスに…

FileDocumentProvider継承時の注意

前回発生した「メニューバーからファイルを開くとエラーになる」の原因を調べていました。結論としては、FileDocumentProviderを継承しただけではワークスペース外のファイルを扱えないようです。 DocumentProvider#createDocumentの実装がポイント 今回の実…

サイト移転準備

近日中にサイトを移転する予定です。次のサイトはGoogleサイトを利用して開発するため、見栄えは若干悪化しますがご了承ください。余計なコンテンツは減らしつつ、デザイナやプログラマにとって有益な情報を提供できるよう配慮するつもりです。 また開発中の…

HSP編集用Eclipseプラグイン試作

Eclipseプラグイン学習の一環として、HSPスクリプトを色分けするプラグインを作成しました。コメントと文字列を色分けするだけですが、スキャナやトークンなどエディタ用プラグインを作成ための基礎知識を身につけられたと思います。ほぼサンプルコードと変…

CSS Niteへ参加してきます

プログラミングよりデザインに関連する内容ですが、ユーザビリティのセミナー@CSS Niteへ参加してきます。 広く言われているように、ユーザビリティはシステムやウェブサイトにとってかなり深い課題であると考えています。おそらく今回のCSS Niteでは使いや…

DBMSの仕組みを知る

私がSQLiteを使うようになってからそろそろ2年が経つでしょうか。MySQLやOracleなど他のDBMSも経験し、DBMSの概要やSQLの書き方、JDBCの使い方などについては座学・実践共にそこそこ蓄積ができてきたと感じています。 しかしDBMS自体の理解は乏しく、ブラッ…

2008年12月のまとめ

目標の実践 PrototypeやjQueryの違いを知ることを目標としていましたが、目標自体の優先度が下がったため、その実践は見送られました。製作中のウェブサービスがTeeda Ajaxを採用しているため、PrototypeやJQueryでなくKumuを使うことになったためです。Teed…