Jorma Ikonen

Ranch Hand
+ Follow
since Sep 17, 2001
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Jorma Ikonen

It's pretty funny that after 5 years break since my last visit here, I found someone reading/asking questions about this issue.

Anyway, I must say that I can't help you due the fact that my knowledge about making programs for MIDP is based on situation in 2003. I'm been doing mechanics for mobile phones and been waiting until phones will implement J2SE. (The reason why I'm visiting here is that I'm trying to get some information about use of GPS in MIDP.)

Let's hope that someone else could help you.
10 years ago
Hi,
Do you know any (freeware) DHCP + DNS softwares from known trusted site?
Br,
Jorma
15 years ago
Emulator is an exe-file and it could be possible to copy on CD, but I'm not sure is it legal. Also, I don't know what orher files emulator requires to have on cd, but at least ".jad", ".jar", and some type of shortcut must/should be copied/created.
-Jorma-
15 years ago
Hi,
This is not so difficult as you may think.
I do assume that you have tested midlet what works well in your emulator, right? The next thing to do is to create wml-file (e.g. my_midlet.wml) to put on web-server:

The third thing is to open "my_midlet.jad"-file and update the "MIDlet-Jar-URL"-property:
MIDlet-1: Midlet,,my_midlet
MIDlet-Jar-Size: 40366
MIDlet-Jar-URL: http://www.myserver.com/my_midlet.jar
MIDlet-Name: Midlet
MIDlet-Vendor: Cool Midlet Corporation Ltd. / Your Name
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Next put all these three files (wml, jad, jar) on web-server and try to download it by phone's web-browser; - just type the address and open the "Download Midlet"-link there. Everything after that happens automatically and typically application will be installed on phone's desk or to "Application"-menu.
It's important to notice that "mime-type"-settings for "jad" and "jar" files are configured correctly on web-server. Needed mime-types are:
".jad" text/vnd.sun.j2me.app-descriptor
".jar" application/java-archive
Above settings can be tested by Rex Swain's Great HTTP Viewer
Hope this helps and I didn't forgot anything...
br,
Jorma
15 years ago
That's true, but just wondering why there is no real java-processors available even I heard/read many years ago that some companies are going to develop these. Also, I can't belive that making of Java-controllers is not possible within 20-30USD if phone industry makes hole phone to 100-150USD.
Maybe I have to use normal controllers and just save serialized Java UI-components on board that controller can send these e.g. via IR to phone. Unfortunatelly J2ME do not support serialization and therefore some tricks have to do on that side too....
Somehow I feel that role of Java is changed from platform independent programs to some sort of platform independent programing language. Learnt skils can be used anywhere, but programs not. This is not good at all; Java loses its most important benefit what separeated it from the other languages.
Maybe Java is dead - Does anyone has a good idea of new one!?!
Br,
Jorma
15 years ago
Hi,
... yes, I put our printer working and currently I do have 381 pages of Tini documentation to read. The board seems to be pretty cool, but the idea of/need to use TINIConvertor is minus if thinking/need to use Serialization. The serialization could be a cool way to send controller's UI for example to Mobile phone, but this issue can be of course avoided by sending the http-address of location of the contoller's UI Midlet to phone.
The other minus is that the price level of tini board is pretty high if thinking to add this to some consumer products. I think that 20-30 USD would be maximum price what consumer could pay easily.
BTW1, do I need to download JDK 1.2.2 to create software for TINI or is it possible to "flag" current JDK1.4 to create binary compatible code for TINI?
BTW2, do you know any cheap wlan cards for TINI...
-Jorma-
15 years ago
Hi,
How does it feel? Can you say any comments about it, and does it work as descriped in spec? Also I'm interested in what is the maximum size of java program what runs on the board and does the API support e.g Hashtables, StringBuffers, Vectors, floats, Math-package, Serialization?
-Jorma-
15 years ago
Hi,
Do you know any good Java microcontrollers? I'm searching controllers with some I/Os-, network-, Bluetooth-, irDa-, etc. capability. All comments (costs, usability, stability, etc) are highly appreciated.
Thanks in advance.
-Jorma-
15 years ago
RMS
You should BTW clarify this code for you by yourself, not anyone else. Anyway, I'm going to use RecordStores in my midlet next time and therefore I can share the information:

