Jump to content

Tiago Neves

Membros
  • Contagem de Conteúdo

    12
  • Ingressou

  • Última visita

Informações Pessoais

  • Cidade
    Aracaju
  • Estado
    Sergipe (SE)

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Não
  • Você é um parceiro da Casa do Desenvolvedor?
    Não

Visitantes Recentes do Perfil

O bloco de visitantes recentes está desativado e não está sendo mostrado a outros usuários.

Conquistas de Tiago Neves

  1. Fala, @edenilson carmo. Infelizmente, essa funcionalidade foi descontinuada em 2021. Mas não se preocupe! Existem alternativas eficazes para você continuar aprendendo e praticando o DOM: Extensões para Depuração: Live Server: Uma das extensões mais populares para o Visual Studio Code, o Live Server permite iniciar um servidor HTTP local com apenas um clique. Isso facilita a visualização das alterações do DOM em um navegador real. Browser Preview: Outra ótima opção, a extensão Browser Preview oferece uma pré-visualização integrada do navegador dentro do próprio Visual Studio Code. Ideal para testes rápidos e ajustes no código. Ferramentas de Desenvolvedor do Navegador: Inspeção do Elemento: Utilize as ferramentas de desenvolvedor do seu navegador (F12 no Chrome, Firefox e Edge) para inspecionar o DOM e testar seus scripts. Essa ferramenta oferece informações detalhadas sobre os elementos da página e permite modificar o código HTML e CSS diretamente no navegador. Console do Navegador: O console do navegador (acessível pela guia "Console" nas ferramentas de desenvolvedor) é essencial para registrar mensagens de log, testar funções JavaScript e interagir com o DOM.
  2. O problema no seu código reside na maneira como você está posicionando o div2 dentro do div1. A propriedade left: 25%; right: 25%; está posicionando o div2 em relação ao tamanho total do viewport, e não do div1. Para solucionar isso, você precisa utilizar o posicionamento relativo (position: relative) no div1 e o posicionamento absoluto (position: absolute) no div2, mas com referência ao div1. .div1 { position: relative; /* Posicionamento relativo para o div1 */ width: 550px; height: 150px; border: solid 1px; border-radius: 20px; margin-top: 15px; } .div2 { position: absolute; /* Posicionamento absoluto */ top: 50%; /* Centraliza verticalmente */ transform: translateY(-50%); /* Compensa o deslocamento do top: 50% */ left: 25%; /* 25% da largura do div1 */ right: 25%; /* 25% da largura do div1 */ border: solid 0px; border-radius: 0px 0px 20px 20px; text-align: center; color: white; font-family: Gill Sans Extrabold, sans-serif; } /* Apenas para melhorar a visualização do exemplo */ .div1 { background: white; } .div2 { background: #2ecc71; height: 20%; }
  3. Como criar seu “próprio” ChatGPT; veja passo a passo E, boa sorte!
  4. Olá, @novodev! O problema no seu código JavaScript está na comparação feita dentro do if. O erro ocorre porque você está comparando o objeto txtn com a string "Brasil" usando o operador de igualdade (==). O objeto txtn representa o elemento de entrada com o ID txtpais. Quando você compara um objeto com uma string usando o operador ==, o JavaScript verifica apenas se as referências dos objetos são iguais. No seu caso, as referências nunca serão iguais, pois txtn sempre será uma nova referência para o elemento de entrada, enquanto "Brasil" é uma referência constante para a string. Para comparar o valor textual digitado no campo de entrada com "Brasil", você precisa usar o método trim() para remover espaços em branco e o método toLowerCase() para converter o texto para minúsculas antes da comparação. Além disso, é recomendável usar o operador de comparação estrita (===) para garantir que os tipos de dados também sejam iguais. Possível solução: <body> <h1>Teste de Nacionalidade</h1> Digite país de origem: <input type="text" name="txtpais" id="txtpais"> <input type="button" value="Verificar" onclick="Nacionalidade()"> <script> function Nacionalidade(){ var txtn = window.document.getElementById('txtpais').value.trim().toLowerCase(); if(txtn === 'brasil'){ txtn.innerHTML = 'Você é brasileiro'; } } </script> </body> </html>
  5. Fala @Lucas Barreto, tudo bem? Então, o problema ocorre porque o navegador precisa ter acesso ao arquivo de fonte para poder usá-lo. Quando você declara a regra @font-face em um arquivo CSS local, o navegador pode encontrar o arquivo de fonte no mesmo diretório que o arquivo CSS. No entanto, quando você declara a regra em um arquivo CSS externo, o navegador precisa saber onde encontrar o arquivo de fonte. Se o caminho para o arquivo de fonte não for especificado corretamente, o navegador não poderá encontrá-lo e as fontes personalizadas não serão aplicadas. Seria ótimo se você pudesse subir o código para o GitHub. Acredito que o problema esteja na geração do build, que junta os arquivos CSS em um único arquivo e não tem a pasta "fontes".
  6. Rust é uma linguagem de programação de sistema que foi desenvolvida pela Mozilla Research. Ela foi projetada para ser segura, concorrente e prática. Rust visa oferecer uma alternativa moderna e segura às linguagens de programação tradicionais, como C e C++, ao mesmo tempo em que mantém um desempenho similar. A linguagem Rust é caracterizada por várias características distintas: Segurança: Rust foi projetada com um forte foco em segurança de memória. Isso significa que ela previne erros de acesso à memória, como estouro de buffer e referências nulas, em tempo de compilação, o que ajuda a evitar muitos bugs comuns em sistemas de software. Concorrência: Rust possui um modelo de concorrência poderoso e seguro. Ela oferece facilidades para criar código concorrente que é livre de condições de corrida e outros problemas típicos encontrados em programas multi-threaded. Desempenho: Apesar de seu foco em segurança, Rust é uma linguagem de alto desempenho. Ela permite o controle fino sobre os recursos de hardware, o que a torna adequada para sistemas que exigem eficiência e rapidez. Além dessas características principais, Rust também oferece outras vantagens, como um sistema de tipos estáticos poderoso, inferência de tipo, gerenciamento de dependências integrado através do Cargo (o gerenciador de pacotes de Rust) e uma comunidade ativa e acolhedora. Rust é uma linguagem moderna e poderosa que combina segurança, concorrência e desempenho, tornando-a uma escolha atraente para uma ampla gama de aplicativos, desde sistemas operacionais até aplicativos da web e jogos. Seria uma escolha perfeita para desenvolver soluções de automação comercial devido às suas características de segurança, desempenho e concorrência.
  7. Criar um pipeline de análise de sentimentos envolve diversas etapas, desde a coleta e pré-processamento dos dados até o treinamento e avaliação do modelo. O processo específico pode variar de acordo com as suas necessidades e ferramentas escolhidas, mas em geral, as etapas a seguir são essenciais. Coleta de dados Pré-processamento de dados Extração de recursos Treinamento do modelo Avaliação do modelo Implantação do modelo Lembrando que a criação de um pipeline de análise de sentimentos eficaz requer conhecimento em processamento de linguagem natural, aprendizado de máquina e engenharia de software.
  8. Fala, @Pedro Augusto seja se assim funciona: var rangeEditada = null; var valoresOriginais = null; var tipoEdicao = null; function onOpen() { adicionarTriggerVerificacaoSenha(); } function adicionarTriggerVerificacaoSenha() { var planilha = SpreadsheetApp.getActiveSpreadsheet(); ScriptApp.newTrigger("verificarSenha") .forSpreadsheet(planilha) .onEdit() .create(); } function verificarSenha(e) { var senhaCorreta = "123"; // Insira sua senha aqui var usuario = Session.getActiveUser(); var sheet = e.range.getSheet(); if (!sheet.getName().match(/^\d{2}$/)) return; // Sai se a guia não estiver no formato "XX" var senhaDigitada; var tentativas = 0; while (true) { senhaDigitada = Browser.inputBox('INFORME A SENHA', 'Senha:', Browser.Buttons.OK_CANCEL); if (senhaDigitada === senhaCorreta) { break; // Sai do loop se a senha estiver correta } else if (senhaDigitada === "cancel") { if (rangeEditada && valoresOriginais) { switch (tipoEdicao) { case "insercao": rangeEditada.deleteCells(SpreadsheetApp.Dimension.ROWS); break; case "exclusao": var sheet = rangeEditada.getSheet(); var startRow = rangeEditada.getRow(); var startColumn = rangeEditada.getColumn(); var numRows = valoresOriginais.length; var numCols = valoresOriginais[0].length; sheet.getRange(startRow, startColumn, numRows, numCols).setValues(valoresOriginais); break; case "alteracao": rangeEditada.setValues(valoresOriginais); break; } } return; // Sai da função sem exibir o Browser.msgBox novamente } tentativas++; if (tentativas > 0) { Browser.msgBox("Senha incorreta!"); } } // Remove o trigger após a primeira execução ScriptApp.getProjectTriggers().forEach(function(trigger) { ScriptApp.deleteTrigger(trigger); }); // Salva a célula editada, seus valores originais e o tipo de edição rangeEditada = e.range; valoresOriginais = e.range.getValues(); if (e.range.isBlank()) { tipoEdicao = "insercao"; } else if (e.range.getSheet().getRange(e.range.getRow(), 1).isBlank()) { tipoEdicao = "exclusao"; } else { tipoEdicao = "alteracao"; } }
  9. Analisando o script .bat em questão, podemos concluir que a criação das pastas "Settings", "ôand" e "internet" na sua área de trabalho se deve à maneira como o script está estruturado e às variáveis que ele utiliza. 1. Estrutura do Script: O script utiliza um loop for /D para iterar sobre os perfis de usuário existentes no sistema. Dentro deste loop, ele tenta excluir e recriar as pastas temporárias em cada perfil. 2. Variáveis: O script utiliza variáveis para definir os caminhos das pastas temporárias. No entanto, existem duas variáveis que podem estar causando o problema: %temp%: Essa variável se expande para o caminho da pasta temporária do usuário atual. No entanto, no contexto do loop for /D, ela pode estar expandindo para diferentes caminhos para cada perfil de usuário. "C:\Documents and Settings\*": Essa string contém um asterisco * que serve como curinga para encontrar todos os perfis de usuário na pasta C:\Documents and Settings. No entanto, em sistemas mais recentes, a pasta C:\Documents and Settings não existe, e a string pode estar expandindo para outros diretórios que contêm perfis de usuário, como C:\Users. 3. Criação Inesperada de Pastas: Devido à combinação da estrutura do loop e das variáveis, o script pode estar tentando excluir e recriar as pastas temporárias em locais incorretos. Isso pode resultar na criação das pastas "Settings", "ôand" e "internet" na sua área de trabalho, pois o script pode estar interpretando esses nomes como caminhos válidos para as pastas temporárias. Soluções: Para evitar a criação inesperada de pastas, você pode tentar as seguintes soluções: Modificar o Script: Verifique se a variável %temp% está sendo utilizada corretamente dentro do loop for /D. Se necessário, utilize a variável %%x para obter o caminho da pasta temporária do perfil de usuário atual. Verifique se a string "C:\Documents and Settings\*" está correta para o seu sistema. Se necessário, substitua-a pela string "C:\Users\*" para sistemas mais recentes. Executar o Script em um Local Específico: Em vez de executar o script diretamente na área de trabalho, execute-o em uma pasta específica onde você não se importe com a criação de pastas temporárias. Considerações Importantes: Esteja ciente de que modificar scripts .bat pode ter consequências indesejadas, caso você não tenha conhecimento técnico suficiente. É recomendável criar backups dos seus arquivos antes de realizar qualquer alteração no script. Se você não se sentir confortável em modificar o script, você pode procurar por scripts alternativos que realizem a limpeza de pastas temporárias de forma mais segura e confiável.
  10. Faço algo parecido com a lib Colly em GO.
  11. package main import ( "encoding/json" "fmt" "io/ioutil" "net/http" "bufio" "os" ) type CEP struct { CEP string `json:"cep"` Logradouro string `json:"logradouro"` Complemento string `json:"complemento"` Bairro string `json:"bairro"` Cidade string `json:"cidade"` } func main() { // Cria um leitor para obter a entrada do usuário leitor := bufio.NewReader(os.Stdin) fmt.Println("Digite o CEP: ") // Lê o CEP digitado pelo usuário cep, _, _ := leitor.ReadLine() // Substitui o CEP na URL da API url := fmt.Sprintf("https://viacep.com.br/ws/%s/json/", cep) // Faz a requisição à API resposta, _ := http.Get(url) // Lê o corpo da resposta dados, _ := ioutil.ReadAll(resposta.Body) // Converte o JSON em uma struct CEP var dadosCEP CEP json.Unmarshal(dados, &dadosCEP) // Exibe o endereço formatado fmt.Printf("Endereço:\nCEP: %s\nLogradouro: %s\nComplemento: %s\nBairro: %s\nCidade: %s\n", dadosCEP.CEP, dadosCEP.Logradouro, dadosCEP.Complemento, dadosCEP.Bairro, dadosCEP.Cidade) }
×
×
  • Create New...