Skip to content

Instantly share code, notes, and snippets.

View relistan's full-sized avatar

Karl Matthias relistan

View GitHub Profile
@relistan
relistan / README.md
Last active March 4, 2024 11:35
Cassandra: Golang-migrate wrapper with keyspace creation

Cassandra Migration With Keyspace Creation

The problem this solves: Golang-migrate supports Cassandra migrations but does not support creating the keyspace itself. This is annoying and leads to having to wrap it with other tooling or scripting to actually use it. Additionally, when running locally, Cassandra or ScyllaDB can take a fair bit of time to start. This tool solves that problem as well. It:

  • Creates keyspaces if they are missing before running the migrations
  • Checks and retries for up to a couple of minutes waiting for Cassandra to be available
@relistan
relistan / download-jar.rb
Created January 18, 2024 18:28
Download Maven JARs from XML snippet
#!/usr/bin/env ruby
# This script accepts a blob of XML on ARGF/stdin like the following, and
# downloads the jar to the current directory.
#
# <dependency>
# <groupId>com.datastax.cassandra</groupId>
# <artifactId>cassandra-driver-core</artifactId>
# <version>3.0.8</version>
# <classifier>shaded</classifier>
@relistan
relistan / README.md
Last active February 17, 2024 17:10
Enable CAT control for WSJT-X on the (tr)uSDX on macOS

CAT Control on the (tr)uSDX for WSJT-X on macOS

This will enable CAT control on your Mac running WSJT-X with the (tr)uSDX and possibly other USDX rigs as well. WSJT-X uses Hamlib to connecto to and manage CAT on different radios. The problem (thanks to Guido PE1NNZ for identifying), is that Hamlib resets the port when it connects. This causes the radio to reset and then it's not yet available when Hamlib tries to connect. We can work around that by blocking the ability for Hamlib to reset the port. The simplest way to do that is to have the port already in use when Hamlib starts up.

I was not able to achieve that using the Hamlib built into WSJT-X. However, by installing Hamlib separately,

@relistan
relistan / connect.rb
Last active February 16, 2022 11:21
Connecting to Cassandra/SSL from JRuby with Datastax driver
def connect(addresses, dc_name)
builder = CqlSession.builder()
.withLocalDatacenter(dc_name)
addresses.each do |a|
(host, port) = a.split(/:/)
port ||= 9042
builder
.addContactPoint(InetSocketAddress.new(host.to_java_string, port.to_i))
.withAuthCredentials('[redacted]', '[redacted]')
@relistan
relistan / env_var.cr
Created September 29, 2019 16:27
Crystal Lang Env Var Mapping
module EnvVar
# Fetch a key from the environment, or set a default if the key
# is missing. If the default is nil, abort and request that the
# required key be set.
def get_env(key : String, default : String?, nilable : Bool) : String?
ENV[key]
rescue KeyError
if default.nil? && !nilable
abort "You must set a value for env var '#{key}'"
else

Keybase proof

I hereby claim:

  • I am relistan on github.
  • I am relistan (https://keybase.io/relistan) on keybase.
  • I have a public key ASAFN-_0eLk8YPjMdYWgLmXs9RxtcSbJmdQLMUXSLcG1fQo

To claim this, I am signing this object:

@relistan
relistan / env_var_provider.ex
Last active December 18, 2018 14:03
Elixir Distillery Env Var Provider
defmodule EnvVar.Provider do
use Mix.Releases.Config.Provider
require Logger
def init(app: app, prefix: prefix, env_map: env_map) do
persist(app, prefix, env_map)
end
# E.g.
@relistan
relistan / Dockerfile
Created December 5, 2017 14:03
Sidecar Envoy Docker container
FROM envoyproxy/envoy:v1.5.0
RUN apt-get update
COPY envoy.yaml /etc/envoy.yaml
ADD run.sh /run.sh
CMD /run.sh
@relistan
relistan / postgres_queries_and_commands.sql
Created November 22, 2016 14:54 — forked from rgreenjr/postgres_queries_and_commands.sql
Useful PostgreSQL Queries and Commands
-- show running queries (pre 9.2)
SELECT procpid, age(query_start, clock_timestamp()), usename, current_query
FROM pg_stat_activity
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
-- show running queries (9.2)
SELECT pid, age(query_start, clock_timestamp()), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
@relistan
relistan / blockingreader.go
Last active September 7, 2021 02:56
block-docker-container
package main
import (
"fmt"
"io"
"os"
"github.com/fsouza/go-dockerclient"
)