Posts tagged with review

All posts tagged with review in chronological order with newest first.

Im Roman “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win” wird der Protagonist Bill gegen seinen Willen befördert und muss in seinem Unternehmen ab sofort den IT-Betrieb übernehmen, verantworten und am Laufen halten. Hierbei stößt er natürlich auf eine ganze Menge Probleme.

Das Spock-Framework ist momentan meiner Meinung nach das komfortabelste Test-Framework für die Java-Plattform. Da es auf der Sprache Groovy aufbaut ist es sehr ausdruckstark.

In “Agile Estimating and Planning” erklärt Mike Cohn auf hervorragende Weise die Probleme bei der Projektplanung und Aufwandsschätzung und präsentiert die “agile Schätzung und Planung” als Lösungsansatz.

Jeder Multiplayer-Spieler kennt es: “Lag”. Wenn man den gegnerischen Spieler zu spät sieht oder man sich sicher ist, ihn hundertprozentig getroffen zu haben, aber das Spiel anders entscheidet: Der Schuldige ist klar “Lag”.

Der Begriff “geistiges Eigentum” (engl. intellectual property, IP) ist sehr umstritten, auch weil er gar nicht so einfach zu definieren ist. Es werden auch sehr unterschiedliche Konzepte unter diesem Begriff zusammengefasst: Patente, Copyright, Geschäftsgeheimnisse und Trademarks/Warenzeichen. Stephan N. Kinsella definiert ihn in seinem Buch “Against Intellectual Property” anhand der “Knappheit”.

Neal Ford und Nathaniel Schutta haben zu ihrem 2012 erschienenen Buch “Presentation Patterns: Techniques for Crafting Better Presentations” eine Video-Schulung erstellt.

Mit dem Computerspiel Human Resource Machine kann man die Grundlagen der maschinennahen Programmierung spielerisch erlernen.

Matt Ridley erläutert in “The Rational Optimist: How Prosperity Evolves”, dass der Handel mit Gütern und Dienstleistungen die Basis der menschlichen Zivilisation ist und dass die Menschheit aufgrund des bisher erreichten Fortschritts Grund hat, optimistisch in die Zukunft zu schauen.

George Gilder erläutert in Knowledge and Power: The Information Theory of Capitalism and How it is Revolutionizing our World, dass die Stärke des Kapitalismus seiner Meinung nach darin liegt, dass nur die erfolgreichen Unternehmen, die Gewinne machen, die Möglichkeit erhalten, weitere Produkte herzustellen. Sie haben ja ihre Nützlichkeit bewiesen, ihre Produkte wurden gekauft.

“Business Model Generation” ist ein hervorragender Einstieg in das komplexe Thema “Geschäftsmodelle”. Das Buch behandelt Geschäftsmodelle, deren Erstellung und weitere Anpassung mit Hilfe des “Business Model Canvas”.

Wer die Grundlagen von Spark lernen möchte, ist mit dem Buch “Learning Spark” gut beraten. Mir hat besonders gut gefallen, dass das Buch sehr praxisorientiert ist und man nebenbei mit der Spark-Shell die Beispiele ausprobieren und nachvollziehen kann.

Scala ist ein wichtiger Meilenstein bei der Fusion von funktionaler und objektorientierter Programmierung. Diese Fusion ist noch nicht abgeschlossen, sondern ein “Entdeckungs-Prozess”, der noch ein paar Jahre andauern wird.

Das Hadoop-Ökosystem ist im Laufe der Zeit erheblich gewachsen. “Hadoop: The Definitive Guide” bietet einen Überblick über die wichtigsten Themen und Projekte des Frameworks.

In “Data driven - Creating a Data Culture” erläutern die Autoren, was sie unter einer “Datenkultur” verstehen.

In dem schon 2003 geschriebenen Buch “Beyond Fear: Thinking Sensibly About Security in an Uncertain World” schreibt _ Bruce Schneier_ ganz allgemein über Sicherheit. Hier ist die englische “security” gemeint und nicht die “safety”, d. h. die Zuverlässigkeit.

Chris Anderson beschreibt in “Makers: Das Internet der Dinge: die nächste industrielle Revolution” wie industrielle Fertigungsprozesse mit CAD, dem 3D-Druck und/oder durch Outsourcing auch von Kleinunternehmern durchgeführt werden können.

JavaScript hat einen Prototyp-basierten Ansatz zur Objektorientierung. Damit unterscheidet es sich stark von den üblichen objektorientierten Programmiersprachen, wie z. B. Java, C++ und Ruby.

MapReduce ist ein “Korsett” und zwingt den Entwickler in enge Grenzen. Daher macht es Sinn, “MapReduce Design Patterns” zu lesen, damit man schnell die üblichen Tricks und Kniffe kennenlernt. Ähnlich ist es ja beim Lernen von anderen Paradigmen auch, wie z. B. Devide-and-Conquer oder Rekursion. Man begreift das allgemeine Prinzip schnell, man muss aber lernen, wann und wie man es am besten einsetzt.

“C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++” ist eine gute Einführung in die Programmierung mit C++ AMP. Leider ist das Buch zum Zeitpunkt der Rezension das einzige Buch über C++ AMP, so dass ich es nur mit anderen Büchern über CUDA und OpenCL vergleichen kann.

Das Besondere an “OpenCL in Action: How to Accelerate Graphics and Computation” ist, das der Autor Matthew Scarpino versucht, die Programme wirklich zu erklären. Man erfährt die Gründe für seine Design-Entscheidungen.

Ich benutze git zwar schon ein paar Jahre, wollte aber mehr Hintergrundwissen haben und komplexere Abläufe kennenlernen. Das ist dem Buch “Git in Practice” zum einen gelungen, trotzdem habe ich irgendwie das Gefühl, dass das nicht alles gewesen sein kann.

“Understanding PaaS” ist ein sehr kleines Büchlein über die Grundlagen des Cloud Computings. Es kann gelesen werden, um sehr schnell in die Thematik einzusteigen. Es ist eher für Entwickler geschrieben, als für CEOs.

Beim Stöbern in “CUDA Fortran for Scientists and Engineers” habe ich gesehen, dass die Autoren wertvolle Optimierungstipps geben. Da bin ich neugierig geworden.

In “Bit by Bit: How P2P Is Freeing the World” erläutert Jeffrey Tucker die weltanschaulichen Hintergründe von Peer-to-Peer-Netzwerken und von Bitcoin. Der Autor konzentriert sich hier auf seine philosophische und ökonomische Sichtweise, dem Libertarismus, einer Marktwirtschaft mit Privateigentum ohne Staat.

“MongoDB: The Definitive Guide” ist ein gelungener Überblick auf MongoDB sowohl aus Entwickler- als auch als DBA-Perspektive. Jedenfalls soweit ich das als MongoDB-Einsteiger mit mehr als 11 Jahren Data-Warehousing-Projekterfahrung sagen kann.

Im ersten Teil von “The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory” werden die Grundlagen der Relativitätstheorie und der Quantenmechanik anschaulich und mit tollen Beispielen erklärt. Es ist die beste Einführung, die ich bisher gelesen habe und klar 5 Sterne.

James Gleick ist ein wahnsinnig belesener Mensch, der in diesem umfangreichen und lesenswerten Buch “The Information : a history, a theory, a flood” die Geschichte der Information und der Informationsverarbeitung darstellt. Äußerst bemerkenswert ist, dass sich der Autor in beiden “Kulturen”, den Geisteswissenschaften und den Naturwissenschaften, sehr gut auskennt.

Wenn man Java 8 lernen will, ist “Java 8 in Action: Lambdas, Streams, and Functional-Style Programming” das eine Buch, was man gelesen haben sollte.

Wenn es “anspruchsvolle” Literatur gibt, dann gibt es jetzt auch “anspruchsvollen” Code. “If Hemingway Wrote JavaScript” enthält viele lustige und lehrreiche Beispiele.

Das Buch “Ready Player One” hatte fast das Potential ein absoluter Klassiker zu werden in der Größenordnung eines “Hitchhiker’s Guide trough the Galaxy”.

