Monday, July 20, 2026

JWebDBAdmin, 21 Years Later: I Finally Reinvented It

 


Some background

Back in 2010 I wrote about a project I'd already called "very outdated" — a little web-based SQL runner I built in 2005 because I was tired of juggling database clients for every engine my company touched. I said then: "there is no more development."

That was true for sixteen more years.

The old JWebDBAdmin never actually died, though. It kept quietly running in production the entire time. I still used it weekly. I just stopped touching the code — except for the occasional patch nobody wrote a blog post about, like swapping the login screen from a plain username/password form to Google sign-in, back when that became the sane thing to do instead of storing another password nobody would rotate.

This year I finally reinvented it. Not a patch this time — a full rewrite, from a blank editor, but built on top of two decades of "I should really fix that" notes I never had time to act on in 2005. Everything got a second chance to be done right.

Why bother, 21 years later?

Honestly — because I could finally build the version I wanted in 2005 but didn't have time for. And because AI coding assistants make "let me just rewrite this properly" a weekend project instead of a quarter.

I also gave myself one hard rule this time: zero dependencies. No Maven, no Spring, no npm, no CSS framework, no JS library. Just plain Java servlets and plain HTML/CSS/JS. Partly discipline, partly spite toward every project I've inherited that needed forty transitive dependencies to render a table.

What's actually new

  • SQL autocomplete that knows your schema. Not just keywords — it knows your tables, your columns, and resolves aliases. Type a. after ... FROM agents a and it lists agents' columns. Type Sele and hit tab, it hands you SELECT * FROM [table] WHERE with your cursor already in the right slot.
  • Edit results in place. Double-click a cell in a single-table SELECT with a primary key, change the value, hit Enter. No separate "edit mode."
  • Favorites your non-technical coworkers can actually use. Save a query with {{param}} placeholders and they render as input boxes. Nobody has to know what a WHERE clause is.
  • An AI assistant that's actually useful, not a gimmick. Point it at any OpenAI-compatible endpoint — including a local Ollama, so your schema and data never leave your network. It knows your table structure, your indexes, your current query. Ask it a question in plain English and read-only queries just run; anything that changes data comes back as a suggestion you review and send to the editor yourself. It never executes a write on its own. And when a query fails, it looks at the error and offers a fix without you having to ask.
  • A destructive-query guard that's actually enforced server-side — DELETE/DROP/TRUNCATE are off by default, and turning them on is a config change, not a UI toggle someone can click by accident.
  • Login through Google, no passwords at all. Nothing to store, nothing to leak, nothing for someone to reuse from another breach. You're pre-registered by email and that's the whole account system.
  • Dark mode that follows your OS, because I got tired of every "dark theme" secretly being navy blue.
  • Still a one-file drop-in deploy. Same database schema as always — your existing users, favorites, and history just work. If you're one of the three people who used the original: nothing to migrate.

Try it

Source, MIT licensed: github.com/peprasetya/jWebDBAdmin

First release, tagged and ready to drop into Tomcat: v20260720 release

The original 2005 project stays up on SourceForge as an archive — this is where it actually lives now.

If you've got a Tomcat instance lying around and five spare minutes, it's a two-file deploy: drop in the WAR, drop in a properties file. Would genuinely like to know if it's useful to anyone besides me — that's most of the point of putting it on GitHub this time instead of leaving it running quietly for another 21 years.


Monday, June 1, 2026

Introducing urlNeXT v2.0.0 – The Ultimate Sequence Navigator Upgraded to Manifest V3

It has been quite a while since I first built urlNeXT, but I recently decided to dust off this old project and give it a modern overhaul. Today, I am excited to announce the release of urlNeXT version 2.0.0!

If you frequently browse web galleries, documentation, forum threads, or multi-page search results, this extension was built to save you a ton of clicks.

Here is a breakdown of what’s new, how it works under the hood, and why this version is lighter and faster than ever.

