Skip to content

Instantly share code, notes, and snippets.

View lukem512's full-sized avatar

Luke lukem512

View GitHub Profile
@lukem512
lukem512 / SvgHOC.js
Created May 12, 2017 08:19
Convert an SVG React component to React Native
/* @flow */
import React from 'react';
import Svg, {
Circle,
Ellipse,
G,
LinearGradient,
RadialGradient,
@lukem512
lukem512 / cryptodistribution.c
Created May 12, 2017 21:56
Computes cryptocurrency distribution
// Tool for working out cryptocurrency distribution rates
// Luke Mitchell, 2014
#include "stdlib.h"
#include "stdio.h"
int main (int argc, char** argv) {
printf ("Cryptodistribution tool\n");
printf ("=======================\n\n");
@lukem512
lukem512 / btcbal.py
Created May 12, 2017 21:57
Retrieve Bitcoin address balance from Blockchain API
#!/usr/bin/python
import sys
import getopt
import urllib2
from optparse import OptionParser
def main():
# variables
btcaddr = ""
@lukem512
lukem512 / maxcoin-validator.js
Created May 12, 2017 21:58
Validate a MaxCoin address
// node imports
var sys = require('sys');
var base58 = require('bs58');
var SHA3 = require('sha3');
// validation function
function validateAddress(address) {
// network/version byte
var version = address.substring(0, 1);
if (version != 'm') return false;
@lukem512
lukem512 / babel.md
Created May 15, 2017 18:28
Setting up babel, a beginners guide

Setting up Babel

  1. Install babel-cli and save it to your developer dependencies
npm i --save-dev babel-cli
  1. Install a preset of your choice. Presets indicate which version of EcmaScript to use. The env preset is the most recent version.
@lukem512
lukem512 / atof.c
Last active January 16, 2022 17:10
ASCII to Float in C
/* Onlu needed for printf() */
#include <stdio.h>
/* Boolean types - comment if not needed */
typedef int bool;
#define true 1
#define false 0
/* !Boolean types */
/* There are also built-in functions for these */
@lukem512
lukem512 / combine-ast.js
Created June 22, 2017 10:54
Combine text elements in AST
let content = node.content;
if (Array.isArray(node.content)) {
// Combine elements of type text
content = node.content.reduce((_content, item) => {
const lastNodeIndex = _content.length - 1;
const lastNode = _content[_content.length - 1];
if (_content.length > 0 && lastNode.type === 'text' && item.type === 'text') {
_content[lastNodeIndex].content = lastNode.content + item.content;
} else {
@lukem512
lukem512 / compactBits.js
Created December 20, 2017 23:19
Bitcoin difficulty target to compact bits conversion
var MAX_PRECISION = 28;
function _findExp (n, base, exp = 1) {
var pow = Math.pow(base, exp);
var div = Math.floor(n / pow);
if (exp > MAX_PRECISION) {
return div;
}
return div + _findExp(n, base, exp + 1);
}
@lukem512
lukem512 / build.js
Created June 13, 2019 11:55
Mustache-based translations
const fs = require('fs');
var exec = require('child_process').exec;
const DATA = 'data/';
const TEMPLATES = 'templates/';
const OUTPUT = 'build/';
// Retrieve language from args
const args = process.argv.slice(2);
const lang = args[0];
@lukem512
lukem512 / swatches.html
Created December 18, 2019 11:58
Colour Swatches Visualiser
<!doctype html>
<html>
<head>
<title>Colour Swatches</title>
<style>
body {
margin: 0;
padding: 0;
background-color: #FAFBFC;
}