Skip to content

Instantly share code, notes, and snippets.

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package what.ever.floats.your.boat;
public class TestLinkedList extends what.ever.floats.your.boat.BaseTestList<java.util.LinkedList<Integer> >
{
private final static org.apache.log4j.Logger CLASS_LOGGER = org.apache.log4j.Logger.getLogger(TestLinkedList.class);
@elbosso
elbosso / RandomBigInteger.java
Created January 12, 2020 17:02
Generator for arbitrarily large integral numbers
/*
* Copyright (c) 2020.
*
* Juergen Key. Alle Rechte vorbehalten.
*
* Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter Form,
* mit oder ohne Veraenderung, sind unter den folgenden Bedingungen zulaessig:
*
* 1. Weiterverbreitete nichtkompilierte Exemplare muessen das obige Copyright,
* die Liste der Bedingungen und den folgenden Haftungsausschluss im Quelltext
@elbosso
elbosso / detectcontainer.sh
Last active August 18, 2019 06:44
this is a function to detect wether we run inside some virtual environment (lxc, docker,...)
#!/bin/bash
# shellcheck disable=SC2181,SC2002
#https://lists.linuxcontainers.org/pipermail/lxc-users/2013-December/005998.html
#https://stackoverflow.com/questions/20010199/how-to-determine-if-a-process-runs-inside-lxc-docker
if [[ "$EUID" -eq 0 ]]
then
container=$(cat /proc/1/environ | tr '\0' '\n' | grep ^container=|cut -d '=' -f 2)
if [ "$?" -ne 0 ]
then
@elbosso
elbosso / bootstrap_gui_container.sh
Last active August 18, 2019 06:39
A script to bootstrap a (LXC) gui container
#!/bin/bash
source config_bootstrap_gui_container.sh
# the file config_bootstrap_gui_container.sh should reside in the directory this script is in
# it should contain the statements for setting the following environment variables:
# CONTAINER_NAME=<container name for new container to be created>
# CONTAINER_USER=<user name for main user inside the new container - has sudoer rights!
# CONTAINER_NAMESERVER=<name server address - just leave it out if you dont need a custom one - but remember to also remove the customization of /etc/resolv.conf further down...>
# or you could just uncomment the above lines and adjust them to your liking and comment out the source statement
lxc-create -t download -n "$CONTAINER_NAME" -- -d ubuntu -r bionic -a amd64
# joe .local/share/lxc/"$CONTAINER_NAME"/config
@elbosso
elbosso / openIssuesByComponent.sh
Last active August 18, 2019 06:37
Shell script for using with telegraf exec input - writing number of open gitlab issues per label
#!/bin/bash
#https://stackoverflow.com/questions/296536/how-to-urlencode-data-for-curl-command
rawurlencode() {
local string="${1}"
local strlen=${#string}
local encoded=""
local pos c o
for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
@elbosso
elbosso / gitlab_issues_intervals.py
Created January 12, 2019 11:34
This is another take on dynamic badges in gitlab - this time it shows ways of counting issues for specific time intervals (see also https://gist.github.com/elbosso/6637702612991bb454d205d936dd04dc and https://gist.github.com/elbosso/cbce113805735478e926c28a9079cede)
from anybadge import Badge
from urlparse import parse_qs
import datetime
import gitlab
def index(req):
#change the next two lines to accomodate your installation
url='http://<gitlab.host>'
token='xxxx-xxxx-xxxxxxxxxx'
args=req.args
@elbosso
elbosso / gitlab_issues_request.py
Created January 6, 2019 07:54
This is another followup to the Gist https://gist.github.com/elbosso/4f3bb0fb95dd1dc499cd46db422900bf (the other one can be found here https://gist.github.com/elbosso/e160341d5e00e0a726ff8725af560373): We do want the operation count(items in gitlab) to execute in constant time independently from the actual number of items - we do not want to spa…
from anybadge import Badge
from urlparse import parse_qs
import requests
def index(req):
args=req.args
lbl='n/a'
action='closedissues'
projid=None
if args != None:
@elbosso
elbosso / gitlab_issues_curl.py
Created January 6, 2019 07:27
This is a followup to the Gist https://gist.github.com/elbosso/4f3bb0fb95dd1dc499cd46db422900bf - gitlab-python does not expose the header X:Total when listing items - so the response of this is noticeably slow from about 100 items upward. The shell approach demonstrated here works in constant time - regardless of the number of items queried
from anybadge import Badge
from urlparse import parse_qs
from subprocess import Popen,PIPE,STDOUT,call
def index(req):
args=req.args
lbl='n/a'
action='closedissues'
projid=None
if args != None:
@elbosso
elbosso / gitlab_issues.py
Created January 5, 2019 13:32
This is an inspiration concerning truly dynamic gitlab badges - install it onto an apache2 webserver with mod python and enjoy badges telling how many issues are open/closed right now - accurate with every reload of the page!
from anybadge import Badge
import gitlab
from urlparse import parse_qs
def index(req):
#change the next two lines to accomodate your installation
url='http://myhost'
token='xxxx-xxxx-xxxxxxxxxx'
args=req.args
lbl='n/a'
/*
Juergen Key. Alle Rechte vorbehalten.
Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter Form,
mit oder ohne Veraenderung, sind unter den folgenden Bedingungen zulaessig:
1. Weiterverbreitete nichtkompilierte Exemplare muessen das obige Copyright,
die Liste der Bedingungen und den folgenden Haftungsausschluss im Quelltext
enthalten.
2. Weiterverbreitete kompilierte Exemplare muessen das obige Copyright,