Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

marcel.mc

Membros Plenos
  • Total de itens

    57
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

9

Sobre marcel.mc

  • Data de Nascimento 13-09-1989 (28 anos)

Informações gerais

  • Cidade e Estado
    Monte Carmelo, MG
  1. Olá pessoal, estou numa empreitada tentando aprender Laravel e desenvolvendo um sistema não muito trivial (pelo menos não para mim que não tenho experiência). Hoje me deparei com um problema que não consegui encontrar solução durante umas 3 horas de pesquisa, se puderem me dar um auxílio agradeço. Um pedaço da minha aplicação, consiste no cliente logar e a partir daí cadastrar algumas informações pertinentes diariamente. Ao logar, ele cai na tela para escolher em qual captação ele irá cadastrar os dados. Na próxima ele escolhe qual sistema de captação, e por fim, ele insere os dados. Para isso tenho as seguintes rotas: Route::get('/prop/{id_prop}/', 'PropriedadeController@clientePropriedade'); Route::get('/prop/{id_prop}/cap/{id_cap}/', 'CaptacaoController@clienteCaptacao')->name('cap'); Route::get('/prop/{id_prop}/cap/{id_cap}/sis/{id_sis}/', 'SistemaController@clienteSistema')->name('sis'); Meu problema é: quando clico no link para alguma captação, sempre sou direcionado para a página do Sistema de Captação pertencente a captação 1. Independente da captação que eu escolher, sempre sou direcionado para os sistemas da captação 1. Usando o método dd() do Laravel para debugar, percebi que o parâmetro (int id) de meu método clienteCaptacao de CaptacaoController tem valor 1. public function clienteCaptacao(int $id) { dd($id);//valor 1 $cap = Captacao::find($id); //dd($cap); if (!isset($cap)) { return view('erros.cliente.nCadastrado', array('nome' => 'captações')); } else { return view('cliente.escolheSistema', compact('cap')); } } Os links estão corretos: <div class="col-lg-3 col-md-6"> <a href=http://h20.laravel/cliente/prop/1/cap/1 class="btn btn-secondary btn-block" style="background-color:red">Captacao 1</a> </div> <div class="col-lg-3 col-md-6"> <a href=http://h20.laravel/cliente/prop/1/cap/2 class="btn btn-secondary btn-block" style="background-color:red">Captacao 2</a> </div> <div class="col-lg-3 col-md-6"> <a href=http://h20.laravel/cliente/prop/1/cap/3 class="btn btn-secondary btn-block" style="background-color:red">Captacao 3</a> </div> Esses são os códigos da minha blade onde crio os links acima: <div class="row"> @foreach ($prop->captacoes as $cap) <div class="col-lg-3 col-md-6"> <a href={{ URL::route("cap", ['id_prop'=>$prop->id, 'id_cap'=>$cap->id])}} class="btn btn-secondary btn-block" style="background-color:red">{{$cap->nome}}</a> </div> @endforeach </div> Imagino que esteja cometendo um erro bobo, mas não tenho a menor ideia de como resolver. Se alguém puder me ajudar, fico grato. Muito obrigado.
  2. Olá pessoal, desculpem a demora em responder. Deixei o projeto em hiato pois não havia conseguido resolver o problema do gargalo. Gostei da proposta do @psykotico, e acabei utilizando como podem ver abaixo, porém somente isso não resolve o problema. Embora a ideia de como resolver não tenha sido tirada do posto do @HwapX , ele menciona a mesma forma. Fico grato do mesmo jeito. Abaixo vou postar os dois métodos e dar uma pequena explicada em como funcionam para eventuais consultas de alguém com problema semelhante: public void percorreDiretoriosCalculaHashRec(File path) { fileMap = new HashMap<>(); for (File f : path.listFiles()) { if (f.isDirectory() && f.canRead()) { percorreDiretoriosCalculaHashRec(f); } else { String hash = calculaHash(f); if (fileMap.containsKey(hash)) { System.out.println("O arquivo: " + f.getPath() + " é igual a " + fileMap.get(hash).getPath()); } else { fileMap.put(hash, f); } } } } Nesse método uso exatamente a ideia proposta pelo @psykotico , percorro a árvore de diretórios recursivamente, calculo o hash de cada arquivo e insiro num map. Se aquele hash já estiver no map, imprimo os arquivos correspondentes. public String calculaHash(File f) { byte[] fArray = null; String hash = null; try { if (f.length() > 1048576) { fArray = new byte[1048576]; RandomAccessFile raf = new RandomAccessFile(f, "r"); raf.read(fArray, 0, 524288); raf.seek(f.length() - 524288); raf.read(fArray, 524288, 524288); raf.close(); } else { fArray = Files.readAllBytes(f.toPath()); } hash = DigestUtils.md5Hex(fArray); } catch (IOException ex) { Logger.getLogger(Comparador.class.getName()).log(Level.SEVERE, null, ex); } return hash; } Nesse método, uso uma das ideias propostas pelo @HwapX. Se o arquivo tem tamanho menor ou igual 1 MB, calcula-se o hash diretamente. Se maior, uso um array de bytes que pega os primeiros 512KB e concatena com os últimos 512KB. Desse array, calculo o hash. Para uma base com mais de 91K arquivos consegui que o programa fosse executado em cerca de 20 minutos. Vou marcar o tópico como encerrado, mas sintam-se a vontade para postar novas ideias ou dúvidas. Muito obrigado aos dois que responderam, suas respostas foram muito úteis.
  3. Olá pessoal, criei um sisteminha para comparar arquivos com finalidade de economizar algum espaço apagando os duplicados. A ideia é bem simples: dado um caminho para um diretório, percorro todos os subdiretórios e calculo o hash para cada arquivo encontrado. Depois saio comparando hash por hash, verificando se são iguais e mostrando o resultado. Funciona, porém as interações de I/O estão gargalando de forma que fica inviável o processo. Fiz o teste com 3 mil arquivos e está gastando cerca de 4 a 5 minutos, acontece que a pasta que mais me interessa verificar tem mais de 91 mil arquivos. Já fiz testes usando essa pasta que demoraram mais 1 hora sem serem concluídos e de longe não chegavam a metade, outros travaram por estourar a heap. Acho que threads com I/O não vão melhorar o desempenho. Eis uma das versões do código (estou usando algumas bibliotecas Apache commons só para evitar a fadiga): private Map<String, String> fileMap; private List<File> fileList; private File filePath; public void geraFileMap(){ fileMap = new HashMap<>(); fileList = new ArrayList<>(FileUtils.listFiles(filePath, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)); int count=0; for(File f: fileList){ fileMap.put(f.getAbsolutePath(), calculaHash(f)); System.out.println(count); count++; } } public String calculaHash(File f) { byte[] fArray = null; String hash = null; try { fArray = Files.readAllBytes(f.toPath()); hash = DigestUtils.md5Hex(fArray); } catch (IOException ex) { Logger.getLogger(Comparador.class.getName()).log(Level.SEVERE, null, ex); } return hash; } public void comparar(){ geraFileMap(); int count = 0, size = fileMap.size(); List<String> stringList = new ArrayList<>(fileMap.keySet()); System.out.println(size); for (int i = 0; i < size; i++) { for (int j = i + 1; j < size; j++) { if(stringList.get(i).equals(stringList.get(j))){ System.out.println(stringList.get(i) +" = "+ stringList.get(j)); } count++; } } System.out.println(count); } Se alguém puder me sugerir alguma forma de melhorar o gargalo, agradeço. Muito obrigado.
  4. Olá @DiF, muito obrigado pela resposta vou testar e ver se consigo algum progresso. Então @Will871, na verdade não tenho nenhuma afinidade com PHP. Só pensei em usar pois meu orientador pode querer acrescentar algo nessa página que vá necessitar de banco e assim já teria meio caminho andando. Muito obrigado pelas respostas, dou um parecer assim que tiver algum resultado.
  5. Olá pessoal, eu desenvolvo em Java mas conheço praticamente nada de desenvolvimento Web. Desculpe uma dúvida tão banal mas não consegui resolver o problema. Preciso criar um "questionário" onde cada resposta correta faz mostrar a próxima pergunta. Explicando melhor: quando usuário abre a página, aparece uma pergunta um campo de texto e um botão no fim. Ao responder corretamente, logo abaixo do campo de texto aparece outra pergunta e um novo campo de texto e assim sucessivamente. Já criei uma classe com os atributos pergunta e resposta e um array desse objeto contendo as perguntas e resposta que irei usar. Usarei a função shuffle para embaralhar o array e evitar que as questões apareçam em sequencia para os usuários. Se alguém tiver algum exemplo de algo parecido e puder me indicar, fico grato. Muito obrigado.
  6. Que tipo de combobox (Web, JavaFX, Swing)? Deixe isso mais claro por favor.
  7. Procure mais sobre web crawling. Usei uma api para extrair dados de uma página certa vez , se chama Jsoup, de uma pesquisada que talvez ela consiga te atender.
  8. Olá, procure sobre Tibco Jaspersof. Imagino que você consiga criar o formulário exatamente como deseja com ele. Sinto não poder falar mais, mas não tenho conhecimento com formulários em Java.
  9. Você criou um controller pro seu FXML novo? Da maneira como está, me parece que, que você quer sobrepor a tela inicial com a tela de adicionar. Embora seja chato, poste também o FXML e controllers relativos a "addml.fxml" e "q5ml.fxml" que irei ajudá-lo.
  10. Uma boa ideia é verificar para cada número, o resto da divisão dele por três e por onze. Poste o código que você gerou que teremos condição de te guiar melhor.
  11. Olá pessoal, me esclareçam uma dúvida se possível. Caso eu tenha um trecho de HTML que irá se repetir na página (no meu caso um formulário de endereço que aparecerá duas vezes na mesma página), o que eu faço para ter o trecho aparecendo todas as vezes que preciso no lugar correto sem a necessidade de duplica-lo? <form role="form" > <div class="row"> <fieldset> <legend>Dados pessoais</legend> <div class="form-group col-sm-4"> <label>Nome:</label> <input type="text" id="nomeID" class="form-control"/> </div> <div class="form-group col-sm-4"> <label>Telefone: </label><input type="text" id="telID" class="form-control tel"/> </div> <div class="form-group col-sm-8"> <label> E-mail:</label><input type="email"id="emailID" class="form-control"/> </div> </fieldset> </div> <div class="row"> <fieldset> <legend>Endereço</legend> <div class="endDiv"> <!codigo do endereço aqui> </div> </fieldset> </div> <div class="form-group col-md-6"> <fieldset> <legend>Dados da Queixa</legend> <label>Tipo de Queixa</label> <select class="form-control" id="select" onchange="carregaHTML('#queixa', 'view/form/' + this.value);"> <option> </option> <option value="queixa_alimentar.php">Queixa Alimentar</option> <option value="queixa_animal.php">Queixa Animal</option> <option value="queixa_diversa.php">Queixa Diversa</option> </select> <div id="queixa"> <!aqui carrego o código de uma das três queixas que ira conter o trecho do endereço também> </div> </fieldset> </div> <input type="submit" name="submitBTN" value="Salvar" > </form>
  12. Olá, preciso analisar quais sites um grupo de usuários acessa em uma rede (será um experimento). Para isso estou usando o Squid como proxy e gerando o log para ser analisado. Usei o Sarg e tive pouco êxito então, me deparei com o Mysar que por gravar os dados em um banco de dados seria muito mais interessante para mim. Eis a situação: Fiz a instalação do Mysar numa máquina com Linux Mint 17 (não tenho certeza se realmente é essa versão), fiz várias configurações diferentes mas não consegui que a página web fosse atualizada com os dados do log. Mesmo adicionando regras ao cron, não consegui que atualizasse. Imaginando que pudesse ter algum problema com o Mint, Instalei Ubuntu 16.04 em outra máquina, segui os passos feitos na outra e para minha surpresa ao entrar na página de configuração do Mysar, o navegador mostrava o código fonte. Achei que pudesse ser a versão do PHP, já que o Ubuntu 16.04 usa por padrão a versão 7 então fiz o downgrade para 5.6, mas o resultado foi o mesmo. Alguém saberia me ajudar em um desses problemas? Caso conheçam algum outro analisador de log do Squid que tenha suporte a salvamento em banco de dados por favor me informe. Muito obrigado.
  13. Muito obrigado pela resposta. Estava testando Squid numa VM mas infelizmente meu note acabou morrendo, vou instalar VM em outra máquina e ver o que consigo. Caso tenha conhecimento, saberia me dizer como faço para gerar um log com essas informações? Já andei procurando (pelo visto não nos lugares certos) mas não achei muita coisa, basicamente criação de regras de acesso (que não tem nada a ver com o que preciso).
  14. Olá pessoal, no meu TCC preciso fazer uma pesquisa onde devo monitorar quais sites as pessoas vão acessar dado o resultado de uma busca no Google. A forma mais simples que imaginei seria instalando um proxy e gerar um log contendo os sites, a maquina e horário em que foram acessados (o experimento será feito em ambiente fechado). O problema é que não sou muito conhecedor da área, tentei brincar com Squid mas não achei o que queria (talvez seja falta de procurar melhor). Alguém pode me informar algum proxy simples, que gere um log com essas informações e de preferência gratuito? Se tiverem outra ideia para resolver o problema, por favor informe. Muito obrigado.
  15. Atributos Objeto

    Achei que o @Mention deu uma boa resposta, mas vou fazer algumas consideraçõs: No exercício diz: Portanto sua classe Casa é composta de um atributo cor (String) e de atributos portas(Porta) podendo ter mais características se você colocar. Assim sua classe Casa teria essa estrutura: public class Casa { private String cor; private Porta porta1 = new Porta();//porta da sala? private Porta porta2 = new Porta();//porta do banheiro? private Porta porta3 = new Porta();//porta do quarto? public String getCor() { return cor; } public void setCor(String cor) { this.cor = cor; } public Porta getPorta1() { return porta1; } public void setPorta1(Porta porta1) { this.porta1 = porta1; } public Porta getPorta2() { return porta2; } public void setPorta2(Porta porta2) { this.porta2 = porta2; } public Porta getPorta3() { return porta3; } public void setPorta3(Porta porta3) { this.porta3 = porta3; }Enquanto isso sua classe Main poderia ter a seguinte estrutura: public class Main { public static void main(String[] args) { Casa casa = new Casa(); casa.setCor("branco"); //metodos para mostrar os resultados } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×