frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: PaySentry – Open-source control plane for AI agent payments

https://github.com/mkmkkkkk/paysentry
1•mkyang•55s ago•0 comments

Show HN: Moli P2P – An ephemeral, serverless image gallery (Rust and WebRTC)

https://moli-green.is/
1•ShinyaKoyano•10m ago•0 comments

The Crumbling Workflow Moat: Aggregation Theory's Final Chapter

https://twitter.com/nicbstme/status/2019149771706102022
1•SubiculumCode•14m ago•0 comments

Pax Historia – User and AI powered gaming platform

https://www.ycombinator.com/launches/PMu-pax-historia-user-ai-powered-gaming-platform
2•Osiris30•15m ago•0 comments

Show HN: I built a RAG engine to search Singaporean laws

https://github.com/adityaprasad-sudo/Explore-Singapore
1•ambitious_potat•21m ago•0 comments

Scams, Fraud, and Fake Apps: How to Protect Your Money in a Mobile-First Economy

https://blog.afrowallet.co/en_GB/tiers-app/scams-fraud-and-fake-apps-in-africa
1•jonatask•21m ago•0 comments

Porting Doom to My WebAssembly VM

https://irreducible.io/blog/porting-doom-to-wasm/
1•irreducible•22m ago•0 comments

Cognitive Style and Visual Attention in Multimodal Museum Exhibitions

https://www.mdpi.com/2075-5309/15/16/2968
1•rbanffy•23m ago•0 comments

Full-Blown Cross-Assembler in a Bash Script

https://hackaday.com/2026/02/06/full-blown-cross-assembler-in-a-bash-script/
1•grajmanu•28m ago•0 comments

Logic Puzzles: Why the Liar Is the Helpful One

https://blog.szczepan.org/blog/knights-and-knaves/
1•wasabi991011•40m ago•0 comments

Optical Combs Help Radio Telescopes Work Together

https://hackaday.com/2026/02/03/optical-combs-help-radio-telescopes-work-together/
2•toomuchtodo•45m ago•1 comments

Show HN: Myanon – fast, deterministic MySQL dump anonymizer

https://github.com/ppomes/myanon
1•pierrepomes•51m ago•0 comments

The Tao of Programming

http://www.canonical.org/~kragen/tao-of-programming.html
1•alexjplant•52m ago•0 comments

Forcing Rust: How Big Tech Lobbied the Government into a Language Mandate

https://medium.com/@ognian.milanov/forcing-rust-how-big-tech-lobbied-the-government-into-a-langua...
2•akagusu•52m ago•0 comments

PanelBench: We evaluated Cursor's Visual Editor on 89 test cases. 43 fail

https://www.tryinspector.com/blog/code-first-design-tools
2•quentinrl•54m ago•2 comments

Can You Draw Every Flag in PowerPoint? (Part 2) [video]

https://www.youtube.com/watch?v=BztF7MODsKI
1•fgclue•1h ago•0 comments

Show HN: MCP-baepsae – MCP server for iOS Simulator automation

https://github.com/oozoofrog/mcp-baepsae
1•oozoofrog•1h ago•0 comments

Make Trust Irrelevant: A Gamer's Take on Agentic AI Safety

https://github.com/Deso-PK/make-trust-irrelevant
6•DesoPK•1h ago•3 comments

Show HN: Sem – Semantic diffs and patches for Git

https://ataraxy-labs.github.io/sem/
1•rs545837•1h ago•1 comments

Hello world does not compile

https://github.com/anthropics/claudes-c-compiler/issues/1
34•mfiguiere•1h ago•20 comments

Show HN: ZigZag – A Bubble Tea-Inspired TUI Framework for Zig

https://github.com/meszmate/zigzag
3•meszmate•1h ago•0 comments

Metaphor+Metonymy: "To love that well which thou must leave ere long"(Sonnet73)

https://www.huckgutman.com/blog-1/shakespeare-sonnet-73
1•gsf_emergency_6•1h ago•0 comments

Show HN: Django N+1 Queries Checker

https://github.com/richardhapb/django-check
1•richardhapb•1h ago•1 comments

Emacs-tramp-RPC: High-performance TRAMP back end using JSON-RPC instead of shell

https://github.com/ArthurHeymans/emacs-tramp-rpc
1•todsacerdoti•1h ago•0 comments

Protocol Validation with Affine MPST in Rust

https://hibanaworks.dev
1•o8vm•1h ago•1 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
5•gmays•1h ago•0 comments

Show HN: Zest – A hands-on simulator for Staff+ system design scenarios

https://staff-engineering-simulator-880284904082.us-west1.run.app/
1•chanip0114•1h ago•1 comments

Show HN: DeSync – Decentralized Economic Realm with Blockchain-Based Governance

