Geekstammtisch http://geekstammtisch.de de-de gst-kitchen Dirk Breuer, Sebastian Cohnen, cc-by-nc-sa Das heimelige Nerdgespräch über Webentwicklung, Ruby/Rails und mehr Dirk Breuer, Sebastian Cohnen alle@geekstammtisch.de (Dirk Breuer, Sebastian Cohnen) Mehr oder weniger regelmäßiger Stammtisch rund um Nerdthemen und Webdevelopment no Mehr oder weniger regelmäßiger Stammtisch rund um Nerdthemen und Webdevelopment Dirk Breuer, Sebastian Cohnen alle@geekstammtisch.de GST000 - Batteries Included no Dirk Breuer, Sebastian Cohnen Der Geekstammtisch stellt sich vor GST000 Mon, 17 Dec 2012 19:02:58 +0100 00:42:27 Geekstammtisch Publishing Prozess

Ruby Compile Tricks (Performance!!11!1)

Ruby Upgrade mit RVM

  • rvm upgrade ruby-1.9.3-p286 ruby-1.9.3-p327
  • Installiert 1.9.3-p327 migriert alle gems und wirft die alte Ruby version auch komplett weg, wenn gewünscht

Ruby Entwicklung

gem picks

Apps

Best Practices

Github's Gists in Neu und Bunt, schön :)

Events

]]>
GST001 - Chubby Models on a Diet no Dirk Breuer, Sebastian Cohnen Noch mal mit ohne Gast über aktuelles aus der Ruby-Welt GST001 Mon, 07 Jan 2013 20:50:46 +0100 00:53:30 Errata

In eigener Sache

  • Endlich auch im iTunes Store und damit auch in Instacast!
    • Nach dem Store mehr mp4 Downloads als mp3! (2:1)
    • Download Zahlen von Podcasts ermitteln: nicht einfach :-/
  • Und auch via Bittorrent (http://bitlove.org/tisba/gst)
  • Nettes Feedback zum gst-kitchen Publishing Prozess von @auphonic und @timpritlove

Ruby

Rails

Software Development

Binstubs

SCM Hosting:

Random Stuff

]]>
GST002 - Shell ist immer da no Dirk Breuer, Sebastian Cohnen Mit Sebastian Schulze (@bascht) GST002 Mon, 21 Jan 2013 22:12:54 +0100 01:00:29 "Broadcast Input") * Echte Automatisierung: * Am besten direkt von Anfang an richtig machen! * Puppet: http://puppetlabs.com/ * Chef: http://www.opscode.com/chef/ * Chef-Doku: http://docs.opscode.com/ * KEINEN eigenen Chef-Server zum testen aufsetzen, einfach kostenlos bei Opscode einen nehmen: https://manage.opscode.com/ * irgendwas anderes / eigenes ;-) (immer noch besser als manuell) * Keine Angst mehr vor Freitagnachmittag-Deploys: http://devopsreactions.tumblr.com/post/37823969926/a-small-infrastructure-change-4pm-friday * GST berichtete: mruby-web-irb is now WebRuby: https://github.com/xxuejie/webruby * Ruby Facets: https://github.com/rubyworks/facets * Zucker: http://rubyzucker.info/ * Anwendungsfall für ActiveSupport: http://bascht.hasbeen.in ### Rails * OMG!1!, more security fixes * Rails 3.2.11, 3.1.10, 3.0.19 und sogar 2.3.15 released * CVE-2013-0155: https://groups.google.com/group/rubyonrails-security/browse_thread/thread/b75585bae4326af2 * CVE-2013-0156: https://groups.google.com/group/rubyonrails-security/browse_thread/thread/eb56e482f9d21934 * View-Decorator: https://github.com/drapergem/draper * Gary Berhardt: "How do we stop our Rails apps from being so horrible when they grow up?" ### Web Services * http://hackdesign.org/ - Desing courses for Hacker ### Events * cologne.rb braucht Talks: https://github.com/colognerb/talks/wiki/Potentielle-Themen * Unser Talk: https://speakerdeck.com/railsbros_dirk/cologne-dot-rb-magic-kindergarten * Am 6.7. ist Iron Maiden in Oberhausen \m/ * Sigint findet auch an diesem Wochenende statt: http://sigint.ccc.de/ (5.-7.7.2013) * Railsgirls treffen sich auch wieder (31.01.): http://www.nerdhub.de/events/115-rails-girls-cologne/dates/1442) * wroc_love.rb: Zweiter Batch an Tickets raus - https://tito.io/wrocloverb/2013 ### Offtopic * Dokumentation über das Phänomen Bronies: http://www.bronydoc.com/Brony/MAIN.html :-) * Pony Podcast: http://ponytime.net/]]> Heute mit unserem ersten Gast: Sebastian Schulze (@bascht, http://bascht.com/)

Errata

Ruby

Rails

Web Services

Events

Offtopic

]]>
GST003 - Mein Callstack ist kleiner no Dirk Breuer, Sebastian Cohnen Mit Florian Gilcher (@Argorak), u.a. über Padrino GST003 Mon, 28 Jan 2013 21:07:15 +0100 01:04:00 Heroku * Auch gut für Bloggen im Zug * Empfehlung: Syntax-Sonntag bei Ruby-Mine (http://www.ruby-mine.de/) * Sehr gute Einführung in Oniguruma (http://www.ruby-mine.de/wonado) * Gutes deutsches Ruby-Wiki: http://wiki.ruby-portal.de/Hauptseite * Open-Source Nachbau des RPG-Makers (http://www.rpgmakerweb.com/) in Ruby (http://devel.pegasus-alpha.eu/projects/openrubyrmk/boards) * Ruby-Forum ist immer noch in PHP :-) * Foren sind irgendwie nicht mehr aktuell, wird aber noch nachgefragt ### Events * Insider-Infos zur SIGINT (Nachtrag): * Mehr Technik-Bezug incoming! * CFP soll ganz bald starten * eurucamp findet auch wieder 2013 statt: http://eurucamp.org/ (16. - 18. August 2013)]]> Heute wieder mit Gast: Florian Gilcher (@Argorak, http://asquera.de/blog)

Errata

  • Auf Grund der kurzen Zeit zwischen den Aufnahmen qausi ausgefallen. Oder einfach keine Fehler gemacht ;-)

Unser Gast

  • Florian aus Berlin

