Skip to content

Instantly share code, notes, and snippets.

View maraisr's full-sized avatar
:fishsticks:

marais maraisr

:fishsticks:
View GitHub Profile
@maraisr
maraisr / index.js
Last active August 4, 2016 11:46
ncu -g auto install
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
var lines = [];
rl.on('line', line => {

Keybase proof

I hereby claim:

  • I am maraisr on github.
  • I am marais (https://keybase.io/marais) on keybase.
  • I have a public key whose fingerprint is B193 8745 C473 F0EE E62C 0593 B878 42CB 66A2 30FF

To claim this, I am signing this object:

function myobfiscate($emailaddress){
$email= $emailaddress;
$length = strlen($email);
for ($i = 0; $i < $length; $i++){
$obfuscatedEmail .= "&#" . ord($email[$i]).";";
}
echo $obfuscatedEmail;
}
@maraisr
maraisr / install_docker_centos.sh
Created September 1, 2017 01:03 — forked from opunbuds/install_docker_centos.sh
Install Docker & Docker Compose on Centos 7
#!/bin/bash
wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker $(whoami)
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo yum install -y epel-release
sudo yum install -y python-pip
sudo yum upgrade -y python*
sudo pip install docker-compose --force --upgrade
@maraisr
maraisr / encryptDecrypt_createCipheriv.js
Created November 27, 2017 03:07
Encrypt / Decrypt using createCipheriv
const {createCipheriv, createDecipheriv, createHash, randomBytes} = require('crypto');
function encrypt (input, password) {
const IV = Buffer.from(randomBytes(16));
const encryptor = createCipheriv(
'aes-128-cbc',
createHash('md5').update(password).digest(),
IV
@maraisr
maraisr / index.ts
Created May 14, 2018 03:23
$OnChanges Angular1.6+ decorator
const ONCHANGE_LISTENERS_TYPE = 'change:listeners';
function OnChanged$ (...properties: Array<string>) {
return function targetChangeFunction (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
Reflect.defineMetadata(ONCHANGE_LISTENERS_TYPE, [
...(Reflect.getMetadata(ONCHANGE_LISTENERS_TYPE, target) || []),
{
properties,
@maraisr
maraisr / hoc.ts
Last active December 27, 2018 22:31
Typed Higher Order Components (maybe react?)
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
interface FunctionComponent<P = {}> {
(props: P, context?: any): string;
}
// Our component props types
interface IInputProps {
firstName: string;
lastName: string;
@maraisr
maraisr / optimize.sh
Created January 9, 2019 22:32
SvgO cli tool
npx svgo --multipass \
--disable={removeViewBox} \
--enable={removeTitle,removeMetadata,removeComments,inlineStyles,cleanupAttrs,minifyStyles,convertColors,convertStyleToAttrs,collapseGroups,sortAttrs,removeDimensions} \
-o (pwd)/out \
-f (pwd)
# 1. redo last command but as root
sudo !!
# 2. open an editor to run a command
ctrl+x+e
# 3. create a super fast ram disk
mkdir -p /mnt/ram
mount -t tmpfs tmpfs /mnt/ram -o size=8192M
@maraisr
maraisr / clean.sh
Last active April 23, 2019 12:28
Clean remote branches except master
git branch -ar \
| grep origin/ \
| grep -v 'master$' \
| grep -v HEAD \
| cut -d/ -f 2- \
| xargs -I % -n 1 -P 8 sh -c "git push origin :%"