Skip to content

Instantly share code, notes, and snippets.

Charles Cooper charles-cooper

Block or report user

Report or block charles-cooper

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@charles-cooper
charles-cooper / foo.ir
Last active Apr 6, 2019
Use solidity's assembler for fun and profit
View foo.ir
$ cat foo.ir
IR:
/*******************************************************
* WARNING *
* Solidity to Yul compilation is still EXPERIMENTAL *
* It can result in LOSS OF FUNDS or worse *
* !USE AT YOUR OWN RISK! *
*******************************************************/
View diligence_labeled.asm
# https://ethstats.io/account/0x68cb858247ef5c4a0d0cde9d6f68dce93e49c02a
PUSH1 0x80
PUSH1 0x40
MSTORE
PUSH1 0x04
CALLDATASIZE
LT
PUSH2 0x005c
JUMPI
PUSH1 0x00
@charles-cooper
charles-cooper / reorg_listener.py
Last active Feb 7, 2019
web3 client which handles reorgs and does not require node filter state
View reorg_listener.py
#!/usr/bin/env python
import asyncio, json, sys, os
import pickle
import websockets
import datetime
import time
import web3
from web3 import Web3
@charles-cooper
charles-cooper / abi.json
Last active Dec 7, 2018
Return nested structs
View abi.json
[
{
"name": "returnB",
"outputs": {
"type": "tuple",
"name": "out",
"components": [
{
"type": "bytes",
"name": "b3"
@charles-cooper
charles-cooper / sample.sql
Last active Jul 13, 2017
SQL style guide
View sample.sql
WITH y AS ( -- WITH is not indented
SELECT -- subquery on its own line and indented one level
*
FROM schema2.table2
) -- closing paren flush with WITH
SELECT -- keywords in caps
z.*,
x.id, -- columns indented, on separate lines
y.foo, -- prefixed with the table name alias if there is a join
View keybase.md

Keybase proof

I hereby claim:

  • I am charles-cooper on github.
  • I am charlescooper (https://keybase.io/charlescooper) on keybase.
  • I have a public key ASBc3MIg-ZmRXFd8_NXIsH6FfxvXAzpf8lEZLwVBNnf3mgo

To claim this, I am signing this object:

@charles-cooper
charles-cooper / filtered_query.plan
Last active Jul 15, 2016
Row based access query plans
View filtered_query.plan
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nested Loop (cost
@charles-cooper
charles-cooper / shutdown_idle.sh
Created Jun 30, 2016
Cron job to shut down an idle computer
View shutdown_idle.sh
#!/bin/sh
# This script, intended to be run as a cron job, checks if there are any logins or recent logins and shuts down if there are none. It is not intended to be portable and was written on a Ubuntu 16.04 machine.
last_login_time=$(grep "systemd-logind" /var/log/auth.log | perl -pe "s/ ip.*//" | tail -1 | date --file=/dev/stdin +%s)
if [ $(($cur_time - $last_login_time)) -ge 3600 ] && [ $(who | wc -l) -eq 0 ]
then
init 0
else
@charles-cooper
charles-cooper / .profile
Created Jun 10, 2016
Default .profile for ubuntu
View .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
@charles-cooper
charles-cooper / Main.hs
Last active Jul 6, 2016
waitForProcess bug
View Main.hs
module Main where
import System.Process
import Control.Concurrent
main :: IO ()
main = do
(_, _, _, p) <- createProcess ((shell "sleep 1") { create_group = True })
forkIO $ waitForProcess p >>= print
threadDelay 10
You can’t perform that action at this time.