Java
はまりポイント、第三回。実はこれまで使っていたのは、com.sun.jnaパッケージだったのだが、maven centralで惹いてくると、jna-3.0.9しかなかったため、これを利用していた。しかし、ネットのドキュメントのバージョンは、3.2.7とか。実際は、https://githu…
さらに2時間ほどはまった。。。第一回は以下から。 JNAではまる。Javaからepollを使いたい。 - StoryEdit 開発日誌さて、やりたいことはepollをJNAから使うってことだが、いかんせん、JNA初心者には学ぶことがおおい。そもそもバインドしたい構造体をみてみ…
2時間ほどはまった。時間返せ。JNAとは、Java Native Accessのことである。ネイティブなライブラリ関数をJavaから呼び出すための仕組みで、libffiを使って実装されている。@ITページのサンプルに、以下のような構造体のバインドが載っている。 http://www.a…
Java はじめてもうすぐ一年。仕事で使い始めて半年。徐々に慣れてきた。そろそろまじめに、Effective Java 2nd Editionを読む気になって読み進めているのが、想像以上に面白い。2、3、6章を読み終えた。Javaの深いところ、とはいわないが、言語的にこう書…
あるjarに、どんなクラスが入っているか見つけたい時はないだろうか?C言語であれば、soやdllに入っているシンボルを見つけるのと同じ機能がjavaにもほしい。 $ jar -tf servlet-api.jar META-INF/ META-INF/MANIFEST.MF javax/ javax/servlet/ javax/servle…
なぜこうもエントリが少ないのか不明だが、Apache Tomcat 6を起動するまでの流れメモ。バイナリディストリビューションに含まれる、RUNNING.txtに起動手順が書いてあるが、これがサクっとウェブに上がってないのは、なぜだろうか。Javaはネットではラフに取…
久々にはまった。workaroundはかけたが、意味がわかってないのでメモ。以下のような、ファイルのパスをURLで受け付けるコードがあった。 private final static String DEFAULT_CONFIGURATION = "config.yaml"; private URL getConfigURL() throws Configurat…
ランダムにJavaでも。 List<String> strings = new ArrayList<String>(); なんて書くのはだるい。そこで、Guava.jarを参照させて、使うと、あら簡単。 List<String> strings = Lists.newArrayList(); Genericsの二度書きを防いで、可読性をあげます。Javaにもこういう遊び心がある文</string></string></string>…
これが、先日ふれたサーバに使われているベンチ。 たしかに、apacheのテストではいまいちだったので、こっちで性能図ってみる。http://www.iij.ad.jp/company/development/tech/activities/weighttp/
Integer.parseIntは、プリミティブ。Integer.valueOfは、インスタンスをそれぞれ返す。
4月から仕事はじまりまして。まったくコードかけなかった。笑いろいろ投げ捨てて、とりあえず、javaの並列を知りたいと言う事で、 web serverを書くことに。現在のウェブサーバの潮流は二つあるらしい。一つは、マルチスレッドで受付を待つもの。そして、も…
State Transition example from welovy on Vimeo.動画とってみました。QuickTimeの画面録画って音はとれないのですね。まぁまだ著作権うんぬんがあやしいので、音はなくてヨシとしましょう。今回はSlick2の画面遷移について。StateBasedGame.enterState(int …
描画にベクトル計算を使おうとおもって、Vectorで調べていたら、java.util.Vectorを発見。しかし、Vectorは「オブジェクトを格納できる配列」だったわけで、ベクトル計算をするためのものではなかった。(結局、javax.vecmath.Vector2dを使ってる)しかし、…
StateBasedで作成してみた。まだStateTransitionを使ってないのでなんともいえないが、 シンプルにいえば以下のような感じで作る。(チュートリアルより噛み砕く) StateBasedGameをextendしたメインクラス public class Ruie extends StateBasedGame { publ…
マップ移動画面ができたので、タイトルスプラッシュでもいれるか、と思い、シーンの管理クラスを作ってた。ここで、ふと、ゲームのライブラリなら、シーンマネージャーくらいありそうだな、と思い、Javadocをながめていると、おぉ、やっぱりあった♪GameState…
Musicクラスを使ってみよう。というわけで、 Music m = new Music("music/hoge.ogg"); m.loop(); なんと。楽勝。とおもってたら、以下のエラー。 Mon Jan 21 19:46:19 JST 2013 INFO:Initialising sounds.. Mon Jan 21 19:46:19 JST 2013 INFO:- Sound works…
ここのチュートリアルがだいたいベーシックを網羅している。http://thejavablog.wordpress.com/2008/06/08/using-slick-2d-to-write-a-game/フリーの素材を適当に拾ってきて、いまこんな感じになってます。主人公は動かせます。まずはカメラのパンが必要。Sl…
前回、loadCharacterSetsをつくったが、これが漢字に対して動作しない。。。 やはり、”亞”から”腕”までをロードするしかないのか。追記: http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/cjku_klist.htmlここを参考にすると,0x4e00 ~ 0x9fc0とあるので…
前回書いたTrueTypeFontはDeprecatedなので使用は推奨されない。UnicodeFontで使いたい。 UnicodeFontは,TrueTypeFontみたく追加できるのが256なんて制限はなく,範囲指定が可能なようだ.Unicodeは,アスキーのような256に収まらないため,UCS4などは4バ…
なんかTrueTypeFontで扱える文字が256個ってのが納得いかないので、slickを調査。とりあえず,TrueTypeFontのコンストラクタを覗く。 public TrueTypeFont(java.awt.Font font, boolean antiAlias, char[] additionalChars) { GLUtils.checkGLContext(); …
slick2dを使ってみて、いきなり壁にぶちあたる。日本語がdrawできない。笑いろいろ調べていくと,UnicodeFontというクラスからフォントを読み込むらしい。しかし,これを作っても,日本語は描画されなかった。(すくなくとも今の知識ではだめだった)そこで…
セットアップ Javaに慣れてきたきがするので、そろそろゲームでも作ってみるか。ということに。さーっと調べてみたところ,slick2dがいいらしい。 slick2d: http://www.slick2d.org/というわけで、いろいろインストール。しかし動かない。LWJGLがいるらしい…
こんなのみつけた。 Map m = new HashMap() {{ put(key, value); put(key, value); ... }}; なんていうのかわからないけど、マップリテラルはないからこう書くしかないみたい。一応within的な動作をしてる。
触り始めって、もはや当然みたいなことを知らないことが多いですね。なんとも変な呼ばれ方をしている。拡張for。一週間以上たってはじめて知りました。笑 これまでforeachというキーワードを打って,Eclipseでハイライトされなかったから、iteratorを取得し…
JLine,API docしかない.簡単なサンプルがない. JLineで検索したら,ScalaとかGroovyとかのエントリしかヒットしなかったので,コード載せときます.一応jline2使いましたが,1.xでも無問題です. import jline.console.*; main { ConsoleReader cr = new …
Javaで練習用につくってるソフトウェアだが,libreadlineのようなインタフェースが欲しい. java-readlineというものをみつけたが,makeがとおらない.2003年に更新止まってるから,もはや必要とされていないのか?でも使用しているプロジェクトにJythonがあ…
ヌルポが嫌いなので、よく使うオブジェクトにはNullObjectを実装する。 class Hoge { /* fields */ private static HogeNul hogenul = new HogeNul(); public static Hoge getNull() { return hogenul; } public isNull() { this == hogenul ? true : false;…
assert文をいれていくのは習慣になっているので、Javaでもassertをいれてみたところ、 問題なく認識されているようだったので、とくに気にすることなく、ほいほい使ってみた。 そして、しばらくして気づいたのだが、これ、デバッグモードで起動していても、a…
クラスパスの指定だけ必要です。 cd $WORKSPACE/$myproject java -cp bin $classname でおk。Log4jを使っていたので、そのjarファイルだけ指定したかったんだけど、やりかたわからず、とりあえずlog4jをprintで置き換えて実行。なんでわざわざターミナルから…
依然として、コマンドラインのツールは小文字のみで構成されるものがほとんどだ。 これがJavaのCoding conventionと合致しない。 クラス名は大文字から始まるからだ。しかし、jythonのユーザインタフェースとなるプログラムは、クラス名が小文字ではじまる。…