"Não sei a natureza do seu projeto, mas outra opção interessante do módulo multiprocessing é usar um pool em vez de criar os processos um a um: from multiprocessing.pool import ThreadPool cria um pool com 10 threads with ThreadPool(10) as pool: for resu..."5 tabcoins · 0 comentário · kht · 6 meses atrás
"Só pra constar, a parte importante relativa ao título ("Deixar o $ do bash na linha abaixo") é somente o \n: export PS1="\[$(tput bold)\]\[$(tput setaf 2)\]\u@\h\[$(tput setaf 7)\]:\[$(tput setaf 4)\]\W\n\[$(tput setaf 7)\]$ \[$(tput sgr0)\]" ^^ aqui P..."12 tabcoins · 2 comentários · kht · 6 meses atrás
"Excelente! Esse é o tipo de coisa que muita gente não se preocupa, porque na maioria das vezes estão lidando com arrays pequenos e a diferença não é perceptível. Afinal, para poucos dados, tudo é rápido. O problema só aparece em grandes volumes, e é aí..."5 tabcoins · 1 comentário · kht · 6 meses atrás
"Infelizmente no horário da live não vou poder assistir. Mas depois dou uma olhada no discord."1 tabcoin · 0 comentário · kht · 6 meses atrás
"Muito bom! É excelente ver alguém focando nos fundamentos e nas bases da computação (aquilo que muita gente chama de "teoria chata" e diz que "nunca usei e nem usarei"). Grafos são importantíssimos, o problema é que na maioria dos casos não vamos preci..."5 tabcoins · 2 comentários · kht · 6 meses atrás
"Complementando: Sobre o "usar condições", na verdade não se restringe a isso. Você pode colocar qualquer expressão válida que retorne algum valor, e este será impresso. Exemplos: const x = 10.4; // Arrendondando e somando 10: 20 console.log(Arrendondan..."4 tabcoins · 0 comentário · kht · 6 meses atrás
"resolvi perguntar ao ChatGPT se existia a possibilidade de haver algum bug no GitHub. O ChatGPT não retornou nenhum erro ou bug. O ChatGPT não tem como avaliar se algum site ou serviço está com erro. Vc já viu como o ChatGPT funciona? Leia (não só este..."2 tabcoins · 0 comentário · kht · 6 meses atrás
"Tem um detalhe que pode fazer diferença principalmente ao manipular arquivos grandes. Métodos como read e readlines carregam todo o conteúdo do arquivo para a memória: o segundo é ainda pior porque primeiro ele cria uma lista com todas as linhas, e só..."1 tabcoin · 0 comentário · kht · 7 meses atrás
"Muito bom! Este é um recurso que - minha impressão - poucas pessoas usam no dia-a-dia (infelizmente). Outro ponto muito importante é que o searchParams já cuida de vários detalhes chatos pra vc. Por exemplo, se o valor do parâmetro tiver caracteres com..."19 tabcoins · 1 comentário · kht · 7 meses atrás
"Complementando: Sobre o escopo de variáveis, existe uma "brecha": acessar uma variável que foi declarada fora da função (desde que não haja uma atribuição a ela) é permitido. Exemplo: def f(): print('dentro da função', x) x = 10 f() print('fora da funç..."2 tabcoins · 0 comentário · kht · 7 meses atrás
"Complementando: Em Python, existe uma construção que não é comum em outras linguagens mainstream: um loop for ou while pode ter um else associado. A ideia é que este bloco só é chamado caso o loop não seja interrompido por break. Exemplo: itens = # lis..."4 tabcoins · 0 comentário · kht · 7 meses atrás
"Complementando: Note que o primeiro alias que vc criou foi alias g=git. Então ele poderia ser usado nos demais: alias g=git os próximos podem usar o primeiro alias alias ga='g add' alias gaa='g add --all' etc... Neste caso meio que dá na mesma (exceto..."4 tabcoins · 0 comentário · kht · 7 meses atrás
"Sobre o Revenue Share, vi que muita coisa foi discutida no GitHub, mas acho que seria interessante um resumo das regras que foram de fato implementadas. Olhando o FAQ hoje, diz o seguinte: Para criar uma publicação patrocinada, você investirá 100 TabCa..."7 tabcoins · 2 comentários · kht · 7 meses atrás
"Vou tentar não ser o velho saudosista "no meu tempo era melhor" (algumas coisas até que eram, mas nem tudo). Antigamente a informação era mais difusa e difícil de encontrar. Havia muitos fóruns e blogs espalhados pela internet, com níveis de qualidade..."5 tabcoins · 1 comentário · kht · 7 meses atrás
"Realmente, o correto nesses trechos seria code units e não bytes. Já corrigi o texto, obrigado!"2 tabcoins · 0 comentário · kht · 7 meses atrás
"Idealmente, existe essa ideia de que "classe é o molde (ou a receita, ou a planta da casa), e a instância é o objeto em si (ou o bolo, ou a casa propriamente dita)". Neste caso, os campos (que não é a mesma coisa que atributo) seriam uma forma de guard..."4 tabcoins · 1 comentário · kht · 7 meses atrás
"A questão é mais complexa e vai muito além de "gente malvada destruindo sonhos". Sites diferentes possuem objetivos diferentes. E geralmente a forma de funcionamento e os mecanismos são projetados para atingir tais objetivos (se funciona ou não, é outr..."8 tabcoins · 3 comentários · kht · 8 meses atrás
"Só de curiosidade, como vc trataria a questão do zero à esquerda? Por exemplo, se vc guarda o valor 02312142007 como número (por exemplo, se for no banco de dados, em uma coluna do tipo NUMBER), o que será gravado será o valor numérico 2312142007 (o ze..."4 tabcoins · 1 comentário · kht · 8 meses atrás
"O problema de guardar como número é que o zero à esquerda pode acabar sendo ignorado, já que para um número, 02, 000002 e 2 são basicamente a mesma coisa: ambos representam o mesmo valor numérico, a mesma grandeza/quantidade (muda apenas a formatação)...."7 tabcoins · 2 comentários · kht · 8 meses atrás
"Já disse em outros posts, mas não custa repetir: mesmo que vc ache que não, usamos matemática praticamente o tempo todo pra programar. O problema é que quando dizemos "matemática", muita gente associa com aquilo que vemos na escola: decorar fórmulas e..."29 tabcoins · 1 comentário · kht · 8 meses atrás
"Fiz um post sobre Protobuf, o objetivo é ser apenas uma introdução, mas acho que dá pra pegar a ideia geral da coisa: https://www.tabnews.com.br/kht/protobuf-um-formato-binario-bem-compacto-ou-devo-usar-json-pra-tudo Boa leitura! :-)"1 tabcoin · 1 comentário · kht · 8 meses atrás
"Bom, eu usei pouco o Protobuf, então não sei se entendo tanto a ponto de escrever um post (talvez um introdutório, veremos). A ideia básica é que vc cria um arquivo contendo o formato da mensagem (por exemplo, "Usuario" com os campos "id" e "nome", etc..."2 tabcoins · 0 comentário · kht · 8 meses atrás
"Além da história ser interessante, dá pra tirar algumas lições dela. - Acontece que GTA se esforça para analisar um arquivo JSON de 10 MB; - O parser do JSON em si é mal construído/ingênuo; Na verdade eu voltaria alguns passos e questionaria se precisa..."10 tabcoins · 5 comentários · kht · 8 meses atrás
"Vale lembrar que, caso não seja possível alterar as funções, ainda dá pra passar um dicionário: def calcular_imposto(valor_bruto, aliquota, deducoes, dependentes, estado): faz algo com os valores... def calcular_salario_liquido(valor_bruto, aliquota, d..."2 tabcoins · 0 comentário · kht · 8 meses atrás
"Sem modificar as funções, uma alternativa é colocar todos os valores em uma tupla, e depois usar a sintaxe de unpacking ao chamá-las: params = (valor_bruto, aliquota, deducoes, dependentes, estado) calcular_imposto(*params) calcular_salario_liquido(*pa..."6 tabcoins · 1 comentário · kht · 8 meses atrás
"Sim, esta é uma das várias implementações possíveis de strategy, com todas as vantagens que este pattern traz. O problema é que vc ainda está preso à ideia de que DP é só sobre orientação a objetos, e que só dá pra fazer com classes. Não é, e novamente..."1 tabcoin · 0 comentário · kht · 8 meses atrás
"Bom, antes de mais nada dê uma lida aqui: "ChatGPT responde incorretamente 52% das perguntas de programação, mostra estudo". Pois é, a IA ainda erra bastante, mas a resposta é dada com tanta convicção que pode acabar nos enganando. Tanto que o mesmo es..."3 tabcoins · 2 comentários · kht · 8 meses atrás
"A resposta para a sua pergunta (e que costuma ser a mesma para a maioria das situações) é: "Depende". No caso, este código usa querySelector para buscar vários elementos da página. Mas o que acontece se o script rodar antes da página carregar, ou seja,..."3 tabcoins · 1 comentário · kht · 8 meses atrás
"Aqui vc definiu as opções de linha de comando: Arg::new("target").short('t').long("Target Number") Arg::new("list").short('l').long("List") Ou seja, o "target" pode usar a opção curta -t ou a opção longa --Target\ Number (tive que usar \ porque tem um..."3 tabcoins · 2 comentários · kht · 8 meses atrás
"É, essa lista não ficou tão ruim quanto a minha. Tabela não ficou bom aqui, mas é por causa da forma como o site gerou o HTML. Se tivesse um scroll lateral sem truncar tanto as colunas, ficaria melhor. Ainda sim, pra esse caso específico prefiro a tabe..."2 tabcoins · 1 comentário · kht · 8 meses atrás