Skip to content

Instantly share code, notes, and snippets.

@PaulChana
PaulChana / OverrideEcho.sh
Created January 17, 2018 09:33
[Override echo] Override echo for debugging #bash #shell
run_mode=debug
echo ()
{
[[ "$run_mode" ]] && builtin echo $@
}
@PaulChana
PaulChana / Clear Terminal
Last active January 22, 2018 12:12
[Clear Terminal] Clear Terminal display #bash #shell
clearDisplay()
{
clear && printf '\e[3J'
}
@PaulChana
PaulChana / find.sh
Created January 8, 2018 08:58
[Find files] Find files in terminal #shell
# Find with extension
find ~/ -iname "*.jpg"
# Find something with a matching name
find ~/ -name "Y"
@PaulChana
PaulChana / git.sh
Last active May 8, 2018 11:42
Git cheatsheet #git
// Checkout branch and track remote
git checkout -b feature/project --track origin/feature/project
// Show current branch name
git rev-parse --abbrev-ref HEAD
// Show all local branches with your starred:
git branch
// Are we up to date with remote
@PaulChana
PaulChana / RoundToNearest.cpp
Created September 28, 2017 11:31
Rounding to nearest
// round n down to nearest multiple of m
int roundDown (int n, int m)
{
return n >= 0 ? (n / m) * m : ((n - m + 1) / m) * m;
}
// round n up to nearest multiple of m
int roundUp (int n, int m)
{
return n >= 0 ? ((n + m - 1) / m) * m : (n / m) * m;
@PaulChana
PaulChana / RGB565ToRGB888.cpp
Last active September 13, 2017 13:27
[RGB565 to RGB888] Conversion of RGB565 to RGB888 #cpp
int convertRGB565ToRGB888 (int c)
{
int a = 255;
int r5 = ((c >> 11) & 0x1F);
int g6 = ((c >> 5) & 0x3F);
int b5 = ((c) & 0x1F);
int r8 = (r5 * 255 + 15) / 31;
int g8 = (g6 * 255 + 31) / 63;
@PaulChana
PaulChana / BitTwiddle.cpp
Created September 12, 2017 11:08
Set / Get individual bits in an int
#define BitVal(data,y) ( (data>>y) & 1) /** Return Data.Y value **/
#define SetBit(data,y) data |= (1 << y) /** Set Data.Y to 1 **/
#define ClearBit(data,y) data &= ~(1 << y) /** Clear Data.Y to 0 **/
#define TogleBit(data,y) (data ^=BitVal(y)) /** Togle Data.Y value **/
#define Togle(data) (data =~data ) /** Togle Data value **/
@PaulChana
PaulChana / PackUnpackARGB.cpp
Created August 8, 2017 09:27
Pack and unpack ARGB
int pack (int a, int r, int g, int b)
{
return a << 24 + r << 16 + g<< 8 + b;
}
void unpack (int& a, int& r, int& g, int& b, const int argb)
{
a = (argb >> 24) & 0xFF;
r = (argb >> 16) & 0xFF;
g = (argb >> 8) & 0xFF;
@PaulChana
PaulChana / StringLiteral.cpp
Created August 8, 2017 09:09
String literal in C++
const auto myString = R"identifier(
This string wont be "processed" like a normal string
Line breaks will be preserved
And you wont need to do escapes...
)identifier";
@PaulChana
PaulChana / appendVector.cpp
Last active August 8, 2017 08:28
Append vector
a.insert (std::end (a), std::begin (b), std::end (b));
// Less efficient but can be used for const members:
std::copy (std::begin (b), std::end (b), std::back_inserter (a));