21 March 2018

Nobody uses Maven
Maven  uses you

   Venkat Subramaniam

Java 10 released, codename "boring"

With a release 10, you'd expect some jubilee fanfare and marketing blitz. At least they could have waited one day to launch at march 21 for spring (maybe that term is too much associated with another java ecosystem).
But it's axe time for Java at Oracle, so this is the most under cover release ever. At the java SE download page you have to dig deep for anything coming near to a decent what's new presentation.
To be fair, this is also related to increased release frequency that was introduced for Java. Like many platforms these days, java will be released on fixed time points with whatever is ready at that moment. The first release in such a system is always a bit underwhelming, think of EcmaScript 2016, for example.

The one big addition in Java 10 is the introduction of var declarations for local variables. If the compiler can infer the type of a local variable from the initialisatioin, you don't have to type it anymore. So Java 9 code

  ArrayList<String>list = new ArrayList<>();   
  Stream<String> stream = list.stream(); 
can in Java 10 be written as 
  var list = new ArrayList<String>();
  var stream = list.stream();
Always takes a bit of getting used to, but I think the older syntax is clearer. You'll start seeing plenty of code, where the classes being used are not clear for somebody that is less familiar with the API being used. They will not even be present in the import statements.

Some other enhancements:
  • inclusion of root CA certificate
  • Graal compiler as an experimental option

We mentioned axe time: so with this release stuff is effectively getting removed and being marked for removal. One remarkable removal is the desktop policytool. It is replaced by your favourite file editor.

19 March 2018

Oracle will remove Java FX from JDK

Oracle released a Java Client Roadmap Update.
Starting with JDK 11 Oracle plans to remove its little used Java FX desktop libraries from the JDK. Java FX will live on in the OpenJFX, which was created in 2011.
Java Webstart will also be removed from JDK 11.
Swing and AWT remain part of JDK 11.
Just as it handed over Java EE to Eclipse, it is looking to transfer  stewardship of Java FX, Swing and AWT to another party.
With java 9's project Jigsaw, Java became a modular system, making a separation of this part of Java easier.
As a consequence the JDK will become leaner and Oracle hopes to evolve it at a faster pace in the future.

Java EE becomes Jakarta EE

With the move of Java Enterprise edition from Oracle to the Eclipse foundation, Oracle did not transfer the right to use the Java brand.
The reference implementation will still be Glassfish, which now becomes Enterprise Glassfish.
The standard governance will move from JCP to the Eclipse EE.next  Working Group.

17 February 2018

Google Drive (finally) adds search within folder

My major gripe with google drive was that you could not search withing a folder.  As Google drive contains nearly all my stuff, the noise was so high that search was all but useless. Hard to understand that a company who's core business is search could not provide this. So I needed to use windows limited search on my locally synced files.
Then today, I noticed the in folder search feature had sneaked in.
Yahoo! Kudo's to Google!

4 January 2018

Windows 10 update fails: restart the installation

When rebooting after the Windows 10 (Fall Creators) upgrades I got a window with this error:

Windows could not complete installation. To install Windows on this computer, restart the installation.
Only button you have is [OK], so I hit that. The system reboots, only to get stuck on the same window again.

Option 1 (did not work for me)

If your PC has a recovery partition, normally that is Drive D: labeled recovery, you can reboot from there and revert to an earlier configuration of your computer.

Option 2 ( did not work for me): Advanced Startup

  1. Upon consecutive unsuccessful boots, Windows will show the Advanced Startup window. When your computer is booting and the windows logo appears, press the power button until the computer switches off. Do this two times. The third time, let the boot continue and the Advanced Startup window should come up.
  2. Choose Troubleshoot
  3. On the next screen, choose Advanced Options
  4. On the next screen, choose Startup Repair, and go through the procedure.
    After going through this, windows told me it could not repair my system.

Option 3 (worked for me): Create installable media

  1. On another computer download the media creation tool from Microsoft
  2. Plug an empty USB drive of at least 8GB in the computer
  3. Run the tool 
    1. Select: Create installation media for another PC
    2. Make sure the language, and architecture match the ones on the faulty computer. Change these options if necessary. They need to match the license on the target PC. Typically your architecture is 64 bit, but if you are not sure, check this on the faulty computer
      1. In the screen where the problematic computer is asking to reinstall type [SHIFT]+[F10]
      2. A command window will appear. On the command prompt type
        wmic os get osarchitecture
  4. Select USB Flash Drive
  5. Select the drive where the USB is mounted
  6. Start the creation. This takes a while. First the software is downloaded, then the image is written.
    1. The installation failed for me with
      error message: There was a problem running this tool.
      error code: 0x80042405 -- 0xA001A
    2. The solution was to first copy the  downloaded MediaCreationTool.exe to the USB drive and then run the program from the USB drive.
  7. On the problematic computer boot to the error window prompting for a reinstall
  8.  Plug in the USB drive
  9. Start a command prompt by pressing [SHIFT] + [F10] 
  10. Go to the USB drive by typing the drive letter, typically D:
    1. My drive was not mounted to D: (nor E:). I found out the drive letter using the command
    C:\>wmic logicaldisk where drivetype=2 get deviceid, volumename, description
     Turned out my drive was mounted to J: (!?)
  11. Type setup from the USB drive
  12. c:> J:
    J:> setup
  13. Go through the normal upgrade procedure (Choose install OS and Preqerve personal data and files).
    1. The upgrade took me about an hour.
Quite a lengthy process. Not very nice that Microsoft forces you to do the update, and after they've wrecked your system, leave you on your own. I would be interested how this turns out if someone takes them to court over this. Then again, their lawyers must have written a license that allows them to cripple your computer :-/