Skip to content

Instantly share code, notes, and snippets.

@icook
icook / example.ipynb
Last active March 23, 2022 23:27
A little class (and python notebook) to calculate and plot the concentration and buildup of Vyvanse in your body over time.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@icook
icook / bootstrap.sh
Last active February 8, 2022 18:44
New Install
#!/bin/bash
sudo apt-get install scdaemon gnupg2 git wget -y
wget https://ibcook.com/pubkey-A92C2C.gpg
gpg --import pubkey-A92C2C.gpg
# Use gpg as the ssh-agent
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
git clone git@github.com:icook/dotfiles.git .dotfiles
@icook
icook / cruz_cli.py
Created September 10, 2019 20:01
A simple click based CLI for cruzbit
# pip3 install --user click websocket_client
import json
import binascii
import hashlib
import sys
import pprint
import logging
import ssl
import websocket
@icook
icook / test-node.js
Created April 24, 2019 00:06
Working node.js example for the qTrade API
var crypto = require('crypto');
var https = require('https');
var keyID = 170;
var secret = '';
var timestamp = Math.floor(Date.now() / 1000);
var hash, hmac;
var opt = {
host: 'api.qtrade.io',
path: '/v1/user/me',
@icook
icook / sochain_websocket.py
Last active January 24, 2019 19:48
SoChain python example
"""
A simple demo for using https://chain.so/api#realtime-balance-updates with Python.
Install my fork of pusherclient with:
pip install git+https://github.com/icook/PythonPusherClient.git
"""
import pusherclient
import time
import json
import pprint

Keybase proof

I hereby claim:

  • I am icook on github.
  • I am bitbumper (https://keybase.io/bitbumper) on keybase.
  • I have a public key ASCa52x3v5d6xMXv3nxmVAj6LLz_C5yYV3aX4uW0YsWltAo

To claim this, I am signing this object:

@icook
icook / notes.md
Last active October 23, 2018 18:10
Bismuth Notes

These are just general thoughts I've had as I read through Bismuth, get familiar etc.

  1. WIP code not intended for production use should be developed on its own branch as to not polute the codebase.
  2. Old deprected no longer used code should be removed. It's always in the git history if you need it in the future.
  3. Scripts should probably be in their own subfolder, with a clear opening comment about their intended use case
  4. Ideally the core would be made into actual installable module (w/ setup.py), and dice, explorer etc setup as co-modules (ie, bismuth.explorer, bismuth.core). This could still be done in the same repo. This would be very helpful for integrators since right now it's difficult to import for instance keys.py methods to use in my own scripts unless I put my code in the root directory as well.
  5. There shouldn't be potentially executable code (.py) in static/ folder. Not a big deal.
  6. All node persistence data should be stored in a dedicated folder making it easy to purge (reset)
@icook
icook / coinbase-scrape.py
Last active October 21, 2018 09:12
Makes repeated requests to Coinbase's historical candle data. Adjust granularity if desired.
import requests
import pprint
import time
import csv
from datetime import datetime
from dateutil.relativedelta import relativedelta
entries = []
granularity = 900
chunk_size = relativedelta(seconds=granularity * 300)

qTrade Original Development Guidelines

Software Integration

An exchange has several specific needs that are different than that of a regular end user or businesses looking to accept crypto as payment. We'll attempt to clearly outline our technical needs, offering guidance on how to make integration with our exchange easier.

Unsigned transactions

Our exchange requires strong isolation between network connected p2p software (such as bitcoin core), and "signing software" that holds private keys. In practice this means we have two pieces of software: one that creates raw transactions and transmits signed transactions to the network, and another that only signs transactions.

This is a brief account of my experience reporting a critical bug in Amoveo on 7/8/2018.

Background

My name is Isaac Cook and I've been a developer in the cryptocurrency space since 2014. I've been developing web applications since 2003. I co-authored the open source SimpleCoin mining pool software and ran an auto-exchanging multi-pool for a few years, and then more recently designed/built/operate https://qtrade.io, a new exchange platform. I have a degree in Computer