• 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.

TwistedSoul

Membros Plenos
  • Total de itens

    75
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

26

1 Seguidor

Sobre TwistedSoul

Informações gerais

  • Cidade e Estado RS
  • Sexo Masculino

Meu PC

  • Processador Core i5 7600
  • Cooler Cooler Box
  • Placa de vídeo Galax Geforce GTX 1070
  • Placa-mãe MSI B250M VDH-Pro
  • Memória 8GB DDR4 Kingston HyperX 2133MHz
  • HDs Seagate Barracuda 1TB 7200RPM
  • SSDs Sandisk Pro 240GB
  • Gabinete Aerocool Aero 500
  • Fonte Corsair CX600
  • Mouse Corsair Scimitar
  • Headset Redragon Siren 2
  • Monitor LG 23MB35VQ
  • Sistema Operacional Windows 10 Pro

Outros

  • Ocupação Programador Java Fullstack
  1. Boa tarde. Para fazer esse tipo de coisa em Java, você consegue verificar se o programa está sendo executado mas não existe nada que você possa fazer em Java para descobrir se ele está respondendo. Se o seu robô consegue interagir com o programa para capturar dados, você pode fazer um método em que o robô execute uma operação específica e que ele receba sempre uma resposta padrão para o teste. Se receber, o programa está respondendo. Se não receber depois de X tempo, o programa travou. Para verificar se um programa está rodando, podemos usar o wmic do Windows e especificar o nome do .exe que você quer verificar. private void verificaProcesso() { String line; int instances = 0; try { Process processo = Runtime.getRuntime().exec("wmic.exe"); try (BufferedReader br = new BufferedReader(new InputStreamReader(processo.getInputStream()))) { OutputStreamWriter osw = new OutputStreamWriter(processo.getOutputStream()); osw.write("process where name='chrome.exe'"); osw.flush(); osw.close(); while ((line = br.readLine()) != null) { if (line.contains("chrome.exe")) { instances++; } } System.out.println("Existem " + instances + " processos chrome.exe rodando"); } } catch (IOException ioe) { ioe.printStackTrace(); } } Nesse caso, atribuímos um processo com o Runtime.getRuntime().exe(), buscando o programa wmic.exe do Windows. Depois, escrevemos nossa "pesquisa" no processo usando o OutputStreamWriter onde buscamos por "process where name = 'chrome.exe'". Nesse caso, eu busquei pelo programa chrome.exe. Se existir alguma linha de processo que contenha chrome.exe, instances será incrementado em 1 toda vez que ele for encontrado. Depois, eu imprimi no console quantas vezes esse processo apareceu. No seu caso, verifique se instances for igual a 1 (creio que só deva existir uma instância desse programa funcionando, certo?), você executa a verificação do robô para ver se o programa está respondendo. Mais específico que isso, apenas com programação em C/C# e JNI.
  2. @RafaelGSS Você SEMPRE vai precisar usar new para instanciar uma nova classe. Teste teste1; Em java você sempre precisa usar o new quando for usar um novo objeto pela primeira vez. Exceção são tipos nativos. No caso acima, teste1 será um objeto nulo, pois existem apenas referencia ao objeto Teste mas ele nunca foi instanciado/inicializado. Seria como reservar uma área de memória para armazenar alguma informação mas nunca ter colocado nada lá. Então, se você, por exemplo, tentar usar teste.getX(); Vai receber um erro de NullPointerException. Se você fizer um teste do tipo Teste teste1; if (teste1 == null) { System.out.println("Objeto nulo. Precisa usar new"); } else { System.out.println("Objeto Inicializado/Instanciado. Não precisa usar new"); } Nesse caso, você sempre vai receber a mensagem "Objeto nulo. Precisa usar new". Se fizer Teste teste1 = new Teste(); if (teste1 == null) { System.out.println("Objeto nulo. Precisa usar new"); } else { System.out.println("Objeto Inicializado/Instanciado. Não precisa usar new"); } Sempre vai receber a resposta "Objeto Inicializado/Instanciado. Não precisa usar new". adicionado 16 minutos depois @RafaelGSS Esqueci de explicar uma coisa importante: Se você fizer Teste teste1; teste1.setX(0); //OU teste1.getX(); O compilador logo vai te avisar que o objeto teste1 não foi inicializado e vai falhar. Isso evita que você tente fazer alguma operação com um objeto nulo. Claro, dependendo do que você vai programar, um método pode retornar um objeto nulo por causa de algum teste ou validação de negócio que você precisa fazer. Nesse caso, ao obter a resposta de um método que retorne o objeto específico, SEMPRE teste para null. Eu sempre evito objetos nulos nas minhas respostas (a não ser quando não há outra maneira). Como eu sempre atribuo valores padrão no construtor dos meus objetos de dados, eu uso um método isGenerico() para fazer a validação. Se os valores da PK do objeto forem os padrão, eu entendo que o objeto não retornou nenhuma informação e trato de acordo. Se a PK for diferente dos valores padrão, então veio algum dado. Porque faço isso? Para evitar um nullPointer. Ao receber um NullPointer de erro na tela, você possui dois erros no seu código: - O primeiro é ter devolvido ou manipulado um objeto nulo - O segundo é não ter tratado esse erro Abraço
  3. Olá, bom dia. Se você não definiu nenhum construtor padrão, todas as variáveis que não tiverem valores explícitos ficarão com valor null ou em caso de int, double, boolean, etc, como 0 ou false, já que esses tipos nativos não possuem valor nulo. Eu sempre recomendo fazer os dois construtores pois daí você sabe exatamente o tipo de retorno de cada variável e não precisa ficar testando pra nulo, etc. Exemplo: public class Teste { private String nome; private String cpf; private int idade; private double salario; private String endereco; //Aqui, criaremos o construtor padrão, ou seja, //sem nenhum valor passado por parametros public Teste() { this.setNome(""); this.setCpf(""); this.setIdade(0); this.setSalario(0.00); this.setEndereco(""); } //Aqui o constutor com os valores passados por parametro public Teste (String nome, String cpf, int idade, doubla salario, String endereco) { this.setNome(nome); this.setCpf(cpf); this.setIdade(idade); this.setSalario(salario); this.setEndereco(endereco); } //Aqui ficam os getters e setters de cada variavel. //Faca as validacoes dos dados dentro dos setters //Um exemplo de validacao do setter para a variavel nome public void setNome(String nome) { //Neste exemplo simples, apenas vamos verificare se não //foi passado aqui uma String com valor nulo. //Caso positivo, nome será uma String em branco. //Caso negativo, a variável nome da classe Teste vai //receber o valor da variavel nome passada no setter if (nome == null) { this.nome = ""; } else { this.nome = nome; } } } Dessa forma, quando criarmos uma nova instância do objeto Teste Teste novoTeste = new Teste(); Teremos certeza que todas as variáveis do tipo String foram inicializadas e como valor uma String vazia, as variáveis do tipo int como 0 e as variáveis do tipo double como 0.00; Então, você pode através de setters ir atribuindo valores individualmente às suas variáveis ou simplesmente usar o construtor completo caso já tenha todos os dados que precisa ao instanciar ele.
  4. Isso serve? https://www.intertech.com/Blog/spring-security-active-directory-ldap-example/ Que versão do Spring você usa?
  5. @Eder123 Boa noite. Um filtro nada mais é que um objeto qualquer onde você guarda diversas variáveis (dados do filtro) que depois serão usados em uma busca. Exemplo: public class FiltroCliente { private String nome; private String cpf; public FiltroCliente() { this.setNome(""); this.setCPF(""); } public FiltroCliente(String nome, String cpf) { this.setNome(nome); this.setCPF(cpf); } //getters e setters } Pronto. Isso é um objeto de filtro. Agora é necessário programar na model o método que efetua a pesquisa através das informações armazenadas no filtro. PS.: se você já está trabalhando em cima de um programas com sessão e acesso a pastas em disco, já passou de iniciante a tempo. Existe algum esqueleto desse programa para você se basear ou precisa fazer do zero?
  6. Como está sendo gerado os IDs dos episódios? O que faz a classe R? Talvez algo de errado com os valores de Catalogo? Depurando o click em um checkbox, você vai saber o que ocorre para que mais de um checkbox seja marcado ao mesmo tempo. O erro (pelo menos não achei nada aqui, já que eu brinco pouquíssimo com Android) deve estar em outra ou outras classes.
  7. Depende. Cada fabricante faz de um jeito. Se tiver como configurar via BIOS para usar o monitor externo ao invés do display do note, você tem como remover. Se não houver configuração para isso, não vai funcionar. Além disso, se você remover o display inteiro, vai ficar sem wifi, webcam e, dependendo do modelo, sem microfone também. Você teria que desmontar o note e remover todos os fios referentes e esses dispositivos.
  8. Eu cheguei a dar uma ideia pra você no outro tópico que abriu a respeito: Dei uma pesquisada sobre o assunto e é aquilo mesmo que eu escrevi. Se alguém sabe o endereço de um link de um arquivo em qualquer servidor, não existe tag ou recurso HTML que resolva isso. Precisa desenvolver um recurso especificamente para isso como o que descrevi no outro tópico.
  9. @IvanJava Sim, é isso mesmo. Você conseguiu entender a diferença sutil, mas primordial, do porque seu código sempre "resetava" o valor depositado para 1000? Uma dica que SEMPRE dou para quem está iniciando e precisa fazer esses programas para aprendizado: comece pelo menu. Faça ele funcionar e depois vá implementando o código de cada opção que o menu especifica. Dessa forma você tem uma visão ampla do que deve ou não instanciar e como repassar, armazenar e calcular variáveis para que fiquem visíveis às classes e métodos que as utilizam. Bom estudo.
  10. @IvanJava Precisa alterar a classe OperadorJ também. Se alterar o código como fiz acima, vai funcionar. Perceba que você instancia um novo objeto Menu na classe OperadorJ e chama a tela desse novo objeto. Ele, por sua vez, cria uma nova instancia da classe OperadorJ, que tem seus valores zerados e assim infinitamente. Você inclusive nunca vai sair do laço while da classe Menu por causa disso. Você criou um loop infinito que gera sempre um novo objeto, um após o outro. Da maneira que fiz, Menu e OperadorJ são instanciados apenas uma única vez e serão "reaproveitados" durante toda a execução, mantendo os valores de todas as suas variáveis que sofreram mudanças, no seu caso, a variável valor.
  11. Programador freelancer, antes de mais nada, necessita dominar uma linguagem. Normalmente num freela o cara tem que fazer todo o software sozinho, desde estrutura de banco de dados, passando por engenharia do software em si e as telas. Existem alguns sites por aí onde você pode se candidatar como freelancer, mas daí precisa ser bom no que se faz, pois precisa postar seu currículo, seu conhecimento e quanto você cobra por hora. Além disso, se você não tiver nenhuma referência de algum usuário do site, terá que mostrar trabalhos que fez, por exemplo, contribuindo para algum projeto open source. A procura de trabalho depende muito da região. Existem empresas que contratam programadores por projeto e/ou com tempo de prestação de serviço pré-determinado, mas para isso precisa ter as qualificações necessárias e possuir empresa com CNPJ para emitir nota de serviço. Outra opção seriam os polos em universidades que necessitam de programadores com os mais diversos níveis de conhecimento, desde iniciantes a macacos velhos. Você morando em SP tem acesso a ambos e com certa abundância. Se você não conhece nenhuma linguagem ainda, recomendo aprender Java ou C#, que são duas linguagens muito fortes no mercado e conhecer HTML, CSS e Javascript, pois software com interfce web são o futuro.
  12. O problema está na classe Menu. Vou colocar aqui a solução pra você (que é bem simples) mas eu gostaria que você desse uma olhada no código e me diga porque o seu falhou e porque o meu deu certo. public class Menu { public void tela() {//tela de escolha Scanner tec = new Scanner(System.in); OperadorJ S = new OperadorJ(); String escolha; System.out.println(" a- consultar saldo\n b- Depositar\n c- Sacar\n s- Sair "); escolha = tec.nextLine(); while (!"s".equals(escolha)) { if ("a".equals(escolha)) { S.getSaldo(); } else if ("b".equals(escolha)) { S.depositar(); } else if ("c".equals(escolha)) { S.saque(); } System.out.println(" a- consultar saldo\n b- Depositar\n c- Sacar\n s- Sair "); escolha = tec.nextLine(); } System.exit(0); } } E a classe OperadorJ também muda pois o Menu não precisas em hipótese alguma ser instanciado de novo public class OperadorJ { float valor = 1000; public void depositar() {//exige do usuário valores para deposito float Vdeposito; Scanner tec = new Scanner(System.in); System.out.print("Digite um valor para depósito : "); Vdeposito = tec.nextInt(); valor += Vdeposito; System.out.println("Seu novo saldo é " + valor); } } Abraço
  13. O erro aqui não me parece ser o servidor e sim a aplicação. Olha essa linha do log Error loading byte data : http://localhost:8080/Voucher-Web/_images/no_checked.jpg Mesmo que no restante do log as outras chamadas são feitas para a porta 81 no ambiente de homologação, essa chamada está sendo feita para a porta 8080. Aposto com você que o mesmo erro ocorre com o PDF porque na hora de desenvolver essas rotinas, quem as fez não utilizou as informações de jboss.server.url=http://localhost:81/Voucher-Web/ e colocou os dados de acesso diretamente no código como uma String. Tenta buscar na tua IDE, no projeto inteiro, pela string localhost:8080 E veja se essa informação não ficou hardcoded. Se não foi na aplicação em si (que eu acho que não seja), provavelmente está fixo na sua ferramenta de relatórios que gera o PDF, no caso, JasperReports. Abraço
  14. Olá, bom dia. Antes de explicar o problema, queria te dar uma sugestão: faça uma rotina específica que controle o menu. A cada ação que você executa sempre é instanciada uma nova classe Operador, sem necessidade, para fazer controle de tela e voltar ao menu. Sobre o problema do valor do depósito, ele sempre vai resetar porque a cada vez que você instancia a classe Operador, o valor da variável depósito sempre é inicializado com o mesmo valor pois você deixou a variável valor como sendo uma variável interna da classe. Para resolver isso existem duas possibilidades: A variável valor ser global, ou seja, uma variável da aplicação Alterar drasticamente seu código, fazendo uma classe que controle o menu e instanciar a classe Operador apenas uma vez e fazer todas as operações em cima dela. Dessa forma, as variáveis internas não serão inicializadas com o valor default de 1000 que você especificou a cada vez que o usuário resolver fazer uma nova operação no caixa eletrônico Minha recomendação? A segunda opção. Dá muito mais trabalho, porém, o código fica limpo, menor e muito, mas muito mais fácil de ler. Eu não posso fazer o código pra você, mas posso te dar dicas e mostrar alguns trechos de códigos a medida que você for fazendo e postando suas dúvidas aqui. Abraço
  15. Quando acontece esse tipo de bizarrice, o melhor mesmo é desinstalar o app, apagar a pasta de instalação dele e dar uma verificada em %APPDATA% se existe alguma pasta da Blizzard. Se existir, apague tudo, limpe o registro e reinstale o Blizzard App. Se nem isso resolver, as chances de ser o aplicativo da Blizzard são baixas. O mais provável é que tenha algum programa/processo interferindo com ele.