Skip to content

Instantly share code, notes, and snippets.

Alessandro Pezzato alepez

View GitHub Profile
@alepez
alepez / AutoHotkey.ahk
Created Mar 7, 2019
AutoHotkey: italian accents on us layout. Caps-Lock -> Ctrl/Esc
View AutoHotkey.ahk
; Map Caps-Lock to ESC (single press) and Ctrl (long press)
#InstallKeybdHook
SetCapsLockState, alwaysoff
Capslock::
Send {LControl Down}
KeyWait, CapsLock
Send {LControl Up}
if ( A_PriorKey = "CapsLock" )
{
@alepez
alepez / freqtail.cpp
Created Jan 17, 2019
Count time between new lines
View freqtail.cpp
#include <chrono>
#include <iostream>
#include <thread>
int main() {
using namespace std::chrono;
std::string line;
auto t = steady_clock::now();
while (std::cin >> line) {
const auto now = steady_clock::now();
View encodeBase16.cpp
static void encodeBase16(char* const dst, const void* const src, const unsigned size) {
static const uint8_t table[] = "0123456789ABCDEF";
char* d = dst;
const uint8_t* s = static_cast<const uint8_t*>(src);
const uint8_t* const sEnd = s + size;
while (s < sEnd) {
const uint8_t c = *s;
*d = table[c >> 4];
@alepez
alepez / game.c
Last active Dec 12, 2018
trooper.c
View game.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define for_x for (int x = 0; x < w; x++)
#define for_y for (int y = 0; y < h; y++)
#define for_xy for_x for_y
void show(void* u, int w, int h) {
int(*univ)[w] = u;
View gist:d7020a39fbcb988bed76554a829a357d
// When you don't have permissions to export to csv
$('#report-summary-popup table tr').map((i, e) => [$(e).find('td').map((i, e) => $(e).text().trim()).get()]).get().map(x => x.slice(1, x.length).join(',')).join('\n')
@alepez
alepez / lambda_on_destructor.cpp
Created Oct 4, 2018
lambda_on_destructor.cpp
View lambda_on_destructor.cpp
#include <iostream>
#include <memory>
struct Foo {
Foo(std::function<void()>&& fun) : f{std::move(fun)} { }
~Foo() { f(); }
std::function<void()> f;
};
int main() {
View gitlab-docker-migrate.md

Nell'host di destinazione, avvio un nuovo container GitLab:

docker run --detach --hostname git.decktutor.net --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab  --restart always  --volume /srv/gitlab/config:/etc/gitlab  --volume /srv/gitlab/logs:/var/log/gitlab  --volume /srv/gitlab/data:/var/opt/gitlab  gitlab/gitlab-ce:10.8.4-ce.0

Copio gitlab.rb dalla sorgente alla destinazione /srv/gitlab/config/gitlab.rb

Nell'host di destinazione, riconfiguro gitlab con il nuovo gitlab.rb:

docker exec -ti gitlab gitlab-ctl reconfigure
@alepez
alepez / weak-ptr-global.cpp
Created Jun 5, 2018
weak-ptr-global (global is bad practice, but at least this is automatically released)
View weak-ptr-global.cpp
#include <cassert>
#include <iostream>
#include <memory>
#include <mutex>
#include <string>
#include <unordered_map>
template <typename T>
std::shared_ptr<T> get_global(int id) {
using Map = std::unordered_map<int, std::weak_ptr<T>>;
@alepez
alepez / qt-eigen-opengl-demo.cmake
Created Apr 13, 2018
cmakelist.txt qt eigen opengl demo
View qt-eigen-opengl-demo.cmake
add_custom_target(demos)
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(OpenGL)
find_package(Eigen3)
set(CMAKE_AUTOMOC ON)
@alepez
alepez / fix_modular_sequence.cpp
Created Mar 29, 2018
Fix a sequence in a modular range, keeping direction
View fix_modular_sequence.cpp
template <typename T>
T fix_modular_sequence(T&& seq, const typename T::value_type modulus) {
const auto threshold = modulus / 2.0;
auto it = seq.begin();
auto prev = *it;
while (it != seq.end()) {
++it;
auto& curr = *it;
auto diff = curr - prev;
if (std::abs(diff) > threshold) curr -= (diff < 0 ? -1 : 1) * modulus;
You can’t perform that action at this time.