What is urlNeXT?

At its core, urlNeXT is a universal sequential navigation utility. It helps you jump to the "next" or "previous" page automatically without needing to hunt down the page's native pagination links.

It works using a two-tier strategy:

  1. Smart DOM Detection: It scans the web page for native pagination anchors (like Google, Bing, or Yahoo search pages, Blogger pages, or standard rel="next" / rel="prev" tags).

  2. Intelligent URL Sequencing (Fallback): If the website doesn't have explicit next/prev links, urlNeXT parses the active URL string, finds numeric sequences (e.g., page=1, 001.jpg), and mathematically increments or decrements that number to transition you forward or backward.

What's New in Version 2.0.0?

1. Full Migration to Manifest V3 (MV3)

Google is phasing out older extension formats, so urlNeXT has been completely "rewritten from scratch" (a.k.a: writing prompt from scratch to Gemini to do the upgrade 😜) to adhere to modern Manifest V3 architecture. The extension now relies on a streamlined service worker structure that keeps background memory usage close to zero when you aren't actively navigating.

2. Lightweight & In-Memory Operation

urlNeXT is designed to have a near-zero footprint on your system resources. It doesn't bloat your browser or hog memory because it handles all logic dynamically. No data is ever written to your disk, and no persistent logs are kept. All active tab states are processed temporarily in-memory and completely vanish the moment you close the tab or your browser session.

3. Expanded Out-of-the-Box Pagination Support

The content scanning engine has been refined to instantly support major search providers and publishing layouts:

  • Google Search: Seamless tracking using Google's native pagination targets (pnnext/pnprev).

  • Bing & Yahoo Search: Direct support for native pagination classes and element layouts.

  • Blogger / Blogspot: Automatic extraction of older/newer post navigation paths.

  • Standard Web Standards: Universal parsing for explicit rel="next", rel="prev", and textual indicators (like Next > or « Prev).

How to Use urlNeXT

⌨️ Keyboard Navigation