Die geniale Idee des Autors ist es, 80er-Jahre-Nostalgie und ein Massively Multiplayer Online Game (MMO, MMOG) mitander zu verknüpfen und zum Gegenstand eines Romans zu machen.

Wer sich schnell mal ein paar typische Denkfehler angucken möchte, dem sei “Die Kunst des klaren Denkens” empfohlen.

Das Buch “GPU Computing Gems (Emerald Edition)” ist eine Sammlung von 50 wissenschaftlichen Artikeln über Erfahrungen bei der Verwendung des GPU-Computing in verschiedenen Fachgebieten.

Ich hatte schon viele Artikel der Reihe „CUDA, Supercomputing for the Masses“ von Rob Farber auf der Dr. Dobb’s Webseite gelesen und war recht angetan. Das war damals 2009 eine der wenigen Möglichkeiten, etwas anspruchsvolleres über CUDA zu lesen.

Mit CUDA ist es einfach, eine Berechnung um den Faktor 2-5 zu beschleunigen. Wie man höhere Speedups erreicht, lernt man in “CUDA Programming” von Shane Cook.

Nicholas Wilt zeigt sich in “The CUDA Handbook” sehr kompetent und experimentierfreudig bei der Optimierung von Kerneln. Das Buch kann von vielen Fortgeschrittenen mit Gewinn gelesen werden.

“Using OpenMP” ist eine gute Einführung und enthält ein paar gute Performancetipps.

Wenn man ein wenig Systematik in seine parallelen Programmierkünste bringen will, ist “Structured Parallel Programming: Patterns for Efficient Computation”
das Buch zum Einsteigen.

Ich hatte damals 1992 schon die zweite Auflage gelesen. Seit dem hat sich sehr viel zum Positiven geändert, sowohl bei C++ als auch bei diesem „Klassiker“.

In diesem kleinen Buch gibt der Erfinder von C++ einen Überblick auf die Neuigkeiten von C++ 11 und der STL.

An “The Definitive Guide to Grails 2” kommt keiner vorbei, der Grails lernen will.

Ich habe “Learn You a Haskell for Great Good” zur Auffrischung meiner Haskell-Kenntnisse gelesen. Während meines Studiums in den neunziger Jahren war ich begeisterter funktionaler Programmierer. Meine Diplomarbeit habe ich 1997-98 über „Geometrische Algorithmen in Haskell“ geschrieben.

Das Buch “Bärentango: Mit Risikomanagement Projekte zum Erfolg führen” ist vor 10 Jahren erschienen und ich habe es mir jetzt (2013) wieder durchgelesen, um zu entscheiden, ob ich es nicht evtl. entrümpeln sollte.

Das Buch “97 Things Every Programmer Should Know” besteht aus 97 Abschnitten von unterschiedlichen Autoren zu oft auftretenden Fragen bei der Softwareerstellung.

Das kleine Buch “NoSQL Distilled:” bietet einen guten Überblick auf die verschiedenen NoSQL-Datenbanken.

Die Kernaussage des Buchs “Die Gemeinwirtschaft: Untersuchungen über den Sozialismus” ist, das keine Gesellschaft ohne Märkte funktioniert, weil nur ein Markt den Preis bzw. die Kosten ermittelt.

“API Design for C++” ist eine hervorragende Einführung in die Implementierung von APIs mit C++.

Guter Überblick

“Polygon Mesh Processing” ist ein “research monograph”’ über die Verarbeitung von Polygonnetzen (“‘polygon mesh’”).

“The Income Tax: Root of All Evil” stellt eine interessante Gegenposition zum heute üblichen Standpunkt auf, das Steuern in der Regeln gut sein und der Gesellschaft und den Armen zu Gute kommen.

Wie man spannende Vorträge hält, erfährt man in “Resonate: Present Visual Stories that Transform Audiences”.

“Patterns for Parallel Programming” ist ein wichtiges Werk für ‘parallele Programmierer’.

Was “Programming Massively Parallel Processors: A Hands-On Approach” von anderen Büchern unterscheidet, ist die genaue Beschreibung der Funktionsweise der Hardware.

