Skip to content

Instantly share code, notes, and snippets.

View msiegenthaler's full-sized avatar

Mario Siegenthaler msiegenthaler

View GitHub Profile
!define CYAN 336666
!define BLUE 87C8DC
!define GREEN 9AC400
!define ORANGE CF943F
!define PURPLE 604A7B
!define RED A63C3A
!define SAND F4F4F4
!define BORDER 595959
!define LINE 595959
@msiegenthaler
msiegenthaler / enable_kubernetes.fish
Last active June 29, 2018 08:21
Fish Shell function to display the kubernetes namespace to the right
function kubernetes_status
[ -z "$KUBECTL_PROMPT_SEPARATOR" ]; and set -l KUBECTL_PROMPT_SEPARATOR "/"
set -l config $KUBECONFIG
[ -z "$config" ]; and set -l config "$HOME/.kube/config"
if [ ! -f $config ]
echo (set_color red)$KUBECTL_PROMPT_ICON" "(set_color white)"no config"
return
end
set -l ctx (kubectl config current-context 2>/dev/null)
@msiegenthaler
msiegenthaler / members.scala
Last active July 19, 2017 14:31
atnos eff: combining effects
package lib.eff
import scala.language.higherKinds
import cats.data.State
import org.atnos.eff.either._
import org.atnos.eff.option._
import org.atnos.eff.state._
import org.atnos.eff.{Eff, MemberIn}
sealed trait Members[R]
@msiegenthaler
msiegenthaler / nginx.grok
Last active June 15, 2023 08:19
Grok pattern for nginx ingress in Kubernetes
%{IPORHOST:client_ip} - \[%{IPORHOST:x_forwarded_for}\] - %{DATA:client_identity} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|-)\" %{NUMBER:response} (?:%{NUMBER:bytes_sent;long}|-) (?:"(?:%{URI:referrer}|-)") %{QS:user_agent} %{NUMBER:request_length;long} %{NUMBER:response_time;double} %{DATA:upstream_proxy} %{NUMBER:upstream_bytes_sent;long} %{NUMBER:upstream_response_time} %{NUMBER:upstream_response}
[info] Running org.ensime.server.Server 
[error] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[error] Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
[info] 14:27:38.992 INFO None a.e.s.Slf4jLogger - Slf4jLogger started
[info] 14:27:39.000 DEBUG EventStream(akka://ENSIME) a.e.EventStream - logger log1-Slf4jLogger started
[info] 14:27:39.003 DEBUG EventStream(akka://ENSIME) a.e.EventStream - Default Loggers started
[info] 14:27:39.043 INFO None o.a.c.v.i.StandardFileSystemManager - Using "/var/folders/zn/_wm6vwn95b73_2___c1j5l0w0000gn/T/vfs_cache" as temporary files store.
[info] 14:27:39.083 DEBUG akka://ENSIME/system/IO-TCP/selectors/$a/0 a.i.TcpListener - Successfully bound to /127.0.0.1:63571
[info]
@msiegenthaler
msiegenthaler / FreeMacro.scala
Created November 5, 2015 16:24
Macro that auto-creates lifted functions for Free monads.
package free
import scala.annotation.{StaticAnnotation, compileTimeOnly}
import scala.language.experimental.macros
import scala.language.higherKinds
import scala.reflect.macros.whitebox
/**
* Usage:
package example2
import cats.std.list._
import cats.std.function._
import cats.syntax.foldable._
import cats.state.State
import cats._
import cats.free._
object Console {
@msiegenthaler
msiegenthaler / random-color.coffee
Created October 21, 2015 16:15
Random color with Coffeescript
# Generates random color such as #f0d3a2
getRandomColor = () ->
letters = '0123456789ABCDEF'.split('')
color = '#'
for i in [0..5]
color += letters[Math.floor(Math.random() * 16)]
color
import scalaz._
import scalaz.syntax.monad._
object Console {
import ConsoleOp._
def println(text: String): Console[Unit] = Free.liftFC(Println(text))
def readln: Console[String] = Free.liftFC(Readln())
//cannot use FreeC, because type inference for implicits will diverge
@msiegenthaler
msiegenthaler / keybase.md
Created October 25, 2014 14:38
keybase.md

Keybase proof

I hereby claim:

  • I am msiegenthaler on github.
  • I am msiegenthaler (https://keybase.io/msiegenthaler) on keybase.
  • I have a public key whose fingerprint is D3EF DE59 51C0 6ED8 498A E137 5347 F80F 1FA9 C267

To claim this, I am signing this object: