Pesquisar este blog

segunda-feira, 9 de julho de 2012

Teste de seleção para Desenvolvedor PHP

O RH da empresa solicitou a elaboração de um teste de avaliação de conhecimentos, sendo que o candidato possa demonstrar sua experiência na linguagem PHP.
Após algumas pesquisas e levantamento das necessidades que o candidato enfrentará no dia a dia, foi elaborado esse pequeno exemplo onde a utilização de arrays e classes são sem dúvida atividades corriqueiras nos mais diversos projetos.

Palpite da Megasena 

1 - Criar uma função que retorne um array com 6 dezenas aleatórias entre 1 e 60, atentando que os números nunca se repitam e que estejam na ordem crescente.

Clique aqui para solução

2 - Utilizando a função acima e pensando num volante da Megasena, criar um layout html contendo 3 tabelas com 10 colunas e 6 linhas numeradas com as 60 dezenas e destacando com a cor azul(#0000FF) os números sorteados.
Para isso, deverão constar 3 apostas não repetidas. Há várias formas de resolver, porém, essa atividade não será avaliada pelo layout e sim pela lógica e organização do código.

Clique aqui para solução

3 - Criar uma simples classe que possa ler o conteúdo de um arquivo texto. Essa classe deverá conter um atributo privado que será usado para guardar o conteúdo do arquivo lido, um método para carregar o arquivo e outro para visualizar o atributo.

Clique aqui para solução

4 - Utilizando a classe criada acima, criar um form que solicite ao usuário um arquivo e que ao submeter seja visualizado o conteúdo.

Clique aqui para solução
Esses são alguns exemplos simples que podem ser encontrados num teste de avaliação de conhecimentos.
A dica ao elaborar a avaliação conforme auxilio dos psicólogos é que seja organizada da questão mais simples à mais complexa, pois o candidato já estará numa posição de pressão, então as questões mais simples lhe darão confiança para resolver as demais. A intenção além de saber o grau de conhecimento em PHP é também a lógica e organização do código.
Várias são as formas de resolver as questões acima, o ideal é tentar ser o mais objetivo e simples, atentando ao contexto. Uma possível próxima questão para esse teste é tentar refatorar o código. Não custa tentar.

segunda-feira, 12 de março de 2012

Acessando a web com proxy usando Java

Quem nunca passou pela situação em que no ambiente de trabalho tudo funciona, nos clientes também, mas num cliente específico nada funciona? Pois é! Situação assim passei recentemente num cliente onde a aplicação que consome webservices não estava funcionando.
Depois de alguns cafés e horas atentei para o detalhe que o cliente acessa a web através de proxy, foi quando percebí que não havia implementado esse recurso na aplicação. E para piorar, ainda não tinha conhecimento em como fazer em Java.
Buscando informação na net descobrí as propriedades: http.proxyHost e http.proxyPort que foram a salvação para esse caso.
Então, para os colegas que também passam por esse problema, segue o "caminho das pedras".

Fonte: Java SE Documentation


Duas formas para resolver: Implementar no código as instruções abaixo
System.setProperty("http.proxyHost", "192.168.0.11");
System.setProperty("http.proxyPort", "3128");
Ou passar o parametro -D ao chamar a aplicação pela linha de comando. Este parametro serve para configurar qualquer propriedade Java.
java -Dhttp.proxyHost=192.168.0.11 -Dhttp.proxyPort=3128 aplicacao 

O exemplo acima foi utilizado para o protocolo HTTP, porém, o mesmo vale para o HTTPS, só alterando as propriedades para https.proxyHost e https.proxyPort.


quinta-feira, 8 de março de 2012

App IMC p/ Android

Pegando o jeitinho com Android, desenvolví uma simples, porém útil aplicação que calcula o Indice de massa corporal(IMC). Fonte: Wikipédia


IMCActivity.java
package imc.projeto;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class IMCActivity extends Activity implements OnClickListener{
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button botao = (Button)findViewById(R.id.btnCalcular);
        botao.setOnClickListener(this);
    }
    
 @Override
    public void onClick(View v) {
     
     TextView resultado = (TextView)findViewById(R.id.txtResultado);
     try {
      String altura = ( (EditText)findViewById(R.id.edtAltura) ).getText().toString();
      altura = altura.replace(",", ".");
      String peso = ( (EditText)findViewById(R.id.edtPeso) ).getText().toString();
      peso = peso.replace(",", ".");
      double dblAltura = Math.pow( Double.parseDouble( altura ),2 );
      double dblPeso = Double.parseDouble( peso );
      double calculo = dblPeso / dblAltura; 
      
      if( calculo < 18.5 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Abaixo do peso ideal" );
      } else if( calculo >= 18.5 && calculo <= 24.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Peso ideal" );
      } else if( calculo >= 25 && calculo <= 29.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Acima do peso(sobrepeso)" );
      } else if( calculo >= 30 && calculo <= 34.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau I" );
      } else if( calculo >= 35 && calculo <= 39.9 ) {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau II" );
      } else {
       resultado.setText( "Resultado: " + String.format("%.2f",calculo) + " - Obesidade grau III" );
      }
      
      
     } catch (Exception e) {
         resultado.setText( "Erro ao informar algum dado!" + "\nErro: " + e.getMessage() );
     }
     
    }

}

main.xml



    


    

        

    


    


    
    



    

strings.xml


    Digite peso
    IMC
    Digite altura
    Calcular
    Resultado:



Download: IMC.apk
Essa app executa com a versão Android 2.3 API 10 ou superior.



segunda-feira, 23 de janeiro de 2012

Obter operadora de um celular

Recentemente precisei implementar um recurso para obter a operadora de um número de celular e se já houve portabilidade. Então, depois de uma pesquisa encontrei a empresa Telein de Recife(PE) que disponibiliza gratuitamente e de modo fácil tal recurso. Só há um limite por IP de 6 consultas diárias.
Foi necessário implementar o captcha devido a um número elevado de bots. Qualquer sugestão ou crítica é só comentar.