Put the following directives in your server
block. nginx will then redirect URLs with double (or triple or multiple) slashes to the corresponding URL with a single slash.
merge_slashes off;
rewrite ^(.*?)//+(.*?)$ $1/$2 permanent;
Put the following directives in your server
block. nginx will then redirect URLs with double (or triple or multiple) slashes to the corresponding URL with a single slash.
merge_slashes off;
rewrite ^(.*?)//+(.*?)$ $1/$2 permanent;
<# | |
.SYNOPSIS | |
Create a GPU-P Guest driver package. | |
.DESCRIPTION | |
Gathers the necessary files for a GPU-P enabled Windows guest to run. | |
.EXAMPLE | |
New-GPUPDriverPackage -DestinationPath '.' | |
.EXAMPLE | |
New-GPUPDriverPackage -Filter 'nvidia' -DestinationPath '.' | |
.INPUTS |
template <typename T> | |
struct UniqueIDGenerator { | |
std::atomic<T> _id; | |
std::function<const T(const T&)> _nexter; | |
template <typename NEXT> | |
UniqueIDGenerator(const T& init, const NEXT& nexter) { | |
_id.store(init, std::memory_order::memory_order_release); | |
_nexter = nexter; | |
} |
#include <memory> | |
#include <cassert> | |
#include <Windows.h> | |
struct FileHandle | |
{ | |
::HANDLE fileHandle; | |
//implicit | |
FileHandle(::HANDLE h) noexcept |
#include <string> | |
#include <iostream> | |
#include <memory> | |
/** | |
* Convert all std::strings to const char* using constexpr if (C++17) | |
*/ | |
template<typename T> | |
auto convert(T&& t) { |
git log --graph --oneline --decorate ( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )
This will show you all the commits at the tips of your commit graph which are no longer referenced from any branch or tag – every lost commit, including every stash commit you’ve ever created, will be somewhere in that graph.
/etc/ppp/ppp.conf | |
default: | |
set device PPPoE:<interface connected to modem>:<profile name>: | |
<profile name>: | |
set authname <pppoe username> | |
set authkey <pppoe password> | |
add default HISADDR |
#--- Build tun2socks and udpgw (as the user who will use the proxy) --- | |
mkdir -p $HOME/src | |
cd $HOME/src | |
git clone "https://github.com/ambrop72/badvpn" | |
cd badvpn | |
mkdir -p build | |
cd build | |
export OUTDIR=$PWD | |
export SRCDIR=$(dirname $PWD) |
--- source3/modules/vfs_shadow_copy2.c.orig 2017-04-02 08:19:24 UTC | |
+++ source3/modules/vfs_shadow_copy2.c | |
@@ -1533,7 +1533,7 @@ static bool check_access_snapdir(struct | |
&smb_fname, | |
false, | |
SEC_DIR_LIST); | |
- if (!NT_STATUS_IS_OK(status)) { | |
+ if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) { | |
DEBUG(0,("user does not have list permission " | |
"on snapdir %s\n", |
To simplify home network management, I recently decommissioned my beefy domain controller/file server/Hyper-V host, moving mass file storage to the cloud. I thought I could live without Active Directory, but with 5 PCs and a couple of Windows tablets, I want it back, so my plan is to host a tiny VM instance in hyper-V on 4 of my desktop PCs, creating something like peer-to-peer AD (hopefully with little overhead).
The following references were incredibly helpful, but neither were perfect for getting up and running quickly, hence this gist.