Skip to content

Instantly share code, notes, and snippets.

Alessandro Pezzato alepez

Block or report user

Report or block alepez

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@alepez
alepez / print-byte-array.cpp
Created Jun 14, 2019
print byte array as human readble hex numbers
View print-byte-array.cpp
inline void printHex(const uint8_t* s, unsigned size)
{
for (unsigned i = 0; i != size; ++i)
{
if (s[i] > ' ' && s[i] <= '~')
{
printf("'%c' %02x ", s[i], (int)s[i]);
}
else
@alepez
alepez / string-compare-human.cpp
Created Jun 14, 2019
string compare with human readable diff
View string-compare-human.cpp
bool stringsCompare(const std::string& a, const std::string& b)
{
for (int i = 0; i < a.size() && i < b.size(); ++i)
{
if (a[i] != b[i])
{
fprintf(stderr, "At index %i: %c != %c\n", i, a[i], b[i]);
return false;
}
else
@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>>;
You can’t perform that action at this time.