Skip to content

Instantly share code, notes, and snippets.


Miguel Araujo miguelarauj1o

View GitHub Profile
miguelarauj1o /
Created May 29, 2018 — forked from nadavrot/
Efficient matrix multiplication

High-Performance Matrix Multiplication

This is a short post that explains how to write a high-performance matrix multiplication program on modern processors. In this tutorial I will use a single core of the Skylake-client CPU with AVX2, but the principles in this post also apply to other processors with different instruction sets (such as AVX512).


Matrix multiplication is a mathematical operation that defines the product of

miguelarauj1o /
Created Feb 14, 2018 — forked from joepie91/
Don't use VPN services.

Don't use VPN services.

No, seriously, don't. You're probably reading this because you've asked what VPN service to use, and this is the answer.

Note: The content in this post does not apply to using VPN for their intended purpose; that is, as a virtual private (internal) network. It only applies to using it as a glorified proxy, which is what every third-party "VPN provider" does.

(A Russian translation of this article can be found here, contributed by Timur Demin.)

Why not?

miguelarauj1o / cunsultaplaca.rb
Created Oct 4, 2017 — forked from ronanrodrigo/cunsultaplaca.rb
Consulta de informações básicas sobre veículos através da placa utilizando o sistema Sinesp Cidadão.
View cunsultaplaca.rb
require "uri"
require "net/http"
require 'base64'
require 'cgi'
require 'openssl'
HOST_KEY = "shienshenlhq"
def search_plate plate
hmac = OpenSSL::HMAC.hexdigest('sha1'), HOST_KEY.encode("ASCII"), plate.encode("ASCII"))
miguelarauj1o / master.vim
Created Jun 26, 2017 — forked from gmccreight/master.vim
A script that gives you a playground for mastering vim
View master.vim
" copy all this into a vim buffer, save it, then...
" source the file by typing :so %
" Now the vim buffer acts like a specialized application for mastering vim
" There are two queues, Study and Known. Depending how confident you feel
" about the item you are currently learning, you can move it down several
" positions, all the way to the end of the Study queue, or to the Known
" queue.
" type ,, (that's comma comma)
miguelarauj1o / The Technical Interview Cheat
Created Jun 22, 2017 — forked from TSiege/The Technical Interview Cheat
This is my technical interview cheat sheet. Feel free to fork it or do whatever you want with it. PLEASE let me know if there are any errors or if anything crucial is missing. I will add more links soon.
View The Technical Interview Cheat

Studying for a Tech Interview Sucks, so Here's a Cheat Sheet to Help

This list is meant to be a both a quick guide and reference for further research into these topics. It's basically a summary of that comp sci course you never took or forgot about, so there's no way it can cover everything in depth. It also will be available as a gist on Github for everyone to edit and add to.

Data Structure Basics

###Array ####Definition:

  • Stores data elements based on an sequential, most commonly 0 based, index.
  • Based on tuples from set theory.
miguelarauj1o /
Created Mar 7, 2017 — forked from gitaarik/
Git Submodules basic explanation

Git Submodules basic explanation

Why submodules?

In Git you can add a submodule to a repository. This is basically a repository embedded in your main repository. This can be very useful. A couple of advantages of using submodules:

  • You can separate the code into different repositories.
View mymodule.erl
start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
crash() ->
gen_server:cast(?MODULE, crash).
handle_cast(crash,State) ->
{stop, error, State};
miguelarauj1o / example.erl
Created Dec 14, 2016 — forked from kevsmith/example.erl
Example of gen_server template output
View example.erl
%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 et
%% @author Kevin Smith <>
%% @copyright 2011 Opscode, Inc.
miguelarauj1o /
Created Dec 14, 2016 — forked from robertoaloi/
Kill an Erlang process by node name
#!/usr/bin/env bash
# Kill an Erlang process by node name
# e.g.: kill-erlang-node kred
# Check usage
if [ -z "$1" ]; then
echo "Usage: `basename $0` NODE_NAME"
exit 1
miguelarauj1o / Makefile
Created Nov 28, 2016 — forked from leandrosilva/Makefile
Makefile to compile, run, and test Erlang applications
View Makefile
APP_NAME := my_awesome_app
all: compile
compile: clear
@cp src/$(APP_NAME).app ebin/
@erlc -pa ebin/ -o ebin/ src/*.erl
compile_test: compile
@erlc -pa ebin/ -o ebin/ test/*.erl