Skip to content

Instantly share code, notes, and snippets.

View asselstine's full-sized avatar

Brendan Asselstine asselstine

View GitHub Profile
#!/bin/bash
VOL_ID=$1
DESCRIPTION=$2
MAX_BACKUPS=$3
ERROR_EMAIL=test@developer.com
LOG_FILE=~/aws_vol_backup.log
function log {
When you have a bunch of poorly written Rails migrations that include data migrations, sometimes it is impossible to update very old databases because the migrations required old versions of the code.
How to get around this?
Use git-bisect.
@asselstine
asselstine / rbenv.yml
Created November 28, 2013 22:42
Ansible script to install rbenv. Intended for CentOS images.
---
# file ruby.yml
- hosts: all
gather_facts: false
sudo: true
vars:
# Where to install rbenv
- rbenv_root: /usr/local/rbenv
# The version of Ruby to install
@asselstine
asselstine / watch-truffle-tests.sh
Created February 6, 2018 22:46
Uses Facebook's Watchman to trigger `truffle test` when contracts or tests change.
#! /bin/sh
watchman-make -p 'contracts/**' 'test/**' --make=truffle -t test
@asselstine
asselstine / truffle.js
Last active February 6, 2018 22:50
Truffle configuration example that shows how to import ES6 style modules.
require('babel-register') // should already exist in Truffle webpack box
require('babel-polyfill') // added to appease zeppelin-solidity
require('babel-node-modules')([ // added so that we can include zeppelin-solidity test JS
'zeppelin-solidity' // module that has ES6 style files I wish to include
])
module.exports = {
networks: {
development: {
host: '127.0.0.1',
@asselstine
asselstine / 3.json
Created April 11, 2018 22:02
Example network config
{
"migrationVersion": 1521830456,
"contracts": [
{
"contractName": "CryptoDoggies",
"address": "0xc7f2f998c937eec6c8a0a64e3ab8d1f089bf2e86"
}
]
}
@asselstine
asselstine / Export AWS profile
Created June 12, 2018 16:24
Bash function to easily export your AWS credentials
export_aws_profile() {
profile=$1
profile=${profile:-default}
echo "Exporting AWS profile $profile..."
export AWS_ACCESS_KEY_ID=`aws configure get aws_access_key_id --profile ${profile}`
export AWS_SECRET_ACCESS_KEY=`aws configure get aws_secret_access_key --profile ${profile}`
}
@asselstine
asselstine / gist:e6abd9c192228fab30f2e45b790f78f0
Created September 6, 2018 22:46
Some snippets showing the case challenging code for arbitration
contract ChallengeManager is Ownable, Initializable {
using RegistryLookup for Registry;
Registry registry;
event ChallengeDoctorSet(address indexed _case, address indexed _patient, address indexed _challengingDoctor, bytes doctorEncryptedKey);
event ChallengingDoctorCleared(address indexed _case, address indexed _patient, address indexed _diagnosingDoctor);
event CaseChallenged(address indexed _case, address indexed _patient, address indexed _challengingDoctor);
event ChallengedCaseClosed(address indexed _case, address indexed _patient, address indexed _diagnosingDoctor, address _challengingDoctor);
@asselstine
asselstine / example.js
Created September 6, 2018 22:52
An example of using MedCredits IPFS-backed encrypted HIPAA-compliant storage
import { ipfsStorage } from 'medcredits'
async function getCaseDetails (ipfsHash, encryptionKey) {
const detailsJson = await ipfsStorage.downloadJson(ipfsHash, encryptionKey)
const details = JSON.parse(detailsJson)
const [firstImageDataUrl, secondImageDataUrl] = await Promise.all([
ipfsStorage.downloadImage(details.firstImageHash, props.caseKey),
ipfsStorage.downloadImage(details.secondImageHash, props.caseKey)
])
return {
@asselstine
asselstine / HoneyPot.sol
Created September 12, 2018 02:46
HoneyPot Contract
pragma solidity ^0.4.8;
contract HoneyPot {
mapping (address => uint) public balances;
function HoneyPot() payable {
put();
}
function put() payable {
balances[msg.sender] = msg.value;
}
function get() {