If you prefer keeping your hands on the keyboard, you can navigate without touching your mouse using these global shortcuts:

  • Next Page: Alt + Shift + Ctrl + Right Arrow

  • Previous Page: Alt + Shift + Ctrl + Left Arrow

  • Force Re-Scan: Alt + Shift + Ctrl + O (forces a refresh scan of the current page's links)

🔬 Single-Click Action Overlay

Clicking the extension icon in your toolbar will immediately execute the default directional navigation. When a page transition triggers, a clean, high-contrast animated arrow overlay renders on screen, indicating exactly which direction you are flipping through the sequence.

🎛️ Tab-Bound Configuration

If a URL features multiple numeric sequences (for example, website.com/chapter-05/page-001.html), you can open the extension's Options Page to customize your experience.

The options window will display a visual split of your current URL. You can simply click on the specific number block you want to target (e.g., locking onto the page number instead of the chapter number) and configure whether the default click action moves you forward (+1) or backward (-1). Remember: these settings are non-persistent and uniquely bound to that specific tab session.

Privacy & Security Commitment

Because everything runs 100% locally within your browser code package, urlNeXT does not track, collect, or transmit a single byte of your browsing data. There are absolutely no third-party analytic trackers, no external network requests, and zero remote code payloads.

Check out the updated code, give it a spin on your favorite multi-page forums or image galleries, and let me know your thoughts or feedback in the comments below!

Privacy Policy for urlNeXT Chrome Extension

 This privacy policy governs your use of the urlNeXT extension for Google Chrome.

1. Information Collection and Use

urlNeXT does not collect, store, or transmit any personal data or browsing history. * Local Processing Only: The extension operates entirely within your local browser environment. It reads the URL and DOM elements of your active tab solely to calculate and execute sequential page transitions (e.g., moving to the next page number).

  • Temporary State: Any state tracking (such as identifying which part of a URL to change) is stored strictly in-memory within the browser background session and is cleared automatically when the extension or browser is closed.

2. Data Transmission and Third Parties

  • No Remote Servers: urlNeXT does not communicate with any external or remote servers.

  • No Third-Party Analytics: We do not use third-party tracking, analytics tools, or advertising networks. Your data never leaves your personal device.

3. Permissions Justification

Our extension utilizes specific browser permissions to function properly:

  • Tabs: Used exclusively to look at the current page URL to find sequential numbers and navigate your active tab forward or backward.

  • Host Permissions (All Sites): Required so that the sequence navigator utility can function on any paginated website or web forum you choose to use it on.

4. Changes to This Privacy Policy

We may update our Privacy Policy from time to time. Any changes will be posted directly on this page. Your continued use of the extension constitutes your agreement to the local processing model outlined above.

5. Contact

If you have any questions or feedback regarding this extension, feel free to drop a comment or contact the developer directly through this blog.

Monday, January 22, 2024

eProKar Privacy Policy

 (English Version is below)

Kebijakan Privasi eProKar

eProKar adalah sebuah ekstensi peramban (Browser Extension) yang ditujukan untuk mempermudah pemakaian aplikasi SAPA (Sistem Aplikasi Program Karya Pelayanan dan Anggaran) yang disiapkan Keuskupan Agung Jakarta.

Kebijakan privasi untuk eProKar menyatakan bagaimana dan kenapa, ada kemungkinan, kami mengumpulkan, menyimpan, dan/atau membagikan informasi yang ada, ketika ekstensi peramban digunakan.

Informasi Personal apa saja yang dikumpulkan? 

Kami tidak melakukan pengumpulan data. eProKar sepenuhnya berjalan pada peramban (browser) yang terpasang, seluruh data diproses pada saat peramban membuka halaman SAPA. eProKar dapat mengambil data dari server SAPA untuk diproses lebih lanjut hanya pada peramban terkait.

Apakah ada informasi yang dibagikan kepada pihak lain?

Tidak ada informasi yang dikumpulkan, dan tidak ada informasi yang dibagikan kepada pihak lain. Seluruh data yang diproses eProKar hanya diproses secara lokal dan tidak dikirim ke tempat lain.

Bagaimana pengamanan informasi yang ada?

eProKar berjalan dalam peramban (browser) dengan standar keamanan dari peramban. eProKar dibuat tanpa pengaturan izin untuk akses jaringan di luar web SAPA, sehingga eProKar tidak dapat mengakses server lain selain SAPA.

Apakah kebijakan privasi ini akan berubah?

Ya, kebijakan privasi ini akan berubah sesuai kebutuhan dan berdasarkan fitur yang ada dan yang akan ada Setiap kebijakan akan selalu pengikuti peraturan yang ada.

Bagaimana menghubungi kami terkait kebijakan privasi ini?

Jika ada pertanyaan, saran, dan masukan, silahkan menghubungi kami:



eProKar Privacy Policy

eProKar is a browser extension that made to ease usage of web application SAPA (Sistem Aplikasi Program Karya Pelayanan dan Anggaran) that prepared by Archdiocese of Jakarta.

This eProKar privacy policy, describes how and why we might collect, strore, use, and/or share your information when using this browser extension.

What personal information that we collect?

We do not collect any data. eProKar fully run on browser that installed with. All data are processed when the browser open pages of SAPA. eProKar may get more information from SAPA Server to be processed only in the browser.

What information that shared with third parties?

There is no information being collected nor shared with any parties. All data are processed locally and never sent to anywhere.

How do we keep your information safe?

eProKar run within the browser with the browser standard security. eProkar is made without permission to access network outside SAPA web, so eProKar never able to send anything to any server beside SAPA.

Do we make updated to this policy?

Yes, this privacy policy will be updated according needs and based on feature and future feature. Every policy will always comply with relevant laws.

How to contact about this policy?

If there any question, comments, and suggestion, please contact us: