Skip to content

Instantly share code, notes, and snippets.

def zookeeper: Future[Map[String, String]] = async {
val writeback = ZooKeeper.WritebackPathPrefix.split("/").filterNot(_.isEmpty).toSeq
def join(l: Seq[String]) = l.mkString("/")
def nodes(parent: Seq[String], node: String): Seq[Seq[String]] = {
(parent :+ node) match {
case `writeback` => Seq()
case path => path +: ZooKeeper.getChildren(join(path)).flatMap(node => nodes(path, node))
}
}
nodes(Seq(), services.ZooKeeperService.BasePath.stripPrefix("/"))
@arkadijs
arkadijs / docker.service
Last active August 29, 2015 14:10
Docker with Flannel overlay network
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
After=docker.socket
Requires=docker.socket
Requires=flannel.service
After=flannel.service
[Service]
Environment="TMPDIR=/var/tmp/"
@arkadijs
arkadijs / .gitignore
Last active August 29, 2015 14:11
Workshop: Automated deployment with Fabric http://ldn.lv/events/202676852
*.pyc
@arkadijs
arkadijs / dv2v4l2.md
Last active August 29, 2015 14:15
HDV FireWire camcoder for Google Hangouts / V4L2 / WebRTC

HDV FireWire camcoder for Google Hangouts / V4L2 / WebRTC

Core i7 class CPU recommended.

On Ubuntu Linux 14.04, install v4l2loopback driver from repository:

apt-get install -y v4l2loopback-dkms v4l2loopback-utils

..or from latest sources:

@arkadijs
arkadijs / shmdump.c
Created February 24, 2015 07:29
Dump SYSV shared memory segment to stdout
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <sys/shm.h>
int main(int argc, char**argv)
{
void *shm;
@arkadijs
arkadijs / fabfile.py
Last active August 29, 2015 14:16
Fabric full cycle Groovy app deployment with process restart, pid file, apt, cron, tmux, credentials templating, groovy install.
import os
from fabric.api import *
from fabric.operations import run, sudo, get, put
from fabtools import require
from time import sleep
from ConfigParser import RawConfigParser
from StringIO import StringIO
# if passwordless sudo is required, please add
# /etc/sudoers.d/01-cloudf
@arkadijs
arkadijs / _README.md
Last active October 16, 2018 19:02
Registrator / SkyDNS for CoreOS / Deis cluster

Registrator and SkyDNS

We use progrium/registrator and yaronr/skydns (SkyDNS2) to publish information about Docker containers to DNS via A and SRV records. All nodes runs skydns and registrator, and first three nodes are inserted as NS-s into Route53 DNS for services.cluster-name.domain.io. Note, v4 registrator must be used until registrator/124 is resolved.

$ host -t srv mysql-1.services.deis.r53.acp.io deis-6-1.eu.r53.acp.io
Using domain server:
Name: deis-6-1.eu.r53.acp.io
Address: 54.171.239.227#53
Aliases: 
@arkadijs
arkadijs / stack.txt
Created March 19, 2015 16:59
export RUST_BACKTRACE=1
thread '<main>' panicked at 'index out of bounds: the len is 1339 but the index is 1339', /build/buildd/rust-nightly-201503180407~1ae32de~trusty/src/libcollections/vec.rs:1336
stack backtrace:
1: 0x7feb92fed9d4 - sys::backtrace::write::h781dfe74347a79cb10C
2: 0x7feb92ff15df - panicking::on_panic::hafa4f854a38dccfathJ
3: 0x7feb92fe248a - rt::unwind::begin_unwind_inner::hea0351e9a595ba7f2XI
4: 0x7feb92fe2b41 - rt::unwind::begin_unwind_fmt::he1aaa061d26e63b9DWI
5: 0x7feb92ff0fc7 - rust_begin_unwind
6: 0x7feb9301cb94 - panicking::panic_fmt::h6d00c31e190682d1Tku
7: 0x7feb9301defc - panicking::panic_bounds_check::hf4aded192863f504Zju
8: 0x7feb92f07536 - vec::Vec<T>.Index<usize>::index::h1583112471073907091
@arkadijs
arkadijs / instagram.groovy
Last active August 29, 2015 14:18
Instagram real-time Tags and Geographies subscription via Groovy and Ratpack https://instagram.com/developer/realtime/
@Grapes([
@Grab('org.codehaus.gpars:gpars:1.2.1'),
@Grab('com.github.groovy-wslite:groovy-wslite:1.1.0'),
@Grab('io.ratpack:ratpack-groovy:0.9.15'),
//@Grab('io.ratpack:ratpack-jackson:0.9.15'),
@Grab('org.slf4j:slf4j-simple:1.7.12')])
import static groovyx.gpars.actor.Actors.actor
import static ratpack.groovy.Groovy.ratpack
import ratpack.http.client.HttpClient
@arkadijs
arkadijs / instagram.groovy
Last active August 29, 2015 14:18
Instagram Tags media feed based on Observable / ReactiveX in Scala, Groovy, and Java. https://bitbucket.org/arkadi/instarx
@Grapes([
@Grab('io.reactivex:rxgroovy:1.0.0'),
@Grab('org.codehaus.gpars:gpars:1.2.1'),
@Grab('com.github.groovy-wslite:groovy-wslite:1.1.0')])
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString
import rx.Observable
import rx.Subscriber
import rx.schedulers.Schedulers