Skip to content

Instantly share code, notes, and snippets.

😘
Taking care of my daugther

Nepomuk Seiler muuki88

😘
Taking care of my daugther
Block or report user

Report or block muuki88

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@muuki88
muuki88 / KeyValueStore.serialization.ts
Created Sep 14, 2018
KeyValueStore Serialization
View KeyValueStore.serialization.ts
const deserializeBoolean = (value: string) => value === 'true';
const deserializeString = (value: string) => value;
const deserializeNumber = (value: string) => parseInt(value);
const serializeBoolean = (value: boolean) => value ? 'true' : 'false';
const serializeString = (value: string) => value;
const serializeNumber = (value: number) => number.toFixed();
/**
* Each key-value storage key needs a function to deserialize its string value
* from the database into its own type. Each type is specified in KeyValueStorage.
View KeyValueStore.v3.ts
type KeyValueStorage = {
'setting1': boolean;
'setting2': string;
'setting3': number;
};
/** all possible keys for the key-value storage */
type KeyValueStorageKey = keyof KeyValueStorage;
interface UserStorage {
@muuki88
muuki88 / KeyValueStore.v2.ts
Created Sep 14, 2018
KeyValue Storage - Typed Keys
View KeyValueStore.v2.ts
type UserStorageKey = 'setting1' | 'setting2' | 'setting3';
interface UserStorage {
/** set a value for a specific key */
set(key: UserStorageKey, value: string): void;
/** get the value for a specific key. If not present return null*/
get(key: UserStorageKey): string | null;
}
@muuki88
muuki88 / KeyValueStore.v1.ts
Created Sep 14, 2018
KeyValue Storage - Untyped
View KeyValueStore.v1.ts
interface UserStorage {
/** set a value for a specific key */
set(key: string, value: string): void;
/** get the value for a specific key. If not present return null*/
get(key: string): string | null;
}
@muuki88
muuki88 / jenkins-sbt.groovy
Created Nov 2, 2016
Jenkins 2.0 SBT build pipeline
View jenkins-sbt.groovy
node {
stage('Git') {
git 'https://github.com/muuki88/activator-play-cluster-sample.git'
}
stage('Build') {
def builds = [:]
builds['scala'] = {
// assumes you have the sbt plugin installed and created an sbt installation named 'sbt-0.13.13'
sh "${tool name: 'sbt-0.13.13', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt compile test"
}
View WeatherApiContext.scala
// user endpoint which sets a UserContext
val userMean: Endpoint[MeanForUser] = get("weather" / "mean" / "user" :: long) { userId: Long =>
val userContext = UserContext(userId)
Contexts.broadcast.let(UserContext, userContext) {
client.mean().map(mean => Ok(MeanForUser(mean, userId)))
}
}
View UserContext.scala
package net.gutefrage.context
import com.twitter.finagle.context.Contexts
import com.twitter.finagle.util.ByteArrays
import com.twitter.io.Buf
import com.twitter.util.{Return, Throw, Try}
case class UserContext(userId: Long)
/**
View Announce.scala
// import flaggable type class
import Env._
// start a service in an environment with
// --env prod
val env = flag[Env]("env", Env.Local, "environment this server runs")
val port = flag[Int]("port", 8080, "port this server should use")
val server = ThriftMux.server
.withLabel("temperature-service")
View Dtabs.scala
package net.gutefrage
import com.twitter.finagle.Dtab
/**
* Holds different delegation tables
*/
object Dtabs {
def init(): Unit = {
View WeatherApi.scala
package net.gutefrage
import com.twitter.finagle._
import com.twitter.finagle.http.service.HttpResponseClassifier
import com.twitter.server.TwitterServer
import com.twitter.util.Await
import io.finch._
import io.finch.circe._
import io.circe.generic.auto._
import net.gutefrage.temperature.thrift._
You can’t perform that action at this time.