Thursday, September 20, 2007
There are some things that are not so nice. I tried to glue the iLabs XMPP interface to Polish to produce a Jabber/Google Talk chat client. Functionally this worked like a charm, but I discovered that it is impossible to create tabbed forms dynamically. I wanted to make a new tab for each chat session I opened, but nooo, that's not possible: You have to decide in advance how many tabs your application needs, allocate them up front, and keep them for as long as you run your application. To be blunt: This sucks.
Monday, September 17, 2007
Wednesday, September 12, 2007
Monday, September 3, 2007
Nice. I then try to compile, and the paths are all F**** UP. They seem correct enough (and as I said, the NetBeans editor is capable of using them), but none of my libraries are actually located by the compiler.
On days like this the thought of spending the rest of my days as a monk somewhere in the Himalayas seems quite attractive.
Now, when solving this problem a natural place to start is to read the fine manual :-) On page
45 in the complete guide to j2mepolish it says:
J2ME Polish normally calls the Java
compiler normally with the appropriate
classpath as well as bootclasspath for
the current target device.
Well, don't believe it. It's just not true. You can add libraries and projects to the buildpath generated by NetBeans, it simply won't be used. What you have to do is to look at page 182, where the real story is told on "How to Integrate a Binary Third Party API":
Turns out what you have to do is to stick the files in an "import" directory in the project's top level directory and then put a reference to that into the "build" construct in the antfile . I won't tell you how many hours it took to figure this one out, it's just too depressing.
When a third party API is only available in binary form, they can
be integrated with the “binaryLibraries” attribute of the
in the “build.xml” file. This attribute can point to jar or zipfiles
or to a directory containing third party libraries (either jarfiles,
zipfiles or classfiles). Several libraries can be separated by
colons ':' or semicolons ';'. When the libraries are situated
in the “import” folder, only the name of the libraries need to
be given (instead of specifying the full path).
Friday, August 31, 2007
In contrast, playing an instrument (I play several) feels quite different from writing code. When playing the level of concentration is so high, and the result lacks the same kind of permanence that code or a painting does, so the feeling of accomplishment when getting a passage right on the instrument is different from the feeling one gets when getting a data structure right, the latter being quite similar to the good feeling one gets when painting a nipple that looks quite realistic (when squinting, in a dark room :-).
It´s not exactly the biggest of revelations, but it felt rather powerful when it struck me yesterday ;)
Thursday, August 30, 2007
- Follow instructions on page 21 in "The Complete Guide to J2ME Polish"
- Install Nokia series 60 emulator (if you like, Sun WDK 2.5.1. is perhaps even better).
- Click on properties, use defaults wherever possible (except as described below)
- If NetBeans gripes about being unable to find libraries, add all polish-supplied jar (enough*.jar) files to property jars (this is probably overkill, but just adding the enough-j2mepolish-client.jar file wasn't enough)
- Selecting "Generic/Midp2Cldc11" as configuration will trigger use of the Sun WDK 2.5.1. emulator, which is nice, and usually works pretty well.
Then I was able to run & debug apps. We'll see what comes out of it ;))
I'll log some of the things I do, some of what works and some of what doesn't. I'll mix both work and private projects. In most work settings this kind of mix wouldn't be a good idea but since just about all the coding work I do professionally is done on open source projects, I think it's ok :-)
I work as a research scientist at Telenor's Research & Innovation, in the iLabs (innovation labs) project . Our most important project is probably the ilabs mobile toolbox. Another project I've been working on is the "RestRoom" storage server (it stores files, and it uses a REST protocol :-) The RestRoom server is used by the facebook and blogger clients in the mobile toobox project.