Jtiago.com

Java, Desenvolvimento Web, Tecnologia, tudo e mais um pouco…
Subscribe

Arquivos de abril, 2007

Java Vs .net - Quem é Melhor???

abril 10, 2007 By: Tiago Silveira Categoria: Geral, Java, Tecnologia

Alguns pontos que devemos levar em consideração…
1 - 80% dos negócios do mundo rodam em cima de programas COBOL. Nem Java nem .NET vão decidir o futuro da humanidade, portanto.

2 - Nunca vi um sistema que não pudesse ser implementado em qualquer linguagem que seja. Portanto, a discussão Java x .NET não se decide na esfera técnica.

3 - Produtividade - não é criando grids para acesso direto a tabelas que se mede produtividade, mas sim no tempo total que leva para uma idéia sair da cabeça do usuário de negócios até se transformar em um sistema rodando no ambiente de produção, testado, aprovado e homologado. Numa “competição” Java x .NET, é certo que ambas as tecnologias chegariam empatadas “na margem de erro” caso se considerasse todo o ciclo de vida de um sistema.

4- Ainda em produtividade, só de 15% a 20% do tempo é gasto efetivamente em implementação. O grosso do esforço é gasto em levantamento de requisitos e testes.

Por falar em produtividade, só 30% do tempo do programador é gasto em desenvolvimento de fato, em média. O resto é perdido em debugging ou reescrevendo requisitos que foram mal-entendidos (e mal-explicados, por conseguinte). Pare e pense na sua rotina diária e veja se vc discorda desses números.

Assim, 20% X 30% = 60% do tempo total de um projeto em desenvolvimento REAL. Supondo que uma das duas tecnologias fosse 50% MAIS PRODUTIVA do que a outra (e nenhuma delas o é), o impacto final seria de 3% sobre o tempo total do projeto. Quase indetectável.

Assim, o desafio proposto perde a validade em si. Até porque ninguém vai sair “convertido” de um evento desses. Agora, um desafio de ponta a ponta, num prazo de algumas semanas, por exemplo, esse sim teria valia. Mas já não seria mais um desafio Java x .NET, mas, talvez, um desafio MDA x AMD (tipo Together) x Agile (S. Ambler), por exemplo.

4 - Decisões estratégicas - Há uns 20 anos, mais ou menos , o Natural/ADABAS ganhou um grande mercado do COBOL, porque era muuuito mais produtivo e fácil de mexer. Hoje quem tem Natural/ADABAS quer morrer, porque a Software AG está cobrando os tubos (zilhões de dólares) pela renovação das licenças e a tecnologia é “imigrável”. Paralelo com .NET, proprietário como Natural/ADABAS. Erro estratégico.

Outro exemplo: há 30 anos, C prometia ser o que Java promete hoje. Se alguém algum dia teve um sistema de negócios escrito em C, então deve ter uma boa história de migração urgente para contar. Paralelo com Java, “assembleísta” como C. Outro erro estratégico.

Então, amigos, tecnologicamente falando, Java e .NET se equivalem.

Não consigo imaginar um sistema corporativo (que é o que interessa, afinal) que possa ser feito em um, mas não no outro. Ou que saia muito mais rápido em um do que no outro.

Texto gentilmente cedido pelo Grupo [UML-FATEC]

OBS. Mas eu prefiro Java e você?

Abraços
Tiago Silveira

Statement e SQL injection em Java

abril 07, 2007 By: Tiago Silveira Categoria: Desenvolvimento Web, Java

Olá pessoal,
Vamos falar um pouco de segurança? Como andam suas aplicações web no quesito segurança?
Você usar Statement ou PreparedStatement? Se a resposta for “Statement” saiba que sua aplicação pode estar correndo grande perigo, por uma pratica chamada SQL injection.
Vejam um exemplo:

String sql = "select * from user where username='" + username +"' and password='" + password + "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
loggedIn = true;
	out.println("Usuário Logado com sucesso.");
} else {
	out.println("UsuárioSenha não encontrado.");
}

A principio nada de errado ai, mas se alguém colocar no campo usuário isso admin’ OR ‘1′=’1 o comando select final ficaria algo assim:

select * from user where username=’admin’ OR ‘1′=’1′ and password=”

O resultado desse comando retorna o usuário admin, ou o primeiro usuário cadastrado no banco que e geralmente o que tem SID root, imaginem o estrago que isso pode acarretar.

Outro exemplo:

String sql = "select * from user where estado='RS'
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
    	out.println("Usuário:" + rs.getString(1));
}

Bem simples esse select né, mas se o usuário ao invés de digitar ‘RS’, digitar ‘or true.
Seria a mesma coisa que se o select fosse ‘Select * from user’ Traz tudo!!!
Agora pra resolver esse tipo de coisa você pode usar PreparedStatement ao invés de Statement.

Exemplo:

