Skip to content

Instantly share code, notes, and snippets.

View rmariano's full-sized avatar
😀
Technically fearless; Exemplary practitioner.

Mariano Anaya rmariano

😀
Technically fearless; Exemplary practitioner.
View GitHub Profile
"""A small script to find all months that have a Monday 25th for a particular
year.
Input: year in format YYYY
Output: print list of dates that are a Monday 25 in that year
"""
import re
import sys
from typing import Iterator
from datetime import date
@rmariano
rmariano / Local-development-for-Python-gRPC.md
Last active March 24, 2020 08:14
Testing out async grpc

gRPC Python: Instructions for Local Development

Note: The compilation of the C files (make) requires GCC version 7. Maybe LLVM?

  1. Git clone & init the project
git clone ...
git submodule update --init
@rmariano
rmariano / README.md
Last active July 17, 2019 13:03
Proposal for exposing the aiogrpc interface to users

Aio gRPC

A Proposal from the user's perspective

As a user, to use the new implementation of gRCP in the asynchronous version, I will compile by passing a specific flag:

$ python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. proto/echo.proto --aiogrpc

This compiles the stubs, generated with the asynchronous code.

@rmariano
rmariano / discovering_descriptors.py
Last active July 11, 2017 18:14
Discovering Descriptors
"""Code for the talk "Discovering Descriptors"
> PyCon CZ 2017 - 8 to 10 June - Prage, Czech Republic
June 9th, 2017 11:00 CET
> EuroPython 2017 - 9 to 16 July - Rimini, Italy
July 11th, 2017 15:45 CET
https://ep2017.europython.eu/conference/talks/discovering-descriptors
Python 3.6
@rmariano
rmariano / main.go
Created March 22, 2017 08:42 — forked from divan/main.go
Golang database/sql+http example (postgres)
// Run PostgreSQL server:
// docker run -e POSTGRES_PASSWORD="" -p 5432:5432 postgres
// Monitor running processes:
// watch -n 1 'echo "select pid,query_start,state,query from pg_stat_activity;" | psql -h localhost -U postgres
//
// For all handlers, call to db takes 5 seconds,
//
// Three endpoints:
// - "/" - take 5 seconds
// - "/ctx" - take 1 seconds, due to 1 second cancellation policy
@rmariano
rmariano / oofunctional.py
Created January 5, 2017 10:20
Functional programming wrapped in object
"""
Object that allows chaining functional programming operations
over a provided data set.
"""
from operator import add
from functools import partialmethod, reduce
class ChainedFunctional:
@rmariano
rmariano / declarative programming repo problem.cs
Last active December 29, 2016 00:08 — forked from lifebeyondfife/declarative programming repo problem.cs
Declarative Programming Repo Problem. Problem available in C#, JavaScript and Python.
/*
Code below can be run directly into LINQPad - https://www.linqpad.net/
Return the owner and repo name of the most starred project with more than 100 contributors, for each language
The declarative implementation can be solved using the Select, Where, Aggregate and GroupBy LINQ extension methods
*/
void Main()
{
var repos = new List<Repo> {
@rmariano
rmariano / subcls.py
Last active September 15, 2020 17:59
LeaveClasses.md
class Top(object):
pass
class A(Top): pass
class B(Top): pass
class A1(A): pass
@rmariano
rmariano / Vagrantfile
Created June 20, 2015 21:30
Vagrant: Ubuntu 1404 libvirt
# -*- mode: ruby -*-
# vi: set ft=ruby :
#
Vagrant.configure(2) do |config|
# This is an image of Ubuntu 14.04 LTS with libvirt support
config.vm.box = "baremettle/ubuntu-14.04"
config.vm.provision :shell, path: "provision.sh"
# config.vm.synced_folder "../data", "/vagrant_data"
@rmariano
rmariano / coding_guideline_python.rst
Last active May 16, 2017 09:56
Coding guildelines for Python

Coding style

This file should summarize some important points to take into account in order to achieve a clean code base, enumerating not only style traits but also tips that might make the code more readable and maintainable.

1. PEP8 with criteria: for example if a line goes beyond 80 cols, but breaking it would make an ugly code, or if the exceeding part is trivial (a comma, brackets, etc.), then leave it as it is, do not make pointless trims.