https://github.com/MelzLabs/DeSync
1•0xUnavailable•1h ago•0 comments

Automatic Programming Returns

https://cyber-omelette.com/posts/the-abstraction-rises.html
1•benrules2•1h ago•1 comments

Why Are There Still So Many Jobs? The History and Future of Workplace Automation [pdf]

https://economics.mit.edu/sites/default/files/inline-files/Why%20Are%20there%20Still%20So%20Many%...
2•oidar•1h ago•0 comments
Open in hackernews

Show HN: Awesome J2ME

https://github.com/hstsethi/awesome-j2me
79•catstor•2mo ago
An awesome list about Java platform Micro edition(J2ME). Documentation, academic papers, tutorials, communities, IDEs, SDKs, emulators, apps, video games. J2ME is a Java specification designed for old keypad phones and PDAs. MIDP, which is built upon CLDC, is used to create Midlets, which have `.jad` or `.jar` extension, and run on platforms like old keypad phones, Symbian and PDAs. MIDP is supported till Java ME SDK 3.4.

Comments

mooreds•2mo ago
Wow, brings back memories!

I used j2me in the early 2000s to make a mobile app where people could find home data. My first startup experience. Learned a lot but didn't earn a lot.

Wrote a paper about MIDP here: https://www.mooreds.com/midp/midp.html . No idea if it is still relevant 20 years on.

catstor•2mo ago
I am glad it was helpful.

Thanks for the paper as well. It explains concepts very clearly with a real-life problem statement. Added it to Awesome J2ME.

foofoo12•2mo ago
Brings back memories but I can't say they are good. It was so limited that it was mostly frustration.
jeffbee•2mo ago
How limited could it have been? They were able to ship Google Maps Mobile with it.
loloquwowndueo•2mo ago
The Egyptians were able to build pyramids with fairly limited technology. It doesn’t mean the technology was not limited, just means it took a ton of effort. Same thing with your Google Maps example.
tauntz•2mo ago
How limited? We packed booleans inside integers instead of allocating separate booleans :P
jeffbee•2mo ago
That's just good old fashioned hacking. Wasn't this more a reflection of the various platforms' limited memory resources, and not really anything to do with J2ME?
sebazzz•2mo ago
J2ME had much more trouble. Basically on every OS and variations of those for different phones your app could behave differently or not run at all.
toast0•2mo ago
IIRC FileInputStream objects in J2ME can only seek (skip) forward. If you might need data from before your current position, you can either reopen the file, or cache the data as you go (if you have the ram). Reverse seek wasn't added until Java 1.4, and J2ME is based on Java 1.3
invalidname•2mo ago
No LWUIT?
ptx•2mo ago
LWUIT wasn't particularly awesome, in my opinion. It was enormous and hideous and couldn't integrate with the native cut-and-paste functionality offered by some phones.
invalidname•2mo ago
Well... 64kb isn't exactly enormous for the type of functionality it offered. It did support copy and paste you just had to enter editing mode. The underlying APIs didn't offer access to copy and paste directly.

Having said that, it doesn't really matter if you didn't like it. It was a pretty big part of the J2ME ecosystem at the time and it's a huge omission.

catstor•2mo ago
Thanks for pointing out the omission. I have added it. It certainly deserves it place there.
yanslookup•2mo ago
The first thing I ever wrote that other people used was a j2me app freshman year in college. It was a power hour app that played a random simpsons .wav every minute.

I was a pretty poor CS student, in hindsight I'm surprised I got it to work.

embedding-shape•2mo ago
One of the very first "hacks" I did was finding instructions via a random WAP website on how to patch a J2ME game for some early phone that could run .jar games, in order to effectively crack it.
zahlman•2mo ago
> a power hour app

Pardon?

yanslookup•2mo ago
Alcohol abuse marketed as a social drinking game.
zerr•2mo ago
Would interesting to hear about J2ME gold rush. Any success (or fail) stories?
fidotron•2mo ago
It was really a euro thing. Think the whole Jamba/Jamster ecosystem (Crazy Frog) and the explosion that occurred with premium SMS and ringtones.

It was all about selling into carriers associated with that, and that was a recipe for pain. I don't believe anyone made a killing in J2ME directly (Gameloft gave the impression of making most money, not entirely undeservedly), and many absolutely struggled, but it did provide the crucible for a lot of what came later.

One of the more curious incidents that stayed with me related to the game "Fatal Force" which had a 64kb build that was incredibly tight. We were mystified to discover a Chinese pirate was distributing a Chinese build of the game, still within 64kb limits. He had decompiled it, reverse engineered it, added more compression so he could fit in localized assets, and released it. The last I heard on the subject there was an effort to pay him for it.