Padrino

  • Entstanden aus Sinatra-Plugins
  • Auch heute ist eine Padrino-App "nur" eine Ansammlung von Sinatra-Apps
  • Padrino ist viel expliziter als Rails
  • Padrino "zwingt" den Entwickler sich mit vielen (allen) Entscheidungen selbst zu beschäftigen
  • Rails Pain #1: Initializer-Reihenfolge (auch von Engines), Paadrino kümmert sich nicht
    • Ladereihenfolge, Config etc muss man selbst machen
  • Rails Pain #2: Logger austauschen
  • Eignet sich Padrino gut für Einsteiger?
    • Der Grund Aufwand ist nach Flo schon höher
    • Aber der Zusammenhang zwischen den Komponenten wird klarer
    • Padrino behandelt Padrino Erweiterungen (Engines) expliziter
    • Philosophie bei Padrino: Setzt euch mit den Dingen auseinander!
  • Rails und Einsteiger? Auch nicht mehr ganz so einfach…
  • Padrino Getting Started
    • Es gibt auch Generatoren
    • Schritt Eins: HTTP-Stack
    • Komponenten müssen ausgewählt werden
      • Von Test-Framework bis ORM alles auszuwählen
      • In Ruby passt eigentlich alles gut zusammen ohne viel Aufwand
    • Mit Rack (http://rack.github.com/) ist alles besser geworden
  • Es gibt auch noch Ramaze: The Web Framework for Rubyists (http://ramaze.net/)
  • Flo träumt von Jeremy Evans’ sequel (https://github.com/jeremyevans/sequel)
  • PostgreSQL hstore (http://www.postgresql.org/docs/9.0/static/hstore.html)
    • ActiveRecord hat mittlerweile auch eine Unterstützung
  • ORM tauschen ist mit Padrino genauso schwer wie bei Rails
    • Bei echten Projekten tauscht man nicht einfach mal so das DB-Backend, ORM hin oder her
    • Padrino macht es auch nicht einfacher, gibt einem aber von Anfang die Info, dass es mehr als ein gibt
  • Doku bei Rails sehr monolitisch, bei Padrino für jede Komponente eine eigene, unabhängige Doku
  • Der Austausch von ActiveRecord ist wegen ActiveModel sehr leicht geworden
    • Sehr viele ORMs und Form-Helper nutzen sehr viel ActiveModel
  • Padrino benutzt ActiveSupport
    • Allerdings sehr wenig by default
  • Zwischenfazit: Der Entwickler wird bei Padrino eher gezwungen sich mit Komponenten und Entscheidungen kritisch zu beschäftigen
  • Padrino bietet besser dokumentierte APIs um Komponenten einzuschieben
    • Rails 2 Zeiten - reden wir nicht drüber
    • Immer noch Altlasten, z.B.: viele Möglichkeiten aus dem Controller zu rendern
    • Rails ist einfach gute Konkurrenz ;-)
    • Rails ist schon ein sehr mächtiges Werkzeug
  • Als Rails-Entwickler kann man sich gut von Padrino inspirieren lassen
  • Basti ist beeindruckt vom Merb-Rails Merge (http://rubyonrails.org/merb)

Software Engineering

  • Bezug "How do we stop our Rails apps from being so horrible when they grow up?" (http://bit.ly/VFtzUI)
    • Alles unter dem Controller ist für Dirk immer noch ein sehr schwieriges Thema
  • Kann Padrino da unterstützen? Durch Aufklärung?
    • Bei Padrino ist der Tipp: Schnell raus aus dem Controller
    • Ein Webframework sollte vor allem den Web-Teil richtig machen
    • Bei allem danach hört die Unterstützung schnell auf
  • DCI (Data, context and interaction)
  • Flo arbeitet gerade einem Projekt mit Delegates ähnlich wie in Objective-C: Funktioniert super.
  • Dependency Injection ist eigentlich nur die richtigen Objekte an die richtige Stelle schieben
  • "Am Ende trennt sich bei diesen Themen einfach die Spreu vom Weizen"
    • ActiveRecord führt einen aber vielleicht zu weit in einen falsche Richtung
    • Allerdings: Nie wieder ohne ORM
  • Anemic Domain Model von Martin Fowler (http://martinfowler.com/bliki/AnemicDomainModel.html)
  • Die Zwei Stacks von Rails (http://words.steveklabnik.com/rails-has-two-default-stacks)
  • Flo kennt das Rubyworks-Ökosystem
  • Semantic-Versioning at its best: https://github.com/sunaku/tork
  • Mit viel Liebe und Mühe sehr gute Libraries und die Masse verwendet es noch nichtmal
  • RSpec's Doku ist in Cucumber (https://www.relishapp.com/)
  • Dokumentation ist nicht trivial
  • Zed Shaw hat einmal gesagt, dass das Problem darin besteht, dass wir den Leuten beibringen müssen wie sie es entwicklen
    • Die Technik ist da, das Lernen ist das Problem
    • Code-Review ist dafür gut
    • In guten Teams geht nichts einfach durch
    • Es geht dabei um Code, nicht um Kritik an der Person

Tools

Events

  • Insider-Infos zur SIGINT (Nachtrag):
    • Mehr Technik-Bezug incoming!
    • CFP soll ganz bald starten
  • eurucamp findet auch wieder 2013 statt: http://eurucamp.org/ (16. - 18. August 2013)
]]>
GST004 - Ich dachte C ist fertig no Dirk Breuer, Sebastian Cohnen Mit Frank Celler (@fceller) über mruby GST004 Tue, 05 Feb 2013 00:31:37 +0100 01:12:18 Englische Übersetzung der japanischen News von Daniel Bovensiepen (http://www.bovensiepen.net/) * mgems sind quasi C-Libs * Stdlib ist quasi nicht existent * Core ist auch stark eingeschränkt (kein Bignum, keine Regexp, keine Threads) * Es gibt als mgem eine cURL-Lib (was für eine Datenbank die HTTP spricht ganz sinnvoll ist) * mruby ohne Threads macht vor allem für Datenbanken Sinn * Ruby ist ein Standard: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579 * Inzwischen gehen auch `attr_accessor` und andere Introspection Features * mruby wird magischer ;-) * Wo hat der Frank mruby überhaupt eingebettet? * ArangoDB - http://www.arangodb.org/ * Eine Open-Source Dokumentendatenbank * Wofür bettet man eine Scriptsprache in eine Datenbank ein? * Filtern von Ausgaben * Implementierung von Triggern (statt PL/SQL - http://en.wikipedia.org/wiki/PL/SQL) * Anreichern von Ausgaben * Welche Scriptsprache nimmt man da: * PHP trauen wir uns nicht * JavaScript funktioniert mit V8 (https://code.google.com/p/v8/), wurde dann auch integriert * Dokumentation ist grausam * Sehr schnell, in C++ * wenn man einen Fehler sucht, kann man nur aufgeben ;-) * Arango ist in C/C++ geschrieben * Haben sehr früh Zugang zum mruby Repo bekommen * mruby lässt sich sehr leicht einbetten * Dokumentation ist genauso schlecht wie die von V8 * Man kommt aber noch zu Fuß durch den Code * Probleme bei V8 war JavaScript-Prototypen in C++ Objekte abzubilden * mruby wurde mit dem Gedanke entwickelt eingebettet zu werden, daher sind entsprechende Hooks vorgesehen C-Strukturen in Ruby abzubilden * V8 verwendet UTF-16, Arango verwendet UTF-8 * mruby verwendet auch UTF-8 -> Overhead fällt weg * Frank hat mit LLVM rum gespielt und hat aus mruby den Faktor 2-3 raus geholt * Was noch viel für die Performance tun kann ist Method-Caching * Momentan ist mruby noch Alpha-Status * In der homebrew Version ist mruby drin * Für Linux muss es per Hand gebaut werden * Bei ArangoDB ist eine Shell für mruby dabei (siehe auch: http://qiezi.me/projects/mruby-web-irb/mruby.html) * emscripten.org * Die mruby Shell in ArangoDB ist analog zu der JavaScript Shell in ArangoDB * mruby hatte bis vor kurzem keine richtiges Makefile * Daniel Bovensiepen hat dann ein CMake-File erstellt (http://cmake.org) * Seit Dezember 2012 gibt es auch ein Rakefile * War unter Windows vor der totale Krampf * ArangoDB gibt es seit kurzem auch für Windows * Probleme mit libev und ICU * UTF-8 hat zwei Darstellung für Umlaute: den Umlaut und zwei Punkte + Buchstabe * Basti hatte einmal sehr viel Freude mit case-insensitive und case-sensitive Systemen * Macht auch Probleme bei Collation * ICU macht das einfach für einen (http://site.icu-project.org/) * Die Windows-Version von ArangoDB hat keinen mruby Support * mruby targeted aber Windows * Anekdote: Die C-Standards entwickeln sich im Jahrzehnt-Rhytmus * VisualStudio ist bei ANSI-C Version '89 stehengeblieben * Frank macht C schon seit 30 Jahren * Hat für den TRS-80 ein Arcade-Spiel nachprogrammiert (http://en.wikipedia.org/wiki/TRS-80) * Frank hat das Spiel auf einem TRS-80 Emulator für Linux widergefunden :-) * "Magic Worm for Model I" (http://fosdem.graph-database.org/news/8, http://www.retrocomputing.net/parts/r/radio/TRS80_4/docs/on2002.htm) * Frank erinnert einen C Interpreter * Wenn C dann lieber Objective-C, meint Frank * Ist für Rubyisten noch eingängiger, vom mentalen Modell * Basti hat auf dem letzten DevHouseFriday 'Ruby is Magic - Reflections' gezeigt (https://speakerdeck.com/railsbros_dirk/colognerb-reflections) * Cocoa ist von oben bis unten voll mit Magic * ArangoDB im MacApp-Store: https://itunes.apple.com/de/app/arangodb/id564723448?l=en&mt=12 * War letztes Jahr unter den Top-10 für Dev-Tools * Ohne mruby * Ähnlich wie damals CouchDBX: http://janl.github.com/couchdbx/ * Die JavaScript-Shell von ArangoDB läuft im Browser * Die ArangoDB-Shell ist ein eigener Client und spricht mit dem Server über HTTP * JavaScript-Console für den Browser: http://replit.github.com/jq-console/ * http://stedolan.github.com/jq/ * The JSON Query Language: http://www.jsoniq.org/ * Ähnlich wie das was ArangoDB verwendet (unabhängig) ### Events * NoSQL Matters: 25. - 27.4.2013 (http://2013.nosql-matters.org/cgn/) * Early Bird Tickets schon verfügbar * 25.4. ist Training Day * Keynote: Martin Fowler * Im KOMED in Köln * Mit Hadoop-Track * Und der Rest der bisher veröffentlichen Speaker ist nicht weniger hochkarätig BTW: Jan Lehnardt ist jetzt bei 'The Couch Firm' - http://thecouchfirm.com/]]> Unser Gast ist heute: Frank Celler (@fceller, http://triagens.com)

Synopsis: Heute geht es um mruby, C-Hacking und Bytecode-Compiler

Errata

Unser Gast

  • Als Errata zu GST001, mruby ;-)
  • Frank ist kein Rubyist, sondern C-Hacker

(M)Ruby

  • Steht für Matz Minimal Embedded Ruby
  • Um irgendwo embedded zu werden
  • Redis (http://redis.io/) embedded zum Beispiel Lua (http://www.lua.org/)
    • Da Lua irgendwie nicht so richtig für Programmierer ist, könnte mruby hier eine Lücke schließen
  • Ruby 1.8 ist nicht dafür entworfen irgendwo eingebettet zu werden
  • mruby in a Nutshell
    • Bytecode-Compiler (ähnlich wie YARV in Ruby 1.9)
    • Soll eine sehr, sehr kleine, überall lauffähige VM bieten (Rite-VM)
    • Ein sehr kleiner Satz von Libraries
  • Wo hat der Frank mruby überhaupt eingebettet?
  • Wofür bettet man eine Scriptsprache in eine Datenbank ein?
    • Filtern von Ausgaben
    • Implementierung von Triggern (statt PL/SQL - http://en.wikipedia.org/wiki/PL/SQL)
    • Anreichern von Ausgaben
    • Welche Scriptsprache nimmt man da:
      • PHP trauen wir uns nicht
      • JavaScript funktioniert mit V8 (https://code.google.com/p/v8/), wurde dann auch integriert
      • Dokumentation ist grausam
      • Sehr schnell, in C++
      • wenn man einen Fehler sucht, kann man nur aufgeben ;-)
  • Arango ist in C/C++ geschrieben
    • Haben sehr früh Zugang zum mruby Repo bekommen
  • mruby lässt sich sehr leicht einbetten
  • Dokumentation ist genauso schlecht wie die von V8
    • Man kommt aber noch zu Fuß durch den Code
  • Probleme bei V8 war JavaScript-Prototypen in C++ Objekte abzubilden
  • mruby wurde mit dem Gedanke entwickelt eingebettet zu werden, daher sind entsprechende Hooks vorgesehen C-Strukturen in Ruby abzubilden
  • V8 verwendet UTF-16, Arango verwendet UTF-8
  • mruby verwendet auch UTF-8 -> Overhead fällt weg
  • Frank hat mit LLVM rum gespielt und hat aus mruby den Faktor 2-3 raus geholt
  • Was noch viel für die Performance tun kann ist Method-Caching
  • Momentan ist mruby noch Alpha-Status
    • In der homebrew Version ist mruby drin
    • Für Linux muss es per Hand gebaut werden
  • Bei ArangoDB ist eine Shell für mruby dabei (siehe auch: http://qiezi.me/projects/mruby-web-irb/mruby.html)
  • emscripten.org
  • Die mruby Shell in ArangoDB ist analog zu der JavaScript Shell in ArangoDB
  • mruby hatte bis vor kurzem keine richtiges Makefile
    • Daniel Bovensiepen hat dann ein CMake-File erstellt (http://cmake.org)
    • Seit Dezember 2012 gibt es auch ein Rakefile
    • War unter Windows vor der totale Krampf
  • ArangoDB gibt es seit kurzem auch für Windows
    • Probleme mit libev und ICU
  • UTF-8 hat zwei Darstellung für Umlaute: den Umlaut und zwei Punkte + Buchstabe
  • Basti hatte einmal sehr viel Freude mit case-insensitive und case-sensitive Systemen
  • Macht auch Probleme bei Collation
  • ICU macht das einfach für einen (http://site.icu-project.org/)
  • Die Windows-Version von ArangoDB hat keinen mruby Support
  • mruby targeted aber Windows
  • Anekdote: Die C-Standards entwickeln sich im Jahrzehnt-Rhytmus
  • VisualStudio ist bei ANSI-C Version '89 stehengeblieben
  • Frank macht C schon seit 30 Jahren
  • Frank erinnert einen C Interpreter
  • Wenn C dann lieber Objective-C, meint Frank
  • Ist für Rubyisten noch eingängiger, vom mentalen Modell
  • Basti hat auf dem letzten DevHouseFriday 'Ruby is Magic - Reflections' gezeigt (https://speakerdeck.com/railsbros_dirk/colognerb-reflections)
  • Cocoa ist von oben bis unten voll mit Magic
  • ArangoDB im MacApp-Store: https://itunes.apple.com/de/app/arangodb/id564723448?l=en&mt=12
  • Die JavaScript-Shell von ArangoDB läuft im Browser
  • Die ArangoDB-Shell ist ein eigener Client und spricht mit dem Server über HTTP
  • http://stedolan.github.com/jq/
  • The JSON Query Language: http://www.jsoniq.org/
    • Ähnlich wie das was ArangoDB verwendet (unabhängig)

Events

  • NoSQL Matters: 25. - 27.4.2013 (http://2013.nosql-matters.org/cgn/)
    • Early Bird Tickets schon verfügbar
    • 25.4. ist Training Day
    • Keynote: Martin Fowler
    • Im KOMED in Köln
    • Mit Hadoop-Track
    • Und der Rest der bisher veröffentlichen Speaker ist nicht weniger hochkarätig

BTW: Jan Lehnardt ist jetzt bei 'The Couch Firm' - http://thecouchfirm.com/

]]>
GST005 - HistorieLöschenService no Dirk Breuer, Sebastian Cohnen Mit Oliver Jucknath über Architektur, SOA, Continuous Deployment und Testing und die Cloud GST005 Thu, 14 Feb 2013 15:07:49 +0100 01:26:34 Unser Gast ist heute: Oliver Jucknath (http://www.jubeco.de/)

Synopsis: Heute geht es um (Software) Architektur, Testing, Agile Entwicklung in großen Teams und SOA. Außerdem bietet unser Gast einige interessante Einblicke in seine Erfahrung mit Großprojekten.

Unser Gast

  • Oliver ist Entwickler, SOA Evangelist, Architekt und Social Debugger
  • Angefangen zu programmieren mit 11, macht aktuell vor allem Java
  • lange Zeit Entwickler gewesen
  • mittlerweile mehr in Richtung Consulting
  • schreibt auch Computerspiele Service-orientiert

Architektur

  • Was ist Architektur? Auswahl von Tooling, Deployment, Performance, ...
  • Manchmal ist etwas neu entwickeltes weg werfen und neu machen eine sehr gute Idee
  • Explorative Architektur
  • Oliver hat einen sehr weiten Blick auf Architektur
    • Architektur fängt bei der fachlichen Seite an
    • …und endet beim Entwickler
  • Oliver hat Konzerne mit Write-only Architekturen erlebt, wo ein Architekt ein System baut, ohne wirkliches Feedback zu bekommen
  • Oliver's kleinstes Projekt: nur er selber – das größte 2000 Entwickler
  • Erste Grundregel des Consultings: "Arbeite nicht für einen dummen Chef"
  • Task Force: Projektarbeit unter extremen Umständen. Weit über Time & Budget. Projektrettung.
  • Der Übergang von Architekturaufgaben zum Entwicklungsprozess sind teilweise fließend

Agile Entwicklung

  • Agile Entwicklung zielt darauf ab, immer wieder lauffähige Zwischenergebnisse zu erzielen
  • Lieber eine Woche in die falsche, dann zwei Wochen in die fast richtige und dann in die richtige Richtung laufen
  • Clean HEAD, Dirty HEAD
    • Lieber Clean HEAD, nur in Ausnahmesituationen Dirty HEAD

Continuous Deployment und Testing

  • Continuous Deployment ist für viele der heilige Gral
  • Continuous Deployment erfordert zwingend kontinuierliches Testen
  • Oliver: "Testen ist Teil der Architektur"
  • Durch zu vieles (Unit) Testen, kann die Agilität abnehmen (viele Tests für einen kleinen Change)
  • Oliver bevorzugt mittlerweile Application Level Testing (z.B. mit jmeter)
  • Entwickler sind häufig keine guten Tester (falsche Perspektive)
  • Ab Teams mit sieben Entwicklern, würde Oliver gerne einen Tester dabei haben
  • In großen Unternehmen, haben Entwickler keinen Einblick in Produktionsdaten und können somit nicht immer verstehen, was die Benutzer brauchen.
  • Olivers Debugging Abenteuer: Es gab bei einem großen deutschen Telco mal ein Handy für 87 Fragezeichen
  • Testing auf einer pre-Stage Umgebung (siehe Continuous Deployment)
  • Optionale Service Parameter und Featureflags (Loose Coupling)
  • Continuous Deployment (CD) ist richtig teuer:
    • gute Entwickler
    • vernünftiges Projektmanagement
    • Pre-Stage Hardware
  • Wo lohnt sich CD?
    • Handelsplattformen, Banken, die sich schnell auf Situationen einstellen müssen
  • Bei kleinen Projekten: CI und CD machbarer
  • Man will aber in jedem Fall Metriken haben, das ist (natürlich) auch ein Thema für die Architektur

SOA: Service-oriented Architecture

  • Oliver: Der Sprung zur SOA ist wie der Sprung zur Objekt-orientierten Programmierung
  • Änderungen an einem System über fünf Jahre bei einer großen Telco
    • GUI: extrem viele Änderungen, sehr variabel
    • Datenbank: ebenfalls nicht sehr stabil
    • Services: sind am stabilsten
  • Was ist ein Service?
  • Ein Service ist eine Schnittstelle zu einer fachlichen (selten technisch) Funktionalität, die unabhängig von der Implementierung ist
  • Service Anti-Pattern: Ein Service, der eine OO-Schnittstelle, exportiert.
  • Ein Service muss die Fachlichkeit beschreiben, dass können am besten Leute aus der Fachseite
  • Entwickler passen sich besser an die "komischen" fachlichen Services an, als die Fachseite an die Services, die Entwickler definieren würden.
  • Services sind NICHT Objekt-orientiert!
  • Reusability ist keine gute Idee für Services, mehrfache Verwendung durch verschiedene Kanäle ist hingegen eine gute Idee
  • "Menschen denken nicht Objekt-orientiert"
  • Services sind leichtgewichtig, man kann sie einfacher ändern, oder neue, parallel zu bestehenden einführen
  • Noch ein Anti-Pattern: "Do what I mean Service", bestehend aus einem String "XML in" und Return-Wert "XML out"
  • Services sollen wohl definiert sein
  • Ein Service-Bus ist ein zentrales Medium, welches benutzt wird, um als Servicenutzer einen Service aufzurufen.
  • Ein Bus kann auf fachlicher Ebene beobachtet werden, denn auf dem Bus werden Fachliche Dinge versendet
  • Vor SOA war EAI (http://en.wikipedia.org/wiki/Enterprise_application_integration)
  • SOA Architekturen haben eine bessere Performance als andere Architekturen
  • Mit CRUD fährt man SOA mit richtiger Wonne gegen die Wand
  • Und CRUD ist der Tot jeder Performance
  • Der (nächste) heilige Gral: Modellierung von Prozessen
  • Wechsel im Medium sind ein Problem: Anmeldung via Webseite, Support via Telefon
  • Was man will: Eine Business Process Engine (im Prinzip eine große State Machine)
  • Ein Prozess mit persistiert werden können
  • Eine SOA in Kombination mit einer Process Engine erlaubt es sehr gute Beobachtungen und Aussagen über Systeme und Geschäftsabläufe zu treffen

Die Cloud

  • Die Cloud ist interessant für Architekten
  • …hat aber auch eigene Schwierigkeiten: z.B. anvertrauen von Daten
  • Cloud ist hervorragend um (hoch) parallel und mit hoher Verfügbarkeit zu arbeiten
  • …setzt aber viel Knowhow im Bereich Kryptographie voraus
  • Oliver würde User Authentifizierung nicht in der Cloud machen
  • Warum will man in die Cloud?
    • Geringere Kosten
    • Hohe Verfügbarkeit
    • Hohe Sicherheit
  • Oliver meint, dass hohe Verfügbarkeit ist kein wirkliches Argument für die Cloud ist, weil heutige Hardware ohnehin sehr gut ist
  • 90% der Downtimes sind Security Relevant, der Rest ist meist ein Fehler von Entwicklern
  • Daher hauptsächlicher Grund für Downtimes: Security
  • Pro Cloud: Anonymous Angriff auf Amazon, gemerkt hat Amazon aber kaum was

Olivers kleine Geschichte zu Open Source

  • Kleine Firma und StartUps: Open Source, yeah!
  • Dann wird es ernst und die Firma seriös: Wir können uns Oracle leisten!
  • Dann will man aber five-nines Uptime haben… das geht nur noch mit Open Source, weil man ggf. selber Dinge patchen muss
  • Weil: Stecker ziehen ist schlecht für die Uptime
  • Unterm Strich will man alle Systeme, die an der Front stehen, in Open Source haben
]]>
GST006 - Heute machen, morgen Legacy no Dirk Breuer, Sebastian Cohnen Mit Lucas Dohmen (@moonbeamlabs) vor allem über ArangoDB GST006 Tue, 19 Feb 2013 23:27:37 +0100 01:28:07 Rubyracer (V8) -> emscripted-ruby -> Ruby (https://github.com/cantino/ruby_on_ruby) * Yanked Gems sind doof :-) (net-scp, net-ssh-gateway, newrelic) ### Technical Dept (00:55:10) * Technical Dept: http://tech.groups.yahoo.com/group/scrumdevelopment/message/55626 * Don't do it. * When we do it, figure out why and stop. * When we do it, **leave it alone** if it's not in the way. * If it is in the way, clean up the parts we pass through. ### Erlang on XEN aka geiler Scheiß (01:08:35) * Erlang on XEN: http://zerg.erlangonxen.org/ * Startet im Kontext eines Requests eine komplette Erlang VM inkl. Applikation ### Tools (01:11:40) * Record your Terminal: http://ascii.io/ * Boxen: http://boxen.github.com/ * Für Chef: https://github.com/pivotal/pivotal_workstation * Vim Autocompletion (wenn Lucas schon da ist ^^) * Aktuell verwenden Lucas und Dirk “YouCompleteMe”: https://github.com/Valloric/YouCompleteMe. Gefällt uns nicht so gut, aber sehr zu empfehlen wenn man C-* programmiert * Alternative: https://github.com/Shougo/neocomplcache * Oder einfach ohne extra Plugin ;-) ### Events (01:20:20) * Railsgirls Rheinland ist in knapp 2 Wochen (http://www.nerdhub.de/events/260-rails-girls-rheinland/dates/1756) * Railsgirls Followup am Donnerstag bei Intro (http://www.nerdhub.de/events/115-rails-girls-cologne/dates/1571) * cologne.rb am Mittwoch bei adcloud (http://www.nerdhub.de/events/40-cologne-rb/dates/843) * cologne.js in der neuen Bottfabrik! (http://www.nerdhub.de/events/3-cologne-js/dates/1597) ### Offtopic (01:25:40) * Die Nifty Drives (http://theniftyminidrive.com/) von Basti und Dirk sind endlich da * Das von Dirk leider aber doch nur in Silber (statt Pink) * XKCD Style Comics in HTML: http://cmx.io/edit/]]> Synopsis: Heute geht es um ArangoDB und wie man einen coolen low-level Client für eine Datenbank baut, Mutation Testing, Ruby/Rails Security und anderen geilen Scheiß.

Gast (00:00:40)

ArangoDB & Ashikawa (00:01:40)

Testing Ruby (00:19:50)

Ruby/Rails Security (00:39:00)

Ruby (00:48:50)

Technical Dept (00:55:10)

Erlang on XEN aka geiler Scheiß (01:08:35)

Tools (01:11:40)

Events (01:20:20)

Offtopic (01:25:40)

]]>
GST007 - Provisionieren mit Bash no Dirk Breuer, Sebastian Cohnen Mit Klaus Zanders (@klaustopher) GST007 Sat, 09 Mar 2013 18:40:28 +0100 01:40:10 Synopsis: Heute zu Gast ist Klaus (@klaustopher) und wir reden viel über Ruby 2.0, die aktuellen Rails Release Candidates, Config-Formate und Threading in Ruby. Das ganze wird diesmal abgerundet mit einem Ausflug in die Frontend-Welt und ein Besuch bei DevOps.

Unser Gast (00:01:25)

  • Klaus Zanders (@klaustopher)
  • www.putpat.tv
  • Hat bei IBM studiert
  • War dann bei Microsoft
  • Zwischendurch bei einer Versicherung
  • Nun darf er endlich Ruby machen \o/

In eigener Sache (00:04:35)

  • Wir haben Hörer in Polen!! https://shellycloud.com/
  • Es gibt Leute, die an gst-kitchen interessiert sind yeah :)
  • Wir haben jetzt auch Kapitelmarken
  • Unsere Webseite hat jetzt den Podlove-Webplayer
  • opus ist auf dem Weg

Ruby 2.0 (00:09:00)

Refinements (00:20:31)

Rails (00:26:57)

TOML, Performance, SOA und Threads (00:28:40)

RegExp debugging, 1M Connections mit Ruby (00:47:50)

FlatUI, ember.js & The end of Browser Wars? (01:02:00)

Self-Plug: Homeoffice Cologne (01:18:23)

DevOps: Chef (01:21:33)

Misc (01:32:21)

Musikkonsum (01:35:30)

  • Spotify ja oder nein?
  • Musik via Podcast (im elektronischen Bereich jedenfalls)

Events (01:38:50)

]]>
GST008 - Rake auf Drogen no Dirk Breuer, Sebastian Cohnen Mit Lucas Dohmen (@moonbeamlabs) über Ruby, JRuby, DevOps und anderen spannenden Dingen GST008 Wed, 20 Mar 2013 17:49:40 +0100 01:30:32 Synopsis: Heute ist der Lucas (@moonbeamlabs) mal wieder zu Besuch und wir haben über Serialisierung in Ruby, Thor und JRuby gesprochen. Es gibt auch mal wieder was aus der DevOps-Ecke, namentlich Vagrant und VMware und Gem-Hosting. Natürlich haben wir uns auch nicht nehmen lassen, über das Ende von Google Reader zu philosophieren und den GitHub Enterprise Faux Pa zu erwähnen. Zum Ende erzählt Lucas noch etwas zu seinem Dotfiles Installationsskript.

Intro / Errata (00:00:00)

Ruby (00:06:27)

JRuby (00:28:06)

DevOps (00:43:10)

Netzklatsch (00:58:04)

Cool Stuff (01:17:50)

]]>
GST009 - Zweites Rack rechts no Dirk Breuer, Sebastian Cohnen Mit @bascht und sehr DevOps lastig: Deployment Strategien, Chef und VPNs GST009 Tue, 26 Mar 2013 13:50:35 +0100 01:19:48 Wenn man mal irgendwo ist wo es man nicht weiß was man für Internet bekommt. * Aktueller Favorit ist BlackVPN: https://www.blackvpn.com/services/ * Einwurf: 30C3 Sneak Preview: https://alpha.app.net/evelyn/post/4178558 ### Cool Stuff™ (00:55:30) * CSS-style JSON Selektoren: http://jsonselect.org/ * http://goessner.net/articles/JsonPath/ * Window Manager für OS X: https://github.com/jigish/slate * Window Manager für Linux (in Ruby gebaut): http://subforge.org/projects/subtle * https://github.com/aziz/tmuxinator (gefunden über Lucas dotfiles) ### Vermischtes (01:14:31) * http://flattr.kejsarmakten.se/github/ -> Flattr Button bei GitHub * https://www.gittip.com/ * Sublime statt Vim: http://delvarworld.github.com/blog/2013/03/16/just-use-sublime-text/ * Haben uns sagen lassen, dass RubyMine total geil sein soll (zumindest als Editor / Browser): http://www.jetbrains.com/ruby/]]> Synopsis: Zur 9ten Ausgabe hat sich der gute @bascht wieder zu uns auf das Sofa gesetzt. Wie sollte es anders sein, reden wir relativ viel über DevOps Themen. Neben Deploymentstrategien geht es dabei um Best Practices mit Chef und VPNs. Zum Ende gibt es wieder neues aus der Rubrik Cool Stuff™. Auf Grund knapper Vorbereitung ist die Folge diesmal wieder etwas kürzer geraten.

Intro (00:00:00)

  • Ruby 2.0 Walkthrough von Peter Cooper fertig. Backer haben schon Zugriff, wird also wohl demnächst kommen.

Rails (00:01:46)

Deployment-Strategien (00:06:52)

Arbeiten mit Chef (00:24:15)

VPN (00:42:26)

Cool Stuff™ (00:55:30)

Vermischtes (01:14:31)

]]>
GST010 - Dackelklub no Dirk Breuer, Sebastian Cohnen Mit Liane Thönnes (liane_thoennes) über das Leben und Arbeiten einer Designerin unter Entwicklern GST010 Tue, 02 Apr 2013 22:01:30 +0200 01:07:40 Synopsis: Wir sprechen zur 10. Sendung mit Liane (@liane_thoennes) über das Leben und Arbeiten einer Designerin unter Entwicklern. Wir reden über Werkzeuge, Prozesse und das allgemeine Miteinander. CoolStuff™ darf natürlich auch nicht fehlen.

Intro & Gast (00:00:00)

(Web-)Design (00:02:59)

Coworking (00:43:15)

  • Liane erzählt etwas zum Gasmotorenfabrik e.V.
  • Es herrscht Uneinigkeit, was den Namen anbelangt
  • Neue Location des Cowoco: An der Bottmühle 5, 50678 Köln
  • Der Name ist noch so ein Problem :)

CoolStuff™ (00:52:56)

Verschiedenes (00:57:15)

]]>
GST011 - Unsatisfied Computers no Dirk Breuer, Sebastian Cohnen Ein Geekstammtisch Classic, mit ohne Gast über OO Design, Code Metriken und und und… GST011 Mon, 15 Apr 2013 10:42:36 +0200 01:22:32 Synopsis: Heute ein Geekstammtisch Classic, mit ohne Gast. Wir reden über Regeln für gutes OO-Design, Code Metriken, schlechte Angewohnheiten von Entwicklern, Cool Stuff und etwas über git. Zur Auflockerung philosophieren wir gegen Ende noch etwas über den PC Markt.

Errata (00:00:45)

  • Liane organisiert natürlich Railsgirls und arbeitet für Railslove. Da kommt man schon mal durcheinander :)
  • Matthias @luebken machte uns aufmerksam auf “Lean UX”: https://twitter.com/luebken/status/321933241936384000
  • Kuchi Paku Freisprecheinrichtung funktioniert nicht wie im Video, trotzdem lustig

Podcasting (00:04:35)

  • Geekstammtisch nun mit flattr!
  • Wir sind bei der Hörsuppe gefeaturet worden: hoersuppe.de
  • Neues Produkt aus dem Kölner Podcasting Cluster: nerdkun.de mit @bitboxer, @klaustoper, @moonbeamlabs und @l_ama (produziert im HOC und mit gst-kitchen)

Ruby (00:08:23)

Gems (00:32:15)

CoolStuff™ (00:37:31)

Verschiedenes: iOS, git, Google blink (00:49:25)

Meta(ebene) (01:00:20)

