Zum Inhalt springen
Beiträge nach Autor

Autor: Ammar Najjar

Ammar Najjar33 Beiträge

Blog-Beiträge

  • Mein lokales KI-Coding-Toolkit: Wie ich Agenten schnell und Token-effizient halte

    Mein lokales KI-Coding-Toolkit: Wie ich Agenten schnell und Token-effizient halte

    KI-Coding-Agenten sind fest in meinen täglichen Arbeitsablauf integriert. Ich nutze OpenCode und Claude Code für unterschiedlichste Aufgaben: vom Einarbeiten in unbekannte Codebasen und der Fehleranalyse bis hin zur Umsetzung von Änderungen, Code-Reviews und der Arbeit an architektonischen Fragestellungen.

    Weiterlesen →
  • ngrx-graph: Statische Analyse und Graph-Visualisierung für NgRx-Anwendungen

    ngrx-graph: Statische Analyse und Graph-Visualisierung für NgRx-Anwendungen

    Wenn Sie jemals eine Action durch eine umfangreiche NgRx-Codebasis verfolgt haben und sich fragten, welcher Effect darauf hört, welcher Reducer sie verarbeitet und ob ein anderer Effect im Hintergrund eine weitere Action in der Kette auslöst, kennen Sie das Problem. Das manuelle Durchsuchen des Codes funktioniert so lange, bis es an seine Grenzen stößt. Ein einziger verpasster dispatch()-Aufruf, der tief in einem mergeMap vergraben ist, und Ihr mentales Modell bricht zusammen.

    Weiterlesen →
  • Wie ich Cloudflare für meine Website konfiguriere

    Wie ich Cloudflare für meine Website konfiguriere

    Wenn Sie heute Ihr Cloudflare-Dashboard öffnen, finden Sie dort eine Vielzahl von Funktionen zur Verbesserung von Leistung, Sicherheit und Zuverlässigkeit. Einige sind standardmäßig aktiviert, andere werden empfohlen, und im Zuge der Weiterentwicklung der Plattform kommen regelmäßig neue Möglichkeiten hinzu. Angesichts der Fülle an Optionen wollte ich genauer verstehen, wie sich die einzelnen Einstellungen auf meine Website auswirken.

    Weiterlesen →
  • Wie diese Website funktioniert: Ein technischer Blick auf den Stack

    Wie diese Website funktioniert: Ein technischer Blick auf den Stack

    In einem Begleitartikel habe ich darüber geschrieben, warum ich diese Website mit Astro neu gebaut habe und wie diese Entscheidung zu einem viel größeren Projekt wurde. Jener Artikel handelte von der Reise und den Überlegungen. Dieser hier handelt vom Ergebnis: Wie die Website tatsächlich funktioniert, von der Schicht, auf der ein Beitrag geschrieben wird, bis zu dem Moment, in dem er im Browser eines Lesers erscheint.

    Weiterlesen →
  • Ein Mittagsgespräch hat meine Website verändert

    Ein Mittagsgespräch hat meine Website verändert

    Einige der spannendsten Projekte, an denen ich gearbeitet haben, begannen in überraschend alltäglichen Momenten. Ein Gespräch führt zu einer neuen Idee, jemand teilt eine Erfahrung aus seiner Arbeit, oder ich stoße auf einen anderen Ansatz für ein vertrautes Problem. Das Gespräch endet irgendwann, alle kehren zu ihrer täglichen Arbeit zurück, doch eine kleine Idee bleibt weiter in meinen Gedanken. In den folgenden Tagen wächst diese Idee langsam zu Dokumentation, Notizen, Experimenten und gelegentlich zu einem völlig neuen Projekt zurück. Wenn ich zurückblicke, kann ich viele meiner liebsten Lernerfahrungen genau auf solche Momente zurückführen, und der Neubau meiner persönlichen Website wurde eine weitere dieser unerwarteten Reisen.

    Weiterlesen →
  • Angular AI in echten Projekten sinnvoll einsetzen

    Angular AI in echten Projekten sinnvoll einsetzen

    KI kann eine Komponente erzeugen, einen Test schreiben oder einen Compilerfehler erklären. In realen Anwendungen hängen die Ergebnisse jedoch deutlich stärker vom Projektkontext als von den Fähigkeiten des Modells ab. Sie kennt weder eure Architektur noch eure Konventionen oder die Grenzen, die über Jahre entstanden sind.

    Weiterlesen →
  • Jede Kamera erzählt eine Geschichte

    Jede Kamera erzählt eine Geschichte

    Ab und zu ertappe ich mich dabei, wie ich mir neue Kameras ansehe. Ich öffne einen weiteren Testbericht, vergleiche ein weiteres Datenblatt oder sehe mir an, wie ein Fotograf erklärt, warum die diesjährige Kamera besser ist als die letztjährige. Es beginnt immer mit einer einfachen Neugier, und bevor ich es merke, sind Stunden vergangen. Irgendwo zwischen Vergleichsvideos, Fotografie-Foren und Gebrauchtanzeigen ertappe ich mich dabei, wie ich mir vorstelle, eine andere Kamera zu besitzen.

    Weiterlesen →
  • Neun Jahre auf GitHub Pages, warum ich endlich zu Cloudflare gewechselt bin

    Neun Jahre auf GitHub Pages, warum ich endlich zu Cloudflare gewechselt bin

    Fast neun Jahre lang war meine Website auf GitHub Pages zu Hause. Kostenlos, zuverlässig, nahezu wartungsfrei. Warum also der Umzug? Der Wechsel zu Cloudflare Pages warf einige Fragen auf. Dieser Beitrag zeigt, was mich zu diesem Schritt bewogen hat, wie die Migration ablief, welche Probleme dabei auftraten und welche Erkenntnisse ich daraus gewonnen habe.

    Weiterlesen →
  • Lokale KI auf einem MacBook Pro mit 16 GB RAM: Was wirklich funktioniert

    Lokale KI-Coding-Assistenten klingen verlockend: keine API-Kosten, Code bleibt auf der eigenen Maschine, und das Ganze kostenlos. Aber ein Setup, das auf einem 16-GB-MacBook-Pro-M1 wirklich gut läuft, erfordert mehr Trial and Error, als die meisten Guides zugeben.

    Weiterlesen →
  • Essentielle Entwicklungswerkzeuge: Mein Brewfile Setup

    Der Werkzeugkasten prägt, wie wir als Softwareentwickler arbeiten und was wir erreichen können. Im Laufe der Zeit habe ich mir eine Sammlung essenzieller Tools aufgebaut, die meine Produktivität steigern und die Entwicklung angenehmer machen. Hier ist mein Homebrew-Setup mit den Werkzeugen, die ich täglich nutze.

    Weiterlesen →
  • Portfolio, ein leichter persönlicher Portfolio-Tracker

    Dieser Beitrag beschreibt Design und Implementierung eines browser-first Portfolio-Trackers. Im Fokus: Anforderungen, die Herausforderungen während der Entwicklung und wie die finale Lösung diese adressiert, mit Code-Snippets zu Zustandsverwaltung, Caching und Diagramminteraktion.

    Weiterlesen →
  • Git-Befehle meistern: Ein praktischer Leitfaden

    Git ist unverzichtbar für die Versionskontrolle: Änderungen nachverfolgen, effektiv zusammenarbeiten, Projektverwaltung. Die schiere Bandbreite an Funktionen kann überwältigen, aber wer die Schlüsselbefehle versteht, vereinfacht seinen Workflow enorm. Dieser Artikel stellt eine Auswahl praktischer Git-Befehle vor und erklärt, was sie tun, wie man sie einsetzt und wann sie am effektivsten sind.

    Weiterlesen →
  • Angular - Content Projection

    Content Projection erlaubt in Angular, eine Komponente in eine andere einzufügen. Das verändert, wie Angular-Entwickler ihre Anwendungen und Bibliotheken gestalten: hin zu flexiblen, wiederverwendbaren Komponenten.

    Weiterlesen →
  • Reactjs: Arrays in jsx

    Als ich vor einigen Monaten das Reactjs Tutorial ausprobiert habe, ist mir aufgefallen, dass im offiziellen Startercode dieselben div-Elemente in der Methode render() wiederholt werden. Falls sich am Quellcode etwas ändert, liste ich ihn hier auf:

    Weiterlesen →
  • Fetch mit Gitlab API

    Ich verwende gitlab und habe viele Repositories, die ich täglich oder sogar mehr als einmal pro Tag verfolgen muss. Es war erstens sehr ermüdend, alle diese Repositories zu klonen, wenn ich meinen Arbeitsrechner wechsle, und zweitens, all diese Repositories aktuell zu halten. Aus diesem Grund begann ich, ein Automatisierungsskript zu schreiben, um die langweiligen Aufgaben von meinen Schultern zu nehmen.

    Weiterlesen →
  • PyConDe & PyData 2019

    Ich bin gerade von PyConDe & PyData-2019 zurückgekommen und möchte meine Erfahrungen dort festhalten. Das hier ist eher ein Tagebuch als ein Blog, in dem ich über folgendes berichte:

    Weiterlesen →
  • RxJS Serie - Observables

    RxJS (auf Github) ist eine Bibliothek für reaktive Programmierung in Javascript, und in dieser Serie möchte ich meinen Weg des Lernens mit euch teilen.

    Weiterlesen →
  • Benutzerdefinierte Selenium Webdrivers mit Decorators

    Wie erstellt man dynamisch benutzerdefinierte Selenium WebDriver-Klassen mit einem parametrisierten Browser-Binary-Pfad?

    Weiterlesen →
  • Fedora23 Upgrade (unbenanntes Home)

    Als ich versucht habe, von fedora23 auf fedora24 zu aktualisieren, hatte ich das Problem, dass das home-Verzeichnis seine Beschriftung verloren hat:

    Weiterlesen →
  • Vim aus den Quellcode kompilieren

    Viele Male, wenn ich vim verwenden möchte, das im Haupt-Repo jeder Linux-Distribution enthalten ist, stelle ich fest, dass ihm eine Art Unterstützung fehlt, sei es Python oder Client-Server-Modus oder eine andere Funktion. Deshalb muss ich es manuell aus den Quellen kompilieren und installieren.

    Weiterlesen →
  • Einrichtung des Lwa4p Roboterarms

    Während meiner Experimente mit dem Powerball Lightweight lwa4p Roboterarm von Schunk hatte ich viele Schwierigkeiten, ihn mit moveit in Bewegung zu setzen. In diesem Beitrag teile ich diese Erfahrung.

    Weiterlesen →
  • Abenteuer durch meine vimrc (nvimrc)

    In diesem Beitrag werde ich Sie auf ein Abenteuer in meiner früheren vimrc und derzeitigen init.vim mitnehmen, die ich über die letzten Jahre durch die Nutzung von vim dann neovim gesammelt habe. Ich werde die Funktion oder den Feature erklären und dann die Konfigurationen oder den Code angeben, der in die Datei vimrc (init.vim) eingefügt werden sollte, um dieses Feature zu aktivieren.

    Weiterlesen →
  • OpenCV auf OpenShift

    Als ich OpenCV auf meinem Python-2.7 OpenShift Online Cartridge installieren wollte, stieß ich auf das Problem der Kontingentbegrenzung auf 1 GB.

    Weiterlesen →

Lesenotizen

  • Rich Dad Poor Dad

    Rich Dad Poor Dad

    Rich Dad Poor Dad von Robert T. Kiyosaki und Sharon L. Lechter ist eines der meistverkauften Finanzbücher aller Zeiten. Es wurde in 51 Sprachen übersetzt und ist Teil einer Buchreihe, die weltweit über 30 Millionen Mal verkauft wurde. Das Buch erzählt die Geschichte zweier Vaterfiguren in Kiyosakis Leben: seines hochgebildeten, aber mit finanziellen Schwierigkeiten kämpfenden leiblichen Vaters und des ungebildeten, aber wohlhabenden Vaters seines besten Freundes Mike, der zu seinem finanziellen Mentor wurde und als einer der reichsten Männer Hawaiis starb. Aus diesen gegensätzlichen Beispielen leitet Kiyosaki sechs Lektionen über Geld, Vermögenswerte und die Denkweise ab, die Wohlhabende vom Rest der Gesellschaft unterscheidet.

    Weiterlesen →
  • Raum schaffen

    Raum schaffen

    Derek Draper hat über zehn Jahre lang Top-Manager der FTSE-100-Unternehmen begleitet und gecoacht. In Create Space (2018) bündelt er seine Erfahrungen in einer zentralen Kernthese: Die moderne Herausforderung besteht keineswegs darin, verfügbare Zeiträume vollständig auszufüllen, sondern darin, gezielt Freiräume zu schaffen. Menschliche Geschichte war jahrhundertelang von Expansion und Verdichtung geprägt. Heute stehen wir erstmals vor dem Problem dauerhafter Überlastung und voller Terminkalender. Echter Fortschritt und persönliche Reifung gelingen nur noch durch bewusstes Innehalten. Draper gliedert sein Konzept in vier Dimensionen, Denken, Verbinden, Handeln und Sein, und untermauert sie mit praktischen Werkzeugen aus seiner Coaching-Praxis, von strukturierter Reflexion bis zum wöchentlichen Treffen mit sich selbst.

    Weiterlesen →
  • Wie Google funktioniert

    Wie Google funktioniert

    Google wurde 1998 von zwei Stanford-Doktoranden, Larry Page und Sergey Brin, gegründet: ohne formelle betriebswirtschaftliche Erfahrung und ohne MBA-Lehrbuch. Dieses Buch erzählt aus erster Hand, was danach geschah, geschrieben von Eric Schmidt, Googles CEO von 2001 bis 2011, und Jonathan Rosenberg, dem langjährigen Leiter der Produktentwicklung. Ihre These ist unmissverständlich: Das alte Befehls- und Kontrollmanagement überlebt das Tempo moderner Innovation nicht. Der einzige nachhaltige Weg besteht darin, ein Unternehmen um "Smart Creatives" aufzubauen, um kompromissloses Einstellen und um eine Kultur, die Ingenieure ins Zentrum jeder Entscheidung stellt. Wer wissen will, warum Google so funktioniert, wie es funktioniert, bekommt hier die Antwort von denen, die es so gemacht haben.

    Weiterlesen →
  • Schnelles Denken, langsames Denken

    Schnelles Denken, langsames Denken

    Daniel Kahneman, der Psychologe und Nobelpreisträger für Wirtschaftswissenschaften des Jahres 2002, widmete sein Leben der Erforschung menschlicher Entscheidungsprozesse, einen Großteil davon gemeinsam mit seinem langjährigen Weggefährten Amos Tversky. Schnelles Denken, langsames Denken bündelt diese Forschung zu einer eindrucksvollen Reise durch unsere kognitive Architektur. Es liefert die Sprache, um zu verstehen, warum unser Denken so oft unbemerkt von Voreingenommenheiten gesteuert wird. Die zentrale Erkenntnis lautet: Das menschliche Urteilsvermögen ist auf vorhersehbare Weise fehlerhaft. Sobald man die kognitiven Abkürzungen durchschaut, kann man beginnen, sie gezielt zu korrigieren.

    Weiterlesen →
  • The Five Dysfunctions of a Team

    The Five Dysfunctions of a Team

    Patrick Lencioni, der amerikanische Unternehmensberater und Gründer der Table Group, schrieb Die 5 Dysfunctions of a Team als Führungsfabel: ein kurzer Roman, der diagnostiziert, warum hochqualifizierte Gruppen so oft unterdurchschnittlich abschneiden, erzählt anhand einer angeschlagenen Start-up-Firma im Silicon Valley und ihrer neuen CEO. Das Buch identifiziert fünf miteinander verbundene Dysfunktionen, fehlendes Vertrauen, Scheu vor Konflikten, fehlendes Engagement, Scheu vor Verantwortung und fehlende Ergebnisorientierung, und jede davon fließt aus der darunterliegenden.

    Weiterlesen →
  • Atomic Habits

    Atomic Habits

    In seinem Buch „Atomic Habits" beschreibt James Clear die Prinzipien der Gewohnheitsbildung und Verhaltensänderung. Er erzählt von seiner persönlichen Genesung nach einer schweren Verletzung, die ihn zu der Erkenntnis führte, dass bedeutende Fortschritte aus einer Reihe kleiner, konsequenter Handlungen entstehen, nicht aus einzelnen transformativen Ereignissen. Clear stellt die „Vier Gesetze der Verhaltensänderung" vor: Gewohnheiten offensichtlich, attraktiv, einfach und befriedigend machen. Er betont die Bedeutung von Systemen gegenüber Zielen und zeigt, wie Umgebungsgestaltung, sozialer Einfluss und sofortige Belohnung eine entscheidende Rolle beim Aufbau und Erhalt von Gewohnheiten spielen. Letztlich argumentiert er, dass wahre Identitätsveränderung der Nordstern der Gewohnheitstransformation ist.

    Weiterlesen →
  • Der Pragmatische Programmierer, 20. Jubiläumsausgabe

    Der Pragmatische Programmierer, 20. Jubiläumsausgabe

    - Autoren: David Thomas, Andrew Hunt

    Weiterlesen →
  • Buchbesprechung: Introduction to Python for Science and Engineering

    - Autor: David J. Pine

    Weiterlesen →
  • Buchbesprechung: Python Descriptors

    - Autor: Jacob Zimmerman

    Weiterlesen →
  • Buchbesprechung: Python Tricks, The Book

    - Autor: Dan Bader

    Weiterlesen →