Skip to content

Instantly share code, notes, and snippets.

Emmanuel N Kyeyune emmanuelnk

View GitHub Profile
emmanuelnk / lcd2LineDisplay.ino
Created May 12, 2016
lcd2LineDisplay Function
View lcd2LineDisplay.ino
void lcd2LineDisplay(String UpString, String DownString, int delaytime) {
//LiquidCrystal_I2C lcd(0x27, 16, 2); //Create a new LiquidCrystal_I2C object if one hasn't been globally created
//lcd.backlight(); //Turn on backlight everytime the function runs
lcd.setCursor(0, 0);
lcd.setCursor(0, 1);
emmanuelnk /
Created Nov 9, 2017 — forked from Chaser324/
GitHub Standard Fork & Pull Request Workflow

Whether you're trying to give back to the open source community or collaborating on your own projects, knowing how to properly fork and generate pull requests is essential. Unfortunately, it's quite easy to make mistakes or not know what you should do when you're initially learning the process. I know that I certainly had considerable initial trouble with it, and I found a lot of the information on GitHub and around the internet to be rather piecemeal and incomplete - part of the process described here, another there, common hangups in a different place, and so on.

In an attempt to coallate this information for myself and others, this short tutorial is what I've found to be fairly standard procedure for creating a fork, doing your work, issuing a pull request, and merging that pull request back into the original project.

Creating a Fork

Just head over to the GitHub page and click the "Fork" button. It's just that simple. Once you've done that, you can use your favorite git client to clone your repo or j


Useful Git commands

This is just stuff that I have put down that I find I use a lot of the time for my own reference.

Latest changes from repo to your machine

$ git pull
emmanuelnk /
Created Aug 30, 2018
Download file from FTP Server, upload file to S3 with Progress Bar in Python
import progressbar
from hurry.filesize import size
filesize = ftp.size(file)
down_progress = progressbar.AnimatedProgressBar(end=filesize, width=50)
with open(TEMP_DIR + file, 'wb') as f:
def download_progress(chunk):
down_progress + len(chunk)
View start_new_node_project_easily.bash
# first install npx (
npm install -g npx
# set your npm defaults if you havent already
npm set "Your name"
npm set ""
npm set ""
npm set init.license "MIT"
emmanuelnk / safePromiseAllHandler.js
Last active Feb 13, 2019
Handling the fast-fail behavior of Promise.all when using async/await
View safePromiseAllHandler.js
// TL,DR :
// here is a wrapper for PromiseAll that handles rejection and avoids fast fail behavior
const softPromiseAll = arr => {
return Promise.all(
promise => new Promise(
resolve => promise.then(resolve).catch(resolve)
)).then(results => results)
emmanuelnk /
Created Feb 27, 2019
Simple client wrapper library for Dynamodb access in Python (boto3)
# based off the excellent gist by Martina Pugliese
import boto3
from boto3.dynamodb.conditions import Key, Attr
from boto3.dynamodb.types import DYNAMODB_CONTEXT
dynamodb = boto3.resource("dynamodb")
emmanuelnk / git_clean.bash
Created Jul 4, 2019
Git: Clean out branches merged to master branch from local git repository (without deleting master branch)
View git_clean.bash
git branch --merged master | grep -v "\master" | xargs -n 1 git branch -d
emmanuelnk / fizzbuzz_in_ES6.js
Last active Aug 1, 2019
FizzBuzz but with ES6!
View fizzbuzz_in_ES6.js
const fizzbuzz = (min, max) => new Array(max-min+1)
.map((f,i) => console.log(`${((i+1)%3 === 0) ? 'fizz' : ''}${((i+1)%5 === 0) ? 'buzz' : ''}` || i+1))
fizzbuzz(1, 100)
emmanuelnk / timestampUpdate.js
Last active Aug 14, 2019
Recursively update all timestamps in a document to current timestamps based on when the document/fixture was created (Moment.js, Node.js)
View timestampUpdate.js
// great for fixtures used in tests that need to stay up to date
// needs moment.js
const moment = require('moment')
const updateTimestamps = (entity, baseTimestamp, path = '', tsFields) => {
// usage: recusrively updates all Timestamps in a json fixture for tests
const nowTs = moment().clone().startOf('hour')
const diff = Math.abs(nowTs.diff(baseTimestamp, 'hours'))
You can’t perform that action at this time.