"Complementando, existe outra forma de declarar propriedades que caem neste caso mais "comum" (o getter só retorna e o setter só recebe o valor). Basta usar a sintaxe de Auto-implemented properties. E neste caso, para criar o objeto, use um object initi..."7 tabcoins · 0 comentário · kht · 7 meses atrás
"Acho que a ideia principal é aproveitar o fato de não precisar recalcular tudo todas as vezes. Por exemplo, vamos supor que eu já calculei $3!$ usando um loop (multiplicando todos os inteiros de 1 a 3). Depois, quando for calcular $4!$, não preciso faz..."3 tabcoins · 1 comentário · kht · 7 meses atrás
"Estou na área há mais de 20 anos e até hoje eu copio. Claro que não o tempo todo. A cópia em si não é ruim. O problema é copiar cegamente, sem procurar entender (pesquisando se for o caso) o que o código faz, como faz, se realmente serve pro seu caso o..."4 tabcoins · 1 comentário · kht · 7 meses atrás
"É bem por aí. Uma situação que vejo muito em diversos sites similares, em que os usuários votam no conteúdo dos outros: a pessoa reclama que tomou negativo e ninguém explicou o motivo. Até que um dia alguém resolve explicar, mas aí a pessoa não aceita,..."3 tabcoins · 0 comentário · kht · 7 meses atrás
"acabei alcançando seu blog Legal! Infelizmente ele está bem desatualizado, não estou conseguindo escrever com a frequência que gostaria. Mas espero que goste do que já tem lá, sugestões e críticas são bem vindas também :-)"1 tabcoin · 0 comentário · kht · 8 meses atrás
"É perfeitamente possível criar commits com qualquer data que vc quiser, veja aqui. Por exemplo, acabei de fazer um teste aqui, criei um repositório do zero e fiz um commit assim: GIT_COMMITTER_DATE="1980-01-01 10:00" git commit --date="1981-01-01 10:00..."9 tabcoins · 2 comentários · kht · 8 meses atrás
"float não é adequado para valores monetários. Os números de ponto flutuante são imprecisos e possuem várias nuances difíceis de perceber. Se quiser se aprofundar mais, aqui tem vários links sobre o assunto - e cada um desses links tem vários outros, sã..."4 tabcoins · 1 comentário · kht · 8 meses atrás
"Ah, os velhos tempos (não necessariamente "bons" - algumas coisas até que eram sim, outras não). Na faculdade usei Turbo Pascal na matéria de Introdução à Programação, todos diziam que "Pascal é uma linguagem bem didática", etc. De fato era bem simples..."8 tabcoins · 0 comentário · kht · 8 meses atrás
"Muito bom! Complementando, todas estas opções de formatação podem ser encontradas na documentação (é bem ampla, com várias outras opções, sugiro a leitura). Um detalhe interessante é que os parâmetros de formatação (tamanho, alinhamento, etc) podem ser..."3 tabcoins · 0 comentário · kht · 8 meses atrás
"Como saber se sou pleno? Não tem como responder de forma objetiva, simplesmente porque não existe uma definição oficial desses "níveis" (júnior, pleno, sênior, e qualquer outro que inventarem). Então cada um tem sua própria definição, com critérios que..."5 tabcoins · 0 comentário · kht · 8 meses atrás
"em menos de dois anos e meio que não programava nada Mas vc mexia muito com Python? Porque as características que vc relatou não são tão recentes assim... for i in i range(a,quantidade) Isso nunca foi uma sintaxe válida em Python, a menos que seja um e..."2 tabcoins · 1 comentário · kht · 8 meses atrás
"Bom, mudando um pouco de assunto, uma dica que posso dar é que - pelo menos no último exemplo - vc está não está usando map da melhor maneira. Quer dizer, até "funciona", mas não é a ferramenta adequada para este caso. A ideia do map é executar algo co..."2 tabcoins · 0 comentário · kht · 8 meses atrás
"Vc pode compartilhar o código completo? Ou pelo menos algum exemplo reduzido que dê o mesmo resultado. Porque sem isso não tem como analisar o que está fazendo com que um seja mais rápido que outro, nem o que de fato está sendo comparado. Em geral, um..."1 tabcoin · 2 comentários · kht · 8 meses atrás
"O problema de qualquer critério que for definido é que não tem como escapar da subjetividade. Sempre vai ter um componente subjetivo, que depende muito do background e da experiência prévia de cada um. Por exemplo, perguntas sobre algum assunto batido..."3 tabcoins · 1 comentário · kht · 8 meses atrás
"Pessoas diferentes encaram as publicações de formas diferentes, então votam de maneiras diferentes. Perfeito. Nem sempre todo mundo vai concordar com todo mundo. O que é bom pra um pode ser muito ruim pra outro. Tem vezes que vejo posts que eu acho bon..."3 tabcoins · 3 comentários · kht · 8 meses atrás
"Só um detalhe, que é uma confusão que muitos fazem: complexidade não mede o tempo de execução. O único jeito de saber o tempo exato que um programa leva para executar é testando-o em condições reais. O que funções como o Big-O fazem é determinar o "tra..."2 tabcoins · 0 comentário · kht · 8 meses atrás
"O WebStorm tem uma versão trial de 30 dias, por que vc não instala e testa? Assim vc mesmo poderá ver se vale a pena ou não - inclusive, usar é a melhor maneira de decidir isso, já que a escolha de IDE costuma ser algo pessoal, vai da preferência de ca..."3 tabcoins · 1 comentário · kht · 8 meses atrás
"Muito bom! Complementando: sobre os comandos switch e restore, eu já fiz este post. Vale lembrar que até hoje, a documentação oficial (aqui e aqui) ainda diz que eles são comandos experimentais e podem mudar. De qualquer forma, é interessante conhecê-l..."5 tabcoins · 1 comentário · kht · 8 meses atrás
"vão todos os arquivos do meu repositório local e não apenas os que eu selecionei no git add Mas a ideia do git push é justamente essa: enviar para o repositório remoto todas as alterações do seu branch local que ainda não estão lá. Aqui tem uma explica..."1 tabcoin · 0 comentário · kht · 9 meses atrás
"Outra opção interessante deste comando é mudar o nome do branch inicial. Por padrão, git init cria o branch "master". Mas é possível alterar o nome do branch inicial usando a opção --initial-branch ou -b. Por exemplo, se eu quiser que seja "main": : A..."5 tabcoins · 0 comentário · kht · 9 meses atrás
"Só pra complementar, além de transformar o número em string, tem também a solução matemática. A mais comum que se vê por aí é a de construir o número inverso e comparar com o original: // gerar o número inverso de "num" e comparar com o original functi..."4 tabcoins · 0 comentário · kht · 9 meses atrás
"Sobre matemática, já falei aqui e aqui. Sugiro ler tudo para um panorama mais completo, mas pra resumir um ponto essencial: matemática não é só aquilo que vemos na escola (decorar fórmulas e fazer continhas), vai muito além disso. Um trecho do segundo..."2 tabcoins · 0 comentário · kht · 9 meses atrás
"Uma das utilidades de closure é o caso clássico de precisar usar uma função anônima de callback dentro de um loop. Exemplo: for (var i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 1000 * i); } Ou seja, em cada iteração do for, eu chamo..."1 tabcoin · 1 comentário · kht · 9 meses atrás
"Sobre os data attributes, o propósito deles é simplesmente de armazenar dados customizados associados a um elemento, quando não há nenhum outro atributo que sirva. Isso é descrito pela própria especificação do HTML: Custom data attributes are intended..."2 tabcoins · 0 comentário · kht · 9 meses atrás
"Pra mim, qualquer um que defenda ou leve a sério esses pacotes tipo is-odd já é desqualificado na hora. E pra completar o show de horrores, o is-even tem como dependência o is-odd, inclusive seu código fonte é: module.exports = function isEven(i) { ret..."1 tabcoin · 0 comentário · kht · 9 meses atrás
"Complementando... O ASCII original só tinha 128 caracteres. Aí perceberam que tinha mais 128 "sobrando", e que ainda sim caberia em um byte. Vários tiveram essa ideia ao mesmo tempo e cada um criou seu próprio mapeamento - como vc disse, cada valor ent..."3 tabcoins · 1 comentário · kht · 9 meses atrás
"Eu não diria que são um lixo completo, apenas que são ferramentas que têm sua utilidade, mas que ao longo do tempo foram extremamente abusadas (ou seja, usadas em contextos inadequados, nos quais não eram a melhor solução). O fato de terem sido moda po..."2 tabcoins · 0 comentário · kht · 9 meses atrás
"Muito bom, mas só um detalhe sobre o RSA. Foi dito que: 1. chave pública, que é capaz apenas de encriptar. 2. chave privada, que é capaz apenas de decriptar. Na verdade, ambas as chaves servem para encriptar e decriptar (e o que é encriptado com uma, s..."6 tabcoins · 1 comentário · kht · 9 meses atrás
"Muito bom! Só pra complementar, a função também poderia ser assim: function verificarInterseccao(a1, a2, b1, b2) { return !((b2 a2)); } Ou seja, se uma das condições for verdade, retornará falso. Mas quando eu tenho algo como !(cond1 || cond2), eu poss..."4 tabcoins · 2 comentários · kht · 9 meses atrás
"Primeiramente parabéns por não negligenciar matemática, pois ignorá-la é um erro que a grande maioria comete. Só fica o alerta que matemática vai muito além de fazer contas e decorar fórmulas (que infelizmente é a abordagem da escola), e que programaçã..."6 tabcoins · 0 comentário · kht · 9 meses atrás