Skip to content

Instantly share code, notes, and snippets.

View ethankhall's full-sized avatar

Ethan Hall ethankhall

  • Gusto
  • Seattle, WA
View GitHub Profile
@ethankhall
ethankhall / Dockerfile
Last active June 4, 2023 09:43
Sorbet Linux-ARM build
# syntax=docker/dockerfile:1.4
FROM gusto/ruby:2.7.6-ubuntu20.04 as build
ARG GIT_TAG=0.5.10458.20220926130158-4007ec60a
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN <<END_OF_RUN
set -ex
apt-get update
apt-get install -y software-properties-common
@ethankhall
ethankhall / HalfCircleListView.java
Last active November 8, 2021 02:17
Half Circle List View
import android.widget.ListView;
import android.widget.AbsListView;
import android.content.Context;
public class HalfCircleListView extends ListView implements AbsListView.OnScrollListener {
public HalfCircleListView(Context context) {
super(context);
setOnScrollListener(this);
}
@ethankhall
ethankhall / ivyConverter.groovy
Created November 8, 2013 13:08
Ivy to Gradle dependency converter
println("dependencies {")
def ivyModule = new XmlParser().parse(new File('ivy.xml'))
ivyModule.dependencies.dependency.each {
def scope = it.@conf?.contains("test") ? "testCompile" : "compile"
println("\t$scope '${it.@org}:${it.@name}:${it.@rev}'")
}
println("}")
@ethankhall
ethankhall / Vagrantfile
Last active March 1, 2018 17:46
Artifactory Vagrant VM
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "boxcutter/centos71"
config.vm.network "private_network", ip: "10.1.1.123"
config.vm.provision "shell", inline: "sudo yum install -y https://bintray.com/artifact/download/jfrog/artifactory-rpms/artifactory-3.6.0.rpm"
config.vm.provision "shell", inline: "sudo yum install -y java"
config.vm.provision "shell", inline: "sudo systemctl start artifactory"
@ethankhall
ethankhall / zsh.yaml
Created January 2, 2018 00:51
cfg-management
- template:
src: zshrc
dest: "$HOME/.zshrc"
- command:
exec: git clone --recursive https://github.com/ethankhall/prezto.git $HOME/.zprezto
- command:
exec: ln -s $HOME/.zprezto/runcoms/@it@ $HOME/.@it@
items:
@ethankhall
ethankhall / NomadTestMain.kt
Created September 19, 2017 17:19
Nomad Test Main
import com.hashicorp.nomad.apimodel.EphemeralDisk
import com.hashicorp.nomad.apimodel.Job
import com.hashicorp.nomad.apimodel.Resources
import com.hashicorp.nomad.apimodel.RestartPolicy
import com.hashicorp.nomad.apimodel.Task
import com.hashicorp.nomad.apimodel.TaskGroup
import com.hashicorp.nomad.javasdk.NomadApiClient
import com.hashicorp.nomad.javasdk.NomadApiConfiguration
import org.apache.commons.lang.RandomStringUtils
import org.slf4j.Logger
@ethankhall
ethankhall / MyView.java
Created May 4, 2013 21:35
Half Circle List View
package io.ehdev.android.example.wheel.layout;
import android.content.Context;
import android.graphics.Canvas;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class MyView extends TextView {
private static final int MAX_INDENT = 300;
configurations {
groovy
}
dependencies {
groovy localGroovy()
}
project.tasks.create("generateExample", JavaExec) { task ->
def inputFile = file("input.groovy")
@ethankhall
ethankhall / upload.sh
Created August 16, 2016 21:48
Upload pypi to bintray
NAME=$1
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
REPO=""
USERNAME=""
KEY=""
echo "Uploading $1 to bintray"
if jfrog bt package-show $USERNAME/$USERNAME/$NAME > /dev/null; then
echo "Package already exists, not creating"
@ethankhall
ethankhall / tree
Created August 11, 2016 22:50
{py}gradle Directory Structure
$ tree
├── build.gradle
├── gradlew
├── foo
│ ├── build.gradle
│ ├── setup.cfg
│ ├── setup.py
│ ├── src
│ │ └── foo