Skip to content

Instantly share code, notes, and snippets.

@stevebrun
stevebrun / detabify.rb
Created October 5, 2013 06:50
A quick script to take a file in from stdin and write it to stdout, replacing all tabs with four spaces.
#! /usr/bin/env ruby
# take standard in text and replace all the tab instanes with four spaces
# print the resulting test to standard out
line = ""
while (line = gets) != nil do
line.gsub! "\t", " "
puts line
end
@stevebrun
stevebrun / README.md
Last active August 29, 2015 13:56
Let There Be Shibes

ShibeEnding is an artistic venture into the meaning of what it means to have meaningful meaning and to ponder such meaningful meaning.

ShibeEnding is an experiment with jQuery to test its limits and unearth its purpose and to reveal its meaningful meaning.

Keybase proof

I hereby claim:

  • I am altece on github.
  • I am altece (https://keybase.io/altece) on keybase.
  • I have a public key whose fingerprint is 8BB9 7FF6 F003 F8D1 C91D 05CE 42A6 ECA9 5595 440E

To claim this, I am signing this object:

@stevebrun
stevebrun / Circle.m
Created May 7, 2014 20:04
Here is the code for getting points around a circle.
static CGPoint convertRadianToCGPoint( double angle, double length, CGPoint center ) {
double xCoord = length * cos( angle );
if( angle == M_PI ) {
xCoord = -length;
}
double yCoord = length * sin( angle );
if( angle == (3 * M_PI)/2 ){
yCoord = -length;
}
@stevebrun
stevebrun / KonradZuse.c
Created June 6, 2015 00:10
A German if-then-else-end expression in C
#include <stdbool.h>
#define wenn (
#define dann ) ? (
#define sonst ) : (
#define ende )
int main() {
int x = wenn true dann 10 sonst 11 ende;
}
@stevebrun
stevebrun / Migration.js
Last active January 11, 2019 05:04
A script for migrating the primary domain of a Google Apps account.
// migrate the script executer's primary domain
// domainName - the desired domain to migrate to
function migrateDomain(organizationName, domainName) {
var customerId = 'my_customer';
var customer = AdminDirectory.Customers.get(customerId);
customer.customerDomain = domainName;
customer.postalAddress.organizationName = organizationName;
customer.customerCreationTime = undefined; //
AdminDirectory.Customers.patch(customer, customerId);
@stevebrun
stevebrun / dymoPrintLCCN.applescript
Last active November 12, 2015 08:34
Command line utility to convert an ISBN to a Library of Congress Column Number
#!/usr/bin/osascript
on printLCCN(LCCN)
tell application "DYMO Label"
set paperOrientation to portrait
tell print object 1
set object text to LCCN
end tell
printLabel2 of it
end tell
@stevebrun
stevebrun / Graphing.fs
Last active December 19, 2015 23:46
An F# module that contains functions and data structures for dealing with a graph of vertices and edges connecting them.
module Graphing.Graph
[<StructuralEquality; StructuralComparison>]
type Point =
| Point of float * float
static member X (Point (x, _)) = x
static member Y (Point (_, y)) = y
/// <summary>
@stevebrun
stevebrun / NiceConstraints.swift
Last active July 18, 2017 23:57
AutoLayout using Operators
/// - note: The equivalence operators don't work because `NSObject` implements `Equatable`.
import UIKit
// MARK: Constraint From Anchor
public func == <AnchorType>(constrained: NSLayoutAnchor<AnchorType>, reference: NSLayoutAnchor<AnchorType>) -> NSLayoutConstraint {
return constrained.constraint(equalTo: reference)
}
@stevebrun
stevebrun / reverse-utf8-string.c
Created February 1, 2018 02:13
The proper way to reverse the code points in a UTF-8 encoded string.
#include <stdio.h>
#include <assert.h>
/// Count the amount of bytes contained within a null-terminated string.
/// - returns: The amount of bits before the null-terminator in the given string.
int string_length(char const *const string);
/// Reverse an array of bytes in-place.
/// - parameter bytes: A buffer of bytes to be reversed.
/// - parameter length: The amount of bytes contained within the buffer that should be reversed.