Skip to content

Instantly share code, notes, and snippets.

Avatar

Abhinav Kulshreshtha Abhinav1217

View GitHub Profile
@Abhinav1217
Abhinav1217 / ramblings.md
Created Jun 24, 2022 — forked from slimsag/ramblings.md
Because cross-compiling binaries for Windows is easier than building natively
View ramblings.md

Because cross-compiling binaries for Windows is easier than building natively

I want Microsoft to do better, want Windows to be a decent development platform-and yet, I constantly see Microsoft playing the open source game: advertising how open-source and developer friendly they are - only to crush developers under the heel of the corporate behemoth's boot.

The people who work at Microsoft are amazing, kind, talented individuals. This is aimed at the company's leadership, who I feel has on many occassions crushed myself and other developers under. It's a plea for help.

The source of truth for the 'open source' C#, C++, Rust, and other Windows SDKs is proprietary

You probably haven't heard of it before, but if you've ever used win32 API bindings in C#, C++, Rust, or other languages, odds are they were generated from a repository called microsoft/win32metadata.

@Abhinav1217
Abhinav1217 / HashSet.php
Created Mar 29, 2022
Simple Implementation of HashSet in php for quick hacks. Not recommended in actual works.
View HashSet.php
<?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 / update-dart-sass.sh
Created Nov 10, 2021
Install or Update Dart Sass in linux system.
View update-dart-sass.sh
#!/usr/bin/env bash
# Script to update dart-sass from official github release.
# Copyright (C) 2021 Abhinav Kulshreshtha
# Last revised 05th october 2021 "updated with proper url"
@Abhinav1217
Abhinav1217 / search.sh
Created Jul 29, 2020 — forked from jonlabelle/search.sh
Bash script to search file contents (by file extension) for the specified search term. Uses grep under the hood.
View search.sh
#!/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.
View Cleanup-Old-Snap-pkg.sh
# 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 Apr 20, 2020
sumByLong() polyfill and similar options.
View sumByLong.kt
// 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 / CheckNetwork.java
Last active Nov 10, 2021
Network Test on API 29 - Java
View CheckNetwork.java
package com.example.simplenetwork;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.util.Log;
View vscode-keybindings.jsonc
// 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"
View _brightness.scss
// 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/
View import_package_with_autoloading.php
<?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.