Mittwoch, 16. Juli 2014

Was das Internet sagt ...

Allgemein
  • Wenn man Tablespace bei Oracle DB einsparen will, bietet Oracle eine Möglichkeit die Datenbank on-the-fly zu komprimieren.
  • Wie motiviert man Mitarbeiter sauberen Code einzuchecken? Indem man Buildcoins für das beheben von kaputten Builds vergibt.Kann man natürlich auch in Jenkins integrieren.
  • Ein interessanter Ansatz für native Apps ähnlich wie Mono/Xamarian nur diesmal für Java.
Entwickeln
  • Fast jede mögliche Programmiersprache online compilieren und ausführen. 
  • 10 Artikel die ein Entwickler gelesen haben sollte.
  • Verknüpfung von Story-Points und der Dauer der Umsetzung um festzustellen ob die Korrelationen noch passen.
Sicherheit
  • Bin über die Frage, was man bei alles loggen sollte auf die Seite der "open software security community" gestoßen, die haben eine Menge Checklisten/Spickzettel um sichere Software zu bauen. Jeder der SW für das Internet entwickelt sollte sich das anschauen.
3D
  • Es gibt ja noch mehr WebGL-Frameworks, z.B. BabylonJS scheint sehr vielversprechend zu sein.
  • OpenGL ist nicht einfach, hier mal ein Tutorial
Performanz:
  • Webframework benchmarks (Server): Interssant ist, dass Java da immer noch an der Spitze steht (ok C++ ist noch schneller). Aber Go holt in letzter Zeit rasant auf und wird immer öfter als Lösung für hochperformante Webseiten genannt. Klar ist das ein sehr spezieller Benchmark, aber interessant sind vor allem die Diskussionen wieso z.B. Asp.net so schlecht abschneidet.
  • Nichts  neues, wieso einfach nur mehr Hardware hinstellen nicht ein Skalierungsproblem lösen kann.  
  • Wieso mehr Threads kein Problem löst und was man von dem Actor-Konzepten in anderen Programmiersprachen lernen kann.
  • Nix besonderes für Leute die schon länger mit Hibernate arbeiten, aber Tuningtipps nochmal zusammengefasst.
  • Wieso gnu grep schnell ist (ein paar Ideen, wie man große Datenmnegen schnell durchsucht). 
  • Wieso manchmal Brute-Force besser ist als eine elegante und schöne Lösung. 
  • Vier Architekturprobleme bei der Skalierbarkeit.
Fun

Donnerstag, 20. März 2014

Was das Internet sagt ...

Entwicklung

  • Bewertung von Entwicklungsmethoden oder die vier Jahre ältere Version, die etwas ausführlicher ist
  • Egal wie viel Erfahrung man hat oder welches Vorgehensmodell man anwendet, ein Programmierer kommt nur auf ~325-750 Zeilen Code pro Monat!  Anscheinend gibt es Methodiken um das zu verbessern, hat jemand das schon mal probiert? 
  • Oder warum man sich vorher Gedanken machen sollte, bevor man anfängt zu programmieren. 
  • Nachdem ja schon Leute Trello einsetzen, hier mal wie Trello Trello einsetzt
  • Meint er das ernst? Complaint Driven Development ... Könnte sogar funktionieren :-) 

Programmieren

  • Wenn man mal schnell und effizient Daten serialisieren will, benutzt man nicht das Java- Serialisierungs-Framework oder XML... Es gibt bessere, sogar sprachenunabhängige Frameworks. Neu auf dem Markt ist z.B Avro , weitere  sind Thrift, Kryo, Protobuf
  • Nicht nur für Spieleprogrammierer, eine Menge wirklich guter Seiten von Amit Patel zu Basisalgorithmen in der Spieleprogrammierung
  • Und noch was für Spieleprogrammierer: Doom Source Code Review 
  • Ein Java-Fan erklärt wieso er Java toll findet ... Interessant ist vor allem der zweite Teil, wie er in Java entwickelt. Da sind viele gute Best-Practices verlinkt! 

Architektur

Testen

  • Ein interessantes Web-Testframework, dass auf den Fluent-Pattern aufbaut.
  • Eine Testcloud um seine Web-App mit wirklich jeden Browser zu testen: BrowserStack

Technik

  • Zukunft des Mobilfunks und mehr? Wenn sich das durchsetzt, ist LTE Technologie aus dem letzten Jahrtausend ... Jedes Mobilgerät bekommt seine eigene kleine Funkzelle. Aber interessant ist der letzte Absatz, was man damit noch machen kann, hoffentlich wird das nicht wieder missbraucht.  
  • Wenn man eine Datei-intensive Anwendung hat, kann man hier nachlesen wie man das Maximum aus SSDs herausholt (haben halt doch nicht nur Vorteile). 

Tools

  • Sammlung von coolen Unix Tools
  • Online kann man inzwischen richtig gut arbeiten. Google Docs ist ja schon länger auf dem Markt, da hatte ich jetzt schon öfters das Vergnügen (nicht ironisch!) zusammen mit mehreren Leuten ein Spreadsheet gleichzeitig zu bearbeiten. Aber es gibt noch mehr:
  • Da ich inzwischen die Powershell kennengelernt habe, hier mal wie man mit Windows 8 oder der Powershell richtig sucht


