1 November 2021

Microsoft to offer free cybersecurity courses to US community colleges

In a new Microsoft Cybersecurity Scholarship Program, the company will offer free cybersecurity courses to US community colleges, to help solve the shortage of security engineers in the US. The program is not available outside the US.

The program builds on the Microsoft Skills for Jobs global initiative. The initiative offers free access to a set of LinkedIn courses and reduced cost Microsoft Certifications. It also offers grants to non profit organisations, but none of the organisations mentioned are in Europe.

1 October 2021

MS Teams 9/2021 update highlights

Present from powerpoint to teams

IF you store your presentation on MS OneDrive or sharepoint, powerpoint will show a [Present in Teams] button in the upper right corner (next to [Comments]). You will then have a presenter view in your teams meeting while attendees see the real slides.

Presenter mode

When sharing the screen, you can now have your camera a(i.e. your face) as an inset in the shared screen

Breakout rooms assignment enhanced

You can now easily find which person is in which breakout room.

Chat

Live reactions

Users can now highlight icons to communicate their state of mind. These are the same icons as the ones you use as a short reaction to a chat message. 

Chat bubbles

Chat messages can now appear as callouts for the corresponding person in the participant gallery.

Pin messages

You can pin important chat messsages to make them standout from a long chat flow. The option is in the ... menu you have on your own chat messages (same place as Edit, Remove...)

14 September 2021

Java 17 LTS released

 Oracle released Java 17 today.

While there are some technical goodies, the most important news is that Oracle stops the licensing nonsense it entered in with the previous LTS release (Java 11).

Updates will remain available from Oracle for three years, which is one year after the next LTS (Java 23).

Oracle Java is again free for production use as well.

It remains to be seen if this will lure back devs from the AdoptOpenJdk/Adoptium distributions.

From a technical point of view Sealed classes are introduced, giving a more fine grained (if cumbersome) control over which classes may inherit from a class/interface.

Some deprectations for removal of some old friends as well: Security Manager and the applet API, stars of the original Java buzz.


30 August 2021

SequenceDiagram IntelliJ plugin

One of our KdG students pointed us to the SequenceDiagram plugin for the IntelliJ IDE. The plugin reverse engineers a method into a UML sequence diagram. You click on a method and get a graphical view of its inner workings and interaction with other objects.


 

It also has a nice solution for representing lambda's, something the UML standard does not have specific support for.

That's not all

  • from each method in the sequence diagram you can navigate back to your code. 
  • the method  numbers (which are more useful in a commuication diagrams) can be turned off in the preferences
  • exports to plantUML

The author is very responsive to issues submitted. I asked to make the return arrows optional and lo! in the the latest release there is an option to do so.

Only remark I have is that control flow frames (loop, alt) are not supported and everything is shown as one big, well, sequence. There is an issue related to this that is marked solved, but no milestone associated.

But this is a nice effort, and way better respecting UML conventions than IntelliJ's own class diagram generator.

UML links (updated)

2 August 2021

Java SE version history (updated)

Version Name Release Major new features
17 (LTS)

9/2021 sealed class
16
3/2021 record
15
9/2020 Text blocks
14
3/2020 Switch expressions
11 (LTS)

9/2018 HTTP Client and WebSocket APIs
Run (single file) source code
9
2016 JSR 294: modular JDK (Jigsaw)
Searchable javadoc
JAXB 2.3
8 (LTS)
Spider
3/2014 JSR 335: lambda expressions
Collections Stream Framework
JSR 310: Date and Time API
Compact profiles
JSR 308: annotations outside declarations (on usage)
7 Dolphin 7/2011 language (project coin): switch on strings, multi catch, try with autoclosing resources, empty generics (diamond operator), binary literal, underscores in numbers NIO.2 file handling
Fork/Join concurrency
JAX-WS 2.2 (SOAP 1.2, WS-I 2.0, metro 2.0)
6 Mustang 12/2006 JSR 223: scripting language support
JSR 224: JAX-WS2.0 (metro 1.x)
JSR 221: JDBC 4 (driver autoloading))
Perfomance enhancements in synchronisation and garbage collection
5 Tiger 9/2004 language (JSR 201): Enumerations, autoboxing, enhanced for loop, static import, vararg
JSR 175: Annotations
JSR 14: Generics
java.util.concurrent
java.util.Scanner
RMI automatic stub generation
1.4 Merlin 2/2002 language: assert
regular expressions
JSR 51: NIO
JSR 47: java.util.logging
JSR 54: JDBC 3 (metadata API, autogenerated keys, transaction savepoints, multiple || resultsets/statement)
security and cryptography
1.3 Kestrel 5/2000 HotSpot JVM
RMI/CORBA support
JNDI
1.2 Playground 12/1998 Collections
Swing
JIT compiler
Browser plugin
JDBC 2.1 (datasources, distributed transactions, connection pooling,RowSet, ResultSet backscrolling and updating )
1.1
2/1997 AWT events reorganisation
inner classes
JavaBeans
JDBC
RMI
reflection
1.0
1/1996
Here's an overview of Java EE versions

Google Drive: HOWTO copy a folder (containing Google docs)

