Skip to content

Instantly share code, notes, and snippets.

View stephenfeather's full-sized avatar

Stephen Feather stephenfeather

View GitHub Profile
/*jslint vars: true, sloppy: true, nomen: true, maxerr: 1000 */
function LatLon(lat, lon, rad) {
if (typeof(rad) == 'undefined') rad = 6371; // earth's mean radius in km
// only accept numbers or valid numeric strings
this._lat = typeof(lat)=='number' ? lat : typeof(lat)=='string' && lat.trim()!='' ? +lat : NaN;
this._lon = typeof(lon)=='number' ? lon : typeof(lon)=='string' && lon.trim()!='' ? +lon : NaN;
this._radius = typeof(rad)=='number' ? rad : typeof(rad)=='string' && trim(lon)!='' ? +rad : NaN;
}
@stephenfeather
stephenfeather / sequencer.js
Created June 10, 2014 03:26
Ti.Media.Sound sequencer
/*jslint vars: true, plusplus: true, sloppy: true, nomen: true, maxerr: 1000 */
function Sequencer(){
var self = {};
var song, songTitle, currentNote, totalNotes, noteBatch, notes, timeouts = [];
if(Ti.App.Properties.hasProperty('noteBatch')){
noteBatch = Ti.App.Properties.getInt('noteBatch');
}else{
Code to detect a Gimbal beacon (without reading encrypted identifiers):
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
BeaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:0-3=ad7700c6"));
beaconManager.bind(this);
@stephenfeather
stephenfeather / Gruntfile.js
Last active October 2, 2015 18:18
Appcelerator Gruntjs
module.exports = function(grunt) {
require('time-grunt')(grunt);
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
CHANGELOG: '',
// add tiapp.xml changes to the repo
gitadd: {
versionBump: {
options: {
#!/usr/bin/env ruby
require 'rubygems'
require 'twitter'
require 'json'
require 'faraday'
# things you must configure
PATH_TO_DROPBOX = "/Users/your_name/Dropbox/backup/tweets/" # you need to create this folder
TWITTER_USER = "your_twitter_username"
ulimit -n 65536 65536
export ANDROID_SDK=/sdks/android-sdk-macosx
export ANDROID_HOME=/sdks/android-sdk-macosx
export ANDROID_PLATFORM="$ANDROID_SDK/platforms/android-23"
export GOOGLE_APIS="$ANDROID_SDK/add-ons/addon-google_apis-google-23"
export ANDROID_NDK=/sdks/android-ndk-r9b
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$PATH:$MONGO_PATH/bin:/sdks/android-sdk-macosx/tools:/sdks/android-sdk-macosx/platform-tools:$JAVA_HOME/bin:/Applications/Genymotion\ Shell.app/Contents/MacOS/:/Applications/Genymotion.app/Contents/MacOS/
@stephenfeather
stephenfeather / gist:2ac42b8544c995f7b7ff
Created January 3, 2016 00:23
OSX command line for tool to test your android library for text relocations
/sdks/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-readelf -a yourlib.so | grep TEXTREL
@stephenfeather
stephenfeather / UIModule.m
Created July 1, 2016 13:19
textStyle hack
-(NSString*)TEXT_STYLE_TITLE1
{
if ([TiUtils isIOS9OrGreater]) {
return UIFontTextStyleTitle1;
} else {
return UIFontTextStyleBody;
}
}
-(NSString*)TEXT_STYLE_TITLE2
@stephenfeather
stephenfeather / slackLogger.js
Last active October 27, 2016 20:59
Small library for Titanium to send info to a Slack webhook for 'remote logging' during development/testing
// Copyright 2016 Stephen Feather
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
@stephenfeather
stephenfeather / Timings.js
Last active December 19, 2016 12:22
Quick and dirty timings libary, most definitely should not be used for engineering, medical, safety related usages.
/*
Requires Underscore
Basic Usage:
var Timing = require('Timing');
Timing.start('myLabel');
Timing.stop('myLabel');
Timing.getTime('myLabel');