Freitag, 7. Februar 2014

Was das Internet sagt ...


UI/Design

Entwicklung

Sprachen

Tools

Web


Fun




Donnerstag, 16. Januar 2014

Was das Internet sagt ...

Vorgehen

  • Sollen Entwickler auf produktive Daten zugreifen können oder nicht? Und wenn ja auf welche? Auf jeden Fall sollte man sich da frühzeitig Gedanken machen. 
  • Meinungen und Studien zum Thema "Großraumbüros" (mehr als eine Person im Büro ist nicht gut ;-) 

Programmieren

  • Ein Projekt in dem Aufgaben in möglich vielen Sprachen gelöst werden, um so die Unterschiede und Gemeinsamkeiten zu erkennen 
  • Ein Video das womöglich alle Probleme von Zeit und Zeitzonen auflisten ... und warum ein Entwickler das BLOß NICHT anfassen sollte.
  • Annotations sind schon was feines, aber nimmt das nicht wirklich langsam überhand? Und muss das wirklich alles in den Code? 
  • Die Zukunft des Programmierens und mehr. Wie man z.B. während des Programmierens die Ausführung visualisiert. Ein sehr langes Video, dass eigentlich darum geht die Welt zu verbessern.
  • Oder schon mal darüber nachgedacht ob unsere IDEs wirklich Weisheit letzter Schluss sind? 

C#

  • Für kleinere Projekte sicherlich interessant: How fast can I set up a Continuous Integration and Deployment pipeline with Visual Studio Online, Git, Visual Studio Express and Azure Websites the first time I set it up? 

Java

  • Ein mathematischer Ausdrucksauswerter, der sehr schnell, einfach aufgebaut ist und trotzdem mächtig ist. Der Code ist wirklich sehr interessant. 
  • Bulk-Fetching mit Stateless-Sessions in Hibernate (wenn es mal schnell gehen muss, und man die Daten nur read-only braucht!)
  • Xtend. Eine Erweiterung für Eclipse, die Java komplett umkrempelt und Features die erst ab Java 7, 8 vorhanden sind auch in Java 5 bereitstellt. Das besondere ist, dass sie einfach den Xtend-Code in Java-Sourcecode umwandeln und diesen dann kompilieren. Wie komme ich darauf? Android beherrscht ja nur Java 5 und wir wohl auch nie was anderes bekommen. Man kann zwar Scala verwenden, dass ist aber eher eine Krücke. Ähnliches gilt für GWT. Ein weiteres Feature ist, dass man in den Generierungsprozess eingreifen kann, z.B. Visitor-Pattern implementiert man nicht mehr, sondern annotiert dann einfach die Klasse.  
  • Typesafe SQL in Java! Generiert aus den Datenbankschema eine API mit der man arbeiten kann. Interessant ist daran, dass man auf der Ebene von SQL bleibt (schnell und low level) und trotzdem sicher bei Änderungen ist, was man ja bei SQL-Strings nicht ist.  

Javascript

  • Alle Performanzprobleme mit Javascript und MVC sind gelöst. Viele der Techniken (If data changes, we never immediately trigger a re-render, ...) könnte man auch auf andere Frameworks anwenden. 
  • Eine Anleitung wie man im Browser mittels Javascript auf dem lokalen Rechner Daten speichern kann.

Tools

  • In Zukunft kann ich mir diese Sektion sparen.

Low-Level

  • SSDs haben nicht nur Vorteile (habe ich ja schon mal geschrieben), auf die "Power-Loss-Protected" kann man sich wohl nicht immer verlassen. SSDs zerstören ja leider nicht nur die Daten, die sie gerade bearbeiten, sondern können beliebige Daten ins Nirvana schicken, die zufällig im gleichen Block sind.
  • Warum man die Hardware doch nicht ignorieren kann oder wieso das Bearbeiten eines sortierten Feldes schneller ist als die eines unsortierten. Ähnliches gilt auch für asserts usw. wo If-Abfragen vorkommen.
  • Das Paper "What Every Programmer Should Know About Memory"  ist wirklich nur für Programmierer gedacht, die schon immer wissen wollten, wie die CPU arbeitet.  Zusammenfassend kann man sagen, dass wenn man wirklich auf Geschwindigkeit aus ist, dann sollte man die CPU-Cachegrenzen beachten (L1/LS/L3..). Unten ist eine Diagramm mit den Durchsatzwerten in einem Java-Programm, dass ein Integer-Array bearbeitet (horizontale Achse == KB). Wenn man schafft seine Applikation vom RAM in den L1 zu verlegen, würde man das Testprogramm um das bis zu zehnfache beschleunigen können.



Dienstag, 7. Januar 2014

Was das Internet sagt ...

Architektur/Requirements


Sicherheit


Java


Office



Technik allgemein


Fun