In this post I’m going to describe an issue we experienced with nginx and its handling of Server Side Includes (SSIs). We saw that nginx at first decodes the SSI URI path and afterwards encodes it when loading the resource. And in some cases, the URI path encoded by nginx was different than the original one. The solution is easy (use query parameters if in doubt), but I thought I’d share this so that others maybe don’t run into this issue and/or see how to debug such things.
Here’s a short post with linked slides and the recording of our first Reactive Systems Hamburg Meetup, where Martin Krasser compared the Event-Sourcing/CQRS tools Akka Persistence (which he also authored, as successor of his Eventsourced lib) and Eventuate (which he’s now building for Red Bull Media House to support a globally distributed system).
Wer kennt es nicht: Abends noch eine SSH-Session laufen gehabt, Laptop zugeklappt und zuhause ist die Session tot. An ein Arbeiten im Zug ist noch nichtmal zu denken.
I found a post by Qiaochu Yuan that has the following definiton: A comathematician is a device for turning cotheorems into ffee.
Apparently this is a very funny joke. Could someone explain it to me and tell me where I could learn about the subject in question? Thank you very much in advance.
The Gist
In our current project we just wanted to see which requests exceeded a certain response time threshold. Additionally we wanted to know where the time was spent, i.e. which backend requests (e.g. hitting the database or search engine) contributed how much to the overall response time. So we’d like to get log entries like this:
Today we talk about the little wiggly operator |@|
. Being slightly deaf and one of the few living persons on this planet who never watched a Star Wars movie, I always thought people call this the allah al akbar
operator, when in fact it is called the Admiral Ackbar
operator. If you haven’t so far, please read the post about Applicatives as this blog post builds on top of it.
Jetzt ist es offiziell: Seit 6 Monaten arbeiten wir von inoio zusammen mit weiteren Dienstleistern und Galeria Kaufhof an deren neuer Multi-Channel Online Plattform - Projektname “Jump”. Mit dem neuen System soll die Time-to-Market erheblich reduziert werden, wenn es um die Einbindung und Entwicklung neuer Features geht.
In the last installation of this series, we covered the Functor and now we take a turn to discuss the Applicative
type class.
In the last installation of this series, we covered the Foldable and now we take a turn to discuss the Functor
type class. Basically we cover some building blocks out of which more complex type classes can be build.
In the last installment of this series, we had a look at one of the most primitive type classes, the semigroup. Today we add one nifty feature to it, namely the notion of an identity element zero
:
trait Monoid[A] extends Semigroup {
def zero : A
}