Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View compwright's full-sized avatar

Jonathon Hill compwright

View GitHub Profile
@compwright
compwright / inject.php
Created October 22, 2019 18:35
PHP Dependency Injection in <10 lines
<?php
function inject (array $container, $class, $method) {
extract($container);
$args = array_map(
function (ReflectionParameter $arg) {
return $arg->getName();
},
(new ReflectionMethod($class, $method))->getParameters()
);
@compwright
compwright / README.md
Last active December 12, 2019 03:13
AnomalyInnovations/serverless-bundle test case
@compwright
compwright / client_automations.sql
Last active October 30, 2018 17:34
client_automations.sql
INSERT INTO `client_automations` (`client`, `source`, `status`, `credentials`, `rules`, `exclusions`, `created_timestamp`, `updated_timestamp`, `user`)
VALUES
(452,'servicetitan','active','{\"apiKey\":\"\",\"apiSecret\":\"\"}','[{\"settings\":{\"products\":[{\"code\":\"1\",\"qty\":1}],\"location\":\"7\",\"department\":null,\"cardType\":\"TY\"},\"conditions\":[{\"id\":\"0voXy6RCReZjFoa8HOQSi\",\"field\":\"invoice.total\",\"operator\":\"isMoreThan\",\"operand\":\"1.00\",\"operandType\":\"number\"}],\"isActive\":true,\"id\":\"v4sQi7iJJLl~FpKYAlaah\"}]',NULL,'2018-10-29 17:28:36','2018-10-29 17:34:14',2304),
(4799,'servicetitan','active','{\"apiKey\":\"\",\"apiSecret\":\"\"}','[{\"settings\":{\"products\":[{\"code\":\"1\",\"qty\":1}],\"location\":\"4579\",\"department\":\"4580\",\"cardType\":\"TY\"},\"conditions\":[{\"id\":\"0voXy6RCReZjFoa8HOQSi\",\"field\":\"invoice.total\",\"operator\":\"isMoreThan\",\"operand\":\"1.00\",\"operandType\":\"number\"}],\"isActive\":true,\"id\":\"v4sQi7iJJLl~FpKYAlaah\"}]',NULL,
@compwright
compwright / javascript-disenchantment.md
Last active September 26, 2018 14:56
Javascript Disenchantment

Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance. Everybody just seems to be ok with it....our portable computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. --Nikita Prokopov, [Software disenchantment][1]

He is right!

Two questions immediately came to mind:

  1. Why do we write such bloated, inefficient software?
  2. How can we do better?
{
"_id" : ObjectId("58e2a3047463f61e5de6dbd6"),
"updatedAt" : ISODate("2017-04-03T19:31:16.681Z"),
"createdAt" : ISODate("2017-04-03T19:31:16.681Z"),
"name" : "Test calendar",
"active" : true,
"webhooks" : [
{
"url" : "http://localhost:8082/api/rdc/webhooks/scheduler",
"signatureAlgorithm" : "x-hub",
@compwright
compwright / prerequest.js
Created September 30, 2016 17:08
Postman pre-request script for Joyent Signature Authentication Scheme
// Postman pre-request script for Joyent Signature Authentication
// (https://github.com/joyent/node-http-signature/blob/master/http_signing.md)
//
// Set the following vars in your Postman environment:
// apiHost
// apiKey
// apiSecret
//
// Set the following headers in Postman (copy/paste):
// Authorization: Signature keyId="{{apiKey}}",algorithm="hmac-sha256",headers="host date",signature="{{signature}}"
@compwright
compwright / ChromePluginCompiler.php
Last active March 13, 2023 08:59
PHP build script for a Google Chrome browser extension
<?php
class ChromePluginCompiler extends PluginCompiler
{
// constants - set these in your subclass
public $major_version = '5.0';
public $browser = 'chrome';
protected $output_mime_type = 'application/x-chrome-extension';
protected $output_filename = 'ChromeExtension.crx';
protected $build_dir = 'chrome';
@compwright
compwright / sample.js
Created August 24, 2016 17:52
ClickTripz Integration Test
var _ctq = _ctq || [];
// Create 'compare to' strip object
_ctq.push(['newCompareToStrip', 'a']);
_ctq.push(['a.setPublisherID', 4]);
_ctq.push(['a.setAnchorID', 'ctAnchor']);
// Attach the correct API methods to our search form, this is a 'Hotel Citywide' search.
_ctq.push(['a.setFormID', 'ctSearchForm']);
_ctq.push(['a.setCityNameID', 'ctCity']);
@compwright
compwright / flatten.js
Created August 23, 2016 15:01
Flattens an array of arbitrarily nested arrays of integers into a flat array of integers
'use strict';
Array.prototype.flatten = function() {
var flattened = [];
this.map(function(element) {
if (Array.isArray(element)) {
// If the array element is an array,
// flatten it, then push each element
// onto the master flattened array.
Macbooks-MacBook-Pro:toyoursuccess jhill$ ./updatedb.sh
Updating Database to Latest Revision
---------------
Exporting Database
---------------
** Message: Connected to a MySQL server
** Message: TokuDB detected, creating dummy table for CS
** Message: Started dump at: 2016-04-15 11:24:37