Skip to content

Instantly share code, notes, and snippets.

View paulohrpinheiro's full-sized avatar
🏠
Working from home

Paulo Henrique Rodrigues Pinheiro paulohrpinheiro

🏠
Working from home
View GitHub Profile
@paulohrpinheiro
paulohrpinheiro / sortedcoteiners-cprofile1.sh
Created August 22, 2015 21:01
Saída da primeira medição.
$ python3 -m cProfile distrincha.py < test.txt
Total of words: 42740
120568 function calls in 229.015 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
102 0.002 0.000 0.004 0.000 codecs.py:297(decode)
1 0.181 0.181 229.015 229.015 distrincha.py:1()
5000 0.184 0.000 0.325 0.000 distrincha.py:12()
@paulohrpinheiro
paulohrpinheiro / sortedcoteiners-refactor.py
Created August 22, 2015 20:58
Primeira refatorado do programa.
import sys
def distrincha():
words = set()
plain_text = list()
codded_text= list()
# need for speed
_words_add = words.add
_codded_text_append = codded_text.append
@paulohrpinheiro
paulohrpinheiro / sortedcoteiners-words.py
Created August 22, 2015 20:55
Gera um texto aleatório.
import sys
import random
import string
LINES, WORDS, CHARS = [int(sys.argv[x]) for x in (range(1,1+3))]
randomize = random.Random()
random_number = randomize.randint
choice_one = randomize.choice
possible_letters = string.ascii_letters
@paulohrpinheiro
paulohrpinheiro / sortedcoteiners-first.py
Created August 22, 2015 20:53
Descobre a estrutura de palavras de um texto.
import sys
words = set()
plain_text = list()
codded_text= list()
# read content
plain_text = [l.strip().split() for l in sys.stdin]
# build a word list from content
for line in plain_text:
@paulohrpinheiro
paulohrpinheiro / fixtures-final.pl
Created August 22, 2015 18:58
Programa final usando o package.
#!/usr/bin/env perl
use strict;
use warnings;
use JSON;
use Util::Password;
my $password = Util::Password::Encrypt('{#MinhaSenhaSuuuuperSegura#}');
@paulohrpinheiro
paulohrpinheiro / fixtures-package.pm
Created August 22, 2015 18:57
Módulo Perl para resolver meu problema.
package Util::Password;
use strict;
use warnings;
use Crypt::Eksblowfish::Bcrypt;
use Crypt::Random;
sub Encrypt {
my $password = shift;
@paulohrpinheiro
paulohrpinheiro / fixtures-first.pl
Last active August 29, 2015 14:27
Fixture simples
#!/usr/bin/env perl
use strict;
use warnings;
use JSON;
my $root_user = {
email => '[email protected]',
name => 'Chail Root Admin',
@paulohrpinheiro
paulohrpinheiro / sqlite-nc.pl
Created August 22, 2015 17:53
Exemplo completo de chamadas naticas em Perl6.
use NativeCall;
constant $LIBNAME = 'libsqlite3';
sub sqlite3_open (Str, Array[OpaquePointer]) returns Int is native($LIBNAME) { * }
sub sqlite3_exec (OpaquePointer, Str, OpaquePointer, OpaquePointer,OpaquePointer) returns Int is native($LIBNAME) { * }
sub sqlite3_errmsg (OpaquePointer) returns Str is native($LIBNAME) { * }
sub sqlite3_close (OpaquePointer) returns Int is native($LIBNAME) { * }
my @handler := CArray[OpaquePointer].new;
@handler[0] = OpaquePointer;
> our sub Sqlite3LibVersion is symbol('sqlite3_libversion') returns Str is native('libsqlite3') { }
sub Sqlite3LibVersion( --> Str) { #`(Sub+{NativeCallSymbol[Str]}+{Native[Sub+{NativeCallSymbol[Str]},Str]}|140598245394280) ... }
> Sqlite3LibVersion()
3.8.8
@paulohrpinheiro
paulohrpinheiro / perl6-chamadas-naticas-second.sh
Created August 22, 2015 17:49
Criando uma chamada nativa com nome alternativo.
> our sub Sqlite3VersionNumber is symbol('sqlite3_libversion_number') returns Int is native('libsqlite3') { * }
sub Sqlite3VersionNumber( --> Int) { #`(Sub+{NativeCallSymbol[Str]}+{Native[Sub+{NativeCallSymbol[Str]},Str]}|140598248149192) ... }
> Sqlite3VersionNumber();
3008008