Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
I may be slow to respond.

Mohammad Khanafi thekingofbandit

💭
I may be slow to respond.
View GitHub Profile
View use-key-press-example.jsx
import { useState, useEffect } from 'react';
// Usage
function App() {
// Call our hook for each key that we'd like to monitor
const happyPress = useKeyPress('h');
const sadPress = useKeyPress('s');
const robotPress = useKeyPress('r');
const foxPress = useKeyPress('f');
View ReactClassComponentWithMethods.jsx
import React, { Component } from 'react';
import PropTypes from 'prop-types';
class reactClassComponentWIthMethods extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
View configure multiple github accounts on the same machine.md

SSH keys

Create

ssh-keygen -o

You can view the created files (one without extension and one with .pub) under ~/.ssh/. When creating several of them, you may want to rename them appropriately (e.g. work, pers...).

Add them

to the relevant github account: https://github.com/settings/ssh/new

Configuration

The configuration file for ssh is usually not created by default so we create it:

View untrusted-lvl1-solution.js
/*****************
* cellBlockA.js *
*****************
*
* Good morning, Dr. Eval.
*
* It wasn't easy, but I've managed to get your computer down
* to you. This system might be unfamiliar, but the underlying
* code is still JavaScript. Just like we predicted.
*
@thekingofbandit
thekingofbandit / Documentation.md
Created Sep 23, 2020 — forked from KartikTalwar/Documentation.md
Rsync over SSH - (40MB/s over 1GB NICs)
View Documentation.md

The fastest remote directory rsync over ssh archival I can muster (40MB/s over 1gb NICs)

This creates an archive that does the following:

rsync (Everyone seems to like -z, but it is much slower for me)

  • a: archive mode - rescursive, preserves owner, preserves permissions, preserves modification times, preserves group, copies symlinks as symlinks, preserves device files.
  • H: preserves hard-links
  • A: preserves ACLs
View array_iteration_thoughts.md

While attempting to explain JavaScript's reduce method on arrays, conceptually, I came up with the following - hopefully it's helpful; happy to tweak it if anyone has suggestions.

Intro

JavaScript Arrays have lots of built in methods on their prototype. Some of them mutate - ie, they change the underlying array in-place. Luckily, most of them do not - they instead return an entirely distinct array. Since arrays are conceptually a contiguous list of items, it helps code clarity and maintainability a lot to be able to operate on them in a "functional" way. (I'll also insist on referring to an array as a "list" - although in some languages, List is a native data type, in JS and this post, I'm referring to the concept. Everywhere I use the word "list" you can assume I'm talking about a JS Array) This means, to perform a single operation on the list as a whole ("atomically"), and to return a new list - thus making it much simpler to think about both the old list and the new one, what they contain, and

View index.html
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="[push to chart data]">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script>
View request.js
/**
* Axios Request Wrapper
* ---------------------
*
* @author Sheharyar Naseer (@sheharyarn)
* @license MIT
*
*/
import axios from 'axios'
@thekingofbandit
thekingofbandit / no-css
Created Jun 27, 2020 — forked from Kartones/no-css
Bookmark to remove all CSS, JS and iframesfrom a page. Just paste as new bookmark
View no-css
javascript:%20var%20el,%20i,%20size;%20%20for(i=0,%20size=document.styleSheets.length;%20i<size;%20i++)%20{%20void(document.styleSheets.item(i).disabled=true);%20}%20%20el%20=%20document.getElementsByTagName('script');%20%20while%20(el.length%20>%200)%20{%20%20void(el[0].parentNode.removeChild(el[0]));%20%20}%20%20el%20=%20document.getElementsByTagName('link');%20%20while%20(el.length%20>%200)%20{%20%20void(el[0].parentNode.removeChild(el[0]));%20%20}%20%20el%20=%20document.getElementsByTagName('iframe');%20%20while%20(el.length%20>%200)%20{%20%20void(el[0].parentNode.removeChild(el[0]));%20%20}%20%20el%20=%20document.getElementsByTagName('*');%20%20for%20(%20i=0,%20size=el.length;%20i%20<%20size;%20i++)%20{%20%20void(el[i].style.cssText%20=%20'');%20%20}
@thekingofbandit
thekingofbandit / imagemagick.md
Created Jun 27, 2020 — forked from Kartones/image-and-video.md
Imagemagick & ffmpeg commands
View imagemagick.md

imagemagick

  • Nornalize all images of a folder converting them to jpgs with 90% quality (warning, removes original files):
rename 's/\.JPG$/\.jpg/' *.JPG
rename 's/\.JPEG$/\.jpg/' *.JPEG
rename 's/\.jpeg$/\.jpg/' *.jpeg
mogrify -format jpg *.png
mogrify -resize 1600x1280\> -quality 90 *.jpg
rm *.png