Skip to content

Instantly share code, notes, and snippets.

@bwg
bwg / widget-parent-renderqueue.js
Created January 24, 2011 16:02
plugin for widgetparent that uses an async-queue to render children
YUI.add('sm-widget-parent-renderqueue', function(Y) {
/**
* Plugin for WidgetParent that uses an async-queue to render children
*
* @module widget-parent-render-queue
*/
var NAME = 'renderqueue',
HOST = 'host',
@bwg
bwg / dnsmasqresolv.sh
Created June 1, 2012 17:30
Shell script for updating resolv.dnsmasq.conf in OS X
#!/bin/bash
# updates resolv.dnsmasq.conf with DHCP provided DNS servers for the
# currently active network interface on OS X
# the location of the dnsmasq resolv file
RESOLV=/etc/resolv.dnsmasq.conf
# get the list of active services from scutil
SERVICES=$(echo 'show Setup:/Network/Global/IPv4' | scutil | grep -e '[[:digit:]] :' | awk '{print $3}')
@bwg
bwg / selection.js
Last active December 18, 2015 15:39
cross browser double click selection/range fun
// Browsers behave differently when dbl clicking to select
// a range.
//
// Chrome and IE use the text node that contains the selected text
// as the startContainer with an offset to exclude any whitespace
// characters at the start of the node.
//
// Firefox will use a text node *before* the selected text
// as the startContainer, with a positive offset set to the end
// of the node. If there is no previous sibling of the selected text
@bwg
bwg / protected.php
Created March 18, 2014 15:33
how does Bar call test() on Foo if its defined as protected?
<?php
abstract class Base {
protected static function test() {
echo get_called_class()."\n";
}
}
class Foo extends Base {
protected static function test2(){
@bwg
bwg / wtf.php
Last active August 29, 2015 13:57
fun with php
<?php
abstract class Base {
protected $name = 'Base';
}
class Foo extends Base {
// defining $name here will properly fatal on access violation
// protected $name = 'Foo';
@bwg
bwg / nulltest
Last active August 29, 2015 13:57
php null showdown
PHP Version 5.6.11
--------------------------------------------------
Testing null over 100,000 iterations:
control 16.100883483887
!$value 22.799968719482
isset($value) 21.697998046875
null !== $value 22.647142410278
!empty($value) 22.5830078125
@bwg
bwg / arraycasttest
Last active August 29, 2015 14:02
is_array($value) vs (array) $value === $value (PHP 5.4.28)
Lee@maverick ~$ php --version
PHP 5.4.28 (cli) (built: May 8 2014 10:11:53)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
Lee@maverick ~$ php arraycasttest.php
--------------------------------------------------
Testing null over 100,000 iterations:
is_array($value) 81.238031387329 ms
@bwg
bwg / arraydifftest
Last active August 29, 2015 14:03
array_diff_key() vs. loop/unset
PHP Version 5.4.30
-------------------------------------------------------
Testing 10 item array over 1,000 iterations:
array_diff_key 1.2109279632568
loop/unset 0.87404251098633
-------------------------------------------------------
Testing 100 item array over 1,000 iterations:
@bwg
bwg / serializetest
Last active December 1, 2020 00:03
testing serialize vs. json_encode vs. var_export vs. msgpack_pack
PHP Version 5.4.30
--------------------------------------------------
Testing 10 item array over 1,000 iterations:
serialize 2.1979808807373 ms
json_encode 1.3420581817627 ms
var_export 1.9409656524658 ms
msgpack_pack 1.5850067138672 ms
--------------------------------------------------
@bwg
bwg / passbyreferencetest
Last active August 29, 2015 14:03
testing pass by reference vs. pass by value
PHP Version 5.4.29
--------------------------------------------------
Testing large_array over 100,000 iterations:
pass_by_ref 95.081090927124 ms
pass_by_val 86.126089096069 ms
--------------------------------------------------
Testing small_array over 100,000 iterations: