22 December 2022

tabnine AI code completion

 In contrast with some popular AI coding tools like chatGPT and github copilot, tabnine offers offline code completion in its enterprise mode. 

Tabnine's free mode only offers online oneline (yes, those are two different words) completion, the PRO version is $12/month/user and for the enterprise version you need to get a sales quote.

When assessing someone's programming skills by having them write some code, you might actually be hiring a lot of AI's. 

That is not necessarily a bad thing, nobody is writing assembler any more, and that is not considered cheating. But you may need to adapt the level at which you are assessing candidates.

Your code is better than AI code

A recent survey shows that AI generated code contains more bugs than code written by humans. This is somewhat surprising, given that AI code is probably generated from code

  • that is better tested than the code you're just writing (supposing the surveys were done on fresh code)
  • that it is generated from code from people who have more experience on the topic then you (supposing that a lot of the code is by experts and you are often on a learning path with a new technology). Again not sure if this was tested in the study.

Whatever the current state, AI will get better at this...

15 December 2022

Pasting rich text to MS OneNote

Pasting rich text to MS OneNote from some applications (like JetBrains IntelliJ) loses all spaces.

Update: This issue has been solved (11/2024). Don't know if I should thank JetBrains or Microsoft.

Example:

background:#ffff99url('../images/cat.jpg')no-repeatfixedcentercenter;

You can of course choose to paste text only (CTRL + SHIFT +V), which will keep spaces, but loose formatting :-/ 

Example:

background: #ffff99 url('../images/cat.jpg') no-repeat fixed center center;

Solution

Install the OneMore OneNote plugin.Now you can past with CTRL + ALT + V, to get what you want:

background: #ffff99 url('../images/cat.jpg') no-repeat fixed center center;

With the plugin you get a slew of other handy One Note functions like Find and Replace (!), modifying tables...

1 December 2022

Intellij 2022.3 highlights

 JetBrains just release its quarterly update to its flagship IntelliJ IDE. 

Highlight is a new UI preview, which gives the tool a simpler, VS Code like look. It is probably intended to make the community more familiar with the looks of the next generation Fleet API. Underneath the general overhaul, many of the second level structures remained the same, so the new UI quickly feels familiar and all your keyboard shortcuts still work.

Additionally we get support for:

  • a action that generating code for autowiring beans for containers like Jakarta EE and Spring. When using a class that can be autowired, IntelliJ will add an attribute and initialise it through constructor injection
  • easier OpenAPI definition generation
  • library name/version completion when adding Gradle dependencies
  • Jakarta EE 10 support
  • HTTP client improvements
  • Better Vue component support

JetBrains also released a preview of a testing tool: Aqua.There is also an Aqua plugin for IntelliJ, which I needed to install to work with Cucumber. So, it looks like they factored out testing functions in a plugin and built a more focussed product targeted at testers around it, like they did with WebStorm for web development.


17 October 2022

Jetbrains releases Fleet: a next generation IDE

JetBrains is releasing a next generation product for its flagship IDE line: Fleet.

Clearly inspired on the success of more editor-like IDE's like VScode, Fleet is a distributed developer environment where the editor can run separately from an IDE engine, which can optionally run remote.

The product has currently entered preview mode.

Having a full featured educational license, the proposed licensing seems a bit disappointing: it is largely based on the number of authors in a private project. The license limits private git projects to 4-5 committers, while our student group projects run with up to 4-5 persons. They cannot share these projects with other groups, so they need to be private.

22 September 2022

Adobe buys Figma

Adobe, market leader for in graphical design (Photoshop, Illustrator, InDesign, XD, Dreamweaver...) has bought Figma, the new digital creative designer favourite.

Figma was founded 10 years ago and has a strong collaborative creative cloud based platform. It has a recurring revenu of $400 million a year and is valued at $10 billion. $10 billion is exactly what Adobe is paying in cash, but it adds another $10 billion in shares; 

It is Adobe's biggest acquisition to date, and a heft price to take out a competitor.

9 August 2022

