Skip to content

Instantly share code, notes, and snippets.

View paulofreitas's full-sized avatar

Paulo Freitas paulofreitas

View GitHub Profile
@paulofreitas
paulofreitas / gdd11-new.py
Last active September 30, 2023 17:16
Full script for the Google Developer Day '11 Quiz
#!/usr/bin/env python3
# Google Developer Day Quiz
# Written by Paulo Freitas <me@paulofreitas.me>, updated for modern Python
class GooglonLexer(object):
def __init__(self, text: str) -> None:
self.words = text.split(' ')
def get_prepositions(self) -> list[str]:
return list(filter(
@paulofreitas
paulofreitas / Validate_BR.class.php
Last active December 12, 2015 03:08
PHP data validation class for Brazil
<?php
/**
* Data validation class for Brazil
*
* @category Validate
* @package Validate_BR
* @author Paulo Freitas <me@paulofreitas.me>
* @version 20130204
* @copyright 2005-2013 Paulo Freitas
@paulofreitas
paulofreitas / buscaCEP.js
Last active December 16, 2015 10:49
Busca de CEP através do site dos Correios (jQuery)
/*
* Busca de CEP através do site dos Correios (jQuery)
*/
function buscaCEP(cep, callback, callbackErro) {
$.get('http://www.correios.com.br/encomendas/malote/endereco.cfm',
{'tipo': 'origem', 'cep': cep},
function (data) {
var data = $('<div/>').append(data).find('input').map(function () {
return this.value;
}).get();
@paulofreitas
paulofreitas / bd_ibge.php
Last active December 20, 2015 04:08
Gerador de schema SQL para tabelas de estados e cidades diretamente do site do IBGE
<?php
header('Content-Type: text/plain; charset=utf-8');
$schema = <<<SQL
--
-- Tabela 'Estado'
--
CREATE TABLE Estado (
codEstado INT(1) NOT NULL AUTO_INCREMENT,
@paulofreitas
paulofreitas / buscaCEP.php
Last active December 20, 2015 04:09
Busca de CEP através do site dos Correios
<?php
/*
* Busca de CEP através do site dos Correios
*/
function buscaCEP($cep) {
$dom = new DOMDocument();
$dom->loadHTMLFile(
"http://www.correios.com.br/encomendas/malote/endereco.cfm?tipo=origem&cep=$cep");
$xpath = new DOMXPath($dom);
<?php
function formatSize($bytes, $force_unit = null, $format = null, $si = true)
{
// Format string
$format = ($format === null) ? '%01.2f %s' : (string) $format;
if (($si == false) || (strpos($force_unit, 'i') !== false)) {
// IEC prefixes (binary)
$units = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
@paulofreitas
paulofreitas / gist:6941716
Created October 11, 2013 20:41
Implementação do nono dígito com o Masked Input Plugin (http://digitalbush.com/projects/masked-input-plugin/).
var changePhoneMask = function () {
var phone = $(this).val().replace(/\D+/g, '');
if (phone.length == 2) {
if ($.inArray(phone, [11, 12, 13, 14, 15, 16, 17, 18, 19] > -1)) {
$(this).unmask().mask('(99) 99999-9999');
} else {
$(this).unmask().mask('(99) 9999-9999');
}
}
@paulofreitas
paulofreitas / win_proc_arch.py
Last active August 27, 2020 04:39
Windows processor architecture via Windows API
import ctypes
DWORD = ctypes.c_ulong
DWORD_PTR = DWORD
LPVOID = ctypes.c_void_p
WORD = ctypes.c_ushort
# MSDN info: http://msdn.microsoft.com/en-us/library/ms724958(VS.85).aspx
class SYSTEM_INFO_struct(ctypes.Structure):
<?php
print date('m', strtotime('first day of 1 month ago'));
print date_create()->modify('first day of 1 month ago')->format('m');
print (new DateTime())->modify('first day of 1 month ago')->format('m');
#!/usr/bin/python
# Alteração in-place
with open('dados1.txt', 'r+w') as f:
lines = [' '.join(l.split() + [str(reduce(lambda x, y: x * y, map(int, l.split())))]) for l in f]
f.seek(0)
f.write('\n'.join(lines))
# Dois arquivos
open('dados2.txt', 'w').write('\n'.join(' '.join(l.split() + [str(reduce(