Entries from 2010-01-01 to 1 year
私的まとめ。2段階に分かれており、今回はその初回。 JVM内の挙動を知るにはJVMに渡されるバイトコードを知ることからと考え、これについてまとめる。 バイトコードの確認 例えば public class Test { public static void main(String[] args) { Test test =…
import java.util.concurrent.TimeUnit; public class Laputa { public static void main(String[] args) { new Laputa(); while (true) { try { System.gc(); System.runFinalization(); TimeUnit.MILLISECONDS.sleep(100); } catch (InterruptedException …
今さらながらJavaクラスに対する動的なweavingを試してみました。DIコンテナやフレームワークに任せることが一般的になった領域であり技術が直接役に立つことはないでしょうが、JVMやクラスファイルに対する理解を深めるきっかけにもなると考えたためです。 …
今月jsdo.itに投稿した作品です。 orgel フロッキング2 遺伝的アルゴリズム フロッキングと遺伝的アルゴリズムはこちらの本を参考にしたものです。AIはゲーム作成における難関のひとつだと思いますが、その手本を得ることができました。ゲーム作成に関心のあ…
自作TwitterBotに給料日判定ロジックを組み込むべく、GoogleカレンダーのAPIを利用するコードを書きました。APIのご利用は利用規約に従って計画的に。 1.jarを入手する gdata-java-clientから最新のjarを入手。ビルドパスに追加。 2.ユーティリティを書く 簡…
今年の個人目標にマネジメントの理解・実践を挙げています*1。9ヶ月間やってきて手応えもありますが、課題山積というのが正直なところです。残り3ヶ月で消化できるよう、懸念と疑問を列挙します。 コミュニケーションにおいて、マネジメントは何であるとされ…
Google Collections Libraryを使おうと思ってGoogle Codeにアクセスしたら、開発が継続されていないことに気づきました。どうやらGuavaというプロダクトにマージされたようです。 This project has evolved into Guava! http://code.google.com/p/google-col…
ここ数日の有給休暇を使いJavascriptタワーディフェンスゲームを制作したので、その感想など。Javascriptはページに動作を付与する程度の使い方しかしてこなかったので、とても新鮮な体験となりました。 「Javascriptでゲーム」は現実的 作るだけなら他の言…
今月からBasic認証が廃止されたことを受け、Twitter4Jで作ったツールをOAuth利用版に書き換えていらっしゃる方も多いのではないでしょうか。 公式サイトにもコード例が載っていますが、残念ながら非推奨メソッドTwitter.setOAuthAccessToken(AccessToken)を…
最近jsdo.itでHTML5を使ったゲームを開発しています。具体的には、canvas要素による描画を主軸に据えたタワーディフェンスゲームです。 TowerDefence 5th - jsdo.it - Share JavaScript, HTML5 and CSS HTML5によってWindowsでもMacでも初代iPod touchでも動…
わりと多種類で使い方に迷うJavaの連想配列(Map)について、各実装の紹介と周辺知識をまとめました。Javaに触れる際の参考になれば。 鉄則その1「とりあえずHashMap」 Mapインタフェースの実装はたくさんありますが、まずはHashMapから使うことを勧めます。…
jps, jstack, jmap, jstackといったJDK6に付属するツール群の使い方をA4用紙1枚にまとめたものです。 Java Profiling Cheat Sheet スレッドダンプとヒープダンプだけでも使えるようになると、Javaプログラムの理解と問題判別にずいぶん役に立つと思います。…
前回の実験で、DeflaterOutputStreamとBufferedOutputStreamの組み合わせ方によってパフォーマンスが大きく異なることがわかりました。今回はこの遅延の原因がDeflaterOutputStreamの実装に起因することを確認し、なぜBufferedOutputStreamでデコレートすべ…
Javaで入出力のコードを書く場合、必ずと行ってもいいほどBufferedOutputStream, BufferedInputStream, BufferedWriter, BufferedReaderのいずれかを使うのではないでしょうか。これらはJavaヒープ上にデータを蓄積*1し、I/Oの回数を削減する機能を担うもの…
※この記事の内容は古いです。実用されるならこちらの記事も参照ください。 アプリケーションのパフォーマンス向上にキャッシュが有効なケースがあります。 memcachedをはじめとした分散型キャッシュのAPIやJava標準(候補)のJCacheを利用しても良いのですが…
ここ数カ月、並行処理およびその実装方法について地道に調べていました。具体的な内容としては、java.util.concurrentパッケージの使い方やデザインパターンの理解、サンプルプログラムの作成と性能テストです。 こうした自主学習の総まとめ*1として、オライ…
先週はマネジメントの5章まで読みました。この本を紐解く動機となった「専門家」に関する言及も出てくるようになり、それが「マネジャーとは異なる"手段"で組織に貢献する人材」であることを知りました。よくよく考えてみれば「専門家=professional」なわけ…
入社から2年が経ち"新人"から"中堅"へと変化することを求められているいま、仕事上の判断基準やコミュニケーションツールとして経済や経営、マネジメントを学ぶ必要性を感じています。特に古典的な経済の知識は経営者の言葉に出てくることが多く、頭にいれな…
社会人2年目となる2009年は、勤務スタイルを確立して成果を出せるようになる=安心して仕事を任せていただけるようになることを目標としていました。そしてそれはかなり達成できました*1。社会人としての土台をある程度確立し、課題を解決する能力がひと通り…