Skip to content

Instantly share code, notes, and snippets.

View morozov's full-sized avatar

Sergei Morozov morozov

View GitHub Profile
@morozov
morozov / master.php
Last active December 17, 2015 18:49
Trying to setup communication by means of STDIO
<?php
function start_worker($id)
{
printf("starting worker: %s\n", $id);
$proc = proc_open(
'php worker.php ' . $id,
array(
array('pipe', 'r'),
array('pipe', 'w'),
@morozov
morozov / README.md
Last active December 8, 2018 13:04
Ninja Test Qualification

Ninja Test Qualification

Ninja test is a self-sufficient unit test that is fully responsible for setting up environment it depends on and doesn't rely on other tests. Unlike others, ninja-tests survive within any test suite, they are less subjected to accidental false-negative failures and don't require periodical fixing.

In order to see if your newly written test passes the ninja qualification, to run it with the following command:

php phpunit.php --bootstrap=/path/to/ninja.php -c tests/phpunit.xml /path/to/test.php
@morozov
morozov / benchmark.p
Last active December 27, 2015 05:59
SugarCRM on HHVM Benchmarking
# output as png image
set terminal png size 1280,800
set output "benchmark.png"
set title "SugarCRM Benchmarking"
# y-axis grid
set grid y
# x-axis label
<?php
/**
* @requires function non_existing_function
* @see http://phpunit.de/manual/3.7/en/incomplete-and-skipped-tests.html#incomplete-and-skipped-tests.requires.tables.api
*/
class RequiresTest extends PHPUnit_Framework_TestCase
{
public static function setUpBeforeClass()
{
@morozov
morozov / proxy.php
Created June 11, 2014 13:02
Proxy Switcher decorator for Guzzle loader
<?php
use Guzzle\Http\ClientInterface;
use Valera\Loader\LoaderInterface;
use Valera\Resource;
use Valera\Loader\Result;
class ProxySwitcher implements LoaderInterface
{
/**

Keybase proof

I hereby claim:

  • I am morozov on github.
  • I am morozov (https://keybase.io/morozov) on keybase.
  • I have a public key whose fingerprint is 4786 8D56 20FC 7279 A9C7 E74B 0D74 4A7E 0F05 9119

To claim this, I am signing this object:

Verifying that +morozov is my Bitcoin username. You can send me #bitcoin here: https://onename.io/morozov
var data = [
{
"timestamp": 1436450162,
"temperature": 23
}
];
var mgData = data.map(function (point) {
return {
date: new Date(point.timestamp * 1000),
@morozov
morozov / README.md
Last active January 17, 2024 00:47
A prepare-commit-msg hook which automatically composes commit message based on Jira task summary

Automatic commit message generator based on Jira task summary

Installation

  1. Make the script executable: chmod +x jira-prepare-commit-msg.py
  2. Copy or symlink it to the repository hooks directory: cp jira-prepare-commit-msg.py /path/to/repo/.git/hooks/prepare-commit-msg or to the global hooks directory: cp jira-prepare-commit-msg.py ~/.config/git/hooks/prepare-commit-msg.
  3. Specify the URL of your Jira server, your username and API token. Make sure HTTPS is used when possible, since the username and the token are sent unencrypted by means of Basic HTTP authentication.
@morozov
morozov / compiler.end_context.php
Created November 6, 2015 00:02
Kind of automatic escaping in Smarty
<?php
function smarty_compiler_end_context($_, Smarty_Compiler $compiler)
{
array_shift($compiler->default_modifiers);
}