Skip to content

Instantly share code, notes, and snippets.

View NimzyMaina's full-sized avatar

Nimrod Maina NimzyMaina

View GitHub Profile
@NimzyMaina
NimzyMaina / service_provider.php
Last active February 3, 2020 10:07
Kenya Identify Network Service Provider
<?php
$phone = "0748123456"; // safaricom
//$phone = "+254789123456"; // airtel
$safaricom = "/(+?254|0|^){1}[-. ]?[7]{1}([0-2]{1}[0-9]{1}|[5|9]{1}[0-9]{1}|[4]{1}[0-4]{1}|[4]{1}[6|8]{1})[0-9]{6}z/";
$equitel = "/(\+?254|0|^){1}[-. ]?[7]{1}([6]{1}[3-5]{1})[0-9]{6}\z/";
$airtel = "/(\+?254|0|^){1}[-. ]?[7]{1}([3]{1}[0-9]{1}|[5]{1}[0-6]{1}|[8]{1}[0-2|5-9]{1})[0-9]{6}\z/";
$telcom = "/(\+?254|0|^){1}[-. ]?[7]{1}([7]{1}[0-9]{1})[0-9]{6}\z/";
if(preg_match($safaricom, $phone)){
echo 'SAFARICOM';
@NimzyMaina
NimzyMaina / virtualenv.sh
Created April 4, 2019 11:00
Virtualenv Commands
#!/bin/bash
pip install virtualenv virtualenvwrapper-win
mkdir \Projects\helloworld && cd \Projects\helloworld
mkvirtualenv helloworld
setprojectdir .
deactivate
workon helloworld
@NimzyMaina
NimzyMaina / sms.php
Created April 23, 2019 06:47
Bulk SMS Templating
<?php
$sms = "Dear {{name}}, {{amount}} has been deposited to your bank account. Your current balance is {{balance}}. Thank you for banking with us.";
$required = ['{{name}}','{{amount}}','{{balance}}'];
$values = [
$required[0] => 'John Doe',
$required[1] => 'KES 5,000',
$required[2] => 'KES 75,000'
];
<?php
$http = new GuzzleHttp\Client;
$response = $http->post(url('oauth/token'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => 2,
'client_secret' => 'SECRET_HERE',
'username' => 'user@example.com',
@NimzyMaina
NimzyMaina / virtual.sh
Created September 2, 2019 07:11
Virtual Env Commands
## Make virtual ENV
mkvirtualenv test
## Make virtual ENV in current DIR
mkvirtualenv -a $(pwd) test
## Make virtual ENV with Python version
mkvirtualenv -a $(pwd) python=python3 test
## Set project dir
@NimzyMaina
NimzyMaina / decorators.py
Created September 19, 2019 11:40
How to create decorators in python
# A decorator is just a function that gets called before another function
import functools # function tools
def my_decorator(f):
@functools.wraps(f)
def function_that_runs_f():
print("Hello!")
f()
print("After!")
@NimzyMaina
NimzyMaina / sms_placeholder_parser.php
Last active December 6, 2019 15:03
How to replace place holders in an SMS template in PHP
<?php
$msg = 'Dear {{BNAME}}, your loan of KES {{AMOUNT}} has been fully repaid.';
function wrap($str)
{
return "{{{$str}}}";
}
function parse($msg,array $placeholders)
@NimzyMaina
NimzyMaina / virtual-env.md
Last active December 7, 2019 16:51
Creating a python virtual env with wrapper

Creating a Virtual ENV in python

create env

mkvirtualenv createdenv

set project dir

@NimzyMaina
NimzyMaina / service_providerV2.php
Last active February 7, 2020 11:57
New and improved way to Identify Kenyan Phone Number Service provider
<?php
// Gotten from https://en.wikipedia.org/wiki/Telephone_numbers_in_Kenya#Mobile_phone_numbers
$providers = [
'100' => 'Airtel',
'101' => 'Airtel',
'102' => 'Airtel',
'110' => 'Safaricom',
'111' => 'Safaricom',
'701' => 'Safaricom',
@NimzyMaina
NimzyMaina / ITempConvert.cs
Last active June 8, 2020 10:13
Consuming WSDL Services Using ASP.NET Core
using System.Threading.Tasks;
namespace TempConvert.Interfaces
{
[System.ServiceModel.ServiceContractAttribute(
Namespace="https://www.w3schools.com/xml/",
ConfigurationName="TempConvert.Interfaces.ITempConvert")]
public interface ITempConvert
{