Events (01:14:40)

]]>
GST013 - NoSQL Matters 2013 no Dirk Breuer, Sebastian Cohnen Berichterstattung von der NoSQL Matters 2013 GST013 Wed, 01 May 2013 20:40:24 +0200 01:38:47 Die Anwendungsbereiche sind sehr viel größer (z.B. Lucene als sehr schnelle Hashmap zu nutzen) * elasticsearch ist durch sein append-only Ansatz extrem auf schnelles Schreiben optimiert und begünstigt zudem den Einsatz von SSDs * Lucene 4 ist seit Oktober 2012 draußen mit massiven Verbesserungen bei der Performance und den Datenstrukturen ### Roland Gude von YOOCHOOSE (00:51:10) * Roland (@rjtg_) arbeitet bei YOOCHOOSE in Köln (http://http://www.yoochoose.com/) * Baut ein Empfehlungssystem (z.B. für Shops) * Beschäftigt sich dabei vor allem mit den Fragen rund um "Big Data" (Was? Wie?) * Eingesetzt wird Cassandra (http://cassandra.apache.org/), Hadoop (für Research), Spark (http://spark-project.org/) * Roland fand Seans Vortrag zu konvergierenden Datenstrukturen sehr gut: http://2013.nosql-matters.org/cgn/abstracts/#abstract_sean_cribbs * Ebenfalls der Vortrag von Mahesh Paolini-Subramanya (@dieswaytoofast) http://2013.nosql-matters.org/cgn/abstracts/#abstract_mahesh_paolini-subramanya * Bei der Frage, "Ease of Development oder Big Data" findet Roland, dass die Einfachheit der Entwicklung keine große Rolle spielt. Er sieht eher den Vorteil beim Betrieb von NoSQL Datenbanken. * YOOCHOOSE verwendet Asgard, das AWS Deployment und Management Tool von Netflix https://github.com/Netflix/asgard * Cassandra ist bei YOOCHOOSE ist noch nicht vollständig automatisiert, was den Betrieb angeht. Es wird aber dran gearbeitet. ### Waldemar Schwan von Adcloud (01:04:59) * Waldemar (@Velrok) arbeitet bei Adcloud * Im Moment arbeitet er an seiner Masterarbeit zum Thema Empfehlungssysteme * Beschäftigt sich mit Hadoop und kümmert u.a. sich um Hive * Fand, wie jeder bisher, die Keynote sehr gut * Sehr spannend fand er auch den Vortrag von Michael Hausenblas (@mhausenblas) zu Apache Drill (http://incubator.apache.org/drill/): http://2013.nosql-matters.org/cgn/abstracts/#abstract_michael_hausenblas * Gekocht wird mit (heißem?) Wasser * Waldemar wird einen Clojure Workshop am 22.05.2013 ab 16:30 bei adcloud geben: http://dev.adcloud.com/blog/2013/04/19/clojure-introduction-workshop/ ### Sean Cribbs von basho (01:15:18) * Weltpremiere beim Geekstammtisch: Englisch :) * Sean (@seancribbs) ist Entwickler bei @basho ("Makers of Riak") * Basho ist ein verteiltes Unternehmen und Sean verrät ein paar Geheimnisse, warum das so gut funktioniert und worauf man achten muss * Vertrauen in Mitarbeiter * Hochmotivierte Mitarbeiter * Verschiedene Kommunikationskanäle (z.B. HipChat, Skype, mumble, gotomeeting.com, E-Mail, yammer, ...) * man muss **viel** kommunikativer sein, wenn man verteilt arbeitet * Insgesamt bleibt zu sagen die Kultur eines Unternehmens bestimmt die Technologie * An der NoSQL Matters gefällt Sean vor allem, dass so viele verschiedene Sichtweisen zusammenkommen und wie Leute NoSQL Systeme konkret einsetzen für ihre Produkte * Er sieht einen beginnenden Reifeprozess im Bereich der NoSQL Datenbanken * Es gibt weniger Angst bei Unternehmen vor NoSQL Systemen und die Akzeptanz steigt * Sean interessiert sich sehr * Probleme von verteilten Systemen * eine "strongly consistent" Alternative zu Riak * In seinem Vortrag (http://2013.nosql-matters.org/cgn/abstracts/#abstract_sean_cribbs) spricht er über konvergierende Datenstrukturen * Es gibt eine gewisse Angst vor eventual consistency aus Unverständnis * Wir reden über Fehlannahmen, was Konsistenzverhalten verschiedene Systeme anbelangt ### Gereon Steffens von Finanzen100 (01:25:03) * Gereon (@gereons) arbeitet Finanzen100, die Finanzinformationssysteme herstellen * NoSQL spielt noch keine richtig große Rolle bei Finanzen100 * Erste Gehversuche mit Redis (inspiriert durch http://tisba.de/2012/06/28/nosql-not-only-a-fairy-tale/) * Riak hat Gereon auch auf dem Radar und nutzt die Gelegenheit auf der Konferenz sich auszutauschen * Redis wurde als Spielprojekt eingesetzt um einen URL Shortner zu bauen * Und demnächst dann zum Aufbau von Watchlisten * Angeschaut hat sich recht viel :) * Der Trend bei Finanzen100 geht weg von Web und hin zu Apps * Wir schweifen etwas ab und Reden über iOS Apps, iAd und Vor- und Nachteile von nativen und nicht-nativen Apps * Weiterhin reden wir über Finanzen100s Transition von Webanwendung hin zu nativen Apps]]> Synopsis: Wir waren auf der NoSQL Matters 2013 in Köln (@nosqlmatters). Das ist jedoch keine Retrospektive in unserem Studio, sondern wir haben unser Equipment in den Mediapark Köln getragen und mit Teilnehmern und Speakern direkt vor Ort kurze Gespräche über die Konferenz, NoSQL und was sie technologisch bewegt geführt. Ergebnis ist die vorliegende Ausgabe vom Geekstammtisch. Wir hoffen euch gefällt dieses Experiment und ihr stört euch nicht zu sehr an der eingeschränkten Audioqualität.

Gesprächspartner

Begrüßung (00:00:00)

  • Wir erklären worum es bei der Ausgabe geht und schwärmen von Martin Fowlers (http://martinfowler.com) Keynote ;-)
    • Hat ein Buch zu dem Thema: http://martinfowler.com/books/nosql.html
    • 'NoSQL' hat eigentlich keine Bedeutung und war nur ein Twitter-Hashtag
    • Polyglot-Persistence als zentrales Stichwort: "Weg von der einen großen Datenbank"
    • Zwei treibende Faktoren hinter der Entscheidung für NoSQL:
      • Entwicklungsgeschwindigkeit
      • "Big Data"
    • Durch das Aufkommen von SOA fällt die Datenbank als Integrationspunkt weg
  • Definitive Aufforderung sich die Videos zu den Talks anzusehen ;-)

Martin Otten von Adcloud (00:10:34)

  • Martin (@Mobbit) arbeitet bei Adcloud in Köln
  • Verwendung von unterschiedlichen Datenbanksystemen
  • Martin würde auch S3 als "Datenbank" bezeichnen
  • CouchDB ist super leicht an den Start zu bringen
  • Basti weißt darauf hin, dass man grundsätzlich das System so einsetzen soll, dass es seine Stärken ausspielen kann
  • Relationale Datenbanken sind auch dort noch nicht raus

Lucas Dohmen von triAGENS (00:16:01)

  • @moonbeamlabs war Teil der Orga und ist Teil des ArangoDB Core-Teams
  • Talks werden als Videos bereitgestellt
  • Die meisten Leute auf der Konferenz nutzen NoSQL Datenbanken und Gespräche werden über konkrete Probleme im Einsatz geführt
  • Lucas hat auch einen Talk über ArangoDB Foxx gehalten (http://www.arangodb.org/2013/03/29/foxx-a-lightweight-javascript-application-framework-for-arangodb)
  • Lucas geht viel auf Konferenzen, weil sie machen Spaß und die Gespräche sind gut
  • Lucas hat den Eindruck, dass die meisten bereits NoSQL Datenbanken einsetzen
  • Viele setzen wohl viele Datenbanken ein, dass macht es zwar komplexer, aber bei großen Datenmengen hat man eh komplexe Systeme
  • ArangoDB als allgemeine Datenbank vereint dokumentenbasierte wie graphbasierte Konzepte, was die Komplexität wieder reduzieren kann

Sebastian Röbke und Stefan Kaes von Xing (00:25:04)

  • Sebastian (@boosty) und Stefan sind im Architektur-Team von Xing tätig
  • Evaluieren neue Technologie, entwickeln Prototypen und beraten die übrigen Teams
  • Setzen unterschiedliche Datenbanken wie RabbitMQ, Riak und Redis ein
  • Xing hat etwa 150 Engineers inkl. QA
  • Inhalt des Talks
    • Migration von SQL zu einem Riak-basierten System
    • Fokus auf die Migration
  • Weitere Technologien im Einsatz:
    • Memcache, Redis, MongoDB, Neo4J, elasticsearch
  • Für die Zukunft liegt der Fokus auf Optimierung der eingesetzen Technologien. Dabei werden Anwendungen auch schon mal wieder zurück auf MySQL geschoben
  • Ziel ist die optimale Lösung für ein Problem zu finden

Frank Celler und Martin Schönert von triAGENS (00:31:25)

  • Martin (@mschoenert) arbeitet derzeit vor allem als Software-Architekt bei triAGENS
  • Frank (@fceller) ist vor allem als Orga hier und kommt so langsam zur Ruhe :-)
  • Martin hält einen Talk über das CAP-Theorem (http://en.wikipedia.org/wiki/CAP_theorem) und dessen Einfluss vor allem auf große Systeme
  • Der Talk ist dabei unabhängig von konkreten Datenbankimplementationen
  • Für Frank ist das ganze eher eine Bewegung mit fast ausschließlich Open Source Vertretern
  • Es wird nicht der eine Produktkatalog abgearbeitet, sondern vielmehr findet ein reger Austausch über die unterschiedlichen Einsatzgebiete von Systemen statt
  • Für Martin geht es bei der Konferenz vor allem um den Austausch von Erfahrungen bei der Auswahl von Systemen
  • NoSQL werden aus Martins Sicht viel stärker als Bausteine gesehen um spezielle Probleme lösen zu können
  • Weg von monolithischen zu komponentenbasierten Systemen
  • Frank freut sich, dass wir da sind :-)

Simon Willnauer von elasticsearch (00:39:11)

  • Simon (@s1m0nw) ist seit 2006 am Apache Lucene Projekt beteiligt (http://lucene.apache.org/core/)
  • Mit-Gründer von Elasticsearch Inc. (http://www.elasticsearch.com/) der Firma hinter elasticsearch
  • Organisiert die Berlin Buzzwords Konferenz (http://berlinbuzzwords.de/)
  • Er ist wirklich beeindruckt von der Konferenz und der Organisation
  • Simons Talk war ein Einsteiger-Talk ohne Slides (https://github.com/s1monw/hammertime)
  • Demo, die in Echtzeit alle wesentlichen Eigenschaften von elasticsearch zeigt
  • Wir sind uns alle einig, dass Live-Demos immer eine gute Alternative sind und vor allem authentisch rüberkommen
  • Was hat eigentlich mit elasticsearch mit NoSQL zu tun?
    • "Everything is a search"
    • Simon macht mit Lucene NoSQL seit 2001
    • Neo4J verwendet Lucene unter der Haube
    • Lucene ist ein sehr performanter Key-Value-Store
    • "Ich brauche keine Volltextsuche, ich brauch kein elasticsearch" -> Die Anwendungsbereiche sind sehr viel größer (z.B. Lucene als sehr schnelle Hashmap zu nutzen)
  • elasticsearch ist durch sein append-only Ansatz extrem auf schnelles Schreiben optimiert und begünstigt zudem den Einsatz von SSDs
  • Lucene 4 ist seit Oktober 2012 draußen mit massiven Verbesserungen bei der Performance und den Datenstrukturen

Roland Gude von YOOCHOOSE (00:51:10)

Waldemar Schwan von Adcloud (01:04:59)

Sean Cribbs von basho (01:15:18)

  • Weltpremiere beim Geekstammtisch: Englisch :)
  • Sean (@seancribbs) ist Entwickler bei @basho ("Makers of Riak")
  • Basho ist ein verteiltes Unternehmen und Sean verrät ein paar Geheimnisse, warum das so gut funktioniert und worauf man achten muss
    • Vertrauen in Mitarbeiter
    • Hochmotivierte Mitarbeiter
    • Verschiedene Kommunikationskanäle (z.B. HipChat, Skype, mumble, gotomeeting.com, E-Mail, yammer, ...)
    • man muss viel kommunikativer sein, wenn man verteilt arbeitet
  • Insgesamt bleibt zu sagen die Kultur eines Unternehmens bestimmt die Technologie
  • An der NoSQL Matters gefällt Sean vor allem, dass so viele verschiedene Sichtweisen zusammenkommen und wie Leute NoSQL Systeme konkret einsetzen für ihre Produkte
  • Er sieht einen beginnenden Reifeprozess im Bereich der NoSQL Datenbanken
  • Es gibt weniger Angst bei Unternehmen vor NoSQL Systemen und die Akzeptanz steigt
  • Sean interessiert sich sehr
    • Probleme von verteilten Systemen
    • eine "strongly consistent" Alternative zu Riak
  • In seinem Vortrag (http://2013.nosql-matters.org/cgn/abstracts/#abstract_sean_cribbs) spricht er über konvergierende Datenstrukturen
  • Es gibt eine gewisse Angst vor eventual consistency aus Unverständnis
  • Wir reden über Fehlannahmen, was Konsistenzverhalten verschiedene Systeme anbelangt

Gereon Steffens von Finanzen100 (01:25:03)

  • Gereon (@gereons) arbeitet Finanzen100, die Finanzinformationssysteme herstellen
  • NoSQL spielt noch keine richtig große Rolle bei Finanzen100
  • Erste Gehversuche mit Redis (inspiriert durch http://tisba.de/2012/06/28/nosql-not-only-a-fairy-tale/)
  • Riak hat Gereon auch auf dem Radar und nutzt die Gelegenheit auf der Konferenz sich auszutauschen
  • Redis wurde als Spielprojekt eingesetzt um einen URL Shortner zu bauen
  • Und demnächst dann zum Aufbau von Watchlisten
  • Angeschaut hat sich recht viel :)
  • Der Trend bei Finanzen100 geht weg von Web und hin zu Apps
  • Wir schweifen etwas ab und Reden über iOS Apps, iAd und Vor- und Nachteile von nativen und nicht-nativen Apps
  • Weiterhin reden wir über Finanzen100s Transition von Webanwendung hin zu nativen Apps
]]>
GST014 - Business Kasper UG no Dirk Breuer, Sebastian Cohnen Mit Matthias @luebken über den leidenschaftlichen Entwickler und agile Softwareentwicklung GST014 Mon, 20 May 2013 17:18:16 +0200 01:44:21 Agiles Unternehmen * Wir stellen fest, dass die ganze agile Bewegung schon recht alt ist (z.B. Lean Manufacturing: http://en.wikipedia.org/wiki/Lean_manufacturing) * Embrace the Change, Veränderung ist Teil des Systems, und kein Fehler. ### Das Wort zum Sonntag (01:35:42) * Matthias empfielt alles von Henrik Kniberg (@henrikkniberg, http://www.crisp.se/konsulter/henrik-kniberg), z.B. http://blog.crisp.se/2012/11/14/henrikkniberg/scaling-agile-at-spotify) * Kommt zu User Groups, tauscht euch aus! * Hört Podcasts! :) * Matthias ruft auf zur NoDev User Group in Köln, analog zu NoSQL, Not-Only Dev! * aka "Business Kasper UG" * #nodev * Business Kasper (http://vimeo.com/4560687)]]> Synopsis: Wir haben uns mit Matthias @luebken hingesetzt und einen Geekstammtisch abgehalten. Gesprochen haben darüber, was einen guten, leidenschaftlichen Softwareentwickler ausmacht und warum wir alle agile Softwareentwicklung machen (wollen). Wie immer schweifen wir in alle mögliche Richtungen ab und danken @larsvegas für das Bringen neuen Bieres!

Intro & Gast (00:00:00)

  • Matthias trinkt Leffe Ruby: http://www.leffe.com/en/beer/leffe-ruby
  • Macht was mit Softwareentwicklung
  • Director Software Development bei Adcloud
  • Matthias <3 Agile Softwareentwicklung
  • Programmiert zwar gerne, sein Steckenpferd ist aber eher der Enabler zu sein für Entwicklung

Der ideale Entwickler (00:04:45)

Einschub: Post-it! (00:26:16)

  • Matthias liebt Post-it! Er arbeitet viel mit kleinen Zetteln in verschiedenen Bereichen der Produkt- und Softwareentwicklung bei Adcloud
  • Matthias bietet Schulungen an, wie man Post-its richtig abzieht :)
  • Präsentationen mit Post-it!s?
  • Visual Facilitation kann man lernen, selbst als Nerd: http://de.wikipedia.org/wiki/Visual_Facilitation

Prozesse zur Softwareentwicklung & Arbeitsmodelle (00:35:00)

  • Wasserfall: http://en.wikipedia.org/wiki/Waterfall_model
  • Man kann aus zwei verschiedenen Richtungen zur agilen Softwareentwicklung kommen
    • man möchte “weniger” oder andere Strukturen (von Wasserfall her kommend)
    • man möchte mehr Struktur, weil es vorher gar keine gab (kein Prozess)
  • Das agile Manifest (Manifesto for Agile Software Development): http://agilemanifesto.org/
  • Principles behind the Agile Manifesto: http://agilemanifesto.org/principles.html
  • Matthias findet Face-to-Face Kommunikation sehr wichtig und wir fragen uns, wie sich das in Einklang bringen kann mit verteilten Arbeiten, Homeoffice usw.
  • Wie bringt man für agile Entwicklung Leute zusammen, die nicht die selbe Sprache als Muttersprache haben? Oder nicht alle vor Ort sind?
  • Matthias würde immer nicht-verteilt arbeiten, wenn es möglich ist
    • …andere versuchen genau das Gegenteil
  • Marissa Mayer von Yahoo ruft die Homeoffice-Arbeiter zurück: http://www.nytimes.com/2013/02/26/technology/yahoo-orders-home-workers-back-to-the-office.html?pagewanted=all
  • The Values of Extreme Programming: Simplicity, Communication, Feedback, Respect and Courage (http://www.extremeprogramming.org/values.html)
  • Dirk hat bei pkw.de gute Erfahrung damit gemacht, den “ganz oder gar nicht”-Ansatz zu verfolgen und sich einen externen Scrum Master zu besorgen
  • Wir sind uns einig, dass Retrospektiven, das zentrale und entscheidene Mittel in guten Entwicklungsprozessen ist.
  • Ein agiler Ansatz hat Auswirkungen auf das ganze Unternehmen: Agile Softwareentwicklung => Agiles Unternehmen
  • Wir stellen fest, dass die ganze agile Bewegung schon recht alt ist (z.B. Lean Manufacturing: http://en.wikipedia.org/wiki/Lean_manufacturing)
  • Embrace the Change, Veränderung ist Teil des Systems, und kein Fehler.

Das Wort zum Sonntag (01:35:42)

]]>
GST015 - Geschäftsvorfall als Ereignis no Dirk Breuer, Sebastian Cohnen Mit Michael Bumann (@bumi) über AMQP und Legacy-Systeme, Cloud-Hosting und und und… GST015 Sun, 09 Jun 2013 17:58:55 +0200 01:52:37 Synopsis: Diesmal ist es wieder technischer, aber nicht weniger nerdig. Wir hatten @bumi von @railslove zu Gast. Mit ihm haben wir über gute Zusammenarbeit von Kunde und Auftraggeber gesprochen. Weiterhin war AMQP zur Anbindung von Legacy-Systemen und das Betreiben von Software in der Cloud das Thema. Es gab dann noch einiges über Ruby und Frontendentwicklung zu erzählen. Und zum Schluss gibt es dann, wie immer, dann noch ein paar Hinweise auf interessante Events in nächster Zeit.

Unser Gast (00:00:00)

Software Engineering (00:06:35)

Monitoring (00:29:36)

Ops (00:39:10)

Ruby (00:53:15)

Rails (01:11:52)

Tools (01:20:46)

Geiler Scheiß (01:24:31)

Geiler Frontend Scheiß (01:30:30)

Events (01:40:06)

]]>
GST016 - WWDC 2013 - Surfin’ USA no Dirk Breuer, Sebastian Cohnen Wir kommentieren die WWDC 2013 Keynote GST016 Tue, 11 Jun 2013 21:14:00 +0200 00:41:22 Synopsis: Anlässlich der diesjährigen Apple Entwickler Konferenz und der Tatsache, dass es endlich mal wieder einen Live-Stream gab, wollen wir uns einen Kommentar nicht nehmen lassen. Wir halten uns diesmal bewusst kurz, schneiden aber trotzdem alle Punkte zumindest an. Beeindruckt hat uns der neue Mac Pro, bei iOS 7 sind wir uns noch nicht sicher und OS X 10.9 macht vor allem den Eindruck, dass aufgeräumt wird.

Intro (00:00:00)

  • Heute der Kommentar zur WWDC 2013 mit Basti und Dirk

Neues OS X: Mavericks (00:03:22)

Hardware (00:20:14)

iOS 7 (00:27:01)

Sonstiges (00:37:40)

]]>
GST017 - developer-whisperer.DLL no Dirk Breuer, Sebastian Cohnen Mit Oliver Thylmann (@othylmann) über Gründung (in Köln), Start-Ups und die Firma der Zukunft GST017 Sun, 23 Jun 2013 16:41:14 +0200 01:10:19 Synopsis: Wir sprechen mit Oliver Thylmann über Köln als Gründerstadt, Gründungen im Allgemeinen, die Firma der Zukunft und und und. Dabei schweifen wir (also Oli) immer wieder mal ab, haben uns dann aber doch ganz gut im Zaum gehalten und ein gutes zeitiges Ende gefunden. Vielen Dank an @luebken für die Shownotes!

Unser Gast (00:00:00)

  • Oliver Thylmann (@othylmann), Kölner Serial Entrepreneur
  • Search Engine Spamming in der Jugend
  • …, Ligatus, Ormigo, Adcloud, …
  • Jetzt: Wieder was neues mit Henning in Köln

