Skip to content

Instantly share code, notes, and snippets.

@shevron
shevron / zs_request_sign.php
Created June 30, 2011 12:21
Creating a Zend Server Web API request signature using PHP
<?php
/**
* Calculate Zend Server Web API request signature
*
* @param string $host Exact value of the 'Host:' HTTP header
* @param string $path Request URI
* @param integer $timestamp Timestamp used for the 'Date:' HTTP header
* @param string $userAgent Exact value of the 'User-Agent:' HTTP header
* @param string $apiKey Zend Server API key
@shevron
shevron / pluginmap_generator.php
Created September 26, 2011 14:28
A Plugin / Helper map generator for ZF 2.0 PluginClassLoader
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
@shevron
shevron / ZfClassmapTask.php
Created January 10, 2012 18:31
Zend Framework 2.0 style autoloader classmap generator task for Phing
<?php
/**
* Phing task to generate a Zend Framework style autoloader classmap file
*
* This task requires ZF 2.x to be in your include_path. You can run phing like
* so to enforce this:
*
* $ export PHP_COMMAND="php -d include_path=.:<path to zf library>:<path to pear>"
* $ phing ...
@shevron
shevron / Uri.php
Created June 18, 2012 18:18
Zend Framework 2.0 Uri validator
<?php
namespace Zend\Validator;
class Uri extends AbstractValidator
{
const INVALID = 'uriInvalid';
protected $_messageTemplates = array(
self::INVALID => "Provided input is not a valid URL"
@shevron
shevron / fix-cs-multiuse.php
Created August 12, 2012 10:45
Convert single, comma separated mutli-namspace use statements into multiple use calls with single namespace references
<?php
/**
* Convert single use calls with comma separated list of namespaces into
* multiple, stand-alone use calls
*
* Usage: php cs-fix-use.php <file>
*
* Will overwrite <file> with new version. If <file> is omitted, stdin / stdout
* will be used.
@shevron
shevron / builtin-ws-wrapper.php
Created August 18, 2012 09:28
A wrapper script for serving ZF apps with PHP's built in Web server
<?php
/**
* PHP Built-in Web Server wrapper for ZF apps
*/
$reqUri = $_SERVER['REQUEST_URI'];
if (strpos($reqUri, '?') !== false) {
$reqUri = substr($reqUri, 0, strpos($reqUri, '?'));
}
@shevron
shevron / LICENSE
Last active April 28, 2020 02:28
Send EC2 instance memory usage stats to CloudWatch using boto and IAM Roles
Copyright (c) 2015, Shahar Evron
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
@shevron
shevron / test.php
Last active August 29, 2015 14:01 — forked from anonymous/test.php
A better way to write to /dev/null
<?php
// Get 10mb of data from /dev/zero
$infp = fopen('/dev/zero', 'r');
$data = fread($infp, 1024 * 1024 * 10);
fclose($infp);
write_data($data);
echo "Peak memory usage: ", number_format(memory_get_peak_usage()), " bytes\n";
@shevron
shevron / code_with_locking_context.py
Last active April 3, 2019 15:08
Examples: MySQL named locks and Python context managers
"""same logic as in above, but using a locking context manager
"""
from app_services import db_session
from locking_context import named_lock
def single_running_func():
"""this code should never execute in parallel
"""
with named_lock(db_session, 'my_lock', 5):
# Do some stuff that should not run in parallel
@shevron
shevron / oauth2_key_example.sh
Created October 23, 2016 06:20
Shoppimon API Examples (bash / curl / jq)
# The following example requires `jq` to parse JSON
CLIENT_ID=abcdef12345678s
CLIENT_SECRET=0123456789abcdef0123456789abcdef
BEARER_TOKEN=$(curl -s -X POST https://api.shoppimon.com/oauth \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"'$CLIENT_ID'","client_secret":"'$CLIENT_SECRET'"}' |\
jq -rM '.access_token')
export BEARER_TOKEN
echo "Bearer token: $BEARER_TOKEN"