Java 17 - Was ist neu ?

21 September, 2021

Die neue Java LTS ist draußen. Also kann man sich die Frage stellen: Was ist neu?

Das finde ich sind die wichtigsten Sachen, die sich verändert haben.

Um kurz auch mal über Pattern Matching für Switch und Sealed Classes zu reden:

Pattern Matching:

Es gibt jetzt mehr Möglichkeiten Switch zu benutzen, statt if-else. Hier sind ein paar Beispiele:

static void testTriangle(Shape s) {
    switch (s) {
        case Triangle t && (t.calculateArea() > 100) ->
            System.out.println("Large triangle");
        default ->
            System.out.println("A shape, possibly a small triangle");
    }
}
static void test(Object o) {
    switch (o) {
        case null      -> throw new NullPointerException();
        case String s  -> System.out.println("String: "+s);
        case Integer i -> System.out.println("Integer");
        default  -> System.out.println("default");
    }
}

Sealed Classes:

Man kann nun einschränken, wer alles eine Klasse erben oder implementieren kann.

public abstract sealed class Shape
    permits Circle, Rectangle, Square { ... }

Was wurde zwischen der letzter LTS Version und jetzt verändert?

Ich finde, das sind die wichtigsten und größten Änderungen.

Um auch mal kurz auf die nächste Java Version zu sprechen zu kommen.

Die wichtigste Änderung für Java 18 wird die Standardisierung von UTF-8.

Und dann mal sehen was noch so kommt.


Oracle JDK ist nun kostenlos

18 September, 2021

Hi! Genau, Java 17 (LTS) ist seit ein paar Tagen draußen (dazu kommt auch noch ein Artikel) und Oracle hat dazu auch ihre Lizenz geändert. 

Am 14. September hat Donald Smith (Sr. Director of Product Management) in einem Blog Beitrag vorgestellt, das die Lizenz von OracleJDK nun Oracle No-Fee steht.

Diese kostenlose Lizenz umfasst das JDK und die vierteljährlichen Sicherheitsupdates auch für die kommerzielle und produktive Nutzung. Die neue Lizenz ist die "Oracle No-Fee Terms and Conditions"-Lizenz (NFTC) und erlaubt die kostenlose Nutzung für alle Benutzer, auch für die kommerzielle und produktive Nutzung. Die Weiterverbreitung ist erlaubt, solange sie nicht kostenpflichtig ist.

Frühere Versionen sind von dieser Änderung nicht betroffen. Oracle wird weiterhin Oracle OpenJDK-Releases unter der GPL nach denselben Releases und demselben Zeitplan wie seit Java 9 bereitstellen.

Es gibt weiterhin die kostenpflichtige Version, ich glaube aber nicht, dass sie einen von uns interessiert.

Happy End: Nun können wir uns die Java Version ohne das lästige Durchklicken herunterladen. Oder einfach bei der OpenJDK oder SDKMan bleiben.


Hyped-App: Die wohl komischste 100.000 Euro App

3 September, 2021
Der Beitrag ist schon was älter, deswegen können gewissen Informationen veraltet sein.   
Insgesamt hat sich die ganze Thematik zwischen dem 11.7.2021 und dem 18.7.2021 abgespielt.  
Dieser Beitrag ist auch kein normaler Security Blog Artikel.

Hyped-App - Wo fange ich da an?

Diese Frage ist meiner Meinung nach sehr berechtigt zu stellen, da es bei dieser App einiges an Kritik gibt und damit meine ich gar nicht nur den Teil der Informatik.

Also fangen wir mal mit den Grundlagen an: Am 10. Juli 2021 haben Rewinside, Trymacs und UnsympatischTV ihre App namens Hyped veröffentlicht. (Quelle) Diese App besteht kurz gesagt daraus Beichten zu schreiben und diese in drei Kategorien zu bewerten: "Downvote", "Upvote" und "Hype" (Mittlerweile heißen diese "Okay", "Trash" und "Hyped"). Bis dato, alles schön und gut. Man könnte jetzt hier schon Anfangen, die App zu kritisieren, dass es schon unzählige Apps dieser Art gibt oder dass es das Konzept dieser App quasi schon als Open Source Version auf GitHub gibt, aber das will ich einfach mal außen vor lassen, denn es könnte immer sein, das neue Apps mit neuen Ideen den Markt überraschen wollen. Auch wenn das meiner Meinung nach nicht gegeben ist. Den die Punkte, die angebracht werden, warum diese App so einzigartig ist, sind: deren Voting System und deren dazugehöriges XP-System. Und da sind wir auch schon beim nächsten Punkt angekommen,

das XP-System.

Das XP-System, ein System wie kein anderes. Es ist sehr einfach, man muss in der App Beichten bewerten und wen man genauso wie der Rest der Community bewertet hat, dann kriegt man die meisten XP-Punkte und Coins. Und wen man gewisse XP-Stände überschreitet, kriegt man ein gewisses Level, was aber natürlich von Level zu Level schwieriger wird. Und so wie die Community ist, will jeder das höchste Level und die meisten Punkte, es hat sich also etabliert, dass jeder Upvote drückt. Bei jeder Beichte haben nun 95% immer mit Upvote gestimmt. Damit kriegt jeder die meisten Punkte, also ist eigentlich das komplette Konzept der App kaputt. So lassen mittlerweile viele ihre Autoklicker durchlaufen um im Level zu steigen, was zum jetzigen Zeitpunkt noch nichts bringt. Man muss dazu sagen, dass es mittlerweile dieses Problem nicht mehr gibt, da eigentlich alle Leute genau so wie ich von dieser App losgelassen haben. Wir die Idioten sind raus. Auf beide Sätze komme ich gleich nochmals zurück.

So okay, schön und gut, denkt man sich jetzt. Eine App ist gescheitert und funktioniert nicht, ist ja nichts Besonderes. Wären da nicht noch zwei weitere Punkte.

IT-Security

Diesen Abschnitt können wir eigentlich auch ganz schnell abarbeiten, die API hat kein Rate-Limit, das Swagger-File ist öffentlich, das Backend ist in Spring Boot und nach ein paar zu vielen Anfragen geht deren Backend down, ohne dass man es wollte.

Hier einmal ein paar Infos zu Leveln:

  1. Man kann innerhalb von Sekunden Level 100 erreichen.
  2. Man kann innerhalb von Minuten Level 500 erreichen.
  3. Mein Maximalstand war Level 200, XP ca. 5 Millionen und Coins bei ungefähr 10 Millionen nach einer Nacht.

Ein paar Probleme die ich bei diesen hohen Leveln hatte: Da die App ganz neu war, es gab zu dem Zeitpunkt wo ich angefangen habe ungefähr 100k Beichten. (Jede Beichte kann man nur einmal bewerten.) Diese hatte ich aber innerhalb von einer Stunde abgearbeitet, also geliked. Es mussten also neue Beichten her: So habe ich ein zweites Script geschrieben, welches Beichten schreibt. (Der übrigens Werbung für unsern Discord Server gemacht hat, ich habe deswegen viele witzige Gespräche in der Nacht vom 11 auf den 12 Juli geführt.)

So, zu noch mehr lustigen Zahlen: 2 Millionen Beichten haben wir in einer Nacht gepostet, weshalb man hat eigentlich nichts anderes außer unsere Beichten zusehen bekommen.

Am Ende hat Garkolym noch das Admin Interface gefunden (Quelle).

Ohne Rate Limit ist natürlich auch das Spamming von ihren Mail Servern möglich. 

Nun aber mal zu dem Punkt: Wieso? Wieso habt ihr diese Fehler nicht gemeldet? Wieso habt ihr es nicht einfach gelassen?

Ich haben diese Fehler gemeldet, haben jedoch auf unsere E-Mails nie Antworten bekommen (bis heute den 3.9.2021 nicht) und auf Instagram wurden ich nach Anfragen blockiert. Danach habe ich mich entschieden auf eine andere Weise zu kommunizieren (Haben es übrigens auch über Unterschiedliche Discord Server probiert.).

Wie wurden die Fehler nun behoben?

Gar nicht! Es wurde zwar eingebaut, dass man nur noch 10 Beichten am Tag posten kann, aber auch nicht mehr. Den Punkt mit dem Rate Limit, der wurde nicht behoben. Man kann immer noch innerhalb von Minuten allen Leuten folgen und alle Beichten liken.

Ich würde diesen Teil gerne "Uneinsichtig und Inkompetent" nennen.

Ich habe lange Diskussionen mit psychologisch gebildeten Leuten über diesen Abschnitt gesprochen. Und bin deswegen zum Entschluss gekommen, den Part jetzt genau so zu schreiben, wie ich ihn geschrieben haben werde.

Ich würde eigentlich gerne noch etwas tiefer auf meine Persönliche Analyse von Trymacs Persönlichkeit eingehen, denke aber das es eher meine persönliche Analyse bleiben sollte.

Dann mal zu den Fakten zurück: Es wurde keine Einsicht gezeigt. Ich finde das sehr schwierig in Worte zu fassen, aber die App wurde als ein Meisterwerk präsentiert, als hohe Kunst der Informatik. Und das 6 Entwickler für 6 Monate für 100k Euro daran gearbeitet hätten und das Beste gemacht hätten. Bei diesen Summen hätte wohl auch jeder zugeschlagen. Die App ist das einfachste was es gibt. Ich glaube wenn ich Leuten auf Twitter einen Monat Zeit geben würde und diesen dafür 10k Euro geben würde, wäre etwas Besseres rausgekommen. Aber nochmals zu dem Punkt: keine Einsicht. Es heißt bei Trymacs immer, die anderen sind schuld. Wir machen keine Fehler nur die anderen. Das hat sich durch das ganze Thema durchgezogen. In dem Kontext ist übrigens auch der Satz mit dem "Idioten" gefallen den ich oben angesprochen hatte. 

Auch noch ein lustiges Thema: Ich glaube bis heute, dass ihnen nicht bewusst ist, dass ich direkt ans Backend gegangen bin und nicht die App benutzt habe. So hat sich das angehört und angefühlt. Den Rate Limits gibt es bis auf das Beichten Limit eigentlich nur im Frontend. 

Ich würde das ganze Kritikunfähig nennen.

Übrigens die zwei anderen Gründer der App: Rewinside und UnsympathischTV haben sich zu der ganzen Thematik sehr zurückgehalten.

Noch ein paar Rand Bemerkungen

Klengan hat uns Lustig in seinem Video erwähnt. "Ob das ein Bot ist?"

Nach dem Garkolym darübergeschrieben hat, hat sich eine kleine Community um ihn aufgebaut, die sich gefühlt halt, als wären sie die besten. Ich finde das bei einem solchen Thema Austausch immer wichtig ist, aber dieser war bei Leuten wie z.b. Shortbyte nicht gegeben. Ich finde es schade, nach einer kleinen Diskussion mit ihm darüber, blockiert worden zu sein.

Die App ist insgesamt nicht gut angekommen, da sie keinen Inhalt besitzt. Und dies wurde auch von der deutschen YouTube-Szene so wahrgenommen, weswegen ein paar Kritikvideos entstanden sind, welche jedoch von TryMacs meist mit: "Also in meiner Freundes Gruppe ist es gut angekommen" beantwortet wurden.

Nun ist die App tot, ich habe zwar keine genauen Zahlen, aber alles was ich erfahren habe ist, dass die App fast keiner mehr wirklich benutzt.

Es soll übrigens in ferner Zukunft ein Update kommen was die App tausendmal besser machen soll. Ob das stimmt, wage ich zu bezweifeln.

Wen man gebannt wird, wird das immer händisch gemacht und wohl auch immer von anderen Personen. Habe die unterschiedlichsten Banngründe bekommen.

Und noch ein kurzer Exkurs zu den AGB der App. Alle Mitglieder müssen 18 sein. Ich bin ehrlich, das ist bei der Community schwierig (§ 2.1). Und was bei einer Beichten-App auch schwierig ist: Die Nutzer sind verpflichtet, bei der Registrierung ihren Klarnamen anzugeben und auf Pseudonyme zu verzichten. Also anonyme Beichten mit Klarnamen, das ist mal was ganz Neues. Also wenigstens doch eine neue Erfindung in der App.

Das Ende

Falls du bis hier gelesen hast, wollte ich dir danken. Wenn du Verbesserungsvorschläge hast oder Fehler gefunden hast, schreib mir gerne auf Twitter oder auf Discord. Und es tut mir leid, dass dieser Beitrag so lange gebraucht hat.

Und damit Tschüss.

Kleiner Anhang: Danke an die Grammatik- und Rechtschreibungs-Überarbeitung von Elektroniker.


Warum dieser Blog so Inaktiv ist...

1 September, 2021

Mal ein kleiner Beitrag wieso dieser Blog so inaktiv ist. 

In einem Satz, es ist schwierig. Ich habe einige Beiträge geschrieben, diese aber nie veröffentlich, da ich nicht wusste ob es das richtige ist. Ich habe zum Beispiel einen Blog Artikel über die Hyped App geschrieben, dieser hatte am Ende aber nichts mehr mit IT zutun, ich habe viel mehr die Allgemeine Art und den Umgang mit und über die App kritisiert. Deswegen meine Frage: Würden die paar Leute die diesen Blog lesen, gerne auch andere Themen außerhalb der IT hören. Ich würde meinen Blog dann als meine erweiterte Twitter Seite benutzen. Ich weiß zwar nicht viele Leute das interessieren würde, aber ich würde es gerne einfach mal Ausprobieren. Ihr könnt mir gerne per Twitter DM schreiben was ihr davon haltet.  

Und damit noch einen schönen Donnerstag, ich probiere in den nächsten Tage nochmals einige Beiträge zu veröffentlichen.


Wie ich eine Datenbank mit 86640 gültigen WhatsApp Gruppen Einladungslinks erstellt habe.

30 Mai, 2021

Willkommen zu meinem ersten Beitrag, in diesem Beitrag gehe ich darauf ein wie einfach es ist selbiges zu tun. Und wie man so an Hundert Tausende gültige Nummern kommen könnte. Und wie man das theoretisch auch mit anderen Diensten wie Discord anfangen könnte.

Wie ich auf diese Idee kam:

Auf die Idee kam ich schon vor längerem. Lass es fast zwei Jahre her sein, nur ich habe mir nie die Zeit genommen das schnell auf zusetzten. Auf jeden fall bin ich vor kurzem wieder auf das Projekt gestoßen und habe mir überlegt das ich es jetzt einfach Anfange. Man muss dazu sagen: Es war nicht besonders aufwendig, ich war nach ein paar Stunden fertig. 

Also, wie kam ich auf die Idee: Recht Simple, ich habe einen Tweet übers Web Archive gesehen und bin auf die Idee gekommen einfach nach _chat.whatsapp.com/* _im Web Archive zu suchen. Und so kriegt man eine Liste mit ungefähr 0.8 Millionen Links. Wie habe ich nun die ~86000 gültige Links daraus bekommen.

Das erste Programm: Der Downloader

Das erste Programm was ich dazu geschrieben habe ist der Downloader. Dieser lädt sich die Links vom Webarchive runter und überprüft sie schonmal Lokal auf Dopplungen. Filtert Parameter der URL und nimmt sich den Key raus und speichert diesen in der Datenbank. Das ist im groben und ganzen schon alles für dieses Programm.

Das zweite Programm: Der Überprüfer

Beim zweiten Programm habe ich mir vorher etwas Kopfschmerzen gemacht, am Ende war es aber deutlich einfach als ich gedacht hätte. Wie funktioniert mein Programm nun: Ich stelle eine Anfrage an chat.whatsapp.com/ und frage ganz simple ab ob der Name vorhanden ist und wen ja, speichere ich den Key mit dem Namen in einer neuen Tabelle in meiner Datenbank. Das macht WhatsApp mir hier echt einfach, da ich nicht mal über Proxys oder sonstiges gehen musste, da diese Webseite von WhatsApp meines Wissenstandes kein Limit hat, da ich am Ende bei ungefähr 150-200 Anfragen pro Sekunde war. 

Ungültiger WhatsApp Invite Link: 

Gültiger WhatsApp Invite Link:

Noch ein paar andere Infos:

Ich habe das ganze Programm in Java geschrieben, einfach weil ich mich damit am besten auskenne. Und für die Datenbank habe ich RethinkDB benutzt aus dem selbigen Grund. 

Analyse: 

Was ich mit den ganzen Links und Namen anstellen will: Ich will in der Zukunft noch ein kleines Programm schreiben was die Links durchschaut und in Kategorien einteilt, den nachdem ich mir die ersten Links angeschaut habe ist mir aufgefallen das sicherlich 1/5 allein Pornografische Inhalte sind. Und ein anderer fünftel allein Gruppen im Bereich von schnell Reich werden, BTC, Trading und so weiter sind. Diese Analyse werde ich aber in einem kommenden Blogartikel genauer machen. 

Problematik:

Wir selber sind in den Unterschiedlichsten Gruppen gelandet: Von Klassen Gruppen, über Gruppen von Firmen Mitarbeitern, über einfache Gruppe die nur Notizen hießen, zu Gruppen wo nur scheiße gemacht wurde. Trotzdem könnten wir für alle diese Gruppen Requests an WhatsApp schicken und somit Hundert Tausende an gültigen Nummern speichern und diese für die Unterschiedlichsten Dinge ausnutzen. 

Aber wen man mit einem Account Requests an WhatsApp schickt verstoßt man dann gegen die AGBs und das kann dann zu einer Sperrung des Accounts führen.

Schlusswort: 

Jeder der diese Links für etwas sinnvolles benutzen will kann mich gerne anschreiben und dann gebe ich die natürlich weiter. Und sonnst kann man noch dazu sagen das dies nicht nur mit WhatsApp möglich ist. Das genau gleiche System kann man auch bei z.b. Discord benutzen. 

Zusätzlich ist noch zu sagen das Web Archive sammelt nicht jeden Link weswegen ich auch nicht an jede Einladung die es gibt kommen kann. Das könnte man wohl nur durch Bruteforce erreichen.


Hit Counter

7