Skip to content

Instantly share code, notes, and snippets.

Andre-John Mas ajmas

Block or report user

Report or block ajmas

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
ajmas / SI Order of Magnitude.js
Last active Dec 3, 2015
Javascript code to an SI 'order of magnitude' prefix to a displayed value. For example, given 1000 and 'Hz', you will get 1kHz. For decimal number less than 1, big.js is needed to avoid errors. Note, I looked at using a mathematical approach to get the index, but it worked out to be about the same speed, so I opted for readability
View SI Order of Magnitude.js
function valueToMagnitude(value, unit, fixedPlaces) {
var unitExponents = [
ajmas / snapSVG rainbow gradient.js
Created Dec 24, 2015
Drawing a rainbow gradient with snapSVG
View snapSVG rainbow gradient.js
snap = Snap('#mySVG');
gradient = snap.gradient('l(0, 0, 1, 0)red-orange-yellow-green-blue-indigo-violet');
fill: gradient
ajmas /
Last active Jan 6, 2016
Script to do both IPv4 and IPv6 host health checks, also supporting hosts that only have one address class
## TODO support CNAMES properly - it throws things off
### IPv4 Health Check
ajmas /
Last active Jan 20, 2016
Takes a panoramic image that is in a 'fisheye' view and unwraps it. See for an explanation
package ajmas74.experimental.graphics2d;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferInt;
import java.awt.image.DirectColorModel;
import java.awt.image.PixelGrabber;
import java.awt.image.Raster;
ajmas / IPv6Utils.js
Last active Mar 30, 2016
Some IPv6 utility functions I put together, improvements appreciated
View IPv6Utils.js
var ipv4Regex = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
function expandIPv6(ipv6ColonNotation) {
var pad = "0000"
var count = (ipv6ColonNotation.match(/:/g)|| []).length;
if (count == 0 || count > 7) {
// too few or too many colons
return "err";
ajmas / CoordinateParser.js
Last active Mar 31, 2016
Parsing text and producing a geo coordinate
View CoordinateParser.js
CoordinateParser = {
convertDegMinSecToDecDeg: function (deg, min, sec, direction) {
var value;
if (min === undefined) { min = 0; }
if (sec === undefined) { sec = 0; }
deg = parseFloat(deg);
min = parseFloat(min);
View countryNameForCoord.js
// depends on turf and having a copy of the countries.gejson file for the value of the countryOutlines
// see: as one source
findCountryName (latlon) {
var features, i, j, poly;
var point1 = turf.point([latlon[1], latlon[0]]);
if (this.countryOutlines) {
features = this.countryOutlines.features;
for (i=0; i<features.length; i++) {
ajmas / download-from-google-drive.js
Last active Jan 4, 2017
Downloads a directory structure from Google Drive. Also handles exporting of the Google Docs.
View download-from-google-drive.js
const fs = require('fs-extra');
const google = require('googleapis');
const OAuth2 = google.auth.OAuth2;
const key = require('./key.json');
var baseFolder = 'base';
function downloadFile(file, path) {
setTimeout(function () {
var filePath = path.concat('/');
View web-sensor-proxy.js
* Creates an HTTP server to allow to read the sensor data via
* HTTP. Improvements could include caching the data, to avoid
* the sensor being hit too frequently.
* Not tested in-situ.
const express = require('express');
const app = express();
const net = require('net');
ajmas / confgurable-password-checker.js
Last active Feb 2, 2017
Configurable Password Checker
View confgurable-password-checker.js
// This version work on simply checking something that fails a rule, though
// it may be useful to check based on estimated password strength. For this
// each function would return a value indicating strength. This value could
// be positive or negative. For example, a string longer than 16 characters
// could get a rating of +5, but being digit only get a -5. Other methods
// could simply return 0/+1.
var ruleFunctions = {
duplicateChars: function(password, min) {
var prevChar, i;
You can’t perform that action at this time.