Skip to content

Instantly share code, notes, and snippets.

View lukem512's full-sized avatar

Luke lukem512

View GitHub Profile
@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 / 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 / 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 / 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 / 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 / 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 / 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 / Emoji Consensus.md
Created May 11, 2017 09:52
Democratic consensus using Emoji

Emoji Consensus

👍 I concur! I agree with the proposal.

👎 Veto! I disagree with the proposal.

👉 I feel this needs more discussion.

👊 I have no opinion or don't wish to participate in this decision.

@lukem512
lukem512 / dbte.js
Created March 21, 2017 23:42
Dense Binary Text Encoding
// Dense Binary Text Encoding
// Encode each of the 26 letter as 1 to 26, in binary.
// Encode spaces as 0.
const ASCII_A = 65;
const ENCODED_SPACE = 0;
function dbte(str) {
const digits = str.toUpperCase().split('');
const encoding = digits.reduce((obj, d, i) => {
@lukem512
lukem512 / toggle_wifi.sh
Created March 19, 2017 14:16
Toggle WiFi networks (OSX)
#! /bin/sh
ssid1="THEUNIVERSE"
pass1="yourpass"
ssid2="SPACE"
pass2="yourotherpass"
curr=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'`
echo Currently connected to $curr
echo Power cycling...