Skip to content

Instantly share code, notes, and snippets.

View ngugijames's full-sized avatar
🇰🇪
.

James Ngugi ngugijames

🇰🇪
.
View GitHub Profile
@ngugijames
ngugijames / simplepolling.js
Created October 28, 2015 07:23 — forked from handerson/simplepolling.js
Simple AJAX Polling jQuery Plugin
//Simple AJAX Polling jQuery Plugin
// example usage:
/* $.ajaxPoll({
url: "/path",
type: "GET",
interval: 250,
maxAttempts: 25,
successCondition: function(result) {
return result != "processing";
},
@ngugijames
ngugijames / scrape.php
Created December 22, 2015 20:22 — forked from ziadoz/scrape.php
Scraping Google using PHP and Goutte:
<?php
/**
* Todo: Send a random user agent string and sleep a random amount between requests.
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Extract and sanatize input:
$domain = filter_input(INPUT_POST, 'domain', FILTER_SANITIZE_URL);
$terms = filter_input(INPUT_POST, 'terms', FILTER_SANITIZE_STRING);
// Setup Goutte (which also includes Guzzle):
@ngugijames
ngugijames / PHP Weighted Round Robin Scheduling
Created May 16, 2016 13:44
A simple implementation of the Weighted Round-Robin Scheduling in PHP ( PHP >= 5.3 )
<?php
/**
* @author Alexis Gruet
*
* A simple implementation of the Weighted Round-Robin Scheduling in PHP 5.3+
*
* The weighted round-robin scheduling is designed to better handle servers with different
* processing capacities. Each server can be assigned a weight, an integer value that
* indicates the processing capacity. Servers with higher weights receive new connections
@ngugijames
ngugijames / Ussd-varying-questions.php
Last active August 30, 2016 10:20
Ussd with varying questions and responses
<?php
/**
* Collaborated with http://github.com/pittgikera
*/
$text = $_GET['text'];
//$questions = "How was is it? # Was it enjoyable?# Did you have fun? # Will you come back?";
$questions = "";
@ngugijames
ngugijames / remote-git.md
Created July 11, 2017 15:58 — forked from Integralist/remote-git.md
Basic set-up of remote git repository on a standard server

Set-up remote git repository on a standard server

The first thing to do is to install Git on the remote server.

Once you do that the rest of the process is split into three sections:

  1. Server set-up
  2. Local set-up (push commits)
  3. Server (pull commits)
@ngugijames
ngugijames / validation.php
Created August 16, 2017 08:52
showing :value in laravel validation errors
//in controller
$validator = Validator::make(['one','two','three'], [
'*' => 'exists:table,name',
], [
'exists' => '`:value` does not exist.',
]);
//in service provider boot
$this->app->validator->resolver(function($translator, $data, $rules, $messages, $attributes)
@ngugijames
ngugijames / l3_log_replacer.php
Last active November 2, 2017 09:51
find L3 log usages and replace with L5 equivalents using PHPStorm
<?php
//Search For:
Log::(.*?)\((.*[\(\)]*)\);
//Replace with
Log::info("$1", $2);
// Replaces Log::api_unreachable(..) with something like Log::info("api_unreachable", ..);
@ngugijames
ngugijames / backup_script.sh
Created December 30, 2018 12:57
MySQL backup script
#!/bin/sh
BACKUP=/var/www/html/mysql_backup/backups
cd $BACKUP
sudo mkdir `date '+%d-%m-%Y'`
NOW=$(date +"%d-%m-%Y")
MUSER="user"
MPASS="pass"
MHOST="host"
MYSQL="$(which mysql)"
/**
* Special thanks to http://webcheatsheet.com/php/reading_the_clean_text_from_rtf.php
*/
<?php
// Function that checks whether the data are the on-screen text.
// It works in the following way:
// an array arrfailAt stores the control words for the current state of the stack, which show that
// input data are something else than plain text.
// For example, there may be a description of font or color palette etc.
@ngugijames
ngugijames / gist:bf08e32ffabf164099686a46f59b6e2b
Created August 18, 2020 11:46
Fail2Ban: Unban IP address from all jails
for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip IP_ADDRESS_HERE; done