Saturday, May 30, 2020

AI, ML, Robots and Brains (18. - 24.5.2020)

Society


Algorithms


Health


Robots


Cars


Brains

Friday, May 29, 2020

IT links (18.5. - 24.5.2020)

Java is celebrating 25 years these days

How to run a Python script directly from Java?

Really good talk from QCon London 2020 - Java in Containers - what to watch out for and so on




The almighty service layer - place, where you put everything you don't want to keep in other layers of 3-tier architecture

Saturday, May 23, 2020

AI, ML, Robots and Brains (11. - 17.5.2020)

Society


Algorithms


Health


Robots


Hardware


Brains

Saturday, May 16, 2020

AI, ML, Robots and Brains (4. - 10.5.2020)

Society


Algorithms


Health


Robots


Cars


Hardware


Brains

Wednesday, May 13, 2020

IT links (4.5. - 10.5.2020)


Generate and export database schema based on entities

Two things related to Maven:
And something about duplicate dependencies


A nice short example of user data script on AWS EC2 - for Apache server installation

And two good talks from QCon London 2020:

Monday, May 11, 2020

AI, ML, Robots and Brains (27.4. - 3.5.2020)

Society


Algorithms


Health


Robots


Cars


Brains

Saturday, May 9, 2020

IT links (27.4. - 3.5.2020)

Project Leyden targeting memory and performance pains of Java
Single Responsibility Principle (SRP) and cohesion in Java
Using Java Flight Recorder (JFR) profiling tool - open source since JDK 15

How to use multiple cache managers in Spring?
Using new Java records with Hibernate
Spring Boot - How to use server different than default Tomcat

Memcached vs Redis
Which cloud platform seems to be more suitable for machine learning?
You don't need microservices

Wednesday, May 6, 2020

AI, ML, Robots and Brains (20. - 26.4.2020)

Algorithms


Health


Robots


Cars


Hardware


Brains

Monday, May 4, 2020

N-Tier Architecture, Good Software Development Practices and Testing

N-tier architecture, also known as multitier architecture, is an architectural pattern in software engineering that physically separates functions responsible for data storage, business logic, presentation, and more.

Splitting an application horizontally into multiple layers, each serving a specific purpose, helps maintain the separation and decoupling of components. This approach also assists in maintaining a general overview of the application.

However, adhering to good software development practices, such as the single responsibility principle, is still dependent on the developer's responsibility. Without proper attention, things can end up badly.

For instance, if business logic spreads from services into controllers and more logic ends up in JSPs, you may soon find yourself in a challenging situation. These things can slow down investigations and make significant architectural changes difficult or even impossible. Or covering things with unit and integration tests retroactively might not make sense in such cases. They might not bring wider code coverage. 

Such things end up covered mainly with expensive, brittle end-to-end tests, slowing down time to deployment. These tests can occasionally randomly fail and might require repeated re-running. Detection of bugs is pushed more into the future, making their fixing more expensive, and failed end-to-end test might not say where a problem is exactly. This makes it harder to figure out what is wrong because you must usually go through multiple layers. It is good to keep things in proper places, where they can be tested cheaply with unit and integration tests. This is also a good reason to start to think in a more Test-Driven Development (TDD) way. It can motivate you to keep logic in places where it is easier to test it.

While N-tier architecture is beneficial, it's essential to maintain good programming practices alongside it.

Sunday, May 3, 2020

IT links (20. - 26.4.2020)

What is going to be released in JDK 15?

This release is also going to contain improvement of G1 garbage collector behavior

Updated switch statement, released in JDK 14

How secure is Java in comparison to other languages?

Applying the same configuration to a set of loggers in Spring Boot

Simple text summarization for Android

And 14 ways AWS beats Microsoft Azure and Google Cloud