Skip to content

Instantly share code, notes, and snippets.

from __future__ import annotations
import ast as pyast
import contextlib
import dataclasses
import typing
from collections import ChainMap
from typing import ClassVar
import sys
import pygame
from enum import IntEnum
pygame.init()
size = width, height = 1000, 1000
black = (0, 0, 0)
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)
#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 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):
@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 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 / 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));
@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)