StoryEdit 開発日誌

ウェブアプリ StoryEditを作ってましたが延期。普通のブログ。

Java

JNAではまる。その3。 jna3からjna4、Direct mappingへ移行する。

はまりポイント、第三回。実はこれまで使っていたのは、com.sun.jnaパッケージだったのだが、maven centralで惹いてくると、jna-3.0.9しかなかったため、これを利用していた。しかし、ネットのドキュメントのバージョンは、3.2.7とか。実際は、https://githu…

JNAではまる、その2。__attribute__((__packed__))のマッピングをする。

さらに2時間ほどはまった。。。第一回は以下から。 JNAではまる。Javaからepollを使いたい。 - StoryEdit 開発日誌さて、やりたいことはepollをJNAから使うってことだが、いかんせん、JNA初心者には学ぶことがおおい。そもそもバインドしたい構造体をみてみ…

JNAではまる。Javaからepollを使いたい。

2時間ほどはまった。時間返せ。JNAとは、Java Native Accessのことである。ネイティブなライブラリ関数をJavaから呼び出すための仕組みで、libffiを使って実装されている。@ITページのサンプルに、以下のような構造体のバインドが載っている。 http://www.a…

Effective Java 2nd Editionを読んでいる。

Java はじめてもうすぐ一年。仕事で使い始めて半年。徐々に慣れてきた。そろそろまじめに、Effective Java 2nd Editionを読む気になって読み進めているのが、想像以上に面白い。2、3、6章を読み終えた。Javaの深いところ、とはいわないが、言語的にこう書…

jarから、シンボルを見つける

あるjarに、どんなクラスが入っているか見つけたい時はないだろうか?C言語であれば、soやdllに入っているシンボルを見つけるのと同じ機能がjavaにもほしい。 $ jar -tf servlet-api.jar META-INF/ META-INF/MANIFEST.MF javax/ javax/servlet/ javax/servle…

Apache tomcatを起動する

なぜこうもエントリが少ないのか不明だが、Apache Tomcat 6を起動するまでの流れメモ。バイナリディストリビューションに含まれる、RUNNING.txtに起動手順が書いてあるが、これがサクっとウェブに上がってないのは、なぜだろうか。Javaはネットではラフに取…

邪バ

久々にはまった。workaroundはかけたが、意味がわかってないのでメモ。以下のような、ファイルのパスをURLで受け付けるコードがあった。 private final static String DEFAULT_CONFIGURATION = "config.yaml"; private URL getConfigURL() throws Configurat…

Google Guavaいい。

ランダムにJavaでも。 List<String> strings = new ArrayList<String>(); なんて書くのはだるい。そこで、Guava.jarを参照させて、使うと、あら簡単。 List<String> strings = Lists.newArrayList(); Genericsの二度書きを防いで、可読性をあげます。Javaにもこういう遊び心がある文</string></string></string>…

weighthttp

これが、先日ふれたサーバに使われているベンチ。 たしかに、apacheのテストではいまいちだったので、こっちで性能図ってみる。http://www.iij.ad.jp/company/development/tech/activities/weighttp/

parseIntとvalueOfの違い

Integer.parseIntは、プリミティブ。Integer.valueOfは、インスタンスをそれぞれ返す。

混沌としてきた。

4月から仕事はじまりまして。まったくコードかけなかった。笑いろいろ投げ捨てて、とりあえず、javaの並列を知りたいと言う事で、 web serverを書くことに。現在のウェブサーバの潮流は二つあるらしい。一つは、マルチスレッドで受付を待つもの。そして、も…

Slick2dでRPG風 Transition画面遷移

State Transition example from welovy on Vimeo.動画とってみました。QuickTimeの画面録画って音はとれないのですね。まぁまだ著作権うんぬんがあやしいので、音はなくてヨシとしましょう。今回はSlick2の画面遷移について。StateBasedGame.enterState(int …

VectorとArrayList

描画にベクトル計算を使おうとおもって、Vectorで調べていたら、java.util.Vectorを発見。しかし、Vectorは「オブジェクトを格納できる配列」だったわけで、ベクトル計算をするためのものではなかった。(結局、javax.vecmath.Vector2dを使ってる)しかし、…

Slick2DでRPG風 タイトルスプラッシュを作成

StateBasedで作成してみた。まだStateTransitionを使ってないのでなんともいえないが、 シンプルにいえば以下のような感じで作る。(チュートリアルより噛み砕く) StateBasedGameをextendしたメインクラス public class Ruie extends StateBasedGame { publ…

Slick2DでRPG風 GameStateを使う

マップ移動画面ができたので、タイトルスプラッシュでもいれるか、と思い、シーンの管理クラスを作ってた。ここで、ふと、ゲームのライブラリなら、シーンマネージャーくらいありそうだな、と思い、Javadocをながめていると、おぉ、やっぱりあった♪GameState…

Slick2dでogg再生 〜その1〜

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…

Slick2DでRPG風

ここのチュートリアルがだいたいベーシックを網羅している。http://thejavablog.wordpress.com/2008/06/08/using-slick-2d-to-write-a-game/フリーの素材を適当に拾ってきて、いまこんな感じになってます。主人公は動かせます。まずはカメラのパンが必要。Sl…

Slick2d, UnicodeFontで日本語表示 〜その2〜

前回、loadCharacterSetsをつくったが、これが漢字に対して動作しない。。。 やはり、”亞”から”腕”までをロードするしかないのか。追記: http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/cjku_klist.htmlここを参考にすると,0x4e00 ~ 0x9fc0とあるので…

Slick2d, UnicodeFontで日本語表示 〜その1〜

前回書いたTrueTypeFontはDeprecatedなので使用は推奨されない。UnicodeFontで使いたい。 UnicodeFontは,TrueTypeFontみたく追加できるのが256なんて制限はなく,範囲指定が可能なようだ.Unicodeは,アスキーのような256に収まらないため,UCS4などは4バ…

Slick2dの中身 TrueTypeFontクラスで日本語を扱う問題

なんかTrueTypeFontで扱える文字が256個ってのが納得いかないので、slickを調査。とりあえず,TrueTypeFontのコンストラクタを覗く。 public TrueTypeFont(java.awt.Font font, boolean antiAlias, char[] additionalChars) { GLUtils.checkGLContext(); …

slick2dで日本語フォント 〜苦戦〜

slick2dを使ってみて、いきなり壁にぶちあたる。日本語がdrawできない。笑いろいろ調べていくと,UnicodeFontというクラスからフォントを読み込むらしい。しかし,これを作っても,日本語は描画されなかった。(すくなくとも今の知識ではだめだった)そこで…

slick2dでHello world

セットアップ Javaに慣れてきたきがするので、そろそろゲームでも作ってみるか。ということに。さーっと調べてみたところ,slick2dがいいらしい。 slick2d: http://www.slick2d.org/というわけで、いろいろインストール。しかし動かない。LWJGLがいるらしい…

Mapの初期化

こんなのみつけた。 Map m = new HashMap() {{ put(key, value); put(key, value); ... }}; なんていうのかわからないけど、マップリテラルはないからこう書くしかないみたい。一応within的な動作をしてる。

無知なり。

触り始めって、もはや当然みたいなことを知らないことが多いですね。なんとも変な呼ばれ方をしている。拡張for。一週間以上たってはじめて知りました。笑 これまでforeachというキーワードを打って,Eclipseでハイライトされなかったから、iteratorを取得し…

JLineをJavaで使う

JLine,API docしかない.簡単なサンプルがない. JLineで検索したら,ScalaとかGroovyとかのエントリしかヒットしなかったので,コード載せときます.一応jline2使いましたが,1.xでも無問題です. import jline.console.*; main { ConsoleReader cr = new …

libreadlineのバインド -->JLine --> jline2

Javaで練習用につくってるソフトウェアだが,libreadlineのようなインタフェースが欲しい. java-readlineというものをみつけたが,makeがとおらない.2003年に更新止まってるから,もはや必要とされていないのか?でも使用しているプロジェクトにJythonがあ…

NullObjectパターン

ヌルポが嫌いなので、よく使うオブジェクトにはNullObjectを実装する。 class Hoge { /* fields */ private static HogeNul hogenul = new HogeNul(); public static Hoge getNull() { return hogenul; } public isNull() { this == hogenul ? true : false;…

Javaでassertを有効にする

assert文をいれていくのは習慣になっているので、Javaでもassertをいれてみたところ、 問題なく認識されているようだったので、とくに気にすることなく、ほいほい使ってみた。 そして、しばらくして気づいたのだが、これ、デバッグモードで起動していても、a…

Eclipseで開発中のものをターミナルから実行

クラスパスの指定だけ必要です。 cd $WORKSPACE/$myproject java -cp bin $classname でおk。Log4jを使っていたので、そのjarファイルだけ指定したかったんだけど、やりかたわからず、とりあえずlog4jをprintで置き換えて実行。なんでわざわざターミナルから…

jythonは小文字からはじまるクラス

依然として、コマンドラインのツールは小文字のみで構成されるものがほとんどだ。 これがJavaのCoding conventionと合致しない。 クラス名は大文字から始まるからだ。しかし、jythonのユーザインタフェースとなるプログラムは、クラス名が小文字ではじまる。…