PSD2 ist abzocke

Vor diesem PSD2 Gesetz konnte man mit nur der Kontonummer und PIN den Kontoauszug oder Transaktion einsehen und überwachen.

Seit PSD2 ist das nicht mehr möglich, weil für jede auch nur kleinste Aktionen ein OTP (sprich TAN) generiert werden muss. Das macht den Vorgang nicht mehr automatisierbar.

Obwohl man jetzt schon horrende Preise nur für ein Girokonto zahlt, und seit der Wucherpreiserhöhung der letzten 2 Jahre mehr als 200% Teuerung, ist eine API Nutzung nicht im Preis inbegriffen.

Die Alternative scheint nur Scraping zu sein. Bezahldienste verlangen einen unverschämt hohen Preis vom “Händler”. Es sind Mafiaartige Geschäftsmodelle welche in Kooperation mit der EU, um nicht zu sagen durch Schmiergeld, Banken zum Schutzgelderpresser machen.

Ich hätte eine Platform entwickelt und selber nur 1 Cent pro Transaktion verlangt. Das hätte mir gereicht um zu leben und die Kosten der Bereitstellung des Dienstes zu zahlen. Aber eine Bank will da mindestens 100€ monatlich mit Giropay und das beinhaltet auch nur 100 Transaktionen.

Extremer Wucher.

Will man das umgehen und mitspielen im Big Business und einen eigenen Finanzdienstleister gründen, kommt man

1. garnicht erst dazu weil einen die BaFin abwimmelt und
2. würde das alle 2 Jahre ein Zertifikat der Bundesdruckerei kosten.
Ja, so eins wie es letsencrypt kostenlos bereitstellt, kostet bei der Bundesdruckerei dann ein paar hundert Euro jährlich.

Es wird also Zeit einen Browser zu automatisieren und so an die nötigen Daten zu kommen.

Ich persönlich fühle mich hilflos angesichts der Korruption durch die EU. Was kann man dagegen tun?

The stupidity and ambiguitiy of Vue

Rant mode:

Which idiots name template references “ref” and then name essentially all composition api variables “ref()” as well!?!

YEAH GOOD FUCKING JOB VUE DEVELOPER IDIOTS
It makes searching for answer so much more fucking frustrating! Fucking idiots.

Spring Data JPA fixtures

What are fixtures? Fixed data that is always present in the database. You can think of it as the initial dataset.

application.properties

The documentation speaks of “the root classpath”, not knowing Java well I had no idea what that means and an answer on Stackoverflow was of course wrong.
It’s not the “src” dir, but the “resources” dir.

So with the above configuration we set spring.sql.init.data-locations=classpath:db/data.sql
which means we create a directory named “db” under src/main/resources.
Also we create a file named “data.sql”.

If you have spring.jpa.hibernate.ddl-auto=create but not spring.jpa.defer-datasource-initialization=true, data.sql will be executed before the schema is created by JPA and then the tables will be destroyed and created.

data.sql obviously contains sql statements like INSERT INTO profiles (name) VALUES('Darko').
data.sql is only for data, don’t use it for schema.
The location setting for schema is spring.sql.init.schema-locations= e.g. spring.sql.init.schema-locations=classpath:db/schema.sql.
Since you’re using schema.sql you don’t need to defer data initialization.

Details at the Spring Boot JPA reference documentation

Spring Data JPA Postgres UUID @Id

I read lots of outdated info on this matter.

Using PostgreSQL v13+ there is a function called gen_random_uuid().
See the manual page of Postgres UUID.

Here’s an example entity called Page

As you see you can append the columnDefinition to the @Column annotation. “UUID default gen_random_uuid()”
This translates to following SQL

And you don’t have to worry about having an empty ID when inserting records.

Easily remember ManyToMany ManyToOne OneToMany

ManyToMany in a Person <> Blog Relationship
A Person can be a subscriber of many blogs.
A Blog can have many subscribers.

But since this is an inefficient way to manage usually a proxy table is used with [PersonID], [BlogID], aka the 2 related data models.

ManyToOne and OneToMany in a Person <> Blog Relationship
A Person can be the owner of many Blogs.
A Blog can have one owner Person.

In conclusion, ToMany means it’s an array, ToOne means it’s a single value.