Skip to content

Instantly share code, notes, and snippets.


Chris Wright DaveRandom

View GitHub Profile
DaveRandom / php-script.bat
Created Apr 8, 2020
Execute batch file as PHP script (one line shebang for PHP scripts on Windows)
View php-script.bat
@(<nul set /p=#! & type ^"%~f0^") | php -- %* & goto :eof
<?php declare(strict_types=1);
// script goes here
DaveRandom / login.php
Created Aug 19, 2018 — forked from rahuldottech/login.php
PHP session management
View login.php
require 'secsesh.php';
if(/*credentials check out*/){
header( 'Location: somePage.php' );
View y_u_no_chat_nice.js
(function() {
'use strict';
* Modifications to perform (processed in order)
* @type {Function[]}
const modifications = [
(text) => text.replace(/!+/g, '!'),
DaveRandom /
Last active Aug 18, 2018
Why you should not use relative paths when working with files in PHP

TL;DR do what the last section tells you to do

What is the difference between a relative path and an absolute path?

An absolute path is one which includes all path components from the root of the file system. It starts with a leading / on unix-like operating systems, or a drive letter on Windows.

Unix: /full/path/to/file.php
Windows C:\full\path\to\file.php
View SeededRandomNumberGenerator.php
class SeededRandomNumberGenerator
* An integer with the 32 least significant bits set
* 0xffffffff is a float on 32-bit platforms :-/
private const MASK = \PHP_INT_SIZE === 4 ? ~0 : 0xffffffff;
View hash-many.php
include dirname(__DIR__) . "/vendor/autoload.php";
use Amp\Process\Process;
use function Amp\Promise\all;
const COUNT = 8;
$passwords = [];
DaveRandom /
Last active Jul 21, 2017
Adding projects to OpenGrok on

Adding projects to OpenGrok on

Connecting to the server

SSH to The server requires public key authentication, contact a room owner to have your key added.

Adding a project

Check out the sources from git into /srv/sources. The directory name will appear in the OpenGrok web interface, so choose a sensible directory name! Please use https:// URLs for the remote where possible.

DaveRandom / script.js
Last active Jun 6, 2018
Tweet icon for Jeeves in SO chat
View script.js
// ==UserScript==
// @name Tweet icon for Jeeves in SO chat
// @namespace
// @version 1.0
// @description @PeeHaa sucks
// @author @DaveRandom
// @match *://*
// @grant none
// ==/UserScript==
DaveRandom / Draytek Google Domains DDNS Dynamic DNS
Last active Apr 12, 2021
Draytek Google Domains DDNS Dynamic DNS Config
View Draytek Google Domains DDNS Dynamic DNS

How to configure a Draytek router to update your dynamic DNS record with Google Domains

Draytek Dynamic DNS Configuration Page

  1. Choose the "WAN Interface" strategy to use when determining the IP address used when performing updates.
  2. In the "Service Provider" field, choose "User Defined". Additional configuration fields appear.
  3. In the "Provider Host" field, enter
  4. In the "Service API" field, enter /nic/update?myip=###IP###&, replacing "" with the fully qualified name of the record you wish to dynamically update.
  5. In the "Auth Type" field, choose "Basic" (this is the default).
  6. In the "Connection Type" field, choose "HTTPS".
View client.php
<?php declare(strict_types = 1);
function send_data($socket, $data)
echo "Sending data {$data}\n";
fwrite($socket, $data);
$response = fread($socket, 1024);
echo "Got response: {$response}\n";