12/12/2024

Chip quântico da Google

Há uns dias a Google divulgou que seu chip quântico, Willow, resolve em 5 minutos um problema que levaria 10 septilhões de anos para ser processado por um supercomputador.

"Septilhões de anos?!"

"Como assim? Como eles calcularam isso? Como provar se isso é verdade?"

Então, comecei e pensar em como testar se isso é verdade?

Bem... Seria só fazer uma tarefa extremamente rápida nesse tal chip quântico e ao mesmo em um supercomputador.

Blz!

Porém...

16/11/2024

SQL - Numerando linhas

Nesta semana encarei um teste de SQL em que me pediram para desenvolver uma query, a princípio simples, mas que deu um nó na minha cabeça ao tentar resolver.

O que me ajudou a chegar a uma solução, depois de alguma pesquisa, foi numerar as linhas, no sentido de atribuir valores inteiros aos registros retornados por um select.

Como eu não tinha o costume de utilizar os recursos de numeração de linhas do SQL, resolvi estudar para melhorar meu conhecimento nesse assunto.

O objetivo deste artigo é dividir com vocês o resultado desse estudo.

[22/11/2024 Uma revisão foi publicada em Medium]

19/08/2024

Cache de função no Python

Utilizar um "cache de função" significa armazenar os resultados das chamadas de uma função, evitando reprocessamentos demorados para os mesmos argumentos.

A ideia é armazenar os argumentos (parâmetros) recebidos pela função e o resultado do processamento retornado pela função.

Assim, quando a função recebe novamente os mesmos argumentos, em vez de executar seu processamento para encontrar o resultado, apenas retorna o resultado previamente armazenado.

Vamos a um exemplo, para melhorar o entendimento.

Digamos que temos uma função que calcula a multiplicação de um número inteiro pelo seu sucessor:

def vezes_proximo(numero):
    print('número =', numero)
    proximo = numero + 1
    print('próximo =', proximo)
    resultado = numero * proximo
    print('resultado =', resultado)
    return resultado

Ao executarmos essa função pela primeira vez, imprimindo seu retorno:

print(vezes_proximo(2))

Obteremos as seguintes informações:

número = 2
próximo = 3
resultado = 6
6

E sempre que executarmos novamente exatamente o mesmo comando, obteremos o mesmo resultado, como esperado!

print(vezes_proximo(2))
número = 2
próximo = 3
resultado = 6
6

Porém, como evitar esse reprocessamento quando não desejado?

É justamente para isso que utilizamos um cache de função.