Skip to content

Instantly share code, notes, and snippets.

<?php
class NestedFunctions
{
public function fn1()
{
function nested_fn() { echo 'yay' . "\n"; }
nested_fn();
}
@asm89
asm89 / gist:5704166
Created June 4, 2013 07:17
.xinitrc detecting and enabling right amount of monitors and awesome configuration
# switch to dvorak, set key repeat etc
/home/alexander/.fixkb
# Add local fonts
xset fp+ /usr/share/fonts/local &
## Gnome keyring
source /etc/X11/xinit/xinitrc.d/30-dbus
eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets)
<?hh
function f(?int $x): ?int {
if ($x === null) return $x;
else return $x * 2;
}
function x(): ?int {
return null;
}
@asm89
asm89 / gist:8622724
Created January 25, 2014 20:08
Memory leak in hhvm?
<?php
class Foo
{
private $bar;
public function __construct(Bar $bar)
{
$this->bar = $bar;
}
}
<?php
$xs = array(42);
foreach ($xs as $x) {}
var_dump(current($xs));
$ys = array(42);
foreach ($ys as &$y) {}
var_dump(current($ys));
$it = new ArrayIterator([42]);
@asm89
asm89 / gist:8386608
Created January 12, 2014 16:12
"Inside out" approach to sqrt with convergence as described in https://news.ycombinator.com/item?id=7043943
<?php
function _sqrt($n) {
$x = 1.0;
$y = 0.5 * (1.0 + 1.0/$n);
$z = 1e-10;
while (abs($x/$y - 1) > $z) {
$x = $y;
$y = (0.5 * ($y + $n/$y));
<?php
class App
{
public $callables = [];
public function __construct()
{
register_shutdown_function([$this, 'run']);
}
@asm89
asm89 / gist:7108079
Last active December 26, 2015 06:29
mysum :: Num a => [a] -> a
mysum [] = 0
mysum (x:xs) = x + mysum xs
@asm89
asm89 / gist:6183370
Created August 8, 2013 10:02
Tail a file using react/socket
<?php
require_once __DIR__ . '/vendor/autoload.php';
$file = __DIR__ . '/testfile';
$client= popen('tail -f ' . $file, 'w');
stream_set_blocking($client, 0);
$loop = React\EventLoop\Factory::create();