Skip to content

Instantly share code, notes, and snippets.

View Abhinav1217's full-sized avatar

Abhinav Kulshreshtha Abhinav1217

View GitHub Profile
@Abhinav1217
Abhinav1217 / HashSet.php
Created March 29, 2022 07:59
Simple Implementation of HashSet in php for quick hacks. Not recommended in actual works.
<?php
class HashSet
{
// PHP arrays are organized trees under the hood, also php provides better api's for dealing with keys.
// Hence we will use an arrays use it's keys for storing our nodes. Note PHP Arrays are always associative arrays.
private $set = [];
public function __construct($keys = [])
@Abhinav1217
Abhinav1217 / javascript: getDateRangeOfWeek.js
Last active January 20, 2022 08:42
Get date range based on week number.
/**
* Get the date and days within a week from week number.
* eg: date range for 8th week in 2013 is 17th Feb to 23rd Feb. This
* code snippet will give you.
*
* It is not my code completely, Bit of modification from something
* i found on net. Cant find it anymore so keeping a backup.
*
* @param {[Integer]} weekNo [From week 1 to Week 52/53 based on the system date setting]
* @return {[Date]} [description]
@Abhinav1217
Abhinav1217 / search.sh
Created July 29, 2020 08:32 — forked from jonlabelle/search.sh
Bash script to search file contents (by file extension) for the specified search term. Uses grep under the hood.
#!/usr/bin/env bash
# shellcheck disable=SC2034,SC2086,SC2155,SC2001,SC2048
#
# Search file contents (by file extension) for the specified search term.
#
# grep options:
#
# -i Perform case insensitive matching.
# −r Recursively search subdirectories listed.
@Abhinav1217
Abhinav1217 / youtube-dl-aliases.sh
Last active July 12, 2020 23:13
youtube-dl aliases for stuffs
# Some youtube-dl shortcuts and workarounds.
# Download MP3
alias youtube-dl-mp3="youtube-dl --extract-audio --audio-format mp3 "
# Youtube playlist which is organised in folders and Videos are numbered.
# use youtube-dl-playlist -f 22 <link>
alias youtube-dl-playlist='youtube-dl -o "./%(playlist_title)s/%(playlist_index)s_%(title)s.%(ext)s" '
# Youtube-dl to download from hotstar.
# https://superuser.com/questions/1310825/how-to-remove-old-version-of-installed-snaps/1330590#1330590
# https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
@Abhinav1217
Abhinav1217 / sumByLong.kt
Created April 20, 2020 17:07
sumByLong() polyfill and similar options.
// Kotlin have sumBy:Int and sumByDouble:Double but many of us work with Long which is missing.
// This is an implementation based on stdlib for sumbydouble
// Save this in your util to make this accessable.
inline fun <T> Iterable<T>.sumByLong(selector: (T) -> Long): Long {
var sum = 0L
for (element in this) {
sum += selector(element)
}
return sum
}
@Abhinav1217
Abhinav1217 / Fetch.sublime-settings.json
Last active January 18, 2020 12:14
My nettuts fetch sublime setting file
{
"files":
{
"Angular JS": "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.4/angular.js",
"Backbone.js": "http://backbonejs.org/backbone.js",
"CSS-reset": "http://meyerweb.com/eric/tools/css/reset/reset.css",
"Chart.js": "https://raw.githubusercontent.com/nnnick/Chart.js/master/Chart.min.js",
"Exoskeleton": "https://github.com/paulmillr/exoskeleton/releases/download/0.6.3/exoskeleton.min.js",
"Favicon.js": "https://raw.githubusercontent.com/ejci/favico.js/master/favico-0.3.5.min.js",
"HTML5_SQL.js": "http://html5sql.com/js/html5sql.js",
@Abhinav1217
Abhinav1217 / vscode-keybindings.jsonc
Last active October 24, 2019 06:20
VS-Code Keymap
// Place your key bindings in this file to override the defaults
// Make sure you disable/replace old keybindings or else Code can misbehave.
// Use "-" in command if you need to disable any keybinding.
// All keybindings must be either scoped or unique.
[
// Setup advanced-new-file - Need to make my own one day
{
"key": "ctrl+n",
"command": "extension.advancedNewFile"
// Brightness math based on:
// http://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx
$red-magic-number: 241;
$green-magic-number: 691;
$blue-magic-number: 68;
$brightness-divisor: $red-magic-number + $green-magic-number + $blue-magic-number;
@function sqrt ($r) {
// http://www.antimath.info/css/sass-sqrt-function/
<?php
/**
* A more complete implementation of Java's import statement. For `PHP >=5.0, <=7`
*
* While we do not need it in modern projects, I found this to be really
* helpful for teaching purposes.
*
* This is for teaching purposes only. In real life, composer and namespacing is the way to go.