Skip to content

Instantly share code, notes, and snippets.

View giuliano-macedo's full-sized avatar
🏠
Working from home

Giuliano Macedo giuliano-macedo

🏠
Working from home
  • Brazil
  • 11:17 (UTC -03:00)
View GitHub Profile
@giuliano-macedo
giuliano-macedo / ptytest.c
Last active September 5, 2018 16:03
Get ping realtime stdout and exit code in C using forkpty and execvp
#include <stdlib.h>
#include <stdio.h>
#include <pty.h>
#include <unistd.h>
#include <sys/wait.h>
int ptytest(){
int master;
pid_t pid;
pid = forkpty(&master, NULL, NULL, NULL);
@giuliano-macedo
giuliano-macedo / timer.c
Last active October 4, 2018 01:01
Not mt safe time.h nanoseconds timer function
#include<stdio.h>
#include <time.h>
struct timespec TIMER_START,TIMER_END;
long unsigned int timer(int f){
if(f){
clock_gettime(CLOCK_MONOTONIC_RAW, &TIMER_START);
return 0;
}
clock_gettime(CLOCK_MONOTONIC_RAW, &TIMER_END);
return (TIMER_END.tv_sec - TIMER_START.tv_sec) * 1e9 + (TIMER_END.tv_nsec - TIMER_START.tv_nsec);
from random import shuffle,choice
from itertools import repeat,chain
from functools import partial
from multiprocessing.pool import Pool
from argparse import ArgumentParser
def cheat(l,x):return True
def findIt1(l,x):
for i in range(50):
if l[i]==x:return True
return False
@giuliano-macedo
giuliano-macedo / ptytest.py
Last active August 19, 2019 13:43
Get ping realtime stdout and exit code in python using forkpty and execvp
import os
def bash_real_time(command):
pid,fd = os.forkpty()
if pid == 0:
os.execv('/bin/bash',['bash','-c',command])
exit(0)
while True:
try:
output = os.read(fd,1024).decode("utf-8").rstrip()
@giuliano-macedo
giuliano-macedo / tex.py
Last active August 16, 2020 18:42
Move tex files and compiles them in a temp dir, then move pdf file to root. Works on linux and requires nodemon and latexmk
#!/usr/bin/env python3
import argparse
import os
from tempfile import mkdtemp
parser=argparse.ArgumentParser()
parser.add_argument("input",type=str)
args=parser.parse_args()
pwd=os.path.realpath(os.getcwd())
@giuliano-macedo
giuliano-macedo / hu_moments.tex
Last active June 25, 2022 07:32
Hu moments in Latex
$
M_{ij}=\sum\limits_{x}\sum\limits_{y}x^iy^iI(x,y)\\
\eta_{pq}=\sum\limits_{x}\sum\limits_{y}(x-\bar x)^p(y- \bar y)^qI(x,y)\\
\bar x=\frac{M_{10}}{M_{00}}, \bar y=\frac{M_{01}}{M_{00}}\\
\mu_{pq}=\frac{\eta_{pq}}{\eta_{00}^\gamma},\gamma=\frac{p+q}{2}\\
H_{1} = \mu_{20} + \mu_{02}\\
H_{2} = (\mu_{20} - \mu_{02})^2 + 4(\mu_{11})^2\\
H_{3} = (\mu_{30} - 3\mu_{12})^2 + (\mu_{03} - 3\mu_{21})^2\\
H_{4} = (\mu_{30} + \mu_{12})^2 + (\mu_{03} + \mu_{21})^2\\
H_{5} = (\mu_{30} - 3\mu_{12})(\mu_{30} + \mu_{12})((\mu_{30} + \mu_{12})^2 - 3(\mu_{21} + \mu_{03})^2) + (3\mu_{21} - \mu_{03})(\mu_{21} + \mu_{03})(3(\mu_{30} + \mu_{12})^2 - (\mu_{03} + \mu_{21})^2)\\
@giuliano-macedo
giuliano-macedo / simpleroutertopo.py
Last active July 21, 2022 02:55
simple mininet custom topology with static routing
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Node
from mininet.log import setLogLevel, info
from mininet.cli import CLI
class LinuxRouter( Node ):
"""A Node with IP forwarding enabled.
Means that every packet that is in this node, comunicate freely with its interfaces."""
@giuliano-macedo
giuliano-macedo / paladins.py
Created December 30, 2019 22:43
helper script to get how many matches i have to do so i can get "Variety is the Spice of Life", "The Dedicated" and "The Insane" achievements by scraping paladins-tracker.de for the updated stats
import requests
from bs4 import BeautifulSoup as BS
from collections import namedtuple
from math import ceil
#config
lvs=[10,15,20]
mean_exp=32000
#----
table=[20000,60000,120000,200000,300000,420000,560000,720000,900000,1100000,1320000,1560000,1820000,2100000,2400000,2720000,3060000,3420000,3800000,4200000]
def fix_exp(exp,lvl):
@giuliano-macedo
giuliano-macedo / paladins_elo.py
Last active January 8, 2020 00:21
script to get players elo using paladins-tracker.de
import requests
from bs4 import BeautifulSoup as BS
from multiprocessing.dummy import Pool
def get_elo(nickname):
sess=requests.Session()
r=sess.get(f"https://paladins-tracker.de/search/player/{nickname}")
soup=BS(r.text,"html.parser")
link=soup.select_one(".player-meta.clearfix a")
if link==None:
@giuliano-macedo
giuliano-macedo / file_picker_form_field.dart
Last active June 1, 2020 19:16
A String path form field for the file_picker package.
import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
class FilePickerFormField extends StatelessWidget {
final Function(String) validator;
final Function(String) onSaved;
final String labelText;
final String hintText;