Skip to content

Instantly share code, notes, and snippets.

@elbakramer
elbakramer / ZeppelinPlotly.scala
Created August 24, 2017 17:07
apache zeppelin plotly integration
import org.json4s._
import org.json4s.JsonDSL._
import org.json4s.jackson.JsonMethods._
object Plotly {
val scriptUrl: String = "https://cdn.plot.ly/plotly-latest.min.js"
val stylePolyfill: String = """
|.plotly .modebar-btn {
| display: inline-block;
|}
@elbakramer
elbakramer / jsonrpc.sh
Last active March 4, 2018 09:05
json rpc client in bash script
#!/bin/bash
rpcserver=""
rpcport=""
rpcuser=""
rpcpassword=""
method="help"
paramsjson="[]"
id="$(uuidgen)"
@elbakramer
elbakramer / SuffixTree.scala
Created April 27, 2018 09:58
naive implementation of ukkonen's algorithm
import scala.collection.mutable.HashMap
object SuffixTree {
class State() {
val transitions: HashMap[Char,Transition] = HashMap.empty[Char,Transition]
var suffixLink: Option[State] = None
def printDebugString(prefix: String, label: String): Unit = {
val kvpairs = transitions.toSeq.sortBy(_._1)
@elbakramer
elbakramer / request-backend-test.ts
Created October 2, 2018 06:08
Angular HttpBackend implementation using request library
import { HttpClient } from '@angular/common/http';
import { RequestBackend } from './request-backend';
import * as request from 'request';
let backend = new RequestBackend(request);
let http = new HttpClient(backend);
let response = http.get('https://www.google.com/');
response.subscribe(res => console.log(res));
import org.openqa.selenium.WebDriver
import org.openqa.selenium.remote.RemoteWebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.io.File
@elbakramer
elbakramer / observable-to-async-iterator.ts
Last active December 13, 2018 12:15
Convert Observable to AsyncIterator in Typescript
import { Observable, Observer } from 'rxjs';
import { interval } from 'rxjs';
import { take, tap, map } from 'rxjs/operators';
function observableToAsyncIterator<T>(observable: Observable<T>): AsyncIterator<T> {
const pushes = [];
const pulls = [];
function createPromiseWithExecutor() {
let executor = {
resolve: undefined,
import uuid
import json
class Plotly(object):
@staticmethod
def newPlot(data, layout=None, config=None):
scriptUrl = 'https://cdn.plot.ly/plotly-latest.min.js'
divId = str(uuid.uuid1())
divTag = '<div id="%(divId)s"></div>' % { 'divId': divId }
if not isinstance(data, list):
#include <iostream>
#include <string>
#include <cstring>
#include <sstream>
#include <vector>
#include <map>
#include <mutex>
#include <algorithm>
#include <curl/curl.h>
#include <boost/algorithm/string.hpp>
import scala.collection.mutable.HashMap
import scala.collection.mutable.ArrayBuffer
sealed trait Symbol[C] extends Ordered[Symbol[C]] {
def isTerminal(): Boolean
}
case class CharacterSymbol[C: Ordering](val character: C) extends Symbol[C] {
def isTerminal(): Boolean = false
def compare(that: CharacterSymbol[C]): Int = Ordering[C].compare(this.character, that.character)
import sys
import pygame
from enum import IntEnum
pygame.init()
size = width, height = 1000, 1000
black = (0, 0, 0)