Skip to content

Instantly share code, notes, and snippets.

View g105b's full-sized avatar

Greg Bowler g105b

View GitHub Profile

Keybase proof

I hereby claim:

  • I am g105b on github.
  • I am g105b (https://keybase.io/g105b) on keybase.
  • I have a public key whose fingerprint is 90EF 3167 AFE2 0F52 A63D 4070 0239 1184 CE3F 61A6

To claim this, I am signing this object:

@g105b
g105b / index.php
Created January 21, 2019 16:15
SSE
<?php
header("Access-Control-Allow-Origin: *");
$accept = $_SERVER["HTTP_ACCEPT"];
if($accept === "text/event-stream") {
header("Content-Type: text/event-stream");
header('Cache-Control: no-cache');
$i = 0;
while($i < 10) {
$time = time();
<?php
$startTime = microtime(true);
$workingDir = "_bm";
$runs = [
100,
1000,
10000,
100000,
];
@g105b
g105b / gpg_steps.md
Created June 17, 2019 19:49
Use GPG to sign commits in PhpStorm on Ubuntu
  1. Generate key
gpg --gen-key #use the same name and email address as on Github
  1. Output key(s)
gpg --list-secret-keys --keyid-format LONG
@g105b
g105b / index.html
Created September 19, 2019 10:26
Binding nested lists example
<p>More bind examples</p>
<p>Nested list example:</p>
<ul>
<li data-template>
<p data-bind:text>Make name</p>
<ul>
<li data-template data-bind:text>Model name</li>
@g105b
g105b / wpa_supplicant.conf
Created November 16, 2019 17:46
Automatically connect Raspberry Pi to an open but hidden wifi network
# /etc/wpa_supplicant/wpa_supplicant.conf
# or put wpa_supplicant.conf inside the boot directory
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="60"
scan_ssid=1
key_mgmt=NONE
@g105b
g105b / bootstrap
Last active December 6, 2019 10:59
Lambda runtime entrypoint for PHP.Gt WebEngine
#!/opt/bin/php
<?php
require __DIR__ . "/vendor/autoload.php";
use Gt\Fetch\Http;
use Gt\Fetch\Response\BodyResponse;
while(true) {
$payload = null;
$invocationId = null;
@g105b
g105b / nginx-server.conf
Last active April 1, 2020 14:40
Redirects things from a CSV of old paths
server {
server_name example.com www.example.com;
listen 80;
location / {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SERVER_NAME $host;
fastcgi_param SCRIPT_FILENAME /var/www/path/to/router.php;
}
@g105b
g105b / example.php
Last active November 21, 2020 12:50
Example Async functionality with Promises using PHP.Gt/Async and PHP.Gt/Promise
<?php
/**
* This example counts the number of vowels and the number of consonants
* in example.txt, showing how concurrent slow file reads can use Promises
* to defer work, with a future callback when the work is complete.
*
* A PeriodicLoop is used with a purposefully long period with the file
* reading code being done one byte at a time, to simulate a slow connection.
*
* Note: This is an example wrapped in a class, showing an example of how a
@g105b
g105b / getall.php
Created December 28, 2020 18:05
Git clone and composer install all repositories from a Github organisation
<?php
if(count($argv) <= 1) {
echo "Usage: getall.php OrganisationName [PathToParentDir]", PHP_EOL;
exit(1);
}
$org = $argv[1];
$path = $argv[2] ?? getcwd();
$path = realpath($path);