Skip to content

Instantly share code, notes, and snippets.

View harsh183's full-sized avatar
😺
People pleasing users

Harsh Deep harsh183

😺
People pleasing users
View GitHub Profile
@harsh183
harsh183 / mypy-example.py
Last active July 1, 2021 17:26
A small exploration with mypy and python type annotations.
# Simple script I put together showing mypy in action
# standard type annotations - we can give arguments a type and expect a return type
def add(x: int, y: int) -> int:
return x + y
print(add(1, 2))
# we can let it pick within a list of types
from typing import Union
#!bin/bash
# Usage:
# bash jekyll_new.sh file_title
# Example:
# bash jekyll_new.sh daily-angst
# This script is for creating a new jeykll post under _posts/
# Change as needed
@harsh183
harsh183 / paul_graham_site_improve.user.js
Created May 5, 2019 07:12
Opinated userscript that makes Paul Graham's website slightly nicer to me to read since I go there a lot.
// ==UserScript==
// @name Paul Graham website beautifier
// @version 1
// @grant none
// ==/UserScript==
// Based off http://bettermotherfuckingwebsite.com/
var styles = `
body {
@harsh183
harsh183 / upload_last_picture.sh
Last active April 23, 2021 13:20
Uploads the latest picture in my /Pictures directory to IMGBB and uses jq to parse out the image url
# This script goes into my Pictures/ folder and uploads it to ffsend.
# Requires: jq
set -e
cd ~/Pictures # configure to other source of pictures if you want
API_KEY="[YOUR KEY IT'S FREE TO GET]"
FILE_NAME=$(ls -rt | tail -n 1)
IMAGE=$( base64 "$FILE_NAME" )
require 'sinatra'
# Ex. http://localhost:4567/calc/add?x=1&y=2
get '/calc/:operation' do
operations = { 'add' => ->(x, y) {x + y},
'sub' => ->(x, y) {x - y},
'mul' => ->(x, y) {x * y},
'div' => ->(x, y) {x / y},
'mod' => ->(x, y) {x % y} }
# Yes I could DRY that further but I don't trust user input
require 'colorize'
require 'date'
def dash_seperator
'-' * 50
end
def get_date
Date.today.to_s
end
@harsh183
harsh183 / download_all_rhtml_links.user.js
Created August 18, 2019 20:16
Userscript to downlaod all links from a given site - use Tampermonkey for Chrome or GreaseMonkey for firefox to run it (just copy paste this code and it should work)
require 'pry'
require 'rqrcode'
qrcode = RQRCode::QRCode.new('https://cs125.cs.illinois.edu')
png = qrcode.as_png(
bit_depth: 1,
border_modules: 4,
color_mode: ChunkyPNG::COLOR_GRAYSCALE,
color: 'black',
@harsh183
harsh183 / ruby_times_in_kotlin.kt
Last active April 23, 2021 12:53
Recreating ruby's n.times operator on Kotlin. This is for fun, in all seriousness use the repeat(n) operator
fun main() {
// normal function
repeat(3) { print("Yay $it ") }
// => Yay 0 Yay 1 Yay 2
2.times { print("Looop ") }
// => Looop Looop
10.times { print("$it ") }
// => 0 1 2 3 4 5 6 7 8 9
}
@harsh183
harsh183 / collection_declare_vs_initializer_functions.kt
Last active April 23, 2021 12:53
Comparing directly declaring lists vs initializer functions (using lambdas). The syntax is pretty decent except for maps but to be fair if you're doing this type of thing you should not be using maps.
fun main() {
// Both are the same
val array1: Array<Int> = arrayOf(0, 1, 4, 9, 16)
val list1: List<Int> = listOf(0, 1, 4, 9, 16)
val map1: Map<Int, Int> = mapOf(0 to 0, 1 to 1, 2 to 4, 3 to 9, 4 to 16)
val array2: Array<Int> = Array(5) { it*it }
val list2: List<Int> = List(5) {it*it}
val map2: Map<Int, Int> = (Array(5) {it}).associate {it to it*it}
}