public static void checkInitScore()
- this function tries to open RecordStore named as "topscore" and if it's not exist, calls the function of "public static void initScore()"
public static void initScore()
- Creates a new RecordStore named as "topscore" and adds 5 equal records into it.
- data in those each default records are: "boogs 0 ".
public static void resetScore()
- Deletes "topscore" store and calls initScore() to create a new one.
private void saveScore(String name, int score)
- opens a "topscore" and adds a new score to location as it's numerical order presents.
- I'm not sure does the code work, looks awful.
public static void clearBuf()
- a stupid way to use StringBuffers. Also this part of code have been generated due the lack of programming skils (read: unnecessary).
public static byte[] stringToBufferToBytes(String name, int score)
- looks awful. Uses a global variable named as "recBuf" even it could be declared in the function also. Benefit of this would be that use/having of "clearBuf()"-function is not needed.
- Anyway, it generates/returns a string form arguments "name, score" like: "Joe 548 ".

-Jorma-
15 years ago
Yes, I already met the problem. Then I met new problems with the Marvin's obfuscator, but next trial with Retroguard worked ok. So, currently my midlet works very reliable each time when GPRS connection do not crash down...
-Jorma-
15 years ago
Thanks about your words , but still the decision was very stupid. Used namespace can't be security risk if the working principle of class loader of the JVM follows original spec:
1. first JVM searches required classes from own (system) packages.
2. If not found then JVM searches it from user package.
So, my common question is that how extended system classes can be a security risk? Does the VM really use package/class namespace as a part of permission policy?!? I thought that this issue was handled by certifications/signatures, but obviously JVM includes some non-public secrets...
Br,
Jorma
15 years ago
This is going to be a big mistake. Security can't base on naming policy and in a long run this decission will cause more problems as it solves:
- use of obfuscator in final product is always must to be sure about portability.
- reusability of obfuscated classes is history.
- programmers have to store obfuscated and non-obfuscated packages.
- portability between J2SE <-> J2ME goes harder and harder in future.
- phones might get own JIT obfuscators.
- etc.
This was a brilliant decission - Let's obfuscate everything!!!
-Jorma-
15 years ago
Hi,
Use of obfuscator is a one way to solve the found problem (thanks about the tip, Michael!), but in practise someone else should be forced to correct their implementation of JVM... The specification is pretty clear and it says that user classes are not allowed to overwrite existing system classes, but my app is not doing that; It's extending system classes and what therefore should be allowed to do.
I thought that Java is platform independent programming language, but obviously this is a big joke. Of course, I have to obfuse/modify my code, but it's just not a right action. The right action would be to require the company correct their JVM to follow official spec. BTW, does Sun allow other companies to follow Gates way to add own "features" to JVM?
Yes, I'm angry about the situation, because this really do not make good for Java. I like Java, but "write once, debug everywhere" can't continue long time anymore. Current credibility is going below zero.
-Jorma-
15 years ago
Hi,
Does anyone has ideas about the reason of above error on 7210 Nokia Emulator or real 7210 phone? My midlet (MIDP-1.0, CLDC-1.0) works fine in Sun's WTK104 emulator & 6650 phone and compiler or preverify-tool did not found any errors of it. Each used classes have been recompiled from the source by using bootclasspath-option.
Here are some "properties" of my midlet:
- uses BC's crypto-package (inc. java.security.SecureRandom)
- HttpConnection used.
- Hashtable, Vector, StringBuffers used.
- Jscience MathFP-package used.
- Threads used.
- Canvas, Form, ChoiceGroup, TextField used.
- Command, String, byte, boolean, etc. normal stuff used.
My guess is the "java.security.SecureRandom"-class, but can't be sure about that without modifying the code. Last time my problem was solved/replied during "extended lunch" and now weekend is coming...
Have a nice weekend!
br,
Jorma
15 years ago