String select = "SELECT * FROM User WHERE username = ? ";
PreparedStatement prepStmt = con.prepareStatement(selectStatement);
prepStmt.setString(1, username);
ResultSet rs = prepStmt.executeQuery();

O SQL Injection não tem vez contra o PreparedStatement, que além de deixa a aplicação mais “segura”, também melhora a performance da mesma.

Abraços
Tiago Silveira

Resident Evil 4 para o Wii US$ 30???

abril 06, 2007 By: Tiago Silveira Categoria: Geral, Tecnologia

Esta em pré venda na loja Game Stop, por apenas US$ 30 enquanto a maioria dos jogos de Wii custa em torno de US$ 50.
Pode ser apenas um erro da loja, mas como a Capcom já disse a pouco tempo atrás que os seus jogos para o Wii vão utilizar uma engine baseado na que foi usada no Resident Evil 4 do GameCube acredito que seja verdade mesmo, ponto para a Nintendo!!!
Aproveitem…
Link para o anuncio

Abraços
Tiago Silveira

Executando programas externos com Java

abril 06, 2007 By: Tiago Silveira Categoria: Java

Olá pessoal,
Exemplinho bem simples que é só pra mostrar que a execução de programas externos com Java e bem simples e funcional.

import java.io.IOException;

/**
 * @since JDK1.4.2
 *
 * @author Tiago
 */
public class IE {
    public static void main(String args[]) {

        String url = “http://www.jtiago.com”;
        try {
            // Os 2 funcionam igual
            //Runtime.getRuntime().exec(”rundll32 url.dll,FileProtocolHandler ” + url);
            Runtime.getRuntime().exec(”C:/Arquivos de programas/Internet Explorer/IEXPLORE.EXE ” +url);
        } catch (IOException e) {
            e.printStackTrace();
        }
   }
}

Fácil né?
Era isso então.

Abraços…
Tiago Silveira

Arredondamento de valores com casas decimais com JavaScript

abril 06, 2007 By: Tiago Silveira Categoria: Desenvolvimento Web

Esse script não é de minha autoria, mas ele já me salvou uma vez e acredito que um dia possa te salvar também.
Eu queria arredondar um valor mas a função Math.round() arredondava para o inteiro mais próximo, e eu precisava das casas decimais.
É exatamente isso que a função faz, arredonda com as casas decimais.

Baixe aqui.
Abraços…
Tiago Silveira

Agendando Tarefas numa Aplicação em Java

abril 04, 2007 By: Tiago Silveira Categoria: Java

Olá pessoal vou postar hoje um código no mínimo interessante.
Fiz ele a mais ou menos uns 2 anos atrás pra fazer uma implementação em uma aplicação que precisava ficar monitorando uma determinada ação que não irei entra em detalhes, pois seria meio anti ético.

Eis o Código:

import java.util.Timer;
import java.util.TimerTask;
/**
 * Classe que executa uma determinada tarefa num tempo programado.
 * @author  Tiago Silveira
 */
public class Exemplo {  

    public static void main(String a[]) throws InterruptedException{  

        Timer timer = new Timer();  

        /* Função executada indefinidamente a cada 1 minuto. */
        timer.schedule(new Exemplo().getTarefa(), 0, 1000*60);
        // timer.cancel();
    }  

    /**
     * Obtendo o objeto.
     */
    public TimerTask getTarefa(){
        return new Tarefa();
    }  

    /**
     * Tarefa é uma InnerClass que extende a classe abstrata Timertask que
     * também é uma Thread.
     */
    public class Tarefa extends TimerTask {
        public void run(){
            System.out.println(”Função Executada”);
        }
    }
}

Bom era isso por hoje…
Nos próximos dias quero ver se posto um esquema que fiz que parece ajax, mas não é!!!

Abraços…
Tiago Silveira

Hello world!

abril 04, 2007 By: Tiago Silveira Categoria: Geral

Tudo tem uma primeira vez…
Como programador Java nunca irei esquecer o primeiro programa que fiz, hehe.
Lembro que foi muito legal, mas falando serio agora esse e o post de inauguração do meu blog Jtiago.com.
Estarei com o tempo postando alguns trabalhos meus aqui, assim como trechos de códigos interessantes e algumas noticias que eu achar legais sobre tecnologia.
Espero que todos participem e deixem os seus comentários seja ele construtivo ou não.

Abraços…
Tiago Silveira


Fechar
Envie por e-mail
fumaca mixer cdj 200 laser verde cdj 400 iluminaco profissional iluminacao amplificador potencia cdj 100s cdj 800 strobo iluminacao dj fone dj Audio Profissional e DJs cdj 1000 cdj pioneer moving head equipamento dj maquina fumaca laser show moving iluminaco technics cdj dj iluminaco dj sky paper gemini ciclotron numark amplificador profissional chauvet mk2 raio sol cdj 100 estrobo jogo luz equipamentos dj mp8 djs potencia
AutoLinks por NerdowN