The other was when a game of a game show was advertised in Germany, during the game show, it would generate such a traffic spike that the servers selling the game got knocked out, leading to requiring outsourcing that function to a more scalable competitor, a lesson that was not forgotten for the next company.

baumschubser•2mo ago
Corecursive had an interesting episode with a good story. https://corecursive.com/mobile-ui-with-shai-almog/
fidotron•2mo ago
Wow this brings back a lot. I did J2ME at Macrospace/Glu, Masabi, Javaground and EA, and at one point near the end was simultaneously responsible for 128k jars of Tetris and 4GB apk + obb for Real Racing because that is how rapidly the field exploded. Absolute madness.

J2ME gets a lot of stick, but modern mobile has actually recreated almost all the same problems. The big one for apps was the out of the box UI components were awful and utterly inconsistent between manufacturers. Several of the above companies tackled this (think conceptually like Flutter), but the market wasn't ready largely because data plans were expensive.

For games though, honestly, J2ME was dreadful, but in non-obvious ways: the control interfaces were hopeless, and sound was basically a non starter. People would be willing to forgive a lot more had the controls and sound been decent. Then the graphics stuff was just inconsistent enough that too much time ended up focused on portability and not enough on if the game was actually as fun as it should be. A consequence of that is most of the best J2ME games were ports from other systems or shameless reskins of other things.

But there is something to be said about taking a tube/metro/bus and seeing people playing stuff you did and enjoying it, especially given back then it was impossible to know who the players really were since things were sold through the carriers.

stuff4ben•2mo ago
Startup I used to work at fueled Cingular's mobile storefront and distributed those J2ME games along with ringtones and graphics. Those were the days...
mooreds•2mo ago
> data plans were expensive

Hard to overstate how expensive data was! This was also before widespread wifi.

If you want a look at the way the world worked in 2005, check this out: https://www.consumer-action.org/news/articles/2005_interstat...

Topics included:

- calling cards

- voip

- collect calls!

- international rates

easyThrowaway•2mo ago
And yet there were still some amazing games that today would be considered on the same league of the "impossible ports" for the Nintendo Switch.
fidotron•2mo ago
Do you have any examples of which games you are referring to?
froh42•2mo ago
What is the next thing coming up? "Awesome WAP"?
catstor•2mo ago
> What is the next thing coming up

Awesome Symbian!

https://github.com/hstsethi/awesome-symbian

While WAP was pretty good too, but I doubt there are enough resources on it to create a seperate list. Same goes for Blackberry, Palm OS and others.

anthk•2mo ago
Gemini (the protocol, no the Google hype) it's close to these contraints, and partially the old Gopher. There's even a Gopher client for J2ME, Pocket Gopher, patched at gopher://hoi.st
devsda•2mo ago
Ah, the good old days of browsing wap sites to download "apps". Installing some of them only to find that my budget phone doesn't support the j2me profile required to run them.

The java ecosystem of those days had similar terms like the servlet (still surviving), applet & midlet. Is there a significance of the suffix "let" or somebody thought let's add "let" to everything.

kryptiskt•2mo ago
-let is a diminutive, signifying something small. Like in piglet or booklet.
devsda•2mo ago
Oh, TIL! Thank you.
Pet_Ant•2mo ago
https://en.wiktionary.org/wiki/-let

> From Middle English -let, -elet, from Old French -elet, a double diminutive from Old French -el + -et.

tacker2000•2mo ago
I remember creating a J2ME game back at uni, where the theme was to pour a beer exactly right.

Tested of course on the latest SonyEricsson of the time!

Maybe i can dig that out again and run it somewhere.

captn3m0•2mo ago
Root Bear is a modern take for the playdate on that genre: https://alexsussy.itch.io/root-bear
Raed667•2mo ago
Blast from the past ! I remember building my last J2ME project ~2012 and struggling to find a Nokia phone to test it
flykespice•2mo ago
BTW there is J2ME Loader, a free j2me emulator for android devices available through PlayStore, it plays very nice (you can customize your keys too).

One I noticed is j2me games often don't play music on the background and just resorts to sporadic sounds, any reason for that?

k4rnaj1k•2mo ago
Still remember installing those j2me games on my classmate's phones. It was a bit hard to figure out and find the right resolutions versions for each phones.
mghackerlady•2mo ago
Someone should make a 4G LTE/5G dumb phone capable of running J2ME. I'd buy it, my dumb phone doesn't even have snake on it lol
andrepd•2mo ago
Well, you can buy something like a Qin F21 and install this on it! https://f-droid.org/app/ru.playsoftware.j2meloader
anthk•2mo ago
You can run it under Android, there's a J2ME emulator at https://f-droid.org. Being both platforms Java-like makes emulation much easier as you will find thousand of competent enough people and OFC it woudn't surprise me if Google made tons of similar functions to J2ME ones at Android in order to ease the transition from former developers.
Randomno•2mo ago
One of the difficulties I had searching for J2ME resources is that the mobile equivalent of the JVM is called KVM (K virtual machine), so most of the search results are about Linux's Kernel-based virtual machine instead.
kitd•2mo ago
Memories! I built a race timing app in J2ME. A useful exercise in designing a good UX within a constrained environment. Nowadays we just throw browser bloat around without a care.
tauntz•2mo ago
Ha, nostalgic! Was part of a small 3 person team that built the Skype app for J2ME back in the day. Fun times.. :)
andrepd•2mo ago
Have very fond memories of playing J2ME games. Here's some off the top of my head: Zombie Infection (what a great game!), Galaxy on Fire, Sims, Age of Empires, Real Football, Orcs&Elves, Pokémon Crystal on an emulator...

And of course a limited port of Worms Armageddon that has to be one of the games I sunk the most time on, seeing as I played several matches a day with my friends for an entire school year! Ahh I even scribbled a "campaign mode" on my math notebook during class instead of paying attention!

indigo945•2mo ago
MeBoy brings back some memories. I used it to catch so many Pokémon in middle school.

What's really cool about that emulator is the way its sound emulation works. Instead of emulating the Gameboy's synthesizer synchronously and outputting a PCM waveform to a buffer, which is probably impossible on J2ME due to hardware and platform constraints, it uses the phone's own MIDI (or square wave) synthesizer to play whatever the GameBoy synthesizer should be playing. This gives the video game music a very idiosyncratic sound when played back in MeBoy.

anthk•2mo ago
I used to run MeBoy under Sony w200 phone. With some frameskip Zelda for the GB was somehow playable. Pokémon ran well enough OFC.
micheljansen•2mo ago
Thanks for making me feel old! One of my first real jobs involved MIDP/J2ME development. I cannot say I loved the platform, but it somehow felt more magical back then to develop something and run it on a Nokia brick than (mobile) development of today.
zahlman•2mo ago
I did J2ME development in the 64KB JAR era.

I can still remember setting up palette swapping (inspired by retro consoles, but still a common contemporary idea e.g. on GBA) by loading the byte data of PNG resources into an array and locating and replacing the PLTE chunk before handing it off to the MIDP image loader. Always wondered if anyone else had picked up the trick. I can also remember people suggesting on Nokia in particular to just store raw bitmaps (since they'd be compressed in the JAR anyway) with their API and that this was saving tons of space for some people... later I found out that one of these reports came from someone who had started out with individual image files for 12x12 tiles that had a full 256-entry PLTE (i.e., more colour entries than pixels).

I also remember a device-specific bug where doing something like `x[y+1]`, where `y` was a static byte set to -1, would produce an `IndexOutOfBoundsError` claiming the index used was -256. I assume this was some threading issue in the Java implementation, where the value would be loaded into a register and then the sign-extension would somehow affect the register after the increment. I only ever reproduced it with static class members, I think (but it did also happen with shorts).

d9k•2mo ago
Mr. zahlman, can you please share the source code of "palette swapping by loading the byte data of PNG resources into an array and replacing the PLTE chunk before handing it to the MIDP image loader"?
zahlman•2mo ago
It's been about 20 years and I don't know if I could even find it, nor have the legal right to disclose it. Regardless, this sort of thing is pretty trivial to figure out if you're already familiar with MIDP (and have access to the documentation) and understand the PNG specification (https://www.libpng.org/pub/png/spec/1.2/PNG-Contents.html). The hard part is having the idea in the first place.
lormayna•2mo ago
One of my university projects was an encrypted message system via Bluetooth using J2ME. Never worked, but I learnt a lot of things :)
juancn•2mo ago
Gosh! The memories! No floating point!

It was fun to build small apps and felt like magic at the time.

anthk•2mo ago
gopher://hoi.st has Pocket Gopher, a J2ME gopher client.

Also, you can head to gopher://magical.fish, gopher://hngopher.com and gopher://sdf.org to get 'modern' services and news.

catstor•2mo ago
Thanks. I have added the Github repo of it on Awesome J2ME, as Gopher links are not allowed by linter.
8mobile•2mo ago
Wow, what a project! I've spent a lot of time on j2me developing various utilities. Those were the good old days when you could try everything on your basic Nokia or Symbian. Here are my applications: https://www.8mobile.org/products/j2me/moneymanager/ https://www.8mobile.org/products/j2me/moneymanager2/ https://www.8mobile.org/products/j2me/rssmanager/ https://www.8mobile.org/products/j2me/spymanager/

Thanks Otto