Time to unslop human spec writing

We blame AI for writing slop specs. But the worst spec slop I’ve seen in my career was written by humans.

Long before LLMs, I was reading requirements like this:

“The system shall allow the user to be able to add an item to the set of items.”

“The system shall not allow an unauthenticated user to fail to be prevented from accessing non-public resources.”

“The system shall block registration of customers whose tax ID already exists and allow registration of customers that already exist, updating the previous record.”

More or less Portable WebLogic 12c on Windows

This article appeared first at techtavern.wordpress.com.

(or, “Oracle SOA Suite” from “Quick Start installation”, as stated in the overworded documentation from Oracle)

(or version 12.2.1.4 of WebLogic)

Yes, it is possible to create a more or less portable installation the WebLogic 12c. This installation will work afterwards without administration privileges. And may run with other JVMs (even non “certified” ones as Adopt Open JDK). The installation might be moved to other directories or computers where one does not own administration privileges.

Copying all DBeaver configuration from one computer to another

This article appeared first at techtavern.wordpress.com.

This article explains how to copy your current DBeaver connection from one computer to another.

Instead of installing all drivers again and instead of creating your connections from scratch, it is actually very simple to copy the DBeaver configuration from one computer to another.

First, discover where the configuration is stored on the source computer. You can check this easily the the Preferences: Menu -> Preferences -> Worspace. Check the path shown at “Show full workspace path:”.

Moving from AppEngine and taking your data with you

This article appeared first at techtavern.wordpress.com.

AppEngine and its companion Datastore have been of great value for our application. Nevertheless, time has come to move to another cloud, which also means to face the annoying fact that all our data is stored within a closed, isolated, black box within Googles infrastructure and accessible only through Googles proprietary AppEngine API.

This article explains how we managed to download all data from Datastore and prepared it for another cloud.

Choosing a Gradle Java Webstart/JNLP Plugin

While developing a JavaFX application distributed with Webstart, I had to choose a Gradle plugin in order to package the application. Unfortunately, Gradle does not support Webstart out of the box. After experiencing several available plugins, I decided for the gradle-jnlp-plugin from Tobias Schulte, hosted at Github.

His gradle-jnlp-plugin creates a webstart distribution for a JavaSE application as required by the webstart specification. It creates the jnlp file and compresses/signs the jar files. The directory created by the plugin may then be uploaded to your static web server or embedded into your war file.

Using the gradle-jnlp-plugin – part 1

This collection of articles describe the gradle-jnlp-plugin from Tobias Schulte, hosted at Github.

The plugin produces a webstart distribution for a JavaSE application as required by the webstart specification. It creates the jnlp file and compresses/signs the jar files. The directory created by the plugin may then be uploaded to your static web server or embedded into your war file.

Using the gradle-jnlp-plugin – part 2

This collection of articles describe the gradle-jnlp-plugin from Tobias Schulte, hosted at Github.

The plugin produces a webstart distribution for a JavaSE application as required by the webstart specification. It creates the jnlp file and compresses/signs the jar files. The directory created by the plugin may then be uploaded to your static web server or embedded into your war file.

Datanucleus fails for Google AppEngine on Netbeans 8

This article explain how to prevent Datanucleus Enhancer failure when developing for Google AppEngine on Netbeans 8.

This article originally appeared on https://techtavern.wordpress.com

The cause

The Google AppEngine plugin for Netbeans from Gaelyk does not work with Google AppEngine Java SDK 40 and later.

The workaroud

While developing, use AppEngine Java SDK 37 (latest available version thar worked for me on Netbeans). You may download it from Maven Repository (see this link), as it is no longer available at Google Appengine site. When building the release version, compile against the latest AppEngine Java SDK.

Unit tests for Objectify entities and DAOs

This article explains how to write unit tests (with junit) for Objectify entities and DAOs.

Google Cloud Platform describes how to write unit tests for Google DataStore. A small adaptation enables the same solution for Objectify.

The documentation suggest creating a LocalServiceTestHelper to be initialized in a @Before/setUp() method and disposed in a @After/tearDown() method.

After calling helper.setUp(), initialize the objectify framework by calling ObjectifyService.begin(). Store the returned closable so you can dispose Objectify at the end of your test.

Displaying PDF documents on Netbeans RCP

This article explains how to display PDF documents on Netbeans RCP, using JasperReports libraries.

This article appeared first at techtavern.wordpress.com.

The proposed solution uses a TopComponent instance in editor mode to display each PDF document. It assumes that there is a JasperPrint object that represents a page-oriented document that can be viewed, printed or exported to other formats. The TopComponent will use a JRViewer to render the PDF document. The JRViewer handles scrolling, zooming, paging and even printing and saving as PDF, Excel and other formats.