Skip to content

Instantly share code, notes, and snippets.

View geokal's full-sized avatar

Giorgos Kal geokal

  • Fogus Innovetions & Services
  • Athens, Greece
View GitHub Profile

What do Etcd, Consul, and Zookeeper do?

  • Service Registration:
    • Host, port number, and sometimes authentication credentials, protocols, versions numbers, and/or environment details.
  • Service Discovery:
    • Ability for client application to query the central registry to learn of service location.
  • Consistent and durable general-purpose K/V store across distributed system.
    • Some solutions support this better than others.
    • Based on Paxos or some derivative (i.e. Raft) algorithm to quickly converge to a consistent state.
  • Centralized locking can be based on this K/V store.
@geokal
geokal / go-stdlib-interface-selected.md
Created September 17, 2023 20:04 — forked from asukakenji/go-stdlib-interface-selected.md
Go (Golang) Standard Library Interfaces (Selected)

Go (Golang) Standard Library Interfaces (Selected)

This is not an exhaustive list of all interfaces in Go's standard library. I only list those I think are important. Interfaces defined in frequently used packages (like io, fmt) are included. Interfaces that have significant importance are also included.

All of the following information is based on go version go1.8.3 darwin/amd64.

@geokal
geokal / pdns.conf
Last active August 22, 2023 22:27
PowerDNS configuration file with sqlite backend
webserver=yes
webserver-address=0.0.0.0
webserver-port=8081
webserver-allow-from=0.0.0.0/0
api=yes
api-key=changeme
local-port=5300
launch=gsqlite3
gsqlite3-database=/opt/homebrew/etc/powerdns/pdns.sqlite3
@geokal
geokal / local-registry.md
Created April 27, 2023 10:09 — forked from trisberg/local-registry.md
Using a Local Registry with Minikube

Using a Local Registry with Minikube

Install a local Registry

These instructions include running a local registry accessible from Kubernetes as well as from the host development machine at registry.dev.svc.cluster.local:5000.

  1. Use the docker CLI to run the registry:2 container from Docker, listening on port 5000, and persisting images in the ~/.registry/storage directory.
@geokal
geokal / NuGet.Config.txt
Created October 14, 2021 12:02
add source to nuget config for dotnet to resolve packages
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
check file:
%appdata%\NuGet\NuGet.Config
@geokal
geokal / dockertags.sh
Created September 24, 2021 13:50
dockertags -- list all tags for a Docker image on a remote registry.
#!/bin/bash
if [ $# -lt 1 ]
then
cat << HELP
dockertags -- list all tags for a Docker image on a remote registry.
EXAMPLE:
- list all tags for ubuntu:
### Keybase proof
I hereby claim:
* I am geokal on github.
* I am gakis41 (https://keybase.io/gakis41) on keybase.
* I have a public key ASBh_LNb9l6qu8btC5myIefiAExxD2VGkZ5tDQ09VgK2pQo
To claim this, I am signing this object:

Keybase proof

I hereby claim:

  • I am geokal on github.
  • I am gakis41 (https://keybase.io/gakis41) on keybase.
  • I have a public key ASAZoLIiWLyquZlfXMh5bJHUMibZs2EhCEoywoC4cxR2hgo

To claim this, I am signing this object:

@geokal
geokal / README.md
Created November 24, 2019 17:59 — forked from Lazza/README.md
VPNGate Python script

vpngate.py

This script allows to use the free VPN service provided by VPNGate in an easy way. The user just needs to provide the desidered output country, and the script automatically chooses the best server.

After this step, OpenVPN is launched with the proper configuration. The VPN can be terminated by pressing Ctrl+C.

Usage

Run the script by providing the desired output country:

@geokal
geokal / regexCheatsheet.js
Created April 11, 2019 19:59 — forked from sarthology/regexCheatsheet.js
A regex cheatsheet 👩🏻‍💻 (by Catherine)
let regex;
/* matching a specific string */
regex = /hello/; // looks for the string between the forward slashes (case-sensitive)... matches "hello", "hello123", "123hello123", "123hello"; doesn't match for "hell0", "Hello"
regex = /hello/i; // looks for the string between the forward slashes (case-insensitive)... matches "hello", "HelLo", "123HelLO"
regex = /hello/g; // looks for multiple occurrences of string between the forward slashes...
/* wildcards */
regex = /h.llo/; // the "." matches any one character other than a new line character... matches "hello", "hallo" but not "h\nllo"
regex = /h.*llo/; // the "*" matches any character(s) zero or more times... matches "hello", "heeeeeello", "hllo", "hwarwareallo"