26 August 2019

Detestable (adjective): software that isn't testable.

22 August 2019

Intellij 2019.2 highlights

  • Java Flight Recorder profiling integrated
  • Debugger step into on a line with several methods allows you to select the method to step into
  • Shell script support
  • Code completion also takes into account typos
More...

JetBrains web-types

JetBrains has released the web-types spec to include meta-data for IDE's in web component libraries. They can be used by IDE's for code assistance (completion and the like).
Currently JetBrains did an implementation for Vue.js comonents, whis is supported in JetBrains WebStorm.
The goal is allowing library authors to include such support so they don't have to wait for the IDE builder. Of course it also offloads some work from the IDE builder :)

15 August 2019

Cannon pixma MG5700 scanning problem after windows 10 august 2019 update, error error 2,157,50 [solved]

Today my Canon printer/scanner scanning started to hang when scanning from my windows 10 system over wifi.
The error I got from the IJ Scan tool was 2,157,50 mainly related to network connectivity problems, event though my wifi network was OK.
Scanning documents did not work, scanning mages worked sometimes, but was very slow.
After trying out different things, reinstalling drivers and software for my  printer solved the problem

14 August 2019

Heisenbug [noun]

A software bug that disappears or alters its behavior when one attempts to probe, study, or isolate it.

11 August 2019

JDK distributions

Since Java 11 Oracle has changed the licensing of its Java SE distribution: it is no longer free for commercial use. Oracle's OpenJDK is still free for commercial use. It has the same functionality (although some tools may be missing) but does not get updates once the next version is out (after 6 months). The community, led by RedHat is however updating LTS (Long Term Support) java distributions (8, 11...). A good distribution is AdoptOpenJDK. Several other companies are offering distributions and paid support. You can find a good summary of this on the JetBrains blog.

If you want to download a prebuilt javadoc for local use, you currently have to download it from the oracle Java SE distribution.

AdoptOpenJDK gives you a choice between Oracle's HotSpot VM and OpenJ9 VM, an Eclipse incubator project, based on VM code donated by IBM.

Differences between AdoptOpenJDK en Oracle OpenJDK are  summarized in the table below:

Oracle JDK 8 proprietary component Alternative component OpenJDK 8 OpenJDK 11
Java Web Start IcedTea-Web yes no
JavaFX OpenJFX no no (coming soon)
T2K font rendering engine Freetype yes yes
Monotype Lucida fonts Relicensed Lucida fonts no (coming soon) no (coming soon)
Ductus 2D renderer Pisces/Marlin yes (Pisces) yes (Marlin)
Kodac Color Matching System (KCMS) library LCMS yes yes
SNMP Use JMX (or SNMP4J) yes (not bundled) yes (not bundled)
Sound drivers Use Windows sound drivers yes (not bundled) yes (not bundled)
Java Flight Recorder (JFR) Java Flight Recorder no (coming soon) yes
Java Mission Control (JMC) Use JDK Mission Control no (coming soon) no (coming soon)

Questions about whether design is necessary or affordable are quite beside the point: design is inevitable. The alternative to good design is bad design, not no design at all.

Book design: A practical introduction - Douglas Martin
Good design is imperfect design.
Eric Evans

Beware: removing Google Drive shortcuts

The other day I was happy to have found a (quirky) way to make shortcuts to folders in Google Drive.
Last week I removed the shortcut, as I did not need it anymore...

Today I received a mail of a person with whom I shared a file that it had gone to my recycle bin!
Actually: removing the shortcut had removed the original folder as well!
Good thing I was notified in time and Google had not yet purged it from the recycle bin, which normally happens after a month...

This begs the question: how do you remove a shortcut in Google Drive properly (without removing the original?)

  1. Select the folder (don't go into it)
  2. Open the details tab on the right
  3. Under Location: you will see that their are two parent folders listed. Each one has an x icon next to it.
  4. Click on the x of the parent you want to remove the shortcut from
More...

4 August 2019

Mapping Maven phases to Gradle Lifecycle tasks

A table summary derived from the Gradle documentation.
Maven phase
Gradle task
Gradle Plugin
clean
clean
Base
compile
classes
Java
test
test
Java
package
assemble
Base
verify
check
Base
install
- (Not needed)
publishToMavenLocal
-
Maven Publish
deploy
publish
Maven Publish

Core language plugins, like the Java Plugin, apply the Base Plugin and hence have the same base set of lifecycle tasks.