Skip to content

Instantly share code, notes, and snippets.

View shivanshs9's full-sized avatar
🔥
Unlimited Code Works! ⚔️

Shivansh Saini shivanshs9

🔥
Unlimited Code Works! ⚔️
View GitHub Profile
@shivanshs9
shivanshs9 / mixins.py
Created December 8, 2018 08:41
Mixin for Django Rest Framework View/Viewsets to use different response data/serializers without unnecessary hacks.
class UnsafeResponseSerializerMixin(object):
"""
Apply this mixin to any view or viewset to automatically use a different response
serializer on POST, PUT or PATCH requests.
Override 'get_response_data' method to return back the desired data, or
'get_response' method to also provide additional changs to the returned Response.
"""
def get_response_data(self, request):

Keybase proof

I hereby claim:

  • I am shivanshs9 on github.
  • I am shivanshs9 (https://keybase.io/shivanshs9) on keybase.
  • I have a public key whose fingerprint is AB5F BF93 4643 CDEF C77F 7686 4A92 F697 E2C6 C0FC

To claim this, I am signing this object:

@shivanshs9
shivanshs9 / adb_backup.zsh
Created May 22, 2020 16:07
Backup folders locally via adb
input=()
for path in /sdcard/{"Pictures","Download","DCIM"}; do
input+=$(adb shell "ls -d '$path'")
done
for path in $input; do
adb pull $path &
done
@shivanshs9
shivanshs9 / a2dp.py
Last active June 22, 2020 21:29 — forked from pylover/a2dp.py
Fixing bluetooth stereo headphone/headset problem in ubuntu 16.04, 16.10 and also debian jessie, with bluez5.
#! /usr/bin/env python3
"""
Fixing bluetooth stereo headphone/headset problem in ubuntu 16.04 and also debian jessie, with bluez5.
Workaround for bug: https://bugs.launchpad.net/ubuntu/+source/indicator-sound/+bug/1577197
Run it with python3.5 or higher after pairing/connecting the bluetooth stereo headphone.
This will be only fixes the bluez5 problem mentioned above .
# Combined workflow to build and create release
## It's an hack until https://github.community/t/triggering-a-new-workflow-from-another-workflow/16250/24 is solved by Github
---
name: Build and Release
on:
push:
branches:
- master
jobs:
build:
name: Keep the versions up-to-date
on:
release:
types: [published, edited]
jobs:
actions-tagger:
runs-on: ubuntu-latest
steps:
- uses: Actions-R-Us/actions-tagger@v2
env:
@shivanshs9
shivanshs9 / git-backcommit
Last active July 22, 2020 08:12
Wraps 'git commit' command to override AuthorDate and CommitDate (if date is provided)
#!/usr/bin/env bash
## Copyright 2020 Shivansh Saini<shivanshs9@gmail.com>
# Licensed under MIT
usage() {
cat << EOD
Usage: `basename $0` [options] [date] -- [commit args]
@shivanshs9
shivanshs9 / gist:b321f21bf78cedd660ee94f1d4352eb1
Created September 5, 2020 22:17
Script to simultaneously reassign owner of all tables in a given DB (source: https://stackoverflow.com/a/2686185/2674983)
### Use:
# reassign_owner dbName newOwner oldOwner/root dbHost
reassign_owner() {
db="$1"
newUser="$2"
owner="${3:-$newUser}"
dbHost="$4"
local pw
echo -n "Password: " > /dev/tty
@shivanshs9
shivanshs9 / System Design.md
Created February 2, 2021 22:59 — forked from vasanthk/System Design.md
System Design Cheatsheet

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?
#!/bin/sh
# Assume sudo by default
[ $(id -u) -eq 0 ] || exec sudo $0 $@
for bin in /var/lib/rancher/k3s/data/**/bin/; do
[ -d $bin ] && export PATH=$PATH:$bin:$bin/aux
done
set -x