Skip to content

Instantly share code, notes, and snippets.


Brad Landers bradland

View GitHub Profile
View file_binary.rb
# Excerpt from ptools gem
# Returns whether or not +file+ is a binary non-image file, i.e. executable,
# shared object, ect. Note that this is NOT guaranteed to be 100% accurate.
# It performs a "best guess" based on a simple test of the first
# +File.blksize+ characters, or 4096, whichever is smaller.
# By default it will check to see if more than 30 percent of the characters
# are non-text characters. If so, the method returns true. You can configure
# this percentage by passing your own as a second argument.

Ebike batteries have a handful of important ratings that you should check before purchasing any battery. The main two (V and Ah) are commonly listed, but there are some other important measurements that may be more difficult to find:

  • Voltage (V): It's useful to think of voltage as pressure in a system. Higher voltage = higher pressure. The voltage of the pack must match your controller and display. Motors are generally pretty flexible in what they can accept. Voltage limits are strict; that is to say, you cannot exceed them. The important caveat there is, of course, motors. A motor's voltage rating isn't actually a max voltage rating, it's a suggestion based on the motor's max amperage and power rating. Why this is the case will become clear later.
  • Amps (A): Think of amperage (amps) as the volume of flow in a system. More amps = greater flow. All of the electrical components on your ebike will have amperage ratings expressed as max and continuous. The max number is a "never exceed" number, while
View say_hello.rb
# Server is defined in stage file deploy/staging.rb
# server '', user: 'staginguser', roles: %i(app db web)
# Expect `say_hello` task to output:
# echo 'hello from "staginguser"'
# What `say_hello` task actually outputs:
# echo 'hello from nil'
task :say_hello do
on roles(:app) do
execute "echo 'hello from #{fetch(:user).inspect}'"
View wsl_ubuntu_unixsocket_error.rb
#!/usr/bin/env ruby
# This script establishes a UNIX server socket.
# Expected result: Script should run and immediately exit.
# Actual result: Script fails with Errno::EADDRINUSE error.
# Environment: Windows 10 Pro, WSL, Ubuntu 18.04.2, ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux-gnu]
View passenger-error.html
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Web application could not be started</title>
<link href=",400i,700" rel="stylesheet">
<link href=",400,700" rel="stylesheet">
<style type="text/css">/*!
* Bootstrap v3.3.7 (
View gear_map.csv
id gear
0 R
1 N
2 1st
3 2nd
4 3rd
5 4th
6 5th
7 6th
8 7th
bradland / gs_data_updater.js
Created Nov 7, 2017
Updates data URL from named range.
View gs_data_updater.js
function onOpen(e) {
.createMenu('Data Mgmt')
.addItem('Refresh Pipeline Data', 'getData')
function getData() {
// 'Data Import' sheet uses IMPORTDATA() function to pull CSV data from Pipeline application. This function
// only updates once an hour by default. This formula is used to alter the import URL so that the function
View 488 GT3 In Gear Acceleration Test.csv
lap_time throttle mph rpm gear hg fg
172264 1.00 27.66 3139.65 2 -0.04 0.52
172280 1.00 27.86 3161.41 2 -0.04 0.57
172296 1.00 28.06 3177.08 2 -0.04 0.59
172316 1.00 28.32 3205.00 2 -0.03 0.60
172332 1.00 28.53 3229.73 2 -0.01 0.60
172348 1.00 28.74 3254.50 2 0.00 0.62
172364 1.00 28.95 3279.07 2 0.01 0.61
172384 1.00 29.23 3310.62 2 0.03 0.61
172396 1.00 29.39 3331.57 2 0.03 0.63
bradland / ac-telemetry.rb
Last active May 13, 2020
Beginnings of a rudimentary CLI telemetry utility for Assetto Corsa written in Ruby.
View ac-telemetry.rb
#!/usr/bin/env ruby
$: << './lib'
require 'socket'
require 'bindata'
require 'json'
class UTF8String < BinData::String
def snapshot
View pingr
#!/usr/bin/env ruby
require 'logger'
require 'open3'
require 'optparse'
require 'ostruct'
require 'thread'
class ShellScript
You can’t perform that action at this time.