Come and join us for great talks and drinks :) This time there'll also be a quiz :)

Topics

About Semantic Versioning

Many software projects follow their own versioning scheme. Before you actually use the software, you go ahead and read up how their versioning scheme is working, which versions are compatible to which versions, which are meant for development purposes only, which are safe to use and most importantly which introduce breaking changes. When you upgrade existing software, you find yourself often in the position to ask "Can I safely upgrade this library to that version? Does this break anything?”. Finding an answer here can be very tedious for a big software project using many libraries.

As a software author you always ask yourselves the same question when you release: “What is the version number for the next release?”

Semantic versioning introduces a set of rules which help you as a software author to pick the right number. No need to think about this for hours anymore. For the users of your software it also gets a lot easier. They’re able to define rules for their package managers which updates are safe to perform and which are not. This allows them to update their libraries without problems.

Refactoring VAT in SpreeCommerce and Solidus

The largest e-commerce Rails engine in Existence, SpreeCommerce, was built in North America. North America has different rules for taxing Sales on-line than Germany (most of the rest of the world, actually).

For a client I had to refactor Spree's taxation system so that it can do some of the weirder things Germany / the EU need. This is a fascinating story with lots of funny code!

In October 2015, Spree Commerce Inc. ceased maintaining SpreeCommerce. As a result, a large part of the community moved to the fork Solidus - but my code hadn't. So I embarked on a side project to refactor taxes there as well, given I'd done it once before, and this time do a better job at it.

This talk is great for - first-time contributors (because I didn't have a lot of GitHub bathroom tiles when I started this) - anyone working with large legacy codebases (because it has some fun insights on what to do and what to avoid) - Ruby trivia addicts (because there's some really really undecipherable code in there)

I will give this talk at SolidusConf in May this year. The Rug::B edition would be somewhat reduced in scope, as I can't expect the audience to be as familiar with the codebase. It is a technical talk, by all means.

Taxes are, btw, boring. Doing them well in Ruby - not so much!

Elixir & Phoenix - fast, concurrent and explicit

Elixir and Phoenix are all the hype lately - what's great about them? Is there more to them than "just" fast, concurrent and reliable?

This talk will give a short intro into both Elixir and Phoenix, highlighting strengths, differences from Ruby/Rails and weaknesses.

Attendees: (82)

Martin Meyerhoff
Events: 2
Topics: 2

Uladzimiro
Events: 11
Topics: 1

Jan Schulte
Events: 18
Topics: 3

Oleksii Fedorov
Events: 20
Topics: 1

violettine
Events: 3
Topics: 0

Gloria Bhat
Events: 1
Topics: 0

Jen
Events: 1
Topics: 0

Gregory Igelmund
Events: 12
Topics: 0

Steven Stadler
Events: 2
Topics: 0

Tatsuya Suzuki
Events: 1
Topics: 0

yuji307go
Events: 2
Topics: 0

Bodo Tasche 🔭
Events: 40
Topics: 3

Paul S. Chun
Events: 6
Topics: 0

yonatan miller
Events: 21
Topics: 0

Organizer

Tobias Pfeiffer
Events: 105
Topics: 15

Armin Pašalić
Events: 71
Topics: 3

Josep
Events: 19
Topics: 0

Bastian Bartmann
Events: 17
Topics: 0

Holger Frohloff
Events: 19
Topics: 4

Niall Burkley
Events: 22
Topics: 2

Jonny Rimek
Events: 3
Topics: 0

Deepak Lamichhane
Events: 22
Topics: 0

Alexander Sulim
Events: 25
Topics: 2

Thilo Utke
Events: 23
Topics: 0

Cameron Prebble 🇳🇿
Events: 45
Topics: 0

letsleaveitempty
Events: 7
Topics: 0

Thuy Le
Events: 3
Topics: 0

eno
Events: 8
Topics: 1

Skmitty
Events: 4
Topics: 0

Jakob
Events: 5
Topics: 3

Lucas Krebs-Pinto
Events: 13
Topics: 0

Fanny Krebs-Pinto
Events: 9
Topics: 1

Calvin Kaye
Events: 1
Topics: 0

Michael Reinsch
Events: 30
Topics: 2

Tilmann Singer
Events: 26
Topics: 0

Christoph Grabo
Events: 83
Topics: 1

Roland Koch
Events: 42
Topics: 0

jottr
Events: 13
Topics: 0

Hernan Maguina
Events: 22
Topics: 0

alicia
Events: 2
Topics: 0

Laurent Arnoud
Events: 9
Topics: 0

Joe Webb
Events: 12
Topics: 0

Zhuo-Fei Hui
Events: 34
Topics: 1

12finger
Events: 22
Topics: 0

Tanja Cerri
Events: 11
Topics: 0

Mike Rogers
Events: 13
Topics: 1

Holger Pillmann
Events: 9
Topics: 0

Philipp Baschke
Events: 1
Topics: 0

Fernando Meyer
Events: 3
Topics: 0

Toño Serna
Events: 46
Topics: 0

Lili
Events: 4
Topics: 0

Frederic Branczyk
Events: 5
Topics: 0

Annamaria Boheim
Events: 2
Topics: 0

Gregor Schmidt
Events: 1
Topics: 0

Susanne Dewein
Events: 9
Topics: 0

Denis Defreyne
Events: 24
Topics: 13

Jorge
Events: 11
Topics: 0

Arman Toussi
Events: 1
Topics: 0

Markus Herzog
Events: 10
Topics: 0

Johannes
Events: 3
Topics: 0

Robert Schulze
Events: 26
Topics: 0

Raquel Moss
Events: 1
Topics: 0

Brett Heenan
Events: 3
Topics: 0

Daniel Reszka
Events: 12
Topics: 0

Emily S
Events: 5
Topics: 2

Duilio Ruggiero
Events: 27
Topics: 0

Roman M
Events: 7
Topics: 0

Roberto Zanon
Events: 3
Topics: 0

Vitaly Tatarintsev
Events: 4
Topics: 0

schokomarie
Events: 6
Topics: 0

Khrystyna Klochko
Events: 6
Topics: 0

mcmerriweather
Events: 5
Topics: 0

Paul Götze
Events: 63
Topics: 1

Christian Kroter
Events: 6
Topics: 0

Mario Olivio Flores
Events: 2
Topics: 0

Mike Zhang
Events: 2
Topics: 0

Leif Gensert
Events: 9
Topics: 1

Łukasz Włodarczyk
Events: 2
Topics: 0

Denny Mueller
Events: 23
Topics: 0

Philipp Tessenow
Events: 9
Topics: 1

Peter Grosskopf
Events: 14
Topics: 0

Route