DEV Community

Cover image for Awesome J2ME: An Awesome List About Everything Related to J2ME
HstSethi
HstSethi

Posted on • Edited on • Originally published at hstsethi.vercel.app

Awesome J2ME: An Awesome List About Everything Related to J2ME

About Awesome J2ME

Introducing Awesome
J2ME
, an Awesome list that I
have been working on for more than a year. The goal of this project is
to create a comprehensive resource that will be helpful to the whole
community. Not only developers, video gamers, hobbyists but anyone who
is interested in J2ME.

I managed to collect a diverse set of resources, and submit a pull
request
that passed
all the checks in first try. But sadly, due to small community size,
most communities being hosted on proprietary platforms, lack of
resources, exams and abandonment of J2ME by Oracle, I was not able to
completely fulfill my goal.

So I would like to request you to help me in achieving this goal. Pull
requests are always welcome. If you can’t think of any good resource,
simply sharing and giving it a star on Github is more than enough.

Thank you.

History Of Awesome J2ME

I have been observing that this page is one of the most visited page of
my website. Yet it did not have any valuable content. So I have on
2025-04-03, decided to share the history behind it.

As I mention in my Short
Autobiography
,
which I will be referencing a lot, I have been exposed to J2ME devices
from the childhood. Starting from Symbian device at the age of 5, then a
downgrade to non-internet phone at age 7, and starting programming at
age of 12 by learning Java and so on.

But one thing which bothered me was there were not enough resources,
guides on it. At the age of 6, I had compiled a list of 15 resources
including related to J2ME in a notebook using Roman Numerals. I had used
them just for fun, and I had recently learned about them. While it was
lost, it would in future motivate to work me on Awesome J2ME. At the age
of 16, I started learning more about J2ME. After I had gained basic
knowledge of the ecosystem, I setup a 32 bit, airgapped Windows XP
machine in Qemu. Then I tried a lot of combinations of IDE, JDK and SDKs
in both XP and Linux, until I finally managed to at least run J2ME
programs using official CLDC SDK on XP.

After I finally managed to run it, I started writing a list to compile
the resources I have found. It was written in markdown with only purpose
of being shared around in forums, chatrooms. I did not expect that one
day I will be going to create Awesome J2ME that will reach this point.

After everything was done, I started reverse engineering some old J2ME
software, firmware to learn more about it. While none of my reverse
engineering projects were successful, I gained lot of knowledge and
added it to the list. The most I got was reverse engineering a video
game, that I used to play at age 5, to remove the dependence on internet
as the host server was down, but I could not get it to run afterwards,
as some of resources indeed required downloading. Though I was able to
extract the local ones.

Though I later stopped giving it much attention. Instead I started
reverse engineering DOS(FreeDOS, DOSBox, Win 98), Win 32, and some Mac
OS 9(using Sheepshaver) programs, and learning C++. I again started by
trying out various reverse engineering tools and making list of
debuggers which work for my use case. As I reviewed that list at time of
writing this article, which was deep hidden in debuggers tar ball, I
discovered that I had found some tools particularly useful, but they
were not very well known. So I sent contributed by getting two od pull
requests 1,
2, regarding the
open source ones to Awesome DOS merged.

As seen in the screenshot below, I managed to bypass the key
verification of MS Office 97 only by using Borland Turbo and Notepad in
Windows XP. The reason I was using Notepad because it did not support
adding comments in disassembly.

Screenshot of Windows XP in Qemu. The borland turbo is debugging MS<br>
OFFICE 97 and notepad has identified the address of key verification<br>
call

At the age of 17, I redeveloped interest in J2ME. I used my old scripts
and notes to setup a development enviorment again. This time, I managed
to setup with Netbeans. I was again surprised that there are still not
much resources there. So after lot of editing, removing ancedotes, I on
2023-07-13, I uploaded the list of on Github as "Awesome J2ME". Using a
different account than what I used inmy
Fanclub
,
I shared this list in a small J2ME community, of which invitation link I
had already added in the list beforehand. The admin apperciated it and
gave it a star as well.

The star count crossed 15, then I thought of improving the list so it
could be featured in the main Awesome repository. After understanding
all guidelines by heart, I at the age of 17.5, started working towards
it. I also shared it's link in "incubator", a dedicated ticket work in
progress lists could be shared. I was exauhsted at once, so on
2024-03-27 I opened an issue titled Awesomizing the list to comply with
Awesome guidelines seeking help of others, but nobody offered help.
I then finally completed all by myself on 2024-04-03. Then came another
requirement of reviewing atleast 2 other pull requests, I did three. On
2024-07-24, I created a pull request which passed all 33 checks in first
try, and recived 2 approvals within 48 hours something extremly rare.

While the list was not accepted into main repository and ghosted, I
did not give up.
As I knew it was common thing. I kept working on it,
promoting it on other communities.

At the time of analysis there were total 669(38 open, 631 closed) pull
requests for submission of a new list. The criteria whether a pull
request for submission of list is determined by presence of codeword
"unicorn", which is required to be included in a sperate comment. The
guidelines read “To verify that you've read all the guidelines, please
comment on your pull request with just the word unicorn.” Query
Archive
.

At least 364(23 + 341) of them did not pass all the checks in the
first run. This data was obtained by searching the pull requests which
contain the maintainer as one of the commentor and his standard
maintainer's comment "guidelines closely enough" query
archive

So even with the most conservative estimates, the "rate is 54%.* This
excludes the pull requests where maintainer didn't post a comment.

At the age of 18, I kept improving the list. Added lot of scientific
papers. Wrote this article, shared it in other communities and accepted
some contributions from others. It also got featured in multiple sources
including
Hackclub,
Awesome Java(45K+
stars).
Hackclub had
organically found my project and featured it.

At the age of almost 19, I wrote this update. The star count has reached
to 90 as well. Thank to whoever who gave it a star.

On 2025-04-10, I released Awesome
Symbian
. While J2ME can be
used to create software for Symbian as well
source, but I
feel like it deserves it own Awesome list focused on it's own native
C++/QT environment. My motivations for creating it are same as of
Awesome J2ME. More information can be found on the project page.

Written on: 2024-08-30. Last Updated on: 2025-04-17.

Top comments (0)