Skip to content

Instantly share code, notes, and snippets.

View WanpengQian's full-sized avatar
👳‍♀️

Wanpeng Qian WanpengQian

👳‍♀️
  • Fukuoka, Japan
View GitHub Profile
@WanpengQian
WanpengQian / nginx_remove_double_slashes.md
Created July 19, 2022 02:03 — forked from JustThomas/nginx_remove_double_slashes.md
nginx: Remove double slashes from URLs

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;
vin = 0
vout = 0
sp = SerialPorts[1]
function string.tohex(str)
return (str:gsub('.', function (c)
return string.format('%02X', string.byte(c))
end))
end
@WanpengQian
WanpengQian / New-GPUPDriverPackage.ps1
Created March 18, 2022 05:02 — forked from neggles/New-GPUPDriverPackage.ps1
Hyper-V GPU Virtualization
<#
.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
@WanpengQian
WanpengQian / UniqueIDGenerator.cpp
Created March 19, 2021 06:49 — forked from wdanxna/UniqueIDGenerator.cpp
Thread safe Unique ID Generator in c++ using std::atomic
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
#!/bin/sh
# -*- sh -*-
#
# Plugin to monitor NVMe harddrive temperatures through nvmecontrol.
#
#%# family=contrib
if [ "$1" = "autoconf" ]; then
if [ -x "/sbin/nvmecontrol" ]; then
echo yes
@WanpengQian
WanpengQian / stringformat_constexpr_if.cpp
Created November 27, 2020 06:12 — forked from Zitrax/stringformat_constexpr_if.cpp
stringformat with constexpr if
#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) {
@WanpengQian
WanpengQian / stash_dropped.md
Created March 31, 2020 00:22 — forked from joseluisq/stash_dropped.md
How to recover a dropped stash in Git?

How to recover a dropped stash in Git?

1. Find the stash commits

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.

#!/bin/sh
COLOR_RED="\e[33;31;1m"
COLOR_OFF="\e[m"
if [ -z "$1" ]
then
echo "No argument supplied"
exit 1
fi
@WanpengQian
WanpengQian / PPPoE on FreeBSD
Created May 31, 2019 01:16 — forked from ysarro/PPPoE on FreeBSD
PPPoE on FreeBSD
/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