Jakarta persistence 3.1 highlights

  • autocloseable EntityManager and EntityManagerFactory
  • Criteria CASE expression support Expressions as conditions
  • JPQL (and criteria API)
    • CEILING, EXP, FLOOR, LN, POWER, ROUND, SIGN
    • LOCAL DATE/TIME/DATETIME

You can find the specification here.

Jakarta EE components overview

Jakarta EE is the project to follow up Java Enterprise Edition. The name change follows the transition of the governance from Oracle to the Eclipse organisation. Jakarta EE9 is simply taking over from Java EE 8 without functional changes. It changes package namespaces to jakarta.* and  removes some obsolete API's. You can find the Java EE evolution up to Java EE8 in an earlier post. From Jakarta EE9 the components are evolving.

Jakarta EE release9 10
year2020 2022
Requires Java SE811
Jakarta Activation2.02.1
Jakarta Annotations2.0.0 2.1
Jakarta Authentication2.0.0 3.0
Jakarta Authorization2.0.0 2.1
Jakarta Batch2.0.0 2.1.0
Jakarta Bean Validation3.0
Jakarta Concurrency2.0.0 3.0
Jakarta Connectors2.0.0 2.1.0
Jakarta Contexts and Dependency Injection3.04.0
Jakarta Enterprise Beans4.0
Jakarta Expression Language4.0.05.0.0
Jakarta Faces3.0.0 4.0
Jakarta Interceptors2.0 2.1
Jakarta JSON Binding2.0.0 3.0.0
Jakarta JSON Processing2.0.02.1
Jakarta Mail2.0.02.1
Jakarta Messaging3.0.03.1.0
Jakarta Persistence3.0 3.1
Jakarta RESTful Web Services3.0 4.0
Jakarta Security2.03.0
Jakarta Server Pages3.03.1.0
Jakarta Servlet5.06.0
Jakarta Standard Tag Library2.0.0 3.0.0
Jakarta Transactions2.0.0
Jakarta WebSocket2.0.0 2.1.0
Jakarta XML Binding3.0 4.0
Jakarta XML Web Services3.0 4.0
Jakarta XML Web Services (SOAP with Attachments)2.0 3.0

If a cell is empty in the above table, the version is the same as in the previous release.

27 July 2022

vrt.nu app abroad: enable push messages

vrt.nu is the mobile app to watch flemish state television programs.

If you want to use the vrt.nu app abroad you have to prove you are a Belgian citizen.

There are several ways to do so (e.g. itsme), but none of these work if you have disabled custom push messages in the settings. So make sure you have enabled

  • Pushberichten
    • Ontvang meldingen op maat

There are no error messages pointing here (you just get a message that the program is not available abroad) and this is not in the documentation.

14 June 2022

Android Basics Course using Jetpack compose

Google started revamping its android basics course using Jetpack Compose.
First units available now!

10 May 2022


 

28 April 2022

Microsoft moet lagere school overdoen

 

Google maps drops public transport schedule explorer

When looking up the best route using public transport, you get something like 4 the possibilities that are closest to the requested timing. But you could also open up the schedule explorer. This allowed you to scroll further in the future or past. 

Could... indeed, because the feature has been dropped silently by Google. What a pity to loose such a useful feature. Alternative now is to move your desired timing, which you can easily do in increments of 15'.


25 March 2022

Java 18: UTF-8 by default

Java 18 was released this week.

These is a simple web server (for educational purposes) that comes with this release, but the most important change is that Java will use UTF-8 format for I/O by default, except for console I/O.

Up until now Java would use the OS default for IO. In windows in Europe you would write files using windows1252 encoding: a one byte format that extends ascii (it can represent twice the number of characters). Of course there are plenty of ways to fall back to the system default. Still I expect many users to be caught by surprise when java does not play nice with programs expecting ASCII any more.

13 March 2022

Google drive new search controls: search here

 Search results in google drive now include extra search controls.

From these controls you can quickly trim down your results. 

You can even restrict the search to the current map.

This seems obvious, but this was so long in the waiting. 

In the drive controls next to the search box, you can only select the search location by navigating to it from the root (independent of the map where your currently are).