Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / 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"
@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 / 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 / docker-compose-dev.yaml
Created April 9, 2019 06:18
Docker compose file defining external CKAN dependencies
# Docker compose for external services, assuming main ckan services are run
# outside of Docker
version: "3"
volumes:
pg_data:
services:
@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, '?'));
}