HTTP is a stateless protocol. Cookies are used to create sessions out of otherwise independent requests made by the browser to the server. There are many ways of managing sessions via cookies, but they can be mostly separated into two big camps:
The cookie data contains the session data. For example, it could contain a shopper’s login and cart contents.
The cookie data contains a session identifier, and the session data is kept on a database indexed by the session identifiers.
I’ve got myself a new laptop recently and decided to try NixOS. It’s
been a great experience so far, but there are some rough edges. One
of them is stack not completely working out of the box for my
I’m an ergoemacs-mode user, a mode that changes most key bindings so that they put less strain on your hands. For example, it uses Alt instead of Ctrl most of the time, which is easier to press: use your curled thumb instead of a karate chop. Also, many commands are activated by first pressing the Menu/Apps key (that key near the Right Ctrl which usually opens the context menu). For example, pressing Menu then T allows you to switch buffers.
However, the keyboard on my new notebook doesn’t have a dedicated Menu key. Instead, one needs to press Fn+Right Ctrl, which is of course extremely painful.
I’ve found a workaround, though. A very hackish workaround.
I have an Asus M5A97 PRO motherboard, which includes the common set of sensors. The lm-sensors free software correctly detects two chips, k10temp-pci-00c3 and it8721-isa-0290, corresponding to my Phenom II and my motherboard, respectively. However, by default the output of sensors looks like:
Yesod is a terrific framework for web applications in Haskell. It has many, many built-in features. One of them is that there’s nice support for authentication and authorization. In this post I’m interested in talking about how you could write your authorization code such that it’s harder to make mistakes.