Skip to content

Instantly share code, notes, and snippets.

View moleike's full-sized avatar
🌟
dare to think for yourself

Alexandre Moreno moleike

🌟
dare to think for yourself
  • Barcelona
  • 08:38 (UTC +02:00)
  • X @moleike
View GitHub Profile

kafka-workshop

Welcome to the kafka workshop @LINE Taiwan!

Goals

Today session will help you get started with doing some basic stream processing using Kafka Streams and KSQL, and how you can manage materialzed views using Kafka Connect.

In what follows, we will give you a detail step-by-step guide on building your first stream processing application. The application considers 2 data sources:

sealed trait Term
case class Const(name: String) extends Term
case class Var(name: String) extends Term
case class Atom(relation: String, terms: Term*)
sealed trait Clause
case class Rule(head: Atom, body: Atom*) extends Clause
case class Fact(atom: Atom) extends Clause
case class Query(name: String, atoms: Atom*) extends Clause
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeOperators #-}

Keybase proof

I hereby claim:

  • I am moleike on github.
  • I am moleike (https://keybase.io/moleike) on keybase.
  • I have a public key whose fingerprint is CDC4 894D F650 5812 3224 B997 C5CD DE66 C45A DD8F

To claim this, I am signing this object:

import io.finch._
import io.finch.syntax._
import shapeless._
import scala.language.existentials
trait Route {
private object base extends Endpoint[HNil] {
def apply(input: Input): Endpoint.Result[HNil] = EndpointResult.NotMatched
}
@moleike
moleike / pair_programming_roles
Created March 23, 2018 02:22 — forked from jordanpoulton/pair_programming_roles
Pair Programming Role Definitions - Driver:Navigator
Driver:
-Write the code according to the navigator's specification
-Listen intently to the navigators instructions
-Ask questions wherever there is a lack of clarity
-Offer alternative solutions if you disagree with the navigator
-Where there is disagreement, defer to the navigator. If their idea fails, get to failure quickly and move on
-Make sure code is clean
-Own the computer / keyboard
-Ignore larger issues and focus on the task at hand
-Trust the navigator - ultimately the navigator has the final say in what is written
@moleike
moleike / ssh_client.go
Created March 15, 2018 06:59 — forked from iamralch/ssh_client.go
SSH client in GO
package main
import (
"fmt"
"io"
"io/ioutil"
"net"
"os"
"strings"
@moleike
moleike / tmux-cheatsheet.markdown
Created March 9, 2018 04:13 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@moleike
moleike / Makefile
Created March 2, 2018 00:45 — forked from llj098/Makefile
a sample tcp server runs in kernel
obj-m += tcp_svr_sample.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clea
@moleike
moleike / memory_layout.md
Created January 14, 2018 16:59 — forked from CMCDragonkai/memory_layout.md
Linux: Understanding the Memory Layout of Linux Executables

Understanding the Memory Layout of Linux Executables

Required tools for playing around with memory:

  • hexdump
  • objdump
  • readelf
  • xxd
  • gcore