View 2018-03 Code Block London.md

footer: 2018-03-24 - Code Block London - sjors@sprovoost.nl - @provoost on Twitter slidenumbers: true autoscale: false

Bitcoin's Moving Parts

  • Coins
  • Digital signatures
View fetch_and_sign.sh
#!/bin/sh
SIGNED_BINARIES=0
while getopts ":n:v:s" opt; do
case $opt in
n)
NAME=$OPTARG
;;
v)
VERSION=$OPTARG
View steps.md

Create payment request using their demo site. Obtain URL from QR code, e.g. on OSX using QR Journal.

View Bitcoin EC2 Performance test.md

EC2 settings

  • Instance type: t2.xlarge
  • vCPUs: 4
  • Memory (GiB): 16
  • General Purpose SSD (GP2): 200 GB
  • Ubuntu
  • Running in eu-central-1b (Frankfurt)

Hint: to make your life easier and allow login with a simple ssh btc-0.14, edit ~/.ssh/config:

View Makefile
resolutions := 58 76 80 120 152
all_FILES := $(foreach resolution, $(resolutions), icon-$(resolution).png)
all: $(all_FILES)
icon-%.png: icon-itunes-connect-1024.png
convert $< -resize $*x$* $@
icon-itunes-connect-1024.png: icon.svg
View bitcoin-pay.rb
#!/usr/bin/env ruby
require 'open-uri'
require 'JSON'
require 'digest/sha2'
require 'pry'
require 'bigdecimal'
require 'bitcoin' # Because I need to cheat every now and then
# Usage:
# gem install pry json ffi ruby-bitcoin
View gist:5356176
// Observe and notify user if app has moved:
[[NSNotificationCenter defaultCenter] addObserverForName:@"AppHasMoved"
object:nil
queue:NSOperationQueuePriorityNormal
usingBlock:^(NSNotification *note) {
// Check if we've already told the user recently
NSDate *appHasMoved = [[NSUserDefaults standardUserDefaults] valueForKey:@"AlertAppHasMoved"];
int interval = 7*24*60*60;
if (appHasMoved == nil ||
[appHasMoved compare:[[NSDate date] dateByAddingTimeInterval:-interval]] == NSOrderedAscending) {
View gist:5356100
NSNumber* appHasMoved = [JSON objectForKey:@"app_has_moved"];
if(appHasMoved != nil && [appHasMoved boolValue]) {
// Notify the user that the app has moved.
[[NSNotificationCenter defaultCenter] postNotificationName:@"AppHasMoved"
object:self
userInfo:@{
@"new_app_location" : [JSON objectForKey:@"new_app_location"],
@"app_has_moved_message" : [JSON objectForKey:@"app_has_moved_message"],
@"app_has_moved_title" : [JSON objectForKey:@"app_has_moved_title"]
}
View gist:5356032
{
'app_has_moved' : true,
'new_app_location' : "https://itunes.apple.com/nl/app/your_new_app/idNEW_APP_ID?mt=8",
'app_has_moved_message' : "In order to stay current, please re-download the app from this location. Apologies for the inconvenience."
}