Skip to content

Instantly share code, notes, and snippets.


Simon Massey simbo1905

View GitHub Profile

Mixing two frameworks will typically require that you are an expert in both to be successful. This is because making them interact will add an additional level of complexity of having to interopate between the two frameworks. That often requires detailed knowledge of the internal workings of the frameworks that you would normally just "take for granted" such as session management and caching.

The point of using a framework is that it provides out-of-the-box "known good practice" in many low-level details so you can focus on your "business logic" not the "basic plumbing". The moment you "go against the framework" and try to do complex things like "make two frameworks coexist" you are basically throwing away the main benefit of using any framework. In short, using two is likely not better than using one. It is like to be more of a case that using two will be "three times the work".

While the actual result will depend on lots of factors I would expect that you would be better off if you picked the worst fra

simbo1905 /
Created Dec 27, 2019
script to compare local openshfit registry tags against upstream redhat image catalogue at
set -Eeuo pipefail
oc() {
if ! bin/ "$@"; then
>&2 echo "ERROR oc wrapper returned none zero status"
simbo1905 / nom_audit.log
Created Dec 24, 2019
output of `npm audit` on botkit-starter-slack as at 2019-12-24
View nom_audit.log
This file has been truncated, but you can view the full file.
  === npm audit security report ===  
# Run npm install express-hbs@2.3.0 to resolve 6 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
│ Critical │ Prototype Pollution │
│ Package │ handlebars │
simbo1905 /
Last active Nov 5, 2019
out of order processing of a Flux of input using Reactor 0.9.1.RELEASE
import reactor.core.publisher.Mono;
public class BlockingJournal {
private static String blockingWrite(String in){
try {
// fakes blocking for disk write
System.out.println("journal wrote: "+in+" on "+Thread.currentThread().getName());
simbo1905 /
Created Nov 3, 2019
how to write an echo server with reactor-netty 0.9.1.RELEASE
package demo;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.util.CharsetUtil;
import reactor.netty.DisposableServer;
import reactor.netty.tcp.TcpServer;
public class TrexTcpServer {
simbo1905 / helmfile.yaml
Last active Sep 3, 2019
View helmfile.yaml
- name: ocd-meta
- name: {{ requiredEnv "ENV_PREFIX" }}-realworld
builder: realworld
chart: ocd-meta/ocd-builder
version: "1.0.0"
simbo1905 /
Created Sep 2, 2019
use an initContainer to write configuration into an empty ephemeral folder
cat | oc create -f - <<EOF
apiVersion: v1
kind: Pod
name: my-app
- name: realworld
simbo1905 /
Created Sep 2, 2019
write out a config file to a PVCs wihin an initContainer
cat | oc create -f - <<EOF
apiVersion: "v1"
kind: "PersistentVolumeClaim"
name: "config-data-claim"
- "ReadWriteMany"
simbo1905 /
Created Apr 27, 2019
debug git-secret using bashdb and visual studio code

How To

Install bashdb which you can do from source or get from a package manager. On MacOS you can brew install bashdb.

Install Visual Studio Code and the Bash Debug plugin from the marketplace. See this blog article yet I didn't have to do any upgrades of build from source things worked pretty much out of the box after installing bashdb via Homebrew.

Use the script in this gist as the entrypoint to be able to step through code.

simbo1905 /
Created Apr 22, 2019
installl helmfile on macOS
# Helmfile on MacOS
brew install helm
helm plugin install
helm plugin install
brew install helmfile
brew install gnu-getopt
You can’t perform that action at this time.