- Fork https://github.com/github/dmca
- Download latest youtube-dl source code from https://yt-dl.org/latest
- Extract
tar -xvf youtube-dl-2020.09.20.tar.gz
- Push code to your fork as the GitHub CEO
tar -xvf youtube-dl-2020.09.20.tar.gz
#!/bin/sh | |
# Script to set up rules to implement offline periods | |
# during which Internet connection is blocked. | |
# Start or extend sudo session | |
sudo -v | |
# Get the local network address subnet, which should be allowed | |
# https://askubuntu.com/a/872939/23900 |
Kinesis Freestyle (Terrible key switches. Mushy and un-lovable)
Kinesis Freestyle Edge (Traditional layout with too many keys, mech switches, proably too big to be tented easily/properly)
Matias Ergo Pro (Looks pretty great. Have not tried.)
ErgoDox Kit (Currently, my everyday keyboard. Can buy pre-assembled on eBay.)
ErgoDox EZ (Prolly the best option for most people.)
These are my notes on instaling NixOS 16.03 on a Lenovo ThinkPad X1 Carbon (4th generation) with an encrypted root file system using UEFI.
Most of this is scrambled from the following pages:
{ pkgs ? import <nixpkgs> {} }: | |
with pkgs; | |
let | |
su_exec = pkgs.stdenv.mkDerivation { | |
name = "su-exec-0.2"; | |
src = fetchurl { | |
url = https://github.com/ncopa/su-exec/archive/v0.2.tar.gz; | |
sha256 = "09ayhm4w7ahvwk6wpjimvgv8lx89qx31znkywqmypkp6rpccnjpc"; |
nix-channel
and ~/.nix-defexpr
are gone. We'll use $NIX_PATH
(or user environment specific overrides configured via nix set-path
) to look up packages. Since $NIX_PATH
supports URLs nowadays, this removes the need for channels: you can just set $NIX_PATH
to e.g. https://nixos.org/channels/nixos-15.09/nixexprs.tar.xz
and stay up to date automatically.
By default, packages are selected by attribute name, rather than the name
attribute. Thus nix install hello
is basically equivalent to nix-env -iA hello
. The attribute name is recorded in the user environment manifest and used in upgrades. Thus (at least by default) hello
won't be upgraded to helloVariant
.
@vcunat suggested making this an arbitrary Nix expression rather than an attrpath, e.g. firefox.override { enableFoo = true; }
. However, such an expression would not have a key in the user environment, unlike an attrpath. Better to require an explicit flag for this.
TBD: How to deal with search path clashes.
Removing the last commit
To remove the last commit from git, you can simply run git reset --hard HEAD^
If you are removing multiple commits from the top, you can run git reset --hard HEAD~2 to remove the last two commits. You can increase the number to remove even more commits.
If you want to "uncommit" the commits, but keep the changes around for reworking, remove the "--hard": git reset HEAD^
which will evict the commits from the branch and from the index, but leave the working tree around.
If you want to save the commits on a new branch name, then run git branch newbranchname
before doing the git reset.
# delete local tag '12345' | |
git tag -d 12345 | |
# delete remote tag '12345' (eg, GitHub version too) | |
git push origin :refs/tags/12345 | |
# alternative approach | |
git push --delete origin tagName | |
git tag -d tagName |