Skip to content

Instantly share code, notes, and snippets.

View simerplaha's full-sized avatar

Simer simerplaha

View GitHub Profile
@simerplaha
simerplaha / DropdownButton.scala
Last active September 30, 2015 22:17
Scala.js React boostrap Dropdown button using the Scala-js-react-bridge library
import scala.Any
import scala.scalajs.js
import scala.scalajs.js._
case class DropdownButton(id: js.UndefOr[String] = js.undefined, className: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[String] = js.undefined, key: js.UndefOr[Any] = js.undefined,
title: js.UndefOr[String] = js.undefined,
bsSize: UndefOr[String] = undefined)
extends ReactBootstrapComponent
@simerplaha
simerplaha / ReactBootstrapDatetimepicker.scala
Created September 30, 2015 22:12
Scala-js react ReactBootstrapDatetimepicker component using Scala-js-react-bridge library
import com.payalabs.scalajs.react.bridge.ReactBridgeComponent
import scala.scalajs.js
import scala.scalajs.js.UndefOr
case class ReactBootstrapDatetimepicker(id: js.UndefOr[String] = js.undefined,
className: js.UndefOr[String] = js.undefined,
ref: js.UndefOr[String] = js.undefined,
key: js.UndefOr[Any] = js.undefined,
mode: js.UndefOr[String] = js.undefined,
@simerplaha
simerplaha / C3js.scala
Last active May 16, 2018 13:40
A simple Scala-js C3.js Charts facade ... Something I wrote quickly to integrate C3.js charts. Hopefully it will be good enough for anyone to get started with C3.js charts in Scala.js. I will try to make the parameters more type safe objects soon and implement the APIs properly.
import scala.scalajs.js
import scala.scalajs.js.JSConverters._
import scala.scalajs.js.annotation.JSName
trait C3ChartObject extends js.Object {
def load(data: C3JSChartDataset): js.Dynamic = js.native
def unload() = js.native
}
@simerplaha
simerplaha / GCMSender.scala
Created November 1, 2015 12:42 — forked from anonymous/GCMSender.scala
A part of game server with akka-typed
package app.actors
import akka.event.Logging
import akka.http.scaladsl._
import akka.http.scaladsl.model.HttpHeader.ParsingResult
import akka.http.scaladsl.model._
import akka.stream.ActorMaterializer
import akka.typed.ScalaDSL._
import akka.typed._
import argonaut.Argonaut._
@simerplaha
simerplaha / GCMSender.scala
Created November 1, 2015 12:42 — forked from anonymous/GCMSender.scala
Part of server with the old akka (akka-typed version: https://gist.github.com/anonymous/28accfa8e5f3fe187c4d)
package app.actors
import akka.actor.{Actor, ActorLogging}
import argonaut._, Argonaut._
import infrastructure.GCM
import launch.RTConfig
import spray.client.pipelining._
import spray.http._
import spray.httpx.marshalling.Marshaller
@simerplaha
simerplaha / AkkaEventBusExample.scala
Last active April 1, 2016 04:32
Akka event bus simple publisher/subscriber code
package main
import akka.actor._
import akka.event.{EventBus, SubchannelClassification}
import akka.util.Subclassification
object SCEventBus extends EventBus with SubchannelClassification {
type Event = (String, Any, ActorRef)
type Classifier = String
type Subscriber = ActorRef
@simerplaha
simerplaha / JsonToClassNameMapper.scala
Last active March 10, 2016 04:01
Scala macro to generate a sealed trait's sub classes. This macro will generate a function (className: String, jsonString: String) => Option[A]. Depends on shapeless-argonaut.
import scala.language.experimental.macros
import scala.reflect.macros.blackbox.Context
object JsonToClassNameMapper {
def generatePatternMatcher[A](): (String, String) => Option[A] = macro generatePatternMatcherImpl[A]
def generatePatternMatcherImpl[A: c.WeakTypeTag](c: Context)(): c.Tree = {
import c.universe._
@simerplaha
simerplaha / Snake.scala
Created March 11, 2017 08:44 — forked from densh/Snake.scala
Snake game in 200 lines of Scala Native and SDL2 as demoed during Scala Matsuri 2017
import scalanative.native._
import SDL._
import SDLExtra._
@extern
@link("SDL2")
object SDL {
type Window = CStruct0
type Renderer = CStruct0
@simerplaha
simerplaha / linode-security.md
Created June 2, 2017 07:06 — forked from eliangcs/linode-security.md
Basic security setup for a brand new Linode

Basic Security Setup for a Brand New Linode

Why

When you start a clean Linode, it isn't secured in the following aspects:

  • Allows root SSH login
  • Uses password authentication on SSH
  • Doesn't have a firewall
//See - https://gist.github.com/milessabin/89c9b47a91017973a35f && https://github.com/softwaremill/scala-common
object Tagged {
sealed trait Tagged[+T] extends Any {
type Tagged <: T
}
type @@[+V, +T] = V with Tagged[T]
}
sealed trait MaybeTag