Köln als Gründungsstadt (00:04:52)

  • Berlin ist weniger “kompakt” als z.B. Köln
  • Oli: “Der noch nicht eröffnete Berliner Flughafen kostet so viel im Jahr, wie in deutsche Startups investiert wird”
  • Köln hat eine gute Lage und ist gut angebunden
  • Köln wird mehr und mehr besser vernetzt und es beginnt sich zu clustern
  • Wir brauchen noch ein Oberholz (http://www.sanktoberholz.de/). Ein Kaffee wie in Berlin wo alle Leute sich so treffen. Im Moment muss so was wie der Startplatz herhalten.
  • Virtuelle Firma: 150 km auseinander. Man trifft 2-3 Tage die Woche in einem Kaffee. Und es gibt Meetingräume.
  • Oli sieht Köln als Gründerstadt. Wir haben recht viel. Nur es ist nicht so “laut”.
    • Ein paar alte Beispiele: QSC, Sedo, Onvista, Is. Teledata
  • Es fängt langsam an das sich Leute lose treffen. z.B. im Startplatz
  • Klarstellung: Das Homeoffice ist nicht in der Südstadt!
  • Vom Gefühl ist der Spot in der Ecke Mediapark, Friesenplatz, Brüssler Platz.
  • Die Leute gehen nach Berlin und kommen teilweise wieder zurück.
    • z.B.: Ich baue ein Mobile Startup. Warum muss ich nach Berlin, wenn Vodafone etc. hier sind?

Virtuelles Unternehmen, Remote Arbeiten (00:17:03)

  • Was funktioniert als “virtuelles” Unternehmen gut? z.B. Wordpress, Github funktionieren gut. Das sind Produktfirmen.
  • Wenn es nicht aus den Leuten raus kommt, dann brauchst Du wieder einen Produktmensch.
  • Gerne virtuell. Aber ab und zu muss man sich treffen.
  • Erste Gehversuche mit einem Remote-Entwickler: Ständiger Google-Hangout.
  • “Es geht nicht darum was Du vorne in die Leitung rein pummst, sondern das was hinten raus kommt.” (Dee Hock, http://en.wikipedia.org/wiki/Dee_Hock)

Die Firma der Zukunft (00:20:09)

  • Wie setze ich eine Firma auf? Warum arbeiten die Leute in einer Firma?
  • Was sind die Probleme die wir heute lösen?
  • Gary Hammel: Future of Management (http://www.youtube.com/watch?v=K3-_IY66tpI)
  • Arbeiten und Management im Wandel: Aber was ist das “andere” Management Prinzip?
  • Firmen müssen innovativ am Kunden arbeiten. Der “klassische” Manager ist nicht beim Kunden! Wie kann man den Leuten am Kunden Entscheidungsmacht geben?
  • Valve hat aber auch Stacked Ranking. Es werden zwar nicht die unteren 5% gefeuert, trotzdem gibt es direktes Feedback.
  • Oli Fragt sich: Wie würde die Firma aussehen wo die sehr guten Leuten arbeiten wenn es denen erstmal nicht mehr um Geld geht.
  • Oli: “Die guten Leute sind besser besser, als sie teurer sind”; überproportional war das Wort, was Oli suchte :)
  • Nettes Buch: Antifragile: Things That Gain from Disorder von Nassim Nicholas Taleb (http://www.amazon.de/Antifragile-Things-That-Gain-Disorder/dp/1400067820)
    • Wie baue ich etwas auf, so dass ich ein Grundrauschen habe um nicht zu sterben und dann irgendwann die richtige Idee zu haben.
  • Jeff Bezos: “Du musst viele Sachen ausprobieren, um Innovation zu haben”
  • Welche Freiheiten muss ich den Leuten geben?

Developer Loveland (00:27:30)

  • Aktuelle Idee von Oli: Developer Loveland, kurz DLL ^^
  • Gesucht: Gute Entwickler? Innovation? Grundrauschen?
  • Leuten die Möglichkeit geben, Ideen auszuprobieren; 10-20% der Sachen werden funktionieren und der Rest wird auch irgendwie nutzbar sein
  • Wenn man das macht braucht man als erstes Menschen die Prototypen bauen können.
  • DLL könnte ein Safety Net sein und man bekommst so die guten Leute die nicht den Sprung zur Gründung wagen.
  • Wir überlegen, wie groß das ganze sein müsste und Oli kommt zum Schluß, dass es gerade in groß richtig Sinn macht.

Wert von Ideen, Jobs, SaaS Pricing (00:37:50)

  • NDAs sind Quatsch. Jeder VC lehnt es ab und sagt “dann erzähl es mir halt nicht”.
  • Umsetzung/Ausführung ist alles bei einer Idee
    • Oli: Man kann über die Samwers sagen was man will, aber Execution können die.
    • Ripple-Network (https://ripple.com/) - Bitcoin Richtung, Remittance Market; Größter Player in Indien. Aktuell: 5,8 Millarden USD Gebühren der Banken damit Inder weltweit Geld nach Hause schicken können.
  • Quantified Self: Es gibt einen BH der den Blutfluss misst und Brustkrebs erkennt.
  • “Andere Seite Flachbildschirm Jobs”
  • Dirk erzählt vom wenigen Spielraum, die Autohändler beim Leasing am Interface haben
  • SaaS und Enterprise Markt: Entscheidungen kommen immer mehr von unten
  • Oli prangert das Preismodel von Github Enterprise an!

Glückliche Kunden (00:49:44)

  • Net Promoter Score: Würdest Du uns weiter empfehlen? 0-10. http://en.wikipedia.org/wiki/Net_Promoter
  • Call-Center: Da wird nichts weitergeleitet, sondern wenn man sich einem Problem angenommen hat löst man es auch.
  • “Glückliche Kunden erzählen es 10 Leuten, unglückliche erzählen es 1000”
  • Dirk erzählt von dänischen Ferienhäusern, deren Vermittlung und Sommerfesten
  • Was gibt es noch? Das einzige was es noch gibt? Innovation am Kunden!
  • “Wer ist denn heutzutage noch intelligenter als ein 30 Minuten Gesurfter?”
  • Agilgedöns, “der ganze agile Scheiß.”
  • “If you don’t like change. You like irrelevancy even less.”
  • Was ist ein Manager in der Zukunft: Jemand mit Marktverständnis und der ein Netzwerk hat.
  • Erfahrung ist unmenschlich wichtig. z.B. von Klaus Hommels.

Zum Abschluß (01:01:03)

  • Interactive Cologne: Die Kölner SXSW (South By South West) - http://interactive-cologne.com
  • Hack on Startup in der Trinitatis Kirche in Köln. Ist wirklich gut geworden. Gute Pitches. Gute VCs. Gute Hacker.
  • Man trifft die Kölner Szene.
  • Warum der Startplatz: "Es gibt Menschen die sich um die Spülmaschine kümmern."
  • Unperfekt Haus (http://www.unperfekthaus.de/). Geben nur 10 € aus für eine Putzfrau. Er nimmt Eintritt für nicht Künstler die durch das Haus gehen.
  • Oli hat jede Geekstammtisch Folge gehört! \o/
]]>
GST018 - Runde Ecken no Dirk Breuer, Sebastian Cohnen Mit Sebastian Kippe (@skddc) über 5Apps, Arbeiten beim W3C, HTTP 2.0, DevOps und mehr… GST018 Fri, 28 Jun 2013 18:09:55 +0200 01:25:51 Synopsis

Der Geekstammtisch wird volljährig! Dieses mal sprachen wir mit Sebastian Kippe (@skddc) und sprechen über Hacking Trips, sein Startup 5Apps, das Arbeiten beim W3C, HTTP 2.0, IPv6, SSL, DevOps. Zum Abschluss noch ein ganz besonderes Thema: BitCoins und Namecoin.

Unser Gast (00:00:00)

Hackertrips (00:02:23)

5Apps (00:06:08)

Web Apps (00:08:56)

5Apps Deploy und Storage & remoteStorage (00:16:00)

  • Das erste Produkt von 5Apps: 5Apps Deploy
  • PaaS für Client-side JavaScript Apps
  • Hilft zusätzlich zu einem "git push"-Deploy z.B. beim Packaging
  • Weitere zukünftige Dienste von 5Apps Deploy:
    • JavaScript Exception Tracking
    • Web store/payment integration
  • 5Apps Storage
    • work in progress (schon experimentell kostenlos bei jedem Account dabei)
    • basiert auf remoteStorage (siehe oben)
    • Idee: Daten liegen nicht beim App-Anbieter (z.B. Google), sondern wo der User das will
  • remoteStorage ist ein Protokoll für einen Key-Value Speicher http://remotestorage.io/ http://tools.ietf.org/html/draft-dejong-remotestorage-01
  • Webfinger: https://code.google.com/p/webfinger/
  • remoteStorage: Umziehen des Anbieters?
    • aktuell nicht direkt vorgesehen, wenn dann muss das der Client machen, oder der Serveranbieter selbst anbieten
    • Google Takeout: https://www.google.com/takeout
  • Verschiedene Apps sollen die selben Daten benutzen können
    • und eben nicht wie bei iCloud!
  • Konflikte werden im Moment bei remoteStorage noch wenig berücksichtigt :-/
  • remoteStorage.js funktioniert auch offline
  • ownCloud: http://owncloud.org
  • Unhosted: https://unhosted.org
  • 5Apps benutzt Riak für ihr remoteStorage Produkt und App Hosting

Das W3C, DRM & App Stores (00:27:10)

HTTP 2.0, IPv6, SSL (00:40:15)

Ops und Infrastruktur bei 5Apps (00:46:51)

Travis Foundation & RailsGirls: Summer of Code (00:57:00)

Self-Hosted Cloud, GPG, Apple und HTML5 (01:00:08)

Bitcoin / Namecoin (01:17:30)

]]>
GST019 - Weg von .NET & Windows no Dirk Breuer, Sebastian Cohnen Mit Stefan Schiffer (@scrat0105) über die Wandlung eines Unternehmens GST019 Sat, 27 Jul 2013 16:29:29 +0200 01:17:25 Synopsis: Wir hatten dieses Mal Stefan Schiffer (@scrat0105) zu Gast. Er berichtet von dem doch sehr radikalen Wandel seines Arbeitgebers: Von On-Premise zu SaaS und Cloud, von Wasserfall-Prozessen hin zu Agiler Softwareentwicklung und von .NET & Windows zu Ruby & Linux. Stefan erzählt, woher der Wandel kommt und wie er den Wandel von Anfang an miterlebt hat.

Intro (00:00:00)

Unser Gast (00:03:24)

  • Stefan Schiffer: @scrat0105, https://www.xing.com/profiles/Stefan_Schiffer8
  • hört gern denn Geekstammtisch <3
  • hat mit Dirk und Basti Medieninformatik an der FH Köln studiert
  • wollte immer in Richtung UX
  • macht seit ~2 Jahren Rails
  • explizite Stellen für Interaction Design sind eher unüblich

InVision (00:06:02)

  • Stefan arbeitet bei InVision AG: http://www.invision.de
  • InVision ein solides mittelstänidges Unternehmen aus der klassichen B2B On Premise Welt
  • Jetzt allerdings radikaler Wandel: Weg von On Premise hin zur Cloud und zu SaaS
  • InVision stellt Software für die Personaleinsatzplanung wie etwa Personal-Forecasting her
  • Vor 3-4 Jahren kam die Erkenntnis, dass man sich technologisch modernisieren muss
  • War mit der damaligen Software schwierig bis unmöglich
  • Daher war eine Schnitt unvermeidbar
  • InVision ist kein Startup
  • Mittlerweile hat sich eine "Startup-Mentalität" eingestellt
    • Von Individualsoftware hin zu webbasierten Diensten
    • Das UX-Team kommt hier viel besser zum Einsatz
  • Vorher gab es eine C#/.NET-basierte Lösung mit viel lizensierter Drittanbietersoftware
  • Das neue, Rails-basierte Produkt ist noch nicht in Gänze live
  • Das Ziel ist, dass das neue Produkt das alte irgendwann ablöst
  • Die alte Software lebt nun auch in der Cloud und wird weiterhin betrieben
  • Diese Lösung ist auch schon als Saas verfügbar
  • Neue Kompotenten greifen auch noch teilweise auf die alte Software zu
  • Bestandskunden wechseln nach und nach auf die Cloud-basierte Variante
  • Vor allem sehr große Kunden sind noch auf der On Premise Version
  • Die Cloud der Wahl ist AWS (inkl. Windowsserver für die alte Umgebung)
  • Kunden, die die On Premise Lösung einsetzen können bereits auf neue Clouddienste zugreifen
    • Beispiel dafür ist das Cloud-basierte Forecasting, was bereits jetzt einen Mehrwert bietet
    • Bedingt dadurch hat man nicht nur einmalige Migrationen von Altdaten, sondern auch eine konstante Verbindung zwischen den Systemen
  • 80% der Entwickler arbeiten auf dem neuen System, 20% arbeiten an der Pflege des Altsystems
  • Entwicklung findet an drei Standorten statt (Derry/Londonderry, Ratingen, Leipzig)
  • Jeder Standort hat mehrere Teams für unterschiedliche Komponenten der Software
  • Neben den Entwicklungsteams, gibt es noch Service-Teams für UX und Technical Writing, die allen Teams zur Verfügung stehen
  • Es gibt ein Operations-Team in Derry/Londonderry und es wird ein DevOps-Team in Ratingen aufgebaut
  • 50-60 Menschen in der Produktentwicklung

Out of the Dark (00:17:40)

  • Was war der Auslöser für den radikalen Wandel?
    • Technologische Erweiterbarkeit war nicht mehr gegeben
    • Zwei Möglichkeiten: Entweder radikal aufräumen, oder von Vorne anfangen
    • Man war von der Cloud und ihren Möglichkeiten für den Anwendungsfall überzeugt
  • Erst kam der Switch zur Cloud und erst danach der Wechsel der Technologie
  • Gleichzeitig mit der Technologie wurde der Entwicklungsprozess und die Unternehmensstruktur radikal geändert
  • Wichtig war, dass die Unternehmensführung zu 100% dahinter steht
  • Ja, es sind Leute auf der Strecke geblieben: Es sind mehr Leute gegangen als die normale Fluktuation
  • Die Änderung der Unternehmensstruktur war im Nachgang eine Bedingung für den neuen Prozess
  • Mitarbeiter müssen Verantwortung übernehmen
  • Vorteil: Fachwissen gefestigt, Probleme bekannt und weitestgehend gelöst, Kundenstamm vorhanden
  • Nachteil: Niemand kannte Rails, niemand war firm in agiler Softwareentwicklung
  • Zu Beginn Scrum nach Lehrbuch inkl. externen Trainings
  • Heute wird Scrum nicht in Reinform gemacht, was die typische Entwicklung ist

Von C# hin zu Rails (00:26:38)

  • Schwerfällige Entwicklung
  • Automatisiertes Testing nur sehr schwer möglich
  • In der C#-Welt ist Open-Source nicht sehr populär
  • Entscheidung für Rails ist eher spontan gefallen
    • Prototypen wurden mit Rails erstellt und das Vorgehen hat überzeugt
    • Danach hat man sich entschieden, dass man einfach weiter darin arbeitet und die Prototypen noch mal neumacht
  • Lizensierung und deren Kosten ein tatsächliches Problem
  • Kosten für die Server in der Cloud waren auch ein Problem
  • Herausforderungen beim Umstieg auf Rails war vor allem zu lernen was es bedeutet Web-Anwendungen zu schreiben
  • Ansonsten die üblichen Probleme: Neue Sprache, neues Framework, neues Paradigma
  • QA musste lernen Tests zu schreiben
  • Keine IDE mehr, sondern arbeiten mit Texteditor und CLI, vor allem durch den "Wegfall" des Debuggers
  • "Ich kann gar nicht mehr debuggen"
  • Zudem kam auch noch ein Wechsel des Betriebssystems ^^
  • Man musste auch lernen wie man deployed und Server provisioniert
  • Jenkins zur Realisierung der Deployment-Pipeline
  • Provisionierung der Server mit Chef
  • Genutzte Dienste von AWS: Vor allem EC2, ELB und S3
  • DB wird selber auf EC2 gehostet
  • Basti weist mal wieder darauf hin, dass AWS sich nur lohnt, wenn man es richtig nutzt und automatisch provisioniert
  • Stefan erzählt, dass sie am Anfang EC2 "nur" als Server in der Cloud gesehen haben und erst den richtigen Umgang lernen mussten
  • Stefan meint, sie sind fast fertig, aber fertig wird man ja eh nicht
  • Initiale Wissenslücke durch Trainings, Workshops und Self-Training geschlossen
  • Man musste lernen, dass man seinen eigenen Code auch mal wegwerfen muss

Agile Softwareentwicklung (00:38:20)

  • Während der Umstellung auf neue Technologien hat man sich die Frage gestellt, warum schreiben wir eigentlich Spezifikationen? Am Ende kommt eh nicht das raus, was der Kunde wollte?
  • Die häufigste Antwort auf diese Fragen war: Im besten Fall war es überflüssig, aber in der Regel hat es Nachteile gebracht.
  • Und was ist eigentlich dieses Scrum?
  • SaaS eignet sich perse nicht für Wasserfall, man muss viel schneller reagieren können
  • Man hört ganz anders auf die Kunden: Nicht mehr der einzelne zählt, sondern der Bedarf des Marktes
  • Dadurch musste auch der Produktbereich umlernen bzw. überhaupt aufgebaut werden
  • Entscheidungen über Produktänderungen werden vor allem in den einzelnen Teams getroffen
  • Am Anfang war es schwierig ein Produkt ohne echte Kunden zu entwickeln
  • Die Lücke musste durch internes Know-How geschlossen werden
  • Das machte auch Reviews schwierig
  • Mittlerweile haben alle Teams den selben Sprint-Rythmus und machen ihr Review gemeinsam in einem Conference-Call
  • Stefan ist zufrieden mit dem Transformationsprozess
  • besondere positive Aspekte, der Mehrwert der Umstellung
    • direktes und schnelles Feedback
    • worst-case werden nur 1-2 Sprints an Zeit "weggeworfen"
  • Retrospektiven werden noch etwas stiefmütterlich behandelt
  • Teams arbeiten sehr eigenverantwortlich
    • jedes Team betreibt ihre eigenen Komponenten/Module
    • organisieren selbst Urlaub im Team
  • Standortübergreifende Kommunikation ist eine Herausforderung
    • Module, die enger zusammenarbeiten und direkte Abhängigkeiten haben, sind nach Möglichkeit am selben Standort angesiedelt
    • Ausnahme, das UX Team: Das Team ist verteilt und unterstüzt die anderen Teams
  • Technologie/Architekturentscheidungen werden in einer Art Architekturboard getroffen, nachdem es Vorschläge und Bewertungen aus dem jeweiligen Team gab.

Technical Depts, eigene gems als externe Dependencies (00:54:19)

  • "Technische Schulden" hat jeder, egal wie jung oder alt ein Projekt ist
  • Es gibt ein paar Regeln, wie mit Technical Depts umzugehen ist:
    • erst kommen Bugs, dann Technical Depts und dann User Features
  • interne gems, werden von den Teams wie externe Dependencies verwendet (mit Pull Requests, Forks usw.)
  • dadurch, dass alle Teams quasi eigene Rails Apps entwickeln, sind die Teams relativ unabhängig von Entscheidungen, wie erb vs HAML oder CSS/SCSS/…
  • mitlerweile wird nur noch HAML benutzt: http://haml.info/

Lernprozesse & Kulturwandel (01:01:25)

  • Andauernder Learnprozess, viele Fehler, viel gelernt
  • Zusammen mit dem technischen Wandel gab es auch einen starken "kulturellen" Wandel

APIs, Service-Orientierung (01:03:47)

  • Die bisherige On-Premise-Lösung war nicht Service-orientiert
  • Jetzt geht es schon mehr in diese Richtung
  • z.B. gibt es ein zentrales User-Management (Service)
    • API spricht JSON via HTTP
    • wird bereitgestellt durch gems
  • Services/Module haben ihre eigenen Datenbanken

Zum Abschluss (01:09:12)

  • Wir sind beeindruckt von dem doch radikalen und positiven Wandel, den Stefan beschrieben hat
  • Wir sind uns einig, dass ein ganzheitlicher Ansatz am erfolgversprechendsten ist
  • InVision sucht noch Entwickler und vor allem Leute, die DevOps machen wollen
  • Basti hat eine Mail mit Jobangebot bekommen, worin mit einem Foto von Clubmate im Kühlschrank geworben wurde :)
  • Mate gibt es bei InVision noch nicht, aber es wird gegrillt (reicht nicht ganz ^^)
]]>
GST020 - Wenn die Codebase groß genug ist... no Dirk Breuer, Sebastian Cohnen Auf dem RailsCamp 2013 mit Christoph Olszowka (@TheDeadSerious) über The Ruby Toolbox und simplecov GST020 Mon, 29 Jul 2013 18:27:42 +0200 00:47:27 45min :-/ * Basti ist zufrieden mit SimpleCov und hat keine Feature Requests * Christoph will JavaScript Coverage mit einbauen * Die Coverage API gibt Daten in einheitlichem Format raus, das könnte man für JavaScript Testsuites nachbauen * SimpleCov kann die Coverage Daten aus mehreren Test-Suites zusammenfügen * Wenn jemand mitarbeiten will, Christoph freut sich über Pull-Requests * Weitere Idee: SimpleCov in Produktion einzusetzen ("Welcher Code wird überhaupt wie oft verwendet"), das wird aber von der Coverage API nicht unterstützt * Dirk wirft in den Raum, dass das mit DTrace (http://de.wikipedia.org/wiki/DTrace) möglich sein könnte * Dirk: "Man sollte sich öfter fragen, ob Code überhaupt noch benutzt wird"; +1 ### RailsCamp (00:38:50) * In den letzten 2 Tagen war es verdammt heiß, heute ist es eher bewölkt aber angenehm kühl * Abenteuer Hallen Kalk: http://ahk.abenteuerhallenkalk.de * Viele Aktivitäten: Klettern, Basketball, Laufen, Kicker, BMX… * Basti: "Das Wasser und die Mate, die man sich hier reinkippt, schwitzt man sofort wieder aus" * Internet per Richtfunkstrecke und WLAN vom CCC * Wi-Fi Access Points: Ubuquity UniFi http://www.ubnt.com/unifi * Viprinet (http://www.viprinet.com/de/home) * Backup Uplink von Vodafone & T-Mobile * Man läuft rum, hört Sessions mit und unterhält sich mit den Leuten * Weitere Aktivitäten: BMX mit einigen Verletzungen, AR Drone 2 (http://ardrone2.parrot.com) * geiles Essen, lecker Kaffee * Übernachtung in der Skate Halle in zwischen und neben den Half Pipes (Christoph hat's getestet)]]> Synopsis: Auf dem RailsCamp sprachen wir mit Christoph @TheDeadSerious Olszowka. Es ging um das Rails Ökosystem und um zwei etwas bekanntere Projekte von Christoph: The Ruby Toolbox und simplecov.

Unser Gast (00:00:00)

Rails Camp 2013 (00:02:40)

Das Rails Ökosystem (00:04:00)

Ruby Toolbox (00:18:45)

  • Projekt seit 2009
  • Kategorisierter Katalog von Gems und anderen Open Source Projekten
  • Sortierung nach Beliebtheit, viele Metadaten wie Aktualität, letzter Commit auf GitHub
  • Als eingeloggter User kann man Kategorien hinzufügen, das Repo updaten, etc.
  • Viele Änderungen müssen von Christoph noch manuell reviewt werden
  • Basti nutzt die Toolbox regelmäßig, wusste aber nicht, dass man auch mitarbeiten kann
  • Sortierung nach Rubygems Downloads, GitHub Stars/Watcher und Forks.
  • Man kann sich den Score eines Projektes anzeigen lassen. Beispiel: thor https://www.ruby-toolbox.com/projects/thor/popularity
  • Dirk schlägt vor den letzten Commit auch mit einzubeziehen
  • Wenn ein Gem bei RailsCasts (http://railscasts.com), etc erwähnt wird, dann beeinflusst das die Watcher Zahlen, aber die Download Zahlen ändert sich nicht zwangsläufig
  • Für Basti ist es wichtig, dass ein Projekt aktiv ist (neue GitHub Commits), um zu sehen welches Tool er benutzt
  • Gemcutter/Rubygems (http://www.rubygems.org) und Bundler (http://bundler.io/) haben das Ökosystem positiv beeinflusst
  • Ein gem zu Erstellen, zu Open Sourcen und es zu maintainen ist ein echtes Commitment!
  • Überprüfen ob Gems mit Rails 4 funktionieren: http://www.ready4rails4.net
  • "View the full dependency tree for any ruby gem": https://www.gemlou.pe
  • "Bei großen Projekten landet man oft in der Dependency-Hell"
  • Angabe von Ruby Version (http://docs.rubygems.org/read/chapter/20#required_ruby_version) und Plattform (http://docs.rubygems.org/read/chapter/20#platform) im gemspec möglich
  • Leider die Dependency-Angaben oft sehr eng oder schlichtweg falsch: z.B. MRI verlangt, aber jruby funktioniert auch

SimpleCov (00:31:50)

  • SimpleCov basiert auf der Coverage API (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/coverage/rdoc/Coverage.html), die mittlerweile von JRuby (http://jruby.org) und Rubinius (http://rubini.us) auch unterstützt werden
  • die Testsuite für SimpleCov dauert unter jruby >45min :-/
  • Basti ist zufrieden mit SimpleCov und hat keine Feature Requests
  • Christoph will JavaScript Coverage mit einbauen
  • Die Coverage API gibt Daten in einheitlichem Format raus, das könnte man für JavaScript Testsuites nachbauen
  • SimpleCov kann die Coverage Daten aus mehreren Test-Suites zusammenfügen
  • Wenn jemand mitarbeiten will, Christoph freut sich über Pull-Requests
  • Weitere Idee: SimpleCov in Produktion einzusetzen ("Welcher Code wird überhaupt wie oft verwendet"), das wird aber von der Coverage API nicht unterstützt
  • Dirk wirft in den Raum, dass das mit DTrace (http://de.wikipedia.org/wiki/DTrace) möglich sein könnte
  • Dirk: "Man sollte sich öfter fragen, ob Code überhaupt noch benutzt wird"; +1

RailsCamp (00:38:50)

  • In den letzten 2 Tagen war es verdammt heiß, heute ist es eher bewölkt aber angenehm kühl
  • Abenteuer Hallen Kalk: http://ahk.abenteuerhallenkalk.de
  • Viele Aktivitäten: Klettern, Basketball, Laufen, Kicker, BMX…
  • Basti: "Das Wasser und die Mate, die man sich hier reinkippt, schwitzt man sofort wieder aus"
  • Internet per Richtfunkstrecke und WLAN vom CCC
  • Wi-Fi Access Points: Ubuquity UniFi http://www.ubnt.com/unifi
  • Viprinet (http://www.viprinet.com/de/home)
    • Backup Uplink von Vodafone & T-Mobile
  • Man läuft rum, hört Sessions mit und unterhält sich mit den Leuten
  • Weitere Aktivitäten: BMX mit einigen Verletzungen, AR Drone 2 (http://ardrone2.parrot.com)
  • geiles Essen, lecker Kaffee
  • Übernachtung in der Skate Halle in zwischen und neben den Half Pipes (Christoph hat's getestet)
]]>
GST021 - Nerdstammtisch (aka NK008) no Dirk Breuer, Sebastian Cohnen Das Geekstammtisch und Nerdkunde Joint Venture berichtet vom RailCamp 2013 GST021 Tue, 30 Jul 2013 18:54:43 +0200 01:02:55 Synopsis: Der Geekstammtisch und die Nerdkunde haben auf dem RailsCamp Germany 2013 zusammen ein paar Impressionen der Besucher gesammelt. Wir sprachen mit @skddc, @jkwebs, @argorak, @badboy_, @Uepsi, @slogmen und @Hagenburger. Bis zum nächsten Mal!

Intro (00:00:00)

Sebastian Kippe (00:01:02)

  • Twitter: @skddc
  • (Mit-)Organisator des RailsCamps
  • es gab so circa 30 Mit-Organisatoren per GitHub Issues
  • wir fanden, die Orga lief super
  • Sebastian kommt gerade von der Crypto-Session mit Key Signing & Co.
  • Es wurden 125 Tickets verkauft, es waren circa 10 nicht da und es sind ein paar zusätzlich gekommen
  • Sebastian's Highlight: Punk Rock mit @TheDeadSerious auflegen!
  • Sport und Nerds: Es gab Opfer! 2 von 4 Leute beim BMXen waren im Krankenhaus

Jakob Hilden (00:07:09)

  • Twitter: @jkwebs
  • ebenfalls Organisator und vor allem Koordinator \o/
  • findet es super, wie alles so zusammengekommen ist
  • bei der vorletzten Cologne.rb hat Jakob tolle "Hüte" gebastelt; hat funktioniert :)
  • Die Idee einen Pool aufzustellen, kam leider etwas zu spät für's RailsCamp
  • Jakob's Highlight: Nico @Hagenburger's Session zu Living Styleguides
  • Es gab eine tolle Feedback-Runde zu dem Living Styleguide Ansatz

Unsere Impressionen vom Camp (00:12:10)

  • Dirk fragt sich, ob es eine grundsätzliche thematische Richtung auf dem Camp und wir haben nichts ausgemacht
  • uns war allen warm :)
  • Wir haben alle nicht so viele Sessions mitgemacht, sondern haben mehr an Diskussionen rundherum teilgenommen
  • Lucas hat den Eindruck, dass viele auf der Suche nach DEM Frontend JS Framework sind
  • Wir diskutieren etwas über Ember.js, Backbone.js und AngularJS

Mike (00:16:40)

  • betreut die ganzen Nerds in den AbenteuerHallenKALK: http://ahk.abenteuerhallenkalk.de/
  • die gute Seele des Hauses
  • Mike findet die RailsCamper sind tiefen-entspannt und ordentlich (hört, hört!)
  • Nerds sind pflegeleichter als Jugendliche \o/
  • Mike hat Chipstüten vermisst
  • …und er fand unseren Musikgeschmack gut
  • in den Hallen finden alle möglichen Events statt
  • Evoke wird das selbe Wi-Fi Setup bekommen, wie das RailsCamp

Florian Gilcher (00:21:38)

  • Twitter: @argorak
  • Hat AR.Dronen mitgebracht, weil er eine geschenkt bekommen hat ^^
  • Es sollte gescripted werden und nicht mit der iPhone App geflogen werden
    • Ergebnis: Eine wird von einem N64-Controller gesteuert, die andere von einer Shoes4-App
  • Klaus hat seine neue DrohDrohnene erstmal geschrottet
  • Pro-Tipp: Drohne und Client müssen im gleichen WLAN sein
  • Implementierungen in Ruby artoo-ardrone und Node.js node-ar-drone
  • Florian hat einen Arbeitskreis für Ruby-Events gemacht
  • Wie kann man sich besser vernetzen?
    • Deutschlandweite Mailingsliste
    • Deutschlandweites Blog
    • Ruby Berlin e.V. ist trotz des Namens nicht auf Berlin begrenzt
  • Das Railscamp wurde vom Ruby e.V. veranstaltet
  • Zentrale Frage sollen einfach zu klären sein (Bsp.: Internet, WLAN, etc)
  • Die Telekom lässt das eurucamp nicht an ihr Glas m(
  • Findet statt vom 16.-18. August und es gibt noch Tickets
  • Die einzige JRuby Konferenz dieses Jahr findet kurz vorher statt: JRuby Conf EU
  • Es gibt keine Kombitickets für die Konferenz aber eine Kombiparty
  • Am 24./25. August findet die RedFrog Conf auf der FrOSCon statt
  • "So Coded" findet am 19./20. September in Hamburg statt

Jan-Erik Rediger (00:32:20)

  • Twitter: @badboy_
  • Kommt von rrbone, die den Uplink via Richtfunk zur FH Köln realisiert haben
  • rrbone ist ein kleiner ISP aus Dortmund
  • Richtfunkstrecke ging über 1,5 km
  • Der Ausblick war großartig ^^
  • Es gab für alle Teilnehmer öffentliche IPv4 und IPv6 Adressen
  • Das Netz kommt in Düsseldorf raus!!!
  • Es gab ein Easteregg
  • Bis zu 100MBit sind über die Richtfunkstrecke gemessen worden \o/
  • Wir können jetzt überall Campen \o/

Wir (00:37:28)

  • Sport von den Panelisten: Drohne fliegen, Kickern, Schwitzen
  • Eine weitere Nerdkunde wurde in der Sauna mit Dennis Reimann aufgenommen: http://nerdkunde.de/nk0007.html
  • Und ein Geekstammtisch mit Christoph @TheDeadSerious Olszowka
  • Hardware Hacker: Buzzer und Funky Monkey Cards

Maxim (00:38:35)

  • Twitter: @Uepsi
  • Projekt hat auf der Interactive Cologne angefangen
  • Das Projekt: Mit Karte einchecken und einfach zählen, wie oft jemand am Kühlschrank ist usw.
  • Raspberry Pis als Check-In Stations
  • Aktuell sammelt jede Station für sich, denn das Netzwerk hat nicht mitgespielt
  • App ist mit Rails gebaut, wer Lust hat mitzumachen: Bei Maxim melden!
  • Buzzer hängen sich als Tastatur an den Rechner und können RGB Farbverläufe darstellen
  • Läuft mit AnyKey – die Hacker sind aber noch schwer beschäftigt
  • Klaus baut seine zukünftige Eisenbahnsteuerung vielleicht mit AnyKey
  • Nerdifiziere alles mit Einchecken
  • Alles anonym, Entwickler wehren sich gegen PRISM Vorwürfe
  • Github Repo: StuffCard local-service

Wir (00:45:43)

  • Das Fleisch war super (@killerg hat's gegrillt!)
  • Fleisch + Zwiebeln + Beck's

Thomas Schrader (00:46:20)

  • Twitter: @slogmen
  • In einem riesengroßen Topf Fleisch + riesigen Mengen von Zwiebeln + Bier + Senf
  • 24 Stunden eingelegt
  • Butterzart!
  • Sein erster Ruby Event
  • Erst seit ein paar Monaten in Köln
  • Super Atmosphäre, Leute und Location
  • Er fand Sebastian's Babuschka Vortrag und den Living Styleguide super
  • Babuschka automatisiert Server Setups
  • Abhängigkeiten stehen im Vordergrund
  • Keine zentrale Komponente wie bei Chef oder Puppet
  • Server Setups automatisieren ist immer noch nicht gelöst
  • Kann auch mehrere Server provisionieren
  • Er wird noch auf weitere Events gehen

Wir (00:51:42)

  • Podcast Workshop
  • Einige waren interessiert am Podcasten
  • Es waren jede Menge RailsGirls da
  • Die Rails Girls treffen sich wöchentlich in kleinen Gruppen mit ihrem Coach
  • Am Samstag haben sich die Rubymonsters getroffen, um ihre Tests wieder grün zu machen
    • Sie arbeiten an der Open Source Rails App Speakerinnen Liste
    • Das soll Speakerinnen und Konferenz Organizer zusammenbringen
    • Haben Git Blame gelernt
    • Aber die sitzen alle im Git Workshop

Nico Hagenburger (00:55:40)

  • Twitter: @Hagenburger
  • Er hat einen Talk über Styleguide Driven Development gehalten: Separation von Frontend und Backend
  • Er macht das auch so
  • GitHub Repo – er baut ein Gem
  • Er schreibt in Markdown seine Code Beispiele und schreibt dann seinen Sass Code, und produziert statisches HTML + CSS
  • PHP Leute können wohl auch Sass. Aber er gibt am Liebsten direkt CSS raus
  • Sass und Compass in Symfony
  • Er muss keine Datenbank aufsetzen, die Entwickler müssen kein Sass mehr kompilieren
  • Es gibt eine CSS Datei, in der alle Patches drin sind, und die werden dann später von Nico wieder in das Sass reingezogen
  • Er macht das als Freelancer
  • Ihm hat es super viel gebracht, da zu sein: Er hat Mitstreiter gefunden und Feedback gekriegt
  • Das Gem liegt auf GitHub
  • Er fand es anders richtig geil: Diesmal hat er viel technisches mitgenommen
]]>
GST022 - Der Finder lügt! no Dirk Breuer, Sebastian Cohnen Mit Manuel @StuFFmc Carrasco Molina über Podcasting, iOS/OS X Entwicklung und Apple Rumors. GST022 Wed, 21 Aug 2013 10:07:09 +0200 01:39:10 Synopsis: Wir sprachen mit Manuel @StuFFmc Carrasco Molina über seine Zeit als Podcaster (http://pomcast.com), iOS und OS X Entwicklung. Da wir schon mal einen Apple Fanboy da hatten, haben wir die Gelegenheit genutzt um etwas in die Glaskugel zu schauen.

Unser Gast (00:00:00)

Podcasting (00:06:00)

  • Pomcast: http://pomcast.com
  • Stuff hat mit Podcasting angefangen am 31.5.2005...
    • auf Französisch, später dann auch auf Englisch und Deutsch und ein paar auf Spanisch
  • Thema: Apple, ~5000 Hörer
  • Hat viele interessante Personen durch das Podcasting getroffen
  • Idle seit ~2010
  • Podcasts mit anderen via Skype aufnehmen - viel Arbeit!

iOS Entwicklung, App Store & Co. (00:20:30)

Der (App) Markt (00:34:00)

  • macht Apple die Preise kaputt? Was ist mit Updates? Fragen über Fragen...
  • der Preis vom aktuellen Logic ist unter dem früheren Updatepreis
  • Aperture ist alt (2010): http://www.apple.com/aperture/
  • Wir sprechen noch mal kurz über Diskalarm und Comments.app
  • Diskalarm und die Problematik mit der Mobile Time Machine; der Finder lügt!1!!
  • df: http://en.wikipedia.org/wiki/Df_(Unix)
  • du: http://en.wikipedia.org/wiki/Du_(Unix)
  • App Store Updates?
    • Neue Version = Neue App rausbringen?
    • Immer wieder auf Neukäufe hoffen?
    • In-App-Purchase?
    • Stuff deutet eine mögliche Lösung mit iOS 7 an, leider NDA :-/
  • App Pricing
    • Ist allgemein schwer, aber die Preise sind gesunken
    • Wie umgehen mit Demos? XY lite? Features via IAP?
    • Basti findet Demo-Versionen blöd
  • Where To? (@wheretoapp) Von Ortwin Gentz: http://www.futuretap.com/apps/whereto-en/
  • Instapaper in Gefahr durch Safari Reading List: http://www.apple.com/osx/apps/#gallery-safari-readinglist
    • Ist NICHT kostenlos im App Store, Basti!
    • Neues schönes Webinterface zu Instapaper: http://beta.instapaper.com/
    • Es ist nicht bekannt, ob es einen API für die Reading List gibt hust
  • Wir vermuten, dass Apples Podcast-App den kostenpflichtigen Podfetchern nicht signifikant Markt weggenommen hat
  • Podcast-App sieht unter iOS 7 immer noch so aus wie iOS 6

Projekte unter NDA (00:54:50)

  • Basti und Dirk mögen keine NDAs ;-)
  • Stuff hat zwar schon NDAs abgelehnt aber in der Regel steht er unter NDA
  • Er darf noch nicht einmal den Auftraggeber nennen
  • Manche Auftragsarbeiten sind mittlerweile auch nicht mehr im App-Store
  • Manchmal macht Stuff alles von Server-Backend bis Frontend
  • Arbeiten und NDA macht die Gestaltung des Lebenslaufs schwierig
  • Für einige ist Stuff der Rails-Guy
  • Es gibt relativ viele iOS-Entwickler, die auch die Serverbackends selber schreiben
  • Stuff sollte für einen neuen eBook-Reader entwickeln, Projekt wurde aber eingestellt
  • Er hat auch iOS-Kurse gegeben
  • Auf Nachfrage gibt er diese Kurse auch immer noch
  • Schwierigkeit ist es in 5 Tage die Kernaspekte von iOS-Entwicklung zu vermitteln
  • KISS (https://en.wikipedia.org/wiki/KISS_principle): Präsentations-App mit Animationen, Animationen sind Keynote-Präsentationen als Quicktime exportiert
  • Das Problem bei C# und .NET ist, dass leider ein Windows mitkommt

Gerüchteküche (01:06:40)

Der Marimba-Sound (01:27:37)

Objective-Cologne (01:30:10)

]]>
GST023 - The NeXT Episode no Dirk Breuer, Sebastian Cohnen Mit Mateus "@seanlilmateus" Armando über Mobilfunktechnik, MacRuby, RubyMotion und Apple. GST023 Mon, 16 Sep 2013 10:37:29 +0200 01:53:02 Synopsis: Dieses Mal war Mateus Armando zu Gast bei uns auf der Couch. Wir sprachen darüber wie neue Mobiltelefone in das Netz der Telekom eingegliedert werden und was bei GSM so schief laufen kann. Im Anschluss haben wir einen ganz guten Abriss über die Geschichte von RubyMotion gehört und zum Abschluss äußern wir uns noch zum Apple iPhone Event vom 10. September.

Unser Gast (00:00:00)

Arbeiten der Telekom (00:03:55)

  • Mateus automatisiert Dinge mit Ruby auf der Arbeit, ansonsten kommt es weniger zum Einsatz
  • Mateus testet Mobilfunkentgeräte mit dem Netz der Telekom
  • Zentrale Stelle für mehrere Länder
    • Funktionieren die Geräte mit dem Netz der Telekom?
    • Softwaretests, Funktests
  • Mateus bekommt oft mal neue Geräte zum Testen in die Hand
    • Die neuen Apple Geräte werden von speziell ausgewählten Personen getestet; Apple ist da etwas pingelig :)
  • Wenn Hersteller Mist machen, dürfen die Geräte nicht ins Netz der Telekom
  • Das Notification System eines ungenannten Devices hat vor einiger Zeit für großflächige Ausfälle gesorgt
  • Für Sicherheitsrelevante Fragen gibt es noch mal eine eigene Abteilung
  • Security Research Labs (Karsten Nohl) - "Rooting SIM cars": https://srlabs.de/rooting-sim-cards/
  • Wireshark: http://www.wireshark.org/

GSM Hacking, Security und Co (00:14:30)

C, Java, NeXT, WebObjects, Erlang… (00:19:35)

MacRuby & RubyMotion (00:27:30)

Objective-C Runtime (01:08:00)

Probleme mit RubyMotion (01:12:45)

  • Bis vor kurzem gab es noch viele Probleme mit Blöcken in Bezug auf Speicherlücken
  • Für Ruby-Entwickler sind Blöcke absolut normal und werden überall verwendet
  • Viele Bugs sind entdeckt worden bei der (falschen) Verwendung von CoreData (https://en.wikipedia.org/wiki/Core_Data)
  • Wichtig ist, CoreData ist keine Datenbank, aber man kann dort Objekte ablegen
  • CoreData ist sehr mächtig und nicht leicht zu verstehen
  • Da CoreData ein Teil von iCloud-Sync ist, führt dass dazu das iCloud-Sync oft nicht richtig umgesetzt ist
  • RubyMotion ist nicht Ruby, sondern ein Dialekt von Ruby
    • Beispiel ist, dass man mit der Block-API von Objective-C interagieren muss
    • Named Arguments sind verhalten sich unterschiedlich
    • In Objective-C sind die Named-Arguments Teil des Methodenname
  • Die großflächige Verwendung von Named-Arguments wird sich in Ruby noch etwas hinziehen
  • Wenn man für iOS entwickeln will, aber keine Lust auf Objective-C hat, dann macht man was falsch
  • Dokumentation ist in Objective-C und die Laufzeitumgebung mit all ihren Eigenheiten ist eben auch Objective-C
  • Aber: RubyMotion ist nach Mateus die beste Möglichkeit Objective-C zu lernen
  • RubyMotion ist sehr viel kompakter als Objective-C, daher die bevorzugte Umgebung von Mateus

Apple iPhone Event (01:30:20)

  • Wir wollen keine goldenen iPhones
  • Event war leider nicht live
  • Im Home-Office-Cologne gab es Rudelgucken mit Tippspiel
  • Enttäuschung, dass es keine Mac News gab
  • Wieder kein AppleTV SDK :-)
  • iPhone ist so wichtig, dass nichts parallel vorgestellt wird
  • Aber: Mavericks und Mac Pros werden kommen, aber ohne Event ist der Mac Pro eher unwahrscheinlich
  • Neue iPads und iPods stehen auch noch aus, aber dafür lohnt sich auch ein eigenes Event
  • Eigentlich haben sie Material für noch 2 Events
  • Dirk wünscht sich ein AppleTV mit SDK und der Möglichkeit einen Playstation Controller anzuschließen
  • Der Coup des Jahres wäre eine AppleTV Spieleconsole
  • iPhone/iPod als Controller für Spiele inkl. Secondscreen
  • Wir gehen nicht davon aus, dass Apple einen eigenen Controller bauen wird/kann
  • Am Anfang noch vorsichtig im Bereich, in letzter Zeit wird das ganze sehr ernsthaft verfolgt, Stichwort: Grafikleistung und OpenGL 3
  • In Bezug auf Independent-Spiele ist Apple bereits da wo Microsoft und Sony gerne hinmöchten
  • Das Event war das Ende der Ära Steve Jobs und der Beginn der Ära Jony Ive
  • Basti findet das "non" lustig ist, wenn die Löcherhülle auf dem 5C ist (https://www.apple.com/iphone-5c/design/images/cases_gallery_white_white_2x.png)
  • Die Position des iPhone 5C ist noch unklar
    • Weder ein Billig-Phone
    • Gute Leistungsdaten
    • Es ist aber bunt
  • Basti sagt nach wie vor, Apple hat es nicht nötig ein Billig-iPhone zu bringen
    • Unterschied momentan ist die Qualität der Anwendungen
    • Hintergrund wird nicht sein, mehr Umsatz über iPhones zu machen, sondern iOS weiterzuverbreiten
  • Das 'C' steht wahrscheinlich für 'Color' und nicht 'Cheap' ;-)
  • Wir warten weiterhin auf das 4k-Display…
]]>
GST024 - Super Spell Boy no Dirk Breuer, Sebastian Cohnen Mit Björn "@_orko" Vollmer über (Indie-)Spieleentwicklung auf iOS und die Entstehung von Super Spell Boy GST024 Mon, 23 Sep 2013 22:23:10 +0200 01:39:06 KEIN Feuer * Von Beginn an alle Zauber verfügbar * Erst war die Idee, dass man nach und nach die Zauber freispielt * Ist aber "einfach" ein Arcadespiel: Solange spielen bis man stirbt. * Alle UI-Elemente sind im Spiel integriert: * Pause-Button ist das Tor der Burg * Auf dem linken Turm liegt das Zauberbuch, in dem sich alle Zauber nachschlagen lassen * Wie sich das gehört gibt es auch Mana und Zauber brauchen unterschiedlich viel Mana * Mana regeneriert sich selbst, aber langsam * Manchmal lassen besiegte Gegner aber auch Mana-Tränke fallen * Pro-Tipp: Wenn man einen Zauber beschwört hat und ihn noch NICHT auf einen Gegner geschossen hat, regeneriert sich der Mana-Vorrat nicht * Noch mal zur Erinnerung: Das alles muss innerhalb der Game-Loop passieren * Ereignisse müssen von Zeiteinheiten in Spielzeit (Frames) umgerechnet werden * Bsp.: Alle 0,275 Sekunden soll sich Mana regenerieren, d.h. alle 12 Frames * Das bedingt auch, dass die Events abhängig vom Framecounter getriggert werden und nicht in Realzeit, wenn das Spiel also langsamer läuft regeneriert nicht mehr alle 0,275 Sekunden Mana ### Kollisionserkennung (00:43:50) * Irgendwann muss ermittelt werden, ob ein Gegner getroffen wurde oder nicht * Es wurden zwei Varianten verwendet: * Rectangle-Rectangle: Überschneiden sich zwei Rechtecke, dann ist es ein Treffer * Problem: Einige Zauber können über Gegner "hinwegfliegen" und treffen diese nicht * Lösung: Nur der Gegner darf getroffen werden, der vorher angeklickt wurde * Problem: Was heißt "angeklickt"? * Point-Rectangle: Ist ein Punkt in einem anderen Rechteck. Punkt ist in diesem Fall der "Finger" des Spielers. * Aber es gibt auch komplexere Erkennungen: * Der Steinzauber fliegt über das ganze Spielfeld und trifft dabei jeden Gegner * Wenn in zwei aufeinanderfolgenden Frames ein Gegner zweimal von gleichen Stein getroffen wird, darf der Treffer nur einmal zählen * Der Stein muss sich also merken wen er getroffen hat o_O * Vorbereitung für Combosystem ;-) * Was "musste" man sich selber ausdenken? * Konzepte wie Game-Loop und Erkennen von Kollisionen existieren und sind gut beschrieben * Details wie wen hat man getroffen, wen wollte man treffen etc. müssen dann selbst modelliert werden * Kollisionserkennung kann beliebig komplex werden. Stichwort: Polygone * In der Spieleentwicklung existieren ebenso Pattern wie in anderen Bereichen der Software-Entwicklung ### Gesten (00:50:00) * Was muss man da selber machen * iOS nimmt einem kaum etwas ab * Angefangen mit GLGestureRecognizer (https://github.com/preble/GLGestureRecognizer) * Open Source Library basiert auf dem $1 Unistroke Recognizer: https://depts.washington.edu/aimgroup/proj/dollar/ * In der damals verwendeten Version keine zufriedenstellenden Ergebnisse * Aktuelle Version des Spiels verwendet eine eigene Implementierung * Prinzip basiert auf "Spiele entwickeln für iPhone und iPad (S. 398 ff.)" * Man erstellt eine Matrix und vergibt jedem Feld der Matrix einen Buchstaben * Die Geste wird über die Matrix gelegt und jedes durchquerte Feld wird ausgelesen * Ergebnis ist eine String-Repräsentation der Geste: Sampling der Geste * Wahl der Auflösung ist entscheidend * Mehrere Zeichenketten können die gleiche Geste bedeuten * Aktuell gute Ergebnisse aber immer noch nicht perfekt * Was stellt aber nun iOS zur Verfügung? * iOS entscheidet ob es eine Geste oder ein Touch war * Man kann sich dann die Koordinaten der Geste geben lassen oder schon während der Ausführung der Geste die Koordinaten einsammeln (Björn macht die erste Variante) * Noch mal zur Erinnerung: Das alles muss innerhalb der Game-Loop passieren, sprich in jeder 1/33 Sekunde * Aussteuerung der erlaubten Toleranz bedingt potentielle Überschneidungen mit anderen Gesten * GLGestureRecognizer hat aktuelle eine neue Version. Denkbar ist eine Kombination aus beiden Ansätzen. Oder ganz neuer Ansatz/Bibliothek. * Von außen betrachtet ein einfaches Spiel und trotzdem gibt es schon Myriaden von Dingen zu beachten o_O ### Sound und Musik abspielen (00:57:35) * Wie wird Sound/Musik abgespielt? * Sound und Musik ist erstaunlich einfach: * Musik: Zu Beginn des Spiels das Abspielen der Musik an iOS übergeben * Soundeffekte: Wird in dem entsprechenden Frame an iOS übergeben * Fertig :-) ### Entwicklungsprozess (00:58:59) * Anzeige von Sprites mittels OpenGL * Bewegen/Animieren von Sprites * Interagieren mit dem Spiel (Gesten-Erkennung) ### Testen (01:00:55) * HockeyApp: http://hockeyapp.net/ * Für SSB: TestFlight: http://testflightapp.com/ * TestFlight kostenlos * Regelmäßige Updates an Tester * 10 bis 15 Tester * Iterative Entwicklung parallel zum Testen ### Zum Schluss: Menüs, Logo, Settings etc. (01:02:09) * Macht das Spiel rund * Umsetzung nochmals viel Zeit gebraucht * Viele Fallstricke beim Sound/Musik ### Balancing (01:04:20) * Auch iterativer/begleitender/explorativer Prozess * Gradwanderung * Spannende Phase * Spiel eventuell zu schwer für Causal Gamer * Dirk wartet immer noch auf sein Review zu Super Spell Boy im App-Store ### Entwicklungsdauer (01:06:25) * 710:42 Stunden (~ 4,5 Monate) * Überwiegend Teilzeit auf über ein Jahr gestreckt * Teilzeit erschwert die Entwicklung ### SpriteKit (01:08:50) * Sprite Kit Programming Guide: https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SpriteKitFramework_Ref/_index.html * Nimmt viele Low-Level-Entwicklungen ab * 2D-Spiele-Entwicklung * Entwicklung für iOS und OSX * OpenGL drin * Physik drin (Collision Detection, Gravity) * Partikelsystem * Animationen * Unterstützt ab iOS7 * 200 Millionen Installationen iOS 7 * Auf den Support von älteren iOS verzichten * Konzentrieren nur auf die Spiele-Entwicklung * Erhöhter Aufwand, wenn auch < iOS 7 unterstützt wird ### Preisfindung (01:15:10) * Schritt für Schritt an den Preis angenähert * Schlechte Bewertung im App Store, wenn Preis "zu hoch" * Preise für Apps und Spiele im App Store "anders" * Viel mit Leuten gesprochen, die sich auskennen * Ursprünglich 0,89 Euro * Davon wurde mir abgeraten: Tolles Spiel, nicht verschleudern * Preis-"Tiers": Preise im App-Store sind gestaffelt * Keine Ads * Momentan noch kein In-App-Purchases * Ein Preis * Besprechen der verschiedenen Preise bekannter Spiele im App Store * Entschieden für Tier 3: 2,69 Euro * Der Entwickler bekommt: 1,64 Euro * Preis = 2,69 Euro - USt. - 30 % an Apple * Ne Menge verkaufen um davon leben zu können * Glücklich, wenn Super Spell Boy so viel einspielt, dass das nächste Spiel finanziert ist ### Marketing (01:25:01) * Während der Entwicklung kaum Marketing * Seit Release Facebook (https://www.facebook.com/SuperSpellBoy), Twitter (https://twitter.com/SuperSpellBoy) etc. * Werbung bisher nur in Facebook * Likes "kaufen" * Gameplay-Video "Fast Forward" beworben: http://www.youtube.com/watch?v=L_WZVLLU2Mg. Hat mittlerweile 1470 Likes * Budget pro Tag * Im Detail die Zielgruppe bestimmen * Nur Spiele-Interessierte * Nur iOS-Nutzer * etc. * Apple Verkaufsstatistiken sind verzögert * Promo-Codes * Anschreiben wegen Promo-Codes * Bewertung schreiben im App-Store * Wurde angeschrieben von YouTube-App-Reviewer * 1 Review für Lau (paar hundert Views pro Video) * 1 Review für 350 USD (Views im tausender Bereich) ### Monetarisierung als Indie-Game-Entwickler (01:33:57) * Interview mit Michael Contento http://www.gamasutra.com/blogs/RuthWilson/20130827/199049/CREATING_GAMES_FOR_KIDS_HOW_TO_FIND_AND_TEST_CONTENT_MONETIZE_AND_MARKET_YOUR_GAME.php * Cross-Platform-Entwickler * Spieler für Kinder * Free2Play * In-App-Purchase * Werbung ausblenden * Weitere Level kaufen * Interview: Welche Herausforderungen bei diesem Ansatz * Ansazt auf Masse * Andere Strategien da man alleine ist * Marketing ist teuer * Ziel: Spiel muss in die Top-Charts kommen * Einkaufen von Reviews, Pressemitteilungen und Downloads * Preise hoch/runter setzen um auf Crawling-Seiten zu erscheinen ### Zusammenfassung (01:38:04) * Game-Entwicklung cool * Marketing uncool * Weitere Links: * iOS 5 By Tutorials (http://www.raywenderlich.com/store/ios-5-by-tutorials) * iOS 6 By Tutorials (http://www.raywenderlich.com/store/ios-6-by-tutorials)]]> Synopsis: Wir haben uns mit unserem @HomeOfficeCGN Kollegen Björn hingesetzt und über Spieleentwicklung gesprochen. Konkret ging es um iOS Spiele und noch konkreter um die Entstehung von Super Spell Boy, dem ersten erschienen Titel für iOS von Björn. Wir gehen alles durch: von Grafiken erstellen, über Sounddesign, Gameloops bis hin zur Preisfindung und Vermarktung.

Intro (00:00:00)

Unser Gast (00:01:50)

  • Björn @_orko Vollmer, Rhineality Games (http://rhinealitygames.com/)
  • Zu finden im @HomeOfficeCGN :)
  • hat Informatik an der FH Köln studiert
  • pkw.de: "klassische" Rails Webentwicklung
  • seit 10.10.2010 (weil 101010 = 42 \o/) als Freiberuflicher Softwareentwickler unterwegs
  • und seit kurzem: Mehr in Richtung Entwicklung von eigenen Spielen

Browser Spieleentwicklung (00:04:00)

iOS Spieleentwicklung (00:07:00)

  • Dann kam der Entschluss ein iOS Spiel zu machen (Startschuss: April 2012)
  • Ziele waren:
    • Mit weniger Umfang
    • Alle Dinge mussten selbst gemacht werden ^^
  • Bisher unbekannte Plattform
  • Einfach losgelegt, ohne sich in vorher groß einzulesen
  • Bei Spielen ohnehin wenig Kontakt mit UIKit und daher Custom-UI
  • Bücher
  • Grafik hat Björn mit OpenGL implementiert
  • Bei OpenGL verlässt man Objective-C Land und macht Vanilla C ;-)
  • Björn war froh als er damit fertig war ^^
  • OpenGL muss nicht 3D sein, für 2D gibt es aber auch andere Möglichkeiten
  • Entscheidung für OpenGL war von eher pragmatischer Natur

Grafiken (00:16:20)

  • Grafiken kaufen? Selber machen?
  • Mastermind: http://de.wikipedia.org/wiki/Mastermind
  • Kurze Historie...
    • Im April 2012: Mit Super Spell Boy angefangen
    • Im Dezember 2012: Versuch ein (anderes) Spiel in zwei Monaten zu machen, weil die ursprüngliche Idee zu schwer erschien
    • Dann Anfang 2013: Doch wieder zurück zu Super Spell Boy, weil geilere Idee :)
  • Pixel Art: http://en.wikipedia.org/wiki/Pixel_art
  • Pixel Art Editor unter OS X Pixen: http://pixenapp.com/
  • Dann: Viel üben, nachmalen, ausprobieren…
  • Die Objekte im Spiel sind über Vertices definiert, über die Texturen gespannt werden
  • Animationen sind Bilder, wo mehrere Bilder z.B. der Figur nebeneinander stehen
  • Gameloop: http://en.wikipedia.org/wiki/Game_programming#Game_structure, http://www.gameprogblog.com/generic-game-loop/
    • eine endlose Schleife, die z.B. 33 mal pro Sekunde ausgeführt wird (33 fps)
    • enthalten in der Schleife ist alles, was das Spiel ausmacht: Gamelogik, Rendering usw.
    • Taktung von Animationen und Ereignissen auf die Taktung der Gameloop

Sound & Music erstellen (00:28:52)

  • Der Intro-Sound dieser Folge war die Menümusik aus dem Spiel
  • Musik/Sound ist ein ähnliches Problem wie das Grafikproblem: Woher nehmen?
  • Laut Literatur hätte man damit direkt anfangen sollen, hat Björn aber nicht gemacht :P
  • Auch hier zunächst wieder versucht Sound-Effekte einzukaufen
  • Folgende Seiten angeschaut:
  • Nix dabei gewesen, weil Sound sollte vom Stil zum Spiel passen (lies: 8-bit)
  • Dabei eine App gefunden, mit der man diese Sound leicht selber machen kann: http://thirdcog.eu/apps/cfxr
  • Das heisst: Die Sound sind auch selbst gemacht
  • Thema Musik: Kaufen ist teuer, daher Creative Commons
  • Dabei ist er bei Eric Skiff (http://ericskiff.com/music/) gelandet
  • Die Musik (und unser Intro) ist von dem Album "Resistor Anthems"
  • Basti erwähnt, dass das Spiel direkt einen vollständigeren Eindruck gemacht als Musik dabei war
  • Findet George Lucas auch ;-) (http://www.brainyquote.com/quotes/quotes/g/georgeluca462198.html)

Super Spell Boy (00:33:53)

  • Im App-Store: https://itunes.apple.com/app/id702233807
  • Retro-Spiel, Retro-Name
  • Worum geht es: Der Spieler steuert einen Zauberer auf seiner Burg und muss diese gegen unendliche Horden dunkler Kreaturen verteidigen
  • Wir fragen uns was es für ein Genre ist
  • Wenn die Burg zerstört ist, dann ist das Spiel vorbei
  • Wie verteidigt man seine Burg? Natürlich mit Magie!
  • Man beschwört die Zauber per Gesten (a.k.a. der USP des Spiels)
  • Gespielt wird Portrait-Modus und die Gegner kommen vom oberen Bildschirmrand
  • Die Herausforderung für den Spieler besteht in:
    • Lernen und Erinnern der richtigen Gesten
    • Lernen und Erinnern welche Gegner gegen welche Zauber anfällig sind
    • Bsp.: Brennender Gegner -> KEIN Feuer
  • Von Beginn an alle Zauber verfügbar
    • Erst war die Idee, dass man nach und nach die Zauber freispielt
    • Ist aber "einfach" ein Arcadespiel: Solange spielen bis man stirbt.
  • Alle UI-Elemente sind im Spiel integriert:
    • Pause-Button ist das Tor der Burg
    • Auf dem linken Turm liegt das Zauberbuch, in dem sich alle Zauber nachschlagen lassen
  • Wie sich das gehört gibt es auch Mana und Zauber brauchen unterschiedlich viel Mana
  • Mana regeneriert sich selbst, aber langsam
  • Manchmal lassen besiegte Gegner aber auch Mana-Tränke fallen
  • Pro-Tipp: Wenn man einen Zauber beschwört hat und ihn noch NICHT auf einen Gegner geschossen hat, regeneriert sich der Mana-Vorrat nicht
  • Noch mal zur Erinnerung: Das alles muss innerhalb der Game-Loop passieren
  • Ereignisse müssen von Zeiteinheiten in Spielzeit (Frames) umgerechnet werden
    • Bsp.: Alle 0,275 Sekunden soll sich Mana regenerieren, d.h. alle 12 Frames
  • Das bedingt auch, dass die Events abhängig vom Framecounter getriggert werden und nicht in Realzeit, wenn das Spiel also langsamer läuft regeneriert nicht mehr alle 0,275 Sekunden Mana

Kollisionserkennung (00:43:50)

  • Irgendwann muss ermittelt werden, ob ein Gegner getroffen wurde oder nicht
  • Es wurden zwei Varianten verwendet:
    • Rectangle-Rectangle: Überschneiden sich zwei Rechtecke, dann ist es ein Treffer
    • Problem: Einige Zauber können über Gegner "hinwegfliegen" und treffen diese nicht
    • Lösung: Nur der Gegner darf getroffen werden, der vorher angeklickt wurde
    • Problem: Was heißt "angeklickt"?
    • Point-Rectangle: Ist ein Punkt in einem anderen Rechteck. Punkt ist in diesem Fall der "Finger" des Spielers.
  • Aber es gibt auch komplexere Erkennungen:
    • Der Steinzauber fliegt über das ganze Spielfeld und trifft dabei jeden Gegner
    • Wenn in zwei aufeinanderfolgenden Frames ein Gegner zweimal von gleichen Stein getroffen wird, darf der Treffer nur einmal zählen
    • Der Stein muss sich also merken wen er getroffen hat o_O
    • Vorbereitung für Combosystem ;-)
  • Was "musste" man sich selber ausdenken?
    • Konzepte wie Game-Loop und Erkennen von Kollisionen existieren und sind gut beschrieben
    • Details wie wen hat man getroffen, wen wollte man treffen etc. müssen dann selbst modelliert werden
  • Kollisionserkennung kann beliebig komplex werden. Stichwort: Polygone
  • In der Spieleentwicklung existieren ebenso Pattern wie in anderen Bereichen der Software-Entwicklung

Gesten (00:50:00)

  • Was muss man da selber machen
  • iOS nimmt einem kaum etwas ab
  • Angefangen mit GLGestureRecognizer (https://github.com/preble/GLGestureRecognizer)
  • Aktuelle Version des Spiels verwendet eine eigene Implementierung
    • Prinzip basiert auf "Spiele entwickeln für iPhone und iPad (S. 398 ff.)"
    • Man erstellt eine Matrix und vergibt jedem Feld der Matrix einen Buchstaben
    • Die Geste wird über die Matrix gelegt und jedes durchquerte Feld wird ausgelesen
    • Ergebnis ist eine String-Repräsentation der Geste: Sampling der Geste
    • Wahl der Auflösung ist entscheidend
    • Mehrere Zeichenketten können die gleiche Geste bedeuten
    • Aktuell gute Ergebnisse aber immer noch nicht perfekt
  • Was stellt aber nun iOS zur Verfügung?
    • iOS entscheidet ob es eine Geste oder ein Touch war
    • Man kann sich dann die Koordinaten der Geste geben lassen oder schon während der Ausführung der Geste die Koordinaten einsammeln (Björn macht die erste Variante)
  • Noch mal zur Erinnerung: Das alles muss innerhalb der Game-Loop passieren, sprich in jeder 1/33 Sekunde
  • Aussteuerung der erlaubten Toleranz bedingt potentielle Überschneidungen mit anderen Gesten
  • GLGestureRecognizer hat aktuelle eine neue Version. Denkbar ist eine Kombination aus beiden Ansätzen. Oder ganz neuer Ansatz/Bibliothek.
  • Von außen betrachtet ein einfaches Spiel und trotzdem gibt es schon Myriaden von Dingen zu beachten o_O

Sound und Musik abspielen (00:57:35)

  • Wie wird Sound/Musik abgespielt?
  • Sound und Musik ist erstaunlich einfach:
    • Musik: Zu Beginn des Spiels das Abspielen der Musik an iOS übergeben
    • Soundeffekte: Wird in dem entsprechenden Frame an iOS übergeben
    • Fertig :-)

Entwicklungsprozess (00:58:59)

  • Anzeige von Sprites mittels OpenGL
  • Bewegen/Animieren von Sprites
  • Interagieren mit dem Spiel (Gesten-Erkennung)

Testen (01:00:55)

Zum Schluss: Menüs, Logo, Settings etc. (01:02:09)

  • Macht das Spiel rund
  • Umsetzung nochmals viel Zeit gebraucht
  • Viele Fallstricke beim Sound/Musik

Balancing (01:04:20)

  • Auch iterativer/begleitender/explorativer Prozess
  • Gradwanderung
  • Spannende Phase
  • Spiel eventuell zu schwer für Causal Gamer
  • Dirk wartet immer noch auf sein Review zu Super Spell Boy im App-Store

Entwicklungsdauer (01:06:25)

  • 710:42 Stunden (~ 4,5 Monate)
  • Überwiegend Teilzeit auf über ein Jahr gestreckt
  • Teilzeit erschwert die Entwicklung

SpriteKit (01:08:50)

Preisfindung (01:15:10)

  • Schritt für Schritt an den Preis angenähert
  • Schlechte Bewertung im App Store, wenn Preis "zu hoch"
  • Preise für Apps und Spiele im App Store "anders"
  • Viel mit Leuten gesprochen, die sich auskennen
  • Ursprünglich 0,89 Euro
  • Davon wurde mir abgeraten: Tolles Spiel, nicht verschleudern
  • Preis-"Tiers": Preise im App-Store sind gestaffelt
  • Keine Ads
  • Momentan noch kein In-App-Purchases
  • Ein Preis
  • Besprechen der verschiedenen Preise bekannter Spiele im App Store
  • Entschieden für Tier 3: 2,69 Euro
  • Der Entwickler bekommt: 1,64 Euro
  • Preis = 2,69 Euro - USt. - 30 % an Apple
  • Ne Menge verkaufen um davon leben zu können
  • Glücklich, wenn Super Spell Boy so viel einspielt, dass das nächste Spiel finanziert ist

Marketing (01:25:01)

  • Während der Entwicklung kaum Marketing
  • Seit Release Facebook (https://www.facebook.com/SuperSpellBoy), Twitter (https://twitter.com/SuperSpellBoy) etc.
  • Werbung bisher nur in Facebook
  • Likes "kaufen"
  • Gameplay-Video "Fast Forward" beworben: http://www.youtube.com/watch?v=L_WZVLLU2Mg. Hat mittlerweile 1470 Likes
  • Budget pro Tag
  • Im Detail die Zielgruppe bestimmen
    • Nur Spiele-Interessierte
    • Nur iOS-Nutzer
    • etc.
  • Apple Verkaufsstatistiken sind verzögert
  • Promo-Codes
    • Anschreiben wegen Promo-Codes
    • Bewertung schreiben im App-Store
  • Wurde angeschrieben von YouTube-App-Reviewer
    • 1 Review für Lau (paar hundert Views pro Video)
    • 1 Review für 350 USD (Views im tausender Bereich)

Monetarisierung als Indie-Game-Entwickler (01:33:57)

Zusammenfassung (01:38:04)

]]>
GST025 - Vom Tellerwäscher zum Lisp-Entwickler no Dirk Breuer, Sebastian Cohnen Mit Moritz Heidkamp über die Geschichte und das Ökosystem von Lisp GST025 Mon, 21 Oct 2013 18:56:59 +0200 01:38:57 Synopsis: Wir hatten Moritz Heidkamp aus Köln auf unserer Couch zu Gast und sprachen mit ihm über Lisp. Wir haben dabei ganz vorne bei John McCarthy angefangen und uns dann bis in die Gegenwart zu Clojure durchgebissen. Auf dem Weg dorthin lernen wir, wie zersplittert die Lisp-Gemeinde schon immer war und wohl auch immer sein wird. Was daraus für Probleme entstehen, aber vor allem welche Möglichkeiten es eröffnet. Den Abschluss macht ein Rückblick der EuroClojure und einige Buchempfehlungen für Einsteiger.

Intro (00:00:00)

Unser Gast (00:01:15)

  • Moritz Heidkamp, @DerGuteMoritz, http://ceaude.twoticketsplease.de/
  • Softwareentwickler seit 2006
  • wollte ursprünglich mal Deutsch- und Geschichtslehrer werden
  • studiert nun (ein bisschen) Informationsverarbeitung an der Uni Köln (Crossover aus Informatik und Geisteswissenschaften)
  • Gründungsmitglied RuRuG, der Vorläufer der heutigen cologne.rb (http://colognerb.de)

Informatik an den Schulen (00:05:55)

  • Moritz hatte einen guten Informatiklehrer
  • Basti leider nicht :-/
  • Wir fragen uns, ob es Informatik auf Lehramt gibt
  • Weil Informatiklehrer ja oft gar keine Informatiker sind
  • Rasberry Pi: http://www.raspberrypi.org

Von Ruby zu Lisp (00:10:58)

Elixir (00:14:23)

Lisp, eine Historie (00:25:30)

Lisp in der Praxis (00:56:17)

  • Probleme für den realen Einsatz ergeben sich durch die vielen Unterschiede allerdings weniger als man denkt
  • Trotzdem ist es ein Problem, dass sehr viel Energie "verloren" geht: Die tolle Bibliothek A lässt sich dann nicht in Lisp X verwenden
  • Man muss das Rad zwar relativ oft neu erfinden, aber es gibt zumindest einige Implementierung mit einer kleinen Community und Infrastruktur
  • Bei bevuta wird Chicken Scheme (http://www.call-cc.org/) eingesetzt und man kann etwa auf 500 Erweiterungen zugreifen ("Eggs", lassen sich ähnlich wie Rubygems installieren)
  • Insgesamt extremer Gegensatz zu Java: Bis ins letzte spezifizierte Sprache mit definiertem Verhalten
  • Stichwort Java: Clojure versucht den Nachteil von zu wenig Bibliotheken so auszugleichen, dass man auf Java-Bibliotheken zugreifen kann
  • Problem: Das Programmiermodell von Java passt nicht zu dem von Clojure
  • Die Abbildung von Java-Objekten in Clojure und deren Verwendung ist Aufgabe des Entwicklers
  • Für jede Klasse muss im Grunde eine neue Sprache gelernt werden
  • Eine Möglichkeit ist zum Beispiel Attribute aus einem Java-Objekt in eine Clojure-Map zu übertragen
  • Beispiel: Ring (https://github.com/ring-clojure/ring) übersetzt Requests aus Java-Webservern in Clojure-Maps und zurück
  • Lisps versuchen in der Regel alles auf Listen abzubilden, weil dafür gibt es schon alle Operationen
  • Klassen sind hingegen durch die Vorgaben des Entwicklers in ihrer Verwendung eingeschränkt
  • Zwei Kulturen treffen aufeinander, dazu gibt es von Rich Hickey (Clojure) einige gute Talks: https://www.youtube.com/watch?v=rI8tNMsozo0
  • Andere Ansätze/Modelle können/sollten Anregungen für die eigene "Welt" geben (z.B.: Immutability lässt sich auch in anderen Sprachen verwenden)
  • bevuta versucht so viel wie möglich in Scheme zu machen, aber gerade bei Mobilentwicklung ist das leider nicht möglich
    • Theoretisch läuft Clojure zwar auf Android, ist dort aber viel zu langsam
  • Aber: Die Businesslogik kann in Scheme geschrieben werden und wird anschließend nach C kompiliert, um das dann in Objective-C und Java (via JNI) einzubinden
  • Notwendiger Glue-Code ist sehr wenig, vor allem im Fall von Objective-C, JNI ist da anstrengender
  • Auch als Script-Sprache lässt sich Scheme ohne weiteres verwenden
  • Moritz macht alles™ in Emacs (soweit möglich), z.B.: Email, Todo-App. Gibt sogar einen PDF-Reader
  • Man könnte Emacs auch als Shell booten und dann aus Emacs bei Bedarf Shells starten, dabei kollidieren aber Keybindings (vor allem bei ncurses-Anwendungen). Also nicht so toll.
  • Stichwort Emacs als Betriebssystem: Es gab in den 70er- und 80er-Jahren auch Lisp-Maschinen: https://de.wikipedia.org/wiki/Lisp-Maschine
  • Wie die genau funktionieren ist bei uns dünnes Eis ^^
  • Entwicklung wurde dann Ende der 80er eingestellt, weil die Forschungsgelder im Bereich künstliche Intellegenz (vor allem vom Militär) zusammengestrichen wurden

EuroClojure (01:15:55)

  • Moritz war auf der EuroClojure in Berlin: http://euroclojure.com/2013/, ist die europäische Clojure Konferenz (~ 300 Teilnehmer)
  • Ansonsten ist Clojure sehr amerikanisch geprägt
  • Inhalt aber nicht ausschließlich Clojure, 2 Präsentationen über das eigene Lisp ;-)
  • Toy Lisp: https://www.google.com/search?q=toy%20lisp
  • Moritz hat mal eine Liste von Lisp-Implementierungen in Javascript zusammengestellt: Ergebnis 50+
  • Real-World-Clojure-Projekte auf der Konferenz:
    • dailymail.co.uk: Hat ihr uraltes Backend im laufenden Betrieb auf Clojure umgestellt
    • "Internet of Things"-Plattform ist von Rails nach Clojure migriert; Grund für Clojure war, sie haben am meisten in der kürzesten Zeit erreicht (im Vergleich zu anderen Technologien)
  • Clojures Webstack ist bereits sehr ausgereift, u.a. weil viele Ruby-Entwickler zu Clojure gegangen sind und Konzepte mitgenommen haben (Bsp.: Ring ist von Rack inspiriert)
  • Leider keine Aufzeichnung der Talks :-(
  • Besonders Schade um die Keynote:
    • Verhältnis zwischen der perfekten Architektur und der Abwesenheit von Architektur
    • Brasília als Beispiel von perfekt geplanter Stadt und dennoch wenig brauchbar
    • Beispiel von Städteplanung auf Softwareentwicklung
    • Java EE vs. PHP Frickelshop: Beides kann man nicht wirklich benutzen
    • Fazit: Ein gute Mischung von Struktur und Chaos finden
  • Moritz kann die Konferenz empfehlen, auch für Leute die sonst kein Clojure machen
  • Clojure ist auch in der Lisp-Community schnell aufgestiegen und gehört mittlerweile zu den Top-3
  • Positive Auswirkungen des Clojure-Hypes auf die Akzeptanz von Lisp konnte Moritz noch nicht feststellen

Getting Started (01:30:41)

]]>
GST026 - RubyConf 2013 no Dirk Breuer, Sebastian Cohnen Post-Berichterstattung zur RubyConf 2013 mit Lucas Dohmen GST026 Mon, 25 Nov 2013 11:19:48 +0100 01:22:03 Synopsis: Lucas und Dirk waren auf der RubyConf in Miami Beach. Wir berichten von ihren Eindrücken und es gibt natürlich die ein oder andere Empfehlung für einen Vortrag. Darüber hinaus diskutieren wir über die Inhalte einiger Talks. Insgesamt ist die Folge leider ein bisschen durcheinander, trotzdem viel Spaß beim hören.

Intro (00:00:00)

Exkurs: Letzter Geekstammtich über Lisp (00:02:35)

RubyConf (00:04:15)

Allgemeines (00:07:00)

  • Talks wurden gestreamt
  • Videos gibt es gegen Ende November
  • Dirk und Lucas müssen auch noch Talks schauen (3 Tracks ist halt zu viel)
  • Anfangs gab es im Schedule keine Angabe der Speaker; wurde dann aber nachgetragen

Talks, Talks, Talks (00:09:25)

JRuby (00:34:29)

ArangoDB auf der RubyConf (00:47:55)

Und noch mehr interessante Talks (00:53:40)

Abendveranstaltung und RailsGirls (00:59:27)

Und noch mehr Talks (01:03:26)

Tipps zu Miami Beach (01:17:46)

]]>
GST027 - Jahresrückblick 2013 no Dirk Breuer, Sebastian Cohnen Der (kleine) Geekstammtisch Jahresrückblick 2013 GST027 Fri, 20 Dec 2013 17:16:52 +0100 00:12:41 Vorsicht! Diese Folge ist sehr meta! Wir ziehen ein kleines Resümee des letzten Jahres Geekstammtisch und sagen an, dass wir auch nächstes Jahr weitermachen werden :)

Wir bedanken uns bei allen Hörern für die Aufmerksamkeit, das tolle Feedback und das Flattern und wünschen frohe Weihnachten und einen guten Rutsch!

]]>
GST028 - Sprachlos auf dem 30C3 no Dirk Breuer, Sebastian Cohnen Essy, Lucas, Tobias, Bodo, Dirk und Basti berichten ihre Eindrücke vom 30C3 GST028 Mon, 30 Dec 2013 15:43:01 +0100 00:47:15 Synopsis: Das zweite Joint Venture der @nerdkunde (ohne Klaus, mit Bodo) und des @geekstammtisch (mit allen) live und in Farbe vom 30. Chaos Communication Congress (30C3) aus dem @Sendezentrum. Wir geben einen kurzen persönlichen Rundblick über die letzten vier Tage Kongress. Vielen Dank an das Sendezentrum für die Bereitstellung des Equipments und Ralf (@rstockm) für die super Betreuung!

Eröffnung (00:00:00)

Unsere Top-7 (00:07:53)

So long and thank you for all the ~~fish~~mate (00:44:07)

  • Danke an den CCC, alle Engel und die Orga für eine großartigen Congress
]]>
GST029 - Die JVM ist ein Erfolgsmodell no Dirk Breuer, Sebastian Cohnen Wir sprachen mit Matthias Richter über die Freuden der Java-Entwicklung GST029 Tue, 28 Jan 2014 13:19:21 +0100 01:47:38 Synopsis: Matthias ist Softwareentwickler und erzählt uns wie er jahrelang Java im Telko-Sektor gemacht hat. Vor einem Jahr hat er dann die Branche und die auch die Größe des Unternehmens radikal geändert und macht nun Produktentwicklung in der Logistikbranche. Neben Java wird dort viel im Embedded-Bereich entwickelt und trotz eines kleinen Teams sind die Aufgaben sehr vielfältig. Seit neuestem wird Software nun auch mit JRuby und AngularJS umgesetzt. Wir erfahren über die damit verbundenen Herausforderungen und wie damit umgegangen wurde.

Einleitung & GST-Meta (00:00:00)

Unser Gast (00:02:45)

  • Matthias hat mit Dirk & Basti studiert
  • …und hat nach dem Studium als Java Entwickler bei einer Softwarefirma im "Telekommunikationsumfeld" gearbeitet
  • Matthias hat dort nie Admins zu Gesicht bekommen :)
  • Nach vier Jahren hat Matthias dann etwas neues gesucht und ist in der Logistikbranche gelandet
  • Kleineres Unternehmen, eigene Produkte, jeder macht alles (Matthias ist also "auch" Admin)
  • wollte weiter auf der JVM entwickeln
  • Scala: http://www.scala-lang.org/
  • Clojure Koans: http://clojurekoans.com/
  • Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (von Bruce A. Tate): http://pragprog.com/book/btlang/seven-languages-in-seven-weeks

Java-Entwicklung (00:12:30)

Deployment & JVM (01:20:00)

Entwicklungsumgebung (01:23:05)

  • Matthias hat jahrelang Eclipse verwendet, dann zu IntelliJ gegangen
  • Mit Ruby dann zu RubyMine gegangen (bzw. IntelliJ mit Ruby-Plugin)
  • Sublime Text auch mal ausprobiert, geweint
  • Vim ausprobiert, noch mehr geweint
  • AngularJS auch in RubyMine, Alternativ auch WebStorm vielleicht eine Möglichkeit
  • Lokale Entwicklung ist schneller geworden, da kein Kompilieren und Deployment mehr
  • Lokal wird die Anwendung mit Puma/JRuby entwickelt sowie Grunt für JavaScript
  • Keine weiteren Java-Abhängigkeiten (außer dem Datenbanktreiber)
  • Basti möchte wissen wie der Umstieg von IDE in die Welt des Terminals war
  • Matthias ist aber leider ein schlechtes Beispiel ;-) Er hat Eclipse eigentlich immer "nur" als Editor verwendet
  • Matthias würde sich gerne auch Vim mal ansehen, aber scheut derzeit die Lernkurve
  • Frage: Warum Vim? Antwort: Kosten. Aber wir stellen in Frage, ob die Kosten wirklich ein Grund ist. Wahrscheinlich nicht :-)
  • Insgesamt ist Matthias noch in der Findungsphase: RubyMine ist aber ein Favorit
  • Matthias hat Spaß auf neue Tools umzustellen :-)

Next Steps (01:30:47)

  • Derzeit macht er AngularJS Entwicklung, Testing mit Karma, Jasmine, PhantomJS
  • Es wird auch für Mobile-Plattformen mit AngularJS und Cordova (https://cordova.apache.org/) entwickelt
  • Die Software die derzeit entwickelt wird, ist sehr allgemein einsetzbar
  • Im Grunde geht darum Firmen zu unterstützen ihren Kram zusammenzuhalten
  • Zusätzlich gibt es Systeme die auf Gabelstapler montiert werden
  • Der Branchenwechseln war eine gute Idee

Fazit (01:33:10)

  • Bewertung des Wechsels: Positiv, nicht nur wegen dem Spaß sich in neue Dinge einzuarbeiten
  • Frontend-Entwicklung mit AngularJS fühlt sich tatsächlich mal an wie Entwicklung ;-)
  • Gab es auch Probleme bei der Umstellung?
    • Einige Mitarbeiter wollen sich nicht mit so vielen Technologien befassen, das kann auch OK sein, aber man muss damit als Unternehmen/Team umgehen
    • Ein Kollege ist auch gegangen, da er mehr .NET machen wollte
    • Lernkurven müssen an die Geschäftsführung und die anderen Kollegen kommuniziert werden
    • Viele Parallenen zu GST019 (http://geekstammtisch.de/#GST019)
    • Die Umstellung ist unter anderem auch dadurch motiviert worden, weil der Chef die Folge gehört hat :-)
  • Frage dann vom Chef: Was ist eigentlich dieses Ruby und Rails? Und wenn das so gut ist, warum machen das nicht alle?
  • Entwicklungsgeschwindigkeit hat mit überzeugt

Ausklang (01:38:35)

  • Wir sind uns einig, dass die Folge Leute nicht davon abhalten wird weiter Java zu bashen. Dafür ist es auch einfach zu lustig.
  • Kritiker werden sagen: "Matthias hat ja dann doch von Java auf Ruby gewechselt"
  • Matthias hat sich eigentlich auf Java 8 gefreut
  • Das Unternehmen wird nie ganz auf (J)Ruby umstellen, dafür gibt es zu viele Bereiche in denen man Software entwickelt. Gleichzeitig macht das den Reiz aus
  • JRuby hat zwar kein Komitee aber dennoch genug Entwicklungsresourcen :-)
  • Problem ist aber, dass die Community recht klein ist und man schwieriger Lösungen für seine Probleme findet:
    • Erste Einschränkung: JRuby
    • Zweiter Einschränkung: JBoss Deployment
  • Matthias empfiehlt: Wenn man kein Java-Know-How hat, einfach MRI verwenden
  • Wir fordern Matthias zu Usergroups zu kommen und ihr Wissen zu teilen
  • Vor allem JRuby Wissen in die Welt zu tragen lohnt sich
  • NoSQL-Matters als Konferenz Empfehlung (http://2014.nosql-matters.org/cgn/)
  • Wenn man ernsthaft JRuby macht, kann man auch mal mit dem Core-Team Kontakt aufnehmen, die freuen sich über derartiges Feedback

Hiring-Pitch (01:44:06)

  • Wir fragen explizit nach ob noch Entwickler gesucht werden
  • Antwort: Ja
  • Firma sitzt in St. Augustin, direkt neben der FH
  • FrOSCon quasi einen Steinwurf entfernt ;-)
  • Aufgaben sind sehr vielfältig (Mobile-Entwicklung, Emedded-Entwicklung, Hardware-Entwicklung, Web-Entwicklung, Infrastruktur, etc.)
  • Die Branche nennt sich: Intra-Logistik
  • Die Firma heißt IdentPro: http://www.identpro.de/de/, aber bitte nicht von der Webseite abschrecken lassen, die ist old-school-Industrie-kompatibel \o/
]]>
GST030 - Turnschuhadministration no Dirk Breuer, Sebastian Cohnen Wir sprachen mit Essy (@casheeew) über das spannende Dasein einer Administratorinnen GST030 Mon, 24 Mar 2014 15:02:41 +0100 02:03:22 Synopsis: Mit Essy (@casheeew) sprachen wir ausführlich über das Leben und Arbeiten einer Administratorin innerhalb eines großen Rechenzentrums. Es geht um Prozesse, Betrieb, Deployment und Komplexität im Umfeld von großen Hostingumgebungen. Wir gehen auf diverse Aspekte etwas näher ein und erhalten einen recht vollständigen Einblick in ihren Arbeitsalltag.

Unser Gast (00:00:00)

Deployment über Netzwerkfreigabe (00:10:44)

  • In GST029 (http://geekstammtisch.de/#GST029) haben wir über Java-Entwicklung und Betrieb gesprochen, dabei viel der Begriff JBoss
  • Und Essy setzt sich beruflich mit dem Betrieb von Anwendungen auf dem JBoss auseinander
  • Essy arbeitet bei einem großen Rechenzentrum in Köln
  • Betrieben werden dort die unterschiedlichsten Anwendungen (vor allem auch große Anwendungen mit vielen Abhängigkeiten)
  • Herausforderungen: Leben mit komplexeren Prozessen als bei einem Fancy-Web-Startup™
  • Deployment für den JBoss läuft zum Beispiel so ab:
    • Kunde legt Auszug aus seinem JBoss inkl. aller Konfigurationen auf einer Netzwerkfreigabe ab
    • Essy sucht Änderungen zwischen altem und neuem Stand heraus
    • Änderungen werden auf allen Systemen eingespielt
  • Klingt umständlich und ist es auch, daher der Plan: Verwendung von Puppet: http://puppetlabs.com/
  • Trotz der Strukturen und Prozesse ist es Essy und ihren Kollegen überlassen welche Tools intern verwendet werden, solange das Ergebnis am Ende passt
  • Warum mit Puppet? Die nächste Version des Red Hat Enterprise Satellite Server (http://de.redhat.com/products/enterprise-linux/satellite/) setzt auf Puppet auf, daher war hier der Wunsch Puppet auch für weitere Bereiche einzusetzen

Server, Monitoring & Bereitschaft (00:26:00)

  • Essy verantwortet den vollständigen Server
  • Die Maschine wird lediglich von einem anderen Team bereitgestellt und übergeben
  • Neben Maschinen für Kunden gibt es auch Maschinen für Forschung & Entwicklung
  • Basis-Monitoring (Erreichbarkeit, Plattenfüllstand, etc) kommt mit dem Server mit
  • Weiteres Monitoring lässt sich dann hinzufügen
  • Monitoring läuft über Icinga (https://www.icinga.org/), einem Nagios (http://www.nagios.org/) Ableger
  • Es gibt natürlich auch eine 24x7 Bereitschaft (in der nicht alle Server enthalten sind)
  • Folge ist: Systeme werden so redundant und solide aufgesetzt, dass man Nachts nicht angerufen wird
  • Das bedeutet auch, dass man Bereitschaft für Systeme machen muss, die man in der Regel nicht selbst betreut
  • Dafür existiert dann entsprechende Dokumentation, die regelmäßig kontrolliert und auditiert wird

Softwarelandschaft (00:35:48)

  • Unterschiedlichste Versionsstände von (beispielsweise) Java (von alt bis ganz neu)
  • JBoss wird nicht in der Community-Variante verwendet, sondern in der kommerziell unterstützten
  • Die Open-Source Variante wird auch nicht mehr JBoss heißen, sondern WildFly (https://github.com/wildfly/wildfly)
  • Kostet nicht unerheblich, aber weniger im Vergleich zu anderen Produkten
  • Support lohnt sich und wurde von Essy auch immer mal wieder in Anspruch genommen
  • Als Dienstleister hat mal im Grunde keine andere Wahl als den kommerziellen Support sowohl von Red Hat Linux als auch JBoss zu nehmen
  • Aus diesem Grund wird Ruby 1.8.7 auch immer noch von Red Hat gepflegt
  • Was dann natürlich zu anderen Problemen führt ^^

Virtualisierung (00:40:40)

Prozesszertifizierung, Support und Monitoring der Kaffeemaschinen (00:44:35)

  • Zertifizierung ist für einen Betreiber eines Rechenzentrums sehr wichtig
  • Die ISO in diesem Fall ist die 27001 (http://de.wikipedia.org/wiki/ISO/IEC_27001)
  • In diesem Zuge werden vor allem organisatorische Aspekte geprüft
  • Neben der Dokumentation der Prozesse werden aber auch Gespräche mit Mitarbeitern geführt und exemplarisch Server betrachtet
  • Das Audit findet jährlich statt
  • Pentesting (http://de.wikipedia.org/wiki/Penetrationstest_(Informatik)) ist nicht Teil der Zertifizierung
  • Glücklicherweise keine PCI Zertifizierung (http://de.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard)
  • Bei der Vielzahl von Kunden und Projekten lassen sich umfangreiche Prozesse am Ende aber nicht vermeiden
  • Das Maximum an Projekten, die man so übernimmt varriert und hängt von der Komplexität der jeweiligen Projekte ab
  • Essy macht glücklicherweise kaum bis keinen Support (:
  • Der Rest des Teams macht aber durchaus auch mehr 2nd-Level Support
  • 2nd-Level Support hat keinen unmittelbaren Kontakt mit dem Kunden
  • Inhouse Servicecenter für den First Level Support, wenn das nicht reicht, landen die Tickets im Team im Second Level Support
  • Ärzte schrauben ganz gerne mal selbst an PCs rum und mailen an alle über den Mailverteiler
  • Basti hat mal in einer Firma die Druckerlandschaft mitkonfiguriert, globales Auslesen von über SNMP von Tonerfüllständen mit Abgleich auf den Lagerbestand und ggf. direkte automatisierte Bestellung beim Händler
  • Drucker sind natürlich auch im Icinga ;-) Telefone allerdings nicht mehr
  • Icinga hört immer dort auf, wo es spezialisierte Tools der jeweilgen Produkte gibt
  • Ungelöstes Problem: Monitoring und Alerting der Kaffeemaschinen

K-Fälle (01:02:35)

  • K-Fälle wie Katastrophenfälle
  • Redundanz bedeutet in diesem Fall auch, dass ein Rechenzentrum wegbrechen kann
  • Für diesen Fall werden unterschiedliche Szenarien durchgespielt, um Lücken im System zu entdecken
  • ESX-Cluster werden inkl. Storage zwischen den Rechenzentren gespiegelt und im Hot-Standby gehalten
  • Dafür braucht man dann allerdings auch entsprechend Bandbreite
  • Wir vermuten, dass Darkfibers in Köln zu bekommen kein Problem sein sollten
  • Diese hohe Ausfallsicherheit lohnt sich erst für Projekte/System ab einem gewissen Grad, vorher macht es finanziell einfach keinen Sinn
  • Finanziell bedeutet in diesem Fall weniger Hardware, sondern vor allem Personal, Organisation und Prozess
  • Resultat ist in jedem Fall die Einbüßung von Flexibilität
  • Hohe Anhängigkeiten zwischen verschiedenen Teams

Deployment, Koordination (01:10:30)

  • Produktmanager koordinieren zwischen Kunde, externer Entwicklung und Infrastruktur
  • Es gibt komplexe Abhängigkeiten zwischen verschiedenen System (sowohl in Hard- als auch Software)
  • Zero-Downtime Deployments werden angestrebt, aber sind nicht immer möglich
  • Vor Deployments: Wöchentliche Meetings von Teams zur Koordination

Tooling (01:16:00)

git, Gitlab, Stash, Github Enterprise (01:18:35)

Administration und Automatisierung (01:25:00)

  • Turnschuh-Administration: Monkey see, Monkey do!
  • Automatisierung ist nicht for-free und ein anhaltender Prozess
  • "Läuft's noch oder automatisierst du schon?" (@bascht)

Backups (01:28:20)

  • Regelmäßig machen, lang genug aufbewahren UND
  • Restore testen!
  • Bei Essys Arbeitgeber gibt es dazu ein dediziertes Backup Team
  • von VMs werden Snapshots erstellt und gesichert
  • Restore ist ein Informationssicherheitsvorfall

Chaos Monkey (01:32:20)

IPv6 (01:38:05)

Verschiedenes (01:38:30)

Telearbeit (01:45:00)

  • Essy hat einen (Windows) Arbeitsrechner und darf mit ihrem Mac Book nicht ins Firmennetz
  • WPA2: https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access
  • Remote Zugang via Citrix, dann via Remote Desktop (RDP) zum Arbeitsrechner und von da aus zu den Servern
  • Problem dabei: Keyboard Shortcuts funktionieren wegen dem hin- und hermapping nicht so richtig
  • Essy kann Heimarbeit machen, sofern es keine Notwendigkeit gibt, Vorort zu arbeiten

Homesetup (01:53:55)

  • Essy hat drei Displays (sowohl zuhause als auch auf der Arbeit) und sich kürzlich neue Hardware für einen Desktop Rechner gekauft
  • Dirk und Basti haben schon EWIG keinen Rechner mehr komplett aus Einzelteilen gebaut

Abschluß (01:59:15)

]]>
GST031 - CORBA in cool no Dirk Breuer, Sebastian Cohnen Wir haben mit Stefan Tilkov über Softwarearchitekturen, REST und das Web gesprochen. GST031 Mon, 14 Apr 2014 13:39:53 +0200 01:20:22 Synopsis: Mit Stefan Tilkov (@stilkov) sprachen wir über Softwarearchitekturen, vor allem REST und Web Services. Wir haben keine 800 Personenjahre gebraucht, um festzustellen, dass Thrift CORBA in cool ist und die Idee "Rechte Maustaste, 'Generate and Deploy Web Service'" nicht wirklich funktioniert. Neben REST im Allgemeinen sprechen wir über Hypermedia und wie alles zusammengreifen kann. Stefan schlägt eine interessante Brücke von der Idee REST als Backend-Thema hin zu REST für das Web, wodurch wir zu ROCA, einem Architekturstil, kommen.

Unser Gast (00:00:00)

  • Stefan Tilkov, @stilkov, http://www.innoq.com/blog/st/about/
  • REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien, Stefan Tilkov: http://rest-http.info
  • Macht zum Teil Management und sonst wozu er so Lust hat: Workshops, Konferenzen, Schulungen, …
  • Hat C, C++, Java und und und gemacht, sein aktueller Favorit ist allerdings: Clojure

Architektur im Wandel (00:02:45)

  • "architect" is Latin for "cannot code anymore.", Ted Neward: http://msdn.microsoft.com/en-us/library/aa905335.aspx
  • "Architektur ist die Menge der wichtigen Entscheidungen", Stefan Tilkov :)
  • Anwendungsarchitektur Anfang der 2000er
  • Irgendwann wurde der Begriff "Architektur" negativ belegt

Projekte bei innoQ (00:05:10)

  • 60 Leute bei innoQ
  • 20% strategische Beratung
  • 80% Entwicklungsprojekt, teilweise nur mitarbeiten, teilweise komplett selber verantwortet
  • bei innoQ werden immer wieder die Rollen/Aufgaben und Projekte gewechselt

Architektur: negativ? (00:08:40)

REST (00:12:05)

Der WS-Weg (00:16:55)

Microservices vs SOA? (00:22:05)

Hypermedia Explained (00:23:53)

REST für das Web (00:45:00)

Web Services, REST (01:11:30)

Ausblick (01:17:20)

]]>
GST032 - NoSQL Matters 2014 Cologne no Dirk Breuer, Sebastian Cohnen Der Geekstammtisch mit Gesprächen von der NoSQL Matters 2014. GST032 Thu, 15 May 2014 08:44:23 +0200 03:36:27 Synopsis: Auch dieses Jahr sind wir wieder auf der NoSQL Matters in Köln und haben wieder mit Speakern wie Besuchern gesprochen. Wir haben viele neue Menschen kennengelernt, aber auch die ein oder andere Fortsetzung vom letzten Mal ist dabei. Ein Hinweis noch, es sind überwiegend Gespräche in Englisch.

Gesprächspartner

Intro (00:00:00)

  • Basti und Dirk sagen "Hallo"

Ted Dunning, MapR (00:03:46)

  • @ted_dunning
  • War dieses Jahr Keynote Speaker
  • Thema war "Remember the Future"
  • Gist: Einige Dinge die heute modern erscheinen werden in Zukunft nicht mehr sein. Dinge von denen man dachte, sie spielen keine Relevanz mehr, werden in Zukunft modern sein.
  • Was braucht NoSQL für die Zukunft?
  • Welche Möglichkeiten werden uns Daten eröffnen?
  • Was sind die kleinen Dinge, die in Zukunft große Relevanz haben werden?

Ellen Friedman (00:18:23)

  • @Ellen_Friedman
  • Hat einen eher ungewöhnlichen Hintergrund: Sie ist Biologin mit Schwerpunkt auf Bio-Chemie und Genetik und hat in diesen Bereichen sowohl Forschung als auch Lehre betrieben
  • Sie ist Autorin von zahlreichen Publikationen in diesem Bereich, aber auch Mitglied des Mahout-Projekts und schreibt aktuell viel über Machine-Learning
  • Sie erklärt uns wie es zum Thema der Keynote "Remembering the future" kam
  • Ellen glaubt wir werden genauer wenn es darum geht die Zukunft vorher zusagen
  • Im Sinne von: Was für Probleme gelöst werden, weniger wie sie gelöst werden
  • Die Lösung wird oft sehr überraschend sein
  • Manchmal gab es die Lösung schon in der Vergangenheit und sie wird neu entdeckt
  • "Die Geschichte wiederholt sich nicht"
  • Wir sprechen über die Herausforderungen die auf unsere Gesellschaft zukommen mit der weiteren Erfassung großer Datenmengen
  • Welche Verantwortung hat die Tech-Community in diesem Zusammenhang
  • Abschließend geht es noch um die verständliche Vermittlung von komplexem Wissen

Johnny Miller, DataStax (00:34:34)

  • @cyanmiller
  • Johnny ist Solution Architect bei DataStax, der größte Committer von Cassandra
  • Neben einem Vortrag hat er auch einen sehr guten Einsteiger-Workshop gegeben
  • Wir haben mit ihm über Ease-of-use gesprochen, und dass scheinbar viele NoSQL Systeme ihre Funktionalität langsam im Griff haben und sich nun auf die Benutzbarkeit konzentrieren können
  • Sein Herzensthema ist Sicherheit in NoSQL Datenbanken, daher haben wir natürlich auch darüber gesprochen

Michael Hunger, Neo Technologies (00:53:52)

  • @mesirii
  • Michael kommt von Neo Technologies, der Firma hinter Neo4j, einer Graphdatenbank
  • Auch seinen Einsteiger-Workshop konnten wir besuchen
  • Sein Talk war ebenfalls ein Einstieg, vor allem in die Welt der Graphen
  • Wir sprachen mit ihm über "The right tool for the job" und welche Problemstellungen für Graphen geeignet sind
  • Auch hier war Ease-of-use ein Thema
  • Im Fall von Neo4j bezieht sich das sowohl auf die Anwendung als solche aber auch auf den Einstieg in die Welt der Graphen
  • Off-the-Record: Leider erst nach Aufnahme haben wir uns noch verraten lassen, dass Neo4j seinen Namen aus dem Film der Matrix hat :-)

Akmal Chaudhri, DataStax (01:12:24)

  • @akmalchaudhri
  • Akmal hat einen der wenigen nicht-technischen Talks gehalten
  • Das Thema könnte dennoch nicht wichtiger sein: Skills
  • Wie schafft man es als Unternehmen aber auch als Entwickler mit der rasanten technologischen Entwicklung mithalten zu können?
  • Wir stellen fest, dass ein großer Vorteil ist, dass im Grunde alle großen NoSQL Datenbanken frei verfügbar sind und zu jeder zahlreiche und qualitativ hochwertige Lernressourcen kostenlos zur Verfügung stehen

Gereon Steffens, Finanzen100 (01:29:17)

  • @gereons
  • Gereon ist Head of IT bei Finanzen100 in Köln
  • Wir sprachen letztes Jahr mit ihm über die geplante Einführung von Redis
  • Diese Einführung ist mehr als erfolgreich verlaufen
  • Alle Anforderungen konnten erfüllt und neue Funktionalitäten für die Nutzer etabliert werden
  • Wir sprachen auch darüber wie er diese neue Technologie im Team erfolgreich etablieren konnte

Max Neunhöffer, triAGENS (01:45:09)

  • Max kommt von der Open-Source Multi-Model Datenbank ArangoDB
  • Wir reden mit ihm über das neueste Feature von ArangoDB: Sharding
  • Vor allem geht es um die Herausforderungen ein solches Feature zu implementieren
  • Der aktuelle Stand funktioniert zwar, aber es gibt noch viel zu tun

Mahesh Paolini-Subramanya, Ubiquiti Networks (02:00:43)

  • @dieswaytoofast
  • Mit Mahesh wollten wir schon letztes Jahr sprechen, haben es aber nicht mehr geschafft. Nun hat es geklappt!
  • Er arbeitet zur Zeit bei Ubiquiti Networks "The largest Network infrastructure company you may never heard of"
  • Erste Frage die sich stellt: Was hat ein Hersteller von Netzwerkhardware mit NoSQL am Hut?
  • Antwort: Unmengen von Daten!
  • Uniquiti bietet eine Cloud-basierte Management Plattform für die Hardware an
  • Jedes Gerät schickt alle 30 Sekunden Daten dorthin und kann von dort auch Konfiguration oder andere Informationen abrufen
    • Sie setzen dazu so ziemlich jede NoSQL Datenbank ein die es gibt (außer MongoDB)
  • Auch hier ist wieder "The right tool for the job" Thema
  • Und natürlich sprechen wir über das große Thema Sicherheit

Boaz Leskes, Elasticsearch (02:23:56)

  • @bleskes
  • Entwickler bei elasticsearch
  • Er hat einen Talk zu den Aggregationsmöglichkeiten in elasticsearch gehalten
  • Zusammengefasst: Mit Aggregationen, Facettensuche und den Analysefunktionen lassen sich sehr komplexe Systeme zur Analyse von beliebigen Daten erstellen
  • elasticsearch ist noch viel weniger "nur" für Suchen geeignet, als noch vor einem Jahr
  • Die Nutzer erkennen immer mehr, welche weiteren Möglichkeiten durch elasticsearch bekommen
  • Boaz erklärt wie die Suchfunktionalitäten von elasticsearch bei der Analyse von arbiträren Daten helfen kann
  • Es geht weiter mit einigen interessanten Einblicken in die Optimierung von Algorithmen
  • Ease-of-use ist auch bei elasticsearch ein sehr wichtiges Thema, nicht nur bei der Nutzung aus Entwicklersicht, sondern auch aus Betriebssicht
  • "Elasticsearch is a highly distributed system that really, really hard tries to hide it"

Frank Celler und Dr. Stefan Edlich (02:39:35)

  • @fceller (Dr. Celler Cologne Lectures) & @edlich
  • Frank und Stefan sind beide Organisatoren der Konferenz und im Programmkommitee
  • Wir sprechen über die Vorbereitungen der Konferenz und wie die bisherigen Eindrücke sind
  • Wir erhalten ein paar Einblicke in die Schwierigkeiten bei der Zusammenstellung des Programms
  • NoSQL Matters gibt es nicht nur in Köln, sondern auch in Dublin und Barcelona

Russel Brown, Basho (02:53:18)

  • @russelldb
  • Russel ist kurzfristig für einen Talk eingesprungen, glücklicherweise zu dem Thema, dass er implementiert hat ;-)
  • Mit Russel haben wir über CRDT in Riak gesprochen, dieses Theme hatten wir letztes Jahr auch schon mit Sean Cribbs
  • Damals steckte es noch in den Kinderschuhen, heute ist es nutzbar in der neuesten Version von Riak
  • CRDTs steht für "Conflict-Free Replicated Data-Typ"
  • Wir reden über die Herausforderungen der Implementierung
  • Und vor allem über die Herausforderungen beim Testing
  • Obwohl das Feature implementiert ist, gibt es noch viele Dinge zu tun und zu optimieren

Jennifer Rullmann, FoundationDB (03:11:26)

  • @jrullmann
  • Entwicklerin bei FoundationDB
  • Hat vorher Webanwendungen Entwickelt nun arbeitet sie an FoundationDB
  • FoundationDB: Distributed Key-Value DB mit der Möglichkeit andere Datenmodelle (Dokumente, Graphen, ...) in Form von Layern hinzufügen
  • Ihr Talk war zu dem Thema "NoSQL and ACID"
  • Ease of Use: FoundationDB legt viel Wert darauf einfach im Betrieb zu sein (wenig Konfiguration by default)

Outro (03:28:52)

  • Bast und Dirk sagen "Tschüss"
  • persönliches Fazit: Wir hatten tolle drei Tage, haben viel gelernt und sehr spannende Gespräche geführt
  • Fazit zur Konferenz: NoSQL wird erwachsen und wird uns bestimmt noch viele Jahre begleiten. In welcher Form? Das wird die Zukunft zeigen ;-)
]]>