Berlin Buzzwords 2015 – Day 2

image

 

It’s All Fun And Games Until…: A Tale of Repetitive Stress Injury (Eric Evans)

Basically, watch out for yourself. If it hurts, you are doing something wrong. It’s good to be reminded about that from time to time. So, watch out for yourself:

 

image

A complete Tweet index on Apache Lucene (Michael Busch)

Michael Busch has given this talk in one version or the other for a couple of years now. Unfortunately it got more shallow now, not so many technical details about how they optimized Lucene for Twitter. Numbers are great, they have two billion queries per day and about 500 million tweets per day. One thing that he didn’t mention in his earlier talks is that they actually figured that Earlybird does scale to Twitter level requests due to the Earthquake in Japan when they had to emergency shutdown the caching layer in front (which was Ruby on Rails and did not scale that well). Nowadays they have all tweets in a pretty vanilla Lucene with some additions (going to be open sourced soon) and use a Mesos cluster in case they have to reindex all the data.

And BTW: Tweet IDs encode the timestamp the tweet was send at.

image

Automating Cassandra Repairs (Radovan Zvoncek)

First time speaker Radovan did a pretty good job. Apparently there are several ways to get to the “consistency” of the “eventual consistency” in Cassandra, which are Read Repair, Hinted Handoff and full blown anit-entropy repairs. The latter ones apparently can lead to a lot of problems if done improperly, so Spotify build something to manage that: Reaper.  The problems are usually due to disk IO limits, network saturation or just plain full disks. Spotify Reaper orchestrates anti-entropy repairs to make them reliable.

I’m still somewhat confused that one aparently has to spend a lot of time repairing Casandra clusters. I always thought that was what Cassandra was doing.

image

Diving into Elasticsearch Discovery (Shikhar Bhushan)

For all the people who forgot, like me, how ES clustering works this was a good reminder. Plus I learned that discovery is pluggable, so you can write your own plugin to provide the clustering part for ES. He apparently did and wrote Eskka, an Akka based clustering approach. Writing your own apparently isn’t that much fun because APIs change all the time. Just in case you forgot, Zen is the default way ES clusters.

image

Change Data Capture: The Magic Wand We Forgot (Martin Kleppmann)

We all know the problem Martin was describing: same data in different form, like in your database, in your cache, in your search engine. He went back to the “Change Data Capture” principle, which basically says “save once, distribute everywhere”. So in order to realize that he wrote a PostgreSQL plugin “Bottled Water” which gets the changes from Postgres and posts them to a Kafka topic. Yay for the best project name this year in the category: will never find that on google.

His implementation and idea is solid, the problem is that it is a Kafka topic per table, so you actually loose the transaction when reading from Kafka. Otherwise it is transaction save, messages are only sent when the transaction in Postgres commits. He uses Avro on the wire and transforms the Postgres DDL Schema to an Avro schema.

If you want to get your transaction back you would need a stream processor (Storm/Spark) downstream to reassemble your transactions. Might be a good idea if you already have a Postgres DB or rely on some special properties of a centralized Datastore, otherwise it is OK if your microservices write directly to Kafka.

Has someone actually coined the word “nanoservices” yet for designs that basically do just one thing? Like take the request, write it to a queue (Kafka) and all other processing taking place by consumers down the queue that do just one thing as well.

image

Designing Concurrent Distributed Sequence Numbers for Elasticsearch (Boaz Leskes)

Elasticsearch is rewriting the way they do distributed indexing based on the Raft Consensus Algorithm. Sounds great, they are mitigating a lot of problems they do have right now.

image

Apache Lucene 5 – New Features and Improvements for Apache Solr and Elasticsearch (Uwe Schindler)

Apparently, Lucene 4 broke a lot of indexes due to it’s build in backward compatibility to Lucene <=3. With two big companies actually relying on Lucene, that kind of amazes me.

Lucene 5 gets rid of all this legacy stuff and drops support for older indexes. Plus it adds a lot of data safety features when it comes to on-disk indices like checksums and sequence numbers. So, Solr and Elasticsearch should finally be production ready …. ;).

