Skip to content

Instantly share code, notes, and snippets.

View jabranr's full-sized avatar
🚀
Building ideas

Jabran Rafique jabranr

🚀
Building ideas
View GitHub Profile
@jabranr
jabranr / image-aspect-ratio.js
Last active January 15, 2024 01:12
Set image aspect ratio with JavaScript
/**
* Originally wrote this snippet for Suffragette/Pathé campaign (https://apps.facebook.com/inspiring-women)
*
* The campaign app forms a grid of square images pulled from social APIs based on
* particular hashtags. This snippet sets the new width and
* height based on their natural width and height to maintain the aspect ratio.
* Works best for 1:1 aspect ratio but can be modified to accommodate other ratio.
*
* @param Element|Resource img - An image element/resource from DOM
* @param int expected - Expected width or height
@jabranr
jabranr / redacted-email.js
Created November 24, 2023 14:08
Redact an email address with asterisks
const redactedEmail = email.replace(/(.{2})(.*)(@.*)/, '$1...$3');
@jabranr
jabranr / ts-declaration.sh
Created October 27, 2023 07:48
Create a typescript declaration file
npx -p typescript tsc {file_name.js} --declaration --allowJs --emitDeclarationOnly --outDir {output_dir_name}
@jabranr
jabranr / WhatsApp.js
Last active August 26, 2023 07:28
WhatsApp bookmarklet
/**
* Use this bookmarklet to start WhatsApp chat without saving a contact first
*/
(function(){
let phone = window.prompt('Enter phone with country code');
if (Boolean(phone)) {
phone = phone.startsWith('+') ? phone : phone.startsWith('0') ? phone.replace(/^0+/, '+') : phone.padStart(phone.length+1, '+');
window.open(`https://wa.me/${phone}`);
}
}());
@jabranr
jabranr / harlem-shake-snippet.js
Last active June 29, 2023 15:01
Harlem Shake JavaScript bookmarklet
/**
* 1. Save the following JavaScript snippet as browser bookmark
* 2. Visit a webpage and click on saved bookmark
* 3. Watch the webpage elements dance
* Original story by Mozilla - https://hacks.mozilla.org/2014/02/html5-css3-and-the-bookmarklet-that-shook-the-web/
*/
javascript:(function(){function c(){var e=document.createElement("link");e.setAttribute("type","text/css");e.setAttribute("rel","stylesheet");e.setAttribute("href",f);e.setAttribute("class",l);document.body.appendChild(e)}function h(){var e=document.getElementsByClassName(l);for(var t=0;t<e.length;t++){document.body.removeChild(e[t])}}function p(){var e=document.createElement("div");e.setAttribute("class",a);document.body.appendChild(e);setTimeout(function(){document.body.removeChild(e)},100)}function d(e){return{height:e.offsetHeight,width:e.offsetWidth}}function v(i){var s=d(i);return s.height>e&&s.height<n&&s.width>t&&s.width<r}function m(e){var t=e;var n=0;while(!!t){n+=t.offsetTop;t=t.offsetParent}return n}function g(){var e=docume
@jabranr
jabranr / Format Text String to Tweet with JavaScript String prototype.js
Last active April 24, 2023 10:53
Format Text String to Tweet with JavaScript String.prototype
// Enable IE8 support for indexOf
if ( typeof Array.prototype.indexOf === 'undefined' ) {
Array.prototype.indexOf = function(item) {
for (var i = 0; i < this.length; i++) {
if (this[i] === item) {
return i;
}
return -1;
}
}
@jabranr
jabranr / mysql_backup_cron.sh
Last active June 6, 2021 14:05
Automatic MySQL dump and backup to Git repo cron job
#!/bin/sh
#
# @author: Jabran Rafique <hello@jabran.me>
# @link: http://jabran.me/articles/automatic-database-backup-using-git-hosting/
# Set variables
FULLDATE = $(date +"%Y-%d-%m %H:%M")
NOW = $(date +"%Y-%m-%d-%H-%M")
MYSQL_DUMP = `which mysqldump`
GIT = `which git`
@jabranr
jabranr / iterm-cobalt-2colors.json
Created November 17, 2019 14:25
iTerm Cobalt2 colors (JSON config)
{
"Use Non-ASCII Font" : false,
"Tags" : [
],
"Ansi 12 Color" : {
"Green Component" : 0.3333333432674408,
"Blue Component" : 1,
"Red Component" : 0.3333333432674408
},
@jabranr
jabranr / .gitignore_global
Last active September 19, 2018 18:05
Global gitignore (see default gitconfig - https://gist.github.com/jabranr/504922fe20fe0ff2bafa)
.rsync_cache
.vagrant
*~
Guardfile
*.swp
.idea
.DS_Store?
.DS_Store
ehthumbs.db
Icon?
@jabranr
jabranr / .gitconfig-default
Last active September 19, 2018 13:35
Default .gitconfig settings
[user]
name = Jabran Rafique
email = hello@jabran.me
[color]
ui = true
diff = auto
status = auto
branch = auto