In “Economics for Real People” geht es um ‘Wirtschaftslehre für echte Menschen’ und nicht für den homo oeconomicus oder andere mathematische Modelle.

“Slide:ology: The Art and Science of Presentation Design” ist ein sehr gut designtes und gut zu lesendes Buch. Es wird seinem Untertitel auf jeden Fall gerecht.

“100 Things Every Designer Needs to Know About People” ist eine Sammlung von doch recht nützlichen Informationen über Menschen.

Ich habe zum Buch “Presentation Zen: Simple Ideas on Presentation Design and Delivery” eine geteilte Meinung und gebe daher nur 3 Sterne.

Wirtschaft aus der “bottom up”-Perspektive

Das Buch “Kasino-Kapitalismus” bietet einen sehr guten Überblick über die Ursachen, die zur Finanzkrise geführt haben. Die für die Krise relevanten Zusammenhänge aus der Finanzwelt werden präzise erklärt. Der Autor schlägt im letzten Kapitel auch Maßnahmen vor, um solche Krisen in Zukunft zu verhindern.

“Head First jQuery” ist im “Heads First”-Stil gehalten und richtet sich an Anfänger und Quereinsteiger, die bereits über Grundkenntnisse in HTML und CSS und Programmierkenntnisse verfügen.

Das Buch “Getting Started with Roo” hat nur etwas über 50 Seiten und beinhaltet eine kurze und oberflächige Einführung in die Benutzung von Spring ROO.

Die Programmierung von parallelen und nebenläufigen Programmen mit Shared-Memory und Threads ist kompliziert und sehr fehleranfällig. Als Lösungsansätze wurden z. B. Software-Transactional-Memory (STM), Message-Passing-Architekturen und Aktoren-Modelle entwickelt. In “Programming Concurrency on the JVM” werden diese für die Java-Plattform vorgestellt.

Im Zeitalter des Multi-Tasking und der ständigen Unterbrechungen ist es schwierig, seinen richtigen Arbeitsrhythmus zu finden, den Überblick zu behalten und keine Aufgaben zu vergessen oder aufzuschieben.

Eine Lösung bietet die “Pomodoro Technique Illustrated: The Easy Way to Do More in Less Time”, die der Autor in diesem Buch erklärt und mit vielen Illustrationen veranschaulicht.

Mit dem Titel “The Art of Concurrency” wird ein hoher Anspruch geweckt, der nicht erfüllt wird. Der Untertitel “A Thread Monkey’s Guide to Writing Parallel Applications” wird dem Inhalt schon eher gerecht, aber auch hier gibt es noch einige Kritikpunkte.

“Dieses Buch wird Ihnen helfen, ein besserer Programmierer zu werden” steht als erster Satz in der Einleitung des Buchs “Der Pragmatische Programmierer”. Und ich bin der Meinung, dass es stimmt.

“Complexity - A Guided Tour” ist eine lesenswerte und interessante Einführung. “Komplexität” ist ein Querschnittsthema und durchzieht viele Fachbereiche, wie z. B. die Biologie (Immunsystem, Gehirn, Evolution), Wirtschaftswissenschaften, Informatik und Künstliche Intelligenz.

Das Buch “Real-time Rendering” ist der perfekte Start in das Themengebiet, wenn man Vorkenntnisse in Linearer Algebra und Softwareentwicklung hat. Es ist auf der Höhe der Zeit (April 2009) und enthält aktuelle Referenzen zu Literatur und Spielen.

Der Titel des Buches “Technisches Schreiben: (nicht nur) für Informatiker” ist viel zu allgemein. Der Autor betrachtet ausschließlich die akademische Seite der Informatik und auch nur die deutsche Sprache.

“Cuda by Example” ist der perfekte Start in CUDA für Einsteiger. Aber auch manche Fortgeschrittene und Profis könnten Ihre Freude an den guten Erklärungen und Beispielen haben.

“Ray Tracing from the Ground Up” ist ein hervorragendes Buch für Einsteiger und Fortgeschrittene. Man merkt, dass sich der Autor viele Jahre mit dem Thema beschäftigt hat und dass er selber Ray Tracer geschrieben hat.