Skip to content

Instantly share code, notes, and snippets.

View darrenclark's full-sized avatar

Darren Clark darrenclark

View GitHub Profile
@darrenclark
darrenclark / bugsnag_logger_backend.ex
Created September 1, 2022 17:34
BugsnagLoggerBackend
defmodule BugsnagLoggerBackend do
@behaviour :gen_event
@impl true
def init(__MODULE__) do
{:ok, %{}}
end
@impl true
def handle_call({:configure, _options}, state) do
@darrenclark
darrenclark / progress-bar.sh
Created November 25, 2011 05:02
Shell Progress Bar
# After wondering how commands like curl showed a progress bar, with the very big help of
# Google, I decided to write a shell script to show a progress bar
#
# Having not done much shell scripting, I learned a few (very likely quite obvious) things:
# * It looks much nicer to create the string to echo in a variable, then echo it. If I echo'ed
# each part of the string instead of concatenating it with the rest of the string, the cursor
# jumped around quite a bit.
# * 'let x=x+1' is a lot faster than 'x=`expr $x + 1`' (I have a feeling this is probably because
# let is implemented directly in bash, instead of a separate command)
#/usr/bin/env bash
echo $(( ($(date -j -f "%d %B %Y" "$(cal -N -e)" +%s) - $(date +%s)) / (24 * 60 * 60) )) days until the Easter bunny comes
@darrenclark
darrenclark / snippet.java
Created November 9, 2021 14:33
Java Byte Buffers
import java.nio.ByteBuffer;
// is a byte[] under the hood
ByteBuffer buffer1 = ByteBuffer.allocate(12);
// is a block of bytes (similar to malloc)
ByteBuffer buffer2 = ByteBuffer.allocateDirect(12);
// buffers have a "position" that is advanced by read/write operations
buffer1.put((byte)1).put((byte)2).put((byte)3).put((byte)4);
@darrenclark
darrenclark / job.yaml
Created November 15, 2020 15:25
kubectl --as example
apiVersion: batch/v1
kind: Job
metadata:
generateName: echo-job-
spec:
template:
spec:
containers:
- name: echo
image: alpine:latest
import UIKit
import PlaygroundSupport
extension NSNotification.Name {
static let todoListItemUpdated = NSNotification.Name("TodoListItemUpdated")
}
class TodoList {
static let shared = TodoList()
import UIKit
import PlaygroundSupport
extension NSNotification.Name {
static let todoListItemUpdated = NSNotification.Name("TodoListItemUpdated")
}
class TodoList {
static let shared = TodoList()
@darrenclark
darrenclark / swift-default-init.sh
Last active September 2, 2016 20:28
Generate default swift initializer from properties
#!/bin/bash
# Usage:
# 1. Copy your properties to clipboard
# 2. `pbpaste | swift-default-init.sh | pbcopy`
# 3. Paste into code
set -eu -o pipefail
# Switch to \t for tab indenting
@darrenclark
darrenclark / git-brc
Last active September 2, 2016 15:27
Git BRanchClean - Remove local branches that have been merged
#!/bin/bash
set -eu -o pipefail
## Git BRanchClean (removes local branches that have been merged into the current branch)
# List of branches to ignore separated by vertical bars/pipes (|)
IGNORED_BRANCHES="develop|master"
branches="$(git branch --no-column --no-color --merged | egrep -v '\* ' | sed 's/^[\* ] //' | (egrep -v "$IGNORED_BRANCHES" || true))"
@darrenclark
darrenclark / README.md
Last active June 20, 2016 16:21
genstrings for your clipboard

(Swift only)

Easily add entries to Localizable.strings file by copy/pasting code with new NSLocalizedStrings

Usage:

  1. Copy your code containing NSLocalizedString(_:comment:) function calls

  2. Pipe it through the pbgenstrings.sh script: