Skip to content

Instantly share code, notes, and snippets.

View AshishKapoor's full-sized avatar
🪂
Git gud, son!

AshishKapoor

🪂
Git gud, son!
View GitHub Profile
#!/bin/bash
#WHILE THIS SCRIPT IS MOSTLY NON-INTERACTIVE, SOME SECTIONS DO HAVE EXPLICIT REMARKS TO EXECUTE ACTIONS! WATCH YOUR STEP HERE!
sudo apt-get update --yes
sudo apt-get dist-upgrade --yes
sudo apt-get autoremove --yes
sudo apt-get autoclean --yes
sudo apt-get install curl tmux zsh nload iotop htop git python3-dev python3-pip apt-transport-https ca-certificates software-properties-common vim mosh --yes
#Oh my TMUX
git clone https://github.com/gpakosz/.tmux.git
@AshishKapoor
AshishKapoor / guessing_game.rs
Last active April 24, 2023 09:07
Guessing Game in Rust
use rand::Rng;
use std::cmp::Ordering;
use std::io;
fn main() {
println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(1..=100);
loop {
@AshishKapoor
AshishKapoor / config.nvim.init.lua
Last active November 16, 2023 04:07
[Mac OS] my neovim config
-- This is Ashish's NVIM Config Dotfile.
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
-- Install package manager
@AshishKapoor
AshishKapoor / diff-arr-obj.js
Created January 25, 2023 05:02
To find difference between array of objects
const arrayOne = [
{ value: "4a55eff3-1e0d-4a81-9105-3ddd7521d642", display: "Ashish" },
{ value: "644838b3-604d-4899-8b78-09e4799f586f", display: "Kapoor" },
{ value: "b6ee537a-375c-45bd-b9d4-4dd84a75041d", display: "Pulkit" },
{ value: "e97339e1-939d-47ab-974c-1b68c9cfb536", display: "Smriti" },
{ value: "a63a6f77-c637-454e-abf2-dfb9b543af6c", display: "Neeru" },
];
const arrayTwo = [
{ value: "4a55eff3-1e0d-4a81-9105-3ddd7521d642", display: "Ashish"},
Limit (cost=4895237.19..4897350.43 rows=10000 width=48) (actual time=16791.597..23517.086 rows=1000 loops=1)
-> Finalize GroupAggregate (cost=4895237.19..5922277.78 rows=4860039 width=48) (actual time=16791.595..23516.865 rows=1000 loops=1)
Group Key: sensor_id, (time_bucket('1 day'::interval, "time"))
-> Gather Merge (cost=4895237.19..5800776.80 rows=4860039 width=48) (actual time=16790.127..23513.261 rows=2000 loops=1)
Workers Planned: 1
Workers Launched: 1
-> Partial GroupAggregate (cost=4894237.18..5253022.41 rows=4860039 width=48) (actual time=16774.942..23280.625 rows=1000 loops=2)
Group Key: sensor_id, (time_bucket('1 day'::interval, "time"))
-> Sort (cost=4894237.18..4965708.34 rows=28588464 width=22) (actual time=16763.580..19623.318 rows=24300250 loops=2)
Sort Key: sensor_id DESC, (time_bucket('1 day'::interval, "time"))
@AshishKapoor
AshishKapoor / hypertable.sql
Last active September 22, 2022 07:05
This one takes 55 seconds on apache superset
SELECT DATE_TRUNC('day', time) AS __timestamp,
fill_level AS fill_level,
AVG(sensor_id) AS "AVG(sensor_id)"
FROM demo.fill_measurements
JOIN
(SELECT fill_level AS fill_level__,
AVG(sensor_id) AS mme_inner__
FROM demo.fill_measurements
GROUP BY fill_level
ORDER BY mme_inner__ DESC
SELECT DATE_TRUNC('day', time) AS __timestamp,
fill_level AS fill_level,
sensor_id AS sensor_id,
AVG(sensor_id) AS "AVG(sensor_id)"
FROM demo.pg_fill_measurements
GROUP BY fill_level,
sensor_id,
DATE_TRUNC('day', time)
ORDER BY "AVG(sensor_id)" DESC
LIMIT 10000;
{"contents":{"editor":{"formatOnSave":true}},"overrides":[],"keys":["editor.formatOnSave"]}
@AshishKapoor
AshishKapoor / mergeWordsSolution.js
Created September 3, 2021 09:48
Merge words solution
// Create a function that will allow you to pass in a string, with the ability to add to this with more function calls. When it is finally passed an empty argument return the full concatinated string of all arguments pased previously.
// For example: mergeWords("Hello")("World!")("how")("are")("you?")();
// This will return the following: "Hello World! how are you?"
// Solution 1
function mergeWords(string) {
return function(nextString) {
if (nextString === undefined) {
return string;
} else {
@AshishKapoor
AshishKapoor / arrayRotateSolution.js
Last active September 3, 2021 12:41
Array rotation solution
/**
* @param {number[]} nums
* @param {number} k
* @return {void} Do not return anything, modify nums in-place instead.
*/
// using unshift and pop method (Good for first run)
var rotateByUnshift = function(nums, k) {
k = k > nums.length ? k - nums.length : k;
for(var i=0;i<k;i++){
nums.unshift(nums.pop());