For unclear reasons Google Drive does not support copying folders.

Workaround 1: copy the folders in your local Google Drive desktop environment and everything will be synced to your drive.

This does however not work for folders containing Google docs. Your desktop only has a link to the real thing that resides in the cloud. Local copying does not work on those links.

Workaround 2:

  1. From Google drive, download the folder to your local system. Google drive will convert all your google docs to their MS Office counterpart in the process. 
  2. Unpack the downloaded zip to a desktop folder that is synced to your Google Drive.

23 June 2021

Cloudflare internet monitoring correlates internet shutdown and exam schedule in Sudan and Syria

No need for tools to prevent exam cheating in Sudan and Syria.

Send your exam schedule to the government and they shut down the internet!

28 May 2021

MS Teams integrates PowerPoint

When sharing content in Microsoft Teams, the pane to choose the screen/window to share has now moved to the right (was bottom), on my version (1.4.00.1116). 

In the pane a new option PowerPoint Live has been added. 


It opens slides directly in presenter view in teams, while attendees see the presentation itself. Attendees can even (individually) browse to other pages, if you allow them to.


Great addition, and more features are coming. Here's a Microsoft article on this, but take care: all features discussed have not been rolled out yet at the time of this writing.

Most annoying problem is that it does not remember which presentations you loaded from your local machine, so you have to reload them every time you leave the presentation to share your screen.

22 May 2021

Vue devtools plugin V5 not working with Vue 3: install plugin V6 (beta)

Even though Vue 3 was relased in september 2020 the current vue devtools plugin v5.x does not work with this version (the devtools panel does not show up when debugging a vue application).

You can install the beta for the v6 version to get some browser debugging support:

  1. Remove the old devtools plugin from your browser if present
  2. Go to the beta release channel
  3. In the assets at the bottom of the latest beta, click the vuejs_devtools_beta-6.0.0.xx-an+fx.xpi link

Good bug hunting with Vue 3!

21 May 2021

Windows: software to add (updated)

Current list of software I'm running:

28 April 2021

Corona contact tracing apps expose private data on Android

Data logged by Android contact tracing apps, which are to remain private on the local device, can be read by privileged pre-installed apps (from google, your phone manufacturer or its partners).

A stock Xiaomi Redmi Note 9, for example, has 54 preinstalled apps with elevated permissions.

More...

25 April 2021

 Write code that is easy to delete, not easy to extend.

programming is terrible - lessons learned from a life wasted

31 March 2021

Java SE 16: some goodies

Record

Records are a simple form of classes intended for value objects. Example:

public record Expert (String name, String domain) {} 

Records are like classes for immutable data with default boilerplate code added

  • all attributes are private
  • Constructor with arguments for all attributes
  • getters
  •  equals and hashCode methods
  • toString()

This is similar to the conventions used in Lombok and Kotlin data classes.

Methods can be added to the class and default methods can be overridden.

Limitations

  • no inheritance: records cannot extend classes and are implicitly final
  • extra attributes must be static

instanceof instanciation

Classic code

if (car instanceof F1) {
    F1 redBull = (F1) car;
    redBull.race();
}

Java 16

if (car instanceof F1 redBull) {
  redBull.race();  

}

jpackage

jpackage is a command to generate an installer package for you project. It can

  •     generate a classical jar for you, but adds a  startup scrip including all necessary classpaths
  •     include the JRE (or just the modules you need) to have a n installer without dependencies
  •     produce .exe, .msi, .rpm ... pacakges

23 March 2021

Proof of Concept code for MicroSoft Exchange vulnerability dissapears from GitHub

Recently Microsoft got into open source code distribution by acquiring widely used open source distribution sites like github and npm. 

Its stance with respect to open software has changed remarkably over the last years. 

But the risks of Microsoft's influence in this market become clear now: it has removed proof of concept  code that showed weaknesses in Microsoft Exchange mail servers.

Although the code is still available from other Open Source repositories like GitLab, this shows the willingness and capability of Microsoft to control the distribution of Open Source Software.

More...

19 March 2021

Adope Acrobat DC: disable "preparing document for reading" popup

Problem: Every time i open up a new document I get the popup below, in which Acrobat wants to assist me by reading the document for me. I can perfectly read the document myself, so how to disable this popup?



Solution: Preferences > Accessibility > uncheck Assistive technology support

15 March 2021

2000 year old Greek automaton showed movement of starts and planets

 The Antikera mechanism was discovered in a ship wreck in 1901. It was split into 82 fragments, only a third of the original survings, including 30 corroded bronze gearwheels. Scientists have reconstructed the mechanism and published an article in Nature.

It calculated the ecliptic longi-tudes of the Moon, Sun and planets; the phase of the Moon; the Age of the Moon; the synodic phases of the planets; the excluded days of the Metonic Calendar; eclipses—possibilities, times, characteristics, years and the heliacal risings and settings of prominent stars and constellations; and the Olympiad cycle. It has a a ring system with nine outputs—Moon, Nodes, Mercury, Venus, Sun, Mars, Jupiter, Saturn and Date—carried by nested tubes with arms supporting the rings.

The top picture shows the reconstruction, the bottom picture the original findings: