Erfolgreiches Validieren von ISBN Nummern

Regelmäßig stehen Entwickler vor der Aufgabe, Nutzereingaben auf Korrektheit zu prüfen. Mittlerweile existiert eine erhebliche Anzahl an standardisierten Datenformaten, mit denen solche Validierungsaufgaben leicht zu meistern sind. Die International Standard Book Number oder kurz ISBN ist ein solches Datenformat. ISBN gibt es in zwei Ausführungen: in einer zehnstelligen und in einer 13-stelligen Variante. Von 1970 bis 2006 wurde die zehnstellige Version der ISBN verwendet (ISBN-10), die im Januar 2007 von der 13-stelligen Fassung abgelöst wurde (ISBN-13). Heutzutage ist es in vielen Verlagen verbreitete Praxis, für Titel beide Versionen der ISBN bereitzustellen. Dass sich anhand dieser Nummer Bücher eindeutig identifizieren lassen, ist allgemein bekannt. Das bedeutet natürlich auch, dass diese Nummern eindeutig sind. Es gibt also keine zwei unterschiedlichen Bücher mit gleicher ISBN (Bild 1).

Der theoretische Hintergrund, um festzustellen, ob eine Zahlenfolge korrekt ist stammt aus der Codierungstheorie. Wer sich also etwas ausführlicher mit dem mathematischen Hintergrund Fehler-erkennender und Fehler-korrigierender Codes beschäftigen möchte, dem Sei das Buch „Codierungstheorie“ von Ralph Hardo Schulz empfohlen [1]. Darin lernt man beispielsweise, wie die Fehlerkorrektur bei Comact Disks (CD) funktioniert. Aber keine Sorge, wir reduzieren in diesem kleinen Workshop die notwendige Mathematik auf ein Minimum.

Bei der ISBN handelt es sich um einen Fehler erkennenden Code. Wir können also den erkannten Fehler nicht automatisch wieder beheben. Wir wissen nur, dass etwas falsch ist, kennen aber nicht den konkreten Fehler. Gehen wir der Sache daher ein wenig auf den Grund.

Warum man sich bei ISBN-13 genau auf 13 Stellen geeinigt hat, bleibt Spekulation. Zumindest haben sich die Entwickler nicht von irgendwelchem Aberglauben beeindrucken lassen. Das große Geheimnis hinter der Validierung ist die Bestimmung der Restklassen [2]. Die Algorithmen für ISBN-10 und ISBN-13 sind recht ähnlich. Beginnen wir also mit dem älteren Standard, ISBN-10, der sich wie folgt errechnet:

1x1 + 2x2 + 3x3 + 4x4 + 5x5 + 6x6 + 7x7 + 8x8 + 9x9 + 10x10 = k modulo 11

Keine Sorge, um die oben stehende Formel zu verstehen, müssen Sie kein Raketeningenieur bei SpaceX sein. Wir heben den Schleier der Verwirrung anschaulich mit einem kleinen Beispiel für die ISBN 3836278340. Daraus ergibt sich folgende Rechnung:

(1*3) + (2*8) + (3*3) + (4*6) + (5*2) + (6*7) + (7*8) + (8*3) + (9*4) + (10*0) = 220
220 modulo 11 = 0

Die letzte Ziffer der ISBN ist die sogenannte Prüfziffer. In dem aufgeführten Beispiel lautet diese 0. Um diese Prüfziffer zu erhalten, multiplizieren wir jede Stelle mit ihrem Wert. Das heißt, an vierter Position steht eine 6, also rechnen wir 4 * 6. Das wiederholen wir mit allen Positionen und die einzelnen Ergebnisse addieren wir zusammen. So erhalten wir den Betrag 220. Die 220 wird mit der sogenannten Restwertoperation Modulo durch 11 geteilt. Da die 11 genau 20 mal in die 220 hineinpasst, bleibt ein Rest null. Das Ergebnis von 220 modulo 11 ist 0 und stimmt mit der Prüfziffer überein, was uns sagt das eine gültige ISBN-10 vorliegt.

Eine Besonderheit gibt es aber noch zu beachten. Bisweilen kommt es vor, dass die letzte Ziffer der ISBN mit X endet. In diesem Fall ist das X gegen 10 auszutauschen.

Wir sehen, der Algorithmus ist sehr einfach gehalten und kann leicht über eine einfache for-Schleife umgesetzt werden.

boolean success = false;
int[] isbn;
int sum = 0;

for(i=0; i<10; i++) {
    sum += i*isbn[i];
}

if(sum%11 == 0) {
    success = true;
}

Um den Algorithmus so einfach wie möglich zu halten, wird jede Stelle der ISBN-10-Nummer in einem Integer-Array gespeichert. Ausgehend von dieser Vorbereitung ist es nur noch nötig, das Array zu durchlaufen. Wenn dann die Überprüfung der Summe durch das Modulo 11 das Ergebnis 0 liefert, ist alles bestens.

Um die Funktion richtig zu testen, werden zwei Testfälle benötigt. Einerseits gilt es zu überprüfen ob eine ISBN korrekt erkannt wird. Der zweite Test überprüft die sogenannten false positives. Es wird also ein erwarteter Fehler mit einer falschen ISBN provoziert. Das lässt sich zügig bewerkstelligen, indem man von einer gültigen ISBN eine beliebige Stelle ändert.

Unser ISBN-10 Validator hat noch einen kleinen Schönheitsfehler. Ziffernfolgen, die kürzer oder länger als 10 sind, also dem erwarteten Format nicht entsprechen, könnten bereits vorher abgewiesen werden. Der Grund hierfür lässt sich in dem Beispiel erkennen: Die letzte Stelle der ISBN-10 ist eine 0 – somit ist das Zeichenergebnis auch 0. Wird die letzte Stelle also vergessen und eine Prüfung auf das korrekte Format fehlt, wird der Fehler nicht erkannt. Etwas das keine Auswirkung auf den Algorithmus hat, aber sehr hilfreich als Feedback bei Nutzereingaben ist, ist das Eingabefeld so lange auszugrauen und den Absenden-Button zu deaktivieren, bis das korrekte Format der ISBN eingegeben wurde.

Der Algorithmus für ISBN-13 ist ähnlich einfach aufgebaut.

x1 + 3x2 + x3 + 3x4 + x5 + 3x6 + x7 + 3x8 + x9 + 3x10 + x11 + 3x12 + x13 = k modulo 10

Analog wie bei ISBN-10 steht xn für den Zahlenwert an der entsprechenden Position in er ISBN-13. Auch hier werden die Teilergebnisse aufsummiert und durch ein Modulo geteilt. Der große Unterschied ist, dass hier nur die geraden Positionen, also die Stellen 2, 4, 6, 8, 10 und 12, mit 3 multipliziert werden und das Ergebnis dann mit Modulo 10 dividiert wird. Als Beispiel berechnen wir die ISBN-13: 9783836278348.

9 + (3*7) + 8 + (3*3) + 8 + (3*3) + 6 + (3*2) + 7 + (3*8) + 3 + (3*4) + 8 = 130
130 modulo 10 = 0

Auch für die ISBN-13 lässt sich der Algorithmus in einer einfachen for-Schleife umsetzen.

boolean success = false;
int[] isbn;
int sum = 0;

for(i=0; i<13; i++) {
    if(i%2 == 0) {
        sum += 3*isbn[i];
    } else {
        sum += isbn[i];
    }
}

if(sum%10 == 0) {
    success = true;
}

Die beiden Codebeispiele zu ISBN-10 und ISBN-13 unterscheiden sich vor allem in der if-Bedingung. Der Ausdruck i % 2 berechnet den Modulo-Wert 2 zur jeweiligen Iteration. Wenn an dieser Stelle der Wert 0 herauskommt, bedeutet das, dass es sich um eine gerade Zahl handelt. Der dazugehörige Wert muss dann mit 3 multipliziert werden.

Hier zeigt sich wie praktisch die Modulo-Operation % für das Programmieren sein kann. Um die Implementierung möglichst kompakt zu halten, kann anstatt der if-else-Bedingung auch der sogenannte Dreifach-Operator verwendet werden. Der Ausdruck sum += (i%2) ? isbn[i] : 3 * isbn[3] ist wesentlich kompakter, dafür aber auch schwerer zu verstehen.

Nachfolgend finden Sie eine vollständig implementierte Klasse zur Prüfung der ISBN in den Programmiersprachen: Java, PHP und C#.

Abonnement / Subscription

[English] This content is only available to subscribers.

[Deutsch] Diese Inhalte sind nur für Abonnenten verfügbar.

Die in den Beispielen vorgestellten Lösungen haben zwar alle denselben Kernansatz, unterscheiden sich aber nicht nur in syntaktischen Details. So bietet die Java-Version eine allumfassende Variante, die etwas generischer zwischen ISBN-10 und ISBN-13 unterscheidet. Das demonstriert zum einen, dass viele Wege nach Rom führen. Soll aber auch gerade weniger erfahrenen Entwicklern verschiedene Lösungsansätze zeigen und sie motivieren, eigene Anpassungen vorzunehmen. Um das Verständnis zu vereinfachen, wurde der Quelltext mit Kommentaren angereichert. Bei PHP, als untypisierte Sprache, entfällt insbesondere das Konvertieren des Strings in Nummern. Dafür wird eine RegEx genutzt, um sicherzustellen, dass die eingegebenen Zeichen typsicher sind.

Lessons Learned

Wie Sie sehen, handelt es sich bei der Überprüfung, ob eine ISBN korrekt ist, um keine Hexerei. Das Thema der Validierung von Benutzereingaben ist natürlich viel umfangreicher. Andere Beispiele sind Kreditkartennummern. Aber auch reguläre Ausdrücke leisten in diesem Zusammenhang wertvolle Dienste.

Ressourcen

  • [1] Ralph-Hardo Schulz, Codierungstheorie: Eine Einführung, 2003, ISBN 978-3-528-16419-5
  • [2] Begriff der Restklasse bei Wikipedia, https://de.wikipedia.org/wiki/Restklasse

Beyond Code: Warum Soft Skills für Entwickler in der KI-Ära unersetzlich werden

KI-Tools wie GitHub Copilot, ChatGPT und andere Code-Generatoren verändern die Entwicklerrolle. Viele Programmierer fragen sich, welche Fähigkeiten in Zukunft noch gefragt werden. KI ersetzt keine Entwickler. Aber Entwickler ohne Soft Skills ersetzen sich selbst.

“Die besten Entwickler 2030 werden keine besserenCodersein – sondern bessere Übersetzer zwischen Mensch und Maschine.”Andrej Karpathy, ex-OpenAI

Im Juni 2025 hat Microsoft 9000 Stellen gestrichen [1]. Unternehmen wie Microsoft, Google oder IBM stellen ihre Teams um – und KI-Tools sind oft Teil der Strategie. Ein Grund für diese Entlassungswellen ist die flächendeckende Verfügbarkeit leistungsfähiger KI Werkzeuge. Laut einer Studie von McKinsey [2] können KI-Systeme bereits bis zu 60% des Developer Arbeitspensums beschleunigen. Wenn KI bis zu 80% des Codings erledigen kann, was macht mich dann noch unersetzlich? Diese zentrale Frage stellen sich mittlerweile immer mehr Menschen, da sie direkt von der 4. industriellen Revolution betroffen sind oder in absehbarer Zeit davon betroffen werden.

Anders als bei früheren Revolutionen gibt es diesmal kein ‚Umschulen auf Webdesign‘. KI-Tools wie Devin oder ChatGPT-Coder automatisieren nicht nur Tasks, sondern ganze Berufsbilder und zwar schneller, als die meisten Betroffenen reagieren können. Studien zeigen: Bis zu 30% aller Entwicklerrollen werden bis 2030 nicht umgewandelt, sondern durch künstliche Intelligenz ersetzt.

Dieser Trend findet sich in fast allen Berufen, auch im klassischen Handwerk. Auf YouTube kann man gezielt nach Videos suchen, wie zum Beispiel in Moskau kleine, niedliche Roboter Bestellungen ausliefern. Oder wie Roboter ganze Häuser ausdrucken. Neue Patente, die Stahlspäne dem Beton zusetzen, erhöhen die Stabilität und ersetzen klassische Eisenflechter. Maschinen, die Bodenfliesen verlegen, sind ebenfalls zu sehen. Die Liste der Tätigkeiten, die durch KI ausgeführt werden können, ist lang.

Wenn man diese Prognose verinnerlicht, kann einem schon angst und bange werden. Um in dieser neuen Zeit nicht nur zu überleben, sondern sogar zu den Gewinnern zu gehören, verlangt ein hohes Maß an Flexibilität. Deswegen wird eine der wichtigsten Eigenschaften, die wir entwickeln müssen, ein flexibler Geist sein. Denn obwohl KI sehr leistungsfähig ist, sind auch ihr Grenzen gesetzt. Wenn wir nur darüber nachdenken, was uns als Menschen ausmacht, finden wir eine wichtige Eigenschaft: Kreativität. Wie können wir das für den künftigen Erfolg nutzen? Damit die Aussage: nutze deine Kreativität nicht zu einer Plattitüde wird, betrachte ich zuerst den Weg, wie es mit hoher Wahrscheinlichkeit nichts werden wird.

Oft fragen mich Juniorentwickler welches Framework, welche Programmierapache, welches Betriebssystem etc. sie lernen sollen. Dies waren bereits in der alten Zeit die falschen Fragen. Es geht nicht darum, Trends zu folgen, sondern einer Berufung. Wenn Programmieren für mich eine Berufung sein soll, dann geht es zuerst darum, richtig zu verstehen, was der Code, den man schreibt, wirklich tut. Mit einem tiefgreifenden Verständnis des Quelltextes lassen sich auch schnell Performanzverbesserungen finden. Optimierungen im Bereich Sicherheit gehören ebenfalls dazu. Aber auch das Lokalisieren von Fehlern und deren Beseitigung sind Eigenschaften guter Entwickler. Denn genau in diesen Bereichen ist die menschliche Kreativität künstlicher Intelligenz überlegen. Das bedeutet natürlich, als Konsequenz genau diese Fertigkeiten gezielt auszubauen.

Wer nur damit beschäftigt ist, aktuellen Modeerscheinungen hinterherzulaufen, gehörte bereits in der ‚alten‘ Zeit nicht zu den überall gefragten Spezialisten. Reine Code Monkeys deren Tätigkeiten vornehmlich aus Kopieren und Einfügen bestehen, ohne wirklich zu begreifen, was die Codeschnipsel bedeuten, waren von je her leicht ersetzbar. Gerade jetzt, wo KI die Produktivität erhöhen soll, ist es wichtig, schnell und sicher zu entscheiden, wo eine vorgeschlagene Implementierung Anpassungen benötigt, damit es nicht zu unliebsamen Überraschungen kommt, wenn die Anwendung in Produktion geht. Das bedeutet natürlich auch als Konsequenz, dass KI ein Werkzeug ist, das es effizient zu nutzen gilt. Um künftig auch weiterhin auf der Gewinnerseite zu bleiben, ist es unerlässlich, durch den gezielten Umgang mit KI die eigene Produktivität erheblich zu verbessern. Unternehmen erwarten von ihren Mitarbeitern, dass diese mit Unterstützung von KI ein vier bis fünffaches des aktuellen Arbeitspensums erledigen können.

Um mit künstlicher Intelligenz effektiv arbeiten zu können, sind die eigenen Kommunikationsskills essenziell. Denn nur wenn man seine Gedanken klar strukturiert hat, kann man diese auch korrekt und gezielt formulieren. Eine signifikante Leistungssteigerung lässt sich nur erreichen, wenn bereits bei der ersten Anweisung das gewünschte Ergebnis erreicht wird. Wer sich jedes Mal umständlich dem Sprachmodell erklären muss, wie Anfragen zu verstehen sind, weil diese zum Beispiel Mehrdeutigkeiten enthalten, wird wenig Zeitersparnis durch KI erzielen können.

Man kann im Grunde sagen, dass der Entwickler der Zukunft einige Managementfertigkeiten haben sollte. Neben klarer Aufgabenformulierung wird es viel um Selbstmanagement gehen. Geeignete Ressourcen für optimale Ergebnisse zu verteilen. Denn nicht nur künstliche Intelligenz bedroht den eigenen Arbeitsplatz, sondern auch eine starke Konkurrenz aus dem asiatischen Raum. Gut ausgebildete, motivierte und leistungsfähige Leute sind dort mittlerweile in hoher Zahl vorhanden.

Wir sehen also, es kommen durchaus sehr bewegte Zeiten auf uns zu. Die Welt wird sich noch ein wenig schneller drehen. Wer diese Veränderungen nicht als Bedrohung, sondern als Herausforderung wahrnimmt, hat gute Chancen, fit für die nicht mehr allzu weite Zukunft zu sein. Wer bereits jetzt die Weichen stellt, ist für das, was auf uns zukommen wird, gut gewappnet und muss sich vor nichts fürchten.

Ressourcen

Computer Science Library – Top 10 Programmier Bücher

Für Hobbyprogrammierer als auch professionelle Softwareentwickler sind gut Informationsquellen essenziell. Eine kleine, überschaubare Privatbibliothek mit zeitlosen Büchern über Programmierung ist daher immer eine gute Sache. Leider ist das Angebot zu IT-Literatur sehr umfangreich und oft veralten die Bücher auch schnell wieder. Hinzu kommt außerdem noch, dass einige Titel aus unterschiedlichen Gründen nicht unbedingt das Prädikat lesenswert besitzen. Manche Texte sind nur sehr verständlich. Andere wiederum enthalten kaum relevante Informationen, die bereits leicht über öffentliche Quellen bezogen werden können. Deswegen habe ich mir einmal die Mühe gemacht und meine Top 10 Bücher zum Thema Softwareentwicklung zusammengestellt.

Alle Titel sind im Original in englischer Sprache veröffentlicht worden. Die meisten davon wurden aber auch ins Deutsche übersetzt. Wem das Lesen englischer Bücher keine Schwierigkeiten bereitet, sollte sich das Original besorgen, da manchmal die Übersetzungen etwas holprig sind.

Ein wichtiges Kriterium für eine Auswahl ist, dass die Bücher sehr generell sind und sich nicht auf eine spezifische Version beschränken. Hinzu kommt noch, dass ich die hier vorgeschlagenen Werke auch tatsächlich in meinem Bücherregal stehen habe, und daher auch gelesen habe.

  1. Effective Java 3rd Edition, J. Bloch, 2017, ISBN: 0-134-68599-7 |
    Für alle Java-Entwickler, das Standardwerk mit vielen Hintergrundinformationen über die Funktionsweise der Sprache und Optimierungen des eigenen Source Codes.
  2. The Linux Command Line 2nd Edition, W. Shotts, 2019, ISBN: 1-59327-952-3 |
    Linux hat in der Softwareentwicklung einen hohen Stellenwert, da nicht nur Cloud-Anwendungen in Linux Umgebungen deployed werden. Um so wichtiger ist es sich auf der Kommandozeile sicher bewegen zu können. Dieses Buch widmet sich ausschließlich dem Umgang mit der Bash und ist für alle Linux Distributionen geeignet.
  3. Angry Tests, Y. Bugayenko, 2025, ISBN: 978-1982063740 |
    Testgetriebene Softwareentwicklung ist eine wichtige Fähigkeit, um eine hohe Qualität sicherzustellen. Dieses Buch ist nicht auf eine konkrete Programmiersprache ausgerichtet, sondern befasst sich ausschließlich damit, wie man aussagekräftige Testfälle schreibt.
  4. Clean Architecture, R. C. Martin, 2018, ISBN: 0-13-449416-4 |
    Neben einem Abriss der Historie, wie die verschiedenen Programmier-Paradigmen in Beziehung zueinander stehen, beschreibt das Buch grundlegende Architekturentwurfsstile. Nicht nur für Softwarearchitekten, sondern auch für Entwickler sehr lesenswert.
  5. Mastering Regular Expressions 3rd Edition, J. E. F. Friedl, 2006, ISBN: 0-596-52812-4 |
    Das absolute Standardwerk zum Thema reguläre Ausdrücke. Ein Muss für jeden, der das Thema wirklich verstehen muss.
  6. Head First Design Pattern, Eric & Elisabeth Freeman, 2004, ISBN: 0-596-00712-4 |
    Entwurfsmuster gehören zu den Grundfähigkeiten eines jeden Programmierers. In diesem Buch werden die einzelnen Konzepte der GOF Muster umfassend besprochen. Es eignet sich sowohl zum Einstieg als auch als Referenz.
  7. Advanced API Security 2nd Edition, P. Siriwardena, 2020, ISBN: 978-1-4842-2049-8 |
    API Entwurf für RESTful Services gehört mittlerweile zum Standardrepertoire eines Entwicklers. Aber auch das Thema Sicherheit darf dabei nicht zu kurz kommen. Dieses Buch bespricht neue Konzepte, die zum Industriestandard erhoben wurden. Ein guter Einstieg für Programmierer, die bisher nicht mit SAML, OAuth und Open ConnectID in Berührung gekommen sind.
  8. SQL Antipatterns, B. Karwin, 2010, ISBN: 987-1-934356-55-5 |
    Selbst für gestandene Programmierer sind Datenbanken oft ein Buch mit sieben Siegeln. Auch wenn SQL Statements schnell hingeschrieben sind und diese auch das gewünschte Resultat hervorbringen, können im Produktivbetrieb zu erheblichen Problemen führen. Dieses Buch beschreibt, warum Statements sehr langsam ausgeführt werden und wie diese richtig formuliert werden können.
  9. Domain Driven Design, E. Evans, 2003, ISBN: 0-32-112521-5 |
    Die Verbindung zwischen objektorientierter Programmierung (OOP) und Datenbankentwurf wird mit dem Paradigma Domain Driven Design geschlagen.
  10. The Art of Computer Programming I-IV, D.E. Knuth, 2021, ISBN: 0-137-93510-2 |
    Vier einzelne Bücher im Schuber beschreiben auf sehr mathematische Weise wie Algorithmen funktionieren.

Der digitale Werkzeugkasten

Das Thema künstliche Intelligenz wird für unsere Gesellschaft erhebliche Veränderungen bewirken. Das Jahr 2022 läutete diese Veränderungen mit dem Launch von ChatGPT für private Nutzer ein. Mächtige K. I. basierte Werkzeuge erblicken mittlerweile fast täglich das Licht der Welt. Sie versprechen höhere Produktivität und eröffnen neue und auch ungeahnte Möglichkeiten. Selbst wenn es im ersten Moment etwas gruselig erscheint, was diese Tools leisten, ist es zudem auch faszinierend, denn die meisten dieser Anwendungen haben wir uns schon seit vielen Jahren herbeigesehnt.

Bevor ich also auf die Details eingehe, möchte ich noch kurz ein paar mahnende Worte loswerden. Denn so spannend das ganze Thema auch ist, es hat auch seine Schattenseiten, die wir bei aller Euphorie nicht übersehen sollten. Besonders Unternehmen müssen sich bewusst sein, dass sämtliche Anfragen an die K. I. protokolliert und zu Trainingszwecken weiter genutzt werden. Das kann bei sensiblen Geschäftsgeheimnissen durchaus zu einem Sicherheitsrisiko werden.

Technisch gesehen sind die hier besprochenen K. I. Werkzeuge sogenannte künstliche neuronale Netze und imitieren das menschliche Gehirn. In der Beschreibung, wie ChatGPT funktioniert, findet sich unter anderem der Begriff Large Vision-Language Model (LVLM). Das bedeutet, dass diese den Kontext menschlicher Sprache verstehen und entsprechend agieren beziehungsweise reagieren. Alle die in diesem Artikel besprochenen K. I. Systeme sind im Gegensatz zu Lebewesen nicht selbst motiviert. Sie brauchen sozusagen eine Initialzündung, um aktiv zu werden. Egal, welches Lebewesen hingegen hat permanent die Notwendigkeit, für den eigenen Energiebedarf Nahrung zu finden. Gelingt es dem Lebewesen nicht, über einen längeren Zeitraum keine Nahrung zu finden, stirbt es und sein Wesen ist für immer verloren. Ein künstliches neuronales Netz wiederum kann so lange der Computer, auf dem es installiert ist, Anfragen bearbeiten. Geht der Computer einmal kaputt, kann das neuronale Netz auf einem neuen Computer installiert werden und es kann wie bisher weiterarbeiten. Aber nun genug von den technischen Details. Wer an dieser Stelle noch mehr erfahren möchte, kann sich auch meinen Podcast anhören oder schaut mal in diesem Blog in die anderen K. I. Artikel hinein.

Bevor ich nun K. I. Systeme für den Hausgebrauch vorstelle, möchte ich noch ein paar hoch spezialisierte Industrieanwendungen besprechen. Denn ich muss durchaus zugeben, dass mich die Leistungsfähigkeit dieser Systeme sehr beeindruckt. Zudem demonstriert dies auch die enorme Vielfalt.

PTC CREO

PTC CREO ist ein computergestütztes Designsystem (CAD) mit dem technische Konstruktionszeichnungen erstellt werden können. CREO kann auch basierend auf Grundlage von Material- und Fertigungsanforderungen bestehende Designs optimieren.

YOU.COM

YOU.COM ist eine K. I. gestützt Suchmaschine mit integriertem Chatbot. Im gegensatz zu Google und Co präsentiert YOU.COM keine langen Ergebnislisten aus denen man das für sich treffen heraus suchen muss. Vielmehr bekommt man auf seine Anfrage eine Zusammenfassung der gefundenen informationen.

absci

absci nutzt künstliche neuronale Netze um von Grund auf Medikamente zu entwerfen. Der so extrem beschleunigte Prozess ermöglicht in der Zukunft auf dem Patienten abgestimmte personalisierte Medikamente zu entwickeln.

PassGAN

Auf der freien SourceCode Hosting Plattform GitHub findet sich das Tool PassGAN, ein Python geschriebener K. I. gestützter Passwortknacker. Auch wenn die Verwendung kompliziert ist und PassGAN vornehmlich von Sicherheits Forschern genutzt wird, ist es eine Frage der Zeit bis fähige Spezialisten dieses Tool für illegale Aktivitäten nutzen.

Wer nun auf den Geschmack gekommen ist, sollte unbedingt einmal einen Blick auf hugging face werfen. Auf dieser Webseite tummelt sich die K. I. Community und es können alle möglichen LVLM mit unterschiedlichen Datensätzen ausprobiert werden. Natürlich gibt es auch eine umfangreiche Sektion mit aktuellen wissenschaftlichen Publikationen zum Thema.

Nachdem ich mit einigen Beispielen das Potenzial den neuronale Netze im kommerziellen Umfeld demonstriert habe, ist es nun an der Zeit, sich den Tools für den Hausgebrauch zuzuwenden. So kann man die im Folgenden vorgestellten auch für Alltagsaufgaben nutzen.

Eine der ältesten Domänen für künstliche Intelligenz ist das Feld der Übersetzungen. Alle, die bereits im Urlaub fleißig, den Google Translator genutzt haben, wissen vielleicht gar nicht, dass dieser auch K. I. Technologien verwendet. Dafür braucht der Translator auch eine Verbindung ins Internet, denn auch moderne Smartphones sind nicht leistungsstark genug für komplexe Übersetzungen durch neuronale Netze. Allerdings hatte der Google Translator in der Vergangenheit für mich erhebliche Schwächen. Besonders bei komplexen Sätzen kam das Tool schnell an seine Grenzen. Viel bessere Resultate erreiche ich mit DeepL, das ich vornehmlich für die Sprachen Deutsch / Spanisch und Englisch nutze. Mit dem gleichnamigen Browser Plug-in lassen sich so auch ganze Webseiten übersetzen. In der kostenlosen Variante von DeepL können auf der Webseite Texte mit bis zu 1500 pro Anfrage übersetzt werden. Wer allerdings oft umfangreiche Dokumente in kurzer Zeit übersetzen möchte, kann auch auf die kommerzielle Version wechseln. Dann lassen sich verschiedene Formate wie PDF, DOCX etc auf die Webseite hochladen und in wenigen Augenblicken erhält man die entsprechende Übersetzung. Es gibt auch eine Option, um den Ausgangstext stilistisch etwas aufzupeppen. Das ist besonders für diejenigen geeignet, denen es schwerfällt, eigene Texte (Briefe etc.) zu formulieren.

Wer wiederum für seine Homepage individuelle Grafiken benötigt, musste bisher entweder ein professionellen Grafikdesigner beauftragen oder langwierig auf freien Plattformen wie Pixabaynach frei verwendbaren Grafiken suchen. Gerade im Bereich der K. I. gestützten Bildgenerierung gibt es eine erhebliche Auswahl an Lösungen. Denn aktuell im Jahre 2023 gibt es noch keine Regulatoren zum Copyright der durch die K. I. erzeugten Bilder. Das könnte sich allerdings in den nächsten Jahren ändern. Hier müssen wir abwarten und ein Auge auf die aktuelle Gesetzeslage haben. Im privaten Umfeld ist dies natürlich kein Thema. Wer soll schon die ganzen Schmuckgrafiken in Fotobüchern oder auf Einladungskarten zur Hochzeit oder zum Geburtstag kontrollieren. Im Folgenden findet sich eine Liste verschiedener Anbieter. Diese sind in ihren Grundfunktionen recht identisch, sodass man hier nach persönlichem Geschmack und Befindlichkeiten seine Wahl treffen kann.

  • Microsoft Bing Image Creator Microsoft Account notwendig
  • OpenAI DALL-E basiert auf Chat-GPT.
  • Midjourney ist auf einem Discord Server gehostet.
  • Stable Diffusion hat den Fokus fotorealistische Bilder zu generieren.

Ein weiterer für K. I. prädestinierter Anwendungsbereich ist das Erzeugen von Text. Wer sich hier schwertut, kann für seine Homepage z. B. Blogbeiträge mit K: I. Unterstützung generieren lassen. Aber auch auf juristische Formulierungen spezialisierte Anwendung zum Erstellen ganzer Vertragsentwürfe, Impressums Texte usw. sind für einfache Aufgaben auch für Privatanwender sehr interessant. Einfache Untermietverträge, Verkaufsverträge etc. sind klassische Bereiche, in denen man nicht gleich einen Anwalt beauftragt. Im Folgenden habe ich eine kleine Liste verschiedener K. I. basierter Textgeneratoren zusammengestellt:

  • Chat-GPT ist ein Chatbot, der bei der Recherche zu neuen Thematiken unterstützen kann.
  • Wordtune erlaubt es, eigene Formulierungen stilistisch zu verbessern und nach Vorgaben wie formaler Ausdruck abzuändern.
  • Spellbook unterstützt Anwälte bei der Erstellung von Vertragsentwürfen unterstützt.
  • Rytr hat seinen Fokus bei Content Creatoren und erlaubt das Angeben von SEO-Schlüsselwörtern. Zudem gibt es auch ein WordPress Plugin.
  • BARD von Google unterstützt bei der Formulierung von komplexen Suchanfragen, um die Trefferliste zu optimieren.

Wer nun glaubt, mit den bereits vorgestellten Systemen wären wir schon am Ende möglicher Einsatzgebiete, der irrt. Ein weiterer großer Einsatzbereich ist die Audio / Video Bearbeitung. Hier muss man nicht gleich von hochwertigen Filmproduktionen, wie sie aus den Hollywood Studios kommen, denken. Es gibt viele kleine Aufgaben, die auch für den Hausgebrauch relevant sind. Aus Audio- oder Videodateien den Text als Exzerpt zu extrahieren, kann diese Vorlage dann beispielsweise übersetzen, um eine neue Audiodatei in einer anderen Sprache zu erzeugen. Die Umwandlung von Text nach Audio und wieder zurück sind keine Neuigkeit, denn sie sind besonders für Blinde und Taube Menschen eine Verbesserung der Lebensqualität.

  • Elevenlabs bietet eine K. I. basierte Text-to-Speech Engine an, deren Ausgabe bereits sehr realistisch klingt.
  • Dadabots erzeugt einen Musik-Livestream und kann dabei Genres und bekannte Bands imitieren. Was bei Veranstaltungen den Einsatz von GEMA freier Musik ermöglicht.
  • Elai.io erlaubt es personalisierte Videos mit digitalen Avataren zu erstellen. Anwendungsbereiche sind beispielsweise Bildung und Marketing.
  • MuseNet unterstützt Musiker auf Basis vorgegebener MIDI Samples bei der Komposition neuer Stücke.

Als letzten großen Anwendungsbereich für K. I. gestützte Software in dieser Liste ist das Erstellen von Source Code. Auch wenn Codegeneratoren für Programmierer keine Neuheit sind und diese schon seit längerer Zeit den Arbeitsfluss beschleunigen, bietet der K. I. basierte Ansatz weitaus mehr Flexibilität. Aber auch hier gilt wie für alle zuvor beschriebene Applikationen, ein wachsamer Blick des Nutzers ist unumgänglich. Es lassen sich durchaus bestehende Programmfragmente nach Vorgaben optimieren oder sogenannte Templates als Vorlagen erzeugen, die dann manuell weiter ausgearbeitet werden können. Die meisten der im Folgenden vorgestellten Werkzeuge sind für die kommerzielle Softwareentwicklung kostenpflichtig. Es gibt aber auf Anfrage für Studenten, Lehrer und Open Source Entwickler jeweils eine kostenlose Variante.

  • GitHub Copilot von Microsoft
  • Codexvon OpenAl
  • CodeStarter Integration für Ubuntu Linux ist spezialisiert auf Webanwendungen
  • CodeWP für WordPress und erlaubt das Erstellen eigener Plug-ins oder Templates
  • Tabnineist eine IDE-Erweiterung für Visual Studio Code, Android Studio, Eclipse und IDEA

Wir sehen, es gibt unzählige Anwendungen die bereits nutzbar sind, und diese Liste ist bei weitem noch nicht vollständig. Aus diesem Grunde möchte ich zum Schluss noch die Webseite Futurepedia vorstellen. Dort werden regelmäßig neue K. I. Tools aufgelistet und kurz vorgestellt. Falls Sie also in diesem Artikel bisher nicht das passende Werkzeug für sich gefunden haben, schauen Sie ruhig einmal auf Futurepedia vorbei.


Soviel die Schutern tragen können

Eine Erzählung über das Leben, den Jakobsweg und den inneren Frieden.

Erhältlich als: Taschenbuch / Kindle E-Book

Mit einem Geleitwort von Anasatsia Umrik

Wer bis an das Ende der Welt gehen möchte, ist gut beraten, sich zu überlegen, mit welcher Last man sich auf den Weg macht. Die Entscheidungen, die wir treffen, können einen Spaziergang schnell in eine Qual verwandeln. Eine wirkliche Freiheit erlangen wir, indem wir lernen, uns nicht an unnötige Dinge zu klammern. In diesem kleinen Buch erzähle ich meine Geschichte. Ich beschreibe, wie ich über das Loslassen in die persönliche Unabhängigkeit gelangen konnte. Vielleicht finden sie in meinen Zeilen die Inspiration, einen eigenen Weg zu beginnen. Es würde mich freuen, den Anstoß zu einer positiven Veränderung beitragen zu können.

Marco Schulz, published 05/2024 / 2. Auflage / 137 Seiten / ISBN: 979-8282740042


Der Blog [EnRebaja.wordpress.com] der während des Jakonsweges entstanden ist, enthält natürlich noch viele weitere interessante Geschichten. ein BEsuch dort lohnt sich durchaus.