JDK seems to keep breaking Lucene (remember that the initial JDK 7 release broke Lucene?), apparently one should not use G1 GC with Lucene (es? Solr?).

And Lucene 5 uses a lot of the “new” JDK 7 APIs for IO to finally get the index safely to disk.

 

image

Real-Time Monitoring of Distributed Systems (Tobias Kuhn)

Less distributed, more of Real-Time monitoring. Apparently they build their own system for analyzing their loggs for anomaly detection, punnily named Anna Molly, which was open sourced now.

They made pretty clear that thresholds are not enough if you have a highly dynamic system that can change on multiple dimensions any time. Seasonality of your date makes it even harder to define useful thresholds. There are a couple of algorithms which can be used for anomaly detection, namely Tukey’s outlier detection and seasonal trend decomposition. And T-digest comes to the rescue of course.

For monitoring they actually use a cascade of statsd and carbon.

 

To sum up bbuzz 2015:

 

 

 

 

code.talks 2014 – Tag 2

Machine Learning mit künstlichen Neuronalen Netzen und Clojure
Stefan Richter
image
Recruiting @fdc 😉
image

Datengetriebene Analyse und Verbesserung von Code
Andreas Dewes
image

Die Jungs fahren einen interessanten Ansatz, leider aktuell nur für Python.

Code und Gesellschaft – macht was draus!
Nico Lumma
image

Guerrilla software design: doing it wrong and getting it right
Marco Cecconi
image

Predictive Analytics zum Schutze der Liebe
Mario Selk
image

Die haben bei Parship das interessante Problem der Scammer. War ein sehr unterhaltsamer Talk.

Handgranaten für die Developer
Nils Lauk
image

code.talks 2014 – Tag 1

image

Elasticsearch Lessons Learned
Patrick Peschlow

image

Marvel is a management and monitoring product for Elasticsearch. Daraus das Sense UI als Elasticsearch Client.

Percolator sind gespeicherte Suchen.

Immer Aliase für Indexe benutzen.

Plugins kennen.

https://blog.codecentric.de
image

WebAPI – expand what the Web can do today
Carsten Sandtner
image

XTags (?) Mozillas Implementierung auf Web Components, wie Polymer
image

Contacts API
Settings API
Vibration API
Alarm API
image

image

image

image

Modern Web Application (In-)Security
Fabian Beterke, Felix Schmidt
image

Im Westen nichts neues. Bei PHP auch nicht.

Introduction to CoreOS
Timo Derstappen
image

Github ist eine Public SSH Key Registry.
etcd, flannel, fleet, locksmith for update management

Hamburg Geekettes – Lightning Talks
Diana Knodel, Uygar Gomez, Lisa Junger, Tina Egolf, Inga Halpin, Eshani Sarma, Tina Umlandt
image

http://www.vivoie.com – Plattform for part-time entrepreneurs

Schluss mit Copy & Paste! Design Pattern automatisieren mit Xtend
Sebastian Zarnekow, Sven Efftinge
image

Active Annotations – write code that writes code. Nice. Ich hab echt Lust bekommen noch mal Xtend eine Chance zu geben. Ich mag halt kein Scala.

Distributed Ad hoc Real-Time Stream Processing
Christian Kreutzfeldt
image

OTTO hatte ein Problem dem sie mit Kafka, Storm und Stanza nicht beikommen konnten und haben sich selbst was gebaut. Das heißt wohl ASAP. Das wird wohl bald (asap) Open Source.

JSunconf HH – Day 1

image

Jelle Akkerman – Your first steps with Clojurescript and Om
ClojureScript ist Clojure für den Client, kompiliert nach JavaScript.
react.js ist ein Databinding-Framework. Om bringt react.js in ClojureScript.

Slides

Robin Böhm – Enterprise AngularJS
Leider nicht so viel interessantes.

Elma Burke & Robin Böhm – Hoodie & AngularJS – The perfect couple for simple and fast Prototyping!

Hoodie ist ein Webapp Stack mit Local Storage Integration (offline first) das auch schon den Backend kram mitbringt (CouchDB). Das kann man dann mit Angular verheiraten und dann ist das awesome.

Damien Klinnert – Angular performance tuning for large apps
– Prefer ng-if to ng-show (subtree removal vs. CSS hidden)
– use bindonce (on github)
– precalculate properties
– Scalyr Angular
– Angular Fastscroll
– use track by in ngRepeat

Tools
– Batarang / angular-instruments

Slide Wiki

Developer Conference Hamburg 2013 – Day 2

image

image

Man sollte immer einmal im Jahr was über Sicherheit hören. Der Saal war voll, der Speaker hat extra dunkle Folien gemacht damit wir nach der Party nicht so geblendet werden. Trotzdem was gelernt. Beef Project ist wohl ein XSS Toolkit mit dem man sich mal anschauen kann was so geht. Versioneye hält Bibliotheken und deren Version im Auge und sagt bescheid wenn es was neues gibt.

image

Der Kollege sprach selbst für meinen Zustand etwas zu monoton. War auch eher ein Einsteigervortrag, daher nichts neues an der Front.

image
Guter Überblick darüber wie man E-Commerce richtig macht. Technisch jetzt keine großen Besonderheiten.
image
image
Johannes hat ein wenig was über Nerds und Manager erzählt und das agile Methoden eigentlich die Lösung für alles sind.

image

TypeScript ist eine Microsoft Erweiterung für JS die Typen erlaubt. Sieht gut aus, würde ich benutzen, vor allem nachdem das was ich bis jetzt von Coffeescript gesehen habe nicht so überzeugend war.

image
Guter Einsteigervortrag von einem Cloudera Menschen. Den Teil kannte ich aber leider schon.

image

Dann hat Christian was über CDNs erzählt.

Fazit: Super Konferenz, nächstes Jahr wieder.

ApacheCon EU 2012 Day 3

Mit dem dritten bzw. eigentich vierten Tag neigte sich dann auch die Konferenz dem Ende zu, was man unter anderem auch daran merkt das ich nicht mehr so viel mitgeschrieben habe. Reichte dann aber auch.

The CouchDB Implementation (Jan Lehnardt)
Wie der Name schon sagt ein wenig CouchDB internals. War sehr interessant, so richtig lässt sich das hier aber auch nicht wiedergeben.

Solr-based search & tagging services at ZEIT Online GmbH – where metadata come from (Christoph Goller)
Ein wenig über Analysers und was in der realen Welt wirklich funktioniert.

Apache Camel – Advanced Techniques (Hadrian Zbarcea)
Gut, man sollte eventuell nicht in den “Advanced Techniques” Vortrag gehen wenn man das Produkt nicht kennt, war aber auch ganz, äh, interessant.

Apollo and future of ActiveMQ (Dejan Bosanac)
Die JMS Implementierungen sind erwachsen geworden. Und sprechen jetzt bessere (plaintext) Protokolle: STOMP http://stomp.github.com/.
LevelDB ist ein Key Value Store von Google das ich noch nicht kannte.

World of Logging (Christian Grobmeier)
Logging ist ein gelöstes Problem, ne? Es gibt sehr viele Frameworks und Meta Frameworks, Commons Logging ist etwas tot, daher ist slf4j aktuell die beste Lösung. Aber log4j2 ist unterwegs und bringt viele schöne neue Features.

Danach gab es noch kurze Sessions zu allen möglichen Themen und noch den Shutdown, noch mehr Gespräche und dann war es auch schon Abend und Zeit für noch ein gemeinsames Bier und dann schlafen. Heute geht es dann auf den weiten Weg zurück nach HH mit kleinem Abstecher über Bonn.

Mein Fazit ist durchwegs positiv, die Themen waren alle sehr interessant, viel dabei was man sich mal anschauen muss bzw. sollte. Auch die Infos über die Apache Software Foundation selbst waren ganz interessant, mit war nicht bewusst wie professionell das da alles abläuft. Wenn es nicht eh schon tausend andere Konferenzen gäbe dich ich auch alle gerne mal besuchen würde dann würde ich auf jeden Fall jederzeit wieder auf eine ApacheCon fahren.

ApacheCon EU 2012 Day 2

Konferenzen sind ja auch etwas anstrengend. Man muss früh raus, obwohl man am Abend vorher lange unterwegs war, man hat die ganze Zeit stimulierendes Input um sich herum und man weiß das man Abends schon wieder lange unterwegs sein wird. Und vor allen Dingen lernt man ständig neue Menschen kennen. Ich bin also immer noch begeistert von der ApacheCon, hier die Notizen zu heute:

Real-time Big Data in Practice with Cassandra (Michaël Figuière)
Ja, Cassandra halt. Mir ist der Usecase auch immer noch nicht klar, es sei denn du bist Twitter, dann ists schön. Das wesentliche was sich in der letzten Zeit getan hat ist das man jetzt SQL, pardon, CQL mit dem Ding sprechen kann.

What are we working on? (Steve Rowe)
Ja, Lucene halt. :). Auch nichts was ich gestern nicht schon gehört habe, noch etwa sin depth. Ich glaube ich habe gerade einen Lucene Overkill.

Domain-driven apps with Apache Isis (Mohammad Nour)
“Apache Isis is for GUI as Hibernate is for persistence”. RAD Framework mit dem man Apps generieren kann. Sieht lustig aus, kann man bestimmt benutzen wenn man den passenden Use-Case hat.

The Apache Way (Ross Gardler)
Q: “If people off the sub projects dictate what the board is doing, what is the board doing”? A: “Usually we’re drinking whiskey”.
Ross Gardler ist ein großartiger Redner, der Talk hat sehr viel Spass gemacht. Wenn man sich noch nie damit auseinandergesetzt hat wie die ASF funktioniert dann ist er auch voller Infos, jetzt weiß ich wenigstens was ein PMC ist. Auch war mit nicht so bewusst das es Apache Labs gibt. Eine gute Quote zur Arbeitsweise der ASF ist auch: “We never pay for code”.

Ferner hat er folgendes Video empfohlen:
https://www.youtube.com/watch?v=Q52kFL8zVoM

OSGi for mere mortals (Bertrand Delacretaz)
OSGi kann man also auch für Webapps verwenden, das war schon sehr lustig. Wenn man den Case hat dann hat man auf diese Art und weise ein sehr entkoppeltes System von dem man Einzelteile austauschen kann. Apache Felix ist hier dann wohl der way to go.

Managing project risk when using open source (Ross Gardler)
Da ich jetzt Fan von Ross geworden bin habe ich mal CouchDB Features liegen gelassen und mir angehört was er sonst noch so zu erzählen hat. War aber auch eher ein politscher Talk über die möglichen Risiken wenn man FOSS einsetzt, die kennen wir ja nun alle.

Mongo, its all the Rave (Matt Franklin)
Web & Social Mashup Engine. Im großen und ganzen haben sie das auf Mongo umgestellt und danach war es viel schneller (vorher lief es gegen MySQL). Bis auf lustige Requests die plötzlich ewig dauern. Wo das herkommt hat er aber keine Ahnung gehabt. Zumindest weiß ich jetzt was Rave ist.

HBase Status Quo (Lars George)
Kleiner Blick in das Hadoop/HDFS und hauptächlich HBase Universum. Damit würde ich auch mal gerne spielen, ich habe nur die Daten nicht ;).

Danach gab es dann noch Commiter treffen (warum die Apachen immer so mit Commitern beschäftigt sind versteht man wenn man die Struktur der ASF kennt). Da hab ich mich dann mal angeschlossen, die Struts Leute kennengelernt, die Log4j2 Leute kennengelernt und gutes Essen gehabt, das ich tatsächlich diesmal selber bezahlt habe.

Nebenher habe ich heute ein wenig mit ZooKeeper gespielt, das ist wirklich auf einem sehr tiefen Level aber trotzdem sehr schön. So Sachen wie verteilte Locks und Queues kann man zwar damit bauen, sie gehören aber nicht in den API und werden als “Recipes” mitgeliefert. Aber man kann damit bestimmt ein schönes verteiltes System bauen mit dem man Keys in Values transformieren kann und diese dann noch synchronisiert verteilen kann. Mir fällt da ein usecase mit ungefähr 10 Nodes ein. Mal sehen ob ich meine Demo